This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Use values if known at compile time
[perl5.git] / dist / I18N-LangTags / t / 55_supers_strict.t
1 use strict;
2 #sub I18N::LangTags::Detect::DEBUG () {10}
3
4 use Test::More tests => 19;
5 BEGIN {use_ok('I18N::LangTags', 'implicate_supers_strictly');}
6
7 note('Testing strict (non-tight) insertion of super-ordinate language tags');
8
9 my @in = grep m/\S/, split /[\n\r]/, q{
10  NIX => NIX
11   sv => sv
12   en => en
13  hai => hai
14
15           pt-br => pt-br pt
16        pt-br fr => pt-br fr pt
17     pt-br fr pt => pt-br fr pt
18  pt-br fr pt de => pt-br fr pt de
19  de pt-br fr pt => de pt-br fr pt
20     de pt-br fr => de pt-br fr pt
21    hai pt-br fr => hai pt-br fr  pt
22
23 # Now test multi-part complicateds:
24    pt-br-janeiro fr => pt-br-janeiro fr pt-br pt 
25 pt-br-janeiro de fr => pt-br-janeiro de fr pt-br pt
26 pt-br-janeiro de pt fr => pt-br-janeiro de pt fr pt-br
27
28 ja    pt-br-janeiro fr => ja pt-br-janeiro fr pt-br pt 
29 ja pt-br-janeiro de fr => ja pt-br-janeiro de fr pt-br pt
30 ja pt-br-janeiro de pt fr => ja pt-br-janeiro de pt fr pt-br
31
32 pt-br-janeiro de pt-br fr => pt-br-janeiro de pt-br fr pt
33  # an odd case, since we don't filter for uniqueness in this sub
34  
35 };
36
37
38 foreach my $in (@in) {
39   $in =~ s/^\s+//s;
40   $in =~ s/\s+$//s;
41   $in =~ s/#.+//s;
42   next unless $in =~ m/\S/;
43   
44   my(@in, @should);
45   {
46     die "What kind of line is <$in>?!"
47      unless $in =~ m/^(.+)=>(.+)$/s;
48   
49     my($i,$s) = ($1, $2);
50     @in     = ($i =~ m/(\S+)/g);
51     @should = ($s =~ m/(\S+)/g);
52   }
53   my @out = I18N::LangTags::implicate_supers_strictly(
54     ("@in" eq 'NIX') ? () : @in
55   );
56   @out = 'NIX' unless @out;
57
58   is_deeply(\@out, \@should, "implicate_supers_strictly for [$in]");
59 }