Commit | Line | Data |
---|---|---|
68adb2b0 CBW |
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 | ||
6709de88 CBW |
14 | use strict; |
15 | use warnings; | |
cba8842c A |
16 | BEGIN { $| = 1; print "1..235\n"; } |
17 | my $count = 0; | |
18 | sub ok ($;$) { | |
19 | my $p = my $r = shift; | |
20 | if (@_) { | |
21 | my $x = shift; | |
22 | $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; | |
23 | } | |
24 | print $p ? "ok" : "not ok", ' ', ++$count, "\n"; | |
25 | } | |
26 | ||
6709de88 CBW |
27 | use Unicode::Collate::Locale; |
28 | ||
68adb2b0 CBW |
29 | ok(1); |
30 | ||
31 | ######################### | |
6709de88 CBW |
32 | |
33 | my $objHu = Unicode::Collate::Locale-> | |
34 | new(locale => 'HU', normalization => undef); | |
35 | ||
6709de88 CBW |
36 | ok($objHu->getlocale, 'hu'); |
37 | ||
38 | $objHu->change(level => 1); | |
39 | ||
40 | ok($objHu->lt("c", "cs")); | |
41 | ok($objHu->lt("cz","cs")); | |
42 | ok($objHu->gt("d", "cs")); | |
43 | ok($objHu->lt("d", "dz")); | |
44 | ok($objHu->gt("dz","d\x{292}")); | |
45 | ok($objHu->lt("dz", "dzs")); | |
46 | ok($objHu->lt("dzz","dzs")); | |
47 | ok($objHu->gt("e", "dzs")); | |
48 | ok($objHu->lt("g", "gy")); | |
49 | ok($objHu->lt("gz","gy")); | |
50 | ok($objHu->gt("h", "gy")); | |
51 | ok($objHu->lt("l", "ly")); | |
52 | ok($objHu->lt("lz","ly")); | |
53 | ok($objHu->gt("m", "ly")); | |
54 | ok($objHu->lt("n", "ny")); | |
55 | ok($objHu->lt("nz","ny")); | |
56 | ok($objHu->gt("o", "ny")); | |
57 | ok($objHu->lt("s", "sz")); | |
58 | ok($objHu->gt("sz","s\x{292}")); | |
59 | ok($objHu->gt("t", "sz")); | |
60 | ok($objHu->lt("t", "ty")); | |
61 | ok($objHu->lt("tz","ty")); | |
62 | ok($objHu->gt("u", "ty")); | |
63 | ok($objHu->lt("z", "zs")); | |
64 | ok($objHu->lt("zz", "zs")); | |
65 | ok($objHu->lt("zs", "\x{292}")); | |
66 | ||
67 | # 28 | |
68 | ||
69 | ok($objHu->lt("o", "o\x{308}")); | |
70 | ok($objHu->gt("p", "o\x{308}")); | |
71 | ok($objHu->lt("u", "u\x{308}")); | |
72 | ok($objHu->gt("v", "u\x{308}")); | |
73 | ||
74 | ok($objHu->eq("o\x{308}", "o\x{30B}")); | |
75 | ok($objHu->eq("u\x{308}", "u\x{30B}")); | |
76 | ||
77 | # 34 | |
78 | ||
79 | $objHu->change(level => 2); | |
80 | ||
81 | ok($objHu->eq("cs", "cS")); | |
82 | ok($objHu->eq("cS", "Cs")); | |
83 | ok($objHu->eq("Cs", "CS")); | |
84 | ok($objHu->eq("dz", "dZ")); | |
85 | ok($objHu->eq("dZ", "Dz")); | |
86 | ok($objHu->eq("Dz", "DZ")); | |
87 | ok($objHu->eq("dzs", "dzS")); | |
88 | ok($objHu->eq("dzS", "dZs")); | |
89 | ok($objHu->eq("dZs", "dZS")); | |
90 | ok($objHu->eq("dZS", "Dzs")); | |
91 | ok($objHu->eq("Dzs", "DzS")); | |
92 | ok($objHu->eq("DzS", "DZs")); | |
93 | ok($objHu->eq("DZs", "DZS")); | |
94 | ok($objHu->eq("gy", "gY")); | |
95 | ok($objHu->eq("gY", "Gy")); | |
96 | ok($objHu->eq("Gy", "GY")); | |
97 | ok($objHu->eq("ly", "lY")); | |
98 | ok($objHu->eq("lY", "Ly")); | |
99 | ok($objHu->eq("Ly", "LY")); | |
100 | ok($objHu->eq("ny", "nY")); | |
101 | ok($objHu->eq("nY", "Ny")); | |
102 | ok($objHu->eq("Ny", "NY")); | |
103 | ok($objHu->eq("sz", "sZ")); | |
104 | ok($objHu->eq("sZ", "Sz")); | |
105 | ok($objHu->eq("Sz", "SZ")); | |
106 | ok($objHu->eq("ty", "tY")); | |
107 | ok($objHu->eq("tY", "Ty")); | |
108 | ok($objHu->eq("Ty", "TY")); | |
109 | ok($objHu->eq("zs", "zS")); | |
110 | ok($objHu->eq("zS", "Zs")); | |
111 | ok($objHu->eq("Zs", "ZS")); | |
112 | ||
113 | # 65 | |
114 | ||
115 | ok($objHu->lt("o\x{308}", "o\x{30B}")); | |
116 | ok($objHu->lt("u\x{308}", "u\x{30B}")); | |
117 | ||
118 | ok($objHu->eq("o\x{308}", "O\x{308}")); | |
119 | ok($objHu->eq("o\x{30B}", "O\x{30B}")); | |
120 | ok($objHu->eq("u\x{308}", "U\x{308}")); | |
121 | ok($objHu->eq("u\x{30B}", "U\x{30B}")); | |
122 | ||
123 | # 71 | |
124 | ||
125 | $objHu->change(level => 3); | |
126 | ||
127 | ok($objHu->lt("cs", "cS")); | |
128 | ok($objHu->lt("cS", "Cs")); | |
129 | ok($objHu->lt("Cs", "CS")); | |
130 | ok($objHu->lt("dz", "dZ")); | |
131 | ok($objHu->lt("dZ", "Dz")); | |
132 | ok($objHu->lt("Dz", "DZ")); | |
133 | ok($objHu->lt("dzs", "dzS")); | |
134 | ok($objHu->lt("dzS", "dZs")); | |
135 | ok($objHu->lt("dZs", "dZS")); | |
136 | ok($objHu->lt("dZS", "Dzs")); | |
137 | ok($objHu->lt("Dzs", "DzS")); | |
138 | ok($objHu->lt("DzS", "DZs")); | |
139 | ok($objHu->lt("DZs", "DZS")); | |
140 | ok($objHu->lt("gy", "gY")); | |
141 | ok($objHu->lt("gY", "Gy")); | |
142 | ok($objHu->lt("Gy", "GY")); | |
143 | ok($objHu->lt("ly", "lY")); | |
144 | ok($objHu->lt("lY", "Ly")); | |
145 | ok($objHu->lt("Ly", "LY")); | |
146 | ok($objHu->lt("ny", "nY")); | |
147 | ok($objHu->lt("nY", "Ny")); | |
148 | ok($objHu->lt("Ny", "NY")); | |
149 | ok($objHu->lt("sz", "sZ")); | |
150 | ok($objHu->lt("sZ", "Sz")); | |
151 | ok($objHu->lt("Sz", "SZ")); | |
152 | ok($objHu->lt("ty", "tY")); | |
153 | ok($objHu->lt("tY", "Ty")); | |
154 | ok($objHu->lt("Ty", "TY")); | |
155 | ok($objHu->lt("zs", "zS")); | |
156 | ok($objHu->lt("zS", "Zs")); | |
157 | ok($objHu->lt("Zs", "ZS")); | |
158 | ||
159 | # 102 | |
160 | ||
161 | ok($objHu->lt("o\x{308}", "O\x{308}")); | |
162 | ok($objHu->lt("o\x{30B}", "O\x{30B}")); | |
163 | ok($objHu->lt("u\x{308}", "U\x{308}")); | |
164 | ok($objHu->lt("u\x{30B}", "U\x{30B}")); | |
165 | ||
166 | ok($objHu->eq("o\x{308}", pack('U', 0xF6))); | |
167 | ok($objHu->eq("O\x{308}", pack('U', 0xD6))); | |
168 | ok($objHu->eq("o\x{30B}", "\x{151}")); | |
169 | ok($objHu->eq("O\x{30B}", "\x{150}")); | |
170 | ok($objHu->eq("u\x{308}", pack('U', 0xFC))); | |
171 | ok($objHu->eq("U\x{308}", pack('U', 0xDC))); | |
172 | ok($objHu->eq("u\x{30B}", "\x{171}")); | |
173 | ok($objHu->eq("U\x{30B}", "\x{170}")); | |
174 | ||
175 | # 114 | |
176 | ||
177 | ok($objHu->eq("o\x{308}\x{304}", "\x{22B}")); | |
178 | ok($objHu->eq("O\x{308}\x{304}", "\x{22A}")); | |
179 | ok($objHu->eq("u\x{308}\x{300}", "\x{1DC}")); | |
180 | ok($objHu->eq("U\x{308}\x{300}", "\x{1DB}")); | |
181 | ok($objHu->eq("u\x{308}\x{301}", "\x{1D8}")); | |
182 | ok($objHu->eq("U\x{308}\x{301}", "\x{1D7}")); | |
183 | ok($objHu->eq("u\x{308}\x{304}", "\x{1D6}")); | |
184 | ok($objHu->eq("U\x{308}\x{304}", "\x{1D5}")); | |
185 | ok($objHu->eq("u\x{308}\x{30C}", "\x{1DA}")); | |
186 | ok($objHu->eq("U\x{308}\x{30C}", "\x{1D9}")); | |
187 | ||
188 | # 124 | |
189 | ||
190 | ok($objHu->eq("ccs", "cscs")); | |
191 | ok($objHu->eq("ccS", "cscS")); | |
192 | ok($objHu->eq("cCs", "csCs")); | |
193 | ok($objHu->eq("cCS", "csCS")); | |
194 | ok($objHu->eq("Ccs", "CScs")); | |
195 | ok($objHu->eq("CcS", "CScS")); | |
196 | ok($objHu->eq("CCs", "CSCs")); | |
197 | ok($objHu->eq("CCS", "CSCS")); | |
198 | ok($objHu->eq("ddz", "dzdz")); | |
199 | ok($objHu->eq("ddZ", "dzdZ")); | |
200 | ok($objHu->eq("dDz", "dzDz")); | |
201 | ok($objHu->eq("dDZ", "dzDZ")); | |
202 | ok($objHu->eq("Ddz", "DZdz")); | |
203 | ok($objHu->eq("DdZ", "DZdZ")); | |
204 | ok($objHu->eq("DDz", "DZDz")); | |
205 | ok($objHu->eq("DDZ", "DZDZ")); | |
206 | ok($objHu->eq("ddzs", "dzsdzs")); | |
207 | ok($objHu->eq("ddzS", "dzsdzS")); | |
208 | ok($objHu->eq("ddZs", "dzsdZs")); | |
209 | ok($objHu->eq("ddZS", "dzsdZS")); | |
210 | ok($objHu->eq("dDzs", "dzsDzs")); | |
211 | ok($objHu->eq("dDzS", "dzsDzS")); | |
212 | ok($objHu->eq("dDZs", "dzsDZs")); | |
213 | ok($objHu->eq("dDZS", "dzsDZS")); | |
214 | ok($objHu->eq("Ddzs", "DZSdzs")); | |
215 | ok($objHu->eq("DdzS", "DZSdzS")); | |
216 | ok($objHu->eq("DdZs", "DZSdZs")); | |
217 | ok($objHu->eq("DdZS", "DZSdZS")); | |
218 | ok($objHu->eq("DDzs", "DZSDzs")); | |
219 | ok($objHu->eq("DDzS", "DZSDzS")); | |
220 | ok($objHu->eq("DDZs", "DZSDZs")); | |
221 | ok($objHu->eq("DDZS", "DZSDZS")); | |
222 | ok($objHu->eq("ggy", "gygy")); | |
223 | ok($objHu->eq("ggY", "gygY")); | |
224 | ok($objHu->eq("gGy", "gyGy")); | |
225 | ok($objHu->eq("gGY", "gyGY")); | |
226 | ok($objHu->eq("Ggy", "GYgy")); | |
227 | ok($objHu->eq("GgY", "GYgY")); | |
228 | ok($objHu->eq("GGy", "GYGy")); | |
229 | ok($objHu->eq("GGY", "GYGY")); | |
230 | ok($objHu->eq("lly", "lyly")); | |
231 | ok($objHu->eq("llY", "lylY")); | |
232 | ok($objHu->eq("lLy", "lyLy")); | |
233 | ok($objHu->eq("lLY", "lyLY")); | |
234 | ok($objHu->eq("Lly", "LYly")); | |
235 | ok($objHu->eq("LlY", "LYlY")); | |
236 | ok($objHu->eq("LLy", "LYLy")); | |
237 | ok($objHu->eq("LLY", "LYLY")); | |
238 | ok($objHu->eq("nny", "nyny")); | |
239 | ok($objHu->eq("nnY", "nynY")); | |
240 | ok($objHu->eq("nNy", "nyNy")); | |
241 | ok($objHu->eq("nNY", "nyNY")); | |
242 | ok($objHu->eq("Nny", "NYny")); | |
243 | ok($objHu->eq("NnY", "NYnY")); | |
244 | ok($objHu->eq("NNy", "NYNy")); | |
245 | ok($objHu->eq("NNY", "NYNY")); | |
246 | ok($objHu->eq("ssz", "szsz")); | |
247 | ok($objHu->eq("ssZ", "szsZ")); | |
248 | ok($objHu->eq("sSz", "szSz")); | |
249 | ok($objHu->eq("sSZ", "szSZ")); | |
250 | ok($objHu->eq("Ssz", "SZsz")); | |
251 | ok($objHu->eq("SsZ", "SZsZ")); | |
252 | ok($objHu->eq("SSz", "SZSz")); | |
253 | ok($objHu->eq("SSZ", "SZSZ")); | |
254 | ok($objHu->eq("tty", "tyty")); | |
255 | ok($objHu->eq("ttY", "tytY")); | |
256 | ok($objHu->eq("tTy", "tyTy")); | |
257 | ok($objHu->eq("tTY", "tyTY")); | |
258 | ok($objHu->eq("Tty", "TYty")); | |
259 | ok($objHu->eq("TtY", "TYtY")); | |
260 | ok($objHu->eq("TTy", "TYTy")); | |
261 | ok($objHu->eq("TTY", "TYTY")); | |
262 | ok($objHu->eq("zzs", "zszs")); | |
263 | ok($objHu->eq("zzS", "zszS")); | |
264 | ok($objHu->eq("zZs", "zsZs")); | |
265 | ok($objHu->eq("zZS", "zsZS")); | |
266 | ok($objHu->eq("Zzs", "ZSzs")); | |
267 | ok($objHu->eq("ZzS", "ZSzS")); | |
268 | ok($objHu->eq("ZZs", "ZSZs")); | |
269 | ok($objHu->eq("ZZS", "ZSZS")); | |
270 | ||
271 | # 204 | |
272 | ||
273 | $objHu->change(upper_before_lower => 1); | |
274 | ||
275 | ok($objHu->gt("cs", "cS")); | |
276 | ok($objHu->gt("cS", "Cs")); | |
277 | ok($objHu->gt("Cs", "CS")); | |
278 | ok($objHu->gt("dz", "dZ")); | |
279 | ok($objHu->gt("dZ", "Dz")); | |
280 | ok($objHu->gt("Dz", "DZ")); | |
281 | ok($objHu->gt("dzs", "dzS")); | |
282 | ok($objHu->gt("dzS", "dZs")); | |
283 | ok($objHu->gt("dZs", "dZS")); | |
284 | ok($objHu->gt("dZS", "Dzs")); | |
285 | ok($objHu->gt("Dzs", "DzS")); | |
286 | ok($objHu->gt("DzS", "DZs")); | |
287 | ok($objHu->gt("DZs", "DZS")); | |
288 | ok($objHu->gt("gy", "gY")); | |
289 | ok($objHu->gt("gY", "Gy")); | |
290 | ok($objHu->gt("Gy", "GY")); | |
291 | ok($objHu->gt("ly", "lY")); | |
292 | ok($objHu->gt("lY", "Ly")); | |
293 | ok($objHu->gt("Ly", "LY")); | |
294 | ok($objHu->gt("ny", "nY")); | |
295 | ok($objHu->gt("nY", "Ny")); | |
296 | ok($objHu->gt("Ny", "NY")); | |
297 | ok($objHu->gt("sz", "sZ")); | |
298 | ok($objHu->gt("sZ", "Sz")); | |
299 | ok($objHu->gt("Sz", "SZ")); | |
300 | ok($objHu->gt("ty", "tY")); | |
301 | ok($objHu->gt("tY", "Ty")); | |
302 | ok($objHu->gt("Ty", "TY")); | |
303 | ok($objHu->gt("zs", "zS")); | |
304 | ok($objHu->gt("zS", "Zs")); | |
305 | ok($objHu->gt("Zs", "ZS")); | |
306 | ||
307 | # 235 |