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..49\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 $objHaw = Unicode::Collate::Locale-> 37 new(locale => 'HAW', normalization => undef); 38 39ok($objHaw->getlocale, 'haw'); 40 41$objHaw->change(level => 1); 42 43ok($objHaw->lt('a', 'e')); 44ok($objHaw->lt('e', 'i')); 45ok($objHaw->lt('i', 'o')); 46ok($objHaw->lt('o', 'u')); 47ok($objHaw->lt('u', 'h')); 48ok($objHaw->lt('h', 'k')); 49ok($objHaw->lt('k', 'l')); 50ok($objHaw->lt('l', 'm')); 51ok($objHaw->lt('m', 'n')); 52ok($objHaw->lt('n', 'p')); 53ok($objHaw->lt('p', 'w')); 54ok($objHaw->lt('w', "\x{2BB}")); 55ok($objHaw->gt('b', "\x{2BB}")); 56 57# 15 58 59$objHaw->change(level => 2); 60 61ok($objHaw->eq('a', 'A')); 62ok($objHaw->eq('e', 'E')); 63ok($objHaw->eq('i', 'I')); 64ok($objHaw->eq('o', 'O')); 65ok($objHaw->eq('u', 'U')); 66ok($objHaw->eq('h', 'H')); 67ok($objHaw->eq('k', 'K')); 68ok($objHaw->eq('l', 'L')); 69ok($objHaw->eq('m', 'M')); 70ok($objHaw->eq('n', 'N')); 71ok($objHaw->eq('p', 'P')); 72ok($objHaw->eq('w', 'W')); 73 74# 27 75 76$objHaw->change(level => 3); 77 78ok($objHaw->lt('a', 'A')); 79ok($objHaw->lt('e', 'E')); 80ok($objHaw->lt('i', 'I')); 81ok($objHaw->lt('o', 'O')); 82ok($objHaw->lt('u', 'U')); 83ok($objHaw->lt('h', 'H')); 84ok($objHaw->lt('k', 'K')); 85ok($objHaw->lt('l', 'L')); 86ok($objHaw->lt('m', 'M')); 87ok($objHaw->lt('n', 'N')); 88ok($objHaw->lt('p', 'P')); 89ok($objHaw->lt('w', 'W')); 90 91# 39 92 93ok($objHaw->eq("a\x{304}", "\x{101}")); 94ok($objHaw->eq("A\x{304}", "\x{100}")); 95ok($objHaw->eq("e\x{304}", "\x{113}")); 96ok($objHaw->eq("E\x{304}", "\x{112}")); 97ok($objHaw->eq("i\x{304}", "\x{12B}")); 98ok($objHaw->eq("I\x{304}", "\x{12A}")); 99ok($objHaw->eq("o\x{304}", "\x{14D}")); 100ok($objHaw->eq("O\x{304}", "\x{14C}")); 101ok($objHaw->eq("u\x{304}", "\x{16B}")); 102ok($objHaw->eq("U\x{304}", "\x{16A}")); 103 104# 49 105