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..146\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 $objMnCyrl = Unicode::Collate::Locale->
32    new(locale => 'MN-CYRL', normalization => undef);
33
34ok($objMnCyrl->getlocale, 'default');
35
36$objMnCyrl->change(level => 1);
37
38ok($objMnCyrl->lt("\x{430}z", "\x{431}"));
39ok($objMnCyrl->lt("\x{431}z", "\x{432}"));
40ok($objMnCyrl->lt("\x{432}z", "\x{433}"));
41ok($objMnCyrl->lt("\x{433}z", "\x{434}"));
42ok($objMnCyrl->lt("\x{434}z", "\x{435}"));
43ok($objMnCyrl->lt("\x{435}z", "\x{436}"));
44ok($objMnCyrl->lt("\x{436}z", "\x{437}"));
45ok($objMnCyrl->lt("\x{437}z", "\x{438}"));
46ok($objMnCyrl->lt("\x{438}z", "\x{439}"));
47ok($objMnCyrl->lt("\x{439}z", "\x{43a}"));
48ok($objMnCyrl->lt("\x{43a}z", "\x{43b}"));
49ok($objMnCyrl->lt("\x{43b}z", "\x{43c}"));
50ok($objMnCyrl->lt("\x{43c}z", "\x{43d}"));
51ok($objMnCyrl->lt("\x{43d}z", "\x{43e}"));
52ok($objMnCyrl->lt("\x{43e}z", "\x{4e9}"));
53ok($objMnCyrl->lt("\x{4e9}z", "\x{43f}"));
54ok($objMnCyrl->lt("\x{43f}z", "\x{440}"));
55ok($objMnCyrl->lt("\x{440}z", "\x{441}"));
56ok($objMnCyrl->lt("\x{441}z", "\x{442}"));
57ok($objMnCyrl->lt("\x{442}z", "\x{443}"));
58ok($objMnCyrl->lt("\x{443}z", "\x{4af}"));
59ok($objMnCyrl->lt("\x{4af}z", "\x{444}"));
60ok($objMnCyrl->lt("\x{444}z", "\x{445}"));
61ok($objMnCyrl->lt("\x{445}z", "\x{446}"));
62ok($objMnCyrl->lt("\x{446}z", "\x{447}"));
63ok($objMnCyrl->lt("\x{447}z", "\x{448}"));
64ok($objMnCyrl->lt("\x{448}z", "\x{449}"));
65ok($objMnCyrl->lt("\x{449}z", "\x{44a}"));
66ok($objMnCyrl->lt("\x{44a}z", "\x{44b}"));
67ok($objMnCyrl->lt("\x{44b}z", "\x{44c}"));
68ok($objMnCyrl->lt("\x{44c}z", "\x{44d}"));
69ok($objMnCyrl->lt("\x{44d}z", "\x{44e}"));
70ok($objMnCyrl->lt("\x{44e}z", "\x{44f}"));
71
72ok($objMnCyrl->lt("\x{410}z", "\x{411}"));
73ok($objMnCyrl->lt("\x{411}z", "\x{412}"));
74ok($objMnCyrl->lt("\x{412}z", "\x{413}"));
75ok($objMnCyrl->lt("\x{413}z", "\x{414}"));
76ok($objMnCyrl->lt("\x{414}z", "\x{415}"));
77ok($objMnCyrl->lt("\x{415}z", "\x{416}"));
78ok($objMnCyrl->lt("\x{416}z", "\x{417}"));
79ok($objMnCyrl->lt("\x{417}z", "\x{418}"));
80ok($objMnCyrl->lt("\x{418}z", "\x{419}"));
81ok($objMnCyrl->lt("\x{419}z", "\x{41a}"));
82ok($objMnCyrl->lt("\x{41a}z", "\x{41b}"));
83ok($objMnCyrl->lt("\x{41b}z", "\x{41c}"));
84ok($objMnCyrl->lt("\x{41c}z", "\x{41d}"));
85ok($objMnCyrl->lt("\x{41d}z", "\x{41e}"));
86ok($objMnCyrl->lt("\x{41e}z", "\x{4e8}"));
87ok($objMnCyrl->lt("\x{4e8}z", "\x{41f}"));
88ok($objMnCyrl->lt("\x{41f}z", "\x{420}"));
89ok($objMnCyrl->lt("\x{420}z", "\x{421}"));
90ok($objMnCyrl->lt("\x{421}z", "\x{422}"));
91ok($objMnCyrl->lt("\x{422}z", "\x{423}"));
92ok($objMnCyrl->lt("\x{423}z", "\x{4ae}"));
93ok($objMnCyrl->lt("\x{4ae}z", "\x{424}"));
94ok($objMnCyrl->lt("\x{424}z", "\x{425}"));
95ok($objMnCyrl->lt("\x{425}z", "\x{426}"));
96ok($objMnCyrl->lt("\x{426}z", "\x{427}"));
97ok($objMnCyrl->lt("\x{427}z", "\x{428}"));
98ok($objMnCyrl->lt("\x{428}z", "\x{429}"));
99ok($objMnCyrl->lt("\x{429}z", "\x{42a}"));
100ok($objMnCyrl->lt("\x{42a}z", "\x{42b}"));
101ok($objMnCyrl->lt("\x{42b}z", "\x{42c}"));
102ok($objMnCyrl->lt("\x{42c}z", "\x{42d}"));
103ok($objMnCyrl->lt("\x{42d}z", "\x{42e}"));
104ok($objMnCyrl->lt("\x{42e}z", "\x{42f}"));
105
106# 68
107
108ok($objMnCyrl->eq("\x{435}", "\x{451}"));
109ok($objMnCyrl->eq("\x{415}", "\x{401}"));
110
111# 70
112
113$objMnCyrl->change(level => 2);
114
115ok($objMnCyrl->lt("\x{435}", "\x{451}"));
116ok($objMnCyrl->lt("\x{415}", "\x{401}"));
117
118# 72
119
120ok($objMnCyrl->eq("\x{430}", "\x{410}"));
121ok($objMnCyrl->eq("\x{431}", "\x{411}"));
122ok($objMnCyrl->eq("\x{432}", "\x{412}"));
123ok($objMnCyrl->eq("\x{433}", "\x{413}"));
124ok($objMnCyrl->eq("\x{434}", "\x{414}"));
125ok($objMnCyrl->eq("\x{435}", "\x{415}"));
126ok($objMnCyrl->eq("\x{451}", "\x{401}"));
127ok($objMnCyrl->eq("\x{436}", "\x{416}"));
128ok($objMnCyrl->eq("\x{437}", "\x{417}"));
129ok($objMnCyrl->eq("\x{438}", "\x{418}"));
130ok($objMnCyrl->eq("\x{439}", "\x{419}"));
131ok($objMnCyrl->eq("\x{43a}", "\x{41a}"));
132ok($objMnCyrl->eq("\x{43b}", "\x{41b}"));
133ok($objMnCyrl->eq("\x{43c}", "\x{41c}"));
134ok($objMnCyrl->eq("\x{43d}", "\x{41d}"));
135ok($objMnCyrl->eq("\x{43e}", "\x{41e}"));
136ok($objMnCyrl->eq("\x{4e9}", "\x{4e8}"));
137ok($objMnCyrl->eq("\x{43f}", "\x{41f}"));
138ok($objMnCyrl->eq("\x{440}", "\x{420}"));
139ok($objMnCyrl->eq("\x{441}", "\x{421}"));
140ok($objMnCyrl->eq("\x{442}", "\x{422}"));
141ok($objMnCyrl->eq("\x{443}", "\x{423}"));
142ok($objMnCyrl->eq("\x{4af}", "\x{4ae}"));
143ok($objMnCyrl->eq("\x{444}", "\x{424}"));
144ok($objMnCyrl->eq("\x{445}", "\x{425}"));
145ok($objMnCyrl->eq("\x{446}", "\x{426}"));
146ok($objMnCyrl->eq("\x{447}", "\x{427}"));
147ok($objMnCyrl->eq("\x{448}", "\x{428}"));
148ok($objMnCyrl->eq("\x{449}", "\x{429}"));
149ok($objMnCyrl->eq("\x{44a}", "\x{42a}"));
150ok($objMnCyrl->eq("\x{44b}", "\x{42b}"));
151ok($objMnCyrl->eq("\x{44c}", "\x{42c}"));
152ok($objMnCyrl->eq("\x{44d}", "\x{42d}"));
153ok($objMnCyrl->eq("\x{44e}", "\x{42e}"));
154ok($objMnCyrl->eq("\x{44f}", "\x{42f}"));
155
156# 107
157
158$objMnCyrl->change(level => 3);
159
160ok($objMnCyrl->lt("\x{430}", "\x{410}"));
161ok($objMnCyrl->lt("\x{431}", "\x{411}"));
162ok($objMnCyrl->lt("\x{432}", "\x{412}"));
163ok($objMnCyrl->lt("\x{433}", "\x{413}"));
164ok($objMnCyrl->lt("\x{434}", "\x{414}"));
165ok($objMnCyrl->lt("\x{435}", "\x{415}"));
166ok($objMnCyrl->lt("\x{451}", "\x{401}"));
167ok($objMnCyrl->lt("\x{436}", "\x{416}"));
168ok($objMnCyrl->lt("\x{437}", "\x{417}"));
169ok($objMnCyrl->lt("\x{438}", "\x{418}"));
170ok($objMnCyrl->lt("\x{439}", "\x{419}"));
171ok($objMnCyrl->lt("\x{43a}", "\x{41a}"));
172ok($objMnCyrl->lt("\x{43b}", "\x{41b}"));
173ok($objMnCyrl->lt("\x{43c}", "\x{41c}"));
174ok($objMnCyrl->lt("\x{43d}", "\x{41d}"));
175ok($objMnCyrl->lt("\x{43e}", "\x{41e}"));
176ok($objMnCyrl->lt("\x{4e9}", "\x{4e8}"));
177ok($objMnCyrl->lt("\x{43f}", "\x{41f}"));
178ok($objMnCyrl->lt("\x{440}", "\x{420}"));
179ok($objMnCyrl->lt("\x{441}", "\x{421}"));
180ok($objMnCyrl->lt("\x{442}", "\x{422}"));
181ok($objMnCyrl->lt("\x{443}", "\x{423}"));
182ok($objMnCyrl->lt("\x{4af}", "\x{4ae}"));
183ok($objMnCyrl->lt("\x{444}", "\x{424}"));
184ok($objMnCyrl->lt("\x{445}", "\x{425}"));
185ok($objMnCyrl->lt("\x{446}", "\x{426}"));
186ok($objMnCyrl->lt("\x{447}", "\x{427}"));
187ok($objMnCyrl->lt("\x{448}", "\x{428}"));
188ok($objMnCyrl->lt("\x{449}", "\x{429}"));
189ok($objMnCyrl->lt("\x{44a}", "\x{42a}"));
190ok($objMnCyrl->lt("\x{44b}", "\x{42b}"));
191ok($objMnCyrl->lt("\x{44c}", "\x{42c}"));
192ok($objMnCyrl->lt("\x{44d}", "\x{42d}"));
193ok($objMnCyrl->lt("\x{44e}", "\x{42e}"));
194ok($objMnCyrl->lt("\x{44f}", "\x{42f}"));
195
196# 142
197
198ok($objMnCyrl->eq("\x{451}", "\x{435}\x{308}"));
199ok($objMnCyrl->eq("\x{401}", "\x{415}\x{308}"));
200ok($objMnCyrl->eq("\x{439}", "\x{438}\x{306}"));
201ok($objMnCyrl->eq("\x{419}", "\x{418}\x{306}"));
202
203# 146
204