4
use Unicode::Collate::Locale;
9
my $objZh = Unicode::Collate::Locale->
10
new(locale => 'ZH', normalization => undef);
13
ok($objZh->getlocale, 'zh');
15
$objZh->change(level => 1);
17
ok($objZh->eq("a\x{304}", "a\x{301}"));
18
ok($objZh->eq("a\x{301}", "a\x{30C}"));
19
ok($objZh->eq("a\x{30C}", "a\x{300}"));
20
ok($objZh->eq("a\x{300}", "a"));
21
ok($objZh->eq("e\x{304}", "e\x{301}"));
22
ok($objZh->eq("e\x{301}", "e\x{30C}"));
23
ok($objZh->eq("e\x{30C}", "e\x{300}"));
24
ok($objZh->eq("e\x{300}", "e"));
25
ok($objZh->eq("e\x{302}\x{304}", "e\x{302}\x{301}"));
26
ok($objZh->eq("e\x{302}\x{301}", "e\x{302}\x{30C}"));
27
ok($objZh->eq("e\x{302}\x{30C}", "e\x{302}\x{300}"));
28
ok($objZh->eq("e\x{302}\x{300}", "e\x{302}"));
29
ok($objZh->eq("i\x{304}", "i\x{301}"));
30
ok($objZh->eq("i\x{301}", "i\x{30C}"));
31
ok($objZh->eq("i\x{30C}", "i\x{300}"));
32
ok($objZh->eq("i\x{300}", "i"));
33
ok($objZh->eq("m\x{304}", "m\x{301}"));
34
ok($objZh->eq("m\x{301}", "m\x{30C}"));
35
ok($objZh->eq("m\x{30C}", "m\x{300}"));
36
ok($objZh->eq("m\x{300}", "m"));
37
ok($objZh->eq("n\x{304}", "n\x{301}"));
38
ok($objZh->eq("n\x{301}", "n\x{30C}"));
39
ok($objZh->eq("n\x{30C}", "n\x{300}"));
40
ok($objZh->eq("n\x{300}", "n"));
41
ok($objZh->eq("o\x{304}", "o\x{301}"));
42
ok($objZh->eq("o\x{301}", "o\x{30C}"));
43
ok($objZh->eq("o\x{30C}", "o\x{300}"));
44
ok($objZh->eq("o\x{300}", "o"));
45
ok($objZh->eq("u\x{304}", "u\x{301}"));
46
ok($objZh->eq("u\x{301}", "u\x{30C}"));
47
ok($objZh->eq("u\x{30C}", "u\x{300}"));
48
ok($objZh->eq("u\x{300}", "u"));
49
ok($objZh->eq("u\x{308}\x{304}", "u\x{308}\x{301}"));
50
ok($objZh->eq("u\x{308}\x{301}", "u\x{308}\x{30C}"));
51
ok($objZh->eq("u\x{308}\x{30C}", "u\x{308}\x{300}"));
52
ok($objZh->eq("u\x{308}\x{300}", "u\x{308}"));
56
$objZh->change(level => 2);
58
ok($objZh->lt("a\x{304}", "a\x{301}"));
59
ok($objZh->lt("a\x{301}", "a\x{30C}"));
60
ok($objZh->lt("a\x{30C}", "a\x{300}"));
61
ok($objZh->lt("a\x{300}", "a"));
62
ok($objZh->lt("e\x{304}", "e\x{301}"));
63
ok($objZh->lt("e\x{301}", "e\x{30C}"));
64
ok($objZh->lt("e\x{30C}", "e\x{300}"));
65
ok($objZh->lt("e\x{300}", "e"));
66
ok($objZh->lt("e\x{302}\x{304}", "e\x{302}\x{301}"));
67
ok($objZh->lt("e\x{302}\x{301}", "e\x{302}\x{30C}"));
68
ok($objZh->lt("e\x{302}\x{30C}", "e\x{302}\x{300}"));
69
ok($objZh->lt("e\x{302}\x{300}", "e\x{302}"));
70
ok($objZh->lt("i\x{304}", "i\x{301}"));
71
ok($objZh->lt("i\x{301}", "i\x{30C}"));
72
ok($objZh->lt("i\x{30C}", "i\x{300}"));
73
ok($objZh->lt("i\x{300}", "i"));
74
ok($objZh->lt("m\x{304}", "m\x{301}"));
75
ok($objZh->lt("m\x{301}", "m\x{30C}"));
76
ok($objZh->lt("m\x{30C}", "m\x{300}"));
77
ok($objZh->lt("m\x{300}", "m"));
78
ok($objZh->lt("n\x{304}", "n\x{301}"));
79
ok($objZh->lt("n\x{301}", "n\x{30C}"));
80
ok($objZh->lt("n\x{30C}", "n\x{300}"));
81
ok($objZh->lt("n\x{300}", "n"));
82
ok($objZh->lt("o\x{304}", "o\x{301}"));
83
ok($objZh->lt("o\x{301}", "o\x{30C}"));
84
ok($objZh->lt("o\x{30C}", "o\x{300}"));
85
ok($objZh->lt("o\x{300}", "o"));
86
ok($objZh->lt("u\x{304}", "u\x{301}"));
87
ok($objZh->lt("u\x{301}", "u\x{30C}"));
88
ok($objZh->lt("u\x{30C}", "u\x{300}"));
89
ok($objZh->lt("u\x{300}", "u"));
90
ok($objZh->lt("u\x{308}\x{304}", "u\x{308}\x{301}"));
91
ok($objZh->lt("u\x{308}\x{301}", "u\x{308}\x{30C}"));
92
ok($objZh->lt("u\x{308}\x{30C}", "u\x{308}\x{300}"));
93
ok($objZh->lt("u\x{308}\x{300}", "u\x{308}"));
97
ok($objZh->eq("a\x{304}", "A\x{304}"));
98
ok($objZh->eq("a\x{301}", "A\x{301}"));
99
ok($objZh->eq("a\x{30C}", "A\x{30C}"));
100
ok($objZh->eq("a\x{300}", "A\x{300}"));
101
ok($objZh->eq("e\x{304}", "E\x{304}"));
102
ok($objZh->eq("e\x{301}", "E\x{301}"));
103
ok($objZh->eq("e\x{30C}", "E\x{30C}"));
104
ok($objZh->eq("e\x{300}", "E\x{300}"));
105
ok($objZh->eq("e\x{302}\x{304}", "E\x{302}\x{304}"));
106
ok($objZh->eq("e\x{302}\x{301}", "E\x{302}\x{301}"));
107
ok($objZh->eq("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
108
ok($objZh->eq("e\x{302}\x{300}", "E\x{302}\x{300}"));
109
ok($objZh->eq("e\x{302}", "E\x{302}"));
110
ok($objZh->eq("i\x{304}", "I\x{304}"));
111
ok($objZh->eq("i\x{301}", "I\x{301}"));
112
ok($objZh->eq("i\x{30C}", "I\x{30C}"));
113
ok($objZh->eq("i\x{300}", "I\x{300}"));
114
ok($objZh->eq("m\x{304}", "M\x{304}"));
115
ok($objZh->eq("m\x{301}", "M\x{301}"));
116
ok($objZh->eq("m\x{30C}", "M\x{30C}"));
117
ok($objZh->eq("m\x{300}", "M\x{300}"));
118
ok($objZh->eq("n\x{304}", "N\x{304}"));
119
ok($objZh->eq("n\x{301}", "N\x{301}"));
120
ok($objZh->eq("n\x{30C}", "N\x{30C}"));
121
ok($objZh->eq("n\x{300}", "N\x{300}"));
122
ok($objZh->eq("o\x{304}", "O\x{304}"));
123
ok($objZh->eq("o\x{301}", "O\x{301}"));
124
ok($objZh->eq("o\x{30C}", "O\x{30C}"));
125
ok($objZh->eq("o\x{300}", "O\x{300}"));
126
ok($objZh->eq("u\x{304}", "U\x{304}"));
127
ok($objZh->eq("u\x{301}", "U\x{301}"));
128
ok($objZh->eq("u\x{30C}", "U\x{30C}"));
129
ok($objZh->eq("u\x{300}", "U\x{300}"));
130
ok($objZh->eq("u\x{308}\x{304}", "U\x{308}\x{304}"));
131
ok($objZh->eq("u\x{308}\x{301}", "U\x{308}\x{301}"));
132
ok($objZh->eq("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
133
ok($objZh->eq("u\x{308}\x{300}", "U\x{308}\x{300}"));
134
ok($objZh->eq("u\x{308}", "U\x{308}"));
138
$objZh->change(level => 3);
140
ok($objZh->lt("a\x{304}", "A\x{304}"));
141
ok($objZh->lt("a\x{301}", "A\x{301}"));
142
ok($objZh->lt("a\x{30C}", "A\x{30C}"));
143
ok($objZh->lt("a\x{300}", "A\x{300}"));
144
ok($objZh->lt("e\x{304}", "E\x{304}"));
145
ok($objZh->lt("e\x{301}", "E\x{301}"));
146
ok($objZh->lt("e\x{30C}", "E\x{30C}"));
147
ok($objZh->lt("e\x{300}", "E\x{300}"));
148
ok($objZh->lt("e\x{302}\x{304}", "E\x{302}\x{304}"));
149
ok($objZh->lt("e\x{302}\x{301}", "E\x{302}\x{301}"));
150
ok($objZh->lt("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
151
ok($objZh->lt("e\x{302}\x{300}", "E\x{302}\x{300}"));
152
ok($objZh->lt("e\x{302}", "E\x{302}"));
153
ok($objZh->lt("i\x{304}", "I\x{304}"));
154
ok($objZh->lt("i\x{301}", "I\x{301}"));
155
ok($objZh->lt("i\x{30C}", "I\x{30C}"));
156
ok($objZh->lt("i\x{300}", "I\x{300}"));
157
ok($objZh->lt("m\x{304}", "M\x{304}"));
158
ok($objZh->lt("m\x{301}", "M\x{301}"));
159
ok($objZh->lt("m\x{30C}", "M\x{30C}"));
160
ok($objZh->lt("m\x{300}", "M\x{300}"));
161
ok($objZh->lt("n\x{304}", "N\x{304}"));
162
ok($objZh->lt("n\x{301}", "N\x{301}"));
163
ok($objZh->lt("n\x{30C}", "N\x{30C}"));
164
ok($objZh->lt("n\x{300}", "N\x{300}"));
165
ok($objZh->lt("o\x{304}", "O\x{304}"));
166
ok($objZh->lt("o\x{301}", "O\x{301}"));
167
ok($objZh->lt("o\x{30C}", "O\x{30C}"));
168
ok($objZh->lt("o\x{300}", "O\x{300}"));
169
ok($objZh->lt("u\x{304}", "U\x{304}"));
170
ok($objZh->lt("u\x{301}", "U\x{301}"));
171
ok($objZh->lt("u\x{30C}", "U\x{30C}"));
172
ok($objZh->lt("u\x{300}", "U\x{300}"));
173
ok($objZh->lt("u\x{308}\x{304}", "U\x{308}\x{304}"));
174
ok($objZh->lt("u\x{308}\x{301}", "U\x{308}\x{301}"));
175
ok($objZh->lt("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
176
ok($objZh->lt("u\x{308}\x{300}", "U\x{308}\x{300}"));
177
ok($objZh->lt("u\x{308}", "U\x{308}"));
181
ok($objZh->eq("a\x{304}", "\x{101}"));
182
ok($objZh->eq("A\x{304}", "\x{100}"));
183
ok($objZh->eq("a\x{301}", pack('U', 0xE1)));
184
ok($objZh->eq("a\x{301}", "a\x{341}"));
185
ok($objZh->eq("A\x{301}", pack('U', 0xC1)));
186
ok($objZh->eq("A\x{301}", "A\x{341}"));
187
ok($objZh->eq("a\x{30C}", "\x{1CE}"));
188
ok($objZh->eq("A\x{30C}", "\x{1CD}"));
189
ok($objZh->eq("a\x{300}", pack('U', 0xE0)));
190
ok($objZh->eq("a\x{300}", "a\x{340}"));
191
ok($objZh->eq("A\x{300}", pack('U', 0xC0)));
192
ok($objZh->eq("A\x{300}", "A\x{340}"));
193
ok($objZh->eq("e\x{304}", "\x{113}"));
194
ok($objZh->eq("E\x{304}", "\x{112}"));
195
ok($objZh->eq("e\x{301}", pack('U', 0xE9)));
196
ok($objZh->eq("e\x{301}", "e\x{341}"));
197
ok($objZh->eq("E\x{301}", pack('U', 0xC9)));
198
ok($objZh->eq("E\x{301}", "E\x{341}"));
199
ok($objZh->eq("e\x{30C}", "\x{11B}"));
200
ok($objZh->eq("E\x{30C}", "\x{11A}"));
201
ok($objZh->eq("e\x{300}", pack('U', 0xE8)));
202
ok($objZh->eq("e\x{300}", "e\x{340}"));
203
ok($objZh->eq("E\x{300}", pack('U', 0xC8)));
204
ok($objZh->eq("E\x{300}", "E\x{340}"));
205
ok($objZh->eq("e\x{302}\x{304}", pack('U*', 0xEA, 0x304)));
206
ok($objZh->eq("E\x{302}\x{304}", pack('U*', 0xCA, 0x304)));
207
ok($objZh->eq("e\x{302}\x{301}", "\x{1EBF}"));
208
ok($objZh->eq("e\x{302}\x{301}", pack('U*', 0xEA, 0x301)));
209
ok($objZh->eq("e\x{302}\x{301}", "e\x{302}\x{341}"));
210
ok($objZh->eq("E\x{302}\x{301}", "\x{1EBE}"));
211
ok($objZh->eq("E\x{302}\x{301}", pack('U*', 0xCA, 0x301)));
212
ok($objZh->eq("E\x{302}\x{301}", "E\x{302}\x{341}"));
213
ok($objZh->eq("e\x{302}\x{30C}", pack('U*', 0xEA, 0x30C)));
214
ok($objZh->eq("E\x{302}\x{30C}", pack('U*', 0xCA, 0x30C)));
215
ok($objZh->eq("e\x{302}\x{300}", "\x{1EC1}"));
216
ok($objZh->eq("e\x{302}\x{300}", pack('U*', 0xEA, 0x300)));
217
ok($objZh->eq("e\x{302}\x{300}", "e\x{302}\x{340}"));
218
ok($objZh->eq("E\x{302}\x{300}", "\x{1EC0}"));
219
ok($objZh->eq("E\x{302}\x{300}", pack('U*', 0xCA, 0x300)));
220
ok($objZh->eq("E\x{302}\x{300}", "E\x{302}\x{340}"));
221
ok($objZh->eq("e\x{302}", pack('U', 0xEA)));
222
ok($objZh->eq("E\x{302}", pack('U', 0xCA)));
223
ok($objZh->eq("i\x{304}", "\x{12B}"));
224
ok($objZh->eq("I\x{304}", "\x{12A}"));
225
ok($objZh->eq("i\x{301}", pack('U', 0xED)));
226
ok($objZh->eq("i\x{301}", "i\x{341}"));
227
ok($objZh->eq("I\x{301}", pack('U', 0xCD)));
228
ok($objZh->eq("I\x{301}", "I\x{341}"));
229
ok($objZh->eq("i\x{30C}", "\x{1D0}"));
230
ok($objZh->eq("I\x{30C}", "\x{1CF}"));
231
ok($objZh->eq("i\x{300}", pack('U', 0xEC)));
232
ok($objZh->eq("i\x{300}", "i\x{340}"));
233
ok($objZh->eq("I\x{300}", pack('U', 0xCC)));
234
ok($objZh->eq("I\x{300}", "I\x{340}"));
235
ok($objZh->eq("m\x{301}", "\x{1E3F}"));
236
ok($objZh->eq("m\x{301}", "m\x{341}"));
237
ok($objZh->eq("M\x{301}", "\x{1E3E}"));
238
ok($objZh->eq("M\x{301}", "M\x{341}"));
239
ok($objZh->eq("m\x{300}", "m\x{340}"));
240
ok($objZh->eq("M\x{300}", "M\x{340}"));
241
ok($objZh->eq("n\x{301}", "\x{144}"));
242
ok($objZh->eq("n\x{301}", "n\x{341}"));
243
ok($objZh->eq("N\x{301}", "\x{143}"));
244
ok($objZh->eq("N\x{301}", "N\x{341}"));
245
ok($objZh->eq("n\x{30C}", "\x{148}"));
246
ok($objZh->eq("N\x{30C}", "\x{147}"));
247
ok($objZh->eq("n\x{300}", "\x{1F9}"));
248
ok($objZh->eq("n\x{300}", "n\x{340}"));
249
ok($objZh->eq("N\x{300}", "\x{1F8}"));
250
ok($objZh->eq("N\x{300}", "N\x{340}"));
251
ok($objZh->eq("o\x{304}", "\x{14D}"));
252
ok($objZh->eq("O\x{304}", "\x{14C}"));
253
ok($objZh->eq("o\x{301}", pack('U', 0xF3)));
254
ok($objZh->eq("o\x{301}", "o\x{341}"));
255
ok($objZh->eq("O\x{301}", pack('U', 0xD3)));
256
ok($objZh->eq("O\x{301}", "O\x{341}"));
257
ok($objZh->eq("o\x{30C}", "\x{1D2}"));
258
ok($objZh->eq("O\x{30C}", "\x{1D1}"));
259
ok($objZh->eq("o\x{300}", pack('U', 0xF2)));
260
ok($objZh->eq("o\x{300}", "o\x{340}"));
261
ok($objZh->eq("O\x{300}", pack('U', 0xD2)));
262
ok($objZh->eq("O\x{300}", "O\x{340}"));
263
ok($objZh->eq("u\x{304}", "\x{16B}"));
264
ok($objZh->eq("U\x{304}", "\x{16A}"));
265
ok($objZh->eq("u\x{301}", pack('U', 0xFA)));
266
ok($objZh->eq("u\x{301}", "u\x{341}"));
267
ok($objZh->eq("U\x{301}", pack('U', 0xDA)));
268
ok($objZh->eq("U\x{301}", "U\x{341}"));
269
ok($objZh->eq("u\x{30C}", "\x{1D4}"));
270
ok($objZh->eq("U\x{30C}", "\x{1D3}"));
271
ok($objZh->eq("u\x{300}", pack('U', 0xF9)));
272
ok($objZh->eq("u\x{300}", "u\x{340}"));
273
ok($objZh->eq("U\x{300}", pack('U', 0xD9)));
274
ok($objZh->eq("U\x{300}", "U\x{340}"));
275
ok($objZh->eq("u\x{308}\x{304}", "\x{1D6}"));
276
ok($objZh->eq("u\x{308}\x{304}", pack('U*', 0xFC, 0x304)));
277
ok($objZh->eq("U\x{308}\x{304}", "\x{1D5}"));
278
ok($objZh->eq("U\x{308}\x{304}", pack('U*', 0xDC, 0x304)));
279
ok($objZh->eq("u\x{308}\x{301}", "\x{1D8}"));
280
ok($objZh->eq("u\x{308}\x{301}", pack('U*', 0xFC, 0x301)));
281
ok($objZh->eq("u\x{308}\x{301}", "u\x{308}\x{341}"));
282
ok($objZh->eq("U\x{308}\x{301}", "\x{1D7}"));
283
ok($objZh->eq("U\x{308}\x{301}", pack('U*', 0xDC, 0x301)));
284
ok($objZh->eq("U\x{308}\x{301}", "U\x{308}\x{341}"));
285
ok($objZh->eq("u\x{308}\x{30C}", "\x{1DA}"));
286
ok($objZh->eq("u\x{308}\x{30C}", pack('U*', 0xFC, 0x30C)));
287
ok($objZh->eq("U\x{308}\x{30C}", "\x{1D9}"));
288
ok($objZh->eq("U\x{308}\x{30C}", pack('U*', 0xDC, 0x30C)));
289
ok($objZh->eq("u\x{308}\x{300}", "\x{1DC}"));
290
ok($objZh->eq("u\x{308}\x{300}", pack('U*', 0xFC, 0x300)));
291
ok($objZh->eq("u\x{308}\x{300}", "u\x{308}\x{340}"));
292
ok($objZh->eq("U\x{308}\x{300}", "\x{1DB}"));
293
ok($objZh->eq("U\x{308}\x{300}", pack('U*', 0xDC, 0x300)));
294
ok($objZh->eq("U\x{308}\x{300}", "U\x{308}\x{340}"));
295
ok($objZh->eq("u\x{308}", pack('U', 0xFC)));
296
ok($objZh->eq("U\x{308}", pack('U', 0xDC)));
300
ok($objZh->eq("e\x{302}\x{303}", "\x{1EC5}"));
301
ok($objZh->eq("E\x{302}\x{303}", "\x{1EC4}"));
302
ok($objZh->eq("e\x{302}\x{309}", "\x{1EC3}"));
303
ok($objZh->eq("E\x{302}\x{309}", "\x{1EC2}"));
304
ok($objZh->eq("e\x{302}\x{323}", "\x{1EC7}"));
305
ok($objZh->eq("E\x{302}\x{323}", "\x{1EC6}"));