This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Updated Unicode-Collate to CPAN version 0.76
[perl5.git] / cpan / Unicode-Collate / t / loc_kl.t
1
2 BEGIN {
3     unless ("A" eq pack('U', 0x41)) {
4         print "1..0 # Unicode::Collate " .
5             "cannot stringify a Unicode code point\n";
6         exit 0;
7     }
8     if ($ENV{PERL_CORE}) {
9         chdir('t') if -d 't';
10         @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
11     }
12 }
13
14 use Test;
15 BEGIN { plan tests => 101 };
16
17 use strict;
18 use warnings;
19 use Unicode::Collate::Locale;
20
21 ok(1);
22
23 #########################
24
25 my $eth  = pack 'U', 0xF0;
26 my $ETH  = pack 'U', 0xD0;
27 my $thrn = pack 'U', 0xFE;
28 my $THRN = pack 'U', 0xDE;
29 my $uuml = pack 'U', 0xFC;
30 my $Uuml = pack 'U', 0xDC;
31 my $ae   = pack 'U', 0xE6;
32 my $AE   = pack 'U', 0xC6;
33 my $auml = pack 'U', 0xE4;
34 my $Auml = pack 'U', 0xC4;
35 my $ostk = pack 'U', 0xF8;
36 my $Ostk = pack 'U', 0xD8;
37 my $ouml = pack 'U', 0xF6;
38 my $Ouml = pack 'U', 0xD6;
39 my $arng = pack 'U', 0xE5;
40 my $Arng = pack 'U', 0xC5;
41
42 my $objKl = Unicode::Collate::Locale->
43     new(locale => 'KL', normalization => undef);
44
45 ok($objKl->getlocale, 'kl');
46
47 $objKl->change(level => 1);
48
49 ok($objKl->lt('z', $ae));
50 ok($objKl->lt($ae, $ostk));
51 ok($objKl->lt($ostk, $arng));
52 ok($objKl->lt($arng, "\x{1C0}"));
53
54 # 6
55
56 ok($objKl->eq('d', "\x{111}"));
57 ok($objKl->eq("\x{111}", $eth));
58 ok($objKl->eq('q', "\x{138}"));
59 ok($objKl->eq('q', "K'"));
60 ok($objKl->eq('y', $uuml));
61 ok($objKl->eq($uuml, "\x{171}"));
62 ok($objKl->eq($ae, $auml));
63 ok($objKl->eq($auml, "\x{119}"));
64 ok($objKl->eq($ostk, $ouml));
65 ok($objKl->eq($ouml, "\x{151}"));
66 ok($objKl->eq("\x{151}", "\x{153}"));
67
68 # 17
69
70 $objKl->change(level => 2);
71
72 ok($objKl->lt('d', "\x{111}"));
73 ok($objKl->lt("\x{111}", $eth));
74 ok($objKl->lt('q', "\x{138}"));
75 ok($objKl->lt('q', "K'"));
76 ok($objKl->lt('y', $uuml));
77 ok($objKl->lt($uuml, "\x{171}"));
78 ok($objKl->lt($ae, $auml));
79 ok($objKl->lt($auml, "\x{119}"));
80 ok($objKl->lt($ostk, $ouml));
81 ok($objKl->lt($ouml, "\x{151}"));
82 ok($objKl->lt("\x{151}", "\x{153}"));
83
84 # 28
85
86 ok($objKl->eq("\x{111}", "\x{110}"));
87 ok($objKl->eq($eth,  $ETH));
88 ok($objKl->eq("\x{138}", "K'"));
89 ok($objKl->eq('th',  $thrn));
90 ok($objKl->eq($thrn, 'TH'));
91 ok($objKl->eq('TH',  $THRN));
92 ok($objKl->eq($uuml, $Uuml));
93 ok($objKl->eq("\x{171}", "\x{170}"));
94 ok($objKl->eq($ae,   $AE));
95 ok($objKl->eq($AE, "\x{1D2D}"));
96 ok($objKl->eq($auml, $Auml));
97 ok($objKl->eq("\x{119}", "\x{118}"));
98 ok($objKl->eq($ostk, $Ostk));
99 ok($objKl->eq($ouml, $Ouml));
100 ok($objKl->eq("\x{151}", "\x{150}"));
101 ok($objKl->eq("\x{153}", "\x{152}"));
102 ok($objKl->eq($arng, $Arng));
103
104 # 45
105
106 $objKl->change(level => 3);
107
108 ok($objKl->lt("\x{111}", "\x{110}"));
109 ok($objKl->lt($eth,  $ETH));
110 ok($objKl->lt("\x{138}", "K'"));
111 ok($objKl->lt('th',  $thrn));
112 ok($objKl->lt($thrn, 'TH'));
113 ok($objKl->lt('TH',  $THRN));
114 ok($objKl->lt($uuml, $Uuml));
115 ok($objKl->lt("\x{171}", "\x{170}"));
116 ok($objKl->lt($ae,   $AE));
117 ok($objKl->lt($AE, "\x{1D2D}"));
118 ok($objKl->lt($auml, $Auml));
119 ok($objKl->lt("\x{119}", "\x{118}"));
120 ok($objKl->lt($ostk, $Ostk));
121 ok($objKl->lt($ouml, $Ouml));
122 ok($objKl->lt("\x{151}", "\x{150}"));
123 ok($objKl->lt("\x{153}", "\x{152}"));
124 ok($objKl->lt($arng, $Arng));
125
126 # 62
127
128 ok($objKl->eq("d\x{335}", "\x{111}"));
129 ok($objKl->eq("D\x{335}", "\x{110}"));
130 ok($objKl->eq("u\x{308}", $uuml));
131 ok($objKl->eq("U\x{308}", $Uuml));
132 ok($objKl->eq("u\x{30B}", "\x{171}"));
133 ok($objKl->eq("U\x{30B}", "\x{170}"));
134 ok($objKl->eq("a\x{308}", $auml));
135 ok($objKl->eq("A\x{308}", $Auml));
136 ok($objKl->eq("e\x{328}", "\x{119}"));
137 ok($objKl->eq("E\x{328}", "\x{118}"));
138 ok($objKl->eq("o\x{338}", $ostk));
139 ok($objKl->eq("O\x{338}", $Ostk));
140 ok($objKl->eq("o\x{308}", $ouml));
141 ok($objKl->eq("O\x{308}", $Ouml));
142 ok($objKl->eq("o\x{30B}", "\x{151}"));
143 ok($objKl->eq("O\x{30B}", "\x{150}"));
144 ok($objKl->eq("a\x{30A}", $arng));
145 ok($objKl->eq("A\x{30A}", $Arng));
146
147 # 80
148
149 ok($objKl->eq("u\x{308}\x{300}", "\x{1DC}"));
150 ok($objKl->eq("U\x{308}\x{300}", "\x{1DB}"));
151 ok($objKl->eq("u\x{308}\x{301}", "\x{1D8}"));
152 ok($objKl->eq("U\x{308}\x{301}", "\x{1D7}"));
153 ok($objKl->eq("u\x{308}\x{304}", "\x{1D6}"));
154 ok($objKl->eq("U\x{308}\x{304}", "\x{1D5}"));
155 ok($objKl->eq("u\x{308}\x{30C}", "\x{1DA}"));
156 ok($objKl->eq("U\x{308}\x{30C}", "\x{1D9}"));
157 ok($objKl->eq("\x{1FD}", "$ae\x{301}"));
158 ok($objKl->eq("\x{1FC}", "$AE\x{301}"));
159 ok($objKl->eq("\x{1E3}", "$ae\x{304}"));
160 ok($objKl->eq("\x{1E2}", "$AE\x{304}"));
161 ok($objKl->eq("a\x{308}\x{304}", "\x{1DF}"));
162 ok($objKl->eq("A\x{308}\x{304}", "\x{1DE}"));
163 ok($objKl->eq("o\x{338}\x{301}", "\x{1FF}"));
164 ok($objKl->eq("O\x{338}\x{301}", "\x{1FE}"));
165 ok($objKl->eq("o\x{308}\x{304}", "\x{22B}"));
166 ok($objKl->eq("O\x{308}\x{304}", "\x{22A}"));
167 ok($objKl->eq("A\x{30A}", "\x{212B}"));
168 ok($objKl->eq("a\x{30A}\x{301}", "\x{1FB}"));
169 ok($objKl->eq("A\x{30A}\x{301}", "\x{1FA}"));
170
171 # 101