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..74\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 $objCy = Unicode::Collate::Locale-> 32 new(locale => 'CY', normalization => undef); 33 34ok($objCy->getlocale, 'cy'); 35 36$objCy->change(level => 1); 37 38ok($objCy->lt("c", "ch")); 39ok($objCy->lt("cz","ch")); 40ok($objCy->gt("d", "ch")); 41ok($objCy->lt("d", "dd")); 42ok($objCy->lt("dz","dd")); 43ok($objCy->gt("e", "dd")); 44ok($objCy->lt("f", "ff")); 45ok($objCy->lt("fz","ff")); 46ok($objCy->gt("g", "ff")); 47ok($objCy->lt("g", "ng")); 48ok($objCy->lt("gz","ng")); 49ok($objCy->gt("h", "ng")); 50ok($objCy->lt("l", "ll")); 51ok($objCy->lt("lz","ll")); 52ok($objCy->gt("m", "ll")); 53ok($objCy->lt("p", "ph")); 54ok($objCy->lt("pz","ph")); 55ok($objCy->gt("q", "ph")); 56ok($objCy->lt("r", "rh")); 57ok($objCy->lt("rz","rh")); 58ok($objCy->gt("s", "rh")); 59ok($objCy->lt("t", "th")); 60ok($objCy->lt("tz","th")); 61ok($objCy->gt("u", "th")); 62 63# 26 64 65$objCy->change(level => 2); 66 67ok($objCy->eq("ch", "Ch")); 68ok($objCy->eq("Ch", "CH")); 69ok($objCy->eq("dd", "Dd")); 70ok($objCy->eq("Dd", "DD")); 71ok($objCy->eq("ff", "Ff")); 72ok($objCy->eq("Ff", "FF")); 73ok($objCy->eq("ng", "Ng")); 74ok($objCy->eq("Ng", "NG")); 75ok($objCy->eq("ll", "Ll")); 76ok($objCy->eq("Ll", "LL")); 77ok($objCy->eq("ph", "Ph")); 78ok($objCy->eq("Ph", "PH")); 79ok($objCy->eq("rh", "Rh")); 80ok($objCy->eq("Rh", "RH")); 81ok($objCy->eq("th", "Th")); 82ok($objCy->eq("Th", "TH")); 83 84# 42 85 86$objCy->change(level => 3); 87 88ok($objCy->lt("ch", "Ch")); 89ok($objCy->lt("Ch", "CH")); 90ok($objCy->lt("dd", "Dd")); 91ok($objCy->lt("Dd", "DD")); 92ok($objCy->lt("ff", "Ff")); 93ok($objCy->lt("Ff", "FF")); 94ok($objCy->lt("ng", "Ng")); 95ok($objCy->lt("Ng", "NG")); 96ok($objCy->lt("ll", "Ll")); 97ok($objCy->lt("Ll", "LL")); 98ok($objCy->lt("ph", "Ph")); 99ok($objCy->lt("Ph", "PH")); 100ok($objCy->lt("rh", "Rh")); 101ok($objCy->lt("Rh", "RH")); 102ok($objCy->lt("th", "Th")); 103ok($objCy->lt("Th", "TH")); 104 105# 58 106 107$objCy->change(upper_before_lower => 1); 108 109ok($objCy->gt("ch", "Ch")); 110ok($objCy->gt("Ch", "CH")); 111ok($objCy->gt("dd", "Dd")); 112ok($objCy->gt("Dd", "DD")); 113ok($objCy->gt("ff", "Ff")); 114ok($objCy->gt("Ff", "FF")); 115ok($objCy->gt("ng", "Ng")); 116ok($objCy->gt("Ng", "NG")); 117ok($objCy->gt("ll", "Ll")); 118ok($objCy->gt("Ll", "LL")); 119ok($objCy->gt("ph", "Ph")); 120ok($objCy->gt("Ph", "PH")); 121ok($objCy->gt("rh", "Rh")); 122ok($objCy->gt("Rh", "RH")); 123ok($objCy->gt("th", "Th")); 124ok($objCy->gt("Th", "TH")); 125 126# 74 127