1
2BEGIN {
3    unless ('A' eq pack('U', 0x41)) {
4	print "1..0 # Unicode::Collate cannot pack a Unicode code point\n";
5	exit 0;
6    }
7    unless (0x41 == unpack('U', 'A')) {
8	print "1..0 # Unicode::Collate cannot get a Unicode code point\n";
9	exit 0;
10    }
11    if ($ENV{PERL_CORE}) {
12	chdir('t') if -d 't';
13	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
14    }
15}
16
17use strict;
18use warnings;
19BEGIN { $| = 1; print "1..74\n"; }
20my $count = 0;
21sub ok ($;$) {
22    my $p = my $r = shift;
23    if (@_) {
24	my $x = shift;
25	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
26    }
27    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
28}
29
30use Unicode::Collate::Locale;
31
32ok(1);
33
34#########################
35
36my $objCy = Unicode::Collate::Locale->
37    new(locale => 'CY', normalization => undef);
38
39ok($objCy->getlocale, 'cy');
40
41$objCy->change(level => 1);
42
43ok($objCy->lt("c", "ch"));
44ok($objCy->lt("cz","ch"));
45ok($objCy->gt("d", "ch"));
46ok($objCy->lt("d", "dd"));
47ok($objCy->lt("dz","dd"));
48ok($objCy->gt("e", "dd"));
49ok($objCy->lt("f", "ff"));
50ok($objCy->lt("fz","ff"));
51ok($objCy->gt("g", "ff"));
52ok($objCy->lt("g", "ng"));
53ok($objCy->lt("gz","ng"));
54ok($objCy->gt("h", "ng"));
55ok($objCy->lt("l", "ll"));
56ok($objCy->lt("lz","ll"));
57ok($objCy->gt("m", "ll"));
58ok($objCy->lt("p", "ph"));
59ok($objCy->lt("pz","ph"));
60ok($objCy->gt("q", "ph"));
61ok($objCy->lt("r", "rh"));
62ok($objCy->lt("rz","rh"));
63ok($objCy->gt("s", "rh"));
64ok($objCy->lt("t", "th"));
65ok($objCy->lt("tz","th"));
66ok($objCy->gt("u", "th"));
67
68# 26
69
70$objCy->change(level => 2);
71
72ok($objCy->eq("ch", "Ch"));
73ok($objCy->eq("Ch", "CH"));
74ok($objCy->eq("dd", "Dd"));
75ok($objCy->eq("Dd", "DD"));
76ok($objCy->eq("ff", "Ff"));
77ok($objCy->eq("Ff", "FF"));
78ok($objCy->eq("ng", "Ng"));
79ok($objCy->eq("Ng", "NG"));
80ok($objCy->eq("ll", "Ll"));
81ok($objCy->eq("Ll", "LL"));
82ok($objCy->eq("ph", "Ph"));
83ok($objCy->eq("Ph", "PH"));
84ok($objCy->eq("rh", "Rh"));
85ok($objCy->eq("Rh", "RH"));
86ok($objCy->eq("th", "Th"));
87ok($objCy->eq("Th", "TH"));
88
89# 42
90
91$objCy->change(level => 3);
92
93ok($objCy->lt("ch", "Ch"));
94ok($objCy->lt("Ch", "CH"));
95ok($objCy->lt("dd", "Dd"));
96ok($objCy->lt("Dd", "DD"));
97ok($objCy->lt("ff", "Ff"));
98ok($objCy->lt("Ff", "FF"));
99ok($objCy->lt("ng", "Ng"));
100ok($objCy->lt("Ng", "NG"));
101ok($objCy->lt("ll", "Ll"));
102ok($objCy->lt("Ll", "LL"));
103ok($objCy->lt("ph", "Ph"));
104ok($objCy->lt("Ph", "PH"));
105ok($objCy->lt("rh", "Rh"));
106ok($objCy->lt("Rh", "RH"));
107ok($objCy->lt("th", "Th"));
108ok($objCy->lt("Th", "TH"));
109
110# 58
111
112$objCy->change(upper_before_lower => 1);
113
114ok($objCy->gt("ch", "Ch"));
115ok($objCy->gt("Ch", "CH"));
116ok($objCy->gt("dd", "Dd"));
117ok($objCy->gt("Dd", "DD"));
118ok($objCy->gt("ff", "Ff"));
119ok($objCy->gt("Ff", "FF"));
120ok($objCy->gt("ng", "Ng"));
121ok($objCy->gt("Ng", "NG"));
122ok($objCy->gt("ll", "Ll"));
123ok($objCy->gt("Ll", "LL"));
124ok($objCy->gt("ph", "Ph"));
125ok($objCy->gt("Ph", "PH"));
126ok($objCy->gt("rh", "Rh"));
127ok($objCy->gt("Rh", "RH"));
128ok($objCy->gt("th", "Th"));
129ok($objCy->gt("Th", "TH"));
130
131# 74
132