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_sv.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 => 117 };
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 $arng = pack 'U', 0xE5;
32 my $Arng = pack 'U', 0xC5;
33 my $auml = pack 'U', 0xE4;
34 my $Auml = pack 'U', 0xC4;
35 my $ae   = pack 'U', 0xE6;
36 my $AE   = pack 'U', 0xC6;
37 my $ouml = pack 'U', 0xF6;
38 my $Ouml = pack 'U', 0xD6;
39 my $ostk = pack 'U', 0xF8;
40 my $Ostk = pack 'U', 0xD8;
41 my $ocrc = pack 'U', 0xF4;
42 my $Ocrc = pack 'U', 0xD4;
43
44 my $objSv = Unicode::Collate::Locale->
45     new(locale => 'SV', normalization => undef);
46
47 ok($objSv->getlocale, 'sv');
48
49 $objSv->change(level => 1);
50
51 ok($objSv->lt('z', $arng));
52 ok($objSv->lt($arng, $auml));
53 ok($objSv->lt($auml, $ouml));
54 ok($objSv->lt($ouml, "\x{1C0}"));
55
56 # 6
57
58 ok($objSv->eq('d', "\x{111}"));
59 ok($objSv->eq("\x{111}", $eth));
60 ok($objSv->eq('y', $uuml));
61 ok($objSv->eq($uuml, "\x{171}"));
62
63 ok($objSv->eq($auml, $ae));
64 ok($objSv->eq($ae, "\x{119}"));
65 ok($objSv->eq($ouml, $ostk));
66 ok($objSv->eq($ostk, "\x{151}"));
67 ok($objSv->eq("\x{151}", "\x{153}"));
68 ok($objSv->eq("\x{153}", $ocrc));
69
70 # 16
71
72 $objSv->change(level => 2);
73
74 ok($objSv->lt('d', "\x{111}"));
75 ok($objSv->lt("\x{111}", $eth));
76 ok($objSv->lt('y', $uuml));
77 ok($objSv->lt($uuml, "\x{171}"));
78
79 ok($objSv->lt($auml, $ae));
80 ok($objSv->lt($ae, "\x{119}"));
81 ok($objSv->lt($ouml, $ostk));
82 ok($objSv->lt($ostk, "\x{151}"));
83 ok($objSv->lt("\x{151}", "\x{153}"));
84 ok($objSv->lt("\x{153}", $ocrc));
85
86 # 26
87
88 ok($objSv->eq("\x{111}", "\x{110}"));
89 ok($objSv->eq($eth,  $ETH));
90 ok($objSv->eq('th',  $thrn));
91 ok($objSv->eq($thrn, 'TH'));
92 ok($objSv->eq('TH',  $THRN));
93 ok($objSv->eq('v',   'w'));
94 ok($objSv->eq('w',   'V'));
95 ok($objSv->eq('V',   'W'));
96 ok($objSv->eq($uuml, $Uuml));
97 ok($objSv->eq("\x{171}", "\x{170}"));
98 ok($objSv->eq($arng, $Arng));
99 ok($objSv->eq($auml, $Auml));
100 ok($objSv->eq($ae,   $AE));
101 ok($objSv->eq($AE, "\x{1D2D}"));
102 ok($objSv->eq("\x{119}", "\x{118}"));
103 ok($objSv->eq($ouml, $Ouml));
104 ok($objSv->eq($ostk, $Ostk));
105 ok($objSv->eq("\x{151}", "\x{150}"));
106 ok($objSv->eq("\x{153}", "\x{152}"));
107 ok($objSv->eq($ocrc, $Ocrc));
108
109 # 46
110
111 $objSv->change(level => 3);
112
113 ok($objSv->lt("\x{111}", "\x{110}"));
114 ok($objSv->lt($eth,  $ETH));
115 ok($objSv->lt('th',  $thrn));
116 ok($objSv->lt($thrn, 'TH'));
117 ok($objSv->lt('TH',  $THRN));
118 ok($objSv->lt('v',   'w'));
119 ok($objSv->lt('w',   'V'));
120 ok($objSv->lt('V',   'W'));
121 ok($objSv->lt($uuml, $Uuml));
122 ok($objSv->lt("\x{171}", "\x{170}"));
123 ok($objSv->lt($arng, $Arng));
124 ok($objSv->lt($auml, $Auml));
125 ok($objSv->lt($ae,   $AE));
126 ok($objSv->lt($AE, "\x{1D2D}"));
127 ok($objSv->lt("\x{119}", "\x{118}"));
128 ok($objSv->lt($ouml, $Ouml));
129 ok($objSv->lt($ostk, $Ostk));
130 ok($objSv->lt("\x{151}", "\x{150}"));
131 ok($objSv->lt("\x{153}", "\x{152}"));
132 ok($objSv->lt($ocrc, $Ocrc));
133
134 # 66
135
136 ok($objSv->eq("d\x{335}", "\x{111}"));
137 ok($objSv->eq("D\x{335}", "\x{110}"));
138 ok($objSv->eq("u\x{308}", $uuml));
139 ok($objSv->eq("U\x{308}", $Uuml));
140 ok($objSv->eq("u\x{30B}", "\x{171}"));
141 ok($objSv->eq("U\x{30B}", "\x{170}"));
142 ok($objSv->eq("a\x{30A}", $arng));
143 ok($objSv->eq("A\x{30A}", $Arng));
144 ok($objSv->eq("a\x{308}", $auml));
145 ok($objSv->eq("A\x{308}", $Auml));
146 ok($objSv->eq("e\x{328}", "\x{119}"));
147 ok($objSv->eq("E\x{328}", "\x{118}"));
148 ok($objSv->eq("o\x{308}", $ouml));
149 ok($objSv->eq("O\x{308}", $Ouml));
150 ok($objSv->eq("o\x{338}", $ostk));
151 ok($objSv->eq("O\x{338}", $Ostk));
152 ok($objSv->eq("o\x{30B}", "\x{151}"));
153 ok($objSv->eq("O\x{30B}", "\x{150}"));
154 ok($objSv->eq("o\x{302}", $ocrc));
155 ok($objSv->eq("O\x{302}", $Ocrc));
156
157 # 86
158
159 ok($objSv->eq("u\x{308}\x{300}", "\x{1DC}"));
160 ok($objSv->eq("U\x{308}\x{300}", "\x{1DB}"));
161 ok($objSv->eq("u\x{308}\x{301}", "\x{1D8}"));
162 ok($objSv->eq("U\x{308}\x{301}", "\x{1D7}"));
163 ok($objSv->eq("u\x{308}\x{304}", "\x{1D6}"));
164 ok($objSv->eq("U\x{308}\x{304}", "\x{1D5}"));
165 ok($objSv->eq("u\x{308}\x{30C}", "\x{1DA}"));
166 ok($objSv->eq("U\x{308}\x{30C}", "\x{1D9}"));
167 ok($objSv->eq("A\x{30A}", "\x{212B}"));
168 ok($objSv->eq("a\x{30A}\x{301}", "\x{1FB}"));
169 ok($objSv->eq("A\x{30A}\x{301}", "\x{1FA}"));
170 ok($objSv->eq("a\x{308}\x{304}", "\x{1DF}"));
171 ok($objSv->eq("A\x{308}\x{304}", "\x{1DE}"));
172 ok($objSv->eq("\x{1FD}", "$ae\x{301}"));
173 ok($objSv->eq("\x{1FC}", "$AE\x{301}"));
174 ok($objSv->eq("\x{1E3}", "$ae\x{304}"));
175 ok($objSv->eq("\x{1E2}", "$AE\x{304}"));
176 ok($objSv->eq("o\x{308}\x{304}", "\x{22B}"));
177 ok($objSv->eq("O\x{308}\x{304}", "\x{22A}"));
178 ok($objSv->eq("o\x{338}\x{301}", "\x{1FF}"));
179 ok($objSv->eq("O\x{338}\x{301}", "\x{1FE}"));
180
181 # 107
182
183 ok($objSv->eq("o\x{302}\x{300}", "\x{1ED3}"));
184 ok($objSv->eq("O\x{302}\x{300}", "\x{1ED2}"));
185 ok($objSv->eq("o\x{302}\x{301}", "\x{1ED1}"));
186 ok($objSv->eq("O\x{302}\x{301}", "\x{1ED0}"));
187 ok($objSv->eq("o\x{302}\x{303}", "\x{1ED7}"));
188 ok($objSv->eq("O\x{302}\x{303}", "\x{1ED6}"));
189 ok($objSv->eq("o\x{302}\x{309}", "\x{1ED5}"));
190 ok($objSv->eq("O\x{302}\x{309}", "\x{1ED4}"));
191 ok($objSv->eq("o\x{302}\x{323}", "\x{1ED9}"));
192 ok($objSv->eq("O\x{302}\x{323}", "\x{1ED8}"));
193
194 # 117