| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import sys
- import pytest
- from panda3d.core import TextEncoder
- def valid_characters():
- """Generator yielding all valid Unicode code points."""
- for i in range(0xd800):
- yield chr(i)
- for i in range(0xe000, sys.maxunicode + 1):
- if i != 0xfeff and i & 0xfffe != 0xfffe:
- yield chr(i)
- def test_text_decode_iso8859():
- encoder = TextEncoder()
- encoder.set_encoding(TextEncoder.E_iso8859)
- for i in range(255):
- enc = chr(i).encode('latin-1')
- assert len(enc) == 1
- dec = encoder.decode_text(enc)
- assert len(dec) == 1
- assert ord(dec) == i
- def test_text_decode_utf8():
- encoder = TextEncoder()
- encoder.set_encoding(TextEncoder.E_utf8)
- for c in valid_characters():
- enc = c.encode('utf-8')
- assert len(enc) <= 4
- dec = encoder.decode_text(enc)
- assert len(dec) == 1
- assert dec == c
- def test_text_decode_utf16be():
- encoder = TextEncoder()
- encoder.set_encoding(TextEncoder.E_utf16be)
- for c in valid_characters():
- enc = c.encode('utf-16be')
- dec = encoder.decode_text(enc)
- assert len(c) == len(dec)
- assert c == dec
- def test_text_encode_iso8859():
- encoder = TextEncoder()
- encoder.set_encoding(TextEncoder.E_iso8859)
- for i in range(255):
- c = chr(i)
- enc = encoder.encode_wtext(c)
- assert enc == c.encode('latin-1')
- def test_text_encode_utf8():
- encoder = TextEncoder()
- encoder.set_encoding(TextEncoder.E_utf8)
- for c in valid_characters():
- enc = encoder.encode_wtext(c)
- assert enc == c.encode('utf-8')
- def test_text_encode_utf16be():
- encoder = TextEncoder()
- encoder.set_encoding(TextEncoder.E_utf16be)
- for c in valid_characters():
- enc = encoder.encode_wtext(c)
- assert enc == c.encode('utf-16-be')
- def test_text_append_unicode_char():
- encoder = TextEncoder()
- encoder.set_encoding(TextEncoder.E_iso8859)
- code_points = []
- for code_point in [0, 1, 127, 128, 255, 256, 0xfffd, 0x10000, 0x10ffff]:
- if code_point <= sys.maxunicode:
- code_points.append(code_point)
- encoder.append_unicode_char(code_point)
- encoded = encoder.get_wtext()
- assert len(encoded) == len(code_points)
- for a, b in zip(code_points, encoded):
- assert a == ord(b)
|