gmp_setbit.phpt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. --TEST--
  2. gmp_setbit() basic tests
  3. --EXTENSIONS--
  4. gmp
  5. --FILE--
  6. <?php
  7. $n = gmp_init(-1);
  8. gmp_setbit($n, 10, -1);
  9. var_dump(gmp_strval($n));
  10. $n = gmp_init(5);
  11. try {
  12. gmp_setbit($n, -20, 0);
  13. } catch (\ValueError $e) {
  14. echo $e->getMessage() . \PHP_EOL;
  15. }
  16. var_dump(gmp_strval($n));
  17. $n = gmp_init(5);
  18. gmp_setbit($n, 2, 0);
  19. var_dump(gmp_strval($n));
  20. $n = gmp_init(5);
  21. gmp_setbit($n, 1, 1);
  22. var_dump(gmp_strval($n));
  23. $n = gmp_init("100000000000");
  24. gmp_setbit($n, 23, 1);
  25. var_dump(gmp_strval($n));
  26. gmp_setbit($n, 23, 0);
  27. var_dump(gmp_strval($n));
  28. gmp_setbit($n, 3);
  29. var_dump(gmp_strval($n));
  30. $b = "";
  31. try {
  32. gmp_setbit($b, 23);
  33. } catch (TypeError $e) {
  34. echo $e->getMessage(), "\n";
  35. }
  36. $a = array();
  37. try {
  38. gmp_setbit($a, array());
  39. } catch (TypeError $e) {
  40. echo $e->getMessage(), "\n";
  41. }
  42. echo "Done\n";
  43. ?>
  44. --EXPECT--
  45. string(2) "-1"
  46. gmp_setbit(): Argument #2 ($index) must be greater than or equal to 0
  47. string(1) "5"
  48. string(1) "1"
  49. string(1) "7"
  50. string(12) "100008388608"
  51. string(12) "100000000000"
  52. string(12) "100000000008"
  53. gmp_setbit(): Argument #1 ($num) must be of type GMP, string given
  54. gmp_setbit(): Argument #1 ($num) must be of type GMP, array given
  55. Done