bug50283.phpt 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --TEST--
  2. Feature Request #50283 (allow base in gmp_strval to use full range: 2 to 62, and -2 to -36)
  3. --EXTENSIONS--
  4. gmp
  5. --FILE--
  6. <?php
  7. $a = gmp_init("0x41682179fbf5");
  8. printf("Decimal: %s, -36-based: %s\n", gmp_strval($a), gmp_strval($a,-36));
  9. printf("Decimal: %s, 36-based: %s\n", gmp_strval($a), gmp_strval($a,36));
  10. try {
  11. printf("Decimal: %s, -1-based: %s\n", gmp_strval($a), gmp_strval($a,-1));
  12. } catch (\ValueError $e) {
  13. echo $e->getMessage() . \PHP_EOL;
  14. }
  15. try {
  16. printf("Decimal: %s, 1-based: %s\n", gmp_strval($a), gmp_strval($a,1));
  17. } catch (\ValueError $e) {
  18. echo $e->getMessage() . \PHP_EOL;
  19. }
  20. try {
  21. printf("Decimal: %s, -37-based: %s\n", gmp_strval($a), gmp_strval($a,-37));
  22. } catch (\ValueError $e) {
  23. echo $e->getMessage() . \PHP_EOL;
  24. }
  25. printf("Decimal: %s, 37-based: %s\n", gmp_strval($a), gmp_strval($a,37));
  26. printf("Decimal: %s, 62-based: %s\n", gmp_strval($a), gmp_strval($a,62));
  27. try {
  28. printf("Decimal: %s, 63-based: %s\n\n", gmp_strval($a), gmp_strval($a,63));
  29. } catch (\ValueError $e) {
  30. echo $e->getMessage() . \PHP_EOL;
  31. }
  32. printf("Base 32 and 62-based: %s\n", gmp_strval(gmp_init("gh82179fbf5", 32), 62));
  33. ?>
  34. --EXPECT--
  35. Decimal: 71915494046709, -36-based: PHPISCOOL
  36. Decimal: 71915494046709, 36-based: phpiscool
  37. gmp_strval(): Argument #2 ($base) must be between 2 and 62, or -2 and -36
  38. gmp_strval(): Argument #2 ($base) must be between 2 and 62, or -2 and -36
  39. gmp_strval(): Argument #2 ($base) must be between 2 and 62, or -2 and -36
  40. Decimal: 71915494046709, 37-based: KHKATELJF
  41. Decimal: 71915494046709, 62-based: KQ6yq741
  42. gmp_strval(): Argument #2 ($base) must be between 2 and 62, or -2 and -36
  43. Base 32 and 62-based: 1NHkAcdIiD