summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/perl/cpan/Unicode-Collate/t/cjk_py.t
diff options
context:
space:
mode:
authorsthen <sthen@openbsd.org>2013-03-25 20:06:16 +0000
committersthen <sthen@openbsd.org>2013-03-25 20:06:16 +0000
commit898184e3e61f9129feb5978fad5a8c6865f00b92 (patch)
tree56f32aefc1eed60b534611007c7856f82697a205 /gnu/usr.bin/perl/cpan/Unicode-Collate/t/cjk_py.t
parentPGSHIFT -> PAGE_SHIFT (diff)
downloadwireguard-openbsd-898184e3e61f9129feb5978fad5a8c6865f00b92.tar.xz
wireguard-openbsd-898184e3e61f9129feb5978fad5a8c6865f00b92.zip
import perl 5.16.3 from CPAN - worked on by Andrew Fresh and myself
Diffstat (limited to 'gnu/usr.bin/perl/cpan/Unicode-Collate/t/cjk_py.t')
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/t/cjk_py.t78
1 files changed, 78 insertions, 0 deletions
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/cjk_py.t b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/cjk_py.t
new file mode 100644
index 00000000000..e0802f1e2cb
--- /dev/null
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/cjk_py.t
@@ -0,0 +1,78 @@
+
+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..19\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;
+
+ok(1);
+
+#########################
+
+use Unicode::Collate::CJK::Pinyin;
+
+my $collator = Unicode::Collate->new(
+ table => undef,
+ normalization => undef,
+ overrideCJK => \&Unicode::Collate::CJK::Pinyin::weightPinyin
+);
+
+sub hex_sort {
+ my @source = map pack('U', hex $_), split ' ', shift;
+ my @sorted = $collator->sort(@source);
+ return join " ", map sprintf("%04X", unpack 'U', $_), @sorted;
+}
+
+# 1
+
+$collator->change(level => 1);
+
+ok($collator->lt("\x{963F}", "\x{5730}"));
+ok($collator->lt("\x{5730}", "\x{7ACB}"));
+ok($collator->lt("\x{7ACB}", "\x{4EBA}"));
+ok($collator->lt("\x{4EBA}", "\x{65E5}"));
+ok($collator->lt("\x{65E5}", "\x{4E0A}"));
+ok($collator->lt("\x{4E0A}", "\x{5929}"));
+ok($collator->lt("\x{5929}", "\x{4E0B}"));
+ok($collator->lt("\x{4E0B}", "\x{65BC}"));
+ok($collator->lt("\x{65BC}", "\x{4E2D}"));
+ok($collator->lt("\x{4E2D}", "\x{7AFA}"));
+ok($collator->lt("\x{7AFA}", "\x{5750}"));
+
+# Ext.B
+ok($collator->lt("\x{20000}", "\x{20001}"));
+ok($collator->lt("\x{20001}", "\x{20002}"));
+ok($collator->lt("\x{20002}", "\x{20003}"));
+ok($collator->lt("\x{20003}", "\x{20004}"));
+ok($collator->lt("\x{20004}", "\x{20005}"));
+
+# 17
+
+ok(hex_sort('4E00 4E8C 4E09 56DB 4E94 516D 4E03 516B 4E5D 5341'),
+ '516B 4E8C 4E5D 516D 4E03 4E09 5341 56DB 4E94 4E00');
+
+ok(hex_sort('4E0C 4E8D 4F5C 5140 554A 5750 57C3 5EA7 963F 9F3D 9F3E 9F44'),
+ '963F 554A 57C3 4E8D 9F3E 4E0C 9F3D 5140 9F44 4F5C 5750 5EA7');
+
+# 19