gmp_gcdext.phpt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. --TEST--
  2. gmp_gcdext() basic tests
  3. --EXTENSIONS--
  4. gmp
  5. --FILE--
  6. <?php
  7. $n = gmp_init("34293864345");
  8. $n1 = gmp_init("23434293864345");
  9. $a = array(
  10. array(123,45),
  11. array(4341,9734),
  12. array(23487,333),
  13. array(-234234,-123123),
  14. array(-100,-2234),
  15. array(345,"34587345"),
  16. array(345,"0"),
  17. array("345556456",345873),
  18. array("34545345556456","323432445873"),
  19. array($n, $n1),
  20. );
  21. foreach ($a as $val) {
  22. $r = gmp_gcdext($val[0],$val[1]);
  23. $check = gmp_add(gmp_mul($val[0],$r['s']), gmp_mul($val[1],$r['t']));
  24. var_dump(gmp_strval($r['g']));
  25. var_dump(gmp_strval($check));
  26. }
  27. try {
  28. var_dump(gmp_gcdext($val[0], array()));
  29. } catch (\TypeError $e) {
  30. echo $e->getMessage() . \PHP_EOL;
  31. }
  32. try {
  33. var_dump(gmp_gcdext(array(), array()));
  34. } catch (\TypeError $e) {
  35. echo $e->getMessage() . \PHP_EOL;
  36. }
  37. echo "Done\n";
  38. ?>
  39. --EXPECT--
  40. string(1) "3"
  41. string(1) "3"
  42. string(1) "1"
  43. string(1) "1"
  44. string(1) "3"
  45. string(1) "3"
  46. string(4) "3003"
  47. string(4) "3003"
  48. string(1) "2"
  49. string(1) "2"
  50. string(2) "15"
  51. string(2) "15"
  52. string(3) "345"
  53. string(3) "345"
  54. string(1) "1"
  55. string(1) "1"
  56. string(1) "1"
  57. string(1) "1"
  58. string(3) "195"
  59. string(3) "195"
  60. gmp_gcdext(): Argument #2 ($num2) must be of type GMP|string|int, array given
  61. gmp_gcdext(): Argument #1 ($num1) must be of type GMP|string|int, array given
  62. Done