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