1
2BEGIN {
3    unless ('A' eq pack('U', 0x41)) {
4	print "1..0 # Unicode::Collate cannot pack a Unicode code point\n";
5	exit 0;
6    }
7    unless (0x41 == unpack('U', 'A')) {
8	print "1..0 # Unicode::Collate cannot get a Unicode code point\n";
9	exit 0;
10    }
11    if ($ENV{PERL_CORE}) {
12	chdir('t') if -d 't';
13	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
14    }
15}
16
17use strict;
18use warnings;
19BEGIN { $| = 1; print "1..308\n"; }
20my $count = 0;
21sub ok ($;$) {
22    my $p = my $r = shift;
23    if (@_) {
24	my $x = shift;
25	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
26    }
27    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
28}
29
30use Unicode::Collate::Locale;
31
32ok(1);
33
34#########################
35
36my $objZhZ = Unicode::Collate::Locale->
37    new(locale => 'ZH__zhuyin', normalization => undef);
38
39ok($objZhZ->getlocale, 'zh__zhuyin');
40
41$objZhZ->change(level => 1);
42
43ok($objZhZ->eq("a\x{304}", "a\x{301}"));
44ok($objZhZ->eq("a\x{301}", "a\x{30C}"));
45ok($objZhZ->eq("a\x{30C}", "a\x{300}"));
46ok($objZhZ->eq("a\x{300}", "a"));
47ok($objZhZ->eq("e\x{304}", "e\x{301}"));
48ok($objZhZ->eq("e\x{301}", "e\x{30C}"));
49ok($objZhZ->eq("e\x{30C}", "e\x{300}"));
50ok($objZhZ->eq("e\x{300}", "e"));
51ok($objZhZ->eq("e\x{302}\x{304}", "e\x{302}\x{301}"));
52ok($objZhZ->eq("e\x{302}\x{301}", "e\x{302}\x{30C}"));
53ok($objZhZ->eq("e\x{302}\x{30C}", "e\x{302}\x{300}"));
54ok($objZhZ->eq("e\x{302}\x{300}", "e\x{302}"));
55ok($objZhZ->eq("i\x{304}", "i\x{301}"));
56ok($objZhZ->eq("i\x{301}", "i\x{30C}"));
57ok($objZhZ->eq("i\x{30C}", "i\x{300}"));
58ok($objZhZ->eq("i\x{300}", "i"));
59ok($objZhZ->eq("m\x{304}", "m\x{301}"));
60ok($objZhZ->eq("m\x{301}", "m\x{30C}"));
61ok($objZhZ->eq("m\x{30C}", "m\x{300}"));
62ok($objZhZ->eq("m\x{300}", "m"));
63ok($objZhZ->eq("n\x{304}", "n\x{301}"));
64ok($objZhZ->eq("n\x{301}", "n\x{30C}"));
65ok($objZhZ->eq("n\x{30C}", "n\x{300}"));
66ok($objZhZ->eq("n\x{300}", "n"));
67ok($objZhZ->eq("o\x{304}", "o\x{301}"));
68ok($objZhZ->eq("o\x{301}", "o\x{30C}"));
69ok($objZhZ->eq("o\x{30C}", "o\x{300}"));
70ok($objZhZ->eq("o\x{300}", "o"));
71ok($objZhZ->eq("u\x{304}", "u\x{301}"));
72ok($objZhZ->eq("u\x{301}", "u\x{30C}"));
73ok($objZhZ->eq("u\x{30C}", "u\x{300}"));
74ok($objZhZ->eq("u\x{300}", "u"));
75ok($objZhZ->eq("u\x{308}\x{304}", "u\x{308}\x{301}"));
76ok($objZhZ->eq("u\x{308}\x{301}", "u\x{308}\x{30C}"));
77ok($objZhZ->eq("u\x{308}\x{30C}", "u\x{308}\x{300}"));
78ok($objZhZ->eq("u\x{308}\x{300}", "u\x{308}"));
79
80# 38
81
82$objZhZ->change(level => 2);
83
84ok($objZhZ->lt("a\x{304}", "a\x{301}"));
85ok($objZhZ->lt("a\x{301}", "a\x{30C}"));
86ok($objZhZ->lt("a\x{30C}", "a\x{300}"));
87ok($objZhZ->lt("a\x{300}", "a"));
88ok($objZhZ->lt("e\x{304}", "e\x{301}"));
89ok($objZhZ->lt("e\x{301}", "e\x{30C}"));
90ok($objZhZ->lt("e\x{30C}", "e\x{300}"));
91ok($objZhZ->lt("e\x{300}", "e"));
92ok($objZhZ->lt("e\x{302}\x{304}", "e\x{302}\x{301}"));
93ok($objZhZ->lt("e\x{302}\x{301}", "e\x{302}\x{30C}"));
94ok($objZhZ->lt("e\x{302}\x{30C}", "e\x{302}\x{300}"));
95ok($objZhZ->lt("e\x{302}\x{300}", "e\x{302}"));
96ok($objZhZ->lt("i\x{304}", "i\x{301}"));
97ok($objZhZ->lt("i\x{301}", "i\x{30C}"));
98ok($objZhZ->lt("i\x{30C}", "i\x{300}"));
99ok($objZhZ->lt("i\x{300}", "i"));
100ok($objZhZ->lt("m\x{304}", "m\x{301}"));
101ok($objZhZ->lt("m\x{301}", "m\x{30C}"));
102ok($objZhZ->lt("m\x{30C}", "m\x{300}"));
103ok($objZhZ->lt("m\x{300}", "m"));
104ok($objZhZ->lt("n\x{304}", "n\x{301}"));
105ok($objZhZ->lt("n\x{301}", "n\x{30C}"));
106ok($objZhZ->lt("n\x{30C}", "n\x{300}"));
107ok($objZhZ->lt("n\x{300}", "n"));
108ok($objZhZ->lt("o\x{304}", "o\x{301}"));
109ok($objZhZ->lt("o\x{301}", "o\x{30C}"));
110ok($objZhZ->lt("o\x{30C}", "o\x{300}"));
111ok($objZhZ->lt("o\x{300}", "o"));
112ok($objZhZ->lt("u\x{304}", "u\x{301}"));
113ok($objZhZ->lt("u\x{301}", "u\x{30C}"));
114ok($objZhZ->lt("u\x{30C}", "u\x{300}"));
115ok($objZhZ->lt("u\x{300}", "u"));
116ok($objZhZ->lt("u\x{308}\x{304}", "u\x{308}\x{301}"));
117ok($objZhZ->lt("u\x{308}\x{301}", "u\x{308}\x{30C}"));
118ok($objZhZ->lt("u\x{308}\x{30C}", "u\x{308}\x{300}"));
119ok($objZhZ->lt("u\x{308}\x{300}", "u\x{308}"));
120
121# 74
122
123ok($objZhZ->eq("a\x{304}", "A\x{304}"));
124ok($objZhZ->eq("a\x{301}", "A\x{301}"));
125ok($objZhZ->eq("a\x{30C}", "A\x{30C}"));
126ok($objZhZ->eq("a\x{300}", "A\x{300}"));
127ok($objZhZ->eq("e\x{304}", "E\x{304}"));
128ok($objZhZ->eq("e\x{301}", "E\x{301}"));
129ok($objZhZ->eq("e\x{30C}", "E\x{30C}"));
130ok($objZhZ->eq("e\x{300}", "E\x{300}"));
131ok($objZhZ->eq("e\x{302}\x{304}", "E\x{302}\x{304}"));
132ok($objZhZ->eq("e\x{302}\x{301}", "E\x{302}\x{301}"));
133ok($objZhZ->eq("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
134ok($objZhZ->eq("e\x{302}\x{300}", "E\x{302}\x{300}"));
135ok($objZhZ->eq("e\x{302}", "E\x{302}"));
136ok($objZhZ->eq("i\x{304}", "I\x{304}"));
137ok($objZhZ->eq("i\x{301}", "I\x{301}"));
138ok($objZhZ->eq("i\x{30C}", "I\x{30C}"));
139ok($objZhZ->eq("i\x{300}", "I\x{300}"));
140ok($objZhZ->eq("m\x{304}", "M\x{304}"));
141ok($objZhZ->eq("m\x{301}", "M\x{301}"));
142ok($objZhZ->eq("m\x{30C}", "M\x{30C}"));
143ok($objZhZ->eq("m\x{300}", "M\x{300}"));
144ok($objZhZ->eq("n\x{304}", "N\x{304}"));
145ok($objZhZ->eq("n\x{301}", "N\x{301}"));
146ok($objZhZ->eq("n\x{30C}", "N\x{30C}"));
147ok($objZhZ->eq("n\x{300}", "N\x{300}"));
148ok($objZhZ->eq("o\x{304}", "O\x{304}"));
149ok($objZhZ->eq("o\x{301}", "O\x{301}"));
150ok($objZhZ->eq("o\x{30C}", "O\x{30C}"));
151ok($objZhZ->eq("o\x{300}", "O\x{300}"));
152ok($objZhZ->eq("u\x{304}", "U\x{304}"));
153ok($objZhZ->eq("u\x{301}", "U\x{301}"));
154ok($objZhZ->eq("u\x{30C}", "U\x{30C}"));
155ok($objZhZ->eq("u\x{300}", "U\x{300}"));
156ok($objZhZ->eq("u\x{308}\x{304}", "U\x{308}\x{304}"));
157ok($objZhZ->eq("u\x{308}\x{301}", "U\x{308}\x{301}"));
158ok($objZhZ->eq("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
159ok($objZhZ->eq("u\x{308}\x{300}", "U\x{308}\x{300}"));
160ok($objZhZ->eq("u\x{308}", "U\x{308}"));
161
162# 112
163
164$objZhZ->change(level => 3);
165
166ok($objZhZ->lt("a\x{304}", "A\x{304}"));
167ok($objZhZ->lt("a\x{301}", "A\x{301}"));
168ok($objZhZ->lt("a\x{30C}", "A\x{30C}"));
169ok($objZhZ->lt("a\x{300}", "A\x{300}"));
170ok($objZhZ->lt("e\x{304}", "E\x{304}"));
171ok($objZhZ->lt("e\x{301}", "E\x{301}"));
172ok($objZhZ->lt("e\x{30C}", "E\x{30C}"));
173ok($objZhZ->lt("e\x{300}", "E\x{300}"));
174ok($objZhZ->lt("e\x{302}\x{304}", "E\x{302}\x{304}"));
175ok($objZhZ->lt("e\x{302}\x{301}", "E\x{302}\x{301}"));
176ok($objZhZ->lt("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
177ok($objZhZ->lt("e\x{302}\x{300}", "E\x{302}\x{300}"));
178ok($objZhZ->lt("e\x{302}", "E\x{302}"));
179ok($objZhZ->lt("i\x{304}", "I\x{304}"));
180ok($objZhZ->lt("i\x{301}", "I\x{301}"));
181ok($objZhZ->lt("i\x{30C}", "I\x{30C}"));
182ok($objZhZ->lt("i\x{300}", "I\x{300}"));
183ok($objZhZ->lt("m\x{304}", "M\x{304}"));
184ok($objZhZ->lt("m\x{301}", "M\x{301}"));
185ok($objZhZ->lt("m\x{30C}", "M\x{30C}"));
186ok($objZhZ->lt("m\x{300}", "M\x{300}"));
187ok($objZhZ->lt("n\x{304}", "N\x{304}"));
188ok($objZhZ->lt("n\x{301}", "N\x{301}"));
189ok($objZhZ->lt("n\x{30C}", "N\x{30C}"));
190ok($objZhZ->lt("n\x{300}", "N\x{300}"));
191ok($objZhZ->lt("o\x{304}", "O\x{304}"));
192ok($objZhZ->lt("o\x{301}", "O\x{301}"));
193ok($objZhZ->lt("o\x{30C}", "O\x{30C}"));
194ok($objZhZ->lt("o\x{300}", "O\x{300}"));
195ok($objZhZ->lt("u\x{304}", "U\x{304}"));
196ok($objZhZ->lt("u\x{301}", "U\x{301}"));
197ok($objZhZ->lt("u\x{30C}", "U\x{30C}"));
198ok($objZhZ->lt("u\x{300}", "U\x{300}"));
199ok($objZhZ->lt("u\x{308}\x{304}", "U\x{308}\x{304}"));
200ok($objZhZ->lt("u\x{308}\x{301}", "U\x{308}\x{301}"));
201ok($objZhZ->lt("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
202ok($objZhZ->lt("u\x{308}\x{300}", "U\x{308}\x{300}"));
203ok($objZhZ->lt("u\x{308}", "U\x{308}"));
204
205# 150
206
207ok($objZhZ->eq("a\x{304}", "\x{101}"));
208ok($objZhZ->eq("A\x{304}", "\x{100}"));
209ok($objZhZ->eq("a\x{301}", pack('U', 0xE1)));
210ok($objZhZ->eq("a\x{301}", "a\x{341}"));
211ok($objZhZ->eq("A\x{301}", pack('U', 0xC1)));
212ok($objZhZ->eq("A\x{301}", "A\x{341}"));
213ok($objZhZ->eq("a\x{30C}", "\x{1CE}"));
214ok($objZhZ->eq("A\x{30C}", "\x{1CD}"));
215ok($objZhZ->eq("a\x{300}", pack('U', 0xE0)));
216ok($objZhZ->eq("a\x{300}", "a\x{340}"));
217ok($objZhZ->eq("A\x{300}", pack('U', 0xC0)));
218ok($objZhZ->eq("A\x{300}", "A\x{340}"));
219ok($objZhZ->eq("e\x{304}", "\x{113}"));
220ok($objZhZ->eq("E\x{304}", "\x{112}"));
221ok($objZhZ->eq("e\x{301}", pack('U', 0xE9)));
222ok($objZhZ->eq("e\x{301}", "e\x{341}"));
223ok($objZhZ->eq("E\x{301}", pack('U', 0xC9)));
224ok($objZhZ->eq("E\x{301}", "E\x{341}"));
225ok($objZhZ->eq("e\x{30C}", "\x{11B}"));
226ok($objZhZ->eq("E\x{30C}", "\x{11A}"));
227ok($objZhZ->eq("e\x{300}", pack('U', 0xE8)));
228ok($objZhZ->eq("e\x{300}", "e\x{340}"));
229ok($objZhZ->eq("E\x{300}", pack('U', 0xC8)));
230ok($objZhZ->eq("E\x{300}", "E\x{340}"));
231ok($objZhZ->eq("e\x{302}\x{304}", pack('U*', 0xEA, 0x304)));
232ok($objZhZ->eq("E\x{302}\x{304}", pack('U*', 0xCA, 0x304)));
233ok($objZhZ->eq("e\x{302}\x{301}", "\x{1EBF}"));
234ok($objZhZ->eq("e\x{302}\x{301}", "e\x{302}\x{341}"));
235ok($objZhZ->eq("E\x{302}\x{301}", "\x{1EBE}"));
236ok($objZhZ->eq("E\x{302}\x{301}", "E\x{302}\x{341}"));
237ok($objZhZ->eq("e\x{302}\x{301}", pack('U*', 0xEA, 0x301)));
238ok($objZhZ->eq("e\x{302}\x{301}", pack('U*', 0xEA, 0x341)));
239ok($objZhZ->eq("E\x{302}\x{301}", pack('U*', 0xCA, 0x301)));
240ok($objZhZ->eq("E\x{302}\x{301}", pack('U*', 0xCA, 0x341)));
241ok($objZhZ->eq("e\x{302}\x{30C}", pack('U*', 0xEA, 0x30C)));
242ok($objZhZ->eq("E\x{302}\x{30C}", pack('U*', 0xCA, 0x30C)));
243ok($objZhZ->eq("e\x{302}\x{300}", "\x{1EC1}"));
244ok($objZhZ->eq("e\x{302}\x{300}", "e\x{302}\x{340}"));
245ok($objZhZ->eq("E\x{302}\x{300}", "\x{1EC0}"));
246ok($objZhZ->eq("E\x{302}\x{300}", "E\x{302}\x{340}"));
247ok($objZhZ->eq("e\x{302}\x{300}", pack('U*', 0xEA, 0x300)));
248ok($objZhZ->eq("e\x{302}\x{300}", pack('U*', 0xEA, 0x340)));
249ok($objZhZ->eq("E\x{302}\x{300}", pack('U*', 0xCA, 0x300)));
250ok($objZhZ->eq("E\x{302}\x{300}", pack('U*', 0xCA, 0x340)));
251ok($objZhZ->eq("e\x{302}", pack('U', 0xEA)));
252ok($objZhZ->eq("E\x{302}", pack('U', 0xCA)));
253ok($objZhZ->eq("i\x{304}", "\x{12B}"));
254ok($objZhZ->eq("I\x{304}", "\x{12A}"));
255ok($objZhZ->eq("i\x{301}", pack('U', 0xED)));
256ok($objZhZ->eq("i\x{301}", "i\x{341}"));
257ok($objZhZ->eq("I\x{301}", pack('U', 0xCD)));
258ok($objZhZ->eq("I\x{301}", "I\x{341}"));
259ok($objZhZ->eq("i\x{30C}", "\x{1D0}"));
260ok($objZhZ->eq("I\x{30C}", "\x{1CF}"));
261ok($objZhZ->eq("i\x{300}", pack('U', 0xEC)));
262ok($objZhZ->eq("i\x{300}", "i\x{340}"));
263ok($objZhZ->eq("I\x{300}", pack('U', 0xCC)));
264ok($objZhZ->eq("I\x{300}", "I\x{340}"));
265ok($objZhZ->eq("m\x{301}", "\x{1E3F}"));
266ok($objZhZ->eq("m\x{301}", "m\x{341}"));
267ok($objZhZ->eq("M\x{301}", "\x{1E3E}"));
268ok($objZhZ->eq("M\x{301}", "M\x{341}"));
269ok($objZhZ->eq("m\x{300}", "m\x{340}"));
270ok($objZhZ->eq("M\x{300}", "M\x{340}"));
271ok($objZhZ->eq("n\x{301}", "\x{144}"));
272ok($objZhZ->eq("n\x{301}", "n\x{341}"));
273ok($objZhZ->eq("N\x{301}", "\x{143}"));
274ok($objZhZ->eq("N\x{301}", "N\x{341}"));
275ok($objZhZ->eq("n\x{30C}", "\x{148}"));
276ok($objZhZ->eq("N\x{30C}", "\x{147}"));
277ok($objZhZ->eq("n\x{300}", "\x{1F9}"));
278ok($objZhZ->eq("n\x{300}", "n\x{340}"));
279ok($objZhZ->eq("N\x{300}", "\x{1F8}"));
280ok($objZhZ->eq("N\x{300}", "N\x{340}"));
281ok($objZhZ->eq("o\x{304}", "\x{14D}"));
282ok($objZhZ->eq("O\x{304}", "\x{14C}"));
283ok($objZhZ->eq("o\x{301}", pack('U', 0xF3)));
284ok($objZhZ->eq("o\x{301}", "o\x{341}"));
285ok($objZhZ->eq("O\x{301}", pack('U', 0xD3)));
286ok($objZhZ->eq("O\x{301}", "O\x{341}"));
287ok($objZhZ->eq("o\x{30C}", "\x{1D2}"));
288ok($objZhZ->eq("O\x{30C}", "\x{1D1}"));
289ok($objZhZ->eq("o\x{300}", pack('U', 0xF2)));
290ok($objZhZ->eq("o\x{300}", "o\x{340}"));
291ok($objZhZ->eq("O\x{300}", pack('U', 0xD2)));
292ok($objZhZ->eq("O\x{300}", "O\x{340}"));
293ok($objZhZ->eq("u\x{304}", "\x{16B}"));
294ok($objZhZ->eq("U\x{304}", "\x{16A}"));
295ok($objZhZ->eq("u\x{301}", pack('U', 0xFA)));
296ok($objZhZ->eq("u\x{301}", "u\x{341}"));
297ok($objZhZ->eq("U\x{301}", pack('U', 0xDA)));
298ok($objZhZ->eq("U\x{301}", "U\x{341}"));
299ok($objZhZ->eq("u\x{30C}", "\x{1D4}"));
300ok($objZhZ->eq("U\x{30C}", "\x{1D3}"));
301ok($objZhZ->eq("u\x{300}", pack('U', 0xF9)));
302ok($objZhZ->eq("u\x{300}", "u\x{340}"));
303ok($objZhZ->eq("U\x{300}", pack('U', 0xD9)));
304ok($objZhZ->eq("U\x{300}", "U\x{340}"));
305ok($objZhZ->eq("u\x{308}\x{304}", "\x{1D6}"));
306ok($objZhZ->eq("U\x{308}\x{304}", "\x{1D5}"));
307ok($objZhZ->eq("u\x{308}\x{304}", pack('U*', 0xFC, 0x304)));
308ok($objZhZ->eq("U\x{308}\x{304}", pack('U*', 0xDC, 0x304)));
309ok($objZhZ->eq("u\x{308}\x{301}", "\x{1D8}"));
310ok($objZhZ->eq("u\x{308}\x{301}", "u\x{308}\x{341}"));
311ok($objZhZ->eq("U\x{308}\x{301}", "\x{1D7}"));
312ok($objZhZ->eq("U\x{308}\x{301}", "U\x{308}\x{341}"));
313ok($objZhZ->eq("u\x{308}\x{301}", pack('U*', 0xFC, 0x301)));
314ok($objZhZ->eq("u\x{308}\x{301}", pack('U*', 0xFC, 0x341)));
315ok($objZhZ->eq("U\x{308}\x{301}", pack('U*', 0xDC, 0x301)));
316ok($objZhZ->eq("U\x{308}\x{301}", pack('U*', 0xDC, 0x341)));
317ok($objZhZ->eq("u\x{308}\x{30C}", "\x{1DA}"));
318ok($objZhZ->eq("U\x{308}\x{30C}", "\x{1D9}"));
319ok($objZhZ->eq("u\x{308}\x{30C}", pack('U*', 0xFC, 0x30C)));
320ok($objZhZ->eq("U\x{308}\x{30C}", pack('U*', 0xDC, 0x30C)));
321ok($objZhZ->eq("u\x{308}\x{300}", "\x{1DC}"));
322ok($objZhZ->eq("u\x{308}\x{300}", "u\x{308}\x{340}"));
323ok($objZhZ->eq("U\x{308}\x{300}", "\x{1DB}"));
324ok($objZhZ->eq("U\x{308}\x{300}", "U\x{308}\x{340}"));
325ok($objZhZ->eq("u\x{308}\x{300}", pack('U*', 0xFC, 0x300)));
326ok($objZhZ->eq("u\x{308}\x{300}", pack('U*', 0xFC, 0x340)));
327ok($objZhZ->eq("U\x{308}\x{300}", pack('U*', 0xDC, 0x300)));
328ok($objZhZ->eq("U\x{308}\x{300}", pack('U*', 0xDC, 0x340)));
329ok($objZhZ->eq("u\x{308}", pack('U', 0xFC)));
330ok($objZhZ->eq("U\x{308}", pack('U', 0xDC)));
331
332# 274
333
334ok($objZhZ->eq("e\x{302}\x{303}", "\x{1EC5}"));
335ok($objZhZ->eq("E\x{302}\x{303}", "\x{1EC4}"));
336ok($objZhZ->eq("e\x{302}\x{309}", "\x{1EC3}"));
337ok($objZhZ->eq("E\x{302}\x{309}", "\x{1EC2}"));
338ok($objZhZ->eq("e\x{302}\x{323}", "\x{1EC7}"));
339ok($objZhZ->eq("E\x{302}\x{323}", "\x{1EC6}"));
340
341# 280
342
343$objZhZ->change(level => 1);
344
345ok($objZhZ->lt("\x{A000}", "\x{516B}"));
346ok($objZhZ->lt("\x{516B}", "\x{628A}"));
347ok($objZhZ->lt("\x{628A}", "\x{5DF4}"));
348ok($objZhZ->lt("\x{5DF4}", "\x{767D}"));
349ok($objZhZ->lt("\x{767D}", "\x{5317}"));
350ok($objZhZ->lt("\x{5317}", "\x{9F3B}"));
351ok($objZhZ->lt("\x{9F3B}", "\x{4E0D}"));
352ok($objZhZ->lt("\x{4E0D}", "\x{547D}"));
353ok($objZhZ->lt("\x{547D}", "\x{6BCD}"));
354ok($objZhZ->lt("\x{6BCD}", "\x{6253}"));
355ok($objZhZ->lt("\x{6253}", "\x{7530}"));
356ok($objZhZ->lt("\x{7530}", "\x{52AA}"));
357ok($objZhZ->lt("\x{52AA}", "\x{529B}"));
358ok($objZhZ->lt("\x{529B}", "\x{5375}"));
359ok($objZhZ->lt("\x{5375}", "\x{5149}"));
360ok($objZhZ->lt("\x{5149}", "\x{5915}"));
361ok($objZhZ->lt("\x{5915}", "\x{4E09}"));
362ok($objZhZ->lt("\x{4E09}", "\x{4E00}"));
363ok($objZhZ->lt("\x{4E00}", "\x{7528}"));
364
365# 299
366
367$objZhZ->change(variable => 'non-ignorable');
368
369ok($objZhZ->eq("\x{300}", "\x{2C9}"));
370ok($objZhZ->lt("\x{2C9}", "\x{2CA}"));
371ok($objZhZ->lt("\x{2CA}", "\x{2C7}"));
372ok($objZhZ->lt("\x{2C7}", "\x{2CB}"));
373ok($objZhZ->lt("\x{2CB}", "\x{2D9}"));
374ok($objZhZ->lt("\x{2D9}", "\x{2EA}"));
375ok($objZhZ->lt("\x{2EA}", "\x{2EB}"));
376ok($objZhZ->lt("\x{2EB}", "\ "));
377
378# 307
379
380$objZhZ->change(level => 2);
381
382ok($objZhZ->lt("\x{300}", "\x{2C9}"));
383
384# 308
385