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