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