round.phpt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --TEST--
  2. Simple math tests
  3. --FILE--
  4. <?php
  5. define('LONG_MAX', is_int(5000000000)? 9223372036854775807 : 0x7FFFFFFF);
  6. define('LONG_MIN', -LONG_MAX - 1);
  7. printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ),
  8. is_int(LONG_MIN-1),is_int(LONG_MAX+1));
  9. function epsilon_equal($left, $right): bool {
  10. return abs(($left-$right) / $left) < 1e-12;
  11. }
  12. var_dump(epsilon_equal( -1 , ceil(-1.5) ));
  13. var_dump(epsilon_equal( 2 , ceil( 1.5) ));
  14. var_dump(epsilon_equal( -2 , floor(-1.5) ));
  15. var_dump(epsilon_equal( 1 , floor(1.5) ));
  16. var_dump(epsilon_equal( LONG_MIN , ceil(LONG_MIN - 0.5) ));
  17. var_dump(epsilon_equal( LONG_MIN+1 , ceil(LONG_MIN + 0.5) ));
  18. var_dump(epsilon_equal( LONG_MIN-1 , round(LONG_MIN - 0.6) ));
  19. var_dump(epsilon_equal( LONG_MIN , round(LONG_MIN - 0.4) ));
  20. var_dump(epsilon_equal( LONG_MIN , round(LONG_MIN + 0.4) ));
  21. var_dump(epsilon_equal( LONG_MIN+1 , round(LONG_MIN + 0.6) ));
  22. var_dump(epsilon_equal( LONG_MIN-1 , floor(LONG_MIN - 0.5) ));
  23. var_dump(epsilon_equal( LONG_MIN , floor(LONG_MIN + 0.5) ));
  24. var_dump(epsilon_equal( LONG_MAX , ceil(LONG_MAX - 0.5) ));
  25. var_dump(epsilon_equal( LONG_MAX+1 , ceil(LONG_MAX + 0.5) ));
  26. var_dump(epsilon_equal( LONG_MAX-1 , round(LONG_MAX - 0.6) ));
  27. var_dump(epsilon_equal( LONG_MAX , round(LONG_MAX - 0.4) ));
  28. var_dump(epsilon_equal( LONG_MAX , round(LONG_MAX + 0.4) ));
  29. var_dump(epsilon_equal( LONG_MAX+1 , round(LONG_MAX + 0.6) ));
  30. var_dump(epsilon_equal( LONG_MAX-1 , floor(LONG_MAX - 0.5) ));
  31. var_dump(epsilon_equal( LONG_MAX , floor(LONG_MAX + 0.5) ));
  32. ?>
  33. --EXPECT--
  34. 1,1,0,0
  35. bool(true)
  36. bool(true)
  37. bool(true)
  38. bool(true)
  39. bool(true)
  40. bool(true)
  41. bool(true)
  42. bool(true)
  43. bool(true)
  44. bool(true)
  45. bool(true)
  46. bool(true)
  47. bool(true)
  48. bool(true)
  49. bool(true)
  50. bool(true)
  51. bool(true)
  52. bool(true)
  53. bool(true)
  54. bool(true)