gmp_divexact.phpt 1002 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. gmp_divexact() tests
  3. --EXTENSIONS--
  4. gmp
  5. --SKIPIF--
  6. <?php
  7. if (!defined('GMP_VERSION') || version_compare("4.2.1", GMP_VERSION, ">=")) {
  8. die("skip your GMP is too old and will crash");
  9. }
  10. ?>
  11. --FILE--
  12. <?php
  13. $r = gmp_divexact("233", "23345555555555555555555555");
  14. var_dump(gmp_strval($r));
  15. try {
  16. $r = gmp_divexact("233", "0");
  17. var_dump(gmp_strval($r));
  18. } catch (\DivisionByZeroError $e) {
  19. echo $e->getMessage() . \PHP_EOL;
  20. }
  21. $r = gmp_divexact("100", "10");
  22. var_dump(gmp_strval($r));
  23. $r = gmp_divexact("1024", "2");
  24. var_dump(gmp_strval($r));
  25. $n = gmp_init("10000000000000000000");
  26. $r = gmp_divexact($n, "2");
  27. var_dump(gmp_strval($r));
  28. $r = gmp_divexact($n, "50");
  29. var_dump(gmp_strval($r));
  30. $n1 = gmp_init("-100000000000000000000000000");
  31. $r = gmp_divexact($n1, $n);
  32. var_dump(gmp_strval($r));
  33. echo "Done\n";
  34. ?>
  35. --EXPECT--
  36. string(1) "0"
  37. Division by zero
  38. string(2) "10"
  39. string(3) "512"
  40. string(19) "5000000000000000000"
  41. string(18) "200000000000000000"
  42. string(9) "-10000000"
  43. Done