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..57\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 $objHaw = Unicode::Collate::Locale->
32    new(locale => 'HAW', normalization => undef);
33
34ok($objHaw->getlocale, 'haw');
35
36$objHaw->change(level => 1);
37
38ok($objHaw->lt('a', 'e'));
39ok($objHaw->lt('e', 'i'));
40ok($objHaw->lt('i', 'o'));
41ok($objHaw->lt('o', 'u'));
42ok($objHaw->lt('u', 'h'));
43ok($objHaw->lt('h', 'k'));
44ok($objHaw->lt('k', 'l'));
45ok($objHaw->lt('l', 'm'));
46ok($objHaw->lt('m', 'n'));
47ok($objHaw->lt('n', 'p'));
48ok($objHaw->lt('p', 'w'));
49ok($objHaw->lt('w', "\x{2BB}"));
50ok($objHaw->lt('b', "\x{2BB}"));
51
52# 15
53
54ok($objHaw->lt('u', 'b'));
55ok($objHaw->lt('b', 'h'));
56ok($objHaw->gt('x', "\x{2BB}"));
57
58ok($objHaw->lt('aw', 'e'));
59ok($objHaw->lt('ew', 'i'));
60ok($objHaw->lt('iw', 'o'));
61ok($objHaw->lt('ow', 'u'));
62ok($objHaw->lt('uw', 'h'));
63
64# 23
65
66$objHaw->change(level => 2);
67
68ok($objHaw->eq('a', 'A'));
69ok($objHaw->eq('e', 'E'));
70ok($objHaw->eq('i', 'I'));
71ok($objHaw->eq('o', 'O'));
72ok($objHaw->eq('u', 'U'));
73ok($objHaw->eq('h', 'H'));
74ok($objHaw->eq('k', 'K'));
75ok($objHaw->eq('l', 'L'));
76ok($objHaw->eq('m', 'M'));
77ok($objHaw->eq('n', 'N'));
78ok($objHaw->eq('p', 'P'));
79ok($objHaw->eq('w', 'W'));
80
81# 35
82
83$objHaw->change(level => 3);
84
85ok($objHaw->lt('a', 'A'));
86ok($objHaw->lt('e', 'E'));
87ok($objHaw->lt('i', 'I'));
88ok($objHaw->lt('o', 'O'));
89ok($objHaw->lt('u', 'U'));
90ok($objHaw->lt('h', 'H'));
91ok($objHaw->lt('k', 'K'));
92ok($objHaw->lt('l', 'L'));
93ok($objHaw->lt('m', 'M'));
94ok($objHaw->lt('n', 'N'));
95ok($objHaw->lt('p', 'P'));
96ok($objHaw->lt('w', 'W'));
97
98# 47
99
100ok($objHaw->eq("a\x{304}", "\x{101}"));
101ok($objHaw->eq("A\x{304}", "\x{100}"));
102ok($objHaw->eq("e\x{304}", "\x{113}"));
103ok($objHaw->eq("E\x{304}", "\x{112}"));
104ok($objHaw->eq("i\x{304}", "\x{12B}"));
105ok($objHaw->eq("I\x{304}", "\x{12A}"));
106ok($objHaw->eq("o\x{304}", "\x{14D}"));
107ok($objHaw->eq("O\x{304}", "\x{14C}"));
108ok($objHaw->eq("u\x{304}", "\x{16B}"));
109ok($objHaw->eq("U\x{304}", "\x{16A}"));
110
111# 57
112