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..74\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 $objCy = Unicode::Collate::Locale->
32    new(locale => 'CY', normalization => undef);
33
34ok($objCy->getlocale, 'cy');
35
36$objCy->change(level => 1);
37
38ok($objCy->lt("c", "ch"));
39ok($objCy->lt("cz","ch"));
40ok($objCy->gt("d", "ch"));
41ok($objCy->lt("d", "dd"));
42ok($objCy->lt("dz","dd"));
43ok($objCy->gt("e", "dd"));
44ok($objCy->lt("f", "ff"));
45ok($objCy->lt("fz","ff"));
46ok($objCy->gt("g", "ff"));
47ok($objCy->lt("g", "ng"));
48ok($objCy->lt("gz","ng"));
49ok($objCy->gt("h", "ng"));
50ok($objCy->lt("l", "ll"));
51ok($objCy->lt("lz","ll"));
52ok($objCy->gt("m", "ll"));
53ok($objCy->lt("p", "ph"));
54ok($objCy->lt("pz","ph"));
55ok($objCy->gt("q", "ph"));
56ok($objCy->lt("r", "rh"));
57ok($objCy->lt("rz","rh"));
58ok($objCy->gt("s", "rh"));
59ok($objCy->lt("t", "th"));
60ok($objCy->lt("tz","th"));
61ok($objCy->gt("u", "th"));
62
63# 26
64
65$objCy->change(level => 2);
66
67ok($objCy->eq("ch", "Ch"));
68ok($objCy->eq("Ch", "CH"));
69ok($objCy->eq("dd", "Dd"));
70ok($objCy->eq("Dd", "DD"));
71ok($objCy->eq("ff", "Ff"));
72ok($objCy->eq("Ff", "FF"));
73ok($objCy->eq("ng", "Ng"));
74ok($objCy->eq("Ng", "NG"));
75ok($objCy->eq("ll", "Ll"));
76ok($objCy->eq("Ll", "LL"));
77ok($objCy->eq("ph", "Ph"));
78ok($objCy->eq("Ph", "PH"));
79ok($objCy->eq("rh", "Rh"));
80ok($objCy->eq("Rh", "RH"));
81ok($objCy->eq("th", "Th"));
82ok($objCy->eq("Th", "TH"));
83
84# 42
85
86$objCy->change(level => 3);
87
88ok($objCy->lt("ch", "Ch"));
89ok($objCy->lt("Ch", "CH"));
90ok($objCy->lt("dd", "Dd"));
91ok($objCy->lt("Dd", "DD"));
92ok($objCy->lt("ff", "Ff"));
93ok($objCy->lt("Ff", "FF"));
94ok($objCy->lt("ng", "Ng"));
95ok($objCy->lt("Ng", "NG"));
96ok($objCy->lt("ll", "Ll"));
97ok($objCy->lt("Ll", "LL"));
98ok($objCy->lt("ph", "Ph"));
99ok($objCy->lt("Ph", "PH"));
100ok($objCy->lt("rh", "Rh"));
101ok($objCy->lt("Rh", "RH"));
102ok($objCy->lt("th", "Th"));
103ok($objCy->lt("Th", "TH"));
104
105# 58
106
107$objCy->change(upper_before_lower => 1);
108
109ok($objCy->gt("ch", "Ch"));
110ok($objCy->gt("Ch", "CH"));
111ok($objCy->gt("dd", "Dd"));
112ok($objCy->gt("Dd", "DD"));
113ok($objCy->gt("ff", "Ff"));
114ok($objCy->gt("Ff", "FF"));
115ok($objCy->gt("ng", "Ng"));
116ok($objCy->gt("Ng", "NG"));
117ok($objCy->gt("ll", "Ll"));
118ok($objCy->gt("Ll", "LL"));
119ok($objCy->gt("ph", "Ph"));
120ok($objCy->gt("Ph", "PH"));
121ok($objCy->gt("rh", "Rh"));
122ok($objCy->gt("Rh", "RH"));
123ok($objCy->gt("th", "Th"));
124ok($objCy->gt("Th", "TH"));
125
126# 74
127