Upgrade to Locale::Codes 2.00.
[p5sagit/p5-mst-13.2.git] / lib / Locale / Codes / t / all.t
CommitLineData
47a334e9 1#!./perl
2#
3# all.t - tests for all_* routines in
4# Locale::Country
5# Locale::Language
6# Locale::Currency
6b6e008c 7# Locale::Script
47a334e9 8#
9# There are four tests. We get a list of all codes, convert to
10# language/country/currency, # convert back to code,
11# and check that they're the same. Then we do the same,
12# starting with list of languages/countries/currencies.
13#
14
a8135056 15BEGIN {
16 chdir 't' if -d 't';
17 @INC = '../lib';
18}
19
47a334e9 20use Locale::Country;
21use Locale::Language;
22use Locale::Currency;
6b6e008c 23use Locale::Script;
47a334e9 24
6b6e008c 25print "1..20\n";
47a334e9 26
27my $code;
28my $language;
29my $country;
30my $ok;
31my $reverse;
32my $currency;
6b6e008c 33my $script;
47a334e9 34
35
36#-----------------------------------------------------------------------
37# Old API - without codeset specified, default to ALPHA_2
38#-----------------------------------------------------------------------
39$ok = 1;
40foreach $code (all_country_codes())
41{
42 $country = code2country($code);
43 if (!defined $country)
44 {
45 $ok = 0;
46 last;
47 }
48 $reverse = country2code($country);
49 if (!defined $reverse)
50 {
51 $ok = 0;
52 last;
53 }
54 if ($reverse ne $code)
55 {
56 $ok = 0;
57 last;
58 }
59}
60print ($ok ? "ok 1\n" : "not ok 1\n");
61
62#-----------------------------------------------------------------------
63# code to country, back to code, for ALPHA2
64#-----------------------------------------------------------------------
65$ok = 1;
66foreach $code (all_country_codes(LOCALE_CODE_ALPHA_2))
67{
68 $country = code2country($code, LOCALE_CODE_ALPHA_2);
69 if (!defined $country)
70 {
71 $ok = 0;
72 last;
73 }
74 $reverse = country2code($country, LOCALE_CODE_ALPHA_2);
75 if (!defined $reverse)
76 {
77 $ok = 0;
78 last;
79 }
80 if ($reverse ne $code)
81 {
82 $ok = 0;
83 last;
84 }
85}
86print ($ok ? "ok 2\n" : "not ok 2\n");
87
88#-----------------------------------------------------------------------
89# code to country, back to code, for ALPHA3
90#-----------------------------------------------------------------------
91$ok = 1;
92foreach $code (all_country_codes(LOCALE_CODE_ALPHA_3))
93{
94 $country = code2country($code, LOCALE_CODE_ALPHA_3);
95 if (!defined $country)
96 {
97 $ok = 0;
98 last;
99 }
100 $reverse = country2code($country, LOCALE_CODE_ALPHA_3);
101 if (!defined $reverse)
102 {
103 $ok = 0;
104 last;
105 }
106 if ($reverse ne $code)
107 {
108 $ok = 0;
109 last;
110 }
111}
112print ($ok ? "ok 3\n" : "not ok 3\n");
113
114#-----------------------------------------------------------------------
115# code to country, back to code, for NUMERIC
116#-----------------------------------------------------------------------
117$ok = 1;
118foreach $code (all_country_codes(LOCALE_CODE_NUMERIC))
119{
120 $country = code2country($code, LOCALE_CODE_NUMERIC);
121 if (!defined $country)
122 {
123 $ok = 0;
124 last;
125 }
126 $reverse = country2code($country, LOCALE_CODE_NUMERIC);
127 if (!defined $reverse)
128 {
129 $ok = 0;
130 last;
131 }
132 if ($reverse ne $code)
133 {
134 $ok = 0;
135 last;
136 }
137}
138print ($ok ? "ok 4\n" : "not ok 4\n");
139
140
141#-----------------------------------------------------------------------
142# Old API - country to code, back to country, using default of ALPHA_2
143#-----------------------------------------------------------------------
144$ok = 1;
145foreach $country (all_country_names())
146{
147 $code = country2code($country);
148 if (!defined $code)
149 {
150 $ok = 0;
151 last;
152 }
153 $reverse = code2country($code);
154 if (!defined $reverse)
155 {
156 $ok = 0;
157 last;
158 }
159 if ($reverse ne $country)
160 {
161 $ok = 0;
162 last;
163 }
164}
165print ($ok ? "ok 5\n" : "not ok 5\n");
166
167#-----------------------------------------------------------------------
168# country to code, back to country, using LOCALE_CODE_ALPHA_2
169#-----------------------------------------------------------------------
170$ok = 1;
171foreach $country (all_country_names())
172{
173 $code = country2code($country, LOCALE_CODE_ALPHA_2);
174 if (!defined $code)
175 {
176 $ok = 0;
177 last;
178 }
179 $reverse = code2country($code, LOCALE_CODE_ALPHA_2);
180 if (!defined $reverse)
181 {
182 $ok = 0;
183 last;
184 }
185 if ($reverse ne $country)
186 {
187 $ok = 0;
188 last;
189 }
190}
191print ($ok ? "ok 6\n" : "not ok 6\n");
192
193#-----------------------------------------------------------------------
194# country to code, back to country, using LOCALE_CODE_ALPHA_3
195#-----------------------------------------------------------------------
196$ok = 1;
197foreach $country (all_country_names())
198{
199 $code = country2code($country, LOCALE_CODE_ALPHA_3);
200 if (!defined $code)
201 {
202 next if ($country eq 'Antarctica'
203 || $country eq 'Bouvet Island'
204 || $country eq 'Cocos (Keeling) Islands'
205 || $country eq 'Christmas Island'
206 || $country eq 'France, Metropolitan'
207 || $country eq 'South Georgia and the South Sandwich Islands'
208 || $country eq 'Heard Island and McDonald Islands'
209 || $country eq 'British Indian Ocean Territory'
210 || $country eq 'French Southern Territories'
211 || $country eq 'United States Minor Outlying Islands'
212 || $country eq 'Mayotte'
213 || $country eq 'Zaire');
214 $ok = 0;
215 last;
216 }
217 $reverse = code2country($code, LOCALE_CODE_ALPHA_3);
218 if (!defined $reverse)
219 {
220 $ok = 0;
221 last;
222 }
223 if ($reverse ne $country)
224 {
225 $ok = 0;
226 last;
227 }
228}
229print ($ok ? "ok 7\n" : "not ok 7\n");
230
231#-----------------------------------------------------------------------
232# country to code, back to country, using LOCALE_CODE_NUMERIC
233#-----------------------------------------------------------------------
234$ok = 1;
235foreach $country (all_country_names())
236{
237 $code = country2code($country, LOCALE_CODE_NUMERIC);
238 if (!defined $code)
239 {
240 next if ($country eq 'Antarctica'
241 || $country eq 'Bouvet Island'
242 || $country eq 'Cocos (Keeling) Islands'
243 || $country eq 'Christmas Island'
244 || $country eq 'France, Metropolitan'
245 || $country eq 'South Georgia and the South Sandwich Islands'
246 || $country eq 'Heard Island and McDonald Islands'
247 || $country eq 'British Indian Ocean Territory'
248 || $country eq 'French Southern Territories'
249 || $country eq 'United States Minor Outlying Islands'
250 || $country eq 'Mayotte'
251 || $country eq 'Zaire');
252 $ok = 0;
253 last;
254 }
255 $reverse = code2country($code, LOCALE_CODE_NUMERIC);
256 if (!defined $reverse)
257 {
258 $ok = 0;
259 last;
260 }
261 if ($reverse ne $country)
262 {
263 $ok = 0;
264 last;
265 }
266}
267print ($ok ? "ok 8\n" : "not ok 8\n");
268
269
270$ok = 1;
271foreach $code (all_language_codes())
272{
273 $language = code2language($code);
274 if (!defined $language)
275 {
276 $ok = 0;
277 last;
278 }
279 $reverse = language2code($language);
280 if (!defined $reverse)
281 {
282 $ok = 0;
283 last;
284 }
285 if ($reverse ne $code)
286 {
287 $ok = 0;
288 last;
289 }
290}
291print ($ok ? "ok 9\n" : "not ok 9\n");
292
293
294$ok = 1;
295foreach $language (all_language_names())
296{
297 $code = language2code($language);
298 if (!defined $code)
299 {
300 $ok = 0;
301 last;
302 }
303 $reverse = code2language($code);
304 if (!defined $reverse)
305 {
306 $ok = 0;
307 last;
308 }
309 if ($reverse ne $language)
310 {
311 $ok = 0;
312 last;
313 }
314}
315print ($ok ? "ok 10\n" : "not ok 10\n");
316
317$ok = 1;
318foreach $code (all_currency_codes())
319{
320 $currency = code2currency($code);
321 if (!defined $currency)
322 {
323 $ok = 0;
324 last;
325 }
326 $reverse = currency2code($currency);
327 if (!defined $reverse)
328 {
329 $ok = 0;
330 last;
331 }
332 #
333 # three special cases:
334 # The Kwacha has two codes - used in Zambia and Malawi
335 # The Russian Ruble has two codes - rub and rur
336 # The Belarussian Ruble has two codes - byb and byr
337 if ($reverse ne $code
338 && $code ne 'mwk' && $code ne 'zmk'
339 && $code ne 'byr' && $code ne 'byb'
340 && $code ne 'rub' && $code ne 'rur')
341 {
342 $ok = 0;
343 last;
344 }
345}
346print ($ok ? "ok 11\n" : "not ok 11\n");
347
348$ok = 1;
349foreach $currency (all_currency_names())
350{
351 $code = currency2code($currency);
352 if (!defined $code)
353 {
354 $ok = 0;
355 last;
356 }
357 $reverse = code2currency($code);
358 if (!defined $reverse)
359 {
360 $ok = 0;
361 last;
362 }
363 if ($reverse ne $currency)
364 {
365 $ok = 0;
366 last;
367 }
368}
369print ($ok ? "ok 12\n" : "not ok 12\n");
6b6e008c 370
371#=======================================================================
372#
373# Locale::Script tests
374#
375#=======================================================================
376
377#-----------------------------------------------------------------------
378# Old API - without codeset specified, default to ALPHA_2
379#-----------------------------------------------------------------------
380$ok = 1;
381foreach $code (all_script_codes())
382{
383 $script = code2script($code);
384 if (!defined $script)
385 {
386 $ok = 0;
387 last;
388 }
389 $reverse = script2code($script);
390 if (!defined $reverse)
391 {
392 $ok = 0;
393 last;
394 }
395 if ($reverse ne $code)
396 {
397 $ok = 0;
398 last;
399 }
400}
401print ($ok ? "ok 13\n" : "not ok 13\n");
402
403#-----------------------------------------------------------------------
404# code to script, back to code, for ALPHA2
405#-----------------------------------------------------------------------
406$ok = 1;
407foreach $code (all_script_codes(LOCALE_CODE_ALPHA_2))
408{
409 $script = code2script($code, LOCALE_CODE_ALPHA_2);
410 if (!defined $script)
411 {
412 $ok = 0;
413 last;
414 }
415 $reverse = script2code($script, LOCALE_CODE_ALPHA_2);
416 if (!defined $reverse)
417 {
418 $ok = 0;
419 last;
420 }
421 if ($reverse ne $code)
422 {
423 $ok = 0;
424 last;
425 }
426}
427print ($ok ? "ok 14\n" : "not ok 14\n");
428
429#-----------------------------------------------------------------------
430# code to script, back to code, for ALPHA3
431#-----------------------------------------------------------------------
432$ok = 1;
433foreach $code (all_script_codes(LOCALE_CODE_ALPHA_3))
434{
435 $script = code2script($code, LOCALE_CODE_ALPHA_3);
436 if (!defined $script)
437 {
438 $ok = 0;
439 last;
440 }
441 $reverse = script2code($script, LOCALE_CODE_ALPHA_3);
442 if (!defined $reverse)
443 {
444 $ok = 0;
445 last;
446 }
447 if ($reverse ne $code)
448 {
449 $ok = 0;
450 last;
451 }
452}
453print ($ok ? "ok 15\n" : "not ok 15\n");
454
455#-----------------------------------------------------------------------
456# code to script, back to code, for NUMERIC
457#-----------------------------------------------------------------------
458$ok = 1;
459foreach $code (all_script_codes(LOCALE_CODE_NUMERIC))
460{
461 $script = code2script($code, LOCALE_CODE_NUMERIC);
462 if (!defined $script)
463 {
464 $ok = 0;
465 last;
466 }
467 $reverse = script2code($script, LOCALE_CODE_NUMERIC);
468 if (!defined $reverse)
469 {
470 $ok = 0;
471 last;
472 }
473 if ($reverse ne $code)
474 {
475 $ok = 0;
476 last;
477 }
478}
479print ($ok ? "ok 16\n" : "not ok 16\n");
480
481
482#-----------------------------------------------------------------------
483# Old API - script to code, back to script, using default of ALPHA_2
484#-----------------------------------------------------------------------
485$ok = 1;
486foreach $script (all_script_names())
487{
488 $code = script2code($script);
489 if (!defined $code)
490 {
491 $ok = 0;
492 last;
493 }
494 $reverse = code2script($code);
495 if (!defined $reverse)
496 {
497 $ok = 0;
498 last;
499 }
500 if ($reverse ne $script)
501 {
502 $ok = 0;
503 last;
504 }
505}
506print ($ok ? "ok 17\n" : "not ok 17\n");
507
508#-----------------------------------------------------------------------
509# script to code, back to script, using LOCALE_CODE_ALPHA_2
510#-----------------------------------------------------------------------
511$ok = 1;
512foreach $script (all_script_names())
513{
514 $code = script2code($script, LOCALE_CODE_ALPHA_2);
515 if (!defined $code)
516 {
517 $ok = 0;
518 last;
519 }
520 $reverse = code2script($code, LOCALE_CODE_ALPHA_2);
521 if (!defined $reverse)
522 {
523 $ok = 0;
524 last;
525 }
526 if ($reverse ne $script)
527 {
528 $ok = 0;
529 last;
530 }
531}
532print ($ok ? "ok 18\n" : "not ok 18\n");
533
534#-----------------------------------------------------------------------
535# script to code, back to script, using LOCALE_CODE_ALPHA_3
536#-----------------------------------------------------------------------
537$ok = 1;
538foreach $script (all_script_names())
539{
540 $code = script2code($script, LOCALE_CODE_ALPHA_3);
541 if (!defined $code)
542 {
543 $ok = 0;
544 last;
545 }
546 $reverse = code2script($code, LOCALE_CODE_ALPHA_3);
547 if (!defined $reverse)
548 {
549 $ok = 0;
550 last;
551 }
552 if ($reverse ne $script)
553 {
554 $ok = 0;
555 last;
556 }
557}
558print ($ok ? "ok 19\n" : "not ok 19\n");
559
560#-----------------------------------------------------------------------
561# script to code, back to script, using LOCALE_CODE_NUMERIC
562#-----------------------------------------------------------------------
563$ok = 1;
564foreach $script (all_script_names())
565{
566 $code = script2code($script, LOCALE_CODE_NUMERIC);
567 if (!defined $code)
568 {
569 $ok = 0;
570 last;
571 }
572 $reverse = code2script($code, LOCALE_CODE_NUMERIC);
573 if (!defined $reverse)
574 {
575 $ok = 0;
576 last;
577 }
578 if ($reverse ne $script)
579 {
580 $ok = 0;
581 last;
582 }
583}
584print ($ok ? "ok 20\n" : "not ok 20\n");
585