This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Refactor die_exit.t to loop over a list, rather than iterate on an hash.
[perl5.git] / cpan / Unicode-Collate / t / loc_sq.t
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
17 use strict;
18 use warnings;
19 use Unicode::Collate::Locale;
20
21 ok(1);
22
23 #########################
24
25 my $objSq = Unicode::Collate::Locale->
26     new(locale => 'SQ', normalization => undef);
27
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