From 1e3781bc3527f72053fdc4aad4f4887c567c457c Mon Sep 17 00:00:00 2001 From: Chris Angelico Date: Wed, 4 Jun 2014 05:28:12 +1000 Subject: [PATCH] tests: Add unicode test. --- tests/unicode/unicode.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tests/unicode/unicode.py diff --git a/tests/unicode/unicode.py b/tests/unicode/unicode.py new file mode 100644 index 0000000000..c7e523f06a --- /dev/null +++ b/tests/unicode/unicode.py @@ -0,0 +1,18 @@ +# Test a UTF-8 encoded literal +s = "asdf©qwer" +for i in range(len(s)): + print("s[%d]: %s %X"%(i, s[i], ord(s[i]))) + +# Test all three forms of Unicode escape, and +# all blocks of UTF-8 byte patterns +s = "a\xA9\xFF\u0123\u0800\uFFEE\U0001F44C" +for i in range(-len(s), len(s)): + print("s[%d]: %s %X"%(i, s[i], ord(s[i]))) + print("s[:%d]: %d chars, '%s'"%(i, len(s[:i]), s[:i])) + for j in range(i, len(s)): + print("s[%d:%d]: %d chars, '%s'"%(i, j, len(s[i:j]), s[i:j])) + print("s[%d:]: %d chars, '%s'"%(i, len(s[i:]), s[i:])) + +# Test UTF-8 encode and decode +enc = s.encode() +print(enc, enc.decode() == s)