This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Refactor die_exit.t to loop over a list, rather than iterate on an hash.
[perl5.git] / cpan / Unicode-Collate / t / loc_se.t
CommitLineData
68adb2b0
CBW
1
2BEGIN {
3 unless ("A" eq pack('U', 0x41)) {
4 print "1..0 # Unicode::Collate " .
5 "cannot stringify a Unicode code point\n";
6 exit 0;
7 }
8 if ($ENV{PERL_CORE}) {
9 chdir('t') if -d 't';
10 @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
11 }
12}
13
14use Test;
15BEGIN { plan tests => 217 };
16
6709de88
CBW
17use strict;
18use warnings;
19use Unicode::Collate::Locale;
20
68adb2b0
CBW
21ok(1);
22
23#########################
6709de88
CBW
24
25my $objSe = Unicode::Collate::Locale->
26 new(locale => 'SE', normalization => undef);
27
28my $eth = pack 'U', 0xF0;
29my $ETH = pack 'U', 0xD0;
30my $thrn = pack 'U', 0xFE;
31my $THRN = pack 'U', 0xDE;
32my $ae = pack 'U', 0xE6;
33my $AE = pack 'U', 0xC6;
34
6709de88
CBW
35ok($objSe->getlocale, 'se');
36
37$objSe->change(level => 1);
38
39ok($objSe->lt("a", "a\x{301}"));
40ok($objSe->gt("b", "a\x{301}"));
41ok($objSe->lt("c", "c\x{30C}"));
42ok($objSe->lt("c\x{30C}", "\x{292}"));
43ok($objSe->lt( "\x{292}", "\x{1EF}"));
44ok($objSe->gt("d", "\x{1EF}"));
45ok($objSe->lt("d", "d\x{335}"));
46ok($objSe->gt("e", "d\x{335}"));
47ok($objSe->lt("g", "g\x{30C}"));
48ok($objSe->lt("g\x{30C}", "\x{1E5}"));
49ok($objSe->gt("h", "\x{1E5}"));
50ok($objSe->lt("k", "k\x{30C}"));
51ok($objSe->gt("l", "k\x{30C}"));
52ok($objSe->lt("n", "\x{14B}"));
53ok($objSe->gt("o", "\x{14B}"));
54ok($objSe->lt("s", "s\x{30C}"));
55ok($objSe->gt("t", "s\x{30C}"));
56ok($objSe->lt("t", "\x{167}"));
57ok($objSe->gt("u", "\x{167}"));
58ok($objSe->lt("z", "z\x{30C}"));
59ok($objSe->lt("z\x{30C}", "o\x{338}"));
60ok($objSe->lt("o\x{338}", $ae));
61ok($objSe->lt($ae, "a\x{30A}"));
62ok($objSe->lt("a\x{30A}", "a\x{308}"));
63ok($objSe->lt("a\x{308}", "o\x{308}"));
64ok($objSe->lt("o\x{308}", "\x{1C0}"));
65
66# 28
67
68ok($objSe->eq("d\x{335}", $eth));
69ok($objSe->eq( "\x{14B}", "n\x{301}"));
70ok($objSe->eq("n\x{301}", "n\x{303}"));
71ok($objSe->eq( "\x{167}", $thrn));
72ok($objSe->eq("y", "u\x{308}"));
73ok($objSe->eq("u\x{308}", "u\x{30B}"));
74ok($objSe->eq("o\x{338}", "\x{153}"));
75ok($objSe->eq("a\x{30A}", "a\x{307}"));
76ok($objSe->eq("a\x{308}", "a\x{303}"));
77ok($objSe->eq("o\x{308}", "o\x{30B}"));
78ok($objSe->eq("o\x{30B}", "o\x{303}"));
79ok($objSe->eq("o\x{303}", "o\x{302}"));
80ok($objSe->eq("o\x{302}", "o\x{328}"));
81
82# 41
83
84$objSe->change(level => 2);
85
86ok($objSe->lt("d\x{335}", $eth));
87ok($objSe->lt( "\x{14B}", "n\x{301}"));
88ok($objSe->lt("n\x{301}", "n\x{303}"));
89ok($objSe->lt( "\x{167}", $thrn));
90ok($objSe->lt("y", "u\x{308}"));
91ok($objSe->lt("u\x{308}", "u\x{30B}"));
92ok($objSe->lt("o\x{338}", "\x{153}"));
93ok($objSe->lt("a\x{30A}", "a\x{307}"));
94ok($objSe->lt("a\x{308}", "a\x{303}"));
95ok($objSe->lt("o\x{308}", "o\x{30B}"));
96ok($objSe->lt("o\x{30B}", "o\x{303}"));
97ok($objSe->lt("o\x{303}", "o\x{302}"));
98ok($objSe->lt("o\x{302}", "o\x{328}"));
99
100# 54
101
102ok($objSe->eq("a\x{301}", "A\x{301}"));
103ok($objSe->eq("c\x{30C}", "C\x{30C}"));
104ok($objSe->eq( "\x{292}", "\x{1B7}"));
105ok($objSe->eq( "\x{1EF}", "\x{1EE}"));
106ok($objSe->eq("d\x{335}", "D\x{335}"));
107ok($objSe->eq($eth, $ETH));
108ok($objSe->eq("g\x{30C}", "G\x{30C}"));
109ok($objSe->eq( "\x{1E5}", "\x{1E4}"));
110ok($objSe->eq("k\x{30C}", "K\x{30C}"));
111ok($objSe->eq( "\x{14B}", "\x{14A}"));
112ok($objSe->eq("n\x{301}", "N\x{301}"));
113ok($objSe->eq("n\x{303}", "N\x{303}"));
114ok($objSe->eq("s\x{30C}", "S\x{30C}"));
115ok($objSe->eq( "\x{167}", "\x{166}"));
116ok($objSe->eq($thrn, $THRN));
117ok($objSe->eq("u\x{308}", "U\x{308}"));
118ok($objSe->eq("u\x{30B}", "U\x{30B}"));
119ok($objSe->eq("z\x{30C}", "Z\x{30C}"));
120ok($objSe->eq("o\x{338}", "O\x{338}"));
121ok($objSe->eq( "\x{153}", "\x{152}"));
122ok($objSe->eq($ae, $AE));
123ok($objSe->eq($AE, "\x{1D2D}"));
124ok($objSe->eq("a\x{30A}", "A\x{30A}"));
125ok($objSe->eq("a\x{307}", "A\x{307}"));
126ok($objSe->eq("a\x{308}", "A\x{308}"));
127ok($objSe->eq("a\x{303}", "A\x{303}"));
128ok($objSe->eq("o\x{308}", "O\x{308}"));
129ok($objSe->eq("o\x{30B}", "O\x{30B}"));
130ok($objSe->eq("o\x{303}", "O\x{303}"));
131ok($objSe->eq("o\x{302}", "O\x{302}"));
132ok($objSe->eq("o\x{328}", "O\x{328}"));
133
134# 85
135
136$objSe->change(level => 3);
137
138ok($objSe->lt("a\x{301}", "A\x{301}"));
139ok($objSe->lt("c\x{30C}", "C\x{30C}"));
140ok($objSe->lt( "\x{292}", "\x{1B7}"));
141ok($objSe->lt( "\x{1EF}", "\x{1EE}"));
142ok($objSe->lt("d\x{335}", "D\x{335}"));
143ok($objSe->lt($eth, $ETH));
144ok($objSe->lt("g\x{30C}", "G\x{30C}"));
145ok($objSe->lt( "\x{1E5}", "\x{1E4}"));
146ok($objSe->lt("k\x{30C}", "K\x{30C}"));
147ok($objSe->lt( "\x{14B}", "\x{14A}"));
148ok($objSe->lt("n\x{301}", "N\x{301}"));
149ok($objSe->lt("n\x{303}", "N\x{303}"));
150ok($objSe->lt("s\x{30C}", "S\x{30C}"));
151ok($objSe->lt( "\x{167}", "\x{166}"));
152ok($objSe->lt($thrn, $THRN));
153ok($objSe->lt("u\x{308}", "U\x{308}"));
154ok($objSe->lt("u\x{30B}", "U\x{30B}"));
155ok($objSe->lt("z\x{30C}", "Z\x{30C}"));
156ok($objSe->lt("o\x{338}", "O\x{338}"));
157ok($objSe->lt( "\x{153}", "\x{152}"));
158ok($objSe->lt($ae, $AE));
159ok($objSe->lt($AE, "\x{1D2D}"));
160ok($objSe->lt("a\x{30A}", "A\x{30A}"));
161ok($objSe->lt("a\x{307}", "A\x{307}"));
162ok($objSe->lt("a\x{308}", "A\x{308}"));
163ok($objSe->lt("a\x{303}", "A\x{303}"));
164ok($objSe->lt("o\x{308}", "O\x{308}"));
165ok($objSe->lt("o\x{30B}", "O\x{30B}"));
166ok($objSe->lt("o\x{303}", "O\x{303}"));
167ok($objSe->lt("o\x{302}", "O\x{302}"));
168ok($objSe->lt("o\x{328}", "O\x{328}"));
169
170# 116
171
172ok($objSe->eq("a\x{301}", pack('U', 0xE1)));
aa7758f7 173ok($objSe->eq("a\x{341}", pack('U', 0xE1)));
6709de88 174ok($objSe->eq("A\x{301}", pack('U', 0xC1)));
aa7758f7 175ok($objSe->eq("A\x{341}", pack('U', 0xC1)));
6709de88
CBW
176ok($objSe->eq("c\x{30C}", "\x{10D}"));
177ok($objSe->eq("C\x{30C}", "\x{10C}"));
178ok($objSe->eq("\x{1EF}", "\x{292}\x{30C}"));
179ok($objSe->eq("\x{1EE}", "\x{1B7}\x{30C}"));
180ok($objSe->eq("d\x{335}", "\x{111}"));
181ok($objSe->eq("D\x{335}", "\x{110}"));
182ok($objSe->eq("g\x{30C}", "\x{1E7}"));
183ok($objSe->eq("G\x{30C}", "\x{1E6}"));
184ok($objSe->eq("k\x{30C}", "\x{1E9}"));
185ok($objSe->eq("K\x{30C}", "\x{1E8}"));
186ok($objSe->eq("n\x{301}", "\x{144}"));
aa7758f7 187ok($objSe->eq("n\x{341}", "\x{144}"));
6709de88 188ok($objSe->eq("N\x{301}", "\x{143}"));
aa7758f7 189ok($objSe->eq("N\x{341}", "\x{143}"));
6709de88
CBW
190ok($objSe->eq("n\x{303}", pack('U', 0xF1)));
191ok($objSe->eq("N\x{303}", pack('U', 0xD1)));
192ok($objSe->eq("s\x{30C}", "\x{161}"));
193ok($objSe->eq("S\x{30C}", "\x{160}"));
194ok($objSe->eq("u\x{308}", pack('U', 0xFC)));
195ok($objSe->eq("U\x{308}", pack('U', 0xDC)));
196ok($objSe->eq("u\x{30B}", "\x{171}"));
197ok($objSe->eq("U\x{30B}", "\x{170}"));
198
aa7758f7 199# 142
6709de88
CBW
200
201ok($objSe->eq("z\x{30C}", "\x{17E}"));
202ok($objSe->eq("Z\x{30C}", "\x{17D}"));
203ok($objSe->eq("o\x{338}", pack('U', 0xF8)));
204ok($objSe->eq("O\x{338}", pack('U', 0xD8)));
205ok($objSe->eq("a\x{30A}", pack('U', 0xE5)));
206ok($objSe->eq("A\x{30A}", pack('U', 0xC5)));
207ok($objSe->eq("a\x{307}", "\x{227}"));
208ok($objSe->eq("A\x{307}", "\x{226}"));
209ok($objSe->eq("a\x{308}", pack('U', 0xE4)));
210ok($objSe->eq("A\x{308}", pack('U', 0xC4)));
211ok($objSe->eq("a\x{303}", pack('U', 0xE3)));
212ok($objSe->eq("A\x{303}", pack('U', 0xC3)));
213ok($objSe->eq("o\x{308}", pack('U', 0xF6)));
214ok($objSe->eq("O\x{308}", pack('U', 0xD6)));
215ok($objSe->eq("o\x{30B}", "\x{151}"));
216ok($objSe->eq("O\x{30B}", "\x{150}"));
217ok($objSe->eq("o\x{303}", pack('U', 0xF5)));
218ok($objSe->eq("O\x{303}", pack('U', 0xD5)));
219ok($objSe->eq("o\x{302}", pack('U', 0xF4)));
220ok($objSe->eq("O\x{302}", pack('U', 0xD4)));
221ok($objSe->eq("o\x{328}", "\x{1EB}"));
222ok($objSe->eq("O\x{328}", "\x{1EA}"));
223
aa7758f7 224# 164
6709de88
CBW
225
226ok($objSe->eq("u\x{308}\x{300}", "\x{1DC}"));
227ok($objSe->eq("U\x{308}\x{300}", "\x{1DB}"));
228ok($objSe->eq("u\x{308}\x{301}", "\x{1D8}"));
229ok($objSe->eq("U\x{308}\x{301}", "\x{1D7}"));
230ok($objSe->eq("u\x{308}\x{304}", "\x{1D6}"));
231ok($objSe->eq("U\x{308}\x{304}", "\x{1D5}"));
232ok($objSe->eq("u\x{308}\x{30C}", "\x{1DA}"));
233ok($objSe->eq("U\x{308}\x{30C}", "\x{1D9}"));
234ok($objSe->eq("o\x{338}\x{301}", "\x{1FF}"));
235ok($objSe->eq("O\x{338}\x{301}", "\x{1FE}"));
236
237ok($objSe->eq("\x{1FD}", "$ae\x{301}"));
238ok($objSe->eq("\x{1FC}", "$AE\x{301}"));
239ok($objSe->eq("\x{1E3}", "$ae\x{304}"));
240ok($objSe->eq("\x{1E2}", "$AE\x{304}"));
241ok($objSe->eq("A\x{30A}", "\x{212B}"));
242ok($objSe->eq("a\x{30A}\x{301}", "\x{1FB}"));
243ok($objSe->eq("A\x{30A}\x{301}", "\x{1FA}"));
244ok($objSe->eq("a\x{308}\x{304}", "\x{1DF}"));
245ok($objSe->eq("A\x{308}\x{304}", "\x{1DE}"));
246
247ok($objSe->eq("o\x{308}\x{304}", "\x{22B}"));
248ok($objSe->eq("O\x{308}\x{304}", "\x{22A}"));
249ok($objSe->eq("o\x{303}\x{301}","\x{1E4D}"));
250ok($objSe->eq("O\x{303}\x{301}","\x{1E4C}"));
251ok($objSe->eq("o\x{303}\x{304}", "\x{22D}"));
252ok($objSe->eq("O\x{303}\x{304}", "\x{22C}"));
253ok($objSe->eq("o\x{303}\x{308}","\x{1E4F}"));
254ok($objSe->eq("O\x{303}\x{308}","\x{1E4E}"));
255ok($objSe->eq("o\x{303}\x{31B}","\x{1EE1}"));
256ok($objSe->eq("O\x{303}\x{31B}","\x{1EE0}"));
257
258ok($objSe->eq("o\x{302}\x{300}", "\x{1ED3}"));
259ok($objSe->eq("O\x{302}\x{300}", "\x{1ED2}"));
260ok($objSe->eq("o\x{302}\x{301}", "\x{1ED1}"));
261ok($objSe->eq("O\x{302}\x{301}", "\x{1ED0}"));
262ok($objSe->eq("o\x{302}\x{303}", "\x{1ED7}"));
263ok($objSe->eq("O\x{302}\x{303}", "\x{1ED6}"));
264ok($objSe->eq("o\x{302}\x{309}", "\x{1ED5}"));
265ok($objSe->eq("O\x{302}\x{309}", "\x{1ED4}"));
266ok($objSe->eq("o\x{302}\x{323}", "\x{1ED9}"));
267ok($objSe->eq("O\x{302}\x{323}", "\x{1ED8}"));
268
aa7758f7 269# 203
6709de88
CBW
270
271$objSe->change(upper_before_lower => 1);
272
273ok($objSe->gt("z\x{30C}", "Z\x{30C}"));
274ok($objSe->gt("o\x{338}", "O\x{338}"));
275ok($objSe->gt( "\x{153}", "\x{152}"));
276ok($objSe->gt($ae, $AE));
277ok($objSe->lt($AE, "\x{1D2D}"));
278ok($objSe->gt("a\x{30A}", "A\x{30A}"));
279ok($objSe->gt("a\x{307}", "A\x{307}"));
280ok($objSe->gt("a\x{308}", "A\x{308}"));
281ok($objSe->gt("a\x{303}", "A\x{303}"));
282ok($objSe->gt("o\x{308}", "O\x{308}"));
283ok($objSe->gt("o\x{30B}", "O\x{30B}"));
284ok($objSe->gt("o\x{303}", "O\x{303}"));
285ok($objSe->gt("o\x{302}", "O\x{302}"));
286ok($objSe->gt("o\x{328}", "O\x{328}"));
287
aa7758f7 288# 217