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..86\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 $objAz = Unicode::Collate::Locale->
37    new(locale => 'AZ', normalization => undef);
38
39ok($objAz->getlocale, 'az');
40
41$objAz->change(level => 1);
42
43ok($objAz->lt("c", "c\x{327}"));
44ok($objAz->lt("cz","c\x{327}"));
45ok($objAz->gt("d", "c\x{327}"));
46ok($objAz->lt("g", "g\x{306}"));
47ok($objAz->lt("gz","g\x{306}"));
48ok($objAz->gt("h", "g\x{306}"));
49ok($objAz->lt("h", "I"));
50ok($objAz->lt("hz","I"));
51ok($objAz->lt("I", "i"));
52ok($objAz->lt("Iz","i"));
53ok($objAz->gt("j", "i"));
54ok($objAz->lt("o", "o\x{308}"));
55ok($objAz->lt("oz","o\x{308}"));
56ok($objAz->gt("p", "o\x{308}"));
57ok($objAz->lt("s", "s\x{327}"));
58ok($objAz->lt("sz","s\x{327}"));
59ok($objAz->gt("t", "s\x{327}"));
60ok($objAz->lt("u", "u\x{308}"));
61ok($objAz->lt("uz","u\x{308}"));
62ok($objAz->gt("v", "u\x{308}"));
63
64# 22
65
66ok($objAz->lt("k", "q"));
67ok($objAz->lt("kz","q"));
68ok($objAz->gt("l", "q"));
69ok($objAz->lt("e", "\x{259}"));
70ok($objAz->lt("ez","\x{259}"));
71ok($objAz->gt("f", "\x{259}"));
72ok($objAz->lt("h", "x"));
73ok($objAz->lt("hz","x"));
74ok($objAz->lt("x", "I"));
75ok($objAz->lt("xz","I"));
76ok($objAz->lt("x", "i"));
77ok($objAz->lt("xz","i"));
78ok($objAz->lt("z", "w"));
79ok($objAz->lt("zz","w"));
80
81# 36
82
83$objAz->change(level => 2);
84
85ok($objAz->eq("c\x{327}", "C\x{327}"));
86ok($objAz->eq("g\x{306}", "G\x{306}"));
87ok($objAz->eq("\x{131}", "I"));
88ok($objAz->eq("\x{130}", "i"));
89ok($objAz->eq("o\x{308}", "O\x{308}"));
90ok($objAz->eq("s\x{327}", "S\x{327}"));
91ok($objAz->eq("u\x{308}", "U\x{308}"));
92ok($objAz->eq("q", "Q"));
93ok($objAz->eq("\x{259}", "\x{18F}"));
94ok($objAz->eq("x", "X"));
95ok($objAz->eq("z", "Z"));
96
97# 47
98
99$objAz->change(level => 3);
100
101ok($objAz->lt("c\x{327}", "C\x{327}"));
102ok($objAz->lt("g\x{306}", "G\x{306}"));
103ok($objAz->lt("\x{131}", "I"));
104ok($objAz->gt("\x{130}", "i"));
105ok($objAz->lt("o\x{308}", "O\x{308}"));
106ok($objAz->lt("s\x{327}", "S\x{327}"));
107ok($objAz->lt("u\x{308}", "U\x{308}"));
108ok($objAz->lt("q", "Q"));
109ok($objAz->lt("\x{259}", "\x{18F}"));
110ok($objAz->lt("x", "X"));
111ok($objAz->lt("z", "Z"));
112
113# 58
114
115ok($objAz->eq("c\x{327}", pack('U', 0xE7)));
116ok($objAz->eq("C\x{327}", pack('U', 0xC7)));
117ok($objAz->eq("g\x{306}", "\x{11F}"));
118ok($objAz->eq("G\x{306}", "\x{11E}"));
119ok($objAz->eq("I\x{300}", pack('U', 0xCC)));
120ok($objAz->eq("I\x{301}", pack('U', 0xCD)));
121ok($objAz->eq("I\x{302}", pack('U', 0xCE)));
122ok($objAz->eq("I\x{308}", pack('U', 0xCF)));
123ok($objAz->eq("I\x{304}", "\x{12A}"));
124ok($objAz->eq("I\x{306}", "\x{12C}"));
125ok($objAz->eq("I\x{328}", "\x{12E}"));
126ok($objAz->eq("I\x{307}", "\x{130}"));
127
128# 70
129
130ok($objAz->eq("o\x{308}", pack('U', 0xF6)));
131ok($objAz->eq("O\x{308}", pack('U', 0xD6)));
132ok($objAz->eq("o\x{308}\x{304}", "\x{22B}"));
133ok($objAz->eq("O\x{308}\x{304}", "\x{22A}"));
134ok($objAz->eq("s\x{327}", "\x{15F}"));
135ok($objAz->eq("S\x{327}", "\x{15E}"));
136ok($objAz->eq("u\x{308}", pack('U', 0xFC)));
137ok($objAz->eq("U\x{308}", pack('U', 0xDC)));
138ok($objAz->eq("u\x{308}\x{300}", "\x{1DC}"));
139ok($objAz->eq("U\x{308}\x{300}", "\x{1DB}"));
140ok($objAz->eq("u\x{308}\x{301}", "\x{1D8}"));
141ok($objAz->eq("U\x{308}\x{301}", "\x{1D7}"));
142ok($objAz->eq("u\x{308}\x{304}", "\x{1D6}"));
143ok($objAz->eq("U\x{308}\x{304}", "\x{1D5}"));
144ok($objAz->eq("u\x{308}\x{30C}", "\x{1DA}"));
145ok($objAz->eq("U\x{308}\x{30C}", "\x{1D9}"));
146
147# 86
148