Commit | Line | Data |
---|---|---|
68adb2b0 CBW |
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 | ||
456a1446 CBW |
17 | use strict; |
18 | use warnings; | |
19 | use Unicode::Collate::Locale; | |
20 | ||
68adb2b0 CBW |
21 | ok(1); |
22 | ||
23 | ######################### | |
456a1446 CBW |
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 | ||
456a1446 CBW |
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)); | |
6484f676 | 54 | ok($objSv->lt($ouml, "\x{292}")); |
456a1446 CBW |
55 | |
56 | # 6 | |
57 | ||
58 | ok($objSv->eq('d', "\x{111}")); | |
59 | ok($objSv->eq("\x{111}", $eth)); | |
60 | ok($objSv->eq('y', $uuml)); | |
6484f676 | 61 | ok($objSv->eq($uuml, "\x{171}")); |
456a1446 CBW |
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)); | |
6484f676 | 77 | ok($objSv->lt($uuml, "\x{171}")); |
456a1446 CBW |
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)); | |
1393fe00 CBW |
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 | ||
f1a7422f CBW |
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}")); | |
456a1446 CBW |
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}")); | |
f1a7422f CBW |
170 | ok($objSv->eq("a\x{308}\x{304}", "\x{1DF}")); |
171 | ok($objSv->eq("A\x{308}\x{304}", "\x{1DE}")); | |
456a1446 CBW |
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}")); | |
f1a7422f CBW |
176 | ok($objSv->eq("o\x{308}\x{304}", "\x{22B}")); |
177 | ok($objSv->eq("O\x{308}\x{304}", "\x{22A}")); | |
456a1446 CBW |
178 | ok($objSv->eq("o\x{338}\x{301}", "\x{1FF}")); |
179 | ok($objSv->eq("O\x{338}\x{301}", "\x{1FE}")); | |
456a1446 | 180 | |
f1a7422f | 181 | # 107 |
1393fe00 CBW |
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 |