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