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..37\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 $objLkt = Unicode::Collate::Locale->
32    new(locale => 'LKT', normalization => undef);
33
34ok($objLkt->getlocale, 'lkt');
35
36$objLkt->change(level => 1);
37
38ok($objLkt->lt("c", "c\x{30C}"));
39ok($objLkt->lt("cz","c\x{30C}"));
40ok($objLkt->gt("d", "c\x{30C}"));
41ok($objLkt->lt("g", "g\x{30C}"));
42ok($objLkt->lt("gz","g\x{30C}"));
43ok($objLkt->gt("h", "g\x{30C}"));
44ok($objLkt->lt("h", "h\x{30C}"));
45ok($objLkt->lt("hz","h\x{30C}"));
46ok($objLkt->gt("i", "h\x{30C}"));
47ok($objLkt->lt("s", "s\x{30C}"));
48ok($objLkt->lt("sz","s\x{30C}"));
49ok($objLkt->gt("t", "s\x{30C}"));
50ok($objLkt->lt("z", "z\x{30C}"));
51ok($objLkt->lt("zz", "z\x{30C}"));
52ok($objLkt->lt("z\x{30C}", "\x{292}")); # U+0292 EZH
53
54# 17
55
56$objLkt->change(level => 2);
57
58ok($objLkt->eq("c\x{30C}", "C\x{30C}"));
59ok($objLkt->eq("g\x{30C}", "G\x{30C}"));
60ok($objLkt->eq("h\x{30C}", "H\x{30C}"));
61ok($objLkt->eq("s\x{30C}", "S\x{30C}"));
62ok($objLkt->eq("z\x{30C}", "Z\x{30C}"));
63
64# 22
65
66$objLkt->change(level => 3);
67
68ok($objLkt->lt("c\x{30C}", "C\x{30C}"));
69ok($objLkt->lt("g\x{30C}", "G\x{30C}"));
70ok($objLkt->lt("h\x{30C}", "H\x{30C}"));
71ok($objLkt->lt("s\x{30C}", "S\x{30C}"));
72ok($objLkt->lt("z\x{30C}", "Z\x{30C}"));
73
74# 27
75
76ok($objLkt->eq("c\x{30C}", "\x{10D}"));
77ok($objLkt->eq("C\x{30C}", "\x{10C}"));
78ok($objLkt->eq("g\x{30C}", "\x{1E7}"));
79ok($objLkt->eq("G\x{30C}", "\x{1E6}"));
80ok($objLkt->eq("h\x{30C}", "\x{21F}"));
81ok($objLkt->eq("H\x{30C}", "\x{21E}"));
82ok($objLkt->eq("s\x{30C}", "\x{161}"));
83ok($objLkt->eq("S\x{30C}", "\x{160}"));
84ok($objLkt->eq("z\x{30C}", "\x{17E}"));
85ok($objLkt->eq("Z\x{30C}", "\x{17D}"));
86
87# 37
88