1898184e3Ssthen
2898184e3SsthenBEGIN {
3898184e3Ssthen    if ($ENV{PERL_CORE}) {
4898184e3Ssthen	chdir('t') if -d 't';
5898184e3Ssthen	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
6898184e3Ssthen    }
7898184e3Ssthen}
8898184e3Ssthen
9898184e3Ssthenuse strict;
10898184e3Ssthenuse warnings;
11898184e3SsthenBEGIN { $| = 1; print "1..115\n"; }
12898184e3Ssthenmy $count = 0;
13898184e3Ssthensub ok ($;$) {
14898184e3Ssthen    my $p = my $r = shift;
15898184e3Ssthen    if (@_) {
16898184e3Ssthen	my $x = shift;
17898184e3Ssthen	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
18898184e3Ssthen    }
19898184e3Ssthen    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
20898184e3Ssthen}
21898184e3Ssthen
22898184e3Ssthenuse Unicode::Collate::Locale;
23898184e3Ssthen
24898184e3Ssthenok(1);
25898184e3Ssthen
26*256a93a4Safresh1sub _pack_U   { Unicode::Collate::pack_U(@_) }
27*256a93a4Safresh1sub _unpack_U { Unicode::Collate::unpack_U(@_) }
28*256a93a4Safresh1
29898184e3Ssthen#########################
30898184e3Ssthen
31*256a93a4Safresh1my $eth  = _pack_U(0xF0);
32*256a93a4Safresh1my $ETH  = _pack_U(0xD0);
33*256a93a4Safresh1my $thrn = _pack_U(0xFE);
34*256a93a4Safresh1my $THRN = _pack_U(0xDE);
35*256a93a4Safresh1my $uuml = _pack_U(0xFC);
36*256a93a4Safresh1my $Uuml = _pack_U(0xDC);
37*256a93a4Safresh1my $arng = _pack_U(0xE5);
38*256a93a4Safresh1my $Arng = _pack_U(0xC5);
39*256a93a4Safresh1my $auml = _pack_U(0xE4);
40*256a93a4Safresh1my $Auml = _pack_U(0xC4);
41*256a93a4Safresh1my $ae   = _pack_U(0xE6);
42*256a93a4Safresh1my $AE   = _pack_U(0xC6);
43*256a93a4Safresh1my $ouml = _pack_U(0xF6);
44*256a93a4Safresh1my $Ouml = _pack_U(0xD6);
45*256a93a4Safresh1my $ostk = _pack_U(0xF8);
46*256a93a4Safresh1my $Ostk = _pack_U(0xD8);
47*256a93a4Safresh1my $ocrc = _pack_U(0xF4);
48*256a93a4Safresh1my $Ocrc = _pack_U(0xD4);
49898184e3Ssthen
50898184e3Ssthenmy $objSv = Unicode::Collate::Locale->
51898184e3Ssthen    new(locale => 'SV', normalization => undef);
52898184e3Ssthen
53898184e3Ssthenok($objSv->getlocale, 'sv');
54898184e3Ssthen
55898184e3Ssthen$objSv->change(level => 1);
56898184e3Ssthen
57898184e3Ssthenok($objSv->lt('z', $arng));
58898184e3Ssthenok($objSv->lt($arng, $auml));
59898184e3Ssthenok($objSv->lt($auml, $ouml));
60898184e3Ssthenok($objSv->lt($ouml, "\x{1C0}"));
61898184e3Ssthen
62898184e3Ssthen# 6
63898184e3Ssthen
64898184e3Ssthenok($objSv->eq('d', "\x{111}"));
65898184e3Ssthenok($objSv->eq("\x{111}", $eth));
66898184e3Ssthenok($objSv->eq('v', 'w'));
67898184e3Ssthenok($objSv->eq('y', $uuml));
68898184e3Ssthenok($objSv->eq($uuml, "\x{171}"));
69898184e3Ssthen
70898184e3Ssthenok($objSv->eq($auml, $ae));
71898184e3Ssthenok($objSv->eq($ae, "\x{119}"));
72898184e3Ssthenok($objSv->eq($ouml, $ostk));
73898184e3Ssthenok($objSv->eq($ostk, "\x{151}"));
74898184e3Ssthenok($objSv->eq("\x{151}", "\x{153}"));
75898184e3Ssthenok($objSv->eq("\x{153}", $ocrc));
76898184e3Ssthen
77898184e3Ssthen# 17
78898184e3Ssthen
79898184e3Ssthen$objSv->change(level => 2);
80898184e3Ssthen
81898184e3Ssthenok($objSv->lt('d', "\x{111}"));
82898184e3Ssthenok($objSv->lt("\x{111}", $eth));
83898184e3Ssthenok($objSv->lt('v', 'w'));
84898184e3Ssthenok($objSv->lt('y', $uuml));
85898184e3Ssthenok($objSv->lt($uuml, "\x{171}"));
86898184e3Ssthen
87898184e3Ssthenok($objSv->lt($auml, $ae));
88898184e3Ssthenok($objSv->lt($ae, "\x{119}"));
89898184e3Ssthenok($objSv->lt($ouml, $ostk));
90898184e3Ssthenok($objSv->lt($ostk, "\x{151}"));
91898184e3Ssthenok($objSv->lt("\x{151}", "\x{153}"));
92898184e3Ssthenok($objSv->lt("\x{153}", $ocrc));
93898184e3Ssthen
94898184e3Ssthen# 28
95898184e3Ssthen
96898184e3Ssthenok($objSv->eq("\x{111}", "\x{110}"));
97898184e3Ssthenok($objSv->eq($eth,  $ETH));
98898184e3Ssthenok($objSv->eq('th',  $thrn));
99898184e3Ssthenok($objSv->eq($thrn, 'TH'));
100898184e3Ssthenok($objSv->eq('TH',  $THRN));
101898184e3Ssthenok($objSv->eq('w',   'W'));
102898184e3Ssthenok($objSv->eq($uuml, $Uuml));
103898184e3Ssthenok($objSv->eq("\x{171}", "\x{170}"));
104898184e3Ssthenok($objSv->eq($arng, $Arng));
105898184e3Ssthenok($objSv->eq($auml, $Auml));
106898184e3Ssthenok($objSv->eq($ae,   $AE));
107898184e3Ssthenok($objSv->eq($AE, "\x{1D2D}"));
108898184e3Ssthenok($objSv->eq("\x{119}", "\x{118}"));
109898184e3Ssthenok($objSv->eq($ouml, $Ouml));
110898184e3Ssthenok($objSv->eq($ostk, $Ostk));
111898184e3Ssthenok($objSv->eq("\x{151}", "\x{150}"));
112898184e3Ssthenok($objSv->eq("\x{153}", "\x{152}"));
113898184e3Ssthenok($objSv->eq($ocrc, $Ocrc));
114898184e3Ssthen
115898184e3Ssthen# 46
116898184e3Ssthen
117898184e3Ssthen$objSv->change(level => 3);
118898184e3Ssthen
119898184e3Ssthenok($objSv->lt("\x{111}", "\x{110}"));
120898184e3Ssthenok($objSv->lt($eth,  $ETH));
121898184e3Ssthenok($objSv->lt('th',  $thrn));
122898184e3Ssthenok($objSv->lt($thrn, 'TH'));
123898184e3Ssthenok($objSv->lt('TH',  $THRN));
124898184e3Ssthenok($objSv->lt('w',   'W'));
125898184e3Ssthenok($objSv->lt($uuml, $Uuml));
126898184e3Ssthenok($objSv->lt("\x{171}", "\x{170}"));
127898184e3Ssthenok($objSv->lt($arng, $Arng));
128898184e3Ssthenok($objSv->lt($auml, $Auml));
129898184e3Ssthenok($objSv->lt($ae,   $AE));
130898184e3Ssthenok($objSv->lt($AE, "\x{1D2D}"));
131898184e3Ssthenok($objSv->lt("\x{119}", "\x{118}"));
132898184e3Ssthenok($objSv->lt($ouml, $Ouml));
133898184e3Ssthenok($objSv->lt($ostk, $Ostk));
134898184e3Ssthenok($objSv->lt("\x{151}", "\x{150}"));
135898184e3Ssthenok($objSv->lt("\x{153}", "\x{152}"));
136898184e3Ssthenok($objSv->lt($ocrc, $Ocrc));
137898184e3Ssthen
138898184e3Ssthen# 64
139898184e3Ssthen
140898184e3Ssthenok($objSv->eq("d\x{335}", "\x{111}"));
141898184e3Ssthenok($objSv->eq("D\x{335}", "\x{110}"));
142898184e3Ssthenok($objSv->eq("u\x{308}", $uuml));
143898184e3Ssthenok($objSv->eq("U\x{308}", $Uuml));
144898184e3Ssthenok($objSv->eq("u\x{30B}", "\x{171}"));
145898184e3Ssthenok($objSv->eq("U\x{30B}", "\x{170}"));
146898184e3Ssthenok($objSv->eq("a\x{30A}", $arng));
147898184e3Ssthenok($objSv->eq("A\x{30A}", $Arng));
148898184e3Ssthenok($objSv->eq("a\x{308}", $auml));
149898184e3Ssthenok($objSv->eq("A\x{308}", $Auml));
150898184e3Ssthenok($objSv->eq("e\x{328}", "\x{119}"));
151898184e3Ssthenok($objSv->eq("E\x{328}", "\x{118}"));
152898184e3Ssthenok($objSv->eq("o\x{308}", $ouml));
153898184e3Ssthenok($objSv->eq("O\x{308}", $Ouml));
154898184e3Ssthenok($objSv->eq("o\x{338}", $ostk));
155898184e3Ssthenok($objSv->eq("O\x{338}", $Ostk));
156898184e3Ssthenok($objSv->eq("o\x{30B}", "\x{151}"));
157898184e3Ssthenok($objSv->eq("O\x{30B}", "\x{150}"));
158898184e3Ssthenok($objSv->eq("o\x{302}", $ocrc));
159898184e3Ssthenok($objSv->eq("O\x{302}", $Ocrc));
160898184e3Ssthen
161898184e3Ssthen# 84
162898184e3Ssthen
163898184e3Ssthenok($objSv->eq("u\x{308}\x{300}", "\x{1DC}"));
164898184e3Ssthenok($objSv->eq("U\x{308}\x{300}", "\x{1DB}"));
165898184e3Ssthenok($objSv->eq("u\x{308}\x{301}", "\x{1D8}"));
166898184e3Ssthenok($objSv->eq("U\x{308}\x{301}", "\x{1D7}"));
167898184e3Ssthenok($objSv->eq("u\x{308}\x{304}", "\x{1D6}"));
168898184e3Ssthenok($objSv->eq("U\x{308}\x{304}", "\x{1D5}"));
169898184e3Ssthenok($objSv->eq("u\x{308}\x{30C}", "\x{1DA}"));
170898184e3Ssthenok($objSv->eq("U\x{308}\x{30C}", "\x{1D9}"));
171898184e3Ssthenok($objSv->eq("A\x{30A}", "\x{212B}"));
172898184e3Ssthenok($objSv->eq("a\x{30A}\x{301}", "\x{1FB}"));
173898184e3Ssthenok($objSv->eq("A\x{30A}\x{301}", "\x{1FA}"));
174898184e3Ssthenok($objSv->eq("a\x{308}\x{304}", "\x{1DF}"));
175898184e3Ssthenok($objSv->eq("A\x{308}\x{304}", "\x{1DE}"));
176898184e3Ssthenok($objSv->eq("\x{1FD}", "$ae\x{301}"));
177898184e3Ssthenok($objSv->eq("\x{1FC}", "$AE\x{301}"));
178898184e3Ssthenok($objSv->eq("\x{1E3}", "$ae\x{304}"));
179898184e3Ssthenok($objSv->eq("\x{1E2}", "$AE\x{304}"));
180898184e3Ssthenok($objSv->eq("o\x{308}\x{304}", "\x{22B}"));
181898184e3Ssthenok($objSv->eq("O\x{308}\x{304}", "\x{22A}"));
182898184e3Ssthenok($objSv->eq("o\x{338}\x{301}", "\x{1FF}"));
183898184e3Ssthenok($objSv->eq("O\x{338}\x{301}", "\x{1FE}"));
184898184e3Ssthen
185898184e3Ssthen# 105
186898184e3Ssthen
187898184e3Ssthenok($objSv->eq("o\x{302}\x{300}", "\x{1ED3}"));
188898184e3Ssthenok($objSv->eq("O\x{302}\x{300}", "\x{1ED2}"));
189898184e3Ssthenok($objSv->eq("o\x{302}\x{301}", "\x{1ED1}"));
190898184e3Ssthenok($objSv->eq("O\x{302}\x{301}", "\x{1ED0}"));
191898184e3Ssthenok($objSv->eq("o\x{302}\x{303}", "\x{1ED7}"));
192898184e3Ssthenok($objSv->eq("O\x{302}\x{303}", "\x{1ED6}"));
193898184e3Ssthenok($objSv->eq("o\x{302}\x{309}", "\x{1ED5}"));
194898184e3Ssthenok($objSv->eq("O\x{302}\x{309}", "\x{1ED4}"));
195898184e3Ssthenok($objSv->eq("o\x{302}\x{323}", "\x{1ED9}"));
196898184e3Ssthenok($objSv->eq("O\x{302}\x{323}", "\x{1ED8}"));
197898184e3Ssthen
198898184e3Ssthen# 115
199