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..128\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 $objBsCyrl = Unicode::Collate::Locale-> 32 new(locale => 'BS-CYRL', normalization => undef); 33 34ok($objBsCyrl->getlocale, 'bs_Cyrl'); 35 36$objBsCyrl->change(level => 1); 37 38ok($objBsCyrl->lt("\x{430}z", "\x{431}")); 39ok($objBsCyrl->lt("\x{431}z", "\x{432}")); 40ok($objBsCyrl->lt("\x{432}z", "\x{433}")); 41ok($objBsCyrl->lt("\x{433}z", "\x{434}")); 42ok($objBsCyrl->lt("\x{434}z", "\x{452}")); 43ok($objBsCyrl->lt("\x{452}z", "\x{435}")); 44ok($objBsCyrl->lt("\x{435}z", "\x{436}")); 45ok($objBsCyrl->lt("\x{436}z", "\x{437}")); 46ok($objBsCyrl->lt("\x{437}z", "\x{438}")); 47ok($objBsCyrl->lt("\x{438}z", "\x{458}")); 48ok($objBsCyrl->lt("\x{458}z", "\x{43a}")); 49ok($objBsCyrl->lt("\x{43a}z", "\x{43b}")); 50ok($objBsCyrl->lt("\x{43b}z", "\x{459}")); 51ok($objBsCyrl->lt("\x{459}z", "\x{43c}")); 52ok($objBsCyrl->lt("\x{43c}z", "\x{43d}")); 53ok($objBsCyrl->lt("\x{43d}z", "\x{45a}")); 54ok($objBsCyrl->lt("\x{45a}z", "\x{43e}")); 55ok($objBsCyrl->lt("\x{43e}z", "\x{43f}")); 56ok($objBsCyrl->lt("\x{43f}z", "\x{440}")); 57ok($objBsCyrl->lt("\x{440}z", "\x{441}")); 58ok($objBsCyrl->lt("\x{441}z", "\x{442}")); 59ok($objBsCyrl->lt("\x{442}z", "\x{45b}")); 60ok($objBsCyrl->lt("\x{45b}z", "\x{443}")); 61ok($objBsCyrl->lt("\x{443}z", "\x{444}")); 62ok($objBsCyrl->lt("\x{444}z", "\x{445}")); 63ok($objBsCyrl->lt("\x{445}z", "\x{446}")); 64ok($objBsCyrl->lt("\x{446}z", "\x{447}")); 65ok($objBsCyrl->lt("\x{447}z", "\x{45f}")); 66ok($objBsCyrl->lt("\x{45f}z", "\x{448}")); 67 68ok($objBsCyrl->lt("\x{410}z", "\x{411}")); 69ok($objBsCyrl->lt("\x{411}z", "\x{412}")); 70ok($objBsCyrl->lt("\x{412}z", "\x{413}")); 71ok($objBsCyrl->lt("\x{413}z", "\x{414}")); 72ok($objBsCyrl->lt("\x{414}z", "\x{402}")); 73ok($objBsCyrl->lt("\x{402}z", "\x{415}")); 74ok($objBsCyrl->lt("\x{415}z", "\x{416}")); 75ok($objBsCyrl->lt("\x{416}z", "\x{417}")); 76ok($objBsCyrl->lt("\x{417}z", "\x{418}")); 77ok($objBsCyrl->lt("\x{418}z", "\x{408}")); 78ok($objBsCyrl->lt("\x{408}z", "\x{41a}")); 79ok($objBsCyrl->lt("\x{41a}z", "\x{41b}")); 80ok($objBsCyrl->lt("\x{41b}z", "\x{409}")); 81ok($objBsCyrl->lt("\x{409}z", "\x{41c}")); 82ok($objBsCyrl->lt("\x{41c}z", "\x{41d}")); 83ok($objBsCyrl->lt("\x{41d}z", "\x{40a}")); 84ok($objBsCyrl->lt("\x{40a}z", "\x{41e}")); 85ok($objBsCyrl->lt("\x{41e}z", "\x{41f}")); 86ok($objBsCyrl->lt("\x{41f}z", "\x{420}")); 87ok($objBsCyrl->lt("\x{420}z", "\x{421}")); 88ok($objBsCyrl->lt("\x{421}z", "\x{422}")); 89ok($objBsCyrl->lt("\x{422}z", "\x{40b}")); 90ok($objBsCyrl->lt("\x{40b}z", "\x{423}")); 91ok($objBsCyrl->lt("\x{423}z", "\x{424}")); 92ok($objBsCyrl->lt("\x{424}z", "\x{425}")); 93ok($objBsCyrl->lt("\x{425}z", "\x{426}")); 94ok($objBsCyrl->lt("\x{426}z", "\x{427}")); 95ok($objBsCyrl->lt("\x{427}z", "\x{40f}")); 96ok($objBsCyrl->lt("\x{40f}z", "\x{428}")); 97 98# 60 99 100ok($objBsCyrl->eq("\x{438}", "\x{439}")); 101ok($objBsCyrl->eq("\x{418}", "\x{419}")); 102 103# 62 104 105$objBsCyrl->change(level => 2); 106 107ok($objBsCyrl->lt("\x{438}", "\x{439}")); 108ok($objBsCyrl->lt("\x{418}", "\x{419}")); 109 110# 64 111 112ok($objBsCyrl->eq("\x{430}", "\x{410}")); 113ok($objBsCyrl->eq("\x{431}", "\x{411}")); 114ok($objBsCyrl->eq("\x{432}", "\x{412}")); 115ok($objBsCyrl->eq("\x{433}", "\x{413}")); 116ok($objBsCyrl->eq("\x{434}", "\x{414}")); 117ok($objBsCyrl->eq("\x{452}", "\x{402}")); 118ok($objBsCyrl->eq("\x{435}", "\x{415}")); 119ok($objBsCyrl->eq("\x{436}", "\x{416}")); 120ok($objBsCyrl->eq("\x{437}", "\x{417}")); 121ok($objBsCyrl->eq("\x{438}", "\x{418}")); 122ok($objBsCyrl->eq("\x{439}", "\x{419}")); 123ok($objBsCyrl->eq("\x{458}", "\x{408}")); 124ok($objBsCyrl->eq("\x{43a}", "\x{41a}")); 125ok($objBsCyrl->eq("\x{43b}", "\x{41b}")); 126ok($objBsCyrl->eq("\x{459}", "\x{409}")); 127ok($objBsCyrl->eq("\x{43c}", "\x{41c}")); 128ok($objBsCyrl->eq("\x{43d}", "\x{41d}")); 129ok($objBsCyrl->eq("\x{45a}", "\x{40a}")); 130ok($objBsCyrl->eq("\x{43e}", "\x{41e}")); 131ok($objBsCyrl->eq("\x{43f}", "\x{41f}")); 132ok($objBsCyrl->eq("\x{440}", "\x{420}")); 133ok($objBsCyrl->eq("\x{441}", "\x{421}")); 134ok($objBsCyrl->eq("\x{442}", "\x{422}")); 135ok($objBsCyrl->eq("\x{45b}", "\x{40b}")); 136ok($objBsCyrl->eq("\x{443}", "\x{423}")); 137ok($objBsCyrl->eq("\x{444}", "\x{424}")); 138ok($objBsCyrl->eq("\x{445}", "\x{425}")); 139ok($objBsCyrl->eq("\x{446}", "\x{426}")); 140ok($objBsCyrl->eq("\x{447}", "\x{427}")); 141ok($objBsCyrl->eq("\x{45f}", "\x{40f}")); 142ok($objBsCyrl->eq("\x{448}", "\x{428}")); 143 144# 95 145 146$objBsCyrl->change(level => 3); 147 148ok($objBsCyrl->lt("\x{430}", "\x{410}")); 149ok($objBsCyrl->lt("\x{431}", "\x{411}")); 150ok($objBsCyrl->lt("\x{432}", "\x{412}")); 151ok($objBsCyrl->lt("\x{433}", "\x{413}")); 152ok($objBsCyrl->lt("\x{434}", "\x{414}")); 153ok($objBsCyrl->lt("\x{452}", "\x{402}")); 154ok($objBsCyrl->lt("\x{435}", "\x{415}")); 155ok($objBsCyrl->lt("\x{436}", "\x{416}")); 156ok($objBsCyrl->lt("\x{437}", "\x{417}")); 157ok($objBsCyrl->lt("\x{438}", "\x{418}")); 158ok($objBsCyrl->lt("\x{439}", "\x{419}")); 159ok($objBsCyrl->lt("\x{458}", "\x{408}")); 160ok($objBsCyrl->lt("\x{43a}", "\x{41a}")); 161ok($objBsCyrl->lt("\x{43b}", "\x{41b}")); 162ok($objBsCyrl->lt("\x{459}", "\x{409}")); 163ok($objBsCyrl->lt("\x{43c}", "\x{41c}")); 164ok($objBsCyrl->lt("\x{43d}", "\x{41d}")); 165ok($objBsCyrl->lt("\x{45a}", "\x{40a}")); 166ok($objBsCyrl->lt("\x{43e}", "\x{41e}")); 167ok($objBsCyrl->lt("\x{43f}", "\x{41f}")); 168ok($objBsCyrl->lt("\x{440}", "\x{420}")); 169ok($objBsCyrl->lt("\x{441}", "\x{421}")); 170ok($objBsCyrl->lt("\x{442}", "\x{422}")); 171ok($objBsCyrl->lt("\x{45b}", "\x{40b}")); 172ok($objBsCyrl->lt("\x{443}", "\x{423}")); 173ok($objBsCyrl->lt("\x{444}", "\x{424}")); 174ok($objBsCyrl->lt("\x{445}", "\x{425}")); 175ok($objBsCyrl->lt("\x{446}", "\x{426}")); 176ok($objBsCyrl->lt("\x{447}", "\x{427}")); 177ok($objBsCyrl->lt("\x{45f}", "\x{40f}")); 178ok($objBsCyrl->lt("\x{448}", "\x{428}")); 179 180# 126 181 182ok($objBsCyrl->eq("\x{439}", "\x{438}\x{306}")); 183ok($objBsCyrl->eq("\x{419}", "\x{418}\x{306}")); 184 185# 128 186