3 unless ("A" eq pack('U', 0x41)) {
4 print "1..0 # Unicode::Collate " .
5 "cannot stringify a Unicode code point\n";
10 @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
15 BEGIN { plan tests => 101 };
19 use Unicode::Collate::Locale;
23 #########################
25 my $eth = pack 'U', 0xF0;
26 my $ETH = pack 'U', 0xD0;
27 my $thrn = pack 'U', 0xFE;
28 my $THRN = pack 'U', 0xDE;
29 my $uuml = pack 'U', 0xFC;
30 my $Uuml = pack 'U', 0xDC;
31 my $ae = pack 'U', 0xE6;
32 my $AE = pack 'U', 0xC6;
33 my $auml = pack 'U', 0xE4;
34 my $Auml = pack 'U', 0xC4;
35 my $ostk = pack 'U', 0xF8;
36 my $Ostk = pack 'U', 0xD8;
37 my $ouml = pack 'U', 0xF6;
38 my $Ouml = pack 'U', 0xD6;
39 my $arng = pack 'U', 0xE5;
40 my $Arng = pack 'U', 0xC5;
42 my $objKl = Unicode::Collate::Locale->
43 new(locale => 'KL', normalization => undef);
45 ok($objKl->getlocale, 'kl');
47 $objKl->change(level => 1);
49 ok($objKl->lt('z', $ae));
50 ok($objKl->lt($ae, $ostk));
51 ok($objKl->lt($ostk, $arng));
52 ok($objKl->lt($arng, "\x{292}"));
56 ok($objKl->eq('d', "\x{111}"));
57 ok($objKl->eq("\x{111}", $eth));
58 ok($objKl->eq('q', "\x{138}"));
59 ok($objKl->eq('q', "K'"));
60 ok($objKl->eq('y', $uuml));
61 ok($objKl->eq($uuml, "\x{171}"));
62 ok($objKl->eq($ae, $auml));
63 ok($objKl->eq($auml, "\x{119}"));
64 ok($objKl->eq($ostk, $ouml));
65 ok($objKl->eq($ouml, "\x{151}"));
66 ok($objKl->eq("\x{151}", "\x{153}"));
70 $objKl->change(level => 2);
72 ok($objKl->lt('d', "\x{111}"));
73 ok($objKl->lt("\x{111}", $eth));
74 ok($objKl->lt('q', "\x{138}"));
75 ok($objKl->lt('q', "K'"));
76 ok($objKl->lt('y', $uuml));
77 ok($objKl->lt($uuml, "\x{171}"));
78 ok($objKl->lt($ae, $auml));
79 ok($objKl->lt($auml, "\x{119}"));
80 ok($objKl->lt($ostk, $ouml));
81 ok($objKl->lt($ouml, "\x{151}"));
82 ok($objKl->lt("\x{151}", "\x{153}"));
86 ok($objKl->eq("\x{111}", "\x{110}"));
87 ok($objKl->eq($eth, $ETH));
88 ok($objKl->eq("\x{138}", "K'"));
89 ok($objKl->eq('th', $thrn));
90 ok($objKl->eq($thrn, 'TH'));
91 ok($objKl->eq('TH', $THRN));
92 ok($objKl->eq($uuml, $Uuml));
93 ok($objKl->eq("\x{171}", "\x{170}"));
94 ok($objKl->eq($ae, $AE));
95 ok($objKl->eq($AE, "\x{1D2D}"));
96 ok($objKl->eq($auml, $Auml));
97 ok($objKl->eq("\x{119}", "\x{118}"));
98 ok($objKl->eq($ostk, $Ostk));
99 ok($objKl->eq($ouml, $Ouml));
100 ok($objKl->eq("\x{151}", "\x{150}"));
101 ok($objKl->eq("\x{153}", "\x{152}"));
102 ok($objKl->eq($arng, $Arng));
106 $objKl->change(level => 3);
108 ok($objKl->lt("\x{111}", "\x{110}"));
109 ok($objKl->lt($eth, $ETH));
110 ok($objKl->lt("\x{138}", "K'"));
111 ok($objKl->lt('th', $thrn));
112 ok($objKl->lt($thrn, 'TH'));
113 ok($objKl->lt('TH', $THRN));
114 ok($objKl->lt($uuml, $Uuml));
115 ok($objKl->lt("\x{171}", "\x{170}"));
116 ok($objKl->lt($ae, $AE));
117 ok($objKl->lt($AE, "\x{1D2D}"));
118 ok($objKl->lt($auml, $Auml));
119 ok($objKl->lt("\x{119}", "\x{118}"));
120 ok($objKl->lt($ostk, $Ostk));
121 ok($objKl->lt($ouml, $Ouml));
122 ok($objKl->lt("\x{151}", "\x{150}"));
123 ok($objKl->lt("\x{153}", "\x{152}"));
124 ok($objKl->lt($arng, $Arng));
128 ok($objKl->eq("d\x{335}", "\x{111}"));
129 ok($objKl->eq("D\x{335}", "\x{110}"));
130 ok($objKl->eq("u\x{308}", $uuml));
131 ok($objKl->eq("U\x{308}", $Uuml));
132 ok($objKl->eq("u\x{30B}", "\x{171}"));
133 ok($objKl->eq("U\x{30B}", "\x{170}"));
134 ok($objKl->eq("a\x{308}", $auml));
135 ok($objKl->eq("A\x{308}", $Auml));
136 ok($objKl->eq("e\x{328}", "\x{119}"));
137 ok($objKl->eq("E\x{328}", "\x{118}"));
138 ok($objKl->eq("o\x{338}", $ostk));
139 ok($objKl->eq("O\x{338}", $Ostk));
140 ok($objKl->eq("o\x{308}", $ouml));
141 ok($objKl->eq("O\x{308}", $Ouml));
142 ok($objKl->eq("o\x{30B}", "\x{151}"));
143 ok($objKl->eq("O\x{30B}", "\x{150}"));
144 ok($objKl->eq("a\x{30A}", $arng));
145 ok($objKl->eq("A\x{30A}", $Arng));
149 ok($objKl->eq("u\x{308}\x{300}", "\x{1DC}"));
150 ok($objKl->eq("U\x{308}\x{300}", "\x{1DB}"));
151 ok($objKl->eq("u\x{308}\x{301}", "\x{1D8}"));
152 ok($objKl->eq("U\x{308}\x{301}", "\x{1D7}"));
153 ok($objKl->eq("u\x{308}\x{304}", "\x{1D6}"));
154 ok($objKl->eq("U\x{308}\x{304}", "\x{1D5}"));
155 ok($objKl->eq("u\x{308}\x{30C}", "\x{1DA}"));
156 ok($objKl->eq("U\x{308}\x{30C}", "\x{1D9}"));
157 ok($objKl->eq("\x{1FD}", "$ae\x{301}"));
158 ok($objKl->eq("\x{1FC}", "$AE\x{301}"));
159 ok($objKl->eq("\x{1E3}", "$ae\x{304}"));
160 ok($objKl->eq("\x{1E2}", "$AE\x{304}"));
161 ok($objKl->eq("a\x{308}\x{304}", "\x{1DF}"));
162 ok($objKl->eq("A\x{308}\x{304}", "\x{1DE}"));
163 ok($objKl->eq("o\x{338}\x{301}", "\x{1FF}"));
164 ok($objKl->eq("O\x{338}\x{301}", "\x{1FE}"));
165 ok($objKl->eq("o\x{308}\x{304}", "\x{22B}"));
166 ok($objKl->eq("O\x{308}\x{304}", "\x{22A}"));
167 ok($objKl->eq("A\x{30A}", "\x{212B}"));
168 ok($objKl->eq("a\x{30A}\x{301}", "\x{1FB}"));
169 ok($objKl->eq("A\x{30A}\x{301}", "\x{1FA}"));