@@ -71,7 +71,7 @@ class UnicodeFunctionsTest(UnicodeDatabaseTest):
71
71
72
72
# Update this if the database changes. Make sure to do a full rebuild
73
73
# (e.g. 'make distclean && make') to get the correct checksum.
74
- expectedchecksum = '98d602e1f69d5c5bb8a5910c40bbbad4e18e8370 '
74
+ expectedchecksum = '4975f3ec0acd4a62465d18c9bf8519b1964181f6 '
75
75
76
76
@requires_resource ('cpu' )
77
77
def test_function_checksum (self ):
@@ -90,6 +90,7 @@ def test_function_checksum(self):
90
90
self .db .decomposition (char ),
91
91
str (self .db .mirrored (char )),
92
92
str (self .db .combining (char )),
93
+ unicodedata .east_asian_width (char ),
93
94
]
94
95
h .update ('' .join (data ).encode ("ascii" ))
95
96
result = h .hexdigest ()
@@ -220,6 +221,23 @@ def test_east_asian_width(self):
220
221
self .assertEqual (eaw ('\u2010 ' ), 'A' )
221
222
self .assertEqual (eaw ('\U00020000 ' ), 'W' )
222
223
224
+ def test_east_asian_width_unassigned (self ):
225
+ eaw = self .db .east_asian_width
226
+ # unassigned
227
+ for char in '\u0530 \u0ece \u10c6 \u20fc \uaaca \U000107bd \U000115f2 ' :
228
+ self .assertEqual (eaw (char ), 'N' )
229
+ self .assertIs (self .db .name (char , None ), None )
230
+
231
+ # unassigned but reserved for CJK
232
+ for char in '\uFA6E \uFADA \U0002A6E0 \U0002FA20 \U0003134B \U0003FFFD ' :
233
+ self .assertEqual (eaw (char ), 'W' )
234
+ self .assertIs (self .db .name (char , None ), None )
235
+
236
+ # private use areas
237
+ for char in '\uE000 \uF800 \U000F0000 \U000FFFEE \U00100000 \U0010FFF0 ' :
238
+ self .assertEqual (eaw (char ), 'A' )
239
+ self .assertIs (self .db .name (char , None ), None )
240
+
223
241
def test_east_asian_width_9_0_changes (self ):
224
242
self .assertEqual (self .db .ucd_3_2_0 .east_asian_width ('\u231a ' ), 'N' )
225
243
self .assertEqual (self .db .east_asian_width ('\u231a ' ), 'W' )
0 commit comments