@@ -40,6 +40,9 @@ TestMathsCatSnippets = class(TTestCase)
40
40
procedure TestMaxOfArray_Single ;
41
41
procedure TestMaxOfArray_Double ;
42
42
procedure TestMaxOfArray_Extended ;
43
+ procedure TestPowNZN ;
44
+ procedure TestPowNZZ ;
45
+ procedure TestPowN ;
43
46
end ;
44
47
45
48
implementation
@@ -530,6 +533,78 @@ procedure TestMathsCatSnippets.TestMinOfArray_Single;
530
533
Check(SameValue(N, MinOfArray(A)), ' Test 5' );
531
534
end ;
532
535
536
+ procedure TestMathsCatSnippets.TestPowN ;
537
+ begin
538
+ CheckEquals(0 , PowN(0 , 2 ), ' PowN(0,2)' );
539
+ CheckEquals(1 , PowN(42 , 0 ), ' PowN(42,0)' );
540
+ CheckEquals(1 , PowN(0 , 0 ), ' PowN(0,0)' );
541
+ CheckEquals(1 , PowN(1 , 1 ), ' PowN(1,1)' );
542
+ CheckEquals(-1 , PowN(-1 , 1 ), ' PowN(-1,1)' );
543
+ CheckEquals(1 , PowN(1 , 5 ), ' PowN(1,5)' );
544
+ CheckEquals(4 , PowN(2 , 2 ), ' PowN(2,2)' );
545
+ CheckEquals(4 , PowN(-2 , 2 ), ' PowN(-2,2)' );
546
+ CheckEquals(100 , PowN(10 , 2 ), ' PowN(10,2)' );
547
+ CheckEquals(10000 , PowN(10 , 4 ), ' PowN(10,2)' );
548
+ CheckEquals(1.0 , PowN(0 , 0 ), ' PowN(0, 0)' );
549
+ CheckEquals(1 /2 , PowN(2 , -1 ), ' PowN(2, -1)' );
550
+ CheckEquals(1 /1000 , PowN(10 , -3 ), ' PowN(10, -3)' );
551
+ CheckEquals(-1000 , PowN(-10 , 3 ), ' PowN(-10, 3)' );
552
+ CheckEquals(-1 /1000 , PowN(-10 , -3 ), ' PowN(-10, -3)' );
553
+ CheckEquals(4 , PowN(2 , 2 ), ' PowN(2,2)' );
554
+ CheckEquals(4 , PowN(-2 , 2 ), ' PowN(-2,2)' );
555
+ CheckEquals(1 /27 , PowN(3 , -3 ), ' PowN(3, -3)' );
556
+ CheckEquals(1 /3 , PowN(3 , -1 ), ' PowN(3, -1)' );
557
+ CheckEquals(-1 , PowN(-1 , -3 ), ' PowN(-1, -3)' );
558
+ CheckEquals(4294967296 , PowN(2 , 32 ), ' PowN(2, 32' );
559
+ // Floats
560
+ CheckEquals(Math.Power(45.3672 , 3.0 ), PowN(45.3672 , 3 ), ' PowN(45.3672, 12)' );
561
+ CheckEquals(Math.Power(-0.87659 , -7 ), PowN(-0.87659 , -7 ), ' PowN(-0.87659, -7)' );
562
+ CheckEquals(Math.Power(45.3672 , -3.0 ), PowN(45.3672 , -3 ), ' PowN(45.3672, -3)' );
563
+ CheckEquals(Math.Power(-0.87659 , -7 ), PowN(-0.87659 , -7 ), ' PowN(-0.87659, -7)' );
564
+ CheckEquals(Math.Power(-0.87659 , 3 ), PowN(-0.87659 , 3 ), ' PowN(-0.87659, 3)' );
565
+ end ;
566
+
567
+ procedure TestMathsCatSnippets.TestPowNZN ;
568
+ begin
569
+ CheckEquals(0 , PowNZN(0 , 2 ), ' PowNZN(0,2)' );
570
+ CheckEquals(1 , PowNZN(42 , 0 ), ' PowNZN(42,0)' );
571
+ CheckEquals(1 , PowNZN(0 , 0 ), ' PowNZN(0,0)' );
572
+ CheckEquals(1 , PowNZN(1 , 1 ), ' PowNZN(1,1)' );
573
+ CheckEquals(-1 , PowNZN(-1 , 1 ), ' PowNZN(-1,1)' );
574
+ CheckEquals(1 , PowNZN(1 , 5 ), ' PowNZN(1,5)' );
575
+ CheckEquals(4 , PowNZN(2 , 2 ), ' PowNZN(2,2)' );
576
+ CheckEquals(4 , PowNZN(-2 , 2 ), ' PowNZN(-2,2)' );
577
+ CheckEquals(100 , PowNZN(10 , 2 ), ' PowNZN(10,2)' );
578
+ CheckEquals(10000 , PowNZN(10 , 4 ), ' PowNZN(10,2)' );
579
+ CheckEquals(-1000 , PowNZN(-10 , 3 ), ' PowNZN(-10,3)' );
580
+ CheckEquals(10000 , PowNZN(-10 , 4 ), ' PowNZN(-10,4)' );
581
+ end ;
582
+
583
+ procedure TestMathsCatSnippets.TestPowNZZ ;
584
+ begin
585
+ CheckEquals(0 , PowNZZ(0 , 2 ), ' PowNZZ(0,2)' );
586
+ CheckEquals(1 , PowNZZ(42 , 0 ), ' PowNZZ(42,0)' );
587
+ CheckEquals(1 , PowNZZ(0 , 0 ), ' PowNZZ(0,0)' );
588
+ CheckEquals(1 , PowNZZ(1 , 1 ), ' PowNZZ(1,1)' );
589
+ CheckEquals(-1 , PowNZZ(-1 , 1 ), ' PowNZZ(-1,1)' );
590
+ CheckEquals(1 , PowNZZ(1 , 5 ), ' PowNZZ(1,5)' );
591
+ CheckEquals(4 , PowNZZ(2 , 2 ), ' PowNZZ(2,2)' );
592
+ CheckEquals(4 , PowNZZ(-2 , 2 ), ' PowNZZ(-2,2)' );
593
+ CheckEquals(100 , PowNZZ(10 , 2 ), ' PowNZZ(10,2)' );
594
+ CheckEquals(10000 , PowNZZ(10 , 4 ), ' PowNZZ(10,2)' );
595
+ CheckEquals(1.0 , PowNZZ(0 , 0 ), ' PowNZZ(0, 0)' );
596
+ CheckEquals(1 /2 , PowNZZ(2 , -1 ), ' PowNZZ(2, -1)' );
597
+ CheckEquals(1 /1000 , PowNZZ(10 , -3 ), ' PowNZZ(10, -3)' );
598
+ CheckEquals(-1000 , PowNZZ(-10 , 3 ), ' PowNZZ(-10, 3)' );
599
+ CheckEquals(-1 /1000 , PowNZZ(-10 , -3 ), ' PowNZZ(-10, -3)' );
600
+ CheckEquals(4 , PowNZZ(2 , 2 ), ' PowNZZ(2,2)' );
601
+ CheckEquals(4 , PowNZZ(-2 , 2 ), ' PowNZZ(-2,2)' );
602
+ CheckEquals(1 /27 , PowNZZ(3 , -3 ), ' PowNZZ(3, -3)' );
603
+ CheckEquals(1 /3 , PowNZZ(3 , -1 ), ' PowNZZ(3, -1)' );
604
+ CheckEquals(-1 , PowNZZ(-1 , -3 ), ' PowNZZ(-1, -3)' );
605
+ CheckEquals(4294967296 , PowNZZ(2 , 32 ), ' PowNZZ(2, 32' );
606
+ end ;
607
+
533
608
procedure TestMathsCatSnippets.TestResizeRect_A ;
534
609
var
535
610
R: Types.TRect;
0 commit comments