1 2BEGIN { 3 if ($ENV{PERL_CORE}) { 4 chdir('t') if -d 't'; 5 @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); 6 } 7} 8 9use strict; 10use warnings; 11BEGIN { $| = 1; print "1..146\n"; } 12my $count = 0; 13sub ok ($;$) { 14 my $p = my $r = shift; 15 if (@_) { 16 my $x = shift; 17 $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; 18 } 19 print $p ? "ok" : "not ok", ' ', ++$count, "\n"; 20} 21 22use Unicode::Collate::Locale; 23 24ok(1); 25 26sub _pack_U { Unicode::Collate::pack_U(@_) } 27sub _unpack_U { Unicode::Collate::unpack_U(@_) } 28 29######################### 30 31my $objMnCyrl = Unicode::Collate::Locale-> 32 new(locale => 'MN-CYRL', normalization => undef); 33 34ok($objMnCyrl->getlocale, 'default'); 35 36$objMnCyrl->change(level => 1); 37 38ok($objMnCyrl->lt("\x{430}z", "\x{431}")); 39ok($objMnCyrl->lt("\x{431}z", "\x{432}")); 40ok($objMnCyrl->lt("\x{432}z", "\x{433}")); 41ok($objMnCyrl->lt("\x{433}z", "\x{434}")); 42ok($objMnCyrl->lt("\x{434}z", "\x{435}")); 43ok($objMnCyrl->lt("\x{435}z", "\x{436}")); 44ok($objMnCyrl->lt("\x{436}z", "\x{437}")); 45ok($objMnCyrl->lt("\x{437}z", "\x{438}")); 46ok($objMnCyrl->lt("\x{438}z", "\x{439}")); 47ok($objMnCyrl->lt("\x{439}z", "\x{43a}")); 48ok($objMnCyrl->lt("\x{43a}z", "\x{43b}")); 49ok($objMnCyrl->lt("\x{43b}z", "\x{43c}")); 50ok($objMnCyrl->lt("\x{43c}z", "\x{43d}")); 51ok($objMnCyrl->lt("\x{43d}z", "\x{43e}")); 52ok($objMnCyrl->lt("\x{43e}z", "\x{4e9}")); 53ok($objMnCyrl->lt("\x{4e9}z", "\x{43f}")); 54ok($objMnCyrl->lt("\x{43f}z", "\x{440}")); 55ok($objMnCyrl->lt("\x{440}z", "\x{441}")); 56ok($objMnCyrl->lt("\x{441}z", "\x{442}")); 57ok($objMnCyrl->lt("\x{442}z", "\x{443}")); 58ok($objMnCyrl->lt("\x{443}z", "\x{4af}")); 59ok($objMnCyrl->lt("\x{4af}z", "\x{444}")); 60ok($objMnCyrl->lt("\x{444}z", "\x{445}")); 61ok($objMnCyrl->lt("\x{445}z", "\x{446}")); 62ok($objMnCyrl->lt("\x{446}z", "\x{447}")); 63ok($objMnCyrl->lt("\x{447}z", "\x{448}")); 64ok($objMnCyrl->lt("\x{448}z", "\x{449}")); 65ok($objMnCyrl->lt("\x{449}z", "\x{44a}")); 66ok($objMnCyrl->lt("\x{44a}z", "\x{44b}")); 67ok($objMnCyrl->lt("\x{44b}z", "\x{44c}")); 68ok($objMnCyrl->lt("\x{44c}z", "\x{44d}")); 69ok($objMnCyrl->lt("\x{44d}z", "\x{44e}")); 70ok($objMnCyrl->lt("\x{44e}z", "\x{44f}")); 71 72ok($objMnCyrl->lt("\x{410}z", "\x{411}")); 73ok($objMnCyrl->lt("\x{411}z", "\x{412}")); 74ok($objMnCyrl->lt("\x{412}z", "\x{413}")); 75ok($objMnCyrl->lt("\x{413}z", "\x{414}")); 76ok($objMnCyrl->lt("\x{414}z", "\x{415}")); 77ok($objMnCyrl->lt("\x{415}z", "\x{416}")); 78ok($objMnCyrl->lt("\x{416}z", "\x{417}")); 79ok($objMnCyrl->lt("\x{417}z", "\x{418}")); 80ok($objMnCyrl->lt("\x{418}z", "\x{419}")); 81ok($objMnCyrl->lt("\x{419}z", "\x{41a}")); 82ok($objMnCyrl->lt("\x{41a}z", "\x{41b}")); 83ok($objMnCyrl->lt("\x{41b}z", "\x{41c}")); 84ok($objMnCyrl->lt("\x{41c}z", "\x{41d}")); 85ok($objMnCyrl->lt("\x{41d}z", "\x{41e}")); 86ok($objMnCyrl->lt("\x{41e}z", "\x{4e8}")); 87ok($objMnCyrl->lt("\x{4e8}z", "\x{41f}")); 88ok($objMnCyrl->lt("\x{41f}z", "\x{420}")); 89ok($objMnCyrl->lt("\x{420}z", "\x{421}")); 90ok($objMnCyrl->lt("\x{421}z", "\x{422}")); 91ok($objMnCyrl->lt("\x{422}z", "\x{423}")); 92ok($objMnCyrl->lt("\x{423}z", "\x{4ae}")); 93ok($objMnCyrl->lt("\x{4ae}z", "\x{424}")); 94ok($objMnCyrl->lt("\x{424}z", "\x{425}")); 95ok($objMnCyrl->lt("\x{425}z", "\x{426}")); 96ok($objMnCyrl->lt("\x{426}z", "\x{427}")); 97ok($objMnCyrl->lt("\x{427}z", "\x{428}")); 98ok($objMnCyrl->lt("\x{428}z", "\x{429}")); 99ok($objMnCyrl->lt("\x{429}z", "\x{42a}")); 100ok($objMnCyrl->lt("\x{42a}z", "\x{42b}")); 101ok($objMnCyrl->lt("\x{42b}z", "\x{42c}")); 102ok($objMnCyrl->lt("\x{42c}z", "\x{42d}")); 103ok($objMnCyrl->lt("\x{42d}z", "\x{42e}")); 104ok($objMnCyrl->lt("\x{42e}z", "\x{42f}")); 105 106# 68 107 108ok($objMnCyrl->eq("\x{435}", "\x{451}")); 109ok($objMnCyrl->eq("\x{415}", "\x{401}")); 110 111# 70 112 113$objMnCyrl->change(level => 2); 114 115ok($objMnCyrl->lt("\x{435}", "\x{451}")); 116ok($objMnCyrl->lt("\x{415}", "\x{401}")); 117 118# 72 119 120ok($objMnCyrl->eq("\x{430}", "\x{410}")); 121ok($objMnCyrl->eq("\x{431}", "\x{411}")); 122ok($objMnCyrl->eq("\x{432}", "\x{412}")); 123ok($objMnCyrl->eq("\x{433}", "\x{413}")); 124ok($objMnCyrl->eq("\x{434}", "\x{414}")); 125ok($objMnCyrl->eq("\x{435}", "\x{415}")); 126ok($objMnCyrl->eq("\x{451}", "\x{401}")); 127ok($objMnCyrl->eq("\x{436}", "\x{416}")); 128ok($objMnCyrl->eq("\x{437}", "\x{417}")); 129ok($objMnCyrl->eq("\x{438}", "\x{418}")); 130ok($objMnCyrl->eq("\x{439}", "\x{419}")); 131ok($objMnCyrl->eq("\x{43a}", "\x{41a}")); 132ok($objMnCyrl->eq("\x{43b}", "\x{41b}")); 133ok($objMnCyrl->eq("\x{43c}", "\x{41c}")); 134ok($objMnCyrl->eq("\x{43d}", "\x{41d}")); 135ok($objMnCyrl->eq("\x{43e}", "\x{41e}")); 136ok($objMnCyrl->eq("\x{4e9}", "\x{4e8}")); 137ok($objMnCyrl->eq("\x{43f}", "\x{41f}")); 138ok($objMnCyrl->eq("\x{440}", "\x{420}")); 139ok($objMnCyrl->eq("\x{441}", "\x{421}")); 140ok($objMnCyrl->eq("\x{442}", "\x{422}")); 141ok($objMnCyrl->eq("\x{443}", "\x{423}")); 142ok($objMnCyrl->eq("\x{4af}", "\x{4ae}")); 143ok($objMnCyrl->eq("\x{444}", "\x{424}")); 144ok($objMnCyrl->eq("\x{445}", "\x{425}")); 145ok($objMnCyrl->eq("\x{446}", "\x{426}")); 146ok($objMnCyrl->eq("\x{447}", "\x{427}")); 147ok($objMnCyrl->eq("\x{448}", "\x{428}")); 148ok($objMnCyrl->eq("\x{449}", "\x{429}")); 149ok($objMnCyrl->eq("\x{44a}", "\x{42a}")); 150ok($objMnCyrl->eq("\x{44b}", "\x{42b}")); 151ok($objMnCyrl->eq("\x{44c}", "\x{42c}")); 152ok($objMnCyrl->eq("\x{44d}", "\x{42d}")); 153ok($objMnCyrl->eq("\x{44e}", "\x{42e}")); 154ok($objMnCyrl->eq("\x{44f}", "\x{42f}")); 155 156# 107 157 158$objMnCyrl->change(level => 3); 159 160ok($objMnCyrl->lt("\x{430}", "\x{410}")); 161ok($objMnCyrl->lt("\x{431}", "\x{411}")); 162ok($objMnCyrl->lt("\x{432}", "\x{412}")); 163ok($objMnCyrl->lt("\x{433}", "\x{413}")); 164ok($objMnCyrl->lt("\x{434}", "\x{414}")); 165ok($objMnCyrl->lt("\x{435}", "\x{415}")); 166ok($objMnCyrl->lt("\x{451}", "\x{401}")); 167ok($objMnCyrl->lt("\x{436}", "\x{416}")); 168ok($objMnCyrl->lt("\x{437}", "\x{417}")); 169ok($objMnCyrl->lt("\x{438}", "\x{418}")); 170ok($objMnCyrl->lt("\x{439}", "\x{419}")); 171ok($objMnCyrl->lt("\x{43a}", "\x{41a}")); 172ok($objMnCyrl->lt("\x{43b}", "\x{41b}")); 173ok($objMnCyrl->lt("\x{43c}", "\x{41c}")); 174ok($objMnCyrl->lt("\x{43d}", "\x{41d}")); 175ok($objMnCyrl->lt("\x{43e}", "\x{41e}")); 176ok($objMnCyrl->lt("\x{4e9}", "\x{4e8}")); 177ok($objMnCyrl->lt("\x{43f}", "\x{41f}")); 178ok($objMnCyrl->lt("\x{440}", "\x{420}")); 179ok($objMnCyrl->lt("\x{441}", "\x{421}")); 180ok($objMnCyrl->lt("\x{442}", "\x{422}")); 181ok($objMnCyrl->lt("\x{443}", "\x{423}")); 182ok($objMnCyrl->lt("\x{4af}", "\x{4ae}")); 183ok($objMnCyrl->lt("\x{444}", "\x{424}")); 184ok($objMnCyrl->lt("\x{445}", "\x{425}")); 185ok($objMnCyrl->lt("\x{446}", "\x{426}")); 186ok($objMnCyrl->lt("\x{447}", "\x{427}")); 187ok($objMnCyrl->lt("\x{448}", "\x{428}")); 188ok($objMnCyrl->lt("\x{449}", "\x{429}")); 189ok($objMnCyrl->lt("\x{44a}", "\x{42a}")); 190ok($objMnCyrl->lt("\x{44b}", "\x{42b}")); 191ok($objMnCyrl->lt("\x{44c}", "\x{42c}")); 192ok($objMnCyrl->lt("\x{44d}", "\x{42d}")); 193ok($objMnCyrl->lt("\x{44e}", "\x{42e}")); 194ok($objMnCyrl->lt("\x{44f}", "\x{42f}")); 195 196# 142 197 198ok($objMnCyrl->eq("\x{451}", "\x{435}\x{308}")); 199ok($objMnCyrl->eq("\x{401}", "\x{415}\x{308}")); 200ok($objMnCyrl->eq("\x{439}", "\x{438}\x{306}")); 201ok($objMnCyrl->eq("\x{419}", "\x{418}\x{306}")); 202 203# 146 204