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..53\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 $objHa = Unicode::Collate::Locale->
32    new(locale => 'HA', normalization => undef);
33
34ok($objHa->getlocale, 'ha');
35
36$objHa->change(level => 1);
37
38ok($objHa->lt("b", "\x{253}"));
39ok($objHa->gt("c", "\x{253}"));
40ok($objHa->lt("d", "\x{257}"));
41ok($objHa->gt("e", "\x{257}"));
42ok($objHa->lt("k", "\x{199}"));
43ok($objHa->gt("l", "\x{199}"));
44ok($objHa->lt("s", "sh"));
45ok($objHa->lt("sz","sh"));
46ok($objHa->gt("t", "sh"));
47ok($objHa->lt("t", "ts"));
48ok($objHa->lt("tz","ts"));
49ok($objHa->gt("u", "ts"));
50ok($objHa->lt("y", "\x{1B4}"));
51ok($objHa->gt("z", "\x{1B4}"));
52
53# 16
54
55$objHa->change(level => 2);
56
57ok($objHa->eq("\x{253}", "\x{181}"));
58ok($objHa->eq("\x{257}", "\x{18A}"));
59ok($objHa->eq("\x{199}", "\x{198}"));
60ok($objHa->eq("sh", "Sh"));
61ok($objHa->eq("Sh", "SH"));
62ok($objHa->eq("ts", "Ts"));
63ok($objHa->eq("Ts", "TS"));
64ok($objHa->eq("'y", "'Y"));
65ok($objHa->eq("\x{1B4}", "\x{1B3}"));
66
67ok($objHa->eq("\x{1B4}", "\x{2BC}y"));
68ok($objHa->eq("\x{2BC}y","'y"));
69ok($objHa->eq("'y",      "\x{1B3}"));
70ok($objHa->eq("\x{1B3}", "\x{2BC}Y"));
71ok($objHa->eq("\x{2BC}Y","'Y"));
72ok($objHa->eq("'Y",      "\x{1B4}"));
73
74# 31
75
76$objHa->change(level => 3);
77
78ok($objHa->lt("\x{253}", "\x{181}"));
79ok($objHa->lt("\x{257}", "\x{18A}"));
80ok($objHa->lt("\x{199}", "\x{198}"));
81ok($objHa->lt("sh", "Sh"));
82ok($objHa->lt("Sh", "SH"));
83ok($objHa->lt("ts", "Ts"));
84ok($objHa->lt("Ts", "TS"));
85ok($objHa->lt("'y", "'Y"));
86ok($objHa->lt("\x{1B4}", "\x{1B3}"));
87
88ok($objHa->lt("\x{1B4}", "\x{2BC}y"));
89ok($objHa->lt("\x{2BC}y","'y"));
90ok($objHa->lt("'y",      "\x{1B3}"));
91ok($objHa->lt("\x{1B3}", "\x{2BC}Y"));
92ok($objHa->lt("\x{2BC}Y","'Y"));
93ok($objHa->gt("'Y",      "\x{1B4}"));
94
95# 46
96
97$objHa->change(upper_before_lower => 1);
98
99ok($objHa->gt("\x{1B4}", "\x{1B3}"));
100ok($objHa->lt("\x{1B4}", "\x{2BC}y"));
101ok($objHa->lt("\x{2BC}y","'y"));
102ok($objHa->gt("'y",      "\x{1B3}"));
103ok($objHa->lt("\x{1B3}", "\x{2BC}Y"));
104ok($objHa->lt("\x{2BC}Y","'Y"));
105ok($objHa->lt("'Y",      "\x{1B4}"));
106
107# 53
108