Skip to content

Commit acb61d0

Browse files
Parse bidi defaults for unassigned code points
1 parent 75d4839 commit acb61d0

4 files changed

Lines changed: 2317 additions & 2131 deletions

File tree

Lib/test/test_unicodedata.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ def test_category(self):
254254
self.assertRaises(TypeError, self.db.category, 'xx')
255255

256256
def test_bidirectional(self):
257-
self.assertEqual(self.db.bidirectional('\uFFFE'), '')
257+
self.assertEqual(self.db.bidirectional('\uFFFE'), 'BN')
258258
self.assertEqual(self.db.bidirectional(' '), 'WS')
259259
self.assertEqual(self.db.bidirectional('A'), 'L')
260260
self.assertEqual(self.db.bidirectional('\U00020000'), 'L')
@@ -282,6 +282,17 @@ def test_bidirectional(self):
282282
self.assertRaises(TypeError, self.db.bidirectional)
283283
self.assertRaises(TypeError, self.db.bidirectional, 'xx')
284284

285+
def test_bidirectional_unassigned(self):
286+
if self.old:
287+
return
288+
self.assertEqual(self.db.bidirectional('\u0378'), 'L')
289+
self.assertEqual(self.db.bidirectional('\u077F'), 'AL')
290+
self.assertEqual(self.db.bidirectional('\u20CF'), 'ET')
291+
self.assertEqual(self.db.bidirectional('\u0590'), 'R')
292+
self.assertEqual(self.db.bidirectional('\uFFFF'), 'BN')
293+
self.assertEqual(self.db.bidirectional('\U0001FFFE'), 'BN')
294+
self.assertEqual(self.db.bidirectional('\U00010D01'), 'AL')
295+
285296
def test_decomposition(self):
286297
self.assertEqual(self.db.decomposition('\uFFFE'),'')
287298
self.assertEqual(self.db.decomposition('\u00bc'), '<fraction> 0031 2044 0034')
@@ -611,9 +622,9 @@ class UnicodeFunctionsTest(unittest.TestCase, BaseUnicodeFunctionsTest):
611622

612623
# Update this if the database changes. Make sure to do a full rebuild
613624
# (e.g. 'make distclean && make') to get the correct checksum.
614-
expectedchecksum = ('83cc43a2fbb779185832b4c049217d80b05bf349'
625+
expectedchecksum = ('668dbbea1136e69d4f00677a5988b23bc78aefc6'
615626
if quicktest else
616-
'65670ae03a324c5f9e826a4de3e25bae4d73c9b7')
627+
'506a5f2dab2e3d9018a5620f016973bc8c7df0d9')
617628

618629
def test_isxidstart(self):
619630
self.assertTrue(self.db.isxidstart('S'))
@@ -861,9 +872,9 @@ def graphemes(*args):
861872
class Unicode_3_2_0_FunctionsTest(unittest.TestCase, BaseUnicodeFunctionsTest):
862873
db = unicodedata.ucd_3_2_0
863874
old = True
864-
expectedchecksum = ('4154d8d1232837e255edf3cdcbb5ab184d71f4a4'
875+
expectedchecksum = ('2164a66700e03cba9c9f5ed9e9a8d594d2da136a'
865876
if quicktest else
866-
'3aabaf66823b21b3d305dad804a62f6f6387c93e')
877+
'a8276cec9b6991779c5bdaa46c1ae7cc50bc2403')
867878

868879

869880
class UnicodeMiscTest(unittest.TestCase):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
:func:`unicodedata.bidirectional` now return the correct default bidi class
2+
for unassigned code points.

0 commit comments

Comments
 (0)