Strings.chr().phpt 877 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Strings::chr()
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\Strings;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. Assert::same("\x00", Strings::chr(0x000000));
  10. Assert::same("\x7F", Strings::chr(0x00007F));
  11. Assert::same("\u{80}", Strings::chr(0x000080));
  12. Assert::same("\u{7FF}", Strings::chr(0x0007FF));
  13. Assert::same("\u{800}", Strings::chr(0x000800));
  14. Assert::same("\u{D7FF}", Strings::chr(0x00D7FF));
  15. Assert::same("\u{E000}", Strings::chr(0x00E000));
  16. Assert::same("\u{FFFF}", Strings::chr(0x00FFFF));
  17. Assert::same("\u{10000}", Strings::chr(0x010000));
  18. Assert::same("\u{10FFFF}", Strings::chr(0x10FFFF));
  19. foreach ([-1, 0xD800, 0xDFFF, 0x110000] as $code) {
  20. Assert::exception(
  21. fn() => Strings::chr($code),
  22. Nette\InvalidArgumentException::class,
  23. 'Code point must be in range 0x0 to 0xD7FF or 0xE000 to 0x10FFFF.',
  24. );
  25. }