4 use Unicode::Collate::Locale;
9 my $eth = pack 'U', 0xF0;
10 my $ETH = pack 'U', 0xD0;
11 my $thrn = pack 'U', 0xFE;
12 my $THRN = pack 'U', 0xDE;
13 my $uuml = pack 'U', 0xFC;
14 my $Uuml = pack 'U', 0xDC;
15 my $arng = pack 'U', 0xE5;
16 my $Arng = pack 'U', 0xC5;
17 my $auml = pack 'U', 0xE4;
18 my $Auml = pack 'U', 0xC4;
19 my $ae = pack 'U', 0xE6;
20 my $AE = pack 'U', 0xC6;
21 my $ouml = pack 'U', 0xF6;
22 my $Ouml = pack 'U', 0xD6;
23 my $ostk = pack 'U', 0xF8;
24 my $Ostk = pack 'U', 0xD8;
25 my $ocrc = pack 'U', 0xF4;
26 my $Ocrc = pack 'U', 0xD4;
28 my $objSv = Unicode::Collate::Locale->
29 new(locale => 'SV', normalization => undef);
32 ok($objSv->getlocale, 'sv');
34 $objSv->change(level => 1);
36 ok($objSv->lt('z', $arng));
37 ok($objSv->lt($arng, $auml));
38 ok($objSv->lt($auml, $ouml));
39 ok($objSv->lt($ouml, "\x{292}"));
43 ok($objSv->eq('d', "\x{111}"));
44 ok($objSv->eq("\x{111}", $eth));
45 ok($objSv->eq('y', $uuml));
46 ok($objSv->eq($uuml, "\x{171}"));
48 ok($objSv->eq($auml, $ae));
49 ok($objSv->eq($ae, "\x{119}"));
50 ok($objSv->eq($ouml, $ostk));
51 ok($objSv->eq($ostk, "\x{151}"));
52 ok($objSv->eq("\x{151}", "\x{153}"));
53 ok($objSv->eq("\x{153}", $ocrc));
57 $objSv->change(level => 2);
59 ok($objSv->lt('d', "\x{111}"));
60 ok($objSv->lt("\x{111}", $eth));
61 ok($objSv->lt('y', $uuml));
62 ok($objSv->lt($uuml, "\x{171}"));
64 ok($objSv->lt($auml, $ae));
65 ok($objSv->lt($ae, "\x{119}"));
66 ok($objSv->lt($ouml, $ostk));
67 ok($objSv->lt($ostk, "\x{151}"));
68 ok($objSv->lt("\x{151}", "\x{153}"));
69 ok($objSv->lt("\x{153}", $ocrc));
73 ok($objSv->eq("\x{111}", "\x{110}"));
74 ok($objSv->eq($eth, $ETH));
75 ok($objSv->eq('th', $thrn));
76 ok($objSv->eq($thrn, 'TH'));
77 ok($objSv->eq('TH', $THRN));
78 ok($objSv->eq('v', 'w'));
79 ok($objSv->eq('w', 'V'));
80 ok($objSv->eq('V', 'W'));
81 ok($objSv->eq($uuml, $Uuml));
82 ok($objSv->eq("\x{171}", "\x{170}"));
83 ok($objSv->eq($arng, $Arng));
84 ok($objSv->eq($auml, $Auml));
85 ok($objSv->eq($ae, $AE));
86 ok($objSv->eq($AE, "\x{1D2D}"));
87 ok($objSv->eq("\x{119}", "\x{118}"));
88 ok($objSv->eq($ouml, $Ouml));
89 ok($objSv->eq($ostk, $Ostk));
90 ok($objSv->eq("\x{151}", "\x{150}"));
91 ok($objSv->eq("\x{153}", "\x{152}"));
92 ok($objSv->eq($ocrc, $Ocrc));
96 $objSv->change(level => 3);
98 ok($objSv->lt("\x{111}", "\x{110}"));
99 ok($objSv->lt($eth, $ETH));
100 ok($objSv->lt('th', $thrn));
101 ok($objSv->lt($thrn, 'TH'));
102 ok($objSv->lt('TH', $THRN));
103 ok($objSv->lt('v', 'w'));
104 ok($objSv->lt('w', 'V'));
105 ok($objSv->lt('V', 'W'));
106 ok($objSv->lt($uuml, $Uuml));
107 ok($objSv->lt("\x{171}", "\x{170}"));
108 ok($objSv->lt($arng, $Arng));
109 ok($objSv->lt($auml, $Auml));
110 ok($objSv->lt($ae, $AE));
111 ok($objSv->lt($AE, "\x{1D2D}"));
112 ok($objSv->lt("\x{119}", "\x{118}"));
113 ok($objSv->lt($ouml, $Ouml));
114 ok($objSv->lt($ostk, $Ostk));
115 ok($objSv->lt("\x{151}", "\x{150}"));
116 ok($objSv->lt("\x{153}", "\x{152}"));
117 ok($objSv->lt($ocrc, $Ocrc));
121 ok($objSv->eq("d\x{335}", "\x{111}"));
122 ok($objSv->eq("D\x{335}", "\x{110}"));
123 ok($objSv->eq("u\x{308}", $uuml));
124 ok($objSv->eq("U\x{308}", $Uuml));
125 ok($objSv->eq("u\x{30B}", "\x{171}"));
126 ok($objSv->eq("U\x{30B}", "\x{170}"));
127 ok($objSv->eq("a\x{30A}", $arng));
128 ok($objSv->eq("A\x{30A}", $Arng));
129 ok($objSv->eq("a\x{308}", $auml));
130 ok($objSv->eq("A\x{308}", $Auml));
131 ok($objSv->eq("e\x{328}", "\x{119}"));
132 ok($objSv->eq("E\x{328}", "\x{118}"));
133 ok($objSv->eq("o\x{308}", $ouml));
134 ok($objSv->eq("O\x{308}", $Ouml));
135 ok($objSv->eq("o\x{338}", $ostk));
136 ok($objSv->eq("O\x{338}", $Ostk));
137 ok($objSv->eq("o\x{30B}", "\x{151}"));
138 ok($objSv->eq("O\x{30B}", "\x{150}"));
139 ok($objSv->eq("o\x{302}", $ocrc));
140 ok($objSv->eq("O\x{302}", $Ocrc));
144 ok($objSv->eq("u\x{308}\x{300}", "\x{1DC}"));
145 ok($objSv->eq("U\x{308}\x{300}", "\x{1DB}"));
146 ok($objSv->eq("u\x{308}\x{301}", "\x{1D8}"));
147 ok($objSv->eq("U\x{308}\x{301}", "\x{1D7}"));
148 ok($objSv->eq("u\x{308}\x{304}", "\x{1D6}"));
149 ok($objSv->eq("U\x{308}\x{304}", "\x{1D5}"));
150 ok($objSv->eq("u\x{308}\x{30C}", "\x{1DA}"));
151 ok($objSv->eq("U\x{308}\x{30C}", "\x{1D9}"));
152 ok($objSv->eq("A\x{30A}", "\x{212B}"));
153 ok($objSv->eq("a\x{30A}\x{301}", "\x{1FB}"));
154 ok($objSv->eq("A\x{30A}\x{301}", "\x{1FA}"));
155 ok($objSv->eq("a\x{308}\x{304}", "\x{1DF}"));
156 ok($objSv->eq("A\x{308}\x{304}", "\x{1DE}"));
157 ok($objSv->eq("\x{1FD}", "$ae\x{301}"));
158 ok($objSv->eq("\x{1FC}", "$AE\x{301}"));
159 ok($objSv->eq("\x{1E3}", "$ae\x{304}"));
160 ok($objSv->eq("\x{1E2}", "$AE\x{304}"));
161 ok($objSv->eq("o\x{308}\x{304}", "\x{22B}"));
162 ok($objSv->eq("O\x{308}\x{304}", "\x{22A}"));
163 ok($objSv->eq("o\x{338}\x{301}", "\x{1FF}"));
164 ok($objSv->eq("O\x{338}\x{301}", "\x{1FE}"));
168 ok($objSv->eq("o\x{302}\x{300}", "\x{1ED3}"));
169 ok($objSv->eq("O\x{302}\x{300}", "\x{1ED2}"));
170 ok($objSv->eq("o\x{302}\x{301}", "\x{1ED1}"));
171 ok($objSv->eq("O\x{302}\x{301}", "\x{1ED0}"));
172 ok($objSv->eq("o\x{302}\x{303}", "\x{1ED7}"));
173 ok($objSv->eq("O\x{302}\x{303}", "\x{1ED6}"));
174 ok($objSv->eq("o\x{302}\x{309}", "\x{1ED5}"));
175 ok($objSv->eq("O\x{302}\x{309}", "\x{1ED4}"));
176 ok($objSv->eq("o\x{302}\x{323}", "\x{1ED9}"));
177 ok($objSv->eq("O\x{302}\x{323}", "\x{1ED8}"));