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..104\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 $objTa = Unicode::Collate::Locale-> 37 new(locale => 'TA', normalization => undef); 38 39ok($objTa->getlocale, 'ta'); 40 41$objTa->change(level => 1); 42 43my $Kssa = "\x{B95}\x{BCD}\x{BB7}"; 44my $v = "\x{BCD}"; 45 46for my $h (0, 1) { 47 no warnings 'utf8'; 48 my $t = $h ? pack('U', 0xFFFF) : ""; 49 $objTa->change(highestFFFF => 1) if $h; 50 51 ok($objTa->lt("\x{B94}$t", "\x{B82}")); 52 ok($objTa->lt("\x{B82}$t", "\x{B83}")); 53 ok($objTa->lt("\x{B83}$t", "\x{B95}$v")); 54 ok($objTa->lt("\x{B95}$v$t", "\x{B95}")); 55 ok($objTa->lt("\x{B95}$t", "\x{B99}$v")); 56 ok($objTa->lt("\x{B99}$v$t", "\x{B99}")); 57 ok($objTa->lt("\x{B99}$t", "\x{B9A}$v")); 58 ok($objTa->lt("\x{B9A}$v$t", "\x{B9A}")); 59 ok($objTa->lt("\x{B9A}$t", "\x{B9E}$v")); 60 ok($objTa->lt("\x{B9E}$v$t", "\x{B9E}")); 61 ok($objTa->lt("\x{B9E}$t", "\x{B9F}$v")); 62 ok($objTa->lt("\x{B9F}$v$t", "\x{B9F}")); 63 ok($objTa->lt("\x{B9F}$t", "\x{BA3}$v")); 64 ok($objTa->lt("\x{BA3}$v$t", "\x{BA3}")); 65 ok($objTa->lt("\x{BA3}$t", "\x{BA4}$v")); 66 ok($objTa->lt("\x{BA4}$v$t", "\x{BA4}")); 67 ok($objTa->lt("\x{BA4}$t", "\x{BA8}$v")); 68 ok($objTa->lt("\x{BA8}$v$t", "\x{BA8}")); 69 ok($objTa->lt("\x{BA8}$t", "\x{BAA}$v")); 70 ok($objTa->lt("\x{BAA}$v$t", "\x{BAA}")); 71 ok($objTa->lt("\x{BAA}$t", "\x{BAE}$v")); 72 ok($objTa->lt("\x{BAE}$v$t", "\x{BAE}")); 73 ok($objTa->lt("\x{BAE}$t", "\x{BAF}$v")); 74 ok($objTa->lt("\x{BAF}$v$t", "\x{BAF}")); 75 ok($objTa->lt("\x{BAF}$t", "\x{BB0}$v")); 76 ok($objTa->lt("\x{BB0}$v$t", "\x{BB0}")); 77 ok($objTa->lt("\x{BB0}$t", "\x{BB2}$v")); 78 ok($objTa->lt("\x{BB2}$v$t", "\x{BB2}")); 79 ok($objTa->lt("\x{BB2}$t", "\x{BB5}$v")); 80 ok($objTa->lt("\x{BB5}$v$t", "\x{BB5}")); 81 ok($objTa->lt("\x{BB5}$t", "\x{BB4}$v")); 82 ok($objTa->lt("\x{BB4}$v$t", "\x{BB4}")); 83 ok($objTa->lt("\x{BB4}$t", "\x{BB3}$v")); 84 ok($objTa->lt("\x{BB3}$v$t", "\x{BB3}")); 85 ok($objTa->lt("\x{BB3}$t", "\x{BB1}$v")); 86 ok($objTa->lt("\x{BB1}$v$t", "\x{BB1}")); 87 ok($objTa->lt("\x{BB1}$t", "\x{BA9}$v")); 88 ok($objTa->lt("\x{BA9}$v$t", "\x{BA9}")); 89 ok($objTa->lt("\x{BA9}$t", "\x{B9C}$v")); 90 ok($objTa->lt("\x{B9C}$v$t", "\x{B9C}")); 91 ok($objTa->lt("\x{B9C}$t", "\x{BB6}$v")); 92 ok($objTa->lt("\x{BB6}$v$t", "\x{BB6}")); 93 ok($objTa->lt("\x{BB6}$t", "\x{BB7}$v")); 94 ok($objTa->lt("\x{BB7}$v$t", "\x{BB7}")); 95 ok($objTa->lt("\x{BB7}$t", "\x{BB8}$v")); 96 ok($objTa->lt("\x{BB8}$v$t", "\x{BB8}")); 97 ok($objTa->lt("\x{BB8}$t", "\x{BB9}$v")); 98 ok($objTa->lt("\x{BB9}$v$t", "\x{BB9}")); 99 ok($objTa->lt("\x{BB9}$t", "${Kssa}$v")); 100 ok($objTa->lt("${Kssa}$v$t", "${Kssa}")); 101 ok($objTa->lt("${Kssa}$t", "\x{BBE}")); 102} 103 104# 104 105