3b285157a1010a1724d2daedbd37173528a176a2
[perl.git] / ext / I18N-LangTags / t / 55_supers_strict.t
1
2 # Time-stamp: "2004-03-30 17:49:58 AST"
3 #sub I18N::LangTags::Detect::DEBUG () {10}
4 use I18N::LangTags qw(implicate_supers_strictly);
5
6 use Test;
7 BEGIN { plan tests => 19 };
8
9 print "#\n# Testing strict (non-tight) insertion of super-ordinate language tags...\n#\n";
10
11 my @in = grep m/\S/, split /[\n\r]/, q{
12  NIX => NIX
13   sv => sv
14   en => en
15  hai => hai
16
17           pt-br => pt-br pt
18        pt-br fr => pt-br fr pt
19     pt-br fr pt => pt-br fr pt
20  pt-br fr pt de => pt-br fr pt de
21  de pt-br fr pt => de pt-br fr pt
22     de pt-br fr => de pt-br fr pt
23    hai pt-br fr => hai pt-br fr  pt
24
25 # Now test multi-part complicateds:
26    pt-br-janeiro fr => pt-br-janeiro fr pt-br pt 
27 pt-br-janeiro de fr => pt-br-janeiro de fr pt-br pt
28 pt-br-janeiro de pt fr => pt-br-janeiro de pt fr pt-br
29
30 ja    pt-br-janeiro fr => ja pt-br-janeiro fr pt-br pt 
31 ja pt-br-janeiro de fr => ja pt-br-janeiro de fr pt-br pt
32 ja pt-br-janeiro de pt fr => ja pt-br-janeiro de pt fr pt-br
33
34 pt-br-janeiro de pt-br fr => pt-br-janeiro de pt-br fr pt
35  # an odd case, since we don't filter for uniqueness in this sub
36  
37 };
38
39
40 foreach my $in (@in) {
41   $in =~ s/^\s+//s;
42   $in =~ s/\s+$//s;
43   $in =~ s/#.+//s;
44   next unless $in =~ m/\S/;
45   
46   my(@in, @should);
47   {
48     die "What kind of line is <$in>?!"
49      unless $in =~ m/^(.+)=>(.+)$/s;
50   
51     my($i,$s) = ($1, $2);
52     @in     = ($i =~ m/(\S+)/g);
53     @should = ($s =~ m/(\S+)/g);
54     #print "{@in}{@should}\n";
55   }
56   my @out = I18N::LangTags::implicate_supers_strictly(
57     ("@in" eq 'NIX') ? () : @in
58   );
59   #print "O: ", join(' ', map "<$_>", @out), "\n";
60   @out = 'NIX' unless @out;
61
62   
63   if( @out == @should
64       and lc( join "\e", @out ) eq lc( join "\e", @should )
65   ) {
66     print "#     Happily got [@out] from [$in]\n";
67     ok 1;
68   } else {
69     ok 0;
70     print "#!!Got:         [@out]\n",
71           "#!! but wanted: [@should]\n",
72           "#!! from \"$in\"\n#\n";
73   }
74 }
75
76 print "#\n#\n# Bye-bye!\n";
77 ok 1;
78