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 => 95 };
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 $objNn = Unicode::Collate::Locale->
43 new(locale => 'NN', normalization => undef);
45 ok($objNn->getlocale, 'nn');
47 $objNn->change(level => 1);
49 ok($objNn->lt('z', $ae));
50 ok($objNn->lt($ae, $ostk));
51 ok($objNn->lt($ostk, $arng));
52 ok($objNn->lt($arng, "\x{292}"));
56 ok($objNn->eq('d', "\x{111}"));
57 ok($objNn->eq("\x{111}", $eth));
58 ok($objNn->eq('y', $uuml));
59 ok($objNn->eq($uuml, "\x{171}"));
60 ok($objNn->eq($ae, $auml));
61 ok($objNn->eq($auml, "\x{119}"));
62 ok($objNn->eq($ostk, $ouml));
63 ok($objNn->eq($ouml, "\x{151}"));
64 ok($objNn->eq("\x{151}", "\x{153}"));
68 $objNn->change(level => 2);
70 ok($objNn->lt('d', "\x{111}"));
71 ok($objNn->lt("\x{111}", $eth));
72 ok($objNn->lt('y', $uuml));
73 ok($objNn->lt($uuml, "\x{171}"));
74 ok($objNn->lt($ae, $auml));
75 ok($objNn->lt($auml, "\x{119}"));
76 ok($objNn->lt($ostk, $ouml));
77 ok($objNn->lt($ouml, "\x{151}"));
78 ok($objNn->lt("\x{151}", "\x{153}"));
82 ok($objNn->eq("\x{111}", "\x{110}"));
83 ok($objNn->eq($eth, $ETH));
84 ok($objNn->eq('th', $thrn));
85 ok($objNn->eq($thrn, 'TH'));
86 ok($objNn->eq('TH', $THRN));
87 ok($objNn->eq($uuml, $Uuml));
88 ok($objNn->eq("\x{171}", "\x{170}"));
89 ok($objNn->eq($ae, $AE));
90 ok($objNn->eq($AE, "\x{1D2D}"));
91 ok($objNn->eq($auml, $Auml));
92 ok($objNn->eq("\x{119}", "\x{118}"));
93 ok($objNn->eq($ostk, $Ostk));
94 ok($objNn->eq($ouml, $Ouml));
95 ok($objNn->eq("\x{151}", "\x{150}"));
96 ok($objNn->eq("\x{153}", "\x{152}"));
97 ok($objNn->eq($arng, $Arng));
101 $objNn->change(level => 3);
103 ok($objNn->lt("\x{111}", "\x{110}"));
104 ok($objNn->lt($eth, $ETH));
105 ok($objNn->lt('th', $thrn));
106 ok($objNn->lt($thrn, 'TH'));
107 ok($objNn->lt('TH', $THRN));
108 ok($objNn->lt($uuml, $Uuml));
109 ok($objNn->lt("\x{171}", "\x{170}"));
110 ok($objNn->lt($ae, $AE));
111 ok($objNn->lt($AE, "\x{1D2D}"));
112 ok($objNn->lt($auml, $Auml));
113 ok($objNn->lt("\x{119}", "\x{118}"));
114 ok($objNn->lt($ostk, $Ostk));
115 ok($objNn->lt($ouml, $Ouml));
116 ok($objNn->lt("\x{151}", "\x{150}"));
117 ok($objNn->lt("\x{153}", "\x{152}"));
118 ok($objNn->lt($arng, $Arng));
122 ok($objNn->eq("d\x{335}", "\x{111}"));
123 ok($objNn->eq("D\x{335}", "\x{110}"));
124 ok($objNn->eq("u\x{308}", $uuml));
125 ok($objNn->eq("U\x{308}", $Uuml));
126 ok($objNn->eq("u\x{30B}", "\x{171}"));
127 ok($objNn->eq("U\x{30B}", "\x{170}"));
128 ok($objNn->eq("a\x{308}", $auml));
129 ok($objNn->eq("A\x{308}", $Auml));
130 ok($objNn->eq("e\x{328}", "\x{119}"));
131 ok($objNn->eq("E\x{328}", "\x{118}"));
132 ok($objNn->eq("o\x{338}", $ostk));
133 ok($objNn->eq("O\x{338}", $Ostk));
134 ok($objNn->eq("o\x{308}", $ouml));
135 ok($objNn->eq("O\x{308}", $Ouml));
136 ok($objNn->eq("o\x{30B}", "\x{151}"));
137 ok($objNn->eq("O\x{30B}", "\x{150}"));
138 ok($objNn->eq("a\x{30A}", $arng));
139 ok($objNn->eq("A\x{30A}", $Arng));
143 ok($objNn->eq("u\x{308}\x{300}", "\x{1DC}"));
144 ok($objNn->eq("U\x{308}\x{300}", "\x{1DB}"));
145 ok($objNn->eq("u\x{308}\x{301}", "\x{1D8}"));
146 ok($objNn->eq("U\x{308}\x{301}", "\x{1D7}"));
147 ok($objNn->eq("u\x{308}\x{304}", "\x{1D6}"));
148 ok($objNn->eq("U\x{308}\x{304}", "\x{1D5}"));
149 ok($objNn->eq("u\x{308}\x{30C}", "\x{1DA}"));
150 ok($objNn->eq("U\x{308}\x{30C}", "\x{1D9}"));
151 ok($objNn->eq("\x{1FD}", "$ae\x{301}"));
152 ok($objNn->eq("\x{1FC}", "$AE\x{301}"));
153 ok($objNn->eq("\x{1E3}", "$ae\x{304}"));
154 ok($objNn->eq("\x{1E2}", "$AE\x{304}"));
155 ok($objNn->eq("a\x{308}\x{304}", "\x{1DF}"));
156 ok($objNn->eq("A\x{308}\x{304}", "\x{1DE}"));
157 ok($objNn->eq("o\x{338}\x{301}", "\x{1FF}"));
158 ok($objNn->eq("O\x{338}\x{301}", "\x{1FE}"));
159 ok($objNn->eq("o\x{308}\x{304}", "\x{22B}"));
160 ok($objNn->eq("O\x{308}\x{304}", "\x{22A}"));
161 ok($objNn->eq("A\x{30A}", "\x{212B}"));
162 ok($objNn->eq("a\x{30A}\x{301}", "\x{1FB}"));
163 ok($objNn->eq("A\x{30A}\x{301}", "\x{1FA}"));