gmp_pown.phpt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. --TEST--
  2. gmp_powm() basic tests
  3. --EXTENSIONS--
  4. gmp
  5. --FILE--
  6. <?php
  7. var_dump(gmp_strval(gmp_powm(0,1,10)));
  8. var_dump(gmp_strval(gmp_powm(5,1,10)));
  9. var_dump(gmp_strval(gmp_powm(-5,1,-10)));
  10. var_dump(gmp_strval(gmp_powm(-5,1,10)));
  11. var_dump(gmp_strval(gmp_powm(-5,11,10)));
  12. var_dump(gmp_strval(gmp_powm("77",3,1000)));
  13. $n = gmp_init(11);
  14. var_dump(gmp_strval(gmp_powm($n,3,1000)));
  15. $e = gmp_init(7);
  16. var_dump(gmp_strval(gmp_powm($n,$e,1000)));
  17. $m = gmp_init(900);
  18. var_dump(gmp_strval(gmp_powm($n,$e,$m)));
  19. try {
  20. var_dump(gmp_powm(5, 11, 0));
  21. } catch (\DivisionByZeroError $error) {
  22. echo $error->getMessage() . \PHP_EOL;
  23. }
  24. try {
  25. var_dump(gmp_powm(5, "11", gmp_init(0)));
  26. } catch (\DivisionByZeroError $error) {
  27. echo $error->getMessage() . \PHP_EOL;
  28. }
  29. try {
  30. var_dump(gmp_powm(array(),$e,$m));
  31. } catch (\TypeError $error) {
  32. echo $error->getMessage() . \PHP_EOL;
  33. }
  34. try {
  35. var_dump(gmp_powm($n,array(),$m));
  36. } catch (\TypeError $error) {
  37. echo $error->getMessage() . \PHP_EOL;
  38. }
  39. try {
  40. var_dump(gmp_powm($n,$error,array()));
  41. } catch (\TypeError $error) {
  42. echo $error->getMessage() . \PHP_EOL;
  43. }
  44. try {
  45. var_dump(gmp_powm(array(),array(),array()));
  46. } catch (\TypeError $error) {
  47. echo $error->getMessage() . \PHP_EOL;
  48. }
  49. try {
  50. $n = gmp_init("-5");
  51. var_dump(gmp_powm(10, $n, 10));
  52. } catch (\ValueError $error) {
  53. echo $error->getMessage() . \PHP_EOL;
  54. }
  55. $n = gmp_init("0");
  56. var_dump(gmp_powm(10, $n, 10));
  57. echo "Done\n";
  58. ?>
  59. --EXPECT--
  60. string(1) "0"
  61. string(1) "5"
  62. string(1) "5"
  63. string(1) "5"
  64. string(1) "5"
  65. string(3) "533"
  66. string(3) "331"
  67. string(3) "171"
  68. string(3) "371"
  69. Modulo by zero
  70. Modulo by zero
  71. gmp_powm(): Argument #1 ($num) must be of type GMP|string|int, array given
  72. gmp_powm(): Argument #2 ($exponent) must be of type GMP|string|int, array given
  73. gmp_powm(): Argument #2 ($exponent) must be of type GMP|string|int, TypeError given
  74. gmp_powm(): Argument #1 ($num) must be of type GMP|string|int, array given
  75. gmp_powm(): Argument #2 ($exponent) must be greater than or equal to 0
  76. object(GMP)#6 (1) {
  77. ["num"]=>
  78. string(1) "1"
  79. }
  80. Done