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..52\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 $objKo = Unicode::Collate::Locale-> 37 new(locale => 'KO', normalization => undef); 38 39ok($objKo->getlocale, 'ko'); 40 41$objKo->change(level => 1); 42 43ok($objKo->eq("\x{AC00}", "\x{4F3D}")); 44ok($objKo->eq("\x{4F3D}", "\x{4F73}")); 45ok($objKo->eq("\x{4F73}", "\x{5047}")); 46ok($objKo->eq("\x{5047}", "\x{50F9}")); 47ok($objKo->eq("\x{50F9}", "\x{52A0}")); 48ok($objKo->eq("\x{52A0}", "\x{53EF}")); 49ok($objKo->lt("\x{53EF}", "\x{AC01}")); 50 51ok($objKo->eq("\x{AC1D}", "\x{5580}")); 52ok($objKo->eq("\x{5580}", "\x{5BA2}")); 53ok($objKo->lt("\x{5BA2}", "\x{AC31}")); 54 55ok($objKo->eq("\x{C77C}", "\x{4E00}")); 56ok($objKo->eq("\x{4E00}", "\x{4F5A}")); 57ok($objKo->eq("\x{4F5A}", "\x{4F7E}")); 58 59ok($objKo->lt("\x{993C}", "\x{D790}")); 60ok($objKo->eq("\x{D790}", "\x{8A70}")); 61ok($objKo->eq("\x{8A70}", "\x{72B5}")); 62ok($objKo->eq("\x{72B5}", "\x{7E88}")); 63ok($objKo->eq("\x{7E88}", "\x{896D}")); 64ok($objKo->eq("\x{896D}", "\x{9821}")); 65ok($objKo->eq("\x{9821}", "\x{9EE0}")); 66 67# 22 68 69# Ext.B 70ok($objKo->lt("\x{20000}", "\x{20001}")); 71ok($objKo->lt("\x{20001}", "\x{20002}")); 72ok($objKo->lt("\x{20002}", "\x{20003}")); 73ok($objKo->lt("\x{20003}", "\x{20004}")); 74ok($objKo->lt("\x{20004}", "\x{20005}")); 75 76# 27 77 78$objKo->change(level => 2); 79 80ok($objKo->lt("\x{AC00}", "\x{4F3D}")); 81ok($objKo->lt("\x{4F3D}", "\x{4F73}")); 82ok($objKo->lt("\x{4F73}", "\x{5047}")); 83ok($objKo->lt("\x{5047}", "\x{50F9}")); 84ok($objKo->lt("\x{50F9}", "\x{52A0}")); 85ok($objKo->lt("\x{52A0}", "\x{53EF}")); 86ok($objKo->lt("\x{53EF}", "\x{AC01}")); 87 88ok($objKo->lt("\x{AC1D}", "\x{5580}")); 89ok($objKo->lt("\x{5580}", "\x{5BA2}")); 90ok($objKo->lt("\x{5BA2}", "\x{AC31}")); 91 92ok($objKo->lt("\x{C77C}", "\x{4E00}")); 93ok($objKo->lt("\x{4E00}", "\x{4F5A}")); 94ok($objKo->lt("\x{4F5A}", "\x{4F7E}")); 95 96ok($objKo->lt("\x{993C}", "\x{D790}")); 97ok($objKo->lt("\x{D790}", "\x{8A70}")); 98ok($objKo->lt("\x{8A70}", "\x{72B5}")); 99ok($objKo->lt("\x{72B5}", "\x{7E88}")); 100ok($objKo->lt("\x{7E88}", "\x{896D}")); 101ok($objKo->lt("\x{896D}", "\x{9821}")); 102ok($objKo->lt("\x{9821}", "\x{9EE0}")); 103 104# 47 105 106# Ext.B 107ok($objKo->lt("\x{20000}", "\x{20001}")); 108ok($objKo->lt("\x{20001}", "\x{20002}")); 109ok($objKo->lt("\x{20002}", "\x{20003}")); 110ok($objKo->lt("\x{20003}", "\x{20004}")); 111ok($objKo->lt("\x{20004}", "\x{20005}")); 112 113# 52 114