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..73\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 $objPl = Unicode::Collate::Locale-> 32 new(locale => 'PL', normalization => undef); 33 34ok($objPl->getlocale, 'pl'); 35 36$objPl->change(level => 1); 37 38ok($objPl->lt("a", "a\x{328}")); 39ok($objPl->lt("az","a\x{328}")); 40ok($objPl->gt("b", "a\x{328}")); 41ok($objPl->lt("c", "c\x{301}")); 42ok($objPl->lt("cz","c\x{301}")); 43ok($objPl->gt("d", "c\x{301}")); 44ok($objPl->lt("e", "e\x{328}")); 45ok($objPl->lt("ez","e\x{328}")); 46ok($objPl->gt("f", "e\x{328}")); 47ok($objPl->lt("l", "l\x{335}")); 48ok($objPl->lt("lz","l\x{335}")); 49ok($objPl->gt("m", "l\x{335}")); 50ok($objPl->lt("n", "n\x{301}")); 51ok($objPl->lt("nz","n\x{301}")); 52ok($objPl->gt("o", "n\x{301}")); 53ok($objPl->lt("o", "o\x{301}")); 54ok($objPl->lt("oz","o\x{301}")); 55ok($objPl->gt("p", "o\x{301}")); 56ok($objPl->lt("s", "s\x{301}")); 57ok($objPl->lt("sz","s\x{301}")); 58ok($objPl->gt("t", "s\x{301}")); 59ok($objPl->lt("z", "z\x{301}")); 60ok($objPl->lt("zz","z\x{301}")); 61ok($objPl->lt("z\x{301}", "z\x{307}")); 62ok($objPl->lt("z\x{307}", "\x{292}")); # U+0292 EZH 63 64# 27 65 66$objPl->change(level => 2); 67 68ok($objPl->eq("a\x{328}", "A\x{328}")); 69ok($objPl->eq("c\x{301}", "C\x{301}")); 70ok($objPl->eq("e\x{328}", "E\x{328}")); 71ok($objPl->eq("l\x{335}", "L\x{335}")); 72ok($objPl->eq("n\x{301}", "N\x{301}")); 73ok($objPl->eq("o\x{301}", "O\x{301}")); 74ok($objPl->eq("s\x{301}", "S\x{301}")); 75ok($objPl->eq("z\x{301}", "Z\x{301}")); 76ok($objPl->eq("z\x{307}", "Z\x{307}")); 77 78# 36 79 80$objPl->change(level => 3); 81 82ok($objPl->lt("a\x{328}", "A\x{328}")); 83ok($objPl->lt("c\x{301}", "C\x{301}")); 84ok($objPl->lt("e\x{328}", "E\x{328}")); 85ok($objPl->lt("l\x{335}", "L\x{335}")); 86ok($objPl->lt("n\x{301}", "N\x{301}")); 87ok($objPl->lt("o\x{301}", "O\x{301}")); 88ok($objPl->lt("s\x{301}", "S\x{301}")); 89ok($objPl->lt("z\x{301}", "Z\x{301}")); 90ok($objPl->lt("z\x{307}", "Z\x{307}")); 91 92# 45 93 94ok($objPl->eq("a\x{328}", "\x{105}")); 95ok($objPl->eq("A\x{328}", "\x{104}")); 96ok($objPl->eq("c\x{301}", "\x{107}")); 97ok($objPl->eq("c\x{341}", "\x{107}")); 98ok($objPl->eq("C\x{301}", "\x{106}")); 99ok($objPl->eq("C\x{341}", "\x{106}")); 100ok($objPl->eq("e\x{328}", "\x{119}")); 101ok($objPl->eq("E\x{328}", "\x{118}")); 102ok($objPl->eq("l\x{335}", "\x{142}")); 103ok($objPl->eq("L\x{335}", "\x{141}")); 104ok($objPl->eq("n\x{301}", "\x{144}")); 105ok($objPl->eq("n\x{341}", "\x{144}")); 106ok($objPl->eq("N\x{301}", "\x{143}")); 107ok($objPl->eq("N\x{341}", "\x{143}")); 108ok($objPl->eq("o\x{301}", _pack_U(0xF3))); 109ok($objPl->eq("o\x{341}", _pack_U(0xF3))); 110ok($objPl->eq("O\x{301}", _pack_U(0xD3))); 111ok($objPl->eq("O\x{341}", _pack_U(0xD3))); 112ok($objPl->eq("s\x{301}", "\x{15B}")); 113ok($objPl->eq("s\x{341}", "\x{15B}")); 114ok($objPl->eq("S\x{301}", "\x{15A}")); 115ok($objPl->eq("S\x{341}", "\x{15A}")); 116ok($objPl->eq("z\x{301}", "\x{17A}")); 117ok($objPl->eq("z\x{341}", "\x{17A}")); 118ok($objPl->eq("Z\x{301}", "\x{179}")); 119ok($objPl->eq("Z\x{341}", "\x{179}")); 120ok($objPl->eq("z\x{307}", "\x{17C}")); 121ok($objPl->eq("Z\x{307}", "\x{17B}")); 122 123# 73 124