1
2BEGIN {
3    unless ("A" eq pack('U', 0x41)) {
4	print "1..0 # Unicode::Collate " .
5	    "cannot stringify a Unicode code point\n";
6	exit 0;
7    }
8    if ($ENV{PERL_CORE}) {
9	chdir('t') if -d 't';
10	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
11    }
12}
13
14use strict;
15use warnings;
16BEGIN { $| = 1; print "1..51\n"; }
17my $count = 0;
18sub ok ($;$) {
19    my $p = my $r = shift;
20    if (@_) {
21	my $x = shift;
22	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
23    }
24    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
25}
26
27use Unicode::Collate::Locale;
28
29ok(1);
30
31#########################
32
33my $objHa = Unicode::Collate::Locale->
34    new(locale => 'HA', normalization => undef);
35
36ok($objHa->getlocale, 'ha');
37
38$objHa->change(level => 1);
39
40ok($objHa->lt("b", "\x{253}"));
41ok($objHa->gt("c", "\x{253}"));
42ok($objHa->lt("d", "\x{257}"));
43ok($objHa->gt("e", "\x{257}"));
44ok($objHa->lt("k", "\x{199}"));
45ok($objHa->gt("l", "\x{199}"));
46ok($objHa->lt("s", "sh"));
47ok($objHa->gt("t", "sh"));
48ok($objHa->lt("t", "ts"));
49ok($objHa->gt("u", "ts"));
50ok($objHa->lt("y", "\x{1B4}"));
51ok($objHa->gt("z", "\x{1B4}"));
52
53# 14
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# 29
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# 44
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# 51
108