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