1 2BEGIN { 3 unless ('A' eq pack('U', 0x41)) { 4 print "1..0 # Unicode::Collate cannot pack a Unicode code point\n"; 5 exit 0; 6 } 7 unless (0x41 == unpack('U', 'A')) { 8 print "1..0 # Unicode::Collate cannot get a Unicode code point\n"; 9 exit 0; 10 } 11 if ($ENV{PERL_CORE}) { 12 chdir('t') if -d 't'; 13 @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); 14 } 15} 16 17use strict; 18use warnings; 19BEGIN { $| = 1; print "1..78\n"; } 20my $count = 0; 21sub ok ($;$) { 22 my $p = my $r = shift; 23 if (@_) { 24 my $x = shift; 25 $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; 26 } 27 print $p ? "ok" : "not ok", ' ', ++$count, "\n"; 28} 29 30use Unicode::Collate::Locale; 31 32ok(1); 33 34######################### 35 36my $objWae = Unicode::Collate::Locale-> 37 new(locale => 'WAE', normalization => undef); 38 39ok($objWae->getlocale, 'wae'); 40 41$objWae->change(level => 1); 42 43ok($objWae->lt("aa", "a9")); 44ok($objWae->gt("aA", "a9")); 45ok($objWae->gt("Aa", "a9")); 46ok($objWae->gt("AA", "a9")); 47ok($objWae->lt("ee", "e9")); 48ok($objWae->gt("eE", "e9")); 49ok($objWae->gt("Ee", "e9")); 50ok($objWae->gt("EE", "e9")); 51ok($objWae->lt("ii", "i9")); 52ok($objWae->gt("iI", "i9")); 53ok($objWae->gt("Ii", "i9")); 54ok($objWae->gt("II", "i9")); 55ok($objWae->lt("oo", "o9")); 56ok($objWae->gt("oO", "o9")); 57ok($objWae->gt("Oo", "o9")); 58ok($objWae->gt("OO", "o9")); 59ok($objWae->lt("uu", "u9")); 60ok($objWae->gt("uU", "u9")); 61ok($objWae->gt("Uu", "u9")); 62ok($objWae->gt("UU", "u9")); 63 64# 22 65 66ok($objWae->lt("ch", "c9")); 67ok($objWae->gt("cH", "c9")); 68ok($objWae->gt("Ch", "c9")); 69ok($objWae->gt("CH", "c9")); 70 71ok($objWae->lt("sch", "s9")); 72ok($objWae->gt("scH", "s9")); 73ok($objWae->gt("sCh", "s9")); 74ok($objWae->gt("sCH", "s9")); 75ok($objWae->gt("Sch", "s9")); 76ok($objWae->gt("ScH", "s9")); 77ok($objWae->gt("SCh", "s9")); 78ok($objWae->gt("SCH", "s9")); 79 80# 34 81 82ok($objWae->lt("a\x{308}a\x{308}", "a9")); 83ok($objWae->gt("a\x{308}A\x{308}", "a9")); 84ok($objWae->gt("A\x{308}a\x{308}", "a9")); 85ok($objWae->gt("A\x{308}A\x{308}", "a9")); 86ok($objWae->lt("o\x{308}o\x{308}", "o9")); 87ok($objWae->gt("o\x{308}O\x{308}", "o9")); 88ok($objWae->gt("O\x{308}o\x{308}", "o9")); 89ok($objWae->gt("O\x{308}O\x{308}", "o9")); 90ok($objWae->lt("u\x{308}u\x{308}", "u9")); 91ok($objWae->gt("u\x{308}U\x{308}", "u9")); 92ok($objWae->gt("U\x{308}u\x{308}", "u9")); 93ok($objWae->gt("U\x{308}U\x{308}", "u9")); 94 95# 46 96 97$objWae->change(level => 3); 98 99ok($objWae->eq("a\x{301}", pack('U', 0xE1))); 100ok($objWae->eq("e\x{301}", pack('U', 0xE9))); 101ok($objWae->eq("i\x{301}", pack('U', 0xED))); 102ok($objWae->eq("o\x{301}", pack('U', 0xF3))); 103ok($objWae->eq("u\x{301}", pack('U', 0xFA))); 104ok($objWae->eq("a\x{301}", "aa")); 105ok($objWae->eq("e\x{301}", "ee")); 106ok($objWae->eq("i\x{301}", "ii")); 107ok($objWae->eq("o\x{301}", "oo")); 108ok($objWae->eq("u\x{301}", "uu")); 109 110# 56 111 112ok($objWae->eq("c\x{30C}", "\x{10D}")); 113ok($objWae->eq("s\x{30C}", "\x{161}")); 114ok($objWae->eq("c\x{30C}", "ch")); 115ok($objWae->eq("s\x{30C}", "sch")); 116 117# 60 118 119my $a1 = pack('U', 0xE4); 120my $o1 = pack('U', 0xF6); 121my $u1 = pack('U', 0xFC); 122my $a2 = "a\x{308}"; 123my $o2 = "o\x{308}"; 124my $u2 = "u\x{308}"; 125 126ok($objWae->eq($a1, $a2)); 127ok($objWae->eq($o1, $o2)); 128ok($objWae->eq($u1, $u2)); 129 130ok($objWae->eq("a\x{303}", pack('U', 0xE3))); 131ok($objWae->eq("o\x{303}", pack('U', 0xF5))); 132ok($objWae->eq("u\x{303}", "\x{169}")); 133 134# 66 135 136ok($objWae->eq("a\x{303}", $a1.$a1)); 137ok($objWae->eq("a\x{303}", $a1.$a2)); 138ok($objWae->eq("a\x{303}", $a2.$a1)); 139ok($objWae->eq("a\x{303}", $a2.$a2)); 140ok($objWae->eq("o\x{303}", $o1.$o1)); 141ok($objWae->eq("o\x{303}", $o1.$o2)); 142ok($objWae->eq("o\x{303}", $o2.$o1)); 143ok($objWae->eq("o\x{303}", $o2.$o2)); 144ok($objWae->eq("u\x{303}", $u1.$u1)); 145ok($objWae->eq("u\x{303}", $u1.$u2)); 146ok($objWae->eq("u\x{303}", $u2.$u1)); 147ok($objWae->eq("u\x{303}", $u2.$u2)); 148 149# 78 150