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..112\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 $objIg = Unicode::Collate::Locale-> 32 new(locale => 'IG', normalization => undef); 33 34ok($objIg->getlocale, 'ig'); 35 36$objIg->change(level => 1); 37 38ok($objIg->lt("b", "ch")); 39ok($objIg->lt("bz","ch")); 40ok($objIg->gt("c", "ch")); 41ok($objIg->lt("g", "gb")); 42ok($objIg->lt("gz","gb")); 43ok($objIg->lt("gb","gh")); 44ok($objIg->lt("gbz","gh")); 45ok($objIg->lt("gh","gw")); 46ok($objIg->lt("ghz","gw")); 47ok($objIg->gt("h", "gw")); 48ok($objIg->lt("i", "i\x{323}")); 49ok($objIg->gt("j", "i\x{323}")); 50ok($objIg->lt("k", "kp")); 51ok($objIg->lt("kz","kp")); 52ok($objIg->lt("kp","kw")); 53ok($objIg->lt("kpz","kw")); 54ok($objIg->gt("l", "kw")); 55ok($objIg->lt("n", "n\x{307}")); 56ok($objIg->lt("nz","n\x{307}")); 57ok($objIg->gt("nw","n\x{307}")); 58ok($objIg->lt("nw", "ny")); 59ok($objIg->lt("nwz","ny")); 60ok($objIg->gt("o", "ny")); 61ok($objIg->lt("o", "o\x{323}")); 62ok($objIg->gt("p", "o\x{323}")); 63ok($objIg->lt("s", "sh")); 64ok($objIg->lt("sz","sh")); 65ok($objIg->gt("t", "sh")); 66ok($objIg->lt("u", "u\x{323}")); 67ok($objIg->gt("v", "u\x{323}")); 68 69# 32 70 71$objIg->change(level => 2); 72 73ok($objIg->eq("ch", "Ch")); 74ok($objIg->eq("Ch", "CH")); 75ok($objIg->eq("gb", "Gb")); 76ok($objIg->eq("Gb", "GB")); 77ok($objIg->eq("gh", "Gh")); 78ok($objIg->eq("Gh", "GH")); 79ok($objIg->eq("gw", "Gw")); 80ok($objIg->eq("Gw", "GW")); 81ok($objIg->eq("i\x{323}", "I\x{323}")); 82ok($objIg->eq("kp", "Kp")); 83ok($objIg->eq("Kp", "KP")); 84ok($objIg->eq("kw", "Kw")); 85ok($objIg->eq("Kw", "KW")); 86ok($objIg->eq("n\x{307}", "N\x{307}")); 87ok($objIg->eq("nw", "Nw")); 88ok($objIg->eq("Nw", "NW")); 89ok($objIg->eq("ny", "Ny")); 90ok($objIg->eq("Ny", "NY")); 91ok($objIg->eq("o\x{323}", "O\x{323}")); 92ok($objIg->eq("sh", "Sh")); 93ok($objIg->eq("Sh", "SH")); 94ok($objIg->eq("u\x{323}", "U\x{323}")); 95 96# 54 97 98$objIg->change(level => 3); 99 100ok($objIg->lt("ch", "Ch")); 101ok($objIg->lt("Ch", "CH")); 102ok($objIg->lt("gb", "Gb")); 103ok($objIg->lt("Gb", "GB")); 104ok($objIg->lt("gh", "Gh")); 105ok($objIg->lt("Gh", "GH")); 106ok($objIg->lt("gw", "Gw")); 107ok($objIg->lt("Gw", "GW")); 108ok($objIg->lt("i\x{323}", "I\x{323}")); 109ok($objIg->lt("kp", "Kp")); 110ok($objIg->lt("Kp", "KP")); 111ok($objIg->lt("kw", "Kw")); 112ok($objIg->lt("Kw", "KW")); 113ok($objIg->lt("n\x{307}", "N\x{307}")); 114ok($objIg->lt("nw", "Nw")); 115ok($objIg->lt("Nw", "NW")); 116ok($objIg->lt("ny", "Ny")); 117ok($objIg->lt("Ny", "NY")); 118ok($objIg->lt("o\x{323}", "O\x{323}")); 119ok($objIg->lt("sh", "Sh")); 120ok($objIg->lt("Sh", "SH")); 121ok($objIg->lt("u\x{323}", "U\x{323}")); 122 123# 76 124 125ok($objIg->eq("i\x{323}", "\x{1ECB}")); 126ok($objIg->eq("I\x{323}", "\x{1ECA}")); 127ok($objIg->eq("n\x{307}", "\x{1E45}")); 128ok($objIg->eq("N\x{307}", "\x{1E44}")); 129ok($objIg->eq("o\x{323}", "\x{1ECD}")); 130ok($objIg->eq("O\x{323}", "\x{1ECC}")); 131ok($objIg->eq("u\x{323}", "\x{1EE5}")); 132ok($objIg->eq("U\x{323}", "\x{1EE4}")); 133 134ok($objIg->eq("o\x{323}\x{302}", "\x{1ED9}")); 135ok($objIg->eq("O\x{323}\x{302}", "\x{1ED8}")); 136ok($objIg->eq("o\x{323}\x{31B}", "\x{1EE3}")); 137ok($objIg->eq("O\x{323}\x{31B}", "\x{1EE2}")); 138ok($objIg->eq("u\x{323}\x{31B}", "\x{1EF1}")); 139ok($objIg->eq("U\x{323}\x{31B}", "\x{1EF0}")); 140 141# 90 142 143$objIg->change(upper_before_lower => 1); 144 145ok($objIg->gt("ch", "Ch")); 146ok($objIg->gt("Ch", "CH")); 147ok($objIg->gt("gb", "Gb")); 148ok($objIg->gt("Gb", "GB")); 149ok($objIg->gt("gh", "Gh")); 150ok($objIg->gt("Gh", "GH")); 151ok($objIg->gt("gw", "Gw")); 152ok($objIg->gt("Gw", "GW")); 153ok($objIg->gt("i\x{323}", "I\x{323}")); 154ok($objIg->gt("kp", "Kp")); 155ok($objIg->gt("Kp", "KP")); 156ok($objIg->gt("kw", "Kw")); 157ok($objIg->gt("Kw", "KW")); 158ok($objIg->gt("n\x{307}", "N\x{307}")); 159ok($objIg->gt("nw", "Nw")); 160ok($objIg->gt("Nw", "NW")); 161ok($objIg->gt("ny", "Ny")); 162ok($objIg->gt("Ny", "NY")); 163ok($objIg->gt("o\x{323}", "O\x{323}")); 164ok($objIg->gt("sh", "Sh")); 165ok($objIg->gt("Sh", "SH")); 166ok($objIg->gt("u\x{323}", "U\x{323}")); 167 168# 112 169