diff options
author | Guido van Rossum <guido@python.org> | 2007-07-15 13:00:05 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2007-07-15 13:00:05 (GMT) |
commit | 8ac004e69895e8fd525307fdc1e093f92b15ce09 (patch) | |
tree | 947227b6fa3f72f1b6591af1e14181ee30f1bc5d /Lib | |
parent | 49c12ac04e1bfb238454d9ca2cf3a5acd9991ef5 (diff) | |
download | cpython-8ac004e69895e8fd525307fdc1e093f92b15ce09.zip cpython-8ac004e69895e8fd525307fdc1e093f92b15ce09.tar.gz cpython-8ac004e69895e8fd525307fdc1e093f92b15ce09.tar.bz2 |
Make chr() and ord() return/accept surrogate pairs in narrow builds.
The domain of chr() and the range of ord() are now always [0 ... 0x10FFFF].
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_builtin.py | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index 036a9f2..7e37c29 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -169,15 +169,23 @@ class BuiltinTest(unittest.TestCase): self.assertEqual(chr(97), 'a') self.assertEqual(chr(0xff), '\xff') self.assertRaises(ValueError, chr, 1<<24) - self.assertEqual( - chr(sys.maxunicode), - str(('\\U%08x' % (sys.maxunicode)).encode("ascii"), 'unicode-escape') - ) - self.assertRaises(ValueError, chr, sys.maxunicode+1) + self.assertEqual(chr(sys.maxunicode), + str(('\\U%08x' % (sys.maxunicode)).encode("ascii"), + 'unicode-escape')) self.assertRaises(TypeError, chr) - - def XXX_test_cmp(self): - # cmp() is no longer supported + self.assertEqual(chr(0x0000FFFF), "\U0000FFFF") + self.assertEqual(chr(0x00010000), "\U00010000") + self.assertEqual(chr(0x00010001), "\U00010001") + self.assertEqual(chr(0x000FFFFE), "\U000FFFFE") + self.assertEqual(chr(0x000FFFFF), "\U000FFFFF") + self.assertEqual(chr(0x00100000), "\U00100000") + self.assertEqual(chr(0x00100001), "\U00100001") + self.assertEqual(chr(0x0010FFFE), "\U0010FFFE") + self.assertEqual(chr(0x0010FFFF), "\U0010FFFF") + self.assertRaises(ValueError, chr, -1) + self.assertRaises(ValueError, chr, 0x00110000) + + def test_cmp(self): self.assertEqual(cmp(-1, 1), -1) self.assertEqual(cmp(1, -1), 1) self.assertEqual(cmp(1, 1), 0) @@ -1288,6 +1296,17 @@ class BuiltinTest(unittest.TestCase): self.assertEqual(ord(chr(sys.maxunicode)), sys.maxunicode) self.assertRaises(TypeError, ord, 42) + self.assertEqual(ord(chr(0x10FFFF)), 0x10FFFF) + self.assertEqual(ord("\U0000FFFF"), 0x0000FFFF) + self.assertEqual(ord("\U00010000"), 0x00010000) + self.assertEqual(ord("\U00010001"), 0x00010001) + self.assertEqual(ord("\U000FFFFE"), 0x000FFFFE) + self.assertEqual(ord("\U000FFFFF"), 0x000FFFFF) + self.assertEqual(ord("\U00100000"), 0x00100000) + self.assertEqual(ord("\U00100001"), 0x00100001) + self.assertEqual(ord("\U0010FFFE"), 0x0010FFFE) + self.assertEqual(ord("\U0010FFFF"), 0x0010FFFF) + def test_pow(self): self.assertEqual(pow(0,0), 1) self.assertEqual(pow(0,1), 0) |