This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Updated Locale-Codes to CPAN version 3.17
[perl5.git] / cpan / Locale-Codes / t / country.t
1 #!/usr/bin/perl -w
2
3 require 5.002;
4
5 $runtests=shift(@ARGV);
6 if ( -f "t/testfunc.pl" ) {
7   require "t/testfunc.pl";
8   $dir="./lib";
9   $tdir="t";
10 } elsif ( -f "testfunc.pl" ) {
11   require "testfunc.pl";
12   $dir="../lib";
13   $tdir=".";
14 } else {
15   die "ERROR: cannot find testfunc.pl\n";
16 }
17
18 unshift(@INC,$dir);
19 use Locale::Codes::Country;
20
21 %type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2,
22           "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3,
23           "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC,
24           "LOCALE_CODE_FIPS"    => LOCALE_CODE_FIPS,
25         );
26
27 sub test {
28    my(@test) = @_;
29
30    if      ($test[0] eq "rename_country") {
31       shift(@test);
32       $test[2]  = $type{$test[2]}
33         if (@test == 3  &&  $test[2]  &&  exists $type{$test[2]});
34       return Locale::Codes::Country::rename_country(@test,"nowarn");
35
36    } elsif ($test[0] eq "add_country") {
37       shift(@test);
38       $test[2]  = $type{$test[2]}
39         if (@test == 3  &&  $test[2]  &&  exists $type{$test[2]});
40       return Locale::Codes::Country::add_country(@test,"nowarn");
41
42    } elsif ($test[0] eq "delete_country") {
43       shift(@test);
44       $test[1]  = $type{$test[1]}
45         if (@test == 2  &&  $test[1]  &&  exists $type{$test[1]});
46       return Locale::Codes::Country::delete_country(@test,"nowarn");
47
48    } elsif ($test[0] eq "add_country_alias") {
49       shift(@test);
50       return Locale::Codes::Country::add_country_alias(@test,"nowarn");
51
52    } elsif ($test[0] eq "delete_country_alias") {
53       shift(@test);
54       return Locale::Codes::Country::delete_country_alias(@test,"nowarn");
55
56    } elsif ($test[0] eq "rename_country_code") {
57       shift(@test);
58       $test[2]  = $type{$test[2]}
59         if (@test == 3  &&  $test[2]  &&  exists $type{$test[2]});
60       return Locale::Codes::Country::rename_country_code(@test,"nowarn");
61
62    } elsif ($test[0] eq "add_country_code_alias") {
63       shift(@test);
64       $test[2]  = $type{$test[2]}
65         if (@test == 3  &&  $test[2]  &&  exists $type{$test[2]});
66       return Locale::Codes::Country::add_country_code_alias(@test,"nowarn");
67
68    } elsif ($test[0] eq "delete_country_code_alias") {
69       shift(@test);
70       $test[1]  = $type{$test[1]}
71         if (@test == 2  &&  $test[1]  &&  exists $type{$test[1]});
72       return Locale::Codes::Country::delete_country_code_alias(@test,"nowarn");
73
74    } elsif ($test[0] eq "country2code") {
75       shift(@test);
76       $test[1]  = $type{$test[1]}
77         if (@test == 2  &&  $test[1]  &&  exists $type{$test[1]});
78       return country2code(@test);
79
80    } else {
81       shift(@test)  if ($test[0] eq "code2country");
82       $test[1]  = $type{$test[1]}
83         if (@test == 2  &&  $test[1]  &&  exists $type{$test[1]});
84       return code2country(@test);
85    }
86 }
87
88 $tests = "
89
90 ###################################
91 # Test rename_country
92
93 gb
94    ~
95    United Kingdom
96
97 rename_country x1 NewName ~ 0
98
99 rename_country gb NewName LOCALE_CODE_FOO ~ 0
100
101 rename_country gb Macao ~ 0
102
103 rename_country gb NewName LOCALE_CODE_ALPHA_3 ~ 0
104
105 gb
106    ~
107    United Kingdom
108
109 rename_country gb NewName ~ 1
110
111 gb
112    ~
113    NewName
114
115 ###################################
116 # Test add_country
117
118 xx ~ _undef_
119
120 add_country xx Bolivia ~ 0
121
122 add_country fi Xxxxx ~ 0
123
124 add_country xx Xxxxx ~ 1
125
126 xx ~ Xxxxx
127
128 ###################################
129 # Test add_country_alias
130
131 add_country_alias FooBar NewName ~ 0
132
133 add_country_alias Australia Angola ~ 0
134
135 country2code Australia ~ au
136
137 country2code DownUnder ~ _undef_
138
139 add_country_alias Australia DownUnder ~ 1
140
141 country2code DownUnder ~ au
142
143 ###################################
144 # Test delete_country_alias
145
146 country2code uk ~ gb
147
148 delete_country_alias Foobar ~ 0
149
150 delete_country_alias UK ~ 1
151
152 country2code uk ~ _undef_
153
154 delete_country_alias Angola ~ 0
155
156 ###################################
157 # Test delete_country
158
159 country2code Angola                     ~ ao
160
161 country2code Angola LOCALE_CODE_ALPHA_3 ~ ago
162
163 delete_country ao                       ~ 1
164
165 country2code Angola                     ~ _undef_
166
167 country2code Angola LOCALE_CODE_ALPHA_3 ~ ago
168
169 ###################################
170 # Test rename_country_code
171
172 code2country zz           ~ _undef_
173
174 code2country ar           ~ Argentina
175
176 country2code Argentina    ~ ar
177
178 rename_country_code ar us ~ 0
179
180 rename_country_code ar zz ~ 1
181
182 rename_country_code us ar ~ 0
183
184 code2country zz           ~ Argentina
185
186 code2country ar           ~ Argentina
187
188 country2code Argentina    ~ zz
189
190 rename_country_code zz ar ~ 1
191
192 code2country zz           ~ Argentina
193
194 code2country ar           ~ Argentina
195
196 country2code Argentina    ~ ar
197
198 ###################################
199 # Test add_country_code_alias and
200 # delete_country_code_alias
201
202 code2country bm              ~ Bermuda
203
204 code2country yy              ~ _undef_
205
206 country2code Bermuda         ~ bm
207
208 add_country_code_alias bm us ~ 0
209
210 add_country_code_alias bm zz ~ 0
211
212 add_country_code_alias bm yy ~ 1
213
214 code2country bm              ~ Bermuda
215
216 code2country yy              ~ Bermuda
217
218 country2code Bermuda         ~ bm
219
220 delete_country_code_alias us ~ 0
221
222 delete_country_code_alias ww ~ 0
223
224 delete_country_code_alias yy ~ 1
225
226 code2country bm              ~ Bermuda
227
228 code2country yy              ~ _undef_
229
230 country2code Bermuda         ~ bm
231
232 ";
233
234 print "country (semi-private)...\n";
235 test_Func(\&test,$tests,$runtests);
236
237 1;
238 # Local Variables:
239 # mode: cperl
240 # indent-tabs-mode: nil
241 # cperl-indent-level: 3
242 # cperl-continued-statement-offset: 2
243 # cperl-continued-brace-offset: 0
244 # cperl-brace-offset: 0
245 # cperl-brace-imaginary-offset: 0
246 # cperl-label-offset: -2
247 # End: