Move I18N::LangTags from ext/ to dist/
[perl.git] / dist / I18N-LangTags / t / 05_main.t
1
2 require 5;
3  # Time-stamp: "2004-03-30 17:52:14 AST"
4 use strict;
5 use Test;
6 BEGIN { plan tests => 64 };
7 BEGIN { ok 1 }
8 use I18N::LangTags (':ALL');
9
10 print "# Perl v$], I18N::LangTags v$I18N::LangTags::VERSION\n";
11
12 ok !is_language_tag('');
13 ok  is_language_tag('fr');
14 ok  is_language_tag('fr-ca');
15 ok  is_language_tag('fr-CA');
16 ok !is_language_tag('fr-CA-');
17 ok !is_language_tag('fr_CA');
18 ok  is_language_tag('fr-ca-joual');
19 ok !is_language_tag('frca');
20 ok  is_language_tag('nav'); # (not actual tag)
21 ok  is_language_tag('nav-shiprock'); # (not actual tag)
22 ok !is_language_tag('nav-ceremonial'); # subtag too long
23 ok !is_language_tag('x');
24 ok !is_language_tag('i');
25 ok  is_language_tag('i-borg'); # NB: fictitious tag
26 ok  is_language_tag('x-borg');
27 ok  is_language_tag('x-borg-prot5123');
28 ok  same_language_tag('x-borg-prot5123', 'i-BORG-Prot5123' );
29 ok !same_language_tag('en', 'en-us' );
30
31 ok 0 == similarity_language_tag('en-ca', 'fr-ca');
32 ok 1 == similarity_language_tag('en-ca', 'en-us');
33 ok 2 == similarity_language_tag('en-us-southern', 'en-us-western');
34 ok 2 == similarity_language_tag('en-us-southern', 'en-us');
35
36 ok grep $_ eq 'hi', panic_languages('kok');
37 ok grep $_ eq 'en', panic_languages('x-woozle-wuzzle');
38 ok ! grep $_ eq 'mr', panic_languages('it');
39 ok grep $_ eq 'es', panic_languages('it');
40 ok grep $_ eq 'it', panic_languages('es');
41
42
43 print "# Now the ::List tests...\n";
44 print "# Perl v$], I18N::LangTags::List v$I18N::LangTags::List::VERSION\n";
45
46 use I18N::LangTags::List;
47 foreach my $lt (qw(
48  en
49  en-us
50  en-kr
51  el
52  elx
53  i-mingo
54  i-mingo-tom
55  x-mingo-tom
56  it
57  it-it
58  it-IT
59  it-FR
60  ak
61  aka
62  jv
63  jw
64  no
65  no-nyn
66  nn
67  i-lux
68  lb
69  wa
70  yi
71  ji
72  den-syllabic
73  den-syllabic-western
74  den-western
75  den-latin
76  cre-syllabic
77  cre-syllabic-western
78  cre-western
79  cre-latin
80  cr-syllabic
81  cr-syllabic-western
82  cr-western
83  cr-latin
84 )) {
85   my $name = I18N::LangTags::List::name($lt);
86   if($name) {
87     ok(1);
88     print "#        $lt -> $name\n";
89   } else {
90     ok(0);
91     print "#        Failed lookup on $lt\n";
92   }
93 }
94
95
96
97 print "# So there!\n";
98