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..86\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 $objAz = Unicode::Collate::Locale-> 32 new(locale => 'AZ', normalization => undef); 33 34ok($objAz->getlocale, 'az'); 35 36$objAz->change(level => 1); 37 38ok($objAz->lt("c", "c\x{327}")); 39ok($objAz->lt("cz","c\x{327}")); 40ok($objAz->gt("d", "c\x{327}")); 41ok($objAz->lt("g", "g\x{306}")); 42ok($objAz->lt("gz","g\x{306}")); 43ok($objAz->gt("h", "g\x{306}")); 44ok($objAz->lt("h", "I")); 45ok($objAz->lt("hz","I")); 46ok($objAz->lt("I", "i")); 47ok($objAz->lt("Iz","i")); 48ok($objAz->gt("j", "i")); 49ok($objAz->lt("o", "o\x{308}")); 50ok($objAz->lt("oz","o\x{308}")); 51ok($objAz->gt("p", "o\x{308}")); 52ok($objAz->lt("s", "s\x{327}")); 53ok($objAz->lt("sz","s\x{327}")); 54ok($objAz->gt("t", "s\x{327}")); 55ok($objAz->lt("u", "u\x{308}")); 56ok($objAz->lt("uz","u\x{308}")); 57ok($objAz->gt("v", "u\x{308}")); 58 59# 22 60 61ok($objAz->lt("k", "q")); 62ok($objAz->lt("kz","q")); 63ok($objAz->gt("l", "q")); 64ok($objAz->lt("e", "\x{259}")); 65ok($objAz->lt("ez","\x{259}")); 66ok($objAz->gt("f", "\x{259}")); 67ok($objAz->lt("h", "x")); 68ok($objAz->lt("hz","x")); 69ok($objAz->lt("x", "I")); 70ok($objAz->lt("xz","I")); 71ok($objAz->lt("x", "i")); 72ok($objAz->lt("xz","i")); 73ok($objAz->lt("z", "w")); 74ok($objAz->lt("zz","w")); 75 76# 36 77 78$objAz->change(level => 2); 79 80ok($objAz->eq("c\x{327}", "C\x{327}")); 81ok($objAz->eq("g\x{306}", "G\x{306}")); 82ok($objAz->eq("\x{131}", "I")); 83ok($objAz->eq("\x{130}", "i")); 84ok($objAz->eq("o\x{308}", "O\x{308}")); 85ok($objAz->eq("s\x{327}", "S\x{327}")); 86ok($objAz->eq("u\x{308}", "U\x{308}")); 87ok($objAz->eq("q", "Q")); 88ok($objAz->eq("\x{259}", "\x{18F}")); 89ok($objAz->eq("x", "X")); 90ok($objAz->eq("z", "Z")); 91 92# 47 93 94$objAz->change(level => 3); 95 96ok($objAz->lt("c\x{327}", "C\x{327}")); 97ok($objAz->lt("g\x{306}", "G\x{306}")); 98ok($objAz->lt("\x{131}", "I")); 99ok($objAz->gt("\x{130}", "i")); 100ok($objAz->lt("o\x{308}", "O\x{308}")); 101ok($objAz->lt("s\x{327}", "S\x{327}")); 102ok($objAz->lt("u\x{308}", "U\x{308}")); 103ok($objAz->lt("q", "Q")); 104ok($objAz->lt("\x{259}", "\x{18F}")); 105ok($objAz->lt("x", "X")); 106ok($objAz->lt("z", "Z")); 107 108# 58 109 110ok($objAz->eq("c\x{327}", _pack_U(0xE7))); 111ok($objAz->eq("C\x{327}", _pack_U(0xC7))); 112ok($objAz->eq("g\x{306}", "\x{11F}")); 113ok($objAz->eq("G\x{306}", "\x{11E}")); 114ok($objAz->eq("I\x{300}", _pack_U(0xCC))); 115ok($objAz->eq("I\x{301}", _pack_U(0xCD))); 116ok($objAz->eq("I\x{302}", _pack_U(0xCE))); 117ok($objAz->eq("I\x{308}", _pack_U(0xCF))); 118ok($objAz->eq("I\x{304}", "\x{12A}")); 119ok($objAz->eq("I\x{306}", "\x{12C}")); 120ok($objAz->eq("I\x{328}", "\x{12E}")); 121ok($objAz->eq("I\x{307}", "\x{130}")); 122 123# 70 124 125ok($objAz->eq("o\x{308}", _pack_U(0xF6))); 126ok($objAz->eq("O\x{308}", _pack_U(0xD6))); 127ok($objAz->eq("o\x{308}\x{304}", "\x{22B}")); 128ok($objAz->eq("O\x{308}\x{304}", "\x{22A}")); 129ok($objAz->eq("s\x{327}", "\x{15F}")); 130ok($objAz->eq("S\x{327}", "\x{15E}")); 131ok($objAz->eq("u\x{308}", _pack_U(0xFC))); 132ok($objAz->eq("U\x{308}", _pack_U(0xDC))); 133ok($objAz->eq("u\x{308}\x{300}", "\x{1DC}")); 134ok($objAz->eq("U\x{308}\x{300}", "\x{1DB}")); 135ok($objAz->eq("u\x{308}\x{301}", "\x{1D8}")); 136ok($objAz->eq("U\x{308}\x{301}", "\x{1D7}")); 137ok($objAz->eq("u\x{308}\x{304}", "\x{1D6}")); 138ok($objAz->eq("U\x{308}\x{304}", "\x{1D5}")); 139ok($objAz->eq("u\x{308}\x{30C}", "\x{1DA}")); 140ok($objAz->eq("U\x{308}\x{30C}", "\x{1D9}")); 141 142# 86 143