1
2BEGIN {
3    if ($ENV{PERL_CORE}) {
4	chdir('t') if -d 't';
5	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
6    }
7}
8
9use strict;
10use warnings;
11BEGIN { $| = 1; print "1..424\n"; }
12my $count = 0;
13sub ok ($;$) {
14    my $p = my $r = shift;
15    if (@_) {
16	my $x = shift;
17	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
18    }
19    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
20}
21
22use Unicode::Collate::Locale;
23
24ok(1);
25
26sub _pack_U   { Unicode::Collate::pack_U(@_) }
27sub _unpack_U { Unicode::Collate::unpack_U(@_) }
28
29#########################
30
31my $objVi = Unicode::Collate::Locale->
32    new(locale => 'VI', normalization => undef);
33
34ok($objVi->getlocale, 'vi');
35
36$objVi->change(level => 1);
37
38ok($objVi->lt("a", "a\x{306}"));
39ok($objVi->lt("a\x{306}", "a\x{302}"));
40ok($objVi->gt("b", "a\x{302}"));
41ok($objVi->lt("d", "d\x{335}"));
42ok($objVi->gt("e", "d\x{335}"));
43ok($objVi->lt("e", "e\x{302}"));
44ok($objVi->gt("f", "e\x{302}"));
45ok($objVi->lt("o", "o\x{302}"));
46ok($objVi->lt("o\x{302}", "o\x{31B}"));
47ok($objVi->gt("p", "o\x{31B}"));
48ok($objVi->lt("u", "u\x{31B}"));
49ok($objVi->gt("v", "u\x{31B}"));
50
51# 14
52
53ok($objVi->eq("\x{300}", "\x{309}"));
54ok($objVi->eq("\x{309}", "\x{303}"));
55ok($objVi->eq("\x{303}", "\x{301}"));
56ok($objVi->eq("\x{301}", "\x{323}"));
57ok($objVi->eq("\x{323}", "\x{306}"));
58ok($objVi->eq("\x{306}", "\x{302}"));
59
60ok($objVi->eq("X\x{300}", "X\x{309}"));
61ok($objVi->eq("X\x{309}", "X\x{303}"));
62ok($objVi->eq("X\x{303}", "X\x{301}"));
63ok($objVi->eq("X\x{301}", "X\x{323}"));
64ok($objVi->eq("X\x{323}", "X\x{306}"));
65ok($objVi->eq("X\x{306}", "X\x{302}"));
66
67# 26
68
69$objVi->change(level => 2);
70
71ok($objVi->lt("\x{300}", "\x{309}"));
72ok($objVi->lt("\x{309}", "\x{303}"));
73ok($objVi->lt("\x{303}", "\x{301}"));
74ok($objVi->lt("\x{301}", "\x{323}"));
75ok($objVi->lt("\x{323}", "\x{306}"));
76ok($objVi->lt("\x{306}", "\x{302}"));
77
78ok($objVi->lt("X\x{300}", "X\x{309}"));
79ok($objVi->lt("X\x{309}", "X\x{303}"));
80ok($objVi->lt("X\x{303}", "X\x{301}"));
81ok($objVi->lt("X\x{301}", "X\x{323}"));
82ok($objVi->lt("X\x{323}", "X\x{306}"));
83ok($objVi->lt("X\x{306}", "X\x{302}"));
84
85# 38
86
87ok($objVi->eq("a\x{306}", "A\x{306}"));
88ok($objVi->eq("a\x{302}", "A\x{302}"));
89ok($objVi->eq("d\x{335}", "D\x{335}"));
90ok($objVi->eq("e\x{302}", "E\x{302}"));
91ok($objVi->eq("o\x{302}", "O\x{302}"));
92ok($objVi->eq("o\x{31B}", "O\x{31B}"));
93ok($objVi->eq("u\x{31B}", "U\x{31B}"));
94
95# 45
96
97$objVi->change(level => 3);
98
99ok($objVi->lt("a\x{306}", "A\x{306}"));
100ok($objVi->lt("a\x{302}", "A\x{302}"));
101ok($objVi->lt("d\x{335}", "D\x{335}"));
102ok($objVi->lt("e\x{302}", "E\x{302}"));
103ok($objVi->lt("o\x{302}", "O\x{302}"));
104ok($objVi->lt("o\x{31B}", "O\x{31B}"));
105ok($objVi->lt("u\x{31B}", "U\x{31B}"));
106
107# 52
108
109ok($objVi->eq("a\x{306}", "\x{103}"));
110ok($objVi->eq("A\x{306}", "\x{102}"));
111ok($objVi->eq("a\x{302}", _pack_U(0xE2)));
112ok($objVi->eq("A\x{302}", _pack_U(0xC2)));
113ok($objVi->eq("d\x{335}", "\x{111}"));
114ok($objVi->eq("D\x{335}", "\x{110}"));
115ok($objVi->eq("e\x{302}", _pack_U(0xEA)));
116ok($objVi->eq("E\x{302}", _pack_U(0xCA)));
117ok($objVi->eq("o\x{302}", _pack_U(0xF4)));
118ok($objVi->eq("O\x{302}", _pack_U(0xD4)));
119ok($objVi->eq("o\x{31B}", "\x{1A1}"));
120ok($objVi->eq("O\x{31B}", "\x{1A0}"));
121ok($objVi->eq("u\x{31B}", "\x{1B0}"));
122ok($objVi->eq("U\x{31B}", "\x{1AF}"));
123
124# 66
125
126ok($objVi->eq("e\x{306}", "\x{115}"));
127ok($objVi->eq("E\x{306}", "\x{114}"));
128ok($objVi->eq("i\x{306}", "\x{12D}"));
129ok($objVi->eq("I\x{306}", "\x{12C}"));
130ok($objVi->eq("o\x{306}", "\x{14F}"));
131ok($objVi->eq("O\x{306}", "\x{14E}"));
132ok($objVi->eq("u\x{306}", "\x{16D}"));
133ok($objVi->eq("U\x{306}", "\x{16C}"));
134
135# 74
136
137ok($objVi->eq("a\x{300}", _pack_U(0xE0)));
138ok($objVi->eq("a\x{340}", _pack_U(0xE0)));
139ok($objVi->eq("a\x{309}", "\x{1EA3}"));
140ok($objVi->eq("a\x{303}", _pack_U(0xE3)));
141ok($objVi->eq("a\x{301}", _pack_U(0xE1)));
142ok($objVi->eq("a\x{341}", _pack_U(0xE1)));
143ok($objVi->eq("a\x{323}", "\x{1EA1}"));
144ok($objVi->eq("A\x{300}", _pack_U(0xC0)));
145ok($objVi->eq("A\x{340}", _pack_U(0xC0)));
146ok($objVi->eq("A\x{309}", "\x{1EA2}"));
147ok($objVi->eq("A\x{303}", _pack_U(0xC3)));
148ok($objVi->eq("A\x{301}", _pack_U(0xC1)));
149ok($objVi->eq("A\x{341}", _pack_U(0xC1)));
150ok($objVi->eq("A\x{323}", "\x{1EA0}"));
151ok($objVi->eq("a\x{306}\x{300}", "\x{1EB1}"));
152ok($objVi->eq("a\x{306}\x{340}", "\x{1EB1}"));
153ok($objVi->eq("a\x{306}\x{309}", "\x{1EB3}"));
154ok($objVi->eq("a\x{306}\x{303}", "\x{1EB5}"));
155ok($objVi->eq("a\x{306}\x{301}", "\x{1EAF}"));
156ok($objVi->eq("a\x{306}\x{341}", "\x{1EAF}"));
157ok($objVi->eq("a\x{306}\x{323}", "\x{1EB7}"));
158ok($objVi->eq("A\x{306}\x{300}", "\x{1EB0}"));
159ok($objVi->eq("A\x{306}\x{340}", "\x{1EB0}"));
160ok($objVi->eq("A\x{306}\x{309}", "\x{1EB2}"));
161ok($objVi->eq("A\x{306}\x{303}", "\x{1EB4}"));
162ok($objVi->eq("A\x{306}\x{301}", "\x{1EAE}"));
163ok($objVi->eq("A\x{306}\x{341}", "\x{1EAE}"));
164ok($objVi->eq("A\x{306}\x{323}", "\x{1EB6}"));
165ok($objVi->eq("a\x{302}\x{300}", "\x{1EA7}"));
166ok($objVi->eq("a\x{302}\x{340}", "\x{1EA7}"));
167ok($objVi->eq("a\x{302}\x{309}", "\x{1EA9}"));
168ok($objVi->eq("a\x{302}\x{303}", "\x{1EAB}"));
169ok($objVi->eq("a\x{302}\x{301}", "\x{1EA5}"));
170ok($objVi->eq("a\x{302}\x{341}", "\x{1EA5}"));
171ok($objVi->eq("a\x{302}\x{323}", "\x{1EAD}"));
172ok($objVi->eq("A\x{302}\x{300}", "\x{1EA6}"));
173ok($objVi->eq("A\x{302}\x{340}", "\x{1EA6}"));
174ok($objVi->eq("A\x{302}\x{309}", "\x{1EA8}"));
175ok($objVi->eq("A\x{302}\x{303}", "\x{1EAA}"));
176ok($objVi->eq("A\x{302}\x{301}", "\x{1EA4}"));
177ok($objVi->eq("A\x{302}\x{341}", "\x{1EA4}"));
178ok($objVi->eq("A\x{302}\x{323}", "\x{1EAC}"));
179ok($objVi->eq("e\x{300}", _pack_U(0xE8)));
180ok($objVi->eq("e\x{340}", _pack_U(0xE8)));
181ok($objVi->eq("e\x{309}", "\x{1EBB}"));
182ok($objVi->eq("e\x{303}", "\x{1EBD}"));
183ok($objVi->eq("e\x{301}", _pack_U(0xE9)));
184ok($objVi->eq("e\x{341}", _pack_U(0xE9)));
185ok($objVi->eq("e\x{323}", "\x{1EB9}"));
186ok($objVi->eq("E\x{300}", _pack_U(0xC8)));
187ok($objVi->eq("E\x{340}", _pack_U(0xC8)));
188ok($objVi->eq("E\x{309}", "\x{1EBA}"));
189ok($objVi->eq("E\x{303}", "\x{1EBC}"));
190ok($objVi->eq("E\x{301}", _pack_U(0xC9)));
191ok($objVi->eq("E\x{341}", _pack_U(0xC9)));
192ok($objVi->eq("E\x{323}", "\x{1EB8}"));
193ok($objVi->eq("e\x{302}\x{300}", "\x{1EC1}"));
194ok($objVi->eq("e\x{302}\x{340}", "\x{1EC1}"));
195ok($objVi->eq("e\x{302}\x{309}", "\x{1EC3}"));
196ok($objVi->eq("e\x{302}\x{303}", "\x{1EC5}"));
197ok($objVi->eq("e\x{302}\x{301}", "\x{1EBF}"));
198ok($objVi->eq("e\x{302}\x{341}", "\x{1EBF}"));
199ok($objVi->eq("e\x{302}\x{323}", "\x{1EC7}"));
200ok($objVi->eq("E\x{302}\x{300}", "\x{1EC0}"));
201ok($objVi->eq("E\x{302}\x{340}", "\x{1EC0}"));
202ok($objVi->eq("E\x{302}\x{309}", "\x{1EC2}"));
203ok($objVi->eq("E\x{302}\x{303}", "\x{1EC4}"));
204ok($objVi->eq("E\x{302}\x{301}", "\x{1EBE}"));
205ok($objVi->eq("E\x{302}\x{341}", "\x{1EBE}"));
206ok($objVi->eq("E\x{302}\x{323}", "\x{1EC6}"));
207ok($objVi->eq("i\x{300}", _pack_U(0xEC)));
208ok($objVi->eq("i\x{340}", _pack_U(0xEC)));
209ok($objVi->eq("i\x{309}", "\x{1EC9}"));
210ok($objVi->eq("i\x{303}", "\x{129}"));
211ok($objVi->eq("i\x{301}", _pack_U(0xED)));
212ok($objVi->eq("i\x{341}", _pack_U(0xED)));
213ok($objVi->eq("i\x{323}", "\x{1ECB}"));
214ok($objVi->eq("I\x{300}", _pack_U(0xCC)));
215ok($objVi->eq("I\x{340}", _pack_U(0xCC)));
216ok($objVi->eq("I\x{309}", "\x{1EC8}"));
217ok($objVi->eq("I\x{303}", "\x{128}"));
218ok($objVi->eq("I\x{301}", _pack_U(0xCD)));
219ok($objVi->eq("I\x{341}", _pack_U(0xCD)));
220ok($objVi->eq("I\x{323}", "\x{1ECA}"));
221ok($objVi->eq("o\x{300}", _pack_U(0xF2)));
222ok($objVi->eq("o\x{340}", _pack_U(0xF2)));
223ok($objVi->eq("o\x{309}", "\x{1ECF}"));
224ok($objVi->eq("o\x{303}", _pack_U(0xF5)));
225ok($objVi->eq("o\x{301}", _pack_U(0xF3)));
226ok($objVi->eq("o\x{341}", _pack_U(0xF3)));
227ok($objVi->eq("o\x{323}", "\x{1ECD}"));
228ok($objVi->eq("O\x{300}", _pack_U(0xD2)));
229ok($objVi->eq("O\x{340}", _pack_U(0xD2)));
230ok($objVi->eq("O\x{309}", "\x{1ECE}"));
231ok($objVi->eq("O\x{303}", _pack_U(0xD5)));
232ok($objVi->eq("O\x{301}", _pack_U(0xD3)));
233ok($objVi->eq("O\x{341}", _pack_U(0xD3)));
234ok($objVi->eq("O\x{323}", "\x{1ECC}"));
235ok($objVi->eq("o\x{302}\x{300}", "\x{1ED3}"));
236ok($objVi->eq("o\x{302}\x{340}", "\x{1ED3}"));
237ok($objVi->eq("o\x{302}\x{309}", "\x{1ED5}"));
238ok($objVi->eq("o\x{302}\x{303}", "\x{1ED7}"));
239ok($objVi->eq("o\x{302}\x{301}", "\x{1ED1}"));
240ok($objVi->eq("o\x{302}\x{341}", "\x{1ED1}"));
241ok($objVi->eq("o\x{302}\x{323}", "\x{1ED9}"));
242ok($objVi->eq("O\x{302}\x{300}", "\x{1ED2}"));
243ok($objVi->eq("O\x{302}\x{340}", "\x{1ED2}"));
244ok($objVi->eq("O\x{302}\x{309}", "\x{1ED4}"));
245ok($objVi->eq("O\x{302}\x{303}", "\x{1ED6}"));
246ok($objVi->eq("O\x{302}\x{301}", "\x{1ED0}"));
247ok($objVi->eq("O\x{302}\x{341}", "\x{1ED0}"));
248ok($objVi->eq("O\x{302}\x{323}", "\x{1ED8}"));
249ok($objVi->eq("o\x{31B}\x{300}", "\x{1EDD}"));
250ok($objVi->eq("o\x{31B}\x{340}", "\x{1EDD}"));
251ok($objVi->eq("o\x{31B}\x{309}", "\x{1EDF}"));
252ok($objVi->eq("o\x{31B}\x{303}", "\x{1EE1}"));
253ok($objVi->eq("o\x{31B}\x{301}", "\x{1EDB}"));
254ok($objVi->eq("o\x{31B}\x{341}", "\x{1EDB}"));
255ok($objVi->eq("o\x{31B}\x{323}", "\x{1EE3}"));
256ok($objVi->eq("O\x{31B}\x{300}", "\x{1EDC}"));
257ok($objVi->eq("O\x{31B}\x{340}", "\x{1EDC}"));
258ok($objVi->eq("O\x{31B}\x{309}", "\x{1EDE}"));
259ok($objVi->eq("O\x{31B}\x{303}", "\x{1EE0}"));
260ok($objVi->eq("O\x{31B}\x{301}", "\x{1EDA}"));
261ok($objVi->eq("O\x{31B}\x{341}", "\x{1EDA}"));
262ok($objVi->eq("O\x{31B}\x{323}", "\x{1EE2}"));
263ok($objVi->eq("u\x{300}", _pack_U(0xF9)));
264ok($objVi->eq("u\x{340}", _pack_U(0xF9)));
265ok($objVi->eq("u\x{309}", "\x{1EE7}"));
266ok($objVi->eq("u\x{303}", "\x{169}"));
267ok($objVi->eq("u\x{301}", _pack_U(0xFA)));
268ok($objVi->eq("u\x{341}", _pack_U(0xFA)));
269ok($objVi->eq("u\x{323}", "\x{1EE5}"));
270ok($objVi->eq("U\x{300}", _pack_U(0xD9)));
271ok($objVi->eq("U\x{340}", _pack_U(0xD9)));
272ok($objVi->eq("U\x{309}", "\x{1EE6}"));
273ok($objVi->eq("U\x{303}", "\x{168}"));
274ok($objVi->eq("U\x{301}", _pack_U(0xDA)));
275ok($objVi->eq("U\x{341}", _pack_U(0xDA)));
276ok($objVi->eq("U\x{323}", "\x{1EE4}"));
277ok($objVi->eq("u\x{31B}\x{300}", "\x{1EEB}"));
278ok($objVi->eq("u\x{31B}\x{340}", "\x{1EEB}"));
279ok($objVi->eq("u\x{31B}\x{309}", "\x{1EED}"));
280ok($objVi->eq("u\x{31B}\x{303}", "\x{1EEF}"));
281ok($objVi->eq("u\x{31B}\x{301}", "\x{1EE9}"));
282ok($objVi->eq("u\x{31B}\x{341}", "\x{1EE9}"));
283ok($objVi->eq("u\x{31B}\x{323}", "\x{1EF1}"));
284ok($objVi->eq("U\x{31B}\x{300}", "\x{1EEA}"));
285ok($objVi->eq("U\x{31B}\x{340}", "\x{1EEA}"));
286ok($objVi->eq("U\x{31B}\x{309}", "\x{1EEC}"));
287ok($objVi->eq("U\x{31B}\x{303}", "\x{1EEE}"));
288ok($objVi->eq("U\x{31B}\x{301}", "\x{1EE8}"));
289ok($objVi->eq("U\x{31B}\x{341}", "\x{1EE8}"));
290ok($objVi->eq("U\x{31B}\x{323}", "\x{1EF0}"));
291ok($objVi->eq("y\x{300}", "\x{1EF3}"));
292ok($objVi->eq("y\x{340}", "\x{1EF3}"));
293ok($objVi->eq("y\x{309}", "\x{1EF7}"));
294ok($objVi->eq("y\x{303}", "\x{1EF9}"));
295ok($objVi->eq("y\x{301}", _pack_U(0xFD)));
296ok($objVi->eq("y\x{341}", _pack_U(0xFD)));
297ok($objVi->eq("y\x{323}", "\x{1EF5}"));
298ok($objVi->eq("Y\x{300}", "\x{1EF2}"));
299ok($objVi->eq("Y\x{340}", "\x{1EF2}"));
300ok($objVi->eq("Y\x{309}", "\x{1EF6}"));
301ok($objVi->eq("Y\x{303}", "\x{1EF8}"));
302ok($objVi->eq("Y\x{301}", _pack_U(0xDD)));
303ok($objVi->eq("Y\x{341}", _pack_U(0xDD)));
304ok($objVi->eq("Y\x{323}", "\x{1EF4}"));
305
306# 242
307
308ok($objVi->eq("a\x{306}\x{323}", "\x{1EA1}\x{306}"));
309ok($objVi->eq("A\x{306}\x{323}", "\x{1EA0}\x{306}"));
310ok($objVi->eq("a\x{302}\x{323}", "\x{1EA1}\x{302}"));
311ok($objVi->eq("A\x{302}\x{323}", "\x{1EA0}\x{302}"));
312ok($objVi->eq("e\x{302}\x{323}", "\x{1EB9}\x{302}"));
313ok($objVi->eq("E\x{302}\x{323}", "\x{1EB8}\x{302}"));
314ok($objVi->eq("o\x{302}\x{323}", "\x{1ECD}\x{302}"));
315ok($objVi->eq("O\x{302}\x{323}", "\x{1ECC}\x{302}"));
316ok($objVi->eq("o\x{31B}\x{300}", _pack_U(0xF2, 0x31B)));
317ok($objVi->eq("o\x{31B}\x{340}", _pack_U(0xF2, 0x31B)));
318ok($objVi->eq("o\x{31B}\x{309}", "\x{1ECF}\x{31B}"));
319ok($objVi->eq("o\x{31B}\x{303}", _pack_U(0xF5, 0x31B)));
320ok($objVi->eq("o\x{31B}\x{301}", _pack_U(0xF3, 0x31B)));
321ok($objVi->eq("o\x{31B}\x{341}", _pack_U(0xF3, 0x31B)));
322ok($objVi->eq("o\x{31B}\x{323}", "\x{1ECD}\x{31B}"));
323ok($objVi->eq("O\x{31B}\x{300}", _pack_U(0xD2, 0x31B)));
324ok($objVi->eq("O\x{31B}\x{340}", _pack_U(0xD2, 0x31B)));
325ok($objVi->eq("O\x{31B}\x{309}", "\x{1ECE}\x{31B}"));
326ok($objVi->eq("O\x{31B}\x{303}", _pack_U(0xD5, 0x31B)));
327ok($objVi->eq("O\x{31B}\x{301}", _pack_U(0xD3, 0x31B)));
328ok($objVi->eq("O\x{31B}\x{341}", _pack_U(0xD3, 0x31B)));
329ok($objVi->eq("O\x{31B}\x{323}", "\x{1ECC}\x{31B}"));
330ok($objVi->eq("u\x{31B}\x{300}", _pack_U(0xF9, 0x31B)));
331ok($objVi->eq("u\x{31B}\x{340}", _pack_U(0xF9, 0x31B)));
332ok($objVi->eq("u\x{31B}\x{309}", "\x{1EE7}\x{31B}"));
333ok($objVi->eq("u\x{31B}\x{303}", "\x{169}\x{31B}"));
334ok($objVi->eq("u\x{31B}\x{301}", _pack_U(0xFA, 0x31B)));
335ok($objVi->eq("u\x{31B}\x{341}", _pack_U(0xFA, 0x31B)));
336ok($objVi->eq("u\x{31B}\x{323}", "\x{1EE5}\x{31B}"));
337ok($objVi->eq("U\x{31B}\x{300}", _pack_U(0xD9, 0x31B)));
338ok($objVi->eq("U\x{31B}\x{340}", _pack_U(0xD9, 0x31B)));
339ok($objVi->eq("U\x{31B}\x{309}", "\x{1EE6}\x{31B}"));
340ok($objVi->eq("U\x{31B}\x{303}", "\x{168}\x{31B}"));
341ok($objVi->eq("U\x{31B}\x{301}", _pack_U(0xDA, 0x31B)));
342ok($objVi->eq("U\x{31B}\x{341}", _pack_U(0xDA, 0x31B)));
343ok($objVi->eq("U\x{31B}\x{323}", "\x{1EE4}\x{31B}"));
344
345# 278
346
347ok($objVi->eq("a\x{306}\x{323}", "a\x{323}\x{306}"));
348ok($objVi->eq("A\x{306}\x{323}", "A\x{323}\x{306}"));
349ok($objVi->eq("a\x{302}\x{323}", "a\x{323}\x{302}"));
350ok($objVi->eq("A\x{302}\x{323}", "A\x{323}\x{302}"));
351ok($objVi->eq("e\x{302}\x{323}", "e\x{323}\x{302}"));
352ok($objVi->eq("E\x{302}\x{323}", "E\x{323}\x{302}"));
353ok($objVi->eq("o\x{302}\x{323}", "o\x{323}\x{302}"));
354ok($objVi->eq("O\x{302}\x{323}", "O\x{323}\x{302}"));
355ok($objVi->eq("o\x{31B}\x{300}", "o\x{300}\x{31B}"));
356ok($objVi->eq("o\x{31B}\x{340}", "o\x{340}\x{31B}"));
357ok($objVi->eq("o\x{31B}\x{309}", "o\x{309}\x{31B}"));
358ok($objVi->eq("o\x{31B}\x{303}", "o\x{303}\x{31B}"));
359ok($objVi->eq("o\x{31B}\x{301}", "o\x{301}\x{31B}"));
360ok($objVi->eq("o\x{31B}\x{341}", "o\x{341}\x{31B}"));
361ok($objVi->eq("o\x{31B}\x{323}", "o\x{323}\x{31B}"));
362ok($objVi->eq("O\x{31B}\x{300}", "O\x{300}\x{31B}"));
363ok($objVi->eq("O\x{31B}\x{340}", "O\x{340}\x{31B}"));
364ok($objVi->eq("O\x{31B}\x{309}", "O\x{309}\x{31B}"));
365ok($objVi->eq("O\x{31B}\x{303}", "O\x{303}\x{31B}"));
366ok($objVi->eq("O\x{31B}\x{301}", "O\x{301}\x{31B}"));
367ok($objVi->eq("O\x{31B}\x{341}", "O\x{341}\x{31B}"));
368ok($objVi->eq("O\x{31B}\x{323}", "O\x{323}\x{31B}"));
369ok($objVi->eq("u\x{31B}\x{300}", "u\x{300}\x{31B}"));
370ok($objVi->eq("u\x{31B}\x{340}", "u\x{340}\x{31B}"));
371ok($objVi->eq("u\x{31B}\x{309}", "u\x{309}\x{31B}"));
372ok($objVi->eq("u\x{31B}\x{303}", "u\x{303}\x{31B}"));
373ok($objVi->eq("u\x{31B}\x{301}", "u\x{301}\x{31B}"));
374ok($objVi->eq("u\x{31B}\x{341}", "u\x{341}\x{31B}"));
375ok($objVi->eq("u\x{31B}\x{323}", "u\x{323}\x{31B}"));
376ok($objVi->eq("U\x{31B}\x{300}", "U\x{300}\x{31B}"));
377ok($objVi->eq("U\x{31B}\x{340}", "U\x{340}\x{31B}"));
378ok($objVi->eq("U\x{31B}\x{309}", "U\x{309}\x{31B}"));
379ok($objVi->eq("U\x{31B}\x{303}", "U\x{303}\x{31B}"));
380ok($objVi->eq("U\x{31B}\x{301}", "U\x{301}\x{31B}"));
381ok($objVi->eq("U\x{31B}\x{341}", "U\x{341}\x{31B}"));
382ok($objVi->eq("U\x{31B}\x{323}", "U\x{323}\x{31B}"));
383
384# 314
385
386ok($objVi->eq("a\x{306}\x{300}", "\x{103}\x{300}"));
387ok($objVi->eq("a\x{306}\x{340}", "\x{103}\x{340}"));
388ok($objVi->eq("a\x{306}\x{309}", "\x{103}\x{309}"));
389ok($objVi->eq("a\x{306}\x{303}", "\x{103}\x{303}"));
390ok($objVi->eq("a\x{306}\x{301}", "\x{103}\x{301}"));
391ok($objVi->eq("a\x{306}\x{341}", "\x{103}\x{341}"));
392ok($objVi->eq("a\x{306}\x{323}", "\x{103}\x{323}"));
393ok($objVi->eq("A\x{306}\x{300}", "\x{102}\x{300}"));
394ok($objVi->eq("A\x{306}\x{340}", "\x{102}\x{340}"));
395ok($objVi->eq("A\x{306}\x{309}", "\x{102}\x{309}"));
396ok($objVi->eq("A\x{306}\x{303}", "\x{102}\x{303}"));
397ok($objVi->eq("A\x{306}\x{301}", "\x{102}\x{301}"));
398ok($objVi->eq("A\x{306}\x{341}", "\x{102}\x{341}"));
399ok($objVi->eq("A\x{306}\x{323}", "\x{102}\x{323}"));
400ok($objVi->eq("a\x{302}\x{300}", _pack_U(0xE2, 0x300)));
401ok($objVi->eq("a\x{302}\x{340}", _pack_U(0xE2, 0x340)));
402ok($objVi->eq("a\x{302}\x{309}", _pack_U(0xE2, 0x309)));
403ok($objVi->eq("a\x{302}\x{303}", _pack_U(0xE2, 0x303)));
404ok($objVi->eq("a\x{302}\x{301}", _pack_U(0xE2, 0x301)));
405ok($objVi->eq("a\x{302}\x{341}", _pack_U(0xE2, 0x341)));
406ok($objVi->eq("a\x{302}\x{323}", _pack_U(0xE2, 0x323)));
407ok($objVi->eq("A\x{302}\x{300}", _pack_U(0xC2, 0x300)));
408ok($objVi->eq("A\x{302}\x{340}", _pack_U(0xC2, 0x340)));
409ok($objVi->eq("A\x{302}\x{309}", _pack_U(0xC2, 0x309)));
410ok($objVi->eq("A\x{302}\x{303}", _pack_U(0xC2, 0x303)));
411ok($objVi->eq("A\x{302}\x{301}", _pack_U(0xC2, 0x301)));
412ok($objVi->eq("A\x{302}\x{341}", _pack_U(0xC2, 0x341)));
413ok($objVi->eq("A\x{302}\x{323}", _pack_U(0xC2, 0x323)));
414ok($objVi->eq("e\x{302}\x{300}", _pack_U(0xEA, 0x300)));
415ok($objVi->eq("e\x{302}\x{340}", _pack_U(0xEA, 0x340)));
416ok($objVi->eq("e\x{302}\x{309}", _pack_U(0xEA, 0x309)));
417ok($objVi->eq("e\x{302}\x{303}", _pack_U(0xEA, 0x303)));
418ok($objVi->eq("e\x{302}\x{301}", _pack_U(0xEA, 0x301)));
419ok($objVi->eq("e\x{302}\x{341}", _pack_U(0xEA, 0x341)));
420ok($objVi->eq("e\x{302}\x{323}", _pack_U(0xEA, 0x323)));
421ok($objVi->eq("E\x{302}\x{300}", _pack_U(0xCA, 0x300)));
422ok($objVi->eq("E\x{302}\x{340}", _pack_U(0xCA, 0x340)));
423ok($objVi->eq("E\x{302}\x{309}", _pack_U(0xCA, 0x309)));
424ok($objVi->eq("E\x{302}\x{303}", _pack_U(0xCA, 0x303)));
425ok($objVi->eq("E\x{302}\x{301}", _pack_U(0xCA, 0x301)));
426ok($objVi->eq("E\x{302}\x{341}", _pack_U(0xCA, 0x341)));
427ok($objVi->eq("E\x{302}\x{323}", _pack_U(0xCA, 0x323)));
428ok($objVi->eq("o\x{302}\x{300}", _pack_U(0xF4, 0x300)));
429ok($objVi->eq("o\x{302}\x{340}", _pack_U(0xF4, 0x340)));
430ok($objVi->eq("o\x{302}\x{309}", _pack_U(0xF4, 0x309)));
431ok($objVi->eq("o\x{302}\x{303}", _pack_U(0xF4, 0x303)));
432ok($objVi->eq("o\x{302}\x{301}", _pack_U(0xF4, 0x301)));
433ok($objVi->eq("o\x{302}\x{341}", _pack_U(0xF4, 0x341)));
434ok($objVi->eq("o\x{302}\x{323}", _pack_U(0xF4, 0x323)));
435ok($objVi->eq("O\x{302}\x{300}", _pack_U(0xD4, 0x300)));
436ok($objVi->eq("O\x{302}\x{340}", _pack_U(0xD4, 0x340)));
437ok($objVi->eq("O\x{302}\x{309}", _pack_U(0xD4, 0x309)));
438ok($objVi->eq("O\x{302}\x{303}", _pack_U(0xD4, 0x303)));
439ok($objVi->eq("O\x{302}\x{301}", _pack_U(0xD4, 0x301)));
440ok($objVi->eq("O\x{302}\x{341}", _pack_U(0xD4, 0x341)));
441ok($objVi->eq("O\x{302}\x{323}", _pack_U(0xD4, 0x323)));
442ok($objVi->eq("o\x{31B}\x{300}", "\x{1A1}\x{300}"));
443ok($objVi->eq("o\x{31B}\x{340}", "\x{1A1}\x{340}"));
444ok($objVi->eq("o\x{31B}\x{309}", "\x{1A1}\x{309}"));
445ok($objVi->eq("o\x{31B}\x{303}", "\x{1A1}\x{303}"));
446ok($objVi->eq("o\x{31B}\x{301}", "\x{1A1}\x{301}"));
447ok($objVi->eq("o\x{31B}\x{341}", "\x{1A1}\x{341}"));
448ok($objVi->eq("o\x{31B}\x{323}", "\x{1A1}\x{323}"));
449ok($objVi->eq("O\x{31B}\x{300}", "\x{1A0}\x{300}"));
450ok($objVi->eq("O\x{31B}\x{340}", "\x{1A0}\x{340}"));
451ok($objVi->eq("O\x{31B}\x{309}", "\x{1A0}\x{309}"));
452ok($objVi->eq("O\x{31B}\x{303}", "\x{1A0}\x{303}"));
453ok($objVi->eq("O\x{31B}\x{301}", "\x{1A0}\x{301}"));
454ok($objVi->eq("O\x{31B}\x{341}", "\x{1A0}\x{341}"));
455ok($objVi->eq("O\x{31B}\x{323}", "\x{1A0}\x{323}"));
456ok($objVi->eq("u\x{31B}\x{300}", "\x{1B0}\x{300}"));
457ok($objVi->eq("u\x{31B}\x{340}", "\x{1B0}\x{340}"));
458ok($objVi->eq("u\x{31B}\x{309}", "\x{1B0}\x{309}"));
459ok($objVi->eq("u\x{31B}\x{303}", "\x{1B0}\x{303}"));
460ok($objVi->eq("u\x{31B}\x{301}", "\x{1B0}\x{301}"));
461ok($objVi->eq("u\x{31B}\x{341}", "\x{1B0}\x{341}"));
462ok($objVi->eq("u\x{31B}\x{323}", "\x{1B0}\x{323}"));
463ok($objVi->eq("U\x{31B}\x{300}", "\x{1AF}\x{300}"));
464ok($objVi->eq("U\x{31B}\x{340}", "\x{1AF}\x{340}"));
465ok($objVi->eq("U\x{31B}\x{309}", "\x{1AF}\x{309}"));
466ok($objVi->eq("U\x{31B}\x{303}", "\x{1AF}\x{303}"));
467ok($objVi->eq("U\x{31B}\x{301}", "\x{1AF}\x{301}"));
468ok($objVi->eq("U\x{31B}\x{341}", "\x{1AF}\x{341}"));
469ok($objVi->eq("U\x{31B}\x{323}", "\x{1AF}\x{323}"));
470
471# 398
472
473$objVi->change(normalization => undef);
474
475ok($objVi->index("a\x{306}\x{323}", "a\x{323}\x{306}"), 0);
476ok($objVi->index("o\x{31B}\x{300}", "o\x{300}\x{31B}"), 0);
477ok($objVi->index("o\x{31B}\x{300}", "o\x{340}\x{31B}"), 0);
478ok($objVi->index("o\x{31B}\x{301}", "o\x{301}\x{31B}"), 0);
479ok($objVi->index("o\x{31B}\x{301}", "o\x{341}\x{31B}"), 0);
480ok($objVi->index("a\x{306}\x{323}", _pack_U(0x1EA1, 0x306)), 0);
481ok($objVi->index("o\x{31B}\x{300}", _pack_U(0x00F2, 0x31B)), 0);
482
483ok($objVi->index("A\x{306}\x{323}", "a\x{323}\x{306}"), -1);
484ok($objVi->index("O\x{31B}\x{300}", "o\x{300}\x{31B}"), -1);
485ok($objVi->index("A\x{306}\x{323}", _pack_U(0x1EA1, 0x306)), -1);
486ok($objVi->index("O\x{31B}\x{300}", _pack_U(0x00F2, 0x31B)), -1);
487
488# 409
489
490$objVi->change(level => 2);
491
492ok($objVi->index("A\x{306}\x{323}", "a\x{323}\x{306}"), 0);
493ok($objVi->index("O\x{31B}\x{300}", "o\x{300}\x{31B}"), 0);
494ok($objVi->index("O\x{31B}\x{300}", "o\x{340}\x{31B}"), 0);
495ok($objVi->index("O\x{31B}\x{301}", "o\x{301}\x{31B}"), 0);
496ok($objVi->index("O\x{31B}\x{301}", "o\x{341}\x{31B}"), 0);
497ok($objVi->index("A\x{306}\x{323}", _pack_U(0x1EA1, 0x306)), 0);
498ok($objVi->index("O\x{31B}\x{300}", _pack_U(0x00F2, 0x31B)), 0);
499
500ok($objVi->index("A\x{306}", "a\x{323}\x{306}"), -1);
501ok($objVi->index("O\x{31B}", "o\x{300}\x{31B}"), -1);
502ok($objVi->index("A\x{306}", _pack_U(0x1EA1, 0x306)), -1);
503ok($objVi->index("O\x{31B}", _pack_U(0x00F2, 0x31B)), -1);
504
505# 420
506
507$objVi->change(level => 1);
508
509ok($objVi->index("A\x{306}", "a\x{323}\x{306}"), 0);
510ok($objVi->index("O\x{31B}", "o\x{300}\x{31B}"), 0);
511ok($objVi->index("A\x{306}", _pack_U(0x1EA1, 0x306)), 0);
512ok($objVi->index("O\x{31B}", _pack_U(0x00F2, 0x31B)), 0);
513
514# 424
515