summaryrefslogtreecommitdiff
path: root/cpan/Unicode-Collate/t/overcjk0.t
diff options
context:
space:
mode:
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>2010-11-14 12:07:03 +0000
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>2010-11-14 12:07:03 +0000
commitb5d9a95357621a0a9d375ff6a83672c7f150655e (patch)
tree9f8d4bc2703f353701669efb7159ff490a921d80 /cpan/Unicode-Collate/t/overcjk0.t
parente1603486d4c4f2826ab41e50c9315d9914cc9dfa (diff)
downloadperl-b5d9a95357621a0a9d375ff6a83672c7f150655e.tar.gz
Update Unicode-Collate to CPAN version 0.67
[DELTA] 0.67 Sun Nov 14 11:38:59 2010 - supported UCA_Version 22 for Unicode 6.0.0. * 2B740..2B81D are new CJK unified ideographs. * noncharacters (e.g. U+FFFF) should be overridable, not be ignored. ! DUCET is NOT updated, as no maint perl supports Unicode 6.0.0. Thus the default UCA_Version is still 20. - added t/nonchar.t. - improved discontiguous contractions of 3 or more characters. (e.g. 0FB2 0F71 0F80 and 0FB3 0F71 0F80) - auxiliary: now 'mklocale' also copes with Korean.pm according to DUCET.
Diffstat (limited to 'cpan/Unicode-Collate/t/overcjk0.t')
-rw-r--r--cpan/Unicode-Collate/t/overcjk0.t132
1 files changed, 58 insertions, 74 deletions
diff --git a/cpan/Unicode-Collate/t/overcjk0.t b/cpan/Unicode-Collate/t/overcjk0.t
index 2eec339bb0..016abe08b6 100644
--- a/cpan/Unicode-Collate/t/overcjk0.t
+++ b/cpan/Unicode-Collate/t/overcjk0.t
@@ -1,3 +1,4 @@
+
BEGIN {
unless ("A" eq pack('U', 0x41)) {
print "1..0 # Unicode::Collate " .
@@ -11,7 +12,7 @@ BEGIN {
}
use Test;
-BEGIN { plan tests => 66 };
+BEGIN { plan tests => 246 }; # 6 + 30 x @Versions
use strict;
use warnings;
@@ -38,77 +39,60 @@ ok($ignoreCJK->eq("Pe\x{4E00}rl", "Perl")); # U+4E00 is a CJK.
ok($ignoreCJK->gt("\x{4DFF}", "\x{4E00}")); # U+4DFF is not CJK.
ok($ignoreCJK->lt("Pe\x{5B57}rl", "Perl")); # 'r' is unassigned.
-##### 7..20
-ok($ignoreCJK->eq("\x{3400}", ""));
-ok($ignoreCJK->eq("\x{4DB5}", ""));
-ok($ignoreCJK->eq("\x{9FA5}", ""));
-ok($ignoreCJK->eq("\x{9FA6}", "")); # UI since Unicode 4.1.0
-ok($ignoreCJK->eq("\x{9FBB}", "")); # UI since Unicode 4.1.0
-ok($ignoreCJK->eq("\x{9FBC}", "")); # UI since Unicode 5.1.0
-ok($ignoreCJK->eq("\x{9FC3}", "")); # UI since Unicode 5.1.0
-ok($ignoreCJK->eq("\x{9FC4}", "")); # UI since Unicode 5.2.0
-ok($ignoreCJK->eq("\x{9FCB}", "")); # UI since Unicode 5.2.0
-ok($ignoreCJK->gt("\x{9FCC}", "Perl"));
-ok($ignoreCJK->eq("\x{20000}", "")); # ExtB since Unicode 3.1.0
-ok($ignoreCJK->eq("\x{2A6D6}", "")); # ExtB since Unicode 3.1.0
-ok($ignoreCJK->eq("\x{2A700}", "")); # ExtC since Unicode 5.2.0
-ok($ignoreCJK->eq("\x{2B734}", "")); # ExtC since Unicode 5.2.0
-
-##### 21..30
-$ignoreCJK->change(UCA_Version => 8);
-ok($ignoreCJK->eq("\x{3400}", ""));
-ok($ignoreCJK->eq("\x{4DB5}", ""));
-ok($ignoreCJK->eq("\x{9FA5}", ""));
-ok($ignoreCJK->gt("\x{9FA6}", "Perl"));
-ok($ignoreCJK->gt("\x{9FBB}", "Perl"));
-ok($ignoreCJK->gt("\x{9FBC}", "Perl"));
-ok($ignoreCJK->gt("\x{9FC3}", "Perl"));
-ok($ignoreCJK->gt("\x{9FC4}", "Perl"));
-ok($ignoreCJK->eq("\x{20000}", "")); # ExtB since Unicode 3.1.0
-ok($ignoreCJK->eq("\x{2A6D6}", "")); # ExtB since Unicode 3.1.0
-
-##### 31..40
-$ignoreCJK->change(UCA_Version => 9);
-ok($ignoreCJK->eq("\x{3400}", ""));
-ok($ignoreCJK->eq("\x{4DB5}", ""));
-ok($ignoreCJK->eq("\x{9FA5}", ""));
-ok($ignoreCJK->gt("\x{9FA6}", "Perl"));
-ok($ignoreCJK->gt("\x{9FBB}", "Perl"));
-ok($ignoreCJK->gt("\x{9FBC}", "Perl"));
-ok($ignoreCJK->gt("\x{9FC3}", "Perl"));
-ok($ignoreCJK->gt("\x{9FC4}", "Perl"));
-ok($ignoreCJK->eq("\x{20000}", "")); # ExtB since Unicode 3.1.0
-ok($ignoreCJK->eq("\x{2A6D6}", "")); # ExtB since Unicode 3.1.0
-
-##### 41..52
-$ignoreCJK->change(UCA_Version => 14);
-ok($ignoreCJK->eq("\x{3400}", ""));
-ok($ignoreCJK->eq("\x{4DB5}", ""));
-ok($ignoreCJK->eq("\x{9FA5}", ""));
-ok($ignoreCJK->eq("\x{9FA6}", "")); # UI since Unicode 4.1.0
-ok($ignoreCJK->eq("\x{9FBB}", "")); # UI since Unicode 4.1.0
-ok($ignoreCJK->gt("\x{9FBC}", "Perl"));
-ok($ignoreCJK->gt("\x{9FC3}", "Perl"));
-ok($ignoreCJK->gt("\x{9FC4}", "Perl"));
-ok($ignoreCJK->eq("\x{20000}", "")); # ExtB since Unicode 3.1.0
-ok($ignoreCJK->eq("\x{2A6D6}", "")); # ExtB since Unicode 3.1.0
-ok($ignoreCJK->gt("\x{2A700}", "Perl"));
-ok($ignoreCJK->gt("\x{2B734}", "Perl"));
-
-##### 53..66
-$ignoreCJK->change(UCA_Version => 18);
-ok($ignoreCJK->eq("\x{3400}", ""));
-ok($ignoreCJK->eq("\x{4DB5}", ""));
-ok($ignoreCJK->eq("\x{9FA5}", ""));
-ok($ignoreCJK->eq("\x{9FA6}", "")); # UI since Unicode 4.1.0
-ok($ignoreCJK->eq("\x{9FBB}", "")); # UI since Unicode 4.1.0
-ok($ignoreCJK->eq("\x{9FBC}", "")); # UI since Unicode 5.1.0
-ok($ignoreCJK->eq("\x{9FC3}", "")); # UI since Unicode 5.1.0
-ok($ignoreCJK->gt("\x{9FC4}", "Perl"));
-ok($ignoreCJK->gt("\x{9FCB}", "Perl"));
-ok($ignoreCJK->gt("\x{9FCC}", "Perl"));
-ok($ignoreCJK->eq("\x{20000}", "")); # ExtB since Unicode 3.1.0
-ok($ignoreCJK->eq("\x{2A6D6}", "")); # ExtB since Unicode 3.1.0
-ok($ignoreCJK->gt("\x{2A700}", "Perl"));
-ok($ignoreCJK->gt("\x{2B734}", "Perl"));
+#####
+
+# 4E00..9FA5 are CJK UI.
+# 9FA6..9FBB are CJK UI since UCA_Version 14 (Unicode 4.1).
+# 9FBC..9FC3 are CJK UI since UCA_Version 18 (Unicode 5.1).
+# 9FC4..9FCB are CJK UI since UCA_Version 20 (Unicode 5.2).
+
+# 3400..4DB5 are CJK UI Ext.A since UCA_Version 8 (Unicode 3.0).
+# 20000..2A6D6 are CJK UI Ext.B since UCA_Version 8 (Unicode 3.1).
+# 2A700..2B734 are CJK UI Ext.C since UCA_Version 20 (Unicode 5.2).
+# 2B740..2B81D are CJK UI Ext.D since UCA_Version 22 (Unicode 6.0).
+
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22);
+
+for my $v (@Versions) {
+$ignoreCJK->change(UCA_Version => $v);
+# UI
+ok($ignoreCJK->cmp("\x{4E00}", "") == 0);
+ok($ignoreCJK->cmp("\x{9FA5}", "") == 0);
+ok($ignoreCJK->cmp("\x{9FA6}", "") == ($v >= 14 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FAF}", "") == ($v >= 14 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FB0}", "") == ($v >= 14 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FBB}", "") == ($v >= 14 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FBC}", "") == ($v >= 18 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FBF}", "") == ($v >= 18 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FC0}", "") == ($v >= 18 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FC3}", "") == ($v >= 18 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FC4}", "") == ($v >= 20 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FCB}", "") == ($v >= 20 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{9FCC}", "") == 1);
+ok($ignoreCJK->cmp("\x{9FCF}", "") == 1);
+
+# Ext.A
+ok($ignoreCJK->cmp("\x{3400}", "") == 0);
+ok($ignoreCJK->cmp("\x{4DB5}", "") == 0);
+ok($ignoreCJK->cmp("\x{4DB6}", "") == 1);
+ok($ignoreCJK->cmp("\x{4DBF}", "") == 1);
+
+# Ext.B
+ok($ignoreCJK->cmp("\x{20000}","") == 0);
+ok($ignoreCJK->cmp("\x{2A6D6}","") == 0);
+ok($ignoreCJK->cmp("\x{2A6D7}","") == 1);
+ok($ignoreCJK->cmp("\x{2A6DF}","") == 1);
+
+# Ext.C
+ok($ignoreCJK->cmp("\x{2A700}","") == ($v >= 20 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{2B734}","") == ($v >= 20 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{2B735}","") == 1);
+ok($ignoreCJK->cmp("\x{2B73F}","") == 1);
+
+# Ext.D
+ok($ignoreCJK->cmp("\x{2B740}","") == ($v >= 22 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{2B81D}","") == ($v >= 22 ? 0 : 1));
+ok($ignoreCJK->cmp("\x{2B81E}","") == 1);
+ok($ignoreCJK->cmp("\x{2B81F}","") == 1);
+}