1
2BEGIN {
3    if ($ENV{PERL_CORE}) {
4	chdir('t') if -d 't';
5	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
6    }
7}
8
9use strict;
10use warnings;
11BEGIN { $| = 1; print "1..616\n"; }
12my $count = 0;
13sub ok ($;$) {
14    my $p = my $r = shift;
15    if (@_) {
16	my $x = shift;
17	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
18    }
19    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
20}
21
22use Unicode::Collate::Locale;
23
24ok(1);
25
26sub _pack_U   { Unicode::Collate::pack_U(@_) }
27sub _unpack_U { Unicode::Collate::unpack_U(@_) }
28
29#########################
30
31my $objCu = Unicode::Collate::Locale->
32    new(locale => 'CU', normalization => undef);
33
34ok($objCu->getlocale, 'cu');
35
36# 2
37
38### diacritical marks and combining letters ###
39
40# tailored secondary collation elements
41my @sec = (
42  "\x{487}",  "\x{485}",  "\x{486}",  "\x{301}",  "\x{300}",  "\x{311}",
43  "\x{483}",  "\x{306}",  "\x{308}",  "\x{2DF6}", "\x{2DE0}", "\x{2DE1}",
44  "\x{2DE2}", "\x{2DE3}", "\x{2DF7}", "\x{A674}", "\x{2DE4}", "\x{2DE5}",
45  "\x{A675}", "\x{A676}", "\x{2DE6}", "\x{2DE7}", "\x{2DE8}", "\x{2DE9}",
46  "\x{2DEA}", "\x{A67B}", "\x{2DEB}", "\x{2DEC}", "\x{2DED}", "\x{2DEE}",
47  "\x{2DF9}", "\x{A677}", "\x{A69E}", "\x{2DEF}", "\x{2DF0}", "\x{2DF1}",
48  "\x{2DF2}", "\x{2DF3}", "\x{33E}",  "\x{A679}", "\x{A67F}", "\x{2DFA}",
49  "\x{2DFB}", "\x{2DFE}", "\x{2DFC}", "\x{2DFD}", "\x{2DF4}", "\x{332}",
50  "\x{327}",  "\x{328}" # CEDILLA and OGONEK (not tailored)
51);
52
53$objCu->change(level => 1);
54
55for (my $i = 1; $i < @sec; $i++) {
56    ok($objCu->eq("a$sec[$i-1]", "a$sec[$i]"));
57}
58
59# 51
60
61$objCu->change(level => 2);
62
63for (my $i = 1; $i < @sec; $i++) {
64    ok($objCu->lt("a$sec[$i-1]", "a$sec[$i]"));
65}
66
67ok($objCu->gt("a\x{309A}", "a\x{3099}")); # KANA VOICED and SEMI-VOICED
68
69for (my $i = 1; $i < @sec; $i++) {
70    ok($objCu->lt("a\x{309A}b$sec[$i-1]", "a\x{3099}b$sec[$i]"));
71}
72
73# 150
74
75$objCu->change(backwards => undef);
76
77for (my $i = 1; $i < @sec; $i++) {
78    ok($objCu->lt("a$sec[$i-1]", "a$sec[$i]"));
79}
80
81ok($objCu->gt("a\x{309A}", "a\x{3099}")); # KANA VOICED and SEMI-VOICED
82
83for (my $i = 1; $i < @sec; $i++) {
84    ok($objCu->gt("a\x{309A}b$sec[$i-1]", "a\x{3099}b$sec[$i]"));
85}
86
87# 249
88
89$objCu->change(level => 3);
90
91ok($objCu->eq("", "\x{0487}"));
92ok($objCu->eq("", "\x{A67C}"));
93ok($objCu->eq("", "\x{A67E}"));
94
95ok($objCu->eq("a\x{487}", "a\x{A67C}"));
96ok($objCu->eq("a\x{487}", "a\x{A67E}"));
97ok($objCu->eq("a\x{308}", "a\x{30F}"));
98ok($objCu->eq("a\x{33E}", "a\x{A678}"));
99ok($objCu->eq("a\x{33E}", "a\x{2E2F}"));
100ok($objCu->eq("a\x{A67F}","a\x{A67D}"));
101ok($objCu->eq("a\x{A67F}","a\x{A67A}"));
102
103ok($objCu->eq("a\x{2DF5}","a\x{2DED}\x{2DEE}"));
104
105# 260
106
107### normal letters ###
108
109$objCu->change(level => 1);
110
111ok($objCu->lt("\x{410}z", "\x{411}"));
112ok($objCu->lt("\x{411}z", "\x{412}"));
113ok($objCu->lt("\x{412}z", "\x{413}"));
114ok($objCu->lt("\x{413}z", "\x{414}"));
115ok($objCu->lt("\x{414}z", "\x{415}"));
116ok($objCu->lt("\x{415}z", "\x{416}"));
117ok($objCu->lt("\x{416}z", "\x{405}")); # Dze
118ok($objCu->lt("\x{405}z", "\x{417}"));
119ok($objCu->lt("\x{417}z", "\x{418}"));
120ok($objCu->lt("\x{418}z", "\x{406}")); # Byel-Ukr I
121ok($objCu->lt("\x{406}z", "\x{41a}"));
122ok($objCu->lt("\x{41a}z", "\x{41b}"));
123ok($objCu->lt("\x{41b}z", "\x{41c}"));
124ok($objCu->lt("\x{41c}z", "\x{41d}"));
125ok($objCu->lt("\x{41d}z", "\x{40a}")); # Nje
126ok($objCu->lt("\x{40a}z", "\x{50a}")); # Komi Nje
127ok($objCu->lt("\x{50a}z", "\x{41e}"));
128ok($objCu->lt("\x{41e}z", "\x{41f}"));
129ok($objCu->lt("\x{41f}z", "\x{420}"));
130ok($objCu->lt("\x{420}z", "\x{421}"));
131ok($objCu->lt("\x{421}z", "\x{422}"));
132ok($objCu->lt("\x{422}z", "\x{40b}")); # Tshe
133ok($objCu->lt("\x{40b}z", "\x{423}"));
134ok($objCu->lt("\x{423}z", "\x{424}"));
135ok($objCu->lt("\x{424}z", "\x{425}"));
136ok($objCu->lt("\x{425}z", "\x{426}"));
137ok($objCu->lt("\x{426}z", "\x{427}"));
138ok($objCu->lt("\x{427}z", "\x{428}"));
139ok($objCu->lt("\x{428}z", "\x{429}"));
140ok($objCu->lt("\x{429}z", "\x{42a}"));
141ok($objCu->lt("\x{42a}z", "\x{42b}"));
142ok($objCu->lt("\x{42b}z", "\x{42c}"));
143ok($objCu->lt("\x{42c}z", "\x{42d}"));
144ok($objCu->lt("\x{42d}z", "\x{462}")); # Yat
145ok($objCu->lt("\x{462}z", "\x{42e}"));
146ok($objCu->lt("\x{42e}z", "\x{46a}")); # Big Yus
147ok($objCu->lt("\x{46a}z", "\x{42f}"));
148ok($objCu->lt("\x{42f}z", "\x{466}")); # Little Yus
149ok($objCu->lt("\x{466}z", "\x{46e}")); # Ksi
150ok($objCu->lt("\x{46e}z", "\x{470}")); # Psi
151ok($objCu->lt("\x{470}z", "\x{472}")); # Fita
152ok($objCu->lt("\x{472}z", "\x{474}")); # Izhitsa
153
154# 302
155
156$objCu->change(level => 2);
157
158ok($objCu->eq("\x{430}", "\x{410}"));
159ok($objCu->eq("\x{431}", "\x{411}"));
160ok($objCu->eq("\x{432}", "\x{412}"));
161ok($objCu->eq("\x{433}", "\x{413}"));
162ok($objCu->eq("\x{434}", "\x{414}"));
163ok($objCu->eq("\x{435}", "\x{415}"));
164ok($objCu->eq("\x{436}", "\x{416}"));
165ok($objCu->eq("\x{455}", "\x{405}")); # Dze
166ok($objCu->eq("\x{437}", "\x{417}"));
167ok($objCu->eq("\x{438}", "\x{418}"));
168ok($objCu->eq("\x{456}", "\x{406}")); # Byel-Ukr I
169ok($objCu->eq("\x{43a}", "\x{41a}"));
170ok($objCu->eq("\x{43b}", "\x{41b}"));
171ok($objCu->eq("\x{43c}", "\x{41c}"));
172ok($objCu->eq("\x{43d}", "\x{41d}"));
173ok($objCu->eq("\x{45a}", "\x{40a}")); # Nje
174ok($objCu->eq("\x{50b}", "\x{50a}")); # Komi Nje
175ok($objCu->eq("\x{43e}", "\x{41e}"));
176ok($objCu->eq("\x{43f}", "\x{41f}"));
177ok($objCu->eq("\x{440}", "\x{420}"));
178ok($objCu->eq("\x{441}", "\x{421}"));
179ok($objCu->eq("\x{442}", "\x{422}"));
180ok($objCu->eq("\x{45b}", "\x{40b}")); # Tshe
181ok($objCu->eq("\x{443}", "\x{423}"));
182ok($objCu->eq("\x{444}", "\x{424}"));
183ok($objCu->eq("\x{445}", "\x{425}"));
184ok($objCu->eq("\x{446}", "\x{426}"));
185ok($objCu->eq("\x{447}", "\x{427}"));
186ok($objCu->eq("\x{448}", "\x{428}"));
187ok($objCu->eq("\x{449}", "\x{429}"));
188ok($objCu->eq("\x{44a}", "\x{42a}"));
189ok($objCu->eq("\x{44b}", "\x{42b}"));
190ok($objCu->eq("\x{44c}", "\x{42c}"));
191ok($objCu->eq("\x{44d}", "\x{42d}"));
192ok($objCu->eq("\x{463}", "\x{462}")); # Yat
193ok($objCu->eq("\x{44e}", "\x{42e}"));
194ok($objCu->eq("\x{46b}", "\x{46a}")); # Big Yus
195ok($objCu->eq("\x{44f}", "\x{42f}"));
196ok($objCu->eq("\x{467}", "\x{466}")); # Little Yus
197ok($objCu->eq("\x{46f}", "\x{46e}")); # Ksi
198ok($objCu->eq("\x{471}", "\x{470}")); # Psi
199ok($objCu->eq("\x{473}", "\x{472}")); # Fita
200ok($objCu->eq("\x{475}", "\x{474}")); # Izhitsa
201
202# 345
203
204ok($objCu->eq("\x{435}", "\x{454}")); # ie / ukr ie
205ok($objCu->eq("\x{435}", "\x{404}")); # ie / UKR IE
206ok($objCu->eq("\x{415}", "\x{454}")); # IE / ukr ie
207ok($objCu->eq("\x{415}", "\x{404}")); # IE / UKR IE
208ok($objCu->eq("\x{454}", "\x{404}")); # ukr ie / UKR IE
209
210ok($objCu->eq("\x{47B}", "\x{47A}")); # round omega / ROUND OMEGA
211ok($objCu->eq("\x{47B}", "\x{43E}")); # round omega / o
212ok($objCu->eq("\x{47B}", "\x{41E}")); # round omega / O
213ok($objCu->eq("\x{47A}", "\x{43E}")); # ROUND OMEGA / o
214ok($objCu->eq("\x{47A}", "\x{41E}")); # ROUND OMEGA / O
215ok($objCu->eq("\x{43E}", "\x{461}")); # o / omega
216ok($objCu->eq("\x{43E}", "\x{460}")); # o / OMEGA
217ok($objCu->eq("\x{41E}", "\x{461}")); # O / omega
218ok($objCu->eq("\x{41E}", "\x{460}")); # O / OMEGA
219ok($objCu->eq("\x{461}", "\x{460}")); # omega / OMEGA
220ok($objCu->eq("\x{461}", "\x{A64D}")); # omega / broad omega
221ok($objCu->eq("\x{461}", "\x{A64C}")); # omega / BROAD OMEGA
222ok($objCu->eq("\x{460}", "\x{A64D}")); # OMEGA / broad omega
223ok($objCu->eq("\x{460}", "\x{A64C}")); # OMEGA / BROAD OMEGA
224ok($objCu->eq("\x{A64D}","\x{A64C}")); # broad omega / BROAD OMEGA
225
226ok($objCu->eq("\x{479}", "\x{478}"));  # uk / UK
227ok($objCu->eq("\x{479}", "\x{A64B}")); # uk / monograph uk
228ok($objCu->eq("\x{479}", "\x{A64A}")); # uk / MONOGRAPH UK
229ok($objCu->eq("\x{478}", "\x{A64B}")); # UK / monograph uk
230ok($objCu->eq("\x{478}", "\x{A64A}")); # UK / MONOGRAPH UK
231ok($objCu->eq("\x{A64B}","\x{A64A}")); # monograph uk / MONOGRAPH UK
232ok($objCu->eq("\x{A64B}","\x{443}"));  # monograph uk / u
233ok($objCu->eq("\x{A64B}","\x{423}"));  # monograph uk / U
234ok($objCu->eq("\x{A64A}","\x{443}"));  # MONOGRAPH UK / u
235ok($objCu->eq("\x{A64A}","\x{423}"));  # MONOGRAPH UK / U
236
237ok($objCu->eq("\x{A657}","\x{A656}")); # iotified a / IOTIFIED A
238ok($objCu->eq("\x{A657}","\x{467}"));  # iotified a / little yus
239ok($objCu->eq("\x{A657}","\x{466}"));  # iotified a / LITTLE YUS
240ok($objCu->eq("\x{A656}","\x{467}"));  # IOTIFIED A / little yus
241ok($objCu->eq("\x{A656}","\x{466}"));  # IOTIFIED A / LITTLE YUS
242
243# 380
244
245$objCu->change(level => 3);
246
247ok($objCu->gt("\x{430}", "\x{410}"));
248ok($objCu->gt("\x{431}", "\x{411}"));
249ok($objCu->gt("\x{432}", "\x{412}"));
250ok($objCu->gt("\x{433}", "\x{413}"));
251ok($objCu->gt("\x{434}", "\x{414}"));
252ok($objCu->gt("\x{435}", "\x{415}"));
253ok($objCu->gt("\x{436}", "\x{416}"));
254ok($objCu->gt("\x{455}", "\x{405}")); # Dze
255ok($objCu->gt("\x{437}", "\x{417}"));
256ok($objCu->gt("\x{438}", "\x{418}"));
257ok($objCu->gt("\x{456}", "\x{406}")); # Byel-Ukr I
258ok($objCu->gt("\x{43a}", "\x{41a}"));
259ok($objCu->gt("\x{43b}", "\x{41b}"));
260ok($objCu->gt("\x{43c}", "\x{41c}"));
261ok($objCu->gt("\x{43d}", "\x{41d}"));
262ok($objCu->gt("\x{45a}", "\x{40a}")); # Nje
263ok($objCu->gt("\x{50b}", "\x{50a}")); # Komi Nje
264ok($objCu->gt("\x{43e}", "\x{41e}"));
265ok($objCu->gt("\x{43f}", "\x{41f}"));
266ok($objCu->gt("\x{440}", "\x{420}"));
267ok($objCu->gt("\x{441}", "\x{421}"));
268ok($objCu->gt("\x{442}", "\x{422}"));
269ok($objCu->gt("\x{45b}", "\x{40b}")); # Tshe
270ok($objCu->gt("\x{443}", "\x{423}"));
271ok($objCu->gt("\x{444}", "\x{424}"));
272ok($objCu->gt("\x{445}", "\x{425}"));
273ok($objCu->gt("\x{446}", "\x{426}"));
274ok($objCu->gt("\x{447}", "\x{427}"));
275ok($objCu->gt("\x{448}", "\x{428}"));
276ok($objCu->gt("\x{449}", "\x{429}"));
277ok($objCu->gt("\x{44a}", "\x{42a}"));
278ok($objCu->gt("\x{44b}", "\x{42b}"));
279ok($objCu->gt("\x{44c}", "\x{42c}"));
280ok($objCu->gt("\x{44d}", "\x{42d}"));
281ok($objCu->gt("\x{463}", "\x{462}")); # Yat
282ok($objCu->gt("\x{44e}", "\x{42e}"));
283ok($objCu->gt("\x{46b}", "\x{46a}")); # Big Yus
284ok($objCu->gt("\x{44f}", "\x{42f}"));
285ok($objCu->gt("\x{467}", "\x{466}")); # Little Yus
286ok($objCu->gt("\x{46f}", "\x{46e}")); # Ksi
287ok($objCu->gt("\x{471}", "\x{470}")); # Psi
288ok($objCu->gt("\x{473}", "\x{472}")); # Fita
289ok($objCu->gt("\x{475}", "\x{474}")); # Izhitsa
290
291# 423
292
293ok($objCu->lt("\x{435}", "\x{454}")); # ie / ukr ie
294ok($objCu->lt("\x{435}", "\x{404}")); # ie / UKR IE
295ok($objCu->lt("\x{415}", "\x{454}")); # IE / ukr ie
296ok($objCu->lt("\x{415}", "\x{404}")); # IE / UKR IE
297ok($objCu->gt("\x{454}", "\x{404}")); # ukr ie / UKR IE
298
299ok($objCu->gt("\x{47B}", "\x{47A}")); # round omega / ROUND OMEGA
300ok($objCu->lt("\x{47B}", "\x{43E}")); # round omega / o
301ok($objCu->lt("\x{47B}", "\x{41E}")); # round omega / O
302ok($objCu->lt("\x{47A}", "\x{43E}")); # ROUND OMEGA / o
303ok($objCu->lt("\x{47A}", "\x{41E}")); # ROUND OMEGA / O
304ok($objCu->lt("\x{43E}", "\x{461}")); # o / omega
305ok($objCu->lt("\x{43E}", "\x{460}")); # o / OMEGA
306ok($objCu->lt("\x{41E}", "\x{461}")); # O / omega
307ok($objCu->lt("\x{41E}", "\x{460}")); # O / OMEGA
308ok($objCu->gt("\x{461}", "\x{460}")); # omega / OMEGA
309ok($objCu->lt("\x{461}", "\x{A64D}")); # omega / broad omega
310ok($objCu->lt("\x{461}", "\x{A64C}")); # omega / BROAD OMEGA
311ok($objCu->lt("\x{460}", "\x{A64D}")); # OMEGA / broad omega
312ok($objCu->lt("\x{460}", "\x{A64C}")); # OMEGA / BROAD OMEGA
313ok($objCu->gt("\x{A64D}","\x{A64C}")); # broad omega / BROAD OMEGA
314
315ok($objCu->gt("\x{479}", "\x{478}"));  # uk / UK
316ok($objCu->lt("\x{479}", "\x{A64B}")); # uk / monograph uk
317ok($objCu->lt("\x{479}", "\x{A64A}")); # uk / MONOGRAPH UK
318ok($objCu->lt("\x{478}", "\x{A64B}")); # UK / monograph uk
319ok($objCu->lt("\x{478}", "\x{A64A}")); # UK / MONOGRAPH UK
320ok($objCu->gt("\x{A64B}","\x{A64A}")); # monograph uk / MONOGRAPH UK
321ok($objCu->lt("\x{A64B}","\x{443}"));  # monograph uk / u
322ok($objCu->lt("\x{A64B}","\x{423}"));  # monograph uk / U
323ok($objCu->lt("\x{A64A}","\x{443}"));  # MONOGRAPH UK / u
324ok($objCu->lt("\x{A64A}","\x{423}"));  # MONOGRAPH UK / U
325
326ok($objCu->gt("\x{A657}","\x{A656}")); # iotified a / IOTIFIED A
327ok($objCu->lt("\x{A657}","\x{467}"));  # iotified a / little yus
328ok($objCu->lt("\x{A657}","\x{466}"));  # iotified a / LITTLE YUS
329ok($objCu->lt("\x{A656}","\x{467}"));  # IOTIFIED A / little yus
330ok($objCu->lt("\x{A656}","\x{466}"));  # IOTIFIED A / LITTLE YUS
331
332# 458
333
334$objCu->change(upper_before_lower => 0);
335
336ok($objCu->lt("\x{430}", "\x{410}"));
337ok($objCu->lt("\x{431}", "\x{411}"));
338ok($objCu->lt("\x{432}", "\x{412}"));
339ok($objCu->lt("\x{433}", "\x{413}"));
340ok($objCu->lt("\x{434}", "\x{414}"));
341ok($objCu->lt("\x{435}", "\x{415}"));
342ok($objCu->lt("\x{436}", "\x{416}"));
343ok($objCu->lt("\x{455}", "\x{405}")); # Dze
344ok($objCu->lt("\x{437}", "\x{417}"));
345ok($objCu->lt("\x{438}", "\x{418}"));
346ok($objCu->lt("\x{456}", "\x{406}")); # Byel-Ukr I
347ok($objCu->lt("\x{43a}", "\x{41a}"));
348ok($objCu->lt("\x{43b}", "\x{41b}"));
349ok($objCu->lt("\x{43c}", "\x{41c}"));
350ok($objCu->lt("\x{43d}", "\x{41d}"));
351ok($objCu->lt("\x{45a}", "\x{40a}")); # Nje
352ok($objCu->lt("\x{50b}", "\x{50a}")); # Komi Nje
353ok($objCu->lt("\x{43e}", "\x{41e}"));
354ok($objCu->lt("\x{43f}", "\x{41f}"));
355ok($objCu->lt("\x{440}", "\x{420}"));
356ok($objCu->lt("\x{441}", "\x{421}"));
357ok($objCu->lt("\x{442}", "\x{422}"));
358ok($objCu->lt("\x{45b}", "\x{40b}")); # Tshe
359ok($objCu->lt("\x{443}", "\x{423}"));
360ok($objCu->lt("\x{444}", "\x{424}"));
361ok($objCu->lt("\x{445}", "\x{425}"));
362ok($objCu->lt("\x{446}", "\x{426}"));
363ok($objCu->lt("\x{447}", "\x{427}"));
364ok($objCu->lt("\x{448}", "\x{428}"));
365ok($objCu->lt("\x{449}", "\x{429}"));
366ok($objCu->lt("\x{44a}", "\x{42a}"));
367ok($objCu->lt("\x{44b}", "\x{42b}"));
368ok($objCu->lt("\x{44c}", "\x{42c}"));
369ok($objCu->lt("\x{44d}", "\x{42d}"));
370ok($objCu->lt("\x{463}", "\x{462}")); # Yat
371ok($objCu->lt("\x{44e}", "\x{42e}"));
372ok($objCu->lt("\x{46b}", "\x{46a}")); # Big Yus
373ok($objCu->lt("\x{44f}", "\x{42f}"));
374ok($objCu->lt("\x{467}", "\x{466}")); # Little Yus
375ok($objCu->lt("\x{46f}", "\x{46e}")); # Ksi
376ok($objCu->lt("\x{471}", "\x{470}")); # Psi
377ok($objCu->lt("\x{473}", "\x{472}")); # Fita
378ok($objCu->lt("\x{475}", "\x{474}")); # Izhitsa
379
380# 501
381
382ok($objCu->lt("\x{435}", "\x{454}")); # ie / ukr ie
383ok($objCu->lt("\x{435}", "\x{404}")); # ie / UKR IE
384ok($objCu->lt("\x{415}", "\x{454}")); # IE / ukr ie
385ok($objCu->lt("\x{415}", "\x{404}")); # IE / UKR IE
386ok($objCu->lt("\x{454}", "\x{404}")); # ukr ie / UKR IE
387
388ok($objCu->lt("\x{47B}", "\x{47A}")); # round omega / ROUND OMEGA
389ok($objCu->lt("\x{47B}", "\x{43E}")); # round omega / o
390ok($objCu->lt("\x{47B}", "\x{41E}")); # round omega / O
391ok($objCu->lt("\x{47A}", "\x{43E}")); # ROUND OMEGA / o
392ok($objCu->lt("\x{47A}", "\x{41E}")); # ROUND OMEGA / O
393ok($objCu->lt("\x{43E}", "\x{461}")); # o / omega
394ok($objCu->lt("\x{43E}", "\x{460}")); # o / OMEGA
395ok($objCu->lt("\x{41E}", "\x{461}")); # O / omega
396ok($objCu->lt("\x{41E}", "\x{460}")); # O / OMEGA
397ok($objCu->lt("\x{461}", "\x{460}")); # omega / OMEGA
398ok($objCu->lt("\x{461}", "\x{A64D}")); # omega / broad omega
399ok($objCu->lt("\x{461}", "\x{A64C}")); # omega / BROAD OMEGA
400ok($objCu->lt("\x{460}", "\x{A64D}")); # OMEGA / broad omega
401ok($objCu->lt("\x{460}", "\x{A64C}")); # OMEGA / BROAD OMEGA
402ok($objCu->lt("\x{A64D}","\x{A64C}")); # broad omega / BROAD OMEGA
403
404ok($objCu->lt("\x{479}", "\x{478}"));  # uk / UK
405ok($objCu->lt("\x{479}", "\x{A64B}")); # uk / monograph uk
406ok($objCu->lt("\x{479}", "\x{A64A}")); # uk / MONOGRAPH UK
407ok($objCu->lt("\x{478}", "\x{A64B}")); # UK / monograph uk
408ok($objCu->lt("\x{478}", "\x{A64A}")); # UK / MONOGRAPH UK
409ok($objCu->lt("\x{A64B}","\x{A64A}")); # monograph uk / MONOGRAPH UK
410ok($objCu->lt("\x{A64B}","\x{443}"));  # monograph uk / u
411ok($objCu->lt("\x{A64B}","\x{423}"));  # monograph uk / U
412ok($objCu->lt("\x{A64A}","\x{443}"));  # MONOGRAPH UK / u
413ok($objCu->lt("\x{A64A}","\x{423}"));  # MONOGRAPH UK / U
414
415ok($objCu->lt("\x{A657}","\x{A656}")); # iotified a / IOTIFIED A
416ok($objCu->lt("\x{A657}","\x{467}"));  # iotified a / little yus
417ok($objCu->lt("\x{A657}","\x{466}"));  # iotified a / LITTLE YUS
418ok($objCu->lt("\x{A656}","\x{467}"));  # IOTIFIED A / little yus
419ok($objCu->lt("\x{A656}","\x{466}"));  # IOTIFIED A / LITTLE YUS
420
421# 536
422
423# equiv.
424
425ok($objCu->eq("\x{1C81}", "\x{434}"));
426ok($objCu->eq("\x{A641}", "\x{437}"));
427ok($objCu->eq("\x{A640}", "\x{417}"));
428ok($objCu->eq("\x{1C82}", "\x{43E}"));
429
430ok($objCu->eq("\x{479}", "\x{43E}\x{443}"));
431ok($objCu->eq("\x{479}","\x{1C82}\x{443}"));
432ok($objCu->eq("\x{478}", "\x{41E}\x{443}"));
433ok($objCu->eq("\x{478}", "\x{41E}\x{423}"));
434
435# 544
436
437# decomp. equiv.
438
439ok($objCu->eq("\x{457}", "\x{456}\x{308}"));
440ok($objCu->eq("\x{407}", "\x{406}\x{308}"));
441ok($objCu->eq("\x{439}", "\x{438}\x{306}"));
442ok($objCu->eq("\x{419}", "\x{418}\x{306}"));
443ok($objCu->eq("\x{4E6}", "\x{41E}\x{308}"));
444ok($objCu->eq("\x{4E7}", "\x{43E}\x{308}"));
445ok($objCu->eq("\x{45E}", "\x{443}\x{306}"));
446ok($objCu->eq("\x{40E}", "\x{423}\x{306}"));
447ok($objCu->eq("\x{4F1}", "\x{443}\x{308}"));
448ok($objCu->eq("\x{4F0}", "\x{423}\x{308}"));
449ok($objCu->eq("\x{4F3}", "\x{443}\x{30B}"));
450ok($objCu->eq("\x{4F2}", "\x{423}\x{30B}"));
451ok($objCu->eq("\x{4EF}", "\x{443}\x{304}"));
452ok($objCu->eq("\x{4EE}", "\x{423}\x{304}"));
453
454ok($objCu->eq("\x{47C}", "\x{A64C}\x{486}\x{311}"));
455ok($objCu->eq("\x{47D}", "\x{A64D}\x{486}\x{311}"));
456ok($objCu->eq("\x{47E}", "\x{460}\x{442}"));
457ok($objCu->eq("\x{47F}", "\x{461}\x{442}"));
458
459# 562
460
461# misc. equiv.
462
463ok($objCu->eq("\x{4D1}", "\x{430}\x{306}"));
464ok($objCu->eq("\x{4D0}", "\x{410}\x{306}"));
465ok($objCu->eq("\x{4D3}", "\x{430}\x{308}"));
466ok($objCu->eq("\x{4D2}", "\x{410}\x{308}"));
467ok($objCu->eq("\x{450}", "\x{435}\x{300}"));
468ok($objCu->eq("\x{400}", "\x{415}\x{300}"));
469ok($objCu->eq("\x{4D7}", "\x{435}\x{306}"));
470ok($objCu->eq("\x{4D6}", "\x{415}\x{306}"));
471ok($objCu->eq("\x{451}", "\x{435}\x{308}"));
472ok($objCu->eq("\x{401}", "\x{415}\x{308}"));
473ok($objCu->eq("\x{45D}", "\x{438}\x{300}"));
474ok($objCu->eq("\x{40D}", "\x{418}\x{300}"));
475ok($objCu->eq("\x{4E5}", "\x{438}\x{308}"));
476ok($objCu->eq("\x{4E4}", "\x{418}\x{308}"));
477ok($objCu->eq("\x{4ED}", "\x{44D}\x{308}"));
478ok($objCu->eq("\x{4EC}", "\x{42D}\x{308}"));
479ok($objCu->eq("\x{477}", "\x{475}\x{30F}"));
480ok($objCu->eq("\x{476}", "\x{474}\x{30F}"));
481
482# 580
483
484# latin equiv.
485
486ok($objCu->eq("a\x{300}", _pack_U(0xE0)));
487ok($objCu->eq("A\x{300}", _pack_U(0xC0)));
488ok($objCu->eq("e\x{300}", _pack_U(0xE8)));
489ok($objCu->eq("E\x{300}", _pack_U(0xC8)));
490ok($objCu->eq("i\x{300}", _pack_U(0xEC)));
491ok($objCu->eq("I\x{300}", _pack_U(0xCC)));
492ok($objCu->eq("o\x{300}", _pack_U(0xF2)));
493ok($objCu->eq("O\x{300}", _pack_U(0xD2)));
494ok($objCu->eq("u\x{300}", _pack_U(0xF9)));
495ok($objCu->eq("U\x{300}", _pack_U(0xD9)));
496ok($objCu->eq("y\x{300}", "\x{1EF3}"));
497ok($objCu->eq("Y\x{300}", "\x{1EF2}"));
498
499ok($objCu->eq("a\x{301}", _pack_U(0xE1)));
500ok($objCu->eq("A\x{301}", _pack_U(0xC1)));
501ok($objCu->eq("e\x{301}", _pack_U(0xE9)));
502ok($objCu->eq("E\x{301}", _pack_U(0xC9)));
503ok($objCu->eq("i\x{301}", _pack_U(0xED)));
504ok($objCu->eq("I\x{301}", _pack_U(0xCD)));
505ok($objCu->eq("o\x{301}", _pack_U(0xF3)));
506ok($objCu->eq("O\x{301}", _pack_U(0xD3)));
507ok($objCu->eq("u\x{301}", _pack_U(0xFA)));
508ok($objCu->eq("U\x{301}", _pack_U(0xDA)));
509ok($objCu->eq("y\x{301}", _pack_U(0xFD)));
510ok($objCu->eq("Y\x{301}", _pack_U(0xDD)));
511
512ok($objCu->eq("a\x{308}", _pack_U(0xE4)));
513ok($objCu->eq("A\x{308}", _pack_U(0xC4)));
514ok($objCu->eq("e\x{308}", _pack_U(0xEB)));
515ok($objCu->eq("E\x{308}", _pack_U(0xCB)));
516ok($objCu->eq("i\x{308}", _pack_U(0xEF)));
517ok($objCu->eq("I\x{308}", _pack_U(0xCF)));
518ok($objCu->eq("o\x{308}", _pack_U(0xF6)));
519ok($objCu->eq("O\x{308}", _pack_U(0xD6)));
520ok($objCu->eq("u\x{308}", _pack_U(0xFC)));
521ok($objCu->eq("U\x{308}", _pack_U(0xDC)));
522ok($objCu->eq("y\x{308}", _pack_U(0xFF)));
523ok($objCu->eq("Y\x{308}", "\x{178}"));
524
525# 616
526