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..41\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 $objOm = Unicode::Collate::Locale-> 37 new(locale => 'OM', normalization => undef); 38 39ok($objOm->getlocale, 'om'); 40 41$objOm->change(level => 1); 42 43ok($objOm->lt("z", "ch")); 44ok($objOm->lt("ch", "dh")); 45ok($objOm->lt("dh", "kh")); 46ok($objOm->lt("kh", "ny")); 47ok($objOm->lt("ny", "ph")); 48ok($objOm->lt("ph", "sh")); 49 50# 8 51 52$objOm->change(level => 2); 53 54ok($objOm->eq("ch", "Ch")); 55ok($objOm->eq("Ch", "CH")); 56ok($objOm->eq("dh", "Dh")); 57ok($objOm->eq("Dh", "DH")); 58ok($objOm->eq("kh", "Kh")); 59ok($objOm->eq("Kh", "KH")); 60ok($objOm->eq("ny", "Ny")); 61ok($objOm->eq("Ny", "NY")); 62ok($objOm->eq("ph", "Ph")); 63ok($objOm->eq("Ph", "PH")); 64ok($objOm->eq("sh", "Sh")); 65 66# 19 67 68$objOm->change(level => 3); 69 70ok($objOm->lt("ch", "Ch")); 71ok($objOm->lt("Ch", "CH")); 72ok($objOm->lt("dh", "Dh")); 73ok($objOm->lt("Dh", "DH")); 74ok($objOm->lt("kh", "Kh")); 75ok($objOm->lt("Kh", "KH")); 76ok($objOm->lt("ny", "Ny")); 77ok($objOm->lt("Ny", "NY")); 78ok($objOm->lt("ph", "Ph")); 79ok($objOm->lt("Ph", "PH")); 80ok($objOm->lt("sh", "Sh")); 81 82# 30 83 84$objOm->change(upper_before_lower => 1); 85 86ok($objOm->gt("ch", "Ch")); 87ok($objOm->gt("Ch", "CH")); 88ok($objOm->gt("dh", "Dh")); 89ok($objOm->gt("Dh", "DH")); 90ok($objOm->gt("kh", "Kh")); 91ok($objOm->gt("Kh", "KH")); 92ok($objOm->gt("ny", "Ny")); 93ok($objOm->gt("Ny", "NY")); 94ok($objOm->gt("ph", "Ph")); 95ok($objOm->gt("Ph", "PH")); 96ok($objOm->gt("sh", "Sh")); 97 98# 41 99