xref: /openbsd-src/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_et.t (revision f2da64fbbbf1b03f09f390ab01267c93dfd77c4c)
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..61\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 $objEt = Unicode::Collate::Locale->
37    new(locale => 'ET', normalization => undef);
38
39ok($objEt->getlocale, 'et');
40
41$objEt->change(level => 1);
42
43ok($objEt->lt("s", "s\x{30C}"));
44ok($objEt->gt("z", "s\x{30C}"));
45ok($objEt->lt("z", "z\x{30C}"));
46ok($objEt->gt("t", "z\x{30C}"));
47ok($objEt->eq("v", "w"));
48ok($objEt->lt("w", "o\x{303}"));
49ok($objEt->lt("o\x{303}", "a\x{308}"));
50ok($objEt->lt("a\x{308}", "o\x{308}"));
51ok($objEt->lt("o\x{308}", "u\x{308}"));
52ok($objEt->lt("u\x{308}", "x"));
53
54# 12
55
56$objEt->change(level => 2);
57
58ok($objEt->lt("v", "w"));
59ok($objEt->eq("s\x{30C}", "S\x{30C}"));
60ok($objEt->eq("z", "Z"));
61ok($objEt->eq("z\x{30C}", "Z\x{30C}"));
62ok($objEt->eq("w", "W"));
63ok($objEt->eq("o\x{303}", "O\x{303}"));
64ok($objEt->eq("a\x{308}", "A\x{308}"));
65ok($objEt->eq("o\x{308}", "O\x{308}"));
66ok($objEt->eq("u\x{308}", "U\x{308}"));
67
68# 21
69
70$objEt->change(level => 3);
71
72ok($objEt->lt("s\x{30C}", "S\x{30C}"));
73ok($objEt->lt("z", "Z"));
74ok($objEt->lt("z\x{30C}", "Z\x{30C}"));
75ok($objEt->lt("w", "W"));
76ok($objEt->lt("o\x{303}", "O\x{303}"));
77ok($objEt->lt("a\x{308}", "A\x{308}"));
78ok($objEt->lt("o\x{308}", "O\x{308}"));
79ok($objEt->lt("u\x{308}", "U\x{308}"));
80
81# 29
82
83ok($objEt->eq("s\x{30C}", "\x{161}"));
84ok($objEt->eq("S\x{30C}", "\x{160}"));
85ok($objEt->eq("z\x{30C}", "\x{17E}"));
86ok($objEt->eq("Z\x{30C}", "\x{17D}"));
87ok($objEt->eq("o\x{303}", pack('U', 0xF5)));
88ok($objEt->eq("O\x{303}", pack('U', 0xD5)));
89ok($objEt->eq("a\x{308}", pack('U', 0xE4)));
90ok($objEt->eq("A\x{308}", pack('U', 0xC4)));
91ok($objEt->eq("o\x{308}", pack('U', 0xF6)));
92ok($objEt->eq("O\x{308}", pack('U', 0xD6)));
93ok($objEt->eq("u\x{308}", pack('U', 0xFC)));
94ok($objEt->eq("U\x{308}", pack('U', 0xDC)));
95
96# 41
97
98ok($objEt->eq("o\x{303}\x{301}","\x{1E4D}"));
99ok($objEt->eq("O\x{303}\x{301}","\x{1E4C}"));
100ok($objEt->eq("o\x{303}\x{304}", "\x{22D}"));
101ok($objEt->eq("O\x{303}\x{304}", "\x{22C}"));
102ok($objEt->eq("o\x{303}\x{308}","\x{1E4F}"));
103ok($objEt->eq("O\x{303}\x{308}","\x{1E4E}"));
104ok($objEt->eq("o\x{303}\x{31B}","\x{1EE1}"));
105ok($objEt->eq("O\x{303}\x{31B}","\x{1EE0}"));
106ok($objEt->eq("a\x{308}\x{304}", "\x{1DF}"));
107ok($objEt->eq("A\x{308}\x{304}", "\x{1DE}"));
108ok($objEt->eq("o\x{308}\x{304}", "\x{22B}"));
109ok($objEt->eq("O\x{308}\x{304}", "\x{22A}"));
110ok($objEt->eq("u\x{308}\x{300}", "\x{1DC}"));
111ok($objEt->eq("U\x{308}\x{300}", "\x{1DB}"));
112ok($objEt->eq("u\x{308}\x{301}", "\x{1D8}"));
113ok($objEt->eq("U\x{308}\x{301}", "\x{1D7}"));
114ok($objEt->eq("u\x{308}\x{304}", "\x{1D6}"));
115ok($objEt->eq("U\x{308}\x{304}", "\x{1D5}"));
116ok($objEt->eq("u\x{308}\x{30C}", "\x{1DA}"));
117ok($objEt->eq("U\x{308}\x{30C}", "\x{1D9}"));
118
119# 61
120