1--TEST-- 2Test pow() - basic function test pow() 3--INI-- 4precision=14 5--SKIPIF-- 6<?php 7if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); 8?> 9--FILE-- 10<?php 11$bases = array(23, 12 -23, 13 23.1, 14 -23.1, 15 2.345e1, 16 -2.345e1, 17 0x17, 18 027, 19 "23", 20 "23.45", 21 "2.345e1", 22 PHP_INT_MAX, 23 -PHP_INT_MAX - 1); 24 25$exponents = array(0, 26 1, 27 -1, 28 2, 29 -2, 30 3, 31 -3, 32 2.5, 33 -2.5, 34 500, 35 -500, 36 2147483647, 37 -2147483648); 38 39foreach($bases as $base) { 40 echo "\n\nBase = $base"; 41 foreach($exponents as $exponent) { 42 echo "\n..... Exponent = $exponent Result = "; 43 $res = pow($base, $exponent); 44 echo $res; 45 } 46 echo "\n\n"; 47} 48?> 49===Done=== 50--EXPECTF-- 51Base = 23 52..... Exponent = 0 Result = 1 53..... Exponent = 1 Result = 23 54..... Exponent = -1 Result = 0.043478260869565 55..... Exponent = 2 Result = 529 56..... Exponent = -2 Result = 0.001890359168242 57..... Exponent = 3 Result = 12167 58..... Exponent = -3 Result = 8.2189529053999E-5 59..... Exponent = 2.5 Result = 2536.9948758324 60..... Exponent = -2.5 Result = 0.00039416713432339 61..... Exponent = 500 Result = INF 62..... Exponent = -500 Result = 0 63..... Exponent = 2147483647 Result = INF 64..... Exponent = -2147483648 Result = 0 65 66 67 68Base = -23 69..... Exponent = 0 Result = 1 70..... Exponent = 1 Result = -23 71..... Exponent = -1 Result = -0.043478260869565 72..... Exponent = 2 Result = 529 73..... Exponent = -2 Result = 0.001890359168242 74..... Exponent = 3 Result = -12167 75..... Exponent = -3 Result = -8.2189529053999E-5 76..... Exponent = 2.5 Result = NAN 77..... Exponent = -2.5 Result = NAN 78..... Exponent = 500 Result = INF 79..... Exponent = -500 Result = 0 80..... Exponent = 2147483647 Result = -INF 81..... Exponent = -2147483648 Result = 0 82 83 84 85Base = 23.1 86..... Exponent = 0 Result = 1 87..... Exponent = 1 Result = 23.1 88..... Exponent = -1 Result = 0.043290043290043 89..... Exponent = 2 Result = 533.61 90..... Exponent = -2 Result = 0.0018740278480538 91..... Exponent = 3 Result = 12326.391 92..... Exponent = -3 Result = 8.1126746668997E-5 93..... Exponent = 2.5 Result = 2564.6608940579 94..... Exponent = -2.5 Result = 0.00038991509650141 95..... Exponent = 500 Result = INF 96..... Exponent = -500 Result = 0 97..... Exponent = 2147483647 Result = INF 98..... Exponent = -2147483648 Result = 0 99 100 101 102Base = -23.1 103..... Exponent = 0 Result = 1 104..... Exponent = 1 Result = -23.1 105..... Exponent = -1 Result = -0.043290043290043 106..... Exponent = 2 Result = 533.61 107..... Exponent = -2 Result = 0.0018740278480538 108..... Exponent = 3 Result = -12326.391 109..... Exponent = -3 Result = -8.1126746668997E-5 110..... Exponent = 2.5 Result = NAN 111..... Exponent = -2.5 Result = NAN 112..... Exponent = 500 Result = INF 113..... Exponent = -500 Result = 0 114..... Exponent = 2147483647 Result = -INF 115..... Exponent = -2147483648 Result = 0 116 117 118 119Base = 23.45 120..... Exponent = 0 Result = 1 121..... Exponent = 1 Result = 23.45 122..... Exponent = -1 Result = 0.042643923240938 123..... Exponent = 2 Result = 549.9025 124..... Exponent = -2 Result = 0.001818504189379 125..... Exponent = 3 Result = 12895.213625 126..... Exponent = -3 Result = 7.7548153065204E-5 127..... Exponent = 2.5 Result = 2662.9138571162 128..... Exponent = -2.5 Result = 0.00037552848257846 129..... Exponent = 500 Result = INF 130..... Exponent = -500 Result = 0 131..... Exponent = 2147483647 Result = INF 132..... Exponent = -2147483648 Result = 0 133 134 135 136Base = -23.45 137..... Exponent = 0 Result = 1 138..... Exponent = 1 Result = -23.45 139..... Exponent = -1 Result = -0.042643923240938 140..... Exponent = 2 Result = 549.9025 141..... Exponent = -2 Result = 0.001818504189379 142..... Exponent = 3 Result = -12895.213625 143..... Exponent = -3 Result = -7.7548153065204E-5 144..... Exponent = 2.5 Result = NAN 145..... Exponent = -2.5 Result = NAN 146..... Exponent = 500 Result = INF 147..... Exponent = -500 Result = 0 148..... Exponent = 2147483647 Result = -INF 149..... Exponent = -2147483648 Result = 0 150 151 152 153Base = 23 154..... Exponent = 0 Result = 1 155..... Exponent = 1 Result = 23 156..... Exponent = -1 Result = 0.043478260869565 157..... Exponent = 2 Result = 529 158..... Exponent = -2 Result = 0.001890359168242 159..... Exponent = 3 Result = 12167 160..... Exponent = -3 Result = 8.2189529053999E-5 161..... Exponent = 2.5 Result = 2536.9948758324 162..... Exponent = -2.5 Result = 0.00039416713432339 163..... Exponent = 500 Result = INF 164..... Exponent = -500 Result = 0 165..... Exponent = 2147483647 Result = INF 166..... Exponent = -2147483648 Result = 0 167 168 169 170Base = 23 171..... Exponent = 0 Result = 1 172..... Exponent = 1 Result = 23 173..... Exponent = -1 Result = 0.043478260869565 174..... Exponent = 2 Result = 529 175..... Exponent = -2 Result = 0.001890359168242 176..... Exponent = 3 Result = 12167 177..... Exponent = -3 Result = 8.2189529053999E-5 178..... Exponent = 2.5 Result = 2536.9948758324 179..... Exponent = -2.5 Result = 0.00039416713432339 180..... Exponent = 500 Result = INF 181..... Exponent = -500 Result = 0 182..... Exponent = 2147483647 Result = INF 183..... Exponent = -2147483648 Result = 0 184 185 186 187Base = 23 188..... Exponent = 0 Result = 1 189..... Exponent = 1 Result = 23 190..... Exponent = -1 Result = 0.043478260869565 191..... Exponent = 2 Result = 529 192..... Exponent = -2 Result = 0.001890359168242 193..... Exponent = 3 Result = 12167 194..... Exponent = -3 Result = 8.2189529053999E-5 195..... Exponent = 2.5 Result = 2536.9948758324 196..... Exponent = -2.5 Result = 0.00039416713432339 197..... Exponent = 500 Result = INF 198..... Exponent = -500 Result = 0 199..... Exponent = 2147483647 Result = INF 200..... Exponent = -2147483648 Result = 0 201 202 203 204Base = 23.45 205..... Exponent = 0 Result = 1 206..... Exponent = 1 Result = 23.45 207..... Exponent = -1 Result = 0.042643923240938 208..... Exponent = 2 Result = 549.9025 209..... Exponent = -2 Result = 0.001818504189379 210..... Exponent = 3 Result = 12895.213625 211..... Exponent = -3 Result = 7.7548153065204E-5 212..... Exponent = 2.5 Result = 2662.9138571162 213..... Exponent = -2.5 Result = 0.00037552848257846 214..... Exponent = 500 Result = INF 215..... Exponent = -500 Result = 0 216..... Exponent = 2147483647 Result = INF 217..... Exponent = -2147483648 Result = 0 218 219 220 221Base = 2.345e1 222..... Exponent = 0 Result = 1 223..... Exponent = 1 Result = 23.45 224..... Exponent = -1 Result = 0.042643923240938 225..... Exponent = 2 Result = 549.9025 226..... Exponent = -2 Result = 0.001818504189379 227..... Exponent = 3 Result = 12895.213625 228..... Exponent = -3 Result = 7.7548153065204E-5 229..... Exponent = 2.5 Result = 2662.9138571162 230..... Exponent = -2.5 Result = 0.00037552848257846 231..... Exponent = 500 Result = INF 232..... Exponent = -500 Result = 0 233..... Exponent = 2147483647 Result = INF 234..... Exponent = -2147483648 Result = 0 235 236 237 238Base = 9223372036854775807 239..... Exponent = 0 Result = 1 240..... Exponent = 1 Result = 9223372036854775807 241..... Exponent = -1 Result = 1.0842021724855E-19 242..... Exponent = 2 Result = 8.5070591730235E+37 243..... Exponent = -2 Result = 1.1754943508223E-38 244..... Exponent = 3 Result = 7.8463771692334E+56 245..... Exponent = -3 Result = 1.274473528906E-57 246..... Exponent = 2.5 Result = 2.5835942961798E+47 247..... Exponent = -2.5 Result = 3.8705767444936E-48 248..... Exponent = 500 Result = INF 249..... Exponent = -500 Result = 0 250..... Exponent = 2147483647 Result = INF 251..... Exponent = -2147483648 Result = 0 252 253 254 255Base = -9223372036854775808 256..... Exponent = 0 Result = 1 257..... Exponent = 1 Result = -9223372036854775808 258..... Exponent = -1 Result = -1.0842021724855E-19 259..... Exponent = 2 Result = 8.5070591730235E+37 260..... Exponent = -2 Result = 1.1754943508223E-38 261..... Exponent = 3 Result = -7.8463771692334E+56 262..... Exponent = -3 Result = -1.274473528906E-57 263..... Exponent = 2.5 Result = NAN 264..... Exponent = -2.5 Result = NAN 265..... Exponent = 500 Result = INF 266..... Exponent = -500 Result = 0 267..... Exponent = 2147483647 Result = -INF 268..... Exponent = -2147483648 Result = 0 269 270===Done=== 271