This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Unicode-Collate to CPAN version 0.59
[perl5.git] / cpan / Unicode-Collate / t / loc_is.t
CommitLineData
6484f676
CBW
1#!perl
2use strict;
3use warnings;
4use Unicode::Collate::Locale;
5
6use Test;
f1a7422f 7plan tests => 98;
6484f676
CBW
8
9my $eth = pack 'U', 0xF0;
10my $ETH = pack 'U', 0xD0;
11my $thrn = pack 'U', 0xFE;
12my $THRN = pack 'U', 0xDE;
13my $ae = pack 'U', 0xE6;
14my $AE = pack 'U', 0xC6;
15my $auml = pack 'U', 0xE4;
16my $Auml = pack 'U', 0xC4;
17my $ouml = pack 'U', 0xF6;
18my $Ouml = pack 'U', 0xD6;
19my $ostk = pack 'U', 0xF8;
20my $Ostk = pack 'U', 0xD8;
21my $arng = pack 'U', 0xE5;
22my $Arng = pack 'U', 0xC5;
23
24my $objIs = Unicode::Collate::Locale->
25 new(locale => 'IS', normalization => undef);
26
27ok(1);
28ok($objIs->getlocale, 'is');
29
30$objIs->change(level => 1);
31
32ok($objIs->lt('a', "a\x{301}"));
33ok($objIs->gt('b', "a\x{301}"));
34ok($objIs->lt('d', $eth));
35ok($objIs->gt('e', $eth));
36ok($objIs->lt('e', "e\x{301}"));
37ok($objIs->gt('f', "e\x{301}"));
38ok($objIs->lt('i', "i\x{301}"));
39ok($objIs->gt('j', "i\x{301}"));
40ok($objIs->lt('o', "o\x{301}"));
41ok($objIs->gt('p', "o\x{301}"));
42ok($objIs->lt('u', "u\x{301}"));
43ok($objIs->gt('v', "u\x{301}"));
44ok($objIs->lt('y', "y\x{301}"));
45ok($objIs->gt('z', "y\x{301}"));
46
47# 16
48
49ok($objIs->lt('z', $thrn));
50ok($objIs->lt($thrn, $ae));
51ok($objIs->lt($ae, $ouml));
52ok($objIs->lt($ouml, $arng));
53ok($objIs->lt($arng, "\x{1C0}"));
54
55# 21
56
57ok($objIs->eq('d', "d\x{335}"));
58ok($objIs->eq($ae, $auml));
59ok($objIs->eq($ouml, $ostk));
60
61$objIs->change(level => 2);
62
63ok($objIs->lt('d', "d\x{335}"));
64ok($objIs->lt($ae, $auml));
65ok($objIs->lt($ouml, $ostk));
66
67# 27
68
69ok($objIs->eq("a\x{301}", "A\x{301}"));
70ok($objIs->eq("d\x{335}", "D\x{335}"));
71ok($objIs->eq($eth, $ETH));
72ok($objIs->eq("e\x{301}", "E\x{301}"));
73ok($objIs->eq("i\x{301}", "I\x{301}"));
74ok($objIs->eq("o\x{301}", "O\x{301}"));
75ok($objIs->eq("u\x{301}", "U\x{301}"));
76ok($objIs->eq("y\x{301}", "Y\x{301}"));
77ok($objIs->eq($thrn, $THRN));
78ok($objIs->eq($ae, $AE));
79ok($objIs->eq($AE, "\x{1D2D}"));
80ok($objIs->eq($auml, $Auml));
81ok($objIs->eq($ouml, $Ouml));
82ok($objIs->eq($ostk, $Ostk));
83ok($objIs->eq($arng, $Arng));
84
85# 42
86
87$objIs->change(level => 3);
88
89ok($objIs->lt("a\x{301}", "A\x{301}"));
90ok($objIs->lt("d\x{335}", "D\x{335}"));
91ok($objIs->lt($eth, $ETH));
92ok($objIs->lt("e\x{301}", "E\x{301}"));
93ok($objIs->lt("i\x{301}", "I\x{301}"));
94ok($objIs->lt("o\x{301}", "O\x{301}"));
95ok($objIs->lt("u\x{301}", "U\x{301}"));
96ok($objIs->lt("y\x{301}", "Y\x{301}"));
97ok($objIs->lt($thrn, $THRN));
98ok($objIs->lt($ae, $AE));
99ok($objIs->lt($AE, "\x{1D2D}"));
100ok($objIs->lt($auml, $Auml));
101ok($objIs->lt($ouml, $Ouml));
102ok($objIs->lt($ostk, $Ostk));
103ok($objIs->lt($arng, $Arng));
104
105# 57
106
107ok($objIs->eq("a\x{301}", pack('U', 0xE1)));
108ok($objIs->eq("A\x{301}", pack('U', 0xC1)));
109ok($objIs->eq("d\x{335}", "\x{111}"));
110ok($objIs->eq("D\x{335}", "\x{110}"));
111ok($objIs->eq("e\x{301}", pack('U', 0xE9)));
112ok($objIs->eq("E\x{301}", pack('U', 0xC9)));
113ok($objIs->eq("i\x{301}", pack('U', 0xED)));
114ok($objIs->eq("I\x{301}", pack('U', 0xCD)));
115ok($objIs->eq("o\x{301}", pack('U', 0xF3)));
116ok($objIs->eq("O\x{301}", pack('U', 0xD3)));
117ok($objIs->eq("u\x{301}", pack('U', 0xFA)));
118ok($objIs->eq("U\x{301}", pack('U', 0xDA)));
119ok($objIs->eq("y\x{301}", pack('U', 0xFD)));
120ok($objIs->eq("Y\x{301}", pack('U', 0xDD)));
121
122# 71
123
124ok($objIs->eq("\x{1FD}", "$ae\x{301}"));
125ok($objIs->eq("\x{1FC}", "$AE\x{301}"));
126ok($objIs->eq("\x{1E3}", "$ae\x{304}"));
127ok($objIs->eq("\x{1E2}", "$AE\x{304}"));
128ok($objIs->eq("a\x{308}", $auml));
129ok($objIs->eq("A\x{308}", $Auml));
f1a7422f
CBW
130ok($objIs->eq("a\x{308}\x{304}", "\x{1DF}"));
131ok($objIs->eq("A\x{308}\x{304}", "\x{1DE}"));
6484f676
CBW
132ok($objIs->eq("o\x{308}", $ouml));
133ok($objIs->eq("O\x{308}", $Ouml));
f1a7422f
CBW
134ok($objIs->eq("o\x{308}\x{304}", "\x{22B}"));
135ok($objIs->eq("O\x{308}\x{304}", "\x{22A}"));
6484f676
CBW
136ok($objIs->eq("o\x{338}", $ostk));
137ok($objIs->eq("O\x{338}", $Ostk));
138ok($objIs->eq("o\x{338}\x{301}", "\x{1FF}"));
139ok($objIs->eq("O\x{338}\x{301}", "\x{1FE}"));
140ok($objIs->eq("a\x{30A}", $arng));
141ok($objIs->eq("A\x{30A}", $Arng));
142ok($objIs->eq("A\x{30A}", "\x{212B}"));
143ok($objIs->eq("a\x{30A}\x{301}", "\x{1FB}"));
144ok($objIs->eq("A\x{30A}\x{301}", "\x{1FA}"));
145
f1a7422f 146# 92
6484f676
CBW
147
148$objIs->change(upper_before_lower => 1);
149
150ok($objIs->gt($ae, $AE));
151ok($objIs->lt($AE, "\x{1D2D}"));
152ok($objIs->gt($auml, $Auml));
153ok($objIs->gt($ouml, $Ouml));
154ok($objIs->gt($ostk, $Ostk));
155ok($objIs->gt($arng, $Arng));
156
f1a7422f 157# 98