summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_re.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_re.py')
-rw-r--r--Lib/test/test_re.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py
index ff95f54..7bc702e 100644
--- a/Lib/test/test_re.py
+++ b/Lib/test/test_re.py
@@ -1136,6 +1136,39 @@ class ReTests(unittest.TestCase):
self.assertTrue(re.match(br'[19a]', b'a', re.I))
self.assertTrue(re.match(br'[19a]', b'A', re.I))
self.assertTrue(re.match(br'[19A]', b'a', re.I))
+ self.assertTrue(re.match(r'[19\xc7]', '\xc7', re.I))
+ self.assertTrue(re.match(r'[19\xc7]', '\xe7', re.I))
+ self.assertTrue(re.match(r'[19\xe7]', '\xc7', re.I))
+ self.assertTrue(re.match(r'[19\xe7]', '\xe7', re.I))
+ self.assertTrue(re.match(r'[19\u0400]', '\u0400', re.I))
+ self.assertTrue(re.match(r'[19\u0400]', '\u0450', re.I))
+ self.assertTrue(re.match(r'[19\u0450]', '\u0400', re.I))
+ self.assertTrue(re.match(r'[19\u0450]', '\u0450', re.I))
+ self.assertTrue(re.match(r'[19\U00010400]', '\U00010400', re.I))
+ self.assertTrue(re.match(r'[19\U00010400]', '\U00010428', re.I))
+ self.assertTrue(re.match(r'[19\U00010428]', '\U00010400', re.I))
+ self.assertTrue(re.match(r'[19\U00010428]', '\U00010428', re.I))
+
+ self.assertTrue(re.match(br'[19A]', b'A', re.I))
+ self.assertTrue(re.match(br'[19a]', b'a', re.I))
+ self.assertTrue(re.match(br'[19a]', b'A', re.I))
+ self.assertTrue(re.match(br'[19A]', b'a', re.I))
+ self.assertTrue(re.match(r'[19A]', 'A', re.I|re.A))
+ self.assertTrue(re.match(r'[19a]', 'a', re.I|re.A))
+ self.assertTrue(re.match(r'[19a]', 'A', re.I|re.A))
+ self.assertTrue(re.match(r'[19A]', 'a', re.I|re.A))
+ self.assertTrue(re.match(r'[19\xc7]', '\xc7', re.I|re.A))
+ self.assertIsNone(re.match(r'[19\xc7]', '\xe7', re.I|re.A))
+ self.assertIsNone(re.match(r'[19\xe7]', '\xc7', re.I|re.A))
+ self.assertTrue(re.match(r'[19\xe7]', '\xe7', re.I|re.A))
+ self.assertTrue(re.match(r'[19\u0400]', '\u0400', re.I|re.A))
+ self.assertIsNone(re.match(r'[19\u0400]', '\u0450', re.I|re.A))
+ self.assertIsNone(re.match(r'[19\u0450]', '\u0400', re.I|re.A))
+ self.assertTrue(re.match(r'[19\u0450]', '\u0450', re.I|re.A))
+ self.assertTrue(re.match(r'[19\U00010400]', '\U00010400', re.I|re.A))
+ self.assertIsNone(re.match(r'[19\U00010400]', '\U00010428', re.I|re.A))
+ self.assertIsNone(re.match(r'[19\U00010428]', '\U00010400', re.I|re.A))
+ self.assertTrue(re.match(r'[19\U00010428]', '\U00010428', re.I|re.A))
# Two different characters have the same lowercase.
assert 'K'.lower() == '\u212a'.lower() == 'k' # 'K'
@@ -1172,8 +1205,10 @@ class ReTests(unittest.TestCase):
self.assertTrue(re.match(br'[9-a]', b'_', re.I))
self.assertIsNone(re.match(br'[9-A]', b'_', re.I))
self.assertTrue(re.match(r'[\xc0-\xde]', '\xd7', re.I))
+ self.assertTrue(re.match(r'[\xc0-\xde]', '\xe7', re.I))
self.assertIsNone(re.match(r'[\xc0-\xde]', '\xf7', re.I))
self.assertTrue(re.match(r'[\xe0-\xfe]', '\xf7', re.I))
+ self.assertTrue(re.match(r'[\xe0-\xfe]', '\xc7', re.I))
self.assertIsNone(re.match(r'[\xe0-\xfe]', '\xd7', re.I))
self.assertTrue(re.match(r'[\u0430-\u045f]', '\u0450', re.I))
self.assertTrue(re.match(r'[\u0430-\u045f]', '\u0400', re.I))
@@ -1184,6 +1219,26 @@ class ReTests(unittest.TestCase):
self.assertTrue(re.match(r'[\U00010400-\U00010427]', '\U00010428', re.I))
self.assertTrue(re.match(r'[\U00010400-\U00010427]', '\U00010400', re.I))
+ self.assertTrue(re.match(r'[\xc0-\xde]', '\xd7', re.I|re.A))
+ self.assertIsNone(re.match(r'[\xc0-\xde]', '\xe7', re.I|re.A))
+ self.assertTrue(re.match(r'[\xe0-\xfe]', '\xf7', re.I|re.A))
+ self.assertIsNone(re.match(r'[\xe0-\xfe]', '\xc7', re.I|re.A))
+ self.assertTrue(re.match(r'[\u0430-\u045f]', '\u0450', re.I|re.A))
+ self.assertIsNone(re.match(r'[\u0430-\u045f]', '\u0400', re.I|re.A))
+ self.assertIsNone(re.match(r'[\u0400-\u042f]', '\u0450', re.I|re.A))
+ self.assertTrue(re.match(r'[\u0400-\u042f]', '\u0400', re.I|re.A))
+ self.assertTrue(re.match(r'[\U00010428-\U0001044f]', '\U00010428', re.I|re.A))
+ self.assertIsNone(re.match(r'[\U00010428-\U0001044f]', '\U00010400', re.I|re.A))
+ self.assertIsNone(re.match(r'[\U00010400-\U00010427]', '\U00010428', re.I|re.A))
+ self.assertTrue(re.match(r'[\U00010400-\U00010427]', '\U00010400', re.I|re.A))
+
+ self.assertTrue(re.match(r'[N-\x7f]', 'A', re.I|re.A))
+ self.assertTrue(re.match(r'[n-\x7f]', 'Z', re.I|re.A))
+ self.assertTrue(re.match(r'[N-\uffff]', 'A', re.I|re.A))
+ self.assertTrue(re.match(r'[n-\uffff]', 'Z', re.I|re.A))
+ self.assertTrue(re.match(r'[N-\U00010000]', 'A', re.I|re.A))
+ self.assertTrue(re.match(r'[n-\U00010000]', 'Z', re.I|re.A))
+
# Two different characters have the same lowercase.
assert 'K'.lower() == '\u212a'.lower() == 'k' # 'K'
self.assertTrue(re.match(r'[J-M]', '\u212a', re.I))