1
2BEGIN {
3    unless ("A" eq pack('U', 0x41)) {
4	print "1..0 # Unicode::Collate " .
5	    "cannot stringify a Unicode code point\n";
6	exit 0;
7    }
8    if ($ENV{PERL_CORE}) {
9	chdir('t') if -d 't';
10	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
11    }
12}
13
14use strict;
15use warnings;
16BEGIN { $| = 1; print "1..33\n"; }
17my $count = 0;
18sub ok ($;$) {
19    my $p = my $r = shift;
20    if (@_) {
21	my $x = shift;
22	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
23    }
24    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
25}
26
27use Unicode::Collate::Locale;
28
29ok(1);
30
31#########################
32
33my $objYo = Unicode::Collate::Locale->
34    new(locale => 'YO', normalization => undef);
35
36ok($objYo->getlocale, 'yo');
37
38$objYo->change(level => 1);
39
40ok($objYo->lt("e", "e\x{323}"));
41ok($objYo->gt("f", "e\x{323}"));
42ok($objYo->lt("g", "gb"));
43ok($objYo->lt("gz","gb"));
44ok($objYo->gt("h", "gb"));
45ok($objYo->lt("o", "o\x{323}"));
46ok($objYo->gt("p", "o\x{323}"));
47ok($objYo->lt("s", "s\x{323}"));
48ok($objYo->gt("t", "s\x{323}"));
49
50# 11
51
52$objYo->change(level => 2);
53
54ok($objYo->eq("e\x{323}", "E\x{323}"));
55ok($objYo->eq("gb", "Gb"));
56ok($objYo->eq("Gb", "GB"));
57ok($objYo->eq("o\x{323}", "O\x{323}"));
58ok($objYo->eq("s\x{323}", "S\x{323}"));
59
60# 16
61
62$objYo->change(level => 3);
63
64ok($objYo->lt("e\x{323}", "E\x{323}"));
65ok($objYo->lt("gb", "Gb"));
66ok($objYo->lt("Gb", "GB"));
67ok($objYo->lt("o\x{323}", "O\x{323}"));
68ok($objYo->lt("s\x{323}", "S\x{323}"));
69
70# 21
71
72ok($objYo->eq("e\x{323}", "\x{1EB9}"));
73ok($objYo->eq("E\x{323}", "\x{1EB8}"));
74ok($objYo->eq("o\x{323}", "\x{1ECD}"));
75ok($objYo->eq("O\x{323}", "\x{1ECC}"));
76ok($objYo->eq("s\x{323}", "\x{1E63}"));
77ok($objYo->eq("S\x{323}", "\x{1E62}"));
78
79ok($objYo->eq("e\x{323}\x{302}", "\x{1EC7}"));
80ok($objYo->eq("E\x{323}\x{302}", "\x{1EC6}"));
81ok($objYo->eq("o\x{323}\x{302}", "\x{1ED9}"));
82ok($objYo->eq("O\x{323}\x{302}", "\x{1ED8}"));
83ok($objYo->eq("o\x{323}\x{31B}", "\x{1EE3}"));
84ok($objYo->eq("O\x{323}\x{31B}", "\x{1EE2}"));
85
86# 33
87