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..41\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 $objPa = Unicode::Collate::Locale->
37    new(locale => 'PA', normalization => undef);
38
39my $default = Unicode::Collate::Locale->
40    new(normalization => undef);
41
42ok($objPa->getlocale, 'pa');
43ok($default->getlocale, 'default');
44
45$objPa->change(level => 1);
46
47ok($objPa->lt("\x{A5C}", "\x{A4D}"));
48ok($objPa->lt("\x{A4D}", "\x{A3E}"));
49
50# 5
51
52# RRA and Vowel Signs
53for my $o ($objPa, $default) {
54  ok($o->lt("\x{A5C}", "\x{A3E}"));
55  ok($o->lt("\x{A3E}", "\x{A3F}"));
56  ok($o->lt("\x{A3F}", "\x{A40}"));
57  ok($o->lt("\x{A40}", "\x{A41}"));
58  ok($o->lt("\x{A41}", "\x{A42}"));
59  ok($o->lt("\x{A42}", "\x{A47}"));
60  ok($o->lt("\x{A47}", "\x{A48}"));
61  ok($o->lt("\x{A48}", "\x{A4B}"));
62  ok($o->lt("\x{A4B}", "\x{A4C}"));
63}
64
65# 23
66
67ok($default->lt("\x{A4C}", "\x{A4D}"));
68
69# 24
70
71ok($objPa->eq("\x{A03}", ""));
72ok($objPa->eq("\x{A03}", "\x{A71}"));
73ok($objPa->eq("\x{A71}", "\x{A70}"));
74ok($objPa->eq("\x{A70}", "\x{A02}"));
75ok($objPa->eq("\x{A02}", "\x{A01}"));
76ok($objPa->eq("\x{A01}", "\x{A3C}"));
77
78# 30
79
80$objPa->change(level => 2);
81
82ok($objPa->lt("\x{A03}", "\x{A71}"));
83ok($objPa->lt("\x{A71}", "\x{A70}"));
84ok($objPa->lt("\x{A70}", "\x{A02}"));
85ok($objPa->lt("\x{A02}", "\x{A01}"));
86ok($objPa->lt("\x{A01}", "\x{A3C}"));
87
88# 35
89
90$objPa->change(level => 3);
91
92ok($objPa->eq("\x{A33}", "\x{A32}\x{A3C}"));
93ok($objPa->eq("\x{A36}", "\x{A38}\x{A3C}"));
94ok($objPa->eq("\x{A59}", "\x{A16}\x{A3C}"));
95ok($objPa->eq("\x{A5A}", "\x{A17}\x{A3C}"));
96ok($objPa->eq("\x{A5B}", "\x{A1C}\x{A3C}"));
97ok($objPa->eq("\x{A5E}", "\x{A2B}\x{A3C}"));
98
99# 41
100