PageRenderTime 39ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/hphp/test/zend/good/ext/standard/tests/math/pow.php

http://github.com/facebook/hiphop-php
PHP | 142 lines | 140 code | 2 blank | 0 comment | 0 complexity | b0de68f937e1b17c8a3d69c7cfa579e4 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-2-Clause, BSD-3-Clause, MPL-2.0-no-copyleft-exception, MIT, LGPL-2.0, Apache-2.0
  1. <?hh // $Id$
  2. <<__EntryPoint>> function main(): void {
  3. $long_max = is_int(5000000000)? (float)9223372036854775807 : (float)0x7FFFFFFF;
  4. $long_min = -$long_max - 1;
  5. printf("%d,%d,%d,%d\n",is_float($long_min ),is_float($long_max ),
  6. is_int($long_min-1),is_int($long_max+1));
  7. $tests = <<<TESTS
  8. 0.25 === pow(-2,-2)
  9. -0.5 === pow(-2,-1)
  10. 1 === pow(-2, 0)
  11. -2 === pow(-2, 1)
  12. 4 === pow(-2, 2)
  13. 1.0 === pow(-1,-2)
  14. -1.0 === pow(-1,-1)
  15. 1 === pow(-1, 0)
  16. -1 === pow(-1, 1)
  17. 1 === pow(-1, 2)
  18. TRUE === is_infinite(pow(0,-2))
  19. TRUE === is_infinite(pow(0,-1))
  20. 1 === pow( 0, 0)
  21. 0 === pow( 0, 1)
  22. 0 === pow( 0, 2)
  23. 1.0 === pow( 1,-2)
  24. 1.0 === pow( 1,-1)
  25. 1 === pow( 1, 0)
  26. 1 === pow( 1, 1)
  27. 1 === pow( 1, 2)
  28. 0.25 === pow( 2,-2)
  29. 0.5 === pow( 2,-1)
  30. 1 === pow( 2, 0)
  31. 2 === pow( 2, 1)
  32. 4 === pow( 2, 2)
  33. 0.25 === pow(-2,-2.0)
  34. -0.5 === pow(-2,-1.0)
  35. 1.0 === pow(-2, 0.0)
  36. -2.0 === pow(-2, 1.0)
  37. 4.0 === pow(-2, 2.0)
  38. 1.0 === pow(-1,-2.0)
  39. -1.0 === pow(-1,-1.0)
  40. 1.0 === pow(-1, 0.0)
  41. -1.0 === pow(-1, 1.0)
  42. 1.0 === pow(-1, 2.0)
  43. TRUE === is_infinite(pow(0,-2.0))
  44. TRUE === is_infinite(pow(0,-1.0))
  45. 1.0 === pow( 0, 0.0)
  46. 0.0 === pow( 0, 1.0)
  47. 0.0 === pow( 0, 2.0)
  48. 1.0 === pow( 1,-2.0)
  49. 1.0 === pow( 1,-1.0)
  50. 1.0 === pow( 1, 0.0)
  51. 1.0 === pow( 1, 1.0)
  52. 1.0 === pow( 1, 2.0)
  53. 0.25 === pow( 2,-2.0)
  54. 0.5 === pow( 2,-1.0)
  55. 1.0 === pow( 2, 0.0)
  56. 2.0 === pow( 2, 1.0)
  57. 4.0 === pow( 2, 2.0)
  58. 2147483648 === pow(2,31)
  59. -2147483648 ~== pow(-2,31)
  60. 1000000000 === pow(10,9)
  61. 100000000 === pow(-10,8)
  62. 1 === pow(-1,1443279822)
  63. -1 === pow(-1,1443279821)
  64. sqrt(2.0) ~== pow(2,1/2)
  65. 0.25 === pow(-2.0,-2.0)
  66. -0.5 === pow(-2.0,-1.0)
  67. 1.0 === pow(-2.0, 0.0)
  68. -2.0 === pow(-2.0, 1.0)
  69. 4.0 === pow(-2.0, 2.0)
  70. 1.0 === pow(-1.0,-2.0)
  71. -1.0 === pow(-1.0,-1.0)
  72. 1.0 === pow(-1.0, 0.0)
  73. -1.0 === pow(-1.0, 1.0)
  74. 1.0 === pow(-1.0, 2.0)
  75. TRUE === is_infinite(pow(0.0,-2.0))
  76. TRUE === is_infinite(pow(0.0,-1.0))
  77. 1.0 === pow( 0.0, 0.0)
  78. 0.0 === pow( 0.0, 1.0)
  79. 0.0 === pow( 0.0, 2.0)
  80. 1.0 === pow( 1.0,-2.0)
  81. 1.0 === pow( 1.0,-1.0)
  82. 1.0 === pow( 1.0, 0.0)
  83. 1.0 === pow( 1.0, 1.0)
  84. 1.0 === pow( 1.0, 2.0)
  85. 0.25 === pow( 2.0,-2.0)
  86. 0.5 === pow( 2.0,-1.0)
  87. 1.0 === pow( 2.0, 0.0)
  88. 2.0 === pow( 2.0, 1.0)
  89. 4.0 === pow( 2.0, 2.0)
  90. 0.25 === pow(-2.0,-2)
  91. -0.5 === pow(-2.0,-1)
  92. 1.0 === pow(-2.0, 0)
  93. -2.0 === pow(-2.0, 1)
  94. 4.0 === pow(-2.0, 2)
  95. 1.0 === pow(-1.0,-2)
  96. -1.0 === pow(-1.0,-1)
  97. 1.0 === pow(-1.0, 0)
  98. -1.0 === pow(-1.0, 1)
  99. 1.0 === pow(-1.0, 2)
  100. TRUE === is_infinite(pow( 0.0,-2))
  101. TRUE === is_infinite(pow( 0.0,-1))
  102. 1.0 === pow( 0.0, 0)
  103. 0.0 === pow( 0.0, 1)
  104. 0.0 === pow( 0.0, 2)
  105. 1.0 === pow( 1.0,-2)
  106. 1.0 === pow( 1.0,-1)
  107. 1.0 === pow( 1.0, 0)
  108. 1.0 === pow( 1.0, 1)
  109. 1.0 === pow( 1.0, 2)
  110. 0.25 === pow( 2.0,-2)
  111. 0.5 === pow( 2.0,-1)
  112. 1.0 === pow( 2.0, 0)
  113. 2.0 === pow( 2.0, 1)
  114. 4.0 === pow( 2.0, 2)
  115. 2.0 === pow( 4, 0.5)
  116. 2.0 === pow( 4.0, 0.5)
  117. 3.0 === pow( 27, 1/3)
  118. 3.0 === pow(27.0, 1/3)
  119. 0.5 === pow( 4, -0.5)
  120. 0.5 === pow( 4.0, -0.5)
  121. $long_max-1 === pow($long_max-1,1)
  122. $long_min+1 === pow($long_min+1,1)
  123. ($long_max-1)*($long_max-1) ~== pow($long_max-1,2)
  124. ($long_min+1)*($long_min+1) ~== pow($long_min+1,2)
  125. (float)($long_max-1) === pow($long_max-1,1.0)
  126. (float)($long_min+1) === pow($long_min+1,1.0)
  127. ($long_max-1)*($long_max-1) ~== pow($long_max-1,2.0)
  128. ($long_min+1)*($long_min+1) ~== pow($long_min+1,2.0)
  129. $long_max === pow($long_max,1)
  130. $long_min === pow($long_min,1)
  131. $long_max*$long_max ~== pow($long_max,2)
  132. $long_min*$long_min ~== pow($long_min,2)
  133. (float)$long_max === pow($long_max,1.0)
  134. (float)$long_min === pow($long_min,1.0)
  135. $long_max*$long_max ~== pow($long_max,2.0)
  136. $long_min*$long_min ~== pow($long_min,2.0)
  137. TESTS;
  138. echo "On failure, please mail result to php-dev@lists.php.net\n";
  139. include(dirname(__FILE__) . '/../../../../tests/quicktester.inc');
  140. }