1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
--TEST--
Various pow() tests
--FILE--
<?php // $Id$
define('LONG_MAX', is_int(5000000000)? 9223372036854775807 : 0x7FFFFFFF);
define('LONG_MIN', -LONG_MAX - 1);
printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ),
is_int(LONG_MIN-1),is_int(LONG_MAX+1));
$tests = <<<TESTS
0.25 === pow(-2,-2)
-0.5 === pow(-2,-1)
1 === pow(-2, 0)
-2 === pow(-2, 1)
4 === pow(-2, 2)
1.0 === pow(-1,-2)
-1.0 === pow(-1,-1)
1 === pow(-1, 0)
-1 === pow(-1, 1)
1 === pow(-1, 2)
TRUE === is_infinite(pow(0,-2))
TRUE === is_infinite(pow(0,-1))
1 === pow( 0, 0)
0 === pow( 0, 1)
0 === pow( 0, 2)
1.0 === pow( 1,-2)
1.0 === pow( 1,-1)
1 === pow( 1, 0)
1 === pow( 1, 1)
1 === pow( 1, 2)
0.25 === pow( 2,-2)
0.5 === pow( 2,-1)
1 === pow( 2, 0)
2 === pow( 2, 1)
4 === pow( 2, 2)
0.25 === pow(-2,-2.0)
-0.5 === pow(-2,-1.0)
1.0 === pow(-2, 0.0)
-2.0 === pow(-2, 1.0)
4.0 === pow(-2, 2.0)
1.0 === pow(-1,-2.0)
-1.0 === pow(-1,-1.0)
1.0 === pow(-1, 0.0)
-1.0 === pow(-1, 1.0)
1.0 === pow(-1, 2.0)
TRUE === is_infinite(pow(0,-2.0))
TRUE === is_infinite(pow(0,-1.0))
1.0 === pow( 0, 0.0)
0.0 === pow( 0, 1.0)
0.0 === pow( 0, 2.0)
1.0 === pow( 1,-2.0)
1.0 === pow( 1,-1.0)
1.0 === pow( 1, 0.0)
1.0 === pow( 1, 1.0)
1.0 === pow( 1, 2.0)
0.25 === pow( 2,-2.0)
0.5 === pow( 2,-1.0)
1.0 === pow( 2, 0.0)
2.0 === pow( 2, 1.0)
4.0 === pow( 2, 2.0)
2147483648 === pow(2,31)
-2147483648 ~== pow(-2,31)
1000000000 === pow(10,9)
100000000 === pow(-10,8)
1 === pow(-1,1443279822)
-1 === pow(-1,1443279821)
sqrt(2) ~== pow(2,1/2)
0.25 === pow(-2.0,-2.0)
-0.5 === pow(-2.0,-1.0)
1.0 === pow(-2.0, 0.0)
-2.0 === pow(-2.0, 1.0)
4.0 === pow(-2.0, 2.0)
1.0 === pow(-1.0,-2.0)
-1.0 === pow(-1.0,-1.0)
1.0 === pow(-1.0, 0.0)
-1.0 === pow(-1.0, 1.0)
1.0 === pow(-1.0, 2.0)
TRUE === is_infinite(pow(0.0,-2.0))
TRUE === is_infinite(pow(0.0,-1.0))
1.0 === pow( 0.0, 0.0)
0.0 === pow( 0.0, 1.0)
0.0 === pow( 0.0, 2.0)
1.0 === pow( 1.0,-2.0)
1.0 === pow( 1.0,-1.0)
1.0 === pow( 1.0, 0.0)
1.0 === pow( 1.0, 1.0)
1.0 === pow( 1.0, 2.0)
0.25 === pow( 2.0,-2.0)
0.5 === pow( 2.0,-1.0)
1.0 === pow( 2.0, 0.0)
2.0 === pow( 2.0, 1.0)
4.0 === pow( 2.0, 2.0)
0.25 === pow(-2.0,-2)
-0.5 === pow(-2.0,-1)
1.0 === pow(-2.0, 0)
-2.0 === pow(-2.0, 1)
4.0 === pow(-2.0, 2)
1.0 === pow(-1.0,-2)
-1.0 === pow(-1.0,-1)
1.0 === pow(-1.0, 0)
-1.0 === pow(-1.0, 1)
1.0 === pow(-1.0, 2)
TRUE === is_infinite(pow( 0.0,-2))
TRUE === is_infinite(pow( 0.0,-1))
1.0 === pow( 0.0, 0)
0.0 === pow( 0.0, 1)
0.0 === pow( 0.0, 2)
1.0 === pow( 1.0,-2)
1.0 === pow( 1.0,-1)
1.0 === pow( 1.0, 0)
1.0 === pow( 1.0, 1)
1.0 === pow( 1.0, 2)
0.25 === pow( 2.0,-2)
0.5 === pow( 2.0,-1)
1.0 === pow( 2.0, 0)
2.0 === pow( 2.0, 1)
4.0 === pow( 2.0, 2)
2.0 === pow( 4, 0.5)
2.0 === pow( 4.0, 0.5)
3.0 === pow( 27, 1/3)
3.0 === pow(27.0, 1/3)
0.5 === pow( 4, -0.5)
0.5 === pow( 4.0, -0.5)
LONG_MAX-1 === pow(LONG_MAX-1,1)
LONG_MIN+1 === pow(LONG_MIN+1,1)
(LONG_MAX-1)*(LONG_MAX-1) ~== pow(LONG_MAX-1,2)
(LONG_MIN+1)*(LONG_MIN+1) ~== pow(LONG_MIN+1,2)
(float)(LONG_MAX-1) === pow(LONG_MAX-1,1.0)
(float)(LONG_MIN+1) === pow(LONG_MIN+1,1.0)
(LONG_MAX-1)*(LONG_MAX-1) ~== pow(LONG_MAX-1,2.0)
(LONG_MIN+1)*(LONG_MIN+1) ~== pow(LONG_MIN+1,2.0)
LONG_MAX === pow(LONG_MAX,1)
LONG_MIN === pow(LONG_MIN,1)
LONG_MAX*LONG_MAX ~== pow(LONG_MAX,2)
LONG_MIN*LONG_MIN ~== pow(LONG_MIN,2)
(float)LONG_MAX === pow(LONG_MAX,1.0)
(float)LONG_MIN === pow(LONG_MIN,1.0)
LONG_MAX*LONG_MAX ~== pow(LONG_MAX,2.0)
LONG_MIN*LONG_MIN ~== pow(LONG_MIN,2.0)
TESTS;
echo "On failure, please mail result to php-dev@lists.php.net\n";
include(dirname(__FILE__) . '/../../../../tests/quicktester.inc');
--EXPECT--
1,1,0,0
On failure, please mail result to php-dev@lists.php.net
OK
|