1898184e3Ssthen 2898184e3SsthenBEGIN { 3898184e3Ssthen if ($ENV{PERL_CORE}) { 4898184e3Ssthen chdir('t') if -d 't'; 5898184e3Ssthen @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); 6898184e3Ssthen } 7898184e3Ssthen} 8898184e3Ssthen 9898184e3Ssthenuse strict; 10898184e3Ssthenuse warnings; 11898184e3SsthenBEGIN { $| = 1; print "1..40\n"; } 12898184e3Ssthenmy $count = 0; 13898184e3Ssthensub ok ($;$) { 14898184e3Ssthen my $p = my $r = shift; 15898184e3Ssthen if (@_) { 16898184e3Ssthen my $x = shift; 17898184e3Ssthen $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; 18898184e3Ssthen } 19898184e3Ssthen print $p ? "ok" : "not ok", ' ', ++$count, "\n"; 20898184e3Ssthen} 21898184e3Ssthen 22898184e3Ssthenuse Unicode::Collate::Locale; 23898184e3Ssthen 24898184e3Ssthenok(1); 25898184e3Ssthen 26*256a93a4Safresh1sub _pack_U { Unicode::Collate::pack_U(@_) } 27*256a93a4Safresh1sub _unpack_U { Unicode::Collate::unpack_U(@_) } 28*256a93a4Safresh1 29898184e3Ssthen######################### 30898184e3Ssthen 31898184e3Ssthenmy $objNso = Unicode::Collate::Locale-> 32898184e3Ssthen new(locale => 'NSO', normalization => undef); 33898184e3Ssthen 34898184e3Ssthenok($objNso->getlocale, 'nso'); 35898184e3Ssthen 36898184e3Ssthen$objNso->change(level => 1); 37898184e3Ssthen 38898184e3Ssthenok($objNso->lt("e", "e\x{302}")); 39898184e3Ssthenok($objNso->gt("f", "e\x{302}")); 40898184e3Ssthenok($objNso->lt("o", "o\x{302}")); 41898184e3Ssthenok($objNso->gt("p", "o\x{302}")); 42898184e3Ssthenok($objNso->lt("s", "s\x{30C}")); 43898184e3Ssthenok($objNso->gt("t", "s\x{30C}")); 44898184e3Ssthen 45898184e3Ssthen# 8 46898184e3Ssthen 47898184e3Ssthen$objNso->change(level => 2); 48898184e3Ssthen 49898184e3Ssthenok($objNso->eq("e\x{302}", "E\x{302}")); 50898184e3Ssthenok($objNso->eq("o\x{302}", "O\x{302}")); 51898184e3Ssthenok($objNso->eq("s\x{30C}", "S\x{30C}")); 52898184e3Ssthen 53898184e3Ssthen$objNso->change(level => 3); 54898184e3Ssthen 55898184e3Ssthenok($objNso->lt("e\x{302}", "E\x{302}")); 56898184e3Ssthenok($objNso->lt("o\x{302}", "O\x{302}")); 57898184e3Ssthenok($objNso->lt("s\x{30C}", "S\x{30C}")); 58898184e3Ssthen 59898184e3Ssthen# 14 60898184e3Ssthen 61*256a93a4Safresh1ok($objNso->eq("e\x{302}", _pack_U(0xEA))); 62*256a93a4Safresh1ok($objNso->eq("E\x{302}", _pack_U(0xCA))); 63*256a93a4Safresh1ok($objNso->eq("o\x{302}", _pack_U(0xF4))); 64*256a93a4Safresh1ok($objNso->eq("O\x{302}", _pack_U(0xD4))); 65898184e3Ssthenok($objNso->eq("s\x{30C}", "\x{161}")); 66898184e3Ssthenok($objNso->eq("S\x{30C}", "\x{160}")); 67898184e3Ssthen 68898184e3Ssthen# 20 69898184e3Ssthen 70898184e3Ssthenok($objNso->eq("e\x{302}\x{300}", "\x{1EC1}")); 71898184e3Ssthenok($objNso->eq("E\x{302}\x{300}", "\x{1EC0}")); 72898184e3Ssthenok($objNso->eq("e\x{302}\x{301}", "\x{1EBF}")); 73898184e3Ssthenok($objNso->eq("E\x{302}\x{301}", "\x{1EBE}")); 74898184e3Ssthenok($objNso->eq("e\x{302}\x{303}", "\x{1EC5}")); 75898184e3Ssthenok($objNso->eq("E\x{302}\x{303}", "\x{1EC4}")); 76898184e3Ssthenok($objNso->eq("e\x{302}\x{309}", "\x{1EC3}")); 77898184e3Ssthenok($objNso->eq("E\x{302}\x{309}", "\x{1EC2}")); 78898184e3Ssthenok($objNso->eq("e\x{302}\x{323}", "\x{1EC7}")); 79898184e3Ssthenok($objNso->eq("E\x{302}\x{323}", "\x{1EC6}")); 80898184e3Ssthen 81898184e3Ssthenok($objNso->eq("o\x{302}\x{300}", "\x{1ED3}")); 82898184e3Ssthenok($objNso->eq("O\x{302}\x{300}", "\x{1ED2}")); 83898184e3Ssthenok($objNso->eq("o\x{302}\x{301}", "\x{1ED1}")); 84898184e3Ssthenok($objNso->eq("O\x{302}\x{301}", "\x{1ED0}")); 85898184e3Ssthenok($objNso->eq("o\x{302}\x{303}", "\x{1ED7}")); 86898184e3Ssthenok($objNso->eq("O\x{302}\x{303}", "\x{1ED6}")); 87898184e3Ssthenok($objNso->eq("o\x{302}\x{309}", "\x{1ED5}")); 88898184e3Ssthenok($objNso->eq("O\x{302}\x{309}", "\x{1ED4}")); 89898184e3Ssthenok($objNso->eq("o\x{302}\x{323}", "\x{1ED9}")); 90898184e3Ssthenok($objNso->eq("O\x{302}\x{323}", "\x{1ED8}")); 91898184e3Ssthen 92898184e3Ssthen# 40 93