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 $objSvReform = Unicode::Collate::Locale->
51898184e3Ssthen    new(locale => 'SV-reform', normalization => undef);
52898184e3Ssthen
53898184e3Ssthenok($objSvReform->getlocale, 'sv__reformed');
54898184e3Ssthen
55898184e3Ssthen$objSvReform->change(level => 1);
56898184e3Ssthen
57898184e3Ssthenok($objSvReform->lt('z', $arng));
58898184e3Ssthenok($objSvReform->lt($arng, $auml));
59898184e3Ssthenok($objSvReform->lt($auml, $ouml));
60898184e3Ssthenok($objSvReform->lt($ouml, "\x{1C0}"));
61898184e3Ssthen
62898184e3Ssthen# 6
63898184e3Ssthen
64898184e3Ssthenok($objSvReform->lt('v', 'w'));
65898184e3Ssthenok($objSvReform->gt('x', 'w'));
66898184e3Ssthen
67898184e3Ssthenok($objSvReform->eq('d', "\x{111}"));
68898184e3Ssthenok($objSvReform->eq("\x{111}", $eth));
69898184e3Ssthenok($objSvReform->eq('y', $uuml));
70898184e3Ssthenok($objSvReform->eq($uuml, "\x{171}"));
71898184e3Ssthen
72898184e3Ssthenok($objSvReform->eq($auml, $ae));
73898184e3Ssthenok($objSvReform->eq($ae, "\x{119}"));
74898184e3Ssthenok($objSvReform->eq($ouml, $ostk));
75898184e3Ssthenok($objSvReform->eq($ostk, "\x{151}"));
76898184e3Ssthenok($objSvReform->eq("\x{151}", "\x{153}"));
77898184e3Ssthenok($objSvReform->eq("\x{153}", $ocrc));
78898184e3Ssthen
79898184e3Ssthen# 18
80898184e3Ssthen
81898184e3Ssthen$objSvReform->change(level => 2);
82898184e3Ssthen
83898184e3Ssthenok($objSvReform->lt('d', "\x{111}"));
84898184e3Ssthenok($objSvReform->lt("\x{111}", $eth));
85898184e3Ssthenok($objSvReform->lt('y', $uuml));
86898184e3Ssthenok($objSvReform->lt($uuml, "\x{171}"));
87898184e3Ssthen
88898184e3Ssthenok($objSvReform->lt($auml, $ae));
89898184e3Ssthenok($objSvReform->lt($ae, "\x{119}"));
90898184e3Ssthenok($objSvReform->lt($ouml, $ostk));
91898184e3Ssthenok($objSvReform->lt($ostk, "\x{151}"));
92898184e3Ssthenok($objSvReform->lt("\x{151}", "\x{153}"));
93898184e3Ssthenok($objSvReform->lt("\x{153}", $ocrc));
94898184e3Ssthen
95898184e3Ssthen# 28
96898184e3Ssthen
97898184e3Ssthenok($objSvReform->eq("\x{111}", "\x{110}"));
98898184e3Ssthenok($objSvReform->eq($eth,  $ETH));
99898184e3Ssthenok($objSvReform->eq('th',  $thrn));
100898184e3Ssthenok($objSvReform->eq($thrn, 'TH'));
101898184e3Ssthenok($objSvReform->eq('TH',  $THRN));
102898184e3Ssthenok($objSvReform->eq('w',   'W'));
103898184e3Ssthenok($objSvReform->eq($uuml, $Uuml));
104898184e3Ssthenok($objSvReform->eq("\x{171}", "\x{170}"));
105898184e3Ssthenok($objSvReform->eq($arng, $Arng));
106898184e3Ssthenok($objSvReform->eq($auml, $Auml));
107898184e3Ssthenok($objSvReform->eq($ae,   $AE));
108898184e3Ssthenok($objSvReform->eq($AE, "\x{1D2D}"));
109898184e3Ssthenok($objSvReform->eq("\x{119}", "\x{118}"));
110898184e3Ssthenok($objSvReform->eq($ouml, $Ouml));
111898184e3Ssthenok($objSvReform->eq($ostk, $Ostk));
112898184e3Ssthenok($objSvReform->eq("\x{151}", "\x{150}"));
113898184e3Ssthenok($objSvReform->eq("\x{153}", "\x{152}"));
114898184e3Ssthenok($objSvReform->eq($ocrc, $Ocrc));
115898184e3Ssthen
116898184e3Ssthen# 46
117898184e3Ssthen
118898184e3Ssthen$objSvReform->change(level => 3);
119898184e3Ssthen
120898184e3Ssthenok($objSvReform->lt("\x{111}", "\x{110}"));
121898184e3Ssthenok($objSvReform->lt($eth,  $ETH));
122898184e3Ssthenok($objSvReform->lt('th',  $thrn));
123898184e3Ssthenok($objSvReform->lt($thrn, 'TH'));
124898184e3Ssthenok($objSvReform->lt('TH',  $THRN));
125898184e3Ssthenok($objSvReform->lt('w',   'W'));
126898184e3Ssthenok($objSvReform->lt($uuml, $Uuml));
127898184e3Ssthenok($objSvReform->lt("\x{171}", "\x{170}"));
128898184e3Ssthenok($objSvReform->lt($arng, $Arng));
129898184e3Ssthenok($objSvReform->lt($auml, $Auml));
130898184e3Ssthenok($objSvReform->lt($ae,   $AE));
131898184e3Ssthenok($objSvReform->lt($AE, "\x{1D2D}"));
132898184e3Ssthenok($objSvReform->lt("\x{119}", "\x{118}"));
133898184e3Ssthenok($objSvReform->lt($ouml, $Ouml));
134898184e3Ssthenok($objSvReform->lt($ostk, $Ostk));
135898184e3Ssthenok($objSvReform->lt("\x{151}", "\x{150}"));
136898184e3Ssthenok($objSvReform->lt("\x{153}", "\x{152}"));
137898184e3Ssthenok($objSvReform->lt($ocrc, $Ocrc));
138898184e3Ssthen
139898184e3Ssthen# 64
140898184e3Ssthen
141898184e3Ssthenok($objSvReform->eq("d\x{335}", "\x{111}"));
142898184e3Ssthenok($objSvReform->eq("D\x{335}", "\x{110}"));
143898184e3Ssthenok($objSvReform->eq("u\x{308}", $uuml));
144898184e3Ssthenok($objSvReform->eq("U\x{308}", $Uuml));
145898184e3Ssthenok($objSvReform->eq("u\x{30B}", "\x{171}"));
146898184e3Ssthenok($objSvReform->eq("U\x{30B}", "\x{170}"));
147898184e3Ssthenok($objSvReform->eq("a\x{30A}", $arng));
148898184e3Ssthenok($objSvReform->eq("A\x{30A}", $Arng));
149898184e3Ssthenok($objSvReform->eq("a\x{308}", $auml));
150898184e3Ssthenok($objSvReform->eq("A\x{308}", $Auml));
151898184e3Ssthenok($objSvReform->eq("e\x{328}", "\x{119}"));
152898184e3Ssthenok($objSvReform->eq("E\x{328}", "\x{118}"));
153898184e3Ssthenok($objSvReform->eq("o\x{308}", $ouml));
154898184e3Ssthenok($objSvReform->eq("O\x{308}", $Ouml));
155898184e3Ssthenok($objSvReform->eq("o\x{338}", $ostk));
156898184e3Ssthenok($objSvReform->eq("O\x{338}", $Ostk));
157898184e3Ssthenok($objSvReform->eq("o\x{30B}", "\x{151}"));
158898184e3Ssthenok($objSvReform->eq("O\x{30B}", "\x{150}"));
159898184e3Ssthenok($objSvReform->eq("o\x{302}", $ocrc));
160898184e3Ssthenok($objSvReform->eq("O\x{302}", $Ocrc));
161898184e3Ssthen
162898184e3Ssthen# 84
163898184e3Ssthen
164898184e3Ssthenok($objSvReform->eq("u\x{308}\x{300}", "\x{1DC}"));
165898184e3Ssthenok($objSvReform->eq("U\x{308}\x{300}", "\x{1DB}"));
166898184e3Ssthenok($objSvReform->eq("u\x{308}\x{301}", "\x{1D8}"));
167898184e3Ssthenok($objSvReform->eq("U\x{308}\x{301}", "\x{1D7}"));
168898184e3Ssthenok($objSvReform->eq("u\x{308}\x{304}", "\x{1D6}"));
169898184e3Ssthenok($objSvReform->eq("U\x{308}\x{304}", "\x{1D5}"));
170898184e3Ssthenok($objSvReform->eq("u\x{308}\x{30C}", "\x{1DA}"));
171898184e3Ssthenok($objSvReform->eq("U\x{308}\x{30C}", "\x{1D9}"));
172898184e3Ssthenok($objSvReform->eq("A\x{30A}", "\x{212B}"));
173898184e3Ssthenok($objSvReform->eq("a\x{30A}\x{301}", "\x{1FB}"));
174898184e3Ssthenok($objSvReform->eq("A\x{30A}\x{301}", "\x{1FA}"));
175898184e3Ssthenok($objSvReform->eq("a\x{308}\x{304}", "\x{1DF}"));
176898184e3Ssthenok($objSvReform->eq("A\x{308}\x{304}", "\x{1DE}"));
177898184e3Ssthenok($objSvReform->eq("\x{1FD}", "$ae\x{301}"));
178898184e3Ssthenok($objSvReform->eq("\x{1FC}", "$AE\x{301}"));
179898184e3Ssthenok($objSvReform->eq("\x{1E3}", "$ae\x{304}"));
180898184e3Ssthenok($objSvReform->eq("\x{1E2}", "$AE\x{304}"));
181898184e3Ssthenok($objSvReform->eq("o\x{308}\x{304}", "\x{22B}"));
182898184e3Ssthenok($objSvReform->eq("O\x{308}\x{304}", "\x{22A}"));
183898184e3Ssthenok($objSvReform->eq("o\x{338}\x{301}", "\x{1FF}"));
184898184e3Ssthenok($objSvReform->eq("O\x{338}\x{301}", "\x{1FE}"));
185898184e3Ssthen
186898184e3Ssthen# 105
187898184e3Ssthen
188898184e3Ssthenok($objSvReform->eq("o\x{302}\x{300}", "\x{1ED3}"));
189898184e3Ssthenok($objSvReform->eq("O\x{302}\x{300}", "\x{1ED2}"));
190898184e3Ssthenok($objSvReform->eq("o\x{302}\x{301}", "\x{1ED1}"));
191898184e3Ssthenok($objSvReform->eq("O\x{302}\x{301}", "\x{1ED0}"));
192898184e3Ssthenok($objSvReform->eq("o\x{302}\x{303}", "\x{1ED7}"));
193898184e3Ssthenok($objSvReform->eq("O\x{302}\x{303}", "\x{1ED6}"));
194898184e3Ssthenok($objSvReform->eq("o\x{302}\x{309}", "\x{1ED5}"));
195898184e3Ssthenok($objSvReform->eq("O\x{302}\x{309}", "\x{1ED4}"));
196898184e3Ssthenok($objSvReform->eq("o\x{302}\x{323}", "\x{1ED9}"));
197898184e3Ssthenok($objSvReform->eq("O\x{302}\x{323}", "\x{1ED8}"));
198898184e3Ssthen
199898184e3Ssthen# 115
200