| |
| BEGIN { |
| unless ("A" eq pack('U', 0x41)) { |
| print "1..0 # Unicode::Collate " . |
| "cannot stringify a Unicode code point\n"; |
| exit 0; |
| } |
| if ($ENV{PERL_CORE}) { |
| chdir('t') if -d 't'; |
| @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); |
| } |
| } |
| |
| use strict; |
| use warnings; |
| BEGIN { $| = 1; print "1..41\n"; } |
| my $count = 0; |
| sub ok ($;$) { |
| my $p = my $r = shift; |
| if (@_) { |
| my $x = shift; |
| $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; |
| } |
| print $p ? "ok" : "not ok", ' ', ++$count, "\n"; |
| } |
| |
| use Unicode::Collate::Locale; |
| |
| ok(1); |
| |
| ######################### |
| |
| my $objPa = Unicode::Collate::Locale-> |
| new(locale => 'PA', normalization => undef); |
| |
| my $default = Unicode::Collate::Locale-> |
| new(normalization => undef); |
| |
| ok($objPa->getlocale, 'pa'); |
| ok($default->getlocale, 'default'); |
| |
| $objPa->change(level => 1); |
| |
| ok($objPa->lt("\x{A5C}", "\x{A4D}")); |
| ok($objPa->lt("\x{A4D}", "\x{A3E}")); |
| |
| # 5 |
| |
| # RRA and Vowel Signs |
| for my $o ($objPa, $default) { |
| ok($o->lt("\x{A5C}", "\x{A3E}")); |
| ok($o->lt("\x{A3E}", "\x{A3F}")); |
| ok($o->lt("\x{A3F}", "\x{A40}")); |
| ok($o->lt("\x{A40}", "\x{A41}")); |
| ok($o->lt("\x{A41}", "\x{A42}")); |
| ok($o->lt("\x{A42}", "\x{A47}")); |
| ok($o->lt("\x{A47}", "\x{A48}")); |
| ok($o->lt("\x{A48}", "\x{A4B}")); |
| ok($o->lt("\x{A4B}", "\x{A4C}")); |
| } |
| |
| # 23 |
| |
| ok($default->lt("\x{A4C}", "\x{A4D}")); |
| |
| # 24 |
| |
| ok($objPa->eq("\x{A03}", "")); |
| ok($objPa->eq("\x{A03}", "\x{A71}")); |
| ok($objPa->eq("\x{A71}", "\x{A70}")); |
| ok($objPa->eq("\x{A70}", "\x{A02}")); |
| ok($objPa->eq("\x{A02}", "\x{A01}")); |
| ok($objPa->eq("\x{A01}", "\x{A3C}")); |
| |
| # 30 |
| |
| $objPa->change(level => 2); |
| |
| ok($objPa->lt("\x{A03}", "\x{A71}")); |
| ok($objPa->lt("\x{A71}", "\x{A70}")); |
| ok($objPa->lt("\x{A70}", "\x{A02}")); |
| ok($objPa->lt("\x{A02}", "\x{A01}")); |
| ok($objPa->lt("\x{A01}", "\x{A3C}")); |
| |
| # 35 |
| |
| $objPa->change(level => 3); |
| |
| ok($objPa->eq("\x{A33}", "\x{A32}\x{A3C}")); |
| ok($objPa->eq("\x{A36}", "\x{A38}\x{A3C}")); |
| ok($objPa->eq("\x{A59}", "\x{A16}\x{A3C}")); |
| ok($objPa->eq("\x{A5A}", "\x{A17}\x{A3C}")); |
| ok($objPa->eq("\x{A5B}", "\x{A1C}\x{A3C}")); |
| ok($objPa->eq("\x{A5E}", "\x{A2B}\x{A3C}")); |
| |
| # 41 |