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..235\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 $objHu = Unicode::Collate::Locale-> 32 new(locale => 'HU', normalization => undef); 33 34ok($objHu->getlocale, 'hu'); 35 36$objHu->change(level => 1); 37 38ok($objHu->lt("c", "cs")); 39ok($objHu->lt("cz","cs")); 40ok($objHu->gt("d", "cs")); 41ok($objHu->lt("d", "dz")); 42ok($objHu->gt("dz","d\x{292}")); 43ok($objHu->lt("dz", "dzs")); 44ok($objHu->lt("dzz","dzs")); 45ok($objHu->gt("e", "dzs")); 46ok($objHu->lt("g", "gy")); 47ok($objHu->lt("gz","gy")); 48ok($objHu->gt("h", "gy")); 49ok($objHu->lt("l", "ly")); 50ok($objHu->lt("lz","ly")); 51ok($objHu->gt("m", "ly")); 52ok($objHu->lt("n", "ny")); 53ok($objHu->lt("nz","ny")); 54ok($objHu->gt("o", "ny")); 55ok($objHu->lt("s", "sz")); 56ok($objHu->gt("sz","s\x{292}")); 57ok($objHu->gt("t", "sz")); 58ok($objHu->lt("t", "ty")); 59ok($objHu->lt("tz","ty")); 60ok($objHu->gt("u", "ty")); 61ok($objHu->lt("z", "zs")); 62ok($objHu->lt("zz", "zs")); 63ok($objHu->lt("zs", "\x{292}")); 64 65# 28 66 67ok($objHu->lt("o", "o\x{308}")); 68ok($objHu->gt("p", "o\x{308}")); 69ok($objHu->lt("u", "u\x{308}")); 70ok($objHu->gt("v", "u\x{308}")); 71 72ok($objHu->eq("o\x{308}", "o\x{30B}")); 73ok($objHu->eq("u\x{308}", "u\x{30B}")); 74 75# 34 76 77$objHu->change(level => 2); 78 79ok($objHu->eq("cs", "cS")); 80ok($objHu->eq("cS", "Cs")); 81ok($objHu->eq("Cs", "CS")); 82ok($objHu->eq("dz", "dZ")); 83ok($objHu->eq("dZ", "Dz")); 84ok($objHu->eq("Dz", "DZ")); 85ok($objHu->eq("dzs", "dzS")); 86ok($objHu->eq("dzS", "dZs")); 87ok($objHu->eq("dZs", "dZS")); 88ok($objHu->eq("dZS", "Dzs")); 89ok($objHu->eq("Dzs", "DzS")); 90ok($objHu->eq("DzS", "DZs")); 91ok($objHu->eq("DZs", "DZS")); 92ok($objHu->eq("gy", "gY")); 93ok($objHu->eq("gY", "Gy")); 94ok($objHu->eq("Gy", "GY")); 95ok($objHu->eq("ly", "lY")); 96ok($objHu->eq("lY", "Ly")); 97ok($objHu->eq("Ly", "LY")); 98ok($objHu->eq("ny", "nY")); 99ok($objHu->eq("nY", "Ny")); 100ok($objHu->eq("Ny", "NY")); 101ok($objHu->eq("sz", "sZ")); 102ok($objHu->eq("sZ", "Sz")); 103ok($objHu->eq("Sz", "SZ")); 104ok($objHu->eq("ty", "tY")); 105ok($objHu->eq("tY", "Ty")); 106ok($objHu->eq("Ty", "TY")); 107ok($objHu->eq("zs", "zS")); 108ok($objHu->eq("zS", "Zs")); 109ok($objHu->eq("Zs", "ZS")); 110 111# 65 112 113ok($objHu->lt("o\x{308}", "o\x{30B}")); 114ok($objHu->lt("u\x{308}", "u\x{30B}")); 115 116ok($objHu->eq("o\x{308}", "O\x{308}")); 117ok($objHu->eq("o\x{30B}", "O\x{30B}")); 118ok($objHu->eq("u\x{308}", "U\x{308}")); 119ok($objHu->eq("u\x{30B}", "U\x{30B}")); 120 121# 71 122 123$objHu->change(level => 3); 124 125ok($objHu->lt("cs", "cS")); 126ok($objHu->lt("cS", "Cs")); 127ok($objHu->lt("Cs", "CS")); 128ok($objHu->lt("dz", "dZ")); 129ok($objHu->lt("dZ", "Dz")); 130ok($objHu->lt("Dz", "DZ")); 131ok($objHu->lt("dzs", "dzS")); 132ok($objHu->lt("dzS", "dZs")); 133ok($objHu->lt("dZs", "dZS")); 134ok($objHu->lt("dZS", "Dzs")); 135ok($objHu->lt("Dzs", "DzS")); 136ok($objHu->lt("DzS", "DZs")); 137ok($objHu->lt("DZs", "DZS")); 138ok($objHu->lt("gy", "gY")); 139ok($objHu->lt("gY", "Gy")); 140ok($objHu->lt("Gy", "GY")); 141ok($objHu->lt("ly", "lY")); 142ok($objHu->lt("lY", "Ly")); 143ok($objHu->lt("Ly", "LY")); 144ok($objHu->lt("ny", "nY")); 145ok($objHu->lt("nY", "Ny")); 146ok($objHu->lt("Ny", "NY")); 147ok($objHu->lt("sz", "sZ")); 148ok($objHu->lt("sZ", "Sz")); 149ok($objHu->lt("Sz", "SZ")); 150ok($objHu->lt("ty", "tY")); 151ok($objHu->lt("tY", "Ty")); 152ok($objHu->lt("Ty", "TY")); 153ok($objHu->lt("zs", "zS")); 154ok($objHu->lt("zS", "Zs")); 155ok($objHu->lt("Zs", "ZS")); 156 157# 102 158 159ok($objHu->lt("o\x{308}", "O\x{308}")); 160ok($objHu->lt("o\x{30B}", "O\x{30B}")); 161ok($objHu->lt("u\x{308}", "U\x{308}")); 162ok($objHu->lt("u\x{30B}", "U\x{30B}")); 163 164ok($objHu->eq("o\x{308}", _pack_U(0xF6))); 165ok($objHu->eq("O\x{308}", _pack_U(0xD6))); 166ok($objHu->eq("o\x{30B}", "\x{151}")); 167ok($objHu->eq("O\x{30B}", "\x{150}")); 168ok($objHu->eq("u\x{308}", _pack_U(0xFC))); 169ok($objHu->eq("U\x{308}", _pack_U(0xDC))); 170ok($objHu->eq("u\x{30B}", "\x{171}")); 171ok($objHu->eq("U\x{30B}", "\x{170}")); 172 173# 114 174 175ok($objHu->eq("o\x{308}\x{304}", "\x{22B}")); 176ok($objHu->eq("O\x{308}\x{304}", "\x{22A}")); 177ok($objHu->eq("u\x{308}\x{300}", "\x{1DC}")); 178ok($objHu->eq("U\x{308}\x{300}", "\x{1DB}")); 179ok($objHu->eq("u\x{308}\x{301}", "\x{1D8}")); 180ok($objHu->eq("U\x{308}\x{301}", "\x{1D7}")); 181ok($objHu->eq("u\x{308}\x{304}", "\x{1D6}")); 182ok($objHu->eq("U\x{308}\x{304}", "\x{1D5}")); 183ok($objHu->eq("u\x{308}\x{30C}", "\x{1DA}")); 184ok($objHu->eq("U\x{308}\x{30C}", "\x{1D9}")); 185 186# 124 187 188ok($objHu->eq("ccs", "cscs")); 189ok($objHu->eq("ccS", "cscS")); 190ok($objHu->eq("cCs", "csCs")); 191ok($objHu->eq("cCS", "csCS")); 192ok($objHu->eq("Ccs", "CScs")); 193ok($objHu->eq("CcS", "CScS")); 194ok($objHu->eq("CCs", "CSCs")); 195ok($objHu->eq("CCS", "CSCS")); 196ok($objHu->eq("ddz", "dzdz")); 197ok($objHu->eq("ddZ", "dzdZ")); 198ok($objHu->eq("dDz", "dzDz")); 199ok($objHu->eq("dDZ", "dzDZ")); 200ok($objHu->eq("Ddz", "DZdz")); 201ok($objHu->eq("DdZ", "DZdZ")); 202ok($objHu->eq("DDz", "DZDz")); 203ok($objHu->eq("DDZ", "DZDZ")); 204ok($objHu->eq("ddzs", "dzsdzs")); 205ok($objHu->eq("ddzS", "dzsdzS")); 206ok($objHu->eq("ddZs", "dzsdZs")); 207ok($objHu->eq("ddZS", "dzsdZS")); 208ok($objHu->eq("dDzs", "dzsDzs")); 209ok($objHu->eq("dDzS", "dzsDzS")); 210ok($objHu->eq("dDZs", "dzsDZs")); 211ok($objHu->eq("dDZS", "dzsDZS")); 212ok($objHu->eq("Ddzs", "DZSdzs")); 213ok($objHu->eq("DdzS", "DZSdzS")); 214ok($objHu->eq("DdZs", "DZSdZs")); 215ok($objHu->eq("DdZS", "DZSdZS")); 216ok($objHu->eq("DDzs", "DZSDzs")); 217ok($objHu->eq("DDzS", "DZSDzS")); 218ok($objHu->eq("DDZs", "DZSDZs")); 219ok($objHu->eq("DDZS", "DZSDZS")); 220ok($objHu->eq("ggy", "gygy")); 221ok($objHu->eq("ggY", "gygY")); 222ok($objHu->eq("gGy", "gyGy")); 223ok($objHu->eq("gGY", "gyGY")); 224ok($objHu->eq("Ggy", "GYgy")); 225ok($objHu->eq("GgY", "GYgY")); 226ok($objHu->eq("GGy", "GYGy")); 227ok($objHu->eq("GGY", "GYGY")); 228ok($objHu->eq("lly", "lyly")); 229ok($objHu->eq("llY", "lylY")); 230ok($objHu->eq("lLy", "lyLy")); 231ok($objHu->eq("lLY", "lyLY")); 232ok($objHu->eq("Lly", "LYly")); 233ok($objHu->eq("LlY", "LYlY")); 234ok($objHu->eq("LLy", "LYLy")); 235ok($objHu->eq("LLY", "LYLY")); 236ok($objHu->eq("nny", "nyny")); 237ok($objHu->eq("nnY", "nynY")); 238ok($objHu->eq("nNy", "nyNy")); 239ok($objHu->eq("nNY", "nyNY")); 240ok($objHu->eq("Nny", "NYny")); 241ok($objHu->eq("NnY", "NYnY")); 242ok($objHu->eq("NNy", "NYNy")); 243ok($objHu->eq("NNY", "NYNY")); 244ok($objHu->eq("ssz", "szsz")); 245ok($objHu->eq("ssZ", "szsZ")); 246ok($objHu->eq("sSz", "szSz")); 247ok($objHu->eq("sSZ", "szSZ")); 248ok($objHu->eq("Ssz", "SZsz")); 249ok($objHu->eq("SsZ", "SZsZ")); 250ok($objHu->eq("SSz", "SZSz")); 251ok($objHu->eq("SSZ", "SZSZ")); 252ok($objHu->eq("tty", "tyty")); 253ok($objHu->eq("ttY", "tytY")); 254ok($objHu->eq("tTy", "tyTy")); 255ok($objHu->eq("tTY", "tyTY")); 256ok($objHu->eq("Tty", "TYty")); 257ok($objHu->eq("TtY", "TYtY")); 258ok($objHu->eq("TTy", "TYTy")); 259ok($objHu->eq("TTY", "TYTY")); 260ok($objHu->eq("zzs", "zszs")); 261ok($objHu->eq("zzS", "zszS")); 262ok($objHu->eq("zZs", "zsZs")); 263ok($objHu->eq("zZS", "zsZS")); 264ok($objHu->eq("Zzs", "ZSzs")); 265ok($objHu->eq("ZzS", "ZSzS")); 266ok($objHu->eq("ZZs", "ZSZs")); 267ok($objHu->eq("ZZS", "ZSZS")); 268 269# 204 270 271$objHu->change(upper_before_lower => 1); 272 273ok($objHu->gt("cs", "cS")); 274ok($objHu->gt("cS", "Cs")); 275ok($objHu->gt("Cs", "CS")); 276ok($objHu->gt("dz", "dZ")); 277ok($objHu->gt("dZ", "Dz")); 278ok($objHu->gt("Dz", "DZ")); 279ok($objHu->gt("dzs", "dzS")); 280ok($objHu->gt("dzS", "dZs")); 281ok($objHu->gt("dZs", "dZS")); 282ok($objHu->gt("dZS", "Dzs")); 283ok($objHu->gt("Dzs", "DzS")); 284ok($objHu->gt("DzS", "DZs")); 285ok($objHu->gt("DZs", "DZS")); 286ok($objHu->gt("gy", "gY")); 287ok($objHu->gt("gY", "Gy")); 288ok($objHu->gt("Gy", "GY")); 289ok($objHu->gt("ly", "lY")); 290ok($objHu->gt("lY", "Ly")); 291ok($objHu->gt("Ly", "LY")); 292ok($objHu->gt("ny", "nY")); 293ok($objHu->gt("nY", "Ny")); 294ok($objHu->gt("Ny", "NY")); 295ok($objHu->gt("sz", "sZ")); 296ok($objHu->gt("sZ", "Sz")); 297ok($objHu->gt("Sz", "SZ")); 298ok($objHu->gt("ty", "tY")); 299ok($objHu->gt("tY", "Ty")); 300ok($objHu->gt("Ty", "TY")); 301ok($objHu->gt("zs", "zS")); 302ok($objHu->gt("zS", "Zs")); 303ok($objHu->gt("Zs", "ZS")); 304 305# 235 306