Commit | Line | Data |
---|---|---|
68adb2b0 CBW |
1 | |
2 | BEGIN { | |
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 | ||
14 | use Test; | |
15 | BEGIN { plan tests => 132 }; | |
16 | ||
6709de88 CBW |
17 | use strict; |
18 | use warnings; | |
19 | use Unicode::Collate::Locale; | |
20 | ||
68adb2b0 CBW |
21 | ok(1); |
22 | ||
23 | ######################### | |
6709de88 CBW |
24 | |
25 | my $objTo = Unicode::Collate::Locale-> | |
26 | new(locale => 'TO', normalization => undef); | |
27 | ||
6709de88 CBW |
28 | ok($objTo->getlocale, 'to'); |
29 | ||
30 | $objTo->change(level => 1); | |
31 | ||
32 | ok($objTo->lt("n", "ng")); | |
33 | ok($objTo->lt("nz","ng")); | |
34 | ok($objTo->gt("o", "ng")); | |
35 | ok($objTo->lt("z", "\x{2BB}")); | |
36 | ok($objTo->lt("z", "\x{2BD}")); | |
37 | ||
38 | # 7 | |
39 | ||
40 | ok($objTo->eq("a", "a\x{304}")); | |
41 | ok($objTo->eq("A", "A\x{304}")); | |
42 | ok($objTo->eq("e", "e\x{304}")); | |
43 | ok($objTo->eq("E", "E\x{304}")); | |
44 | ok($objTo->eq("i", "i\x{304}")); | |
45 | ok($objTo->eq("I", "I\x{304}")); | |
46 | ok($objTo->eq("o", "o\x{304}")); | |
47 | ok($objTo->eq("O", "O\x{304}")); | |
48 | ok($objTo->eq("u", "u\x{304}")); | |
49 | ok($objTo->eq("U", "U\x{304}")); | |
50 | ||
51 | # 17 | |
52 | ||
53 | $objTo->change(level => 2); | |
54 | ||
55 | ok($objTo->lt("a", "a\x{304}")); | |
56 | ok($objTo->lt("A", "A\x{304}")); | |
57 | ok($objTo->lt("e", "e\x{304}")); | |
58 | ok($objTo->lt("E", "E\x{304}")); | |
59 | ok($objTo->lt("i", "i\x{304}")); | |
60 | ok($objTo->lt("I", "I\x{304}")); | |
61 | ok($objTo->lt("o", "o\x{304}")); | |
62 | ok($objTo->lt("O", "O\x{304}")); | |
63 | ok($objTo->lt("u", "u\x{304}")); | |
64 | ok($objTo->lt("U", "U\x{304}")); | |
65 | ||
66 | # 27 | |
67 | ||
68 | ok($objTo->eq("ng", "Ng")); | |
69 | ok($objTo->eq("Ng", "NG")); | |
70 | ok($objTo->eq("NG", "\x{14B}")); | |
71 | ok($objTo->eq("\x{14B}", "\x{14A}")); | |
72 | ok($objTo->eq("\x{2BB}", "\x{2BD}")); | |
73 | ||
74 | ok($objTo->eq("a\x{304}", "A\x{304}")); | |
75 | ok($objTo->eq("a\x{301}", "A\x{301}")); | |
76 | ok($objTo->eq("e\x{304}", "E\x{304}")); | |
77 | ok($objTo->eq("e\x{301}", "E\x{301}")); | |
78 | ok($objTo->eq("i\x{304}", "I\x{304}")); | |
79 | ok($objTo->eq("i\x{301}", "I\x{301}")); | |
80 | ok($objTo->eq("o\x{304}", "O\x{304}")); | |
81 | ok($objTo->eq("o\x{301}", "O\x{301}")); | |
82 | ok($objTo->eq("u\x{304}", "U\x{304}")); | |
83 | ok($objTo->eq("u\x{301}", "U\x{301}")); | |
84 | ||
85 | ok($objTo->eq("a\x{304}", "a\x{301}")); | |
86 | ok($objTo->eq("A\x{304}", "A\x{301}")); | |
87 | ok($objTo->eq("e\x{304}", "e\x{301}")); | |
88 | ok($objTo->eq("E\x{304}", "E\x{301}")); | |
89 | ok($objTo->eq("i\x{304}", "i\x{301}")); | |
90 | ok($objTo->eq("I\x{304}", "I\x{301}")); | |
91 | ok($objTo->eq("o\x{304}", "o\x{301}")); | |
92 | ok($objTo->eq("O\x{304}", "O\x{301}")); | |
93 | ok($objTo->eq("u\x{304}", "u\x{301}")); | |
94 | ok($objTo->eq("U\x{304}", "U\x{301}")); | |
95 | ||
96 | # 52 | |
97 | ||
98 | $objTo->change(level => 3); | |
99 | ||
100 | ok($objTo->lt("ng", "Ng")); | |
101 | ok($objTo->lt("Ng", "NG")); | |
102 | ok($objTo->lt("NG", "\x{14B}")); | |
103 | ok($objTo->lt("\x{14B}", "\x{14A}")); | |
104 | ok($objTo->lt("\x{2BB}", "\x{2BD}")); | |
105 | ||
106 | ok($objTo->lt("a\x{304}", "A\x{304}")); | |
107 | ok($objTo->lt("a\x{301}", "A\x{301}")); | |
108 | ok($objTo->lt("e\x{304}", "E\x{304}")); | |
109 | ok($objTo->lt("e\x{301}", "E\x{301}")); | |
110 | ok($objTo->lt("i\x{304}", "I\x{304}")); | |
111 | ok($objTo->lt("i\x{301}", "I\x{301}")); | |
112 | ok($objTo->lt("o\x{304}", "O\x{304}")); | |
113 | ok($objTo->lt("o\x{301}", "O\x{301}")); | |
114 | ok($objTo->lt("u\x{304}", "U\x{304}")); | |
115 | ok($objTo->lt("u\x{301}", "U\x{301}")); | |
116 | ||
117 | ok($objTo->lt("a\x{304}", "a\x{301}")); | |
118 | ok($objTo->lt("A\x{304}", "A\x{301}")); | |
119 | ok($objTo->lt("e\x{304}", "e\x{301}")); | |
120 | ok($objTo->lt("E\x{304}", "E\x{301}")); | |
121 | ok($objTo->lt("i\x{304}", "i\x{301}")); | |
122 | ok($objTo->lt("I\x{304}", "I\x{301}")); | |
123 | ok($objTo->lt("o\x{304}", "o\x{301}")); | |
124 | ok($objTo->lt("O\x{304}", "O\x{301}")); | |
125 | ok($objTo->lt("u\x{304}", "u\x{301}")); | |
126 | ok($objTo->lt("U\x{304}", "U\x{301}")); | |
127 | ||
128 | # 77 | |
129 | ||
130 | ok($objTo->eq("a\x{304}", "\x{101}")); | |
131 | ok($objTo->eq("A\x{304}", "\x{100}")); | |
132 | ok($objTo->eq("e\x{304}", "\x{113}")); | |
133 | ok($objTo->eq("E\x{304}", "\x{112}")); | |
134 | ok($objTo->eq("i\x{304}", "\x{12B}")); | |
135 | ok($objTo->eq("I\x{304}", "\x{12A}")); | |
136 | ok($objTo->eq("o\x{304}", "\x{14D}")); | |
137 | ok($objTo->eq("O\x{304}", "\x{14C}")); | |
138 | ok($objTo->eq("u\x{304}", "\x{16B}")); | |
139 | ok($objTo->eq("U\x{304}", "\x{16A}")); | |
140 | ||
141 | ok($objTo->eq("a\x{301}", pack('U', 0xE1))); | |
aa7758f7 | 142 | ok($objTo->eq("a\x{341}", pack('U', 0xE1))); |
6709de88 | 143 | ok($objTo->eq("A\x{301}", pack('U', 0xC1))); |
aa7758f7 | 144 | ok($objTo->eq("A\x{341}", pack('U', 0xC1))); |
6709de88 | 145 | ok($objTo->eq("e\x{301}", pack('U', 0xE9))); |
aa7758f7 | 146 | ok($objTo->eq("e\x{341}", pack('U', 0xE9))); |
6709de88 | 147 | ok($objTo->eq("E\x{301}", pack('U', 0xC9))); |
aa7758f7 | 148 | ok($objTo->eq("E\x{341}", pack('U', 0xC9))); |
6709de88 | 149 | ok($objTo->eq("i\x{301}", pack('U', 0xED))); |
aa7758f7 | 150 | ok($objTo->eq("i\x{341}", pack('U', 0xED))); |
6709de88 | 151 | ok($objTo->eq("I\x{301}", pack('U', 0xCD))); |
aa7758f7 | 152 | ok($objTo->eq("I\x{341}", pack('U', 0xCD))); |
6709de88 | 153 | ok($objTo->eq("o\x{301}", pack('U', 0xF3))); |
aa7758f7 | 154 | ok($objTo->eq("o\x{341}", pack('U', 0xF3))); |
6709de88 | 155 | ok($objTo->eq("O\x{301}", pack('U', 0xD3))); |
aa7758f7 | 156 | ok($objTo->eq("O\x{341}", pack('U', 0xD3))); |
6709de88 | 157 | ok($objTo->eq("u\x{301}", pack('U', 0xFA))); |
aa7758f7 | 158 | ok($objTo->eq("u\x{341}", pack('U', 0xFA))); |
6709de88 | 159 | ok($objTo->eq("U\x{301}", pack('U', 0xDA))); |
aa7758f7 | 160 | ok($objTo->eq("U\x{341}", pack('U', 0xDA))); |
6709de88 | 161 | |
aa7758f7 | 162 | # 107 |
6709de88 CBW |
163 | |
164 | $objTo->change(upper_before_lower => 1); | |
165 | ||
166 | ok($objTo->gt("ng", "Ng")); | |
167 | ok($objTo->gt("Ng", "NG")); | |
168 | ok($objTo->lt("NG", "\x{14B}")); | |
169 | ok($objTo->gt("\x{14B}", "\x{14A}")); | |
170 | ok($objTo->lt("\x{2BB}", "\x{2BD}")); | |
171 | ||
172 | ok($objTo->gt("a\x{304}", "A\x{304}")); | |
173 | ok($objTo->gt("a\x{301}", "A\x{301}")); | |
174 | ok($objTo->gt("e\x{304}", "E\x{304}")); | |
175 | ok($objTo->gt("e\x{301}", "E\x{301}")); | |
176 | ok($objTo->gt("i\x{304}", "I\x{304}")); | |
177 | ok($objTo->gt("i\x{301}", "I\x{301}")); | |
178 | ok($objTo->gt("o\x{304}", "O\x{304}")); | |
179 | ok($objTo->gt("o\x{301}", "O\x{301}")); | |
180 | ok($objTo->gt("u\x{304}", "U\x{304}")); | |
181 | ok($objTo->gt("u\x{301}", "U\x{301}")); | |
182 | ||
183 | ok($objTo->lt("a\x{304}", "a\x{301}")); | |
184 | ok($objTo->lt("A\x{304}", "A\x{301}")); | |
185 | ok($objTo->lt("e\x{304}", "e\x{301}")); | |
186 | ok($objTo->lt("E\x{304}", "E\x{301}")); | |
187 | ok($objTo->lt("i\x{304}", "i\x{301}")); | |
188 | ok($objTo->lt("I\x{304}", "I\x{301}")); | |
189 | ok($objTo->lt("o\x{304}", "o\x{301}")); | |
190 | ok($objTo->lt("O\x{304}", "O\x{301}")); | |
191 | ok($objTo->lt("u\x{304}", "u\x{301}")); | |
192 | ok($objTo->lt("U\x{304}", "U\x{301}")); | |
193 | ||
aa7758f7 | 194 | # 132 |