1898184e3Ssthen
2898184e3SsthenBEGIN {
3898184e3Ssthen    if ($ENV{PERL_CORE}) {
4898184e3Ssthen	chdir('t') if -d 't';
5898184e3Ssthen	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
6898184e3Ssthen    }
7898184e3Ssthen}
8898184e3Ssthen
9898184e3Ssthenuse strict;
10898184e3Ssthenuse warnings;
11898184e3SsthenBEGIN { $| = 1; print "1..118\n"; }
12898184e3Ssthenmy $count = 0;
13898184e3Ssthensub ok ($;$) {
14898184e3Ssthen    my $p = my $r = shift;
15898184e3Ssthen    if (@_) {
16898184e3Ssthen	my $x = shift;
17898184e3Ssthen	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
18898184e3Ssthen    }
19898184e3Ssthen    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
20898184e3Ssthen}
21898184e3Ssthen
22898184e3Ssthenuse Unicode::Collate::Locale;
23898184e3Ssthen
24898184e3Ssthenok(1);
25898184e3Ssthen
26*256a93a4Safresh1sub _pack_U   { Unicode::Collate::pack_U(@_) }
27*256a93a4Safresh1sub _unpack_U { Unicode::Collate::unpack_U(@_) }
28*256a93a4Safresh1
29898184e3Ssthen#########################
30898184e3Ssthen
31898184e3Ssthenmy $objSrLatn = Unicode::Collate::Locale->
32898184e3Ssthen    new(locale => 'SR-LATN', normalization => undef);
33898184e3Ssthen
34898184e3Ssthenok($objSrLatn->getlocale, 'sr_Latn');
35898184e3Ssthen
36898184e3Ssthen$objSrLatn->change(level => 1);
37898184e3Ssthen
38898184e3Ssthenok($objSrLatn->lt("c", "c\x{30C}"));
39898184e3Ssthenok($objSrLatn->lt("c\x{30C}", "c\x{301}"));
40898184e3Ssthenok($objSrLatn->gt("d", "c\x{301}"));
41898184e3Ssthenok($objSrLatn->lt("d", "dz\x{30C}"));
42898184e3Ssthenok($objSrLatn->lt("dzz", "dz\x{30C}"));
43898184e3Ssthenok($objSrLatn->lt("dz\x{30C}", "d\x{335}"));
44898184e3Ssthenok($objSrLatn->gt("e", "d\x{335}"));
45898184e3Ssthenok($objSrLatn->lt("l", "lj"));
46898184e3Ssthenok($objSrLatn->lt("lz","lj"));
47898184e3Ssthenok($objSrLatn->gt("m", "lj"));
48898184e3Ssthenok($objSrLatn->lt("n", "nj"));
49898184e3Ssthenok($objSrLatn->lt("nz","nj"));
50898184e3Ssthenok($objSrLatn->gt("o", "nj"));
51898184e3Ssthenok($objSrLatn->lt("s", "s\x{30C}"));
52898184e3Ssthenok($objSrLatn->lt("sz","s\x{30C}"));
53898184e3Ssthenok($objSrLatn->gt("t", "s\x{30C}"));
54898184e3Ssthenok($objSrLatn->lt("z", "z\x{30C}"));
55898184e3Ssthenok($objSrLatn->lt("zz","z\x{30C}"));
56898184e3Ssthenok($objSrLatn->lt("z\x{30C}", "\x{292}")); # U+0292 EZH
57898184e3Ssthen
58898184e3Ssthen# 21
59898184e3Ssthen
60898184e3Ssthen# not tailored
61898184e3Ssthenok($objSrLatn->lt("dZ\x{30C}","dz\x{30C}"));
62898184e3Ssthenok($objSrLatn->lt("lJ", "lj"));
63898184e3Ssthenok($objSrLatn->lt("nJ", "nj"));
64898184e3Ssthen
65898184e3Ssthen# 24
66898184e3Ssthen
67898184e3Ssthen$objSrLatn->change(level => 2);
68898184e3Ssthen
69898184e3Ssthenok($objSrLatn->eq("c\x{30C}", "C\x{30C}"));
70898184e3Ssthenok($objSrLatn->eq("c\x{301}", "C\x{301}"));
71898184e3Ssthenok($objSrLatn->eq("dz\x{30C}","Dz\x{30C}"));
72898184e3Ssthenok($objSrLatn->eq("Dz\x{30C}","DZ\x{30C}"));
73898184e3Ssthenok($objSrLatn->eq("d\x{335}", "D\x{335}"));
74898184e3Ssthenok($objSrLatn->eq("lj", "Lj"));
75898184e3Ssthenok($objSrLatn->eq("Lj", "LJ"));
76898184e3Ssthenok($objSrLatn->eq("nj", "Nj"));
77898184e3Ssthenok($objSrLatn->eq("Nj", "NJ"));
78898184e3Ssthenok($objSrLatn->eq("s\x{30C}", "S\x{30C}"));
79898184e3Ssthenok($objSrLatn->eq("z\x{30C}", "Z\x{30C}"));
80898184e3Ssthen
81898184e3Ssthen# 35
82898184e3Ssthen
83898184e3Ssthenok($objSrLatn->eq("dz\x{30C}", "\x{1C6}"));
84898184e3Ssthenok($objSrLatn->eq("Dz\x{30C}", "\x{1C6}"));
85898184e3Ssthenok($objSrLatn->eq("Dz\x{30C}", "\x{1C5}"));
86898184e3Ssthenok($objSrLatn->eq("DZ\x{30C}", "\x{1C5}"));
87898184e3Ssthenok($objSrLatn->eq("DZ\x{30C}", "\x{1C4}"));
88898184e3Ssthen
89898184e3Ssthenok($objSrLatn->eq("lj", "\x{1C9}"));
90898184e3Ssthenok($objSrLatn->eq("Lj", "\x{1C9}"));
91898184e3Ssthenok($objSrLatn->eq("Lj", "\x{1C8}"));
92898184e3Ssthenok($objSrLatn->eq("LJ", "\x{1C8}"));
93898184e3Ssthenok($objSrLatn->eq("LJ", "\x{1C7}"));
94898184e3Ssthen
95898184e3Ssthenok($objSrLatn->eq("nj", "\x{1CC}"));
96898184e3Ssthenok($objSrLatn->eq("Nj", "\x{1CC}"));
97898184e3Ssthenok($objSrLatn->eq("Nj", "\x{1CB}"));
98898184e3Ssthenok($objSrLatn->eq("NJ", "\x{1CB}"));
99898184e3Ssthenok($objSrLatn->eq("NJ", "\x{1CA}"));
100898184e3Ssthen
101898184e3Ssthen# 50
102898184e3Ssthen
103898184e3Ssthen$objSrLatn->change(level => 3);
104898184e3Ssthen
105898184e3Ssthenok($objSrLatn->lt("c\x{30C}", "C\x{30C}"));
106898184e3Ssthenok($objSrLatn->lt("c\x{301}", "C\x{301}"));
107898184e3Ssthenok($objSrLatn->lt("dz\x{30C}","Dz\x{30C}"));
108898184e3Ssthenok($objSrLatn->lt("Dz\x{30C}","DZ\x{30C}"));
109898184e3Ssthenok($objSrLatn->lt("d\x{335}", "D\x{335}"));
110898184e3Ssthenok($objSrLatn->lt("lj", "Lj"));
111898184e3Ssthenok($objSrLatn->lt("Lj", "LJ"));
112898184e3Ssthenok($objSrLatn->lt("nj", "Nj"));
113898184e3Ssthenok($objSrLatn->lt("Nj", "NJ"));
114898184e3Ssthenok($objSrLatn->lt("s\x{30C}", "S\x{30C}"));
115898184e3Ssthenok($objSrLatn->lt("z\x{30C}", "Z\x{30C}"));
116898184e3Ssthen
117898184e3Ssthen# 61
118898184e3Ssthen
119898184e3Ssthenok($objSrLatn->lt("dz\x{30C}", "\x{1C6}"));
120898184e3Ssthenok($objSrLatn->gt("Dz\x{30C}", "\x{1C6}"));
121898184e3Ssthenok($objSrLatn->lt("Dz\x{30C}", "\x{1C5}"));
122898184e3Ssthenok($objSrLatn->gt("DZ\x{30C}", "\x{1C5}"));
123898184e3Ssthenok($objSrLatn->lt("DZ\x{30C}", "\x{1C4}"));
124898184e3Ssthen
125898184e3Ssthenok($objSrLatn->lt("lj", "\x{1C9}"));
126898184e3Ssthenok($objSrLatn->gt("Lj", "\x{1C9}"));
127898184e3Ssthenok($objSrLatn->lt("Lj", "\x{1C8}"));
128898184e3Ssthenok($objSrLatn->gt("LJ", "\x{1C8}"));
129898184e3Ssthenok($objSrLatn->lt("LJ", "\x{1C7}"));
130898184e3Ssthen
131898184e3Ssthenok($objSrLatn->lt("nj", "\x{1CC}"));
132898184e3Ssthenok($objSrLatn->gt("Nj", "\x{1CC}"));
133898184e3Ssthenok($objSrLatn->lt("Nj", "\x{1CB}"));
134898184e3Ssthenok($objSrLatn->gt("NJ", "\x{1CB}"));
135898184e3Ssthenok($objSrLatn->lt("NJ", "\x{1CA}"));
136898184e3Ssthen
137898184e3Ssthen# 76
138898184e3Ssthen
139898184e3Ssthenok($objSrLatn->eq("c\x{30C}", "\x{10D}"));
140898184e3Ssthenok($objSrLatn->eq("C\x{30C}", "\x{10C}"));
141898184e3Ssthenok($objSrLatn->eq("c\x{301}", "\x{107}"));
142898184e3Ssthenok($objSrLatn->eq("c\x{341}", "\x{107}"));
143898184e3Ssthenok($objSrLatn->eq("C\x{301}", "\x{106}"));
144898184e3Ssthenok($objSrLatn->eq("C\x{341}", "\x{106}"));
145898184e3Ssthenok($objSrLatn->eq("dz\x{30C}", "d\x{17E}"));
146898184e3Ssthenok($objSrLatn->eq("dZ\x{30C}", "d\x{17D}"));
147898184e3Ssthenok($objSrLatn->eq("Dz\x{30C}", "D\x{17E}"));
148898184e3Ssthenok($objSrLatn->eq("DZ\x{30C}", "D\x{17D}"));
149898184e3Ssthenok($objSrLatn->eq("d\x{335}", "\x{111}"));
150898184e3Ssthenok($objSrLatn->eq("D\x{335}", "\x{110}"));
151898184e3Ssthenok($objSrLatn->eq("s\x{30C}", "\x{161}"));
152898184e3Ssthenok($objSrLatn->eq("S\x{30C}", "\x{160}"));
153898184e3Ssthenok($objSrLatn->eq("z\x{30C}", "\x{17E}"));
154898184e3Ssthenok($objSrLatn->eq("Z\x{30C}", "\x{17D}"));
155898184e3Ssthen
156898184e3Ssthen# 92
157898184e3Ssthen
158898184e3Ssthen$objSrLatn->change(upper_before_lower => 1);
159898184e3Ssthen
160898184e3Ssthenok($objSrLatn->gt("c\x{30C}", "C\x{30C}"));
161898184e3Ssthenok($objSrLatn->gt("c\x{301}", "C\x{301}"));
162898184e3Ssthenok($objSrLatn->gt("dz\x{30C}","Dz\x{30C}"));
163898184e3Ssthenok($objSrLatn->gt("Dz\x{30C}","DZ\x{30C}"));
164898184e3Ssthenok($objSrLatn->gt("d\x{335}", "D\x{335}"));
165898184e3Ssthenok($objSrLatn->gt("lj", "Lj"));
166898184e3Ssthenok($objSrLatn->gt("Lj", "LJ"));
167898184e3Ssthenok($objSrLatn->gt("nj", "Nj"));
168898184e3Ssthenok($objSrLatn->gt("Nj", "NJ"));
169898184e3Ssthenok($objSrLatn->gt("s\x{30C}", "S\x{30C}"));
170898184e3Ssthenok($objSrLatn->gt("z\x{30C}", "Z\x{30C}"));
171898184e3Ssthen
172898184e3Ssthen# 103
173898184e3Ssthen
174898184e3Ssthenok($objSrLatn->lt("DZ\x{30C}", "\x{1C4}"));
175898184e3Ssthenok($objSrLatn->gt("Dz\x{30C}", "\x{1C4}"));
176898184e3Ssthenok($objSrLatn->lt("Dz\x{30C}", "\x{1C5}"));
177898184e3Ssthenok($objSrLatn->gt("dz\x{30C}", "\x{1C5}"));
178898184e3Ssthenok($objSrLatn->lt("dz\x{30C}", "\x{1C6}"));
179898184e3Ssthen
180898184e3Ssthenok($objSrLatn->lt("LJ", "\x{1C7}"));
181898184e3Ssthenok($objSrLatn->gt("Lj", "\x{1C7}"));
182898184e3Ssthenok($objSrLatn->lt("Lj", "\x{1C8}"));
183898184e3Ssthenok($objSrLatn->gt("lj", "\x{1C8}"));
184898184e3Ssthenok($objSrLatn->lt("lj", "\x{1C9}"));
185898184e3Ssthen
186898184e3Ssthenok($objSrLatn->lt("NJ", "\x{1CA}"));
187898184e3Ssthenok($objSrLatn->gt("Nj", "\x{1CA}"));
188898184e3Ssthenok($objSrLatn->lt("Nj", "\x{1CB}"));
189898184e3Ssthenok($objSrLatn->gt("nj", "\x{1CB}"));
190898184e3Ssthenok($objSrLatn->lt("nj", "\x{1CC}"));
191898184e3Ssthen
192898184e3Ssthen# 118
193