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