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 => 126 }; | |
16 | ||
c02ee425 CBW |
17 | use strict; |
18 | use warnings; | |
19 | use Unicode::Collate::Locale; | |
20 | ||
68adb2b0 CBW |
21 | ok(1); |
22 | ||
23 | ######################### | |
c02ee425 CBW |
24 | |
25 | my $objSq = Unicode::Collate::Locale-> | |
26 | new(locale => 'SQ', normalization => undef); | |
27 | ||
c02ee425 CBW |
28 | ok($objSq->getlocale, 'sq'); |
29 | ||
30 | $objSq->change(level => 1); | |
31 | ||
32 | ok($objSq->lt("c", "c\x{327}")); | |
33 | ok($objSq->lt("cz","c\x{327}")); | |
34 | ok($objSq->gt("d", "c\x{327}")); | |
35 | ok($objSq->lt("d", "dh")); | |
36 | ok($objSq->lt("dz","dh")); | |
37 | ok($objSq->gt("e", "dh")); | |
38 | ok($objSq->lt("e", "e\x{308}")); | |
39 | ok($objSq->lt("ez","e\x{308}")); | |
40 | ok($objSq->gt("f", "e\x{308}")); | |
41 | ok($objSq->lt("g", "gj")); | |
42 | ok($objSq->lt("gz","gj")); | |
43 | ok($objSq->gt("h", "gj")); | |
44 | ok($objSq->lt("l", "ll")); | |
45 | ok($objSq->lt("lz","ll")); | |
46 | ok($objSq->gt("m", "ll")); | |
47 | ok($objSq->lt("n", "nj")); | |
48 | ok($objSq->lt("nz","nj")); | |
49 | ok($objSq->gt("o", "nj")); | |
50 | ok($objSq->lt("r", "rr")); | |
51 | ok($objSq->lt("rz","rr")); | |
52 | ok($objSq->gt("s", "rr")); | |
53 | ok($objSq->lt("s", "sh")); | |
54 | ok($objSq->lt("sz","sh")); | |
55 | ok($objSq->gt("t", "sh")); | |
56 | ok($objSq->lt("t", "th")); | |
57 | ok($objSq->lt("tz","th")); | |
58 | ok($objSq->gt("u", "th")); | |
59 | ok($objSq->lt("x", "xh")); | |
60 | ok($objSq->lt("xz","xh")); | |
61 | ok($objSq->gt("y", "xh")); | |
62 | ok($objSq->lt("z", "zh")); | |
63 | ok($objSq->lt("zz","zh")); | |
64 | ok($objSq->lt("zh", "\x{1B7}")); | |
65 | ||
66 | # 35 | |
67 | ||
68 | $objSq->change(level => 2); | |
69 | ||
70 | ok($objSq->eq("c\x{327}", "C\x{327}")); | |
71 | ok($objSq->eq("dh", "dH")); | |
72 | ok($objSq->eq("dH", "Dh")); | |
73 | ok($objSq->eq("Dh", "DH")); | |
74 | ok($objSq->eq("e\x{308}", "E\x{308}")); | |
75 | ok($objSq->eq("gj", "gJ")); | |
76 | ok($objSq->eq("gJ", "Gj")); | |
77 | ok($objSq->eq("Gj", "GJ")); | |
78 | ok($objSq->eq("ll", "lL")); | |
79 | ok($objSq->eq("lL", "Ll")); | |
80 | ok($objSq->eq("Ll", "LL")); | |
81 | ok($objSq->eq("nj", "nJ")); | |
82 | ok($objSq->eq("nJ", "Nj")); | |
83 | ok($objSq->eq("Nj", "NJ")); | |
84 | ok($objSq->eq("rr", "rR")); | |
85 | ok($objSq->eq("rR", "Rr")); | |
86 | ok($objSq->eq("Rr", "RR")); | |
87 | ok($objSq->eq("sh", "sH")); | |
88 | ok($objSq->eq("sH", "Sh")); | |
89 | ok($objSq->eq("Sh", "SH")); | |
90 | ok($objSq->eq("th", "tH")); | |
91 | ok($objSq->eq("tH", "Th")); | |
92 | ok($objSq->eq("Th", "TH")); | |
93 | ok($objSq->eq("xh", "xH")); | |
94 | ok($objSq->eq("xH", "Xh")); | |
95 | ok($objSq->eq("Xh", "XH")); | |
96 | ok($objSq->eq("zh", "zH")); | |
97 | ok($objSq->eq("zH", "Zh")); | |
98 | ok($objSq->eq("Zh", "ZH")); | |
99 | ||
100 | # 64 | |
101 | ||
102 | $objSq->change(level => 3); | |
103 | ||
104 | ok($objSq->lt("c\x{327}", "C\x{327}")); | |
105 | ok($objSq->lt("dh", "dH")); | |
106 | ok($objSq->lt("dH", "Dh")); | |
107 | ok($objSq->lt("Dh", "DH")); | |
108 | ok($objSq->lt("e\x{308}", "E\x{308}")); | |
109 | ok($objSq->lt("gj", "gJ")); | |
110 | ok($objSq->lt("gJ", "Gj")); | |
111 | ok($objSq->lt("Gj", "GJ")); | |
112 | ok($objSq->lt("ll", "lL")); | |
113 | ok($objSq->lt("lL", "Ll")); | |
114 | ok($objSq->lt("Ll", "LL")); | |
115 | ok($objSq->lt("nj", "nJ")); | |
116 | ok($objSq->lt("nJ", "Nj")); | |
117 | ok($objSq->lt("Nj", "NJ")); | |
118 | ok($objSq->lt("rr", "rR")); | |
119 | ok($objSq->lt("rR", "Rr")); | |
120 | ok($objSq->lt("Rr", "RR")); | |
121 | ok($objSq->lt("sh", "sH")); | |
122 | ok($objSq->lt("sH", "Sh")); | |
123 | ok($objSq->lt("Sh", "SH")); | |
124 | ok($objSq->lt("th", "tH")); | |
125 | ok($objSq->lt("tH", "Th")); | |
126 | ok($objSq->lt("Th", "TH")); | |
127 | ok($objSq->lt("xh", "xH")); | |
128 | ok($objSq->lt("xH", "Xh")); | |
129 | ok($objSq->lt("Xh", "XH")); | |
130 | ok($objSq->lt("zh", "zH")); | |
131 | ok($objSq->lt("zH", "Zh")); | |
132 | ok($objSq->lt("Zh", "ZH")); | |
133 | ||
134 | # 93 | |
135 | ||
136 | ok($objSq->eq("c\x{327}", pack('U', 0xE7))); | |
137 | ok($objSq->eq("C\x{327}", pack('U', 0xC7))); | |
138 | ok($objSq->eq("e\x{308}", pack('U', 0xEB))); | |
139 | ok($objSq->eq("E\x{308}", pack('U', 0xCB))); | |
140 | ||
141 | # 97 | |
142 | ||
143 | $objSq->change(upper_before_lower => 1); | |
144 | ||
145 | ok($objSq->gt("c\x{327}", "C\x{327}")); | |
146 | ok($objSq->gt("dh", "dH")); | |
147 | ok($objSq->gt("dH", "Dh")); | |
148 | ok($objSq->gt("Dh", "DH")); | |
149 | ok($objSq->gt("e\x{308}", "E\x{308}")); | |
150 | ok($objSq->gt("gj", "gJ")); | |
151 | ok($objSq->gt("gJ", "Gj")); | |
152 | ok($objSq->gt("Gj", "GJ")); | |
153 | ok($objSq->gt("ll", "lL")); | |
154 | ok($objSq->gt("lL", "Ll")); | |
155 | ok($objSq->gt("Ll", "LL")); | |
156 | ok($objSq->gt("nj", "nJ")); | |
157 | ok($objSq->gt("nJ", "Nj")); | |
158 | ok($objSq->gt("Nj", "NJ")); | |
159 | ok($objSq->gt("rr", "rR")); | |
160 | ok($objSq->gt("rR", "Rr")); | |
161 | ok($objSq->gt("Rr", "RR")); | |
162 | ok($objSq->gt("sh", "sH")); | |
163 | ok($objSq->gt("sH", "Sh")); | |
164 | ok($objSq->gt("Sh", "SH")); | |
165 | ok($objSq->gt("th", "tH")); | |
166 | ok($objSq->gt("tH", "Th")); | |
167 | ok($objSq->gt("Th", "TH")); | |
168 | ok($objSq->gt("xh", "xH")); | |
169 | ok($objSq->gt("xH", "Xh")); | |
170 | ok($objSq->gt("Xh", "XH")); | |
171 | ok($objSq->gt("zh", "zH")); | |
172 | ok($objSq->gt("zH", "Zh")); | |
173 | ok($objSq->gt("Zh", "ZH")); | |
174 | ||
175 | # 126 |