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