summaryrefslogtreecommitdiff
path: root/cpan/Unicode-Collate/t
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/Unicode-Collate/t')
-rw-r--r--cpan/Unicode-Collate/t/loc_vi.t117
-rw-r--r--cpan/Unicode-Collate/t/loc_zh.t307
-rw-r--r--cpan/Unicode-Collate/t/loc_zhb5.t335
-rw-r--r--cpan/Unicode-Collate/t/loc_zhgb.t333
-rw-r--r--cpan/Unicode-Collate/t/loc_zhpy.t344
-rw-r--r--cpan/Unicode-Collate/t/loc_zhst.t333
6 files changed, 1754 insertions, 15 deletions
diff --git a/cpan/Unicode-Collate/t/loc_vi.t b/cpan/Unicode-Collate/t/loc_vi.t
index 92b58a2758..75bb5ba083 100644
--- a/cpan/Unicode-Collate/t/loc_vi.t
+++ b/cpan/Unicode-Collate/t/loc_vi.t
@@ -4,7 +4,7 @@ use warnings;
use Unicode::Collate::Locale;
use Test;
-plan tests => 340;
+plan tests => 424;
my $objVi = Unicode::Collate::Locale->
new(locale => 'VI', normalization => undef);
@@ -102,6 +102,17 @@ ok($objVi->eq("U\x{31B}", "\x{1AF}"));
# 66
+ok($objVi->eq("e\x{306}", "\x{115}"));
+ok($objVi->eq("E\x{306}", "\x{114}"));
+ok($objVi->eq("i\x{306}", "\x{12D}"));
+ok($objVi->eq("I\x{306}", "\x{12C}"));
+ok($objVi->eq("o\x{306}", "\x{14F}"));
+ok($objVi->eq("O\x{306}", "\x{14E}"));
+ok($objVi->eq("u\x{306}", "\x{16D}"));
+ok($objVi->eq("U\x{306}", "\x{16C}"));
+
+# 74
+
ok($objVi->eq("a\x{300}", pack('U', 0xE0)));
ok($objVi->eq("a\x{340}", pack('U', 0xE0)));
ok($objVi->eq("a\x{309}", "\x{1EA3}"));
@@ -271,17 +282,6 @@ ok($objVi->eq("Y\x{301}", pack('U', 0xDD)));
ok($objVi->eq("Y\x{341}", pack('U', 0xDD)));
ok($objVi->eq("Y\x{323}", "\x{1EF4}"));
-# 234
-
-ok($objVi->eq("e\x{306}", "\x{115}"));
-ok($objVi->eq("E\x{306}", "\x{114}"));
-ok($objVi->eq("i\x{306}", "\x{12D}"));
-ok($objVi->eq("I\x{306}", "\x{12C}"));
-ok($objVi->eq("o\x{306}", "\x{14F}"));
-ok($objVi->eq("O\x{306}", "\x{14E}"));
-ok($objVi->eq("u\x{306}", "\x{16D}"));
-ok($objVi->eq("U\x{306}", "\x{16C}"));
-
# 242
ok($objVi->eq("a\x{306}\x{323}", "\x{1EA1}\x{306}"));
@@ -362,6 +362,93 @@ ok($objVi->eq("U\x{31B}\x{323}", "U\x{323}\x{31B}"));
# 314
+ok($objVi->eq("a\x{306}\x{300}", "\x{103}\x{300}"));
+ok($objVi->eq("a\x{306}\x{340}", "\x{103}\x{340}"));
+ok($objVi->eq("a\x{306}\x{309}", "\x{103}\x{309}"));
+ok($objVi->eq("a\x{306}\x{303}", "\x{103}\x{303}"));
+ok($objVi->eq("a\x{306}\x{301}", "\x{103}\x{301}"));
+ok($objVi->eq("a\x{306}\x{341}", "\x{103}\x{341}"));
+ok($objVi->eq("a\x{306}\x{323}", "\x{103}\x{323}"));
+ok($objVi->eq("A\x{306}\x{300}", "\x{102}\x{300}"));
+ok($objVi->eq("A\x{306}\x{340}", "\x{102}\x{340}"));
+ok($objVi->eq("A\x{306}\x{309}", "\x{102}\x{309}"));
+ok($objVi->eq("A\x{306}\x{303}", "\x{102}\x{303}"));
+ok($objVi->eq("A\x{306}\x{301}", "\x{102}\x{301}"));
+ok($objVi->eq("A\x{306}\x{341}", "\x{102}\x{341}"));
+ok($objVi->eq("A\x{306}\x{323}", "\x{102}\x{323}"));
+ok($objVi->eq("a\x{302}\x{300}", pack('U*', 0xE2, 0x300)));
+ok($objVi->eq("a\x{302}\x{340}", pack('U*', 0xE2, 0x340)));
+ok($objVi->eq("a\x{302}\x{309}", pack('U*', 0xE2, 0x309)));
+ok($objVi->eq("a\x{302}\x{303}", pack('U*', 0xE2, 0x303)));
+ok($objVi->eq("a\x{302}\x{301}", pack('U*', 0xE2, 0x301)));
+ok($objVi->eq("a\x{302}\x{341}", pack('U*', 0xE2, 0x341)));
+ok($objVi->eq("a\x{302}\x{323}", pack('U*', 0xE2, 0x323)));
+ok($objVi->eq("A\x{302}\x{300}", pack('U*', 0xC2, 0x300)));
+ok($objVi->eq("A\x{302}\x{340}", pack('U*', 0xC2, 0x340)));
+ok($objVi->eq("A\x{302}\x{309}", pack('U*', 0xC2, 0x309)));
+ok($objVi->eq("A\x{302}\x{303}", pack('U*', 0xC2, 0x303)));
+ok($objVi->eq("A\x{302}\x{301}", pack('U*', 0xC2, 0x301)));
+ok($objVi->eq("A\x{302}\x{341}", pack('U*', 0xC2, 0x341)));
+ok($objVi->eq("A\x{302}\x{323}", pack('U*', 0xC2, 0x323)));
+ok($objVi->eq("e\x{302}\x{300}", pack('U*', 0xEA, 0x300)));
+ok($objVi->eq("e\x{302}\x{340}", pack('U*', 0xEA, 0x340)));
+ok($objVi->eq("e\x{302}\x{309}", pack('U*', 0xEA, 0x309)));
+ok($objVi->eq("e\x{302}\x{303}", pack('U*', 0xEA, 0x303)));
+ok($objVi->eq("e\x{302}\x{301}", pack('U*', 0xEA, 0x301)));
+ok($objVi->eq("e\x{302}\x{341}", pack('U*', 0xEA, 0x341)));
+ok($objVi->eq("e\x{302}\x{323}", pack('U*', 0xEA, 0x323)));
+ok($objVi->eq("E\x{302}\x{300}", pack('U*', 0xCA, 0x300)));
+ok($objVi->eq("E\x{302}\x{340}", pack('U*', 0xCA, 0x340)));
+ok($objVi->eq("E\x{302}\x{309}", pack('U*', 0xCA, 0x309)));
+ok($objVi->eq("E\x{302}\x{303}", pack('U*', 0xCA, 0x303)));
+ok($objVi->eq("E\x{302}\x{301}", pack('U*', 0xCA, 0x301)));
+ok($objVi->eq("E\x{302}\x{341}", pack('U*', 0xCA, 0x341)));
+ok($objVi->eq("E\x{302}\x{323}", pack('U*', 0xCA, 0x323)));
+ok($objVi->eq("o\x{302}\x{300}", pack('U*', 0xF4, 0x300)));
+ok($objVi->eq("o\x{302}\x{340}", pack('U*', 0xF4, 0x340)));
+ok($objVi->eq("o\x{302}\x{309}", pack('U*', 0xF4, 0x309)));
+ok($objVi->eq("o\x{302}\x{303}", pack('U*', 0xF4, 0x303)));
+ok($objVi->eq("o\x{302}\x{301}", pack('U*', 0xF4, 0x301)));
+ok($objVi->eq("o\x{302}\x{341}", pack('U*', 0xF4, 0x341)));
+ok($objVi->eq("o\x{302}\x{323}", pack('U*', 0xF4, 0x323)));
+ok($objVi->eq("O\x{302}\x{300}", pack('U*', 0xD4, 0x300)));
+ok($objVi->eq("O\x{302}\x{340}", pack('U*', 0xD4, 0x340)));
+ok($objVi->eq("O\x{302}\x{309}", pack('U*', 0xD4, 0x309)));
+ok($objVi->eq("O\x{302}\x{303}", pack('U*', 0xD4, 0x303)));
+ok($objVi->eq("O\x{302}\x{301}", pack('U*', 0xD4, 0x301)));
+ok($objVi->eq("O\x{302}\x{341}", pack('U*', 0xD4, 0x341)));
+ok($objVi->eq("O\x{302}\x{323}", pack('U*', 0xD4, 0x323)));
+ok($objVi->eq("o\x{31B}\x{300}", "\x{1A1}\x{300}"));
+ok($objVi->eq("o\x{31B}\x{340}", "\x{1A1}\x{340}"));
+ok($objVi->eq("o\x{31B}\x{309}", "\x{1A1}\x{309}"));
+ok($objVi->eq("o\x{31B}\x{303}", "\x{1A1}\x{303}"));
+ok($objVi->eq("o\x{31B}\x{301}", "\x{1A1}\x{301}"));
+ok($objVi->eq("o\x{31B}\x{341}", "\x{1A1}\x{341}"));
+ok($objVi->eq("o\x{31B}\x{323}", "\x{1A1}\x{323}"));
+ok($objVi->eq("O\x{31B}\x{300}", "\x{1A0}\x{300}"));
+ok($objVi->eq("O\x{31B}\x{340}", "\x{1A0}\x{340}"));
+ok($objVi->eq("O\x{31B}\x{309}", "\x{1A0}\x{309}"));
+ok($objVi->eq("O\x{31B}\x{303}", "\x{1A0}\x{303}"));
+ok($objVi->eq("O\x{31B}\x{301}", "\x{1A0}\x{301}"));
+ok($objVi->eq("O\x{31B}\x{341}", "\x{1A0}\x{341}"));
+ok($objVi->eq("O\x{31B}\x{323}", "\x{1A0}\x{323}"));
+ok($objVi->eq("u\x{31B}\x{300}", "\x{1B0}\x{300}"));
+ok($objVi->eq("u\x{31B}\x{340}", "\x{1B0}\x{340}"));
+ok($objVi->eq("u\x{31B}\x{309}", "\x{1B0}\x{309}"));
+ok($objVi->eq("u\x{31B}\x{303}", "\x{1B0}\x{303}"));
+ok($objVi->eq("u\x{31B}\x{301}", "\x{1B0}\x{301}"));
+ok($objVi->eq("u\x{31B}\x{341}", "\x{1B0}\x{341}"));
+ok($objVi->eq("u\x{31B}\x{323}", "\x{1B0}\x{323}"));
+ok($objVi->eq("U\x{31B}\x{300}", "\x{1AF}\x{300}"));
+ok($objVi->eq("U\x{31B}\x{340}", "\x{1AF}\x{340}"));
+ok($objVi->eq("U\x{31B}\x{309}", "\x{1AF}\x{309}"));
+ok($objVi->eq("U\x{31B}\x{303}", "\x{1AF}\x{303}"));
+ok($objVi->eq("U\x{31B}\x{301}", "\x{1AF}\x{301}"));
+ok($objVi->eq("U\x{31B}\x{341}", "\x{1AF}\x{341}"));
+ok($objVi->eq("U\x{31B}\x{323}", "\x{1AF}\x{323}"));
+
+# 398
+
$objVi->change(normalization => undef);
ok($objVi->index("a\x{306}\x{323}", "a\x{323}\x{306}"), 0);
@@ -377,7 +464,7 @@ ok($objVi->index("O\x{31B}\x{300}", "o\x{300}\x{31B}"), -1);
ok($objVi->index("A\x{306}\x{323}", pack('U*', 0x1EA1, 0x306)), -1);
ok($objVi->index("O\x{31B}\x{300}", pack('U*', 0x00F2, 0x31B)), -1);
-# 325
+# 409
$objVi->change(level => 2);
@@ -394,7 +481,7 @@ ok($objVi->index("O\x{31B}", "o\x{300}\x{31B}"), -1);
ok($objVi->index("A\x{306}", pack('U*', 0x1EA1, 0x306)), -1);
ok($objVi->index("O\x{31B}", pack('U*', 0x00F2, 0x31B)), -1);
-# 336
+# 420
$objVi->change(level => 1);
@@ -403,4 +490,4 @@ ok($objVi->index("O\x{31B}", "o\x{300}\x{31B}"), 0);
ok($objVi->index("A\x{306}", pack('U*', 0x1EA1, 0x306)), 0);
ok($objVi->index("O\x{31B}", pack('U*', 0x00F2, 0x31B)), 0);
-# 340
+# 424
diff --git a/cpan/Unicode-Collate/t/loc_zh.t b/cpan/Unicode-Collate/t/loc_zh.t
new file mode 100644
index 0000000000..d91431c38e
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_zh.t
@@ -0,0 +1,307 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 272;
+
+my $objZh = Unicode::Collate::Locale->
+ new(locale => 'ZH', normalization => undef);
+
+ok(1);
+ok($objZh->getlocale, 'zh');
+
+$objZh->change(level => 1);
+
+ok($objZh->eq("a\x{304}", "a\x{301}"));
+ok($objZh->eq("a\x{301}", "a\x{30C}"));
+ok($objZh->eq("a\x{30C}", "a\x{300}"));
+ok($objZh->eq("a\x{300}", "a"));
+ok($objZh->eq("e\x{304}", "e\x{301}"));
+ok($objZh->eq("e\x{301}", "e\x{30C}"));
+ok($objZh->eq("e\x{30C}", "e\x{300}"));
+ok($objZh->eq("e\x{300}", "e"));
+ok($objZh->eq("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZh->eq("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZh->eq("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZh->eq("e\x{302}\x{300}", "e\x{302}"));
+ok($objZh->eq("i\x{304}", "i\x{301}"));
+ok($objZh->eq("i\x{301}", "i\x{30C}"));
+ok($objZh->eq("i\x{30C}", "i\x{300}"));
+ok($objZh->eq("i\x{300}", "i"));
+ok($objZh->eq("m\x{304}", "m\x{301}"));
+ok($objZh->eq("m\x{301}", "m\x{30C}"));
+ok($objZh->eq("m\x{30C}", "m\x{300}"));
+ok($objZh->eq("m\x{300}", "m"));
+ok($objZh->eq("n\x{304}", "n\x{301}"));
+ok($objZh->eq("n\x{301}", "n\x{30C}"));
+ok($objZh->eq("n\x{30C}", "n\x{300}"));
+ok($objZh->eq("n\x{300}", "n"));
+ok($objZh->eq("o\x{304}", "o\x{301}"));
+ok($objZh->eq("o\x{301}", "o\x{30C}"));
+ok($objZh->eq("o\x{30C}", "o\x{300}"));
+ok($objZh->eq("o\x{300}", "o"));
+ok($objZh->eq("u\x{304}", "u\x{301}"));
+ok($objZh->eq("u\x{301}", "u\x{30C}"));
+ok($objZh->eq("u\x{30C}", "u\x{300}"));
+ok($objZh->eq("u\x{300}", "u"));
+ok($objZh->eq("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZh->eq("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZh->eq("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZh->eq("u\x{308}\x{300}", "u\x{308}"));
+
+# 38
+
+$objZh->change(level => 2);
+
+ok($objZh->lt("a\x{304}", "a\x{301}"));
+ok($objZh->lt("a\x{301}", "a\x{30C}"));
+ok($objZh->lt("a\x{30C}", "a\x{300}"));
+ok($objZh->lt("a\x{300}", "a"));
+ok($objZh->lt("e\x{304}", "e\x{301}"));
+ok($objZh->lt("e\x{301}", "e\x{30C}"));
+ok($objZh->lt("e\x{30C}", "e\x{300}"));
+ok($objZh->lt("e\x{300}", "e"));
+ok($objZh->lt("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZh->lt("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZh->lt("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZh->lt("e\x{302}\x{300}", "e\x{302}"));
+ok($objZh->lt("i\x{304}", "i\x{301}"));
+ok($objZh->lt("i\x{301}", "i\x{30C}"));
+ok($objZh->lt("i\x{30C}", "i\x{300}"));
+ok($objZh->lt("i\x{300}", "i"));
+ok($objZh->lt("m\x{304}", "m\x{301}"));
+ok($objZh->lt("m\x{301}", "m\x{30C}"));
+ok($objZh->lt("m\x{30C}", "m\x{300}"));
+ok($objZh->lt("m\x{300}", "m"));
+ok($objZh->lt("n\x{304}", "n\x{301}"));
+ok($objZh->lt("n\x{301}", "n\x{30C}"));
+ok($objZh->lt("n\x{30C}", "n\x{300}"));
+ok($objZh->lt("n\x{300}", "n"));
+ok($objZh->lt("o\x{304}", "o\x{301}"));
+ok($objZh->lt("o\x{301}", "o\x{30C}"));
+ok($objZh->lt("o\x{30C}", "o\x{300}"));
+ok($objZh->lt("o\x{300}", "o"));
+ok($objZh->lt("u\x{304}", "u\x{301}"));
+ok($objZh->lt("u\x{301}", "u\x{30C}"));
+ok($objZh->lt("u\x{30C}", "u\x{300}"));
+ok($objZh->lt("u\x{300}", "u"));
+ok($objZh->lt("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZh->lt("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZh->lt("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZh->lt("u\x{308}\x{300}", "u\x{308}"));
+
+# 74
+
+ok($objZh->eq("a\x{304}", "A\x{304}"));
+ok($objZh->eq("a\x{301}", "A\x{301}"));
+ok($objZh->eq("a\x{30C}", "A\x{30C}"));
+ok($objZh->eq("a\x{300}", "A\x{300}"));
+ok($objZh->eq("e\x{304}", "E\x{304}"));
+ok($objZh->eq("e\x{301}", "E\x{301}"));
+ok($objZh->eq("e\x{30C}", "E\x{30C}"));
+ok($objZh->eq("e\x{300}", "E\x{300}"));
+ok($objZh->eq("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZh->eq("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZh->eq("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZh->eq("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZh->eq("e\x{302}", "E\x{302}"));
+ok($objZh->eq("i\x{304}", "I\x{304}"));
+ok($objZh->eq("i\x{301}", "I\x{301}"));
+ok($objZh->eq("i\x{30C}", "I\x{30C}"));
+ok($objZh->eq("i\x{300}", "I\x{300}"));
+ok($objZh->eq("m\x{304}", "M\x{304}"));
+ok($objZh->eq("m\x{301}", "M\x{301}"));
+ok($objZh->eq("m\x{30C}", "M\x{30C}"));
+ok($objZh->eq("m\x{300}", "M\x{300}"));
+ok($objZh->eq("n\x{304}", "N\x{304}"));
+ok($objZh->eq("n\x{301}", "N\x{301}"));
+ok($objZh->eq("n\x{30C}", "N\x{30C}"));
+ok($objZh->eq("n\x{300}", "N\x{300}"));
+ok($objZh->eq("o\x{304}", "O\x{304}"));
+ok($objZh->eq("o\x{301}", "O\x{301}"));
+ok($objZh->eq("o\x{30C}", "O\x{30C}"));
+ok($objZh->eq("o\x{300}", "O\x{300}"));
+ok($objZh->eq("u\x{304}", "U\x{304}"));
+ok($objZh->eq("u\x{301}", "U\x{301}"));
+ok($objZh->eq("u\x{30C}", "U\x{30C}"));
+ok($objZh->eq("u\x{300}", "U\x{300}"));
+ok($objZh->eq("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZh->eq("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZh->eq("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZh->eq("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZh->eq("u\x{308}", "U\x{308}"));
+
+# 112
+
+$objZh->change(level => 3);
+
+ok($objZh->lt("a\x{304}", "A\x{304}"));
+ok($objZh->lt("a\x{301}", "A\x{301}"));
+ok($objZh->lt("a\x{30C}", "A\x{30C}"));
+ok($objZh->lt("a\x{300}", "A\x{300}"));
+ok($objZh->lt("e\x{304}", "E\x{304}"));
+ok($objZh->lt("e\x{301}", "E\x{301}"));
+ok($objZh->lt("e\x{30C}", "E\x{30C}"));
+ok($objZh->lt("e\x{300}", "E\x{300}"));
+ok($objZh->lt("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZh->lt("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZh->lt("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZh->lt("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZh->lt("e\x{302}", "E\x{302}"));
+ok($objZh->lt("i\x{304}", "I\x{304}"));
+ok($objZh->lt("i\x{301}", "I\x{301}"));
+ok($objZh->lt("i\x{30C}", "I\x{30C}"));
+ok($objZh->lt("i\x{300}", "I\x{300}"));
+ok($objZh->lt("m\x{304}", "M\x{304}"));
+ok($objZh->lt("m\x{301}", "M\x{301}"));
+ok($objZh->lt("m\x{30C}", "M\x{30C}"));
+ok($objZh->lt("m\x{300}", "M\x{300}"));
+ok($objZh->lt("n\x{304}", "N\x{304}"));
+ok($objZh->lt("n\x{301}", "N\x{301}"));
+ok($objZh->lt("n\x{30C}", "N\x{30C}"));
+ok($objZh->lt("n\x{300}", "N\x{300}"));
+ok($objZh->lt("o\x{304}", "O\x{304}"));
+ok($objZh->lt("o\x{301}", "O\x{301}"));
+ok($objZh->lt("o\x{30C}", "O\x{30C}"));
+ok($objZh->lt("o\x{300}", "O\x{300}"));
+ok($objZh->lt("u\x{304}", "U\x{304}"));
+ok($objZh->lt("u\x{301}", "U\x{301}"));
+ok($objZh->lt("u\x{30C}", "U\x{30C}"));
+ok($objZh->lt("u\x{300}", "U\x{300}"));
+ok($objZh->lt("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZh->lt("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZh->lt("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZh->lt("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZh->lt("u\x{308}", "U\x{308}"));
+
+# 150
+
+ok($objZh->eq("a\x{304}", "\x{101}"));
+ok($objZh->eq("A\x{304}", "\x{100}"));
+ok($objZh->eq("a\x{301}", pack('U', 0xE1)));
+ok($objZh->eq("a\x{301}", "a\x{341}"));
+ok($objZh->eq("A\x{301}", pack('U', 0xC1)));
+ok($objZh->eq("A\x{301}", "A\x{341}"));
+ok($objZh->eq("a\x{30C}", "\x{1CE}"));
+ok($objZh->eq("A\x{30C}", "\x{1CD}"));
+ok($objZh->eq("a\x{300}", pack('U', 0xE0)));
+ok($objZh->eq("a\x{300}", "a\x{340}"));
+ok($objZh->eq("A\x{300}", pack('U', 0xC0)));
+ok($objZh->eq("A\x{300}", "A\x{340}"));
+ok($objZh->eq("e\x{304}", "\x{113}"));
+ok($objZh->eq("E\x{304}", "\x{112}"));
+ok($objZh->eq("e\x{301}", pack('U', 0xE9)));
+ok($objZh->eq("e\x{301}", "e\x{341}"));
+ok($objZh->eq("E\x{301}", pack('U', 0xC9)));
+ok($objZh->eq("E\x{301}", "E\x{341}"));
+ok($objZh->eq("e\x{30C}", "\x{11B}"));
+ok($objZh->eq("E\x{30C}", "\x{11A}"));
+ok($objZh->eq("e\x{300}", pack('U', 0xE8)));
+ok($objZh->eq("e\x{300}", "e\x{340}"));
+ok($objZh->eq("E\x{300}", pack('U', 0xC8)));
+ok($objZh->eq("E\x{300}", "E\x{340}"));
+ok($objZh->eq("e\x{302}\x{304}", pack('U*', 0xEA, 0x304)));
+ok($objZh->eq("E\x{302}\x{304}", pack('U*', 0xCA, 0x304)));
+ok($objZh->eq("e\x{302}\x{301}", "\x{1EBF}"));
+ok($objZh->eq("e\x{302}\x{301}", pack('U*', 0xEA, 0x301)));
+ok($objZh->eq("e\x{302}\x{301}", "e\x{302}\x{341}"));
+ok($objZh->eq("E\x{302}\x{301}", "\x{1EBE}"));
+ok($objZh->eq("E\x{302}\x{301}", pack('U*', 0xCA, 0x301)));
+ok($objZh->eq("E\x{302}\x{301}", "E\x{302}\x{341}"));
+ok($objZh->eq("e\x{302}\x{30C}", pack('U*', 0xEA, 0x30C)));
+ok($objZh->eq("E\x{302}\x{30C}", pack('U*', 0xCA, 0x30C)));
+ok($objZh->eq("e\x{302}\x{300}", "\x{1EC1}"));
+ok($objZh->eq("e\x{302}\x{300}", pack('U*', 0xEA, 0x300)));
+ok($objZh->eq("e\x{302}\x{300}", "e\x{302}\x{340}"));
+ok($objZh->eq("E\x{302}\x{300}", "\x{1EC0}"));
+ok($objZh->eq("E\x{302}\x{300}", pack('U*', 0xCA, 0x300)));
+ok($objZh->eq("E\x{302}\x{300}", "E\x{302}\x{340}"));
+ok($objZh->eq("e\x{302}", pack('U', 0xEA)));
+ok($objZh->eq("E\x{302}", pack('U', 0xCA)));
+ok($objZh->eq("i\x{304}", "\x{12B}"));
+ok($objZh->eq("I\x{304}", "\x{12A}"));
+ok($objZh->eq("i\x{301}", pack('U', 0xED)));
+ok($objZh->eq("i\x{301}", "i\x{341}"));
+ok($objZh->eq("I\x{301}", pack('U', 0xCD)));
+ok($objZh->eq("I\x{301}", "I\x{341}"));
+ok($objZh->eq("i\x{30C}", "\x{1D0}"));
+ok($objZh->eq("I\x{30C}", "\x{1CF}"));
+ok($objZh->eq("i\x{300}", pack('U', 0xEC)));
+ok($objZh->eq("i\x{300}", "i\x{340}"));
+ok($objZh->eq("I\x{300}", pack('U', 0xCC)));
+ok($objZh->eq("I\x{300}", "I\x{340}"));
+ok($objZh->eq("m\x{301}", "\x{1E3F}"));
+ok($objZh->eq("m\x{301}", "m\x{341}"));
+ok($objZh->eq("M\x{301}", "\x{1E3E}"));
+ok($objZh->eq("M\x{301}", "M\x{341}"));
+ok($objZh->eq("m\x{300}", "m\x{340}"));
+ok($objZh->eq("M\x{300}", "M\x{340}"));
+ok($objZh->eq("n\x{301}", "\x{144}"));
+ok($objZh->eq("n\x{301}", "n\x{341}"));
+ok($objZh->eq("N\x{301}", "\x{143}"));
+ok($objZh->eq("N\x{301}", "N\x{341}"));
+ok($objZh->eq("n\x{30C}", "\x{148}"));
+ok($objZh->eq("N\x{30C}", "\x{147}"));
+ok($objZh->eq("n\x{300}", "\x{1F9}"));
+ok($objZh->eq("n\x{300}", "n\x{340}"));
+ok($objZh->eq("N\x{300}", "\x{1F8}"));
+ok($objZh->eq("N\x{300}", "N\x{340}"));
+ok($objZh->eq("o\x{304}", "\x{14D}"));
+ok($objZh->eq("O\x{304}", "\x{14C}"));
+ok($objZh->eq("o\x{301}", pack('U', 0xF3)));
+ok($objZh->eq("o\x{301}", "o\x{341}"));
+ok($objZh->eq("O\x{301}", pack('U', 0xD3)));
+ok($objZh->eq("O\x{301}", "O\x{341}"));
+ok($objZh->eq("o\x{30C}", "\x{1D2}"));
+ok($objZh->eq("O\x{30C}", "\x{1D1}"));
+ok($objZh->eq("o\x{300}", pack('U', 0xF2)));
+ok($objZh->eq("o\x{300}", "o\x{340}"));
+ok($objZh->eq("O\x{300}", pack('U', 0xD2)));
+ok($objZh->eq("O\x{300}", "O\x{340}"));
+ok($objZh->eq("u\x{304}", "\x{16B}"));
+ok($objZh->eq("U\x{304}", "\x{16A}"));
+ok($objZh->eq("u\x{301}", pack('U', 0xFA)));
+ok($objZh->eq("u\x{301}", "u\x{341}"));
+ok($objZh->eq("U\x{301}", pack('U', 0xDA)));
+ok($objZh->eq("U\x{301}", "U\x{341}"));
+ok($objZh->eq("u\x{30C}", "\x{1D4}"));
+ok($objZh->eq("U\x{30C}", "\x{1D3}"));
+ok($objZh->eq("u\x{300}", pack('U', 0xF9)));
+ok($objZh->eq("u\x{300}", "u\x{340}"));
+ok($objZh->eq("U\x{300}", pack('U', 0xD9)));
+ok($objZh->eq("U\x{300}", "U\x{340}"));
+ok($objZh->eq("u\x{308}\x{304}", "\x{1D6}"));
+ok($objZh->eq("u\x{308}\x{304}", pack('U*', 0xFC, 0x304)));
+ok($objZh->eq("U\x{308}\x{304}", "\x{1D5}"));
+ok($objZh->eq("U\x{308}\x{304}", pack('U*', 0xDC, 0x304)));
+ok($objZh->eq("u\x{308}\x{301}", "\x{1D8}"));
+ok($objZh->eq("u\x{308}\x{301}", pack('U*', 0xFC, 0x301)));
+ok($objZh->eq("u\x{308}\x{301}", "u\x{308}\x{341}"));
+ok($objZh->eq("U\x{308}\x{301}", "\x{1D7}"));
+ok($objZh->eq("U\x{308}\x{301}", pack('U*', 0xDC, 0x301)));
+ok($objZh->eq("U\x{308}\x{301}", "U\x{308}\x{341}"));
+ok($objZh->eq("u\x{308}\x{30C}", "\x{1DA}"));
+ok($objZh->eq("u\x{308}\x{30C}", pack('U*', 0xFC, 0x30C)));
+ok($objZh->eq("U\x{308}\x{30C}", "\x{1D9}"));
+ok($objZh->eq("U\x{308}\x{30C}", pack('U*', 0xDC, 0x30C)));
+ok($objZh->eq("u\x{308}\x{300}", "\x{1DC}"));
+ok($objZh->eq("u\x{308}\x{300}", pack('U*', 0xFC, 0x300)));
+ok($objZh->eq("u\x{308}\x{300}", "u\x{308}\x{340}"));
+ok($objZh->eq("U\x{308}\x{300}", "\x{1DB}"));
+ok($objZh->eq("U\x{308}\x{300}", pack('U*', 0xDC, 0x300)));
+ok($objZh->eq("U\x{308}\x{300}", "U\x{308}\x{340}"));
+ok($objZh->eq("u\x{308}", pack('U', 0xFC)));
+ok($objZh->eq("U\x{308}", pack('U', 0xDC)));
+
+# 266
+
+ok($objZh->eq("e\x{302}\x{303}", "\x{1EC5}"));
+ok($objZh->eq("E\x{302}\x{303}", "\x{1EC4}"));
+ok($objZh->eq("e\x{302}\x{309}", "\x{1EC3}"));
+ok($objZh->eq("E\x{302}\x{309}", "\x{1EC2}"));
+ok($objZh->eq("e\x{302}\x{323}", "\x{1EC7}"));
+ok($objZh->eq("E\x{302}\x{323}", "\x{1EC6}"));
+
+# 272
diff --git a/cpan/Unicode-Collate/t/loc_zhb5.t b/cpan/Unicode-Collate/t/loc_zhb5.t
new file mode 100644
index 0000000000..c4b8c5270c
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_zhb5.t
@@ -0,0 +1,335 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 293;
+
+my $objZhB = Unicode::Collate::Locale->
+ new(locale => 'ZH__big5han', normalization => undef);
+
+ok(1);
+ok($objZhB->getlocale, 'zh__big5han');
+
+$objZhB->change(level => 1);
+
+ok($objZhB->eq("a\x{304}", "a\x{301}"));
+ok($objZhB->eq("a\x{301}", "a\x{30C}"));
+ok($objZhB->eq("a\x{30C}", "a\x{300}"));
+ok($objZhB->eq("a\x{300}", "a"));
+ok($objZhB->eq("e\x{304}", "e\x{301}"));
+ok($objZhB->eq("e\x{301}", "e\x{30C}"));
+ok($objZhB->eq("e\x{30C}", "e\x{300}"));
+ok($objZhB->eq("e\x{300}", "e"));
+ok($objZhB->eq("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZhB->eq("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZhB->eq("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZhB->eq("e\x{302}\x{300}", "e\x{302}"));
+ok($objZhB->eq("i\x{304}", "i\x{301}"));
+ok($objZhB->eq("i\x{301}", "i\x{30C}"));
+ok($objZhB->eq("i\x{30C}", "i\x{300}"));
+ok($objZhB->eq("i\x{300}", "i"));
+ok($objZhB->eq("m\x{304}", "m\x{301}"));
+ok($objZhB->eq("m\x{301}", "m\x{30C}"));
+ok($objZhB->eq("m\x{30C}", "m\x{300}"));
+ok($objZhB->eq("m\x{300}", "m"));
+ok($objZhB->eq("n\x{304}", "n\x{301}"));
+ok($objZhB->eq("n\x{301}", "n\x{30C}"));
+ok($objZhB->eq("n\x{30C}", "n\x{300}"));
+ok($objZhB->eq("n\x{300}", "n"));
+ok($objZhB->eq("o\x{304}", "o\x{301}"));
+ok($objZhB->eq("o\x{301}", "o\x{30C}"));
+ok($objZhB->eq("o\x{30C}", "o\x{300}"));
+ok($objZhB->eq("o\x{300}", "o"));
+ok($objZhB->eq("u\x{304}", "u\x{301}"));
+ok($objZhB->eq("u\x{301}", "u\x{30C}"));
+ok($objZhB->eq("u\x{30C}", "u\x{300}"));
+ok($objZhB->eq("u\x{300}", "u"));
+ok($objZhB->eq("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZhB->eq("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZhB->eq("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZhB->eq("u\x{308}\x{300}", "u\x{308}"));
+
+# 38
+
+$objZhB->change(level => 2);
+
+ok($objZhB->lt("a\x{304}", "a\x{301}"));
+ok($objZhB->lt("a\x{301}", "a\x{30C}"));
+ok($objZhB->lt("a\x{30C}", "a\x{300}"));
+ok($objZhB->lt("a\x{300}", "a"));
+ok($objZhB->lt("e\x{304}", "e\x{301}"));
+ok($objZhB->lt("e\x{301}", "e\x{30C}"));
+ok($objZhB->lt("e\x{30C}", "e\x{300}"));
+ok($objZhB->lt("e\x{300}", "e"));
+ok($objZhB->lt("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZhB->lt("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZhB->lt("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZhB->lt("e\x{302}\x{300}", "e\x{302}"));
+ok($objZhB->lt("i\x{304}", "i\x{301}"));
+ok($objZhB->lt("i\x{301}", "i\x{30C}"));
+ok($objZhB->lt("i\x{30C}", "i\x{300}"));
+ok($objZhB->lt("i\x{300}", "i"));
+ok($objZhB->lt("m\x{304}", "m\x{301}"));
+ok($objZhB->lt("m\x{301}", "m\x{30C}"));
+ok($objZhB->lt("m\x{30C}", "m\x{300}"));
+ok($objZhB->lt("m\x{300}", "m"));
+ok($objZhB->lt("n\x{304}", "n\x{301}"));
+ok($objZhB->lt("n\x{301}", "n\x{30C}"));
+ok($objZhB->lt("n\x{30C}", "n\x{300}"));
+ok($objZhB->lt("n\x{300}", "n"));
+ok($objZhB->lt("o\x{304}", "o\x{301}"));
+ok($objZhB->lt("o\x{301}", "o\x{30C}"));
+ok($objZhB->lt("o\x{30C}", "o\x{300}"));
+ok($objZhB->lt("o\x{300}", "o"));
+ok($objZhB->lt("u\x{304}", "u\x{301}"));
+ok($objZhB->lt("u\x{301}", "u\x{30C}"));
+ok($objZhB->lt("u\x{30C}", "u\x{300}"));
+ok($objZhB->lt("u\x{300}", "u"));
+ok($objZhB->lt("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZhB->lt("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZhB->lt("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZhB->lt("u\x{308}\x{300}", "u\x{308}"));
+
+# 74
+
+ok($objZhB->eq("a\x{304}", "A\x{304}"));
+ok($objZhB->eq("a\x{301}", "A\x{301}"));
+ok($objZhB->eq("a\x{30C}", "A\x{30C}"));
+ok($objZhB->eq("a\x{300}", "A\x{300}"));
+ok($objZhB->eq("e\x{304}", "E\x{304}"));
+ok($objZhB->eq("e\x{301}", "E\x{301}"));
+ok($objZhB->eq("e\x{30C}", "E\x{30C}"));
+ok($objZhB->eq("e\x{300}", "E\x{300}"));
+ok($objZhB->eq("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZhB->eq("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZhB->eq("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZhB->eq("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZhB->eq("e\x{302}", "E\x{302}"));
+ok($objZhB->eq("i\x{304}", "I\x{304}"));
+ok($objZhB->eq("i\x{301}", "I\x{301}"));
+ok($objZhB->eq("i\x{30C}", "I\x{30C}"));
+ok($objZhB->eq("i\x{300}", "I\x{300}"));
+ok($objZhB->eq("m\x{304}", "M\x{304}"));
+ok($objZhB->eq("m\x{301}", "M\x{301}"));
+ok($objZhB->eq("m\x{30C}", "M\x{30C}"));
+ok($objZhB->eq("m\x{300}", "M\x{300}"));
+ok($objZhB->eq("n\x{304}", "N\x{304}"));
+ok($objZhB->eq("n\x{301}", "N\x{301}"));
+ok($objZhB->eq("n\x{30C}", "N\x{30C}"));
+ok($objZhB->eq("n\x{300}", "N\x{300}"));
+ok($objZhB->eq("o\x{304}", "O\x{304}"));
+ok($objZhB->eq("o\x{301}", "O\x{301}"));
+ok($objZhB->eq("o\x{30C}", "O\x{30C}"));
+ok($objZhB->eq("o\x{300}", "O\x{300}"));
+ok($objZhB->eq("u\x{304}", "U\x{304}"));
+ok($objZhB->eq("u\x{301}", "U\x{301}"));
+ok($objZhB->eq("u\x{30C}", "U\x{30C}"));
+ok($objZhB->eq("u\x{300}", "U\x{300}"));
+ok($objZhB->eq("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZhB->eq("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZhB->eq("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZhB->eq("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZhB->eq("u\x{308}", "U\x{308}"));
+
+# 112
+
+$objZhB->change(level => 3);
+
+ok($objZhB->lt("a\x{304}", "A\x{304}"));
+ok($objZhB->lt("a\x{301}", "A\x{301}"));
+ok($objZhB->lt("a\x{30C}", "A\x{30C}"));
+ok($objZhB->lt("a\x{300}", "A\x{300}"));
+ok($objZhB->lt("e\x{304}", "E\x{304}"));
+ok($objZhB->lt("e\x{301}", "E\x{301}"));
+ok($objZhB->lt("e\x{30C}", "E\x{30C}"));
+ok($objZhB->lt("e\x{300}", "E\x{300}"));
+ok($objZhB->lt("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZhB->lt("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZhB->lt("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZhB->lt("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZhB->lt("e\x{302}", "E\x{302}"));
+ok($objZhB->lt("i\x{304}", "I\x{304}"));
+ok($objZhB->lt("i\x{301}", "I\x{301}"));
+ok($objZhB->lt("i\x{30C}", "I\x{30C}"));
+ok($objZhB->lt("i\x{300}", "I\x{300}"));
+ok($objZhB->lt("m\x{304}", "M\x{304}"));
+ok($objZhB->lt("m\x{301}", "M\x{301}"));
+ok($objZhB->lt("m\x{30C}", "M\x{30C}"));
+ok($objZhB->lt("m\x{300}", "M\x{300}"));
+ok($objZhB->lt("n\x{304}", "N\x{304}"));
+ok($objZhB->lt("n\x{301}", "N\x{301}"));
+ok($objZhB->lt("n\x{30C}", "N\x{30C}"));
+ok($objZhB->lt("n\x{300}", "N\x{300}"));
+ok($objZhB->lt("o\x{304}", "O\x{304}"));
+ok($objZhB->lt("o\x{301}", "O\x{301}"));
+ok($objZhB->lt("o\x{30C}", "O\x{30C}"));
+ok($objZhB->lt("o\x{300}", "O\x{300}"));
+ok($objZhB->lt("u\x{304}", "U\x{304}"));
+ok($objZhB->lt("u\x{301}", "U\x{301}"));
+ok($objZhB->lt("u\x{30C}", "U\x{30C}"));
+ok($objZhB->lt("u\x{300}", "U\x{300}"));
+ok($objZhB->lt("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZhB->lt("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZhB->lt("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZhB->lt("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZhB->lt("u\x{308}", "U\x{308}"));
+
+# 150
+
+ok($objZhB->eq("a\x{304}", "\x{101}"));
+ok($objZhB->eq("A\x{304}", "\x{100}"));
+ok($objZhB->eq("a\x{301}", pack('U', 0xE1)));
+ok($objZhB->eq("a\x{301}", "a\x{341}"));
+ok($objZhB->eq("A\x{301}", pack('U', 0xC1)));
+ok($objZhB->eq("A\x{301}", "A\x{341}"));
+ok($objZhB->eq("a\x{30C}", "\x{1CE}"));
+ok($objZhB->eq("A\x{30C}", "\x{1CD}"));
+ok($objZhB->eq("a\x{300}", pack('U', 0xE0)));
+ok($objZhB->eq("a\x{300}", "a\x{340}"));
+ok($objZhB->eq("A\x{300}", pack('U', 0xC0)));
+ok($objZhB->eq("A\x{300}", "A\x{340}"));
+ok($objZhB->eq("e\x{304}", "\x{113}"));
+ok($objZhB->eq("E\x{304}", "\x{112}"));
+ok($objZhB->eq("e\x{301}", pack('U', 0xE9)));
+ok($objZhB->eq("e\x{301}", "e\x{341}"));
+ok($objZhB->eq("E\x{301}", pack('U', 0xC9)));
+ok($objZhB->eq("E\x{301}", "E\x{341}"));
+ok($objZhB->eq("e\x{30C}", "\x{11B}"));
+ok($objZhB->eq("E\x{30C}", "\x{11A}"));
+ok($objZhB->eq("e\x{300}", pack('U', 0xE8)));
+ok($objZhB->eq("e\x{300}", "e\x{340}"));
+ok($objZhB->eq("E\x{300}", pack('U', 0xC8)));
+ok($objZhB->eq("E\x{300}", "E\x{340}"));
+ok($objZhB->eq("e\x{302}\x{304}", pack('U*', 0xEA, 0x304)));
+ok($objZhB->eq("E\x{302}\x{304}", pack('U*', 0xCA, 0x304)));
+ok($objZhB->eq("e\x{302}\x{301}", "\x{1EBF}"));
+ok($objZhB->eq("e\x{302}\x{301}", pack('U*', 0xEA, 0x301)));
+ok($objZhB->eq("e\x{302}\x{301}", "e\x{302}\x{341}"));
+ok($objZhB->eq("E\x{302}\x{301}", "\x{1EBE}"));
+ok($objZhB->eq("E\x{302}\x{301}", pack('U*', 0xCA, 0x301)));
+ok($objZhB->eq("E\x{302}\x{301}", "E\x{302}\x{341}"));
+ok($objZhB->eq("e\x{302}\x{30C}", pack('U*', 0xEA, 0x30C)));
+ok($objZhB->eq("E\x{302}\x{30C}", pack('U*', 0xCA, 0x30C)));
+ok($objZhB->eq("e\x{302}\x{300}", "\x{1EC1}"));
+ok($objZhB->eq("e\x{302}\x{300}", pack('U*', 0xEA, 0x300)));
+ok($objZhB->eq("e\x{302}\x{300}", "e\x{302}\x{340}"));
+ok($objZhB->eq("E\x{302}\x{300}", "\x{1EC0}"));
+ok($objZhB->eq("E\x{302}\x{300}", pack('U*', 0xCA, 0x300)));
+ok($objZhB->eq("E\x{302}\x{300}", "E\x{302}\x{340}"));
+ok($objZhB->eq("e\x{302}", pack('U', 0xEA)));
+ok($objZhB->eq("E\x{302}", pack('U', 0xCA)));
+ok($objZhB->eq("i\x{304}", "\x{12B}"));
+ok($objZhB->eq("I\x{304}", "\x{12A}"));
+ok($objZhB->eq("i\x{301}", pack('U', 0xED)));
+ok($objZhB->eq("i\x{301}", "i\x{341}"));
+ok($objZhB->eq("I\x{301}", pack('U', 0xCD)));
+ok($objZhB->eq("I\x{301}", "I\x{341}"));
+ok($objZhB->eq("i\x{30C}", "\x{1D0}"));
+ok($objZhB->eq("I\x{30C}", "\x{1CF}"));
+ok($objZhB->eq("i\x{300}", pack('U', 0xEC)));
+ok($objZhB->eq("i\x{300}", "i\x{340}"));
+ok($objZhB->eq("I\x{300}", pack('U', 0xCC)));
+ok($objZhB->eq("I\x{300}", "I\x{340}"));
+ok($objZhB->eq("m\x{301}", "\x{1E3F}"));
+ok($objZhB->eq("m\x{301}", "m\x{341}"));
+ok($objZhB->eq("M\x{301}", "\x{1E3E}"));
+ok($objZhB->eq("M\x{301}", "M\x{341}"));
+ok($objZhB->eq("m\x{300}", "m\x{340}"));
+ok($objZhB->eq("M\x{300}", "M\x{340}"));
+ok($objZhB->eq("n\x{301}", "\x{144}"));
+ok($objZhB->eq("n\x{301}", "n\x{341}"));
+ok($objZhB->eq("N\x{301}", "\x{143}"));
+ok($objZhB->eq("N\x{301}", "N\x{341}"));
+ok($objZhB->eq("n\x{30C}", "\x{148}"));
+ok($objZhB->eq("N\x{30C}", "\x{147}"));
+ok($objZhB->eq("n\x{300}", "\x{1F9}"));
+ok($objZhB->eq("n\x{300}", "n\x{340}"));
+ok($objZhB->eq("N\x{300}", "\x{1F8}"));
+ok($objZhB->eq("N\x{300}", "N\x{340}"));
+ok($objZhB->eq("o\x{304}", "\x{14D}"));
+ok($objZhB->eq("O\x{304}", "\x{14C}"));
+ok($objZhB->eq("o\x{301}", pack('U', 0xF3)));
+ok($objZhB->eq("o\x{301}", "o\x{341}"));
+ok($objZhB->eq("O\x{301}", pack('U', 0xD3)));
+ok($objZhB->eq("O\x{301}", "O\x{341}"));
+ok($objZhB->eq("o\x{30C}", "\x{1D2}"));
+ok($objZhB->eq("O\x{30C}", "\x{1D1}"));
+ok($objZhB->eq("o\x{300}", pack('U', 0xF2)));
+ok($objZhB->eq("o\x{300}", "o\x{340}"));
+ok($objZhB->eq("O\x{300}", pack('U', 0xD2)));
+ok($objZhB->eq("O\x{300}", "O\x{340}"));
+ok($objZhB->eq("u\x{304}", "\x{16B}"));
+ok($objZhB->eq("U\x{304}", "\x{16A}"));
+ok($objZhB->eq("u\x{301}", pack('U', 0xFA)));
+ok($objZhB->eq("u\x{301}", "u\x{341}"));
+ok($objZhB->eq("U\x{301}", pack('U', 0xDA)));
+ok($objZhB->eq("U\x{301}", "U\x{341}"));
+ok($objZhB->eq("u\x{30C}", "\x{1D4}"));
+ok($objZhB->eq("U\x{30C}", "\x{1D3}"));
+ok($objZhB->eq("u\x{300}", pack('U', 0xF9)));
+ok($objZhB->eq("u\x{300}", "u\x{340}"));
+ok($objZhB->eq("U\x{300}", pack('U', 0xD9)));
+ok($objZhB->eq("U\x{300}", "U\x{340}"));
+ok($objZhB->eq("u\x{308}\x{304}", "\x{1D6}"));
+ok($objZhB->eq("u\x{308}\x{304}", pack('U*', 0xFC, 0x304)));
+ok($objZhB->eq("U\x{308}\x{304}", "\x{1D5}"));
+ok($objZhB->eq("U\x{308}\x{304}", pack('U*', 0xDC, 0x304)));
+ok($objZhB->eq("u\x{308}\x{301}", "\x{1D8}"));
+ok($objZhB->eq("u\x{308}\x{301}", pack('U*', 0xFC, 0x301)));
+ok($objZhB->eq("u\x{308}\x{301}", "u\x{308}\x{341}"));
+ok($objZhB->eq("U\x{308}\x{301}", "\x{1D7}"));
+ok($objZhB->eq("U\x{308}\x{301}", pack('U*', 0xDC, 0x301)));
+ok($objZhB->eq("U\x{308}\x{301}", "U\x{308}\x{341}"));
+ok($objZhB->eq("u\x{308}\x{30C}", "\x{1DA}"));
+ok($objZhB->eq("u\x{308}\x{30C}", pack('U*', 0xFC, 0x30C)));
+ok($objZhB->eq("U\x{308}\x{30C}", "\x{1D9}"));
+ok($objZhB->eq("U\x{308}\x{30C}", pack('U*', 0xDC, 0x30C)));
+ok($objZhB->eq("u\x{308}\x{300}", "\x{1DC}"));
+ok($objZhB->eq("u\x{308}\x{300}", pack('U*', 0xFC, 0x300)));
+ok($objZhB->eq("u\x{308}\x{300}", "u\x{308}\x{340}"));
+ok($objZhB->eq("U\x{308}\x{300}", "\x{1DB}"));
+ok($objZhB->eq("U\x{308}\x{300}", pack('U*', 0xDC, 0x300)));
+ok($objZhB->eq("U\x{308}\x{300}", "U\x{308}\x{340}"));
+ok($objZhB->eq("u\x{308}", pack('U', 0xFC)));
+ok($objZhB->eq("U\x{308}", pack('U', 0xDC)));
+
+# 266
+
+ok($objZhB->eq("e\x{302}\x{303}", "\x{1EC5}"));
+ok($objZhB->eq("E\x{302}\x{303}", "\x{1EC4}"));
+ok($objZhB->eq("e\x{302}\x{309}", "\x{1EC3}"));
+ok($objZhB->eq("E\x{302}\x{309}", "\x{1EC2}"));
+ok($objZhB->eq("e\x{302}\x{323}", "\x{1EC7}"));
+ok($objZhB->eq("E\x{302}\x{323}", "\x{1EC6}"));
+
+# 272
+
+$objZhB->change(level => 1);
+
+ok($objZhB->lt("\x{A000}", "\x{5159}"));
+
+ok($objZhB->lt("\x{5159}", "\x{515B}"));
+ok($objZhB->lt("\x{515B}", "\x{515E}"));
+ok($objZhB->lt("\x{515E}", "\x{515D}"));
+ok($objZhB->lt("\x{515D}", "\x{5161}"));
+ok($objZhB->lt("\x{5161}", "\x{5163}"));
+ok($objZhB->lt("\x{5163}", "\x{55E7}"));
+ok($objZhB->lt("\x{55E7}", "\x{74E9}"));
+ok($objZhB->lt("\x{74E9}", "\x{7CCE}"));
+ok($objZhB->lt("\x{7CCE}", "\x{4E00}"));
+ok($objZhB->lt("\x{4E00}", "\x{4E59}"));
+ok($objZhB->lt("\x{4E59}", "\x{4E01}"));
+ok($objZhB->lt("\x{4E01}", "\x{4E03}"));
+ok($objZhB->lt("\x{4E03}", "\x{4E43}"));
+ok($objZhB->lt("\x{4E43}", "\x{4E5D}"));
+ok($objZhB->lt("\x{4E5D}", "\x{4E86}"));
+
+ok($objZhB->lt("\x{7069}", "\x{706A}"));
+ok($objZhB->lt("\x{706A}", "\x{9EA4}"));
+ok($objZhB->lt("\x{9EA4}", "\x{9F7E}"));
+ok($objZhB->lt("\x{9F7E}", "\x{9F49}"));
+ok($objZhB->lt("\x{9F49}", "\x{9F98}"));
+
+# 293
diff --git a/cpan/Unicode-Collate/t/loc_zhgb.t b/cpan/Unicode-Collate/t/loc_zhgb.t
new file mode 100644
index 0000000000..486431d28f
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_zhgb.t
@@ -0,0 +1,333 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 290;
+
+my $objZhG = Unicode::Collate::Locale->
+ new(locale => 'ZH__gb2312han', normalization => undef);
+
+ok(1);
+ok($objZhG->getlocale, 'zh__gb2312han');
+
+$objZhG->change(level => 1);
+
+ok($objZhG->eq("a\x{304}", "a\x{301}"));
+ok($objZhG->eq("a\x{301}", "a\x{30C}"));
+ok($objZhG->eq("a\x{30C}", "a\x{300}"));
+ok($objZhG->eq("a\x{300}", "a"));
+ok($objZhG->eq("e\x{304}", "e\x{301}"));
+ok($objZhG->eq("e\x{301}", "e\x{30C}"));
+ok($objZhG->eq("e\x{30C}", "e\x{300}"));
+ok($objZhG->eq("e\x{300}", "e"));
+ok($objZhG->eq("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZhG->eq("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZhG->eq("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZhG->eq("e\x{302}\x{300}", "e\x{302}"));
+ok($objZhG->eq("i\x{304}", "i\x{301}"));
+ok($objZhG->eq("i\x{301}", "i\x{30C}"));
+ok($objZhG->eq("i\x{30C}", "i\x{300}"));
+ok($objZhG->eq("i\x{300}", "i"));
+ok($objZhG->eq("m\x{304}", "m\x{301}"));
+ok($objZhG->eq("m\x{301}", "m\x{30C}"));
+ok($objZhG->eq("m\x{30C}", "m\x{300}"));
+ok($objZhG->eq("m\x{300}", "m"));
+ok($objZhG->eq("n\x{304}", "n\x{301}"));
+ok($objZhG->eq("n\x{301}", "n\x{30C}"));
+ok($objZhG->eq("n\x{30C}", "n\x{300}"));
+ok($objZhG->eq("n\x{300}", "n"));
+ok($objZhG->eq("o\x{304}", "o\x{301}"));
+ok($objZhG->eq("o\x{301}", "o\x{30C}"));
+ok($objZhG->eq("o\x{30C}", "o\x{300}"));
+ok($objZhG->eq("o\x{300}", "o"));
+ok($objZhG->eq("u\x{304}", "u\x{301}"));
+ok($objZhG->eq("u\x{301}", "u\x{30C}"));
+ok($objZhG->eq("u\x{30C}", "u\x{300}"));
+ok($objZhG->eq("u\x{300}", "u"));
+ok($objZhG->eq("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZhG->eq("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZhG->eq("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZhG->eq("u\x{308}\x{300}", "u\x{308}"));
+
+# 38
+
+$objZhG->change(level => 2);
+
+ok($objZhG->lt("a\x{304}", "a\x{301}"));
+ok($objZhG->lt("a\x{301}", "a\x{30C}"));
+ok($objZhG->lt("a\x{30C}", "a\x{300}"));
+ok($objZhG->lt("a\x{300}", "a"));
+ok($objZhG->lt("e\x{304}", "e\x{301}"));
+ok($objZhG->lt("e\x{301}", "e\x{30C}"));
+ok($objZhG->lt("e\x{30C}", "e\x{300}"));
+ok($objZhG->lt("e\x{300}", "e"));
+ok($objZhG->lt("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZhG->lt("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZhG->lt("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZhG->lt("e\x{302}\x{300}", "e\x{302}"));
+ok($objZhG->lt("i\x{304}", "i\x{301}"));
+ok($objZhG->lt("i\x{301}", "i\x{30C}"));
+ok($objZhG->lt("i\x{30C}", "i\x{300}"));
+ok($objZhG->lt("i\x{300}", "i"));
+ok($objZhG->lt("m\x{304}", "m\x{301}"));
+ok($objZhG->lt("m\x{301}", "m\x{30C}"));
+ok($objZhG->lt("m\x{30C}", "m\x{300}"));
+ok($objZhG->lt("m\x{300}", "m"));
+ok($objZhG->lt("n\x{304}", "n\x{301}"));
+ok($objZhG->lt("n\x{301}", "n\x{30C}"));
+ok($objZhG->lt("n\x{30C}", "n\x{300}"));
+ok($objZhG->lt("n\x{300}", "n"));
+ok($objZhG->lt("o\x{304}", "o\x{301}"));
+ok($objZhG->lt("o\x{301}", "o\x{30C}"));
+ok($objZhG->lt("o\x{30C}", "o\x{300}"));
+ok($objZhG->lt("o\x{300}", "o"));
+ok($objZhG->lt("u\x{304}", "u\x{301}"));
+ok($objZhG->lt("u\x{301}", "u\x{30C}"));
+ok($objZhG->lt("u\x{30C}", "u\x{300}"));
+ok($objZhG->lt("u\x{300}", "u"));
+ok($objZhG->lt("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZhG->lt("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZhG->lt("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZhG->lt("u\x{308}\x{300}", "u\x{308}"));
+
+# 74
+
+ok($objZhG->eq("a\x{304}", "A\x{304}"));
+ok($objZhG->eq("a\x{301}", "A\x{301}"));
+ok($objZhG->eq("a\x{30C}", "A\x{30C}"));
+ok($objZhG->eq("a\x{300}", "A\x{300}"));
+ok($objZhG->eq("e\x{304}", "E\x{304}"));
+ok($objZhG->eq("e\x{301}", "E\x{301}"));
+ok($objZhG->eq("e\x{30C}", "E\x{30C}"));
+ok($objZhG->eq("e\x{300}", "E\x{300}"));
+ok($objZhG->eq("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZhG->eq("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZhG->eq("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZhG->eq("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZhG->eq("e\x{302}", "E\x{302}"));
+ok($objZhG->eq("i\x{304}", "I\x{304}"));
+ok($objZhG->eq("i\x{301}", "I\x{301}"));
+ok($objZhG->eq("i\x{30C}", "I\x{30C}"));
+ok($objZhG->eq("i\x{300}", "I\x{300}"));
+ok($objZhG->eq("m\x{304}", "M\x{304}"));
+ok($objZhG->eq("m\x{301}", "M\x{301}"));
+ok($objZhG->eq("m\x{30C}", "M\x{30C}"));
+ok($objZhG->eq("m\x{300}", "M\x{300}"));
+ok($objZhG->eq("n\x{304}", "N\x{304}"));
+ok($objZhG->eq("n\x{301}", "N\x{301}"));
+ok($objZhG->eq("n\x{30C}", "N\x{30C}"));
+ok($objZhG->eq("n\x{300}", "N\x{300}"));
+ok($objZhG->eq("o\x{304}", "O\x{304}"));
+ok($objZhG->eq("o\x{301}", "O\x{301}"));
+ok($objZhG->eq("o\x{30C}", "O\x{30C}"));
+ok($objZhG->eq("o\x{300}", "O\x{300}"));
+ok($objZhG->eq("u\x{304}", "U\x{304}"));
+ok($objZhG->eq("u\x{301}", "U\x{301}"));
+ok($objZhG->eq("u\x{30C}", "U\x{30C}"));
+ok($objZhG->eq("u\x{300}", "U\x{300}"));
+ok($objZhG->eq("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZhG->eq("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZhG->eq("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZhG->eq("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZhG->eq("u\x{308}", "U\x{308}"));
+
+# 112
+
+$objZhG->change(level => 3);
+
+ok($objZhG->lt("a\x{304}", "A\x{304}"));
+ok($objZhG->lt("a\x{301}", "A\x{301}"));
+ok($objZhG->lt("a\x{30C}", "A\x{30C}"));
+ok($objZhG->lt("a\x{300}", "A\x{300}"));
+ok($objZhG->lt("e\x{304}", "E\x{304}"));
+ok($objZhG->lt("e\x{301}", "E\x{301}"));
+ok($objZhG->lt("e\x{30C}", "E\x{30C}"));
+ok($objZhG->lt("e\x{300}", "E\x{300}"));
+ok($objZhG->lt("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZhG->lt("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZhG->lt("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZhG->lt("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZhG->lt("e\x{302}", "E\x{302}"));
+ok($objZhG->lt("i\x{304}", "I\x{304}"));
+ok($objZhG->lt("i\x{301}", "I\x{301}"));
+ok($objZhG->lt("i\x{30C}", "I\x{30C}"));
+ok($objZhG->lt("i\x{300}", "I\x{300}"));
+ok($objZhG->lt("m\x{304}", "M\x{304}"));
+ok($objZhG->lt("m\x{301}", "M\x{301}"));
+ok($objZhG->lt("m\x{30C}", "M\x{30C}"));
+ok($objZhG->lt("m\x{300}", "M\x{300}"));
+ok($objZhG->lt("n\x{304}", "N\x{304}"));
+ok($objZhG->lt("n\x{301}", "N\x{301}"));
+ok($objZhG->lt("n\x{30C}", "N\x{30C}"));
+ok($objZhG->lt("n\x{300}", "N\x{300}"));
+ok($objZhG->lt("o\x{304}", "O\x{304}"));
+ok($objZhG->lt("o\x{301}", "O\x{301}"));
+ok($objZhG->lt("o\x{30C}", "O\x{30C}"));
+ok($objZhG->lt("o\x{300}", "O\x{300}"));
+ok($objZhG->lt("u\x{304}", "U\x{304}"));
+ok($objZhG->lt("u\x{301}", "U\x{301}"));
+ok($objZhG->lt("u\x{30C}", "U\x{30C}"));
+ok($objZhG->lt("u\x{300}", "U\x{300}"));
+ok($objZhG->lt("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZhG->lt("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZhG->lt("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZhG->lt("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZhG->lt("u\x{308}", "U\x{308}"));
+
+# 150
+
+ok($objZhG->eq("a\x{304}", "\x{101}"));
+ok($objZhG->eq("A\x{304}", "\x{100}"));
+ok($objZhG->eq("a\x{301}", pack('U', 0xE1)));
+ok($objZhG->eq("a\x{301}", "a\x{341}"));
+ok($objZhG->eq("A\x{301}", pack('U', 0xC1)));
+ok($objZhG->eq("A\x{301}", "A\x{341}"));
+ok($objZhG->eq("a\x{30C}", "\x{1CE}"));
+ok($objZhG->eq("A\x{30C}", "\x{1CD}"));
+ok($objZhG->eq("a\x{300}", pack('U', 0xE0)));
+ok($objZhG->eq("a\x{300}", "a\x{340}"));
+ok($objZhG->eq("A\x{300}", pack('U', 0xC0)));
+ok($objZhG->eq("A\x{300}", "A\x{340}"));
+ok($objZhG->eq("e\x{304}", "\x{113}"));
+ok($objZhG->eq("E\x{304}", "\x{112}"));
+ok($objZhG->eq("e\x{301}", pack('U', 0xE9)));
+ok($objZhG->eq("e\x{301}", "e\x{341}"));
+ok($objZhG->eq("E\x{301}", pack('U', 0xC9)));
+ok($objZhG->eq("E\x{301}", "E\x{341}"));
+ok($objZhG->eq("e\x{30C}", "\x{11B}"));
+ok($objZhG->eq("E\x{30C}", "\x{11A}"));
+ok($objZhG->eq("e\x{300}", pack('U', 0xE8)));
+ok($objZhG->eq("e\x{300}", "e\x{340}"));
+ok($objZhG->eq("E\x{300}", pack('U', 0xC8)));
+ok($objZhG->eq("E\x{300}", "E\x{340}"));
+ok($objZhG->eq("e\x{302}\x{304}", pack('U*', 0xEA, 0x304)));
+ok($objZhG->eq("E\x{302}\x{304}", pack('U*', 0xCA, 0x304)));
+ok($objZhG->eq("e\x{302}\x{301}", "\x{1EBF}"));
+ok($objZhG->eq("e\x{302}\x{301}", pack('U*', 0xEA, 0x301)));
+ok($objZhG->eq("e\x{302}\x{301}", "e\x{302}\x{341}"));
+ok($objZhG->eq("E\x{302}\x{301}", "\x{1EBE}"));
+ok($objZhG->eq("E\x{302}\x{301}", pack('U*', 0xCA, 0x301)));
+ok($objZhG->eq("E\x{302}\x{301}", "E\x{302}\x{341}"));
+ok($objZhG->eq("e\x{302}\x{30C}", pack('U*', 0xEA, 0x30C)));
+ok($objZhG->eq("E\x{302}\x{30C}", pack('U*', 0xCA, 0x30C)));
+ok($objZhG->eq("e\x{302}\x{300}", "\x{1EC1}"));
+ok($objZhG->eq("e\x{302}\x{300}", pack('U*', 0xEA, 0x300)));
+ok($objZhG->eq("e\x{302}\x{300}", "e\x{302}\x{340}"));
+ok($objZhG->eq("E\x{302}\x{300}", "\x{1EC0}"));
+ok($objZhG->eq("E\x{302}\x{300}", pack('U*', 0xCA, 0x300)));
+ok($objZhG->eq("E\x{302}\x{300}", "E\x{302}\x{340}"));
+ok($objZhG->eq("e\x{302}", pack('U', 0xEA)));
+ok($objZhG->eq("E\x{302}", pack('U', 0xCA)));
+ok($objZhG->eq("i\x{304}", "\x{12B}"));
+ok($objZhG->eq("I\x{304}", "\x{12A}"));
+ok($objZhG->eq("i\x{301}", pack('U', 0xED)));
+ok($objZhG->eq("i\x{301}", "i\x{341}"));
+ok($objZhG->eq("I\x{301}", pack('U', 0xCD)));
+ok($objZhG->eq("I\x{301}", "I\x{341}"));
+ok($objZhG->eq("i\x{30C}", "\x{1D0}"));
+ok($objZhG->eq("I\x{30C}", "\x{1CF}"));
+ok($objZhG->eq("i\x{300}", pack('U', 0xEC)));
+ok($objZhG->eq("i\x{300}", "i\x{340}"));
+ok($objZhG->eq("I\x{300}", pack('U', 0xCC)));
+ok($objZhG->eq("I\x{300}", "I\x{340}"));
+ok($objZhG->eq("m\x{301}", "\x{1E3F}"));
+ok($objZhG->eq("m\x{301}", "m\x{341}"));
+ok($objZhG->eq("M\x{301}", "\x{1E3E}"));
+ok($objZhG->eq("M\x{301}", "M\x{341}"));
+ok($objZhG->eq("m\x{300}", "m\x{340}"));
+ok($objZhG->eq("M\x{300}", "M\x{340}"));
+ok($objZhG->eq("n\x{301}", "\x{144}"));
+ok($objZhG->eq("n\x{301}", "n\x{341}"));
+ok($objZhG->eq("N\x{301}", "\x{143}"));
+ok($objZhG->eq("N\x{301}", "N\x{341}"));
+ok($objZhG->eq("n\x{30C}", "\x{148}"));
+ok($objZhG->eq("N\x{30C}", "\x{147}"));
+ok($objZhG->eq("n\x{300}", "\x{1F9}"));
+ok($objZhG->eq("n\x{300}", "n\x{340}"));
+ok($objZhG->eq("N\x{300}", "\x{1F8}"));
+ok($objZhG->eq("N\x{300}", "N\x{340}"));
+ok($objZhG->eq("o\x{304}", "\x{14D}"));
+ok($objZhG->eq("O\x{304}", "\x{14C}"));
+ok($objZhG->eq("o\x{301}", pack('U', 0xF3)));
+ok($objZhG->eq("o\x{301}", "o\x{341}"));
+ok($objZhG->eq("O\x{301}", pack('U', 0xD3)));
+ok($objZhG->eq("O\x{301}", "O\x{341}"));
+ok($objZhG->eq("o\x{30C}", "\x{1D2}"));
+ok($objZhG->eq("O\x{30C}", "\x{1D1}"));
+ok($objZhG->eq("o\x{300}", pack('U', 0xF2)));
+ok($objZhG->eq("o\x{300}", "o\x{340}"));
+ok($objZhG->eq("O\x{300}", pack('U', 0xD2)));
+ok($objZhG->eq("O\x{300}", "O\x{340}"));
+ok($objZhG->eq("u\x{304}", "\x{16B}"));
+ok($objZhG->eq("U\x{304}", "\x{16A}"));
+ok($objZhG->eq("u\x{301}", pack('U', 0xFA)));
+ok($objZhG->eq("u\x{301}", "u\x{341}"));
+ok($objZhG->eq("U\x{301}", pack('U', 0xDA)));
+ok($objZhG->eq("U\x{301}", "U\x{341}"));
+ok($objZhG->eq("u\x{30C}", "\x{1D4}"));
+ok($objZhG->eq("U\x{30C}", "\x{1D3}"));
+ok($objZhG->eq("u\x{300}", pack('U', 0xF9)));
+ok($objZhG->eq("u\x{300}", "u\x{340}"));
+ok($objZhG->eq("U\x{300}", pack('U', 0xD9)));
+ok($objZhG->eq("U\x{300}", "U\x{340}"));
+ok($objZhG->eq("u\x{308}\x{304}", "\x{1D6}"));
+ok($objZhG->eq("u\x{308}\x{304}", pack('U*', 0xFC, 0x304)));
+ok($objZhG->eq("U\x{308}\x{304}", "\x{1D5}"));
+ok($objZhG->eq("U\x{308}\x{304}", pack('U*', 0xDC, 0x304)));
+ok($objZhG->eq("u\x{308}\x{301}", "\x{1D8}"));
+ok($objZhG->eq("u\x{308}\x{301}", pack('U*', 0xFC, 0x301)));
+ok($objZhG->eq("u\x{308}\x{301}", "u\x{308}\x{341}"));
+ok($objZhG->eq("U\x{308}\x{301}", "\x{1D7}"));
+ok($objZhG->eq("U\x{308}\x{301}", pack('U*', 0xDC, 0x301)));
+ok($objZhG->eq("U\x{308}\x{301}", "U\x{308}\x{341}"));
+ok($objZhG->eq("u\x{308}\x{30C}", "\x{1DA}"));
+ok($objZhG->eq("u\x{308}\x{30C}", pack('U*', 0xFC, 0x30C)));
+ok($objZhG->eq("U\x{308}\x{30C}", "\x{1D9}"));
+ok($objZhG->eq("U\x{308}\x{30C}", pack('U*', 0xDC, 0x30C)));
+ok($objZhG->eq("u\x{308}\x{300}", "\x{1DC}"));
+ok($objZhG->eq("u\x{308}\x{300}", pack('U*', 0xFC, 0x300)));
+ok($objZhG->eq("u\x{308}\x{300}", "u\x{308}\x{340}"));
+ok($objZhG->eq("U\x{308}\x{300}", "\x{1DB}"));
+ok($objZhG->eq("U\x{308}\x{300}", pack('U*', 0xDC, 0x300)));
+ok($objZhG->eq("U\x{308}\x{300}", "U\x{308}\x{340}"));
+ok($objZhG->eq("u\x{308}", pack('U', 0xFC)));
+ok($objZhG->eq("U\x{308}", pack('U', 0xDC)));
+
+# 266
+
+ok($objZhG->eq("e\x{302}\x{303}", "\x{1EC5}"));
+ok($objZhG->eq("E\x{302}\x{303}", "\x{1EC4}"));
+ok($objZhG->eq("e\x{302}\x{309}", "\x{1EC3}"));
+ok($objZhG->eq("E\x{302}\x{309}", "\x{1EC2}"));
+ok($objZhG->eq("e\x{302}\x{323}", "\x{1EC7}"));
+ok($objZhG->eq("E\x{302}\x{323}", "\x{1EC6}"));
+
+# 272
+
+$objZhG->change(level => 1);
+
+ok($objZhG->lt("\x{A000}", "\x{554A}"));
+
+ok($objZhG->lt("\x{554A}", "\x{963F}"));
+ok($objZhG->lt("\x{963F}", "\x{57C3}"));
+ok($objZhG->lt("\x{57C3}", "\x{6328}"));
+ok($objZhG->lt("\x{6328}", "\x{54CE}"));
+ok($objZhG->lt("\x{54CE}", "\x{5509}"));
+ok($objZhG->lt("\x{5509}", "\x{54C0}"));
+ok($objZhG->lt("\x{54C0}", "\x{7691}"));
+ok($objZhG->lt("\x{7691}", "\x{764C}"));
+ok($objZhG->lt("\x{764C}", "\x{853C}"));
+ok($objZhG->lt("\x{853C}", "\x{77EE}"));
+
+ok($objZhG->lt("\x{77EE}", "\x{4E00}"));
+ok($objZhG->lt("\x{4E00}", "\x{9F2F}"));
+
+ok($objZhG->lt("\x{9F2F}", "\x{9F39}"));
+ok($objZhG->lt("\x{9F39}", "\x{9F37}"));
+ok($objZhG->lt("\x{9F37}", "\x{9F3D}"));
+ok($objZhG->lt("\x{9F3D}", "\x{9F3E}"));
+ok($objZhG->lt("\x{9F3E}", "\x{9F44}"));
+
+# 290
diff --git a/cpan/Unicode-Collate/t/loc_zhpy.t b/cpan/Unicode-Collate/t/loc_zhpy.t
new file mode 100644
index 0000000000..81c0fb2f43
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_zhpy.t
@@ -0,0 +1,344 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 300;
+
+my $objZhP = Unicode::Collate::Locale->
+ new(locale => 'ZH__pinyin', normalization => undef);
+
+ok(1);
+ok($objZhP->getlocale, 'zh__pinyin');
+
+$objZhP->change(level => 1);
+
+ok($objZhP->eq("a\x{304}", "a\x{301}"));
+ok($objZhP->eq("a\x{301}", "a\x{30C}"));
+ok($objZhP->eq("a\x{30C}", "a\x{300}"));
+ok($objZhP->eq("a\x{300}", "a"));
+ok($objZhP->eq("e\x{304}", "e\x{301}"));
+ok($objZhP->eq("e\x{301}", "e\x{30C}"));
+ok($objZhP->eq("e\x{30C}", "e\x{300}"));
+ok($objZhP->eq("e\x{300}", "e"));
+ok($objZhP->eq("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZhP->eq("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZhP->eq("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZhP->eq("e\x{302}\x{300}", "e\x{302}"));
+ok($objZhP->eq("i\x{304}", "i\x{301}"));
+ok($objZhP->eq("i\x{301}", "i\x{30C}"));
+ok($objZhP->eq("i\x{30C}", "i\x{300}"));
+ok($objZhP->eq("i\x{300}", "i"));
+ok($objZhP->eq("m\x{304}", "m\x{301}"));
+ok($objZhP->eq("m\x{301}", "m\x{30C}"));
+ok($objZhP->eq("m\x{30C}", "m\x{300}"));
+ok($objZhP->eq("m\x{300}", "m"));
+ok($objZhP->eq("n\x{304}", "n\x{301}"));
+ok($objZhP->eq("n\x{301}", "n\x{30C}"));
+ok($objZhP->eq("n\x{30C}", "n\x{300}"));
+ok($objZhP->eq("n\x{300}", "n"));
+ok($objZhP->eq("o\x{304}", "o\x{301}"));
+ok($objZhP->eq("o\x{301}", "o\x{30C}"));
+ok($objZhP->eq("o\x{30C}", "o\x{300}"));
+ok($objZhP->eq("o\x{300}", "o"));
+ok($objZhP->eq("u\x{304}", "u\x{301}"));
+ok($objZhP->eq("u\x{301}", "u\x{30C}"));
+ok($objZhP->eq("u\x{30C}", "u\x{300}"));
+ok($objZhP->eq("u\x{300}", "u"));
+ok($objZhP->eq("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZhP->eq("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZhP->eq("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZhP->eq("u\x{308}\x{300}", "u\x{308}"));
+
+# 38
+
+$objZhP->change(level => 2);
+
+ok($objZhP->lt("a\x{304}", "a\x{301}"));
+ok($objZhP->lt("a\x{301}", "a\x{30C}"));
+ok($objZhP->lt("a\x{30C}", "a\x{300}"));
+ok($objZhP->lt("a\x{300}", "a"));
+ok($objZhP->lt("e\x{304}", "e\x{301}"));
+ok($objZhP->lt("e\x{301}", "e\x{30C}"));
+ok($objZhP->lt("e\x{30C}", "e\x{300}"));
+ok($objZhP->lt("e\x{300}", "e"));
+ok($objZhP->lt("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZhP->lt("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZhP->lt("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZhP->lt("e\x{302}\x{300}", "e\x{302}"));
+ok($objZhP->lt("i\x{304}", "i\x{301}"));
+ok($objZhP->lt("i\x{301}", "i\x{30C}"));
+ok($objZhP->lt("i\x{30C}", "i\x{300}"));
+ok($objZhP->lt("i\x{300}", "i"));
+ok($objZhP->lt("m\x{304}", "m\x{301}"));
+ok($objZhP->lt("m\x{301}", "m\x{30C}"));
+ok($objZhP->lt("m\x{30C}", "m\x{300}"));
+ok($objZhP->lt("m\x{300}", "m"));
+ok($objZhP->lt("n\x{304}", "n\x{301}"));
+ok($objZhP->lt("n\x{301}", "n\x{30C}"));
+ok($objZhP->lt("n\x{30C}", "n\x{300}"));
+ok($objZhP->lt("n\x{300}", "n"));
+ok($objZhP->lt("o\x{304}", "o\x{301}"));
+ok($objZhP->lt("o\x{301}", "o\x{30C}"));
+ok($objZhP->lt("o\x{30C}", "o\x{300}"));
+ok($objZhP->lt("o\x{300}", "o"));
+ok($objZhP->lt("u\x{304}", "u\x{301}"));
+ok($objZhP->lt("u\x{301}", "u\x{30C}"));
+ok($objZhP->lt("u\x{30C}", "u\x{300}"));
+ok($objZhP->lt("u\x{300}", "u"));
+ok($objZhP->lt("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZhP->lt("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZhP->lt("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZhP->lt("u\x{308}\x{300}", "u\x{308}"));
+
+# 74
+
+ok($objZhP->eq("a\x{304}", "A\x{304}"));
+ok($objZhP->eq("a\x{301}", "A\x{301}"));
+ok($objZhP->eq("a\x{30C}", "A\x{30C}"));
+ok($objZhP->eq("a\x{300}", "A\x{300}"));
+ok($objZhP->eq("e\x{304}", "E\x{304}"));
+ok($objZhP->eq("e\x{301}", "E\x{301}"));
+ok($objZhP->eq("e\x{30C}", "E\x{30C}"));
+ok($objZhP->eq("e\x{300}", "E\x{300}"));
+ok($objZhP->eq("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZhP->eq("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZhP->eq("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZhP->eq("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZhP->eq("e\x{302}", "E\x{302}"));
+ok($objZhP->eq("i\x{304}", "I\x{304}"));
+ok($objZhP->eq("i\x{301}", "I\x{301}"));
+ok($objZhP->eq("i\x{30C}", "I\x{30C}"));
+ok($objZhP->eq("i\x{300}", "I\x{300}"));
+ok($objZhP->eq("m\x{304}", "M\x{304}"));
+ok($objZhP->eq("m\x{301}", "M\x{301}"));
+ok($objZhP->eq("m\x{30C}", "M\x{30C}"));
+ok($objZhP->eq("m\x{300}", "M\x{300}"));
+ok($objZhP->eq("n\x{304}", "N\x{304}"));
+ok($objZhP->eq("n\x{301}", "N\x{301}"));
+ok($objZhP->eq("n\x{30C}", "N\x{30C}"));
+ok($objZhP->eq("n\x{300}", "N\x{300}"));
+ok($objZhP->eq("o\x{304}", "O\x{304}"));
+ok($objZhP->eq("o\x{301}", "O\x{301}"));
+ok($objZhP->eq("o\x{30C}", "O\x{30C}"));
+ok($objZhP->eq("o\x{300}", "O\x{300}"));
+ok($objZhP->eq("u\x{304}", "U\x{304}"));
+ok($objZhP->eq("u\x{301}", "U\x{301}"));
+ok($objZhP->eq("u\x{30C}", "U\x{30C}"));
+ok($objZhP->eq("u\x{300}", "U\x{300}"));
+ok($objZhP->eq("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZhP->eq("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZhP->eq("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZhP->eq("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZhP->eq("u\x{308}", "U\x{308}"));
+
+# 112
+
+$objZhP->change(level => 3);
+
+ok($objZhP->lt("a\x{304}", "A\x{304}"));
+ok($objZhP->lt("a\x{301}", "A\x{301}"));
+ok($objZhP->lt("a\x{30C}", "A\x{30C}"));
+ok($objZhP->lt("a\x{300}", "A\x{300}"));
+ok($objZhP->lt("e\x{304}", "E\x{304}"));
+ok($objZhP->lt("e\x{301}", "E\x{301}"));
+ok($objZhP->lt("e\x{30C}", "E\x{30C}"));
+ok($objZhP->lt("e\x{300}", "E\x{300}"));
+ok($objZhP->lt("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZhP->lt("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZhP->lt("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZhP->lt("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZhP->lt("e\x{302}", "E\x{302}"));
+ok($objZhP->lt("i\x{304}", "I\x{304}"));
+ok($objZhP->lt("i\x{301}", "I\x{301}"));
+ok($objZhP->lt("i\x{30C}", "I\x{30C}"));
+ok($objZhP->lt("i\x{300}", "I\x{300}"));
+ok($objZhP->lt("m\x{304}", "M\x{304}"));
+ok($objZhP->lt("m\x{301}", "M\x{301}"));
+ok($objZhP->lt("m\x{30C}", "M\x{30C}"));
+ok($objZhP->lt("m\x{300}", "M\x{300}"));
+ok($objZhP->lt("n\x{304}", "N\x{304}"));
+ok($objZhP->lt("n\x{301}", "N\x{301}"));
+ok($objZhP->lt("n\x{30C}", "N\x{30C}"));
+ok($objZhP->lt("n\x{300}", "N\x{300}"));
+ok($objZhP->lt("o\x{304}", "O\x{304}"));
+ok($objZhP->lt("o\x{301}", "O\x{301}"));
+ok($objZhP->lt("o\x{30C}", "O\x{30C}"));
+ok($objZhP->lt("o\x{300}", "O\x{300}"));
+ok($objZhP->lt("u\x{304}", "U\x{304}"));
+ok($objZhP->lt("u\x{301}", "U\x{301}"));
+ok($objZhP->lt("u\x{30C}", "U\x{30C}"));
+ok($objZhP->lt("u\x{300}", "U\x{300}"));
+ok($objZhP->lt("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZhP->lt("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZhP->lt("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZhP->lt("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZhP->lt("u\x{308}", "U\x{308}"));
+
+# 150
+
+ok($objZhP->eq("a\x{304}", "\x{101}"));
+ok($objZhP->eq("A\x{304}", "\x{100}"));
+ok($objZhP->eq("a\x{301}", pack('U', 0xE1)));
+ok($objZhP->eq("a\x{301}", "a\x{341}"));
+ok($objZhP->eq("A\x{301}", pack('U', 0xC1)));
+ok($objZhP->eq("A\x{301}", "A\x{341}"));
+ok($objZhP->eq("a\x{30C}", "\x{1CE}"));
+ok($objZhP->eq("A\x{30C}", "\x{1CD}"));
+ok($objZhP->eq("a\x{300}", pack('U', 0xE0)));
+ok($objZhP->eq("a\x{300}", "a\x{340}"));
+ok($objZhP->eq("A\x{300}", pack('U', 0xC0)));
+ok($objZhP->eq("A\x{300}", "A\x{340}"));
+ok($objZhP->eq("e\x{304}", "\x{113}"));
+ok($objZhP->eq("E\x{304}", "\x{112}"));
+ok($objZhP->eq("e\x{301}", pack('U', 0xE9)));
+ok($objZhP->eq("e\x{301}", "e\x{341}"));
+ok($objZhP->eq("E\x{301}", pack('U', 0xC9)));
+ok($objZhP->eq("E\x{301}", "E\x{341}"));
+ok($objZhP->eq("e\x{30C}", "\x{11B}"));
+ok($objZhP->eq("E\x{30C}", "\x{11A}"));
+ok($objZhP->eq("e\x{300}", pack('U', 0xE8)));
+ok($objZhP->eq("e\x{300}", "e\x{340}"));
+ok($objZhP->eq("E\x{300}", pack('U', 0xC8)));
+ok($objZhP->eq("E\x{300}", "E\x{340}"));
+ok($objZhP->eq("e\x{302}\x{304}", pack('U*', 0xEA, 0x304)));
+ok($objZhP->eq("E\x{302}\x{304}", pack('U*', 0xCA, 0x304)));
+ok($objZhP->eq("e\x{302}\x{301}", "\x{1EBF}"));
+ok($objZhP->eq("e\x{302}\x{301}", pack('U*', 0xEA, 0x301)));
+ok($objZhP->eq("e\x{302}\x{301}", "e\x{302}\x{341}"));
+ok($objZhP->eq("E\x{302}\x{301}", "\x{1EBE}"));
+ok($objZhP->eq("E\x{302}\x{301}", pack('U*', 0xCA, 0x301)));
+ok($objZhP->eq("E\x{302}\x{301}", "E\x{302}\x{341}"));
+ok($objZhP->eq("e\x{302}\x{30C}", pack('U*', 0xEA, 0x30C)));
+ok($objZhP->eq("E\x{302}\x{30C}", pack('U*', 0xCA, 0x30C)));
+ok($objZhP->eq("e\x{302}\x{300}", "\x{1EC1}"));
+ok($objZhP->eq("e\x{302}\x{300}", pack('U*', 0xEA, 0x300)));
+ok($objZhP->eq("e\x{302}\x{300}", "e\x{302}\x{340}"));
+ok($objZhP->eq("E\x{302}\x{300}", "\x{1EC0}"));
+ok($objZhP->eq("E\x{302}\x{300}", pack('U*', 0xCA, 0x300)));
+ok($objZhP->eq("E\x{302}\x{300}", "E\x{302}\x{340}"));
+ok($objZhP->eq("e\x{302}", pack('U', 0xEA)));
+ok($objZhP->eq("E\x{302}", pack('U', 0xCA)));
+ok($objZhP->eq("i\x{304}", "\x{12B}"));
+ok($objZhP->eq("I\x{304}", "\x{12A}"));
+ok($objZhP->eq("i\x{301}", pack('U', 0xED)));
+ok($objZhP->eq("i\x{301}", "i\x{341}"));
+ok($objZhP->eq("I\x{301}", pack('U', 0xCD)));
+ok($objZhP->eq("I\x{301}", "I\x{341}"));
+ok($objZhP->eq("i\x{30C}", "\x{1D0}"));
+ok($objZhP->eq("I\x{30C}", "\x{1CF}"));
+ok($objZhP->eq("i\x{300}", pack('U', 0xEC)));
+ok($objZhP->eq("i\x{300}", "i\x{340}"));
+ok($objZhP->eq("I\x{300}", pack('U', 0xCC)));
+ok($objZhP->eq("I\x{300}", "I\x{340}"));
+ok($objZhP->eq("m\x{301}", "\x{1E3F}"));
+ok($objZhP->eq("m\x{301}", "m\x{341}"));
+ok($objZhP->eq("M\x{301}", "\x{1E3E}"));
+ok($objZhP->eq("M\x{301}", "M\x{341}"));
+ok($objZhP->eq("m\x{300}", "m\x{340}"));
+ok($objZhP->eq("M\x{300}", "M\x{340}"));
+ok($objZhP->eq("n\x{301}", "\x{144}"));
+ok($objZhP->eq("n\x{301}", "n\x{341}"));
+ok($objZhP->eq("N\x{301}", "\x{143}"));
+ok($objZhP->eq("N\x{301}", "N\x{341}"));
+ok($objZhP->eq("n\x{30C}", "\x{148}"));
+ok($objZhP->eq("N\x{30C}", "\x{147}"));
+ok($objZhP->eq("n\x{300}", "\x{1F9}"));
+ok($objZhP->eq("n\x{300}", "n\x{340}"));
+ok($objZhP->eq("N\x{300}", "\x{1F8}"));
+ok($objZhP->eq("N\x{300}", "N\x{340}"));
+ok($objZhP->eq("o\x{304}", "\x{14D}"));
+ok($objZhP->eq("O\x{304}", "\x{14C}"));
+ok($objZhP->eq("o\x{301}", pack('U', 0xF3)));
+ok($objZhP->eq("o\x{301}", "o\x{341}"));
+ok($objZhP->eq("O\x{301}", pack('U', 0xD3)));
+ok($objZhP->eq("O\x{301}", "O\x{341}"));
+ok($objZhP->eq("o\x{30C}", "\x{1D2}"));
+ok($objZhP->eq("O\x{30C}", "\x{1D1}"));
+ok($objZhP->eq("o\x{300}", pack('U', 0xF2)));
+ok($objZhP->eq("o\x{300}", "o\x{340}"));
+ok($objZhP->eq("O\x{300}", pack('U', 0xD2)));
+ok($objZhP->eq("O\x{300}", "O\x{340}"));
+ok($objZhP->eq("u\x{304}", "\x{16B}"));
+ok($objZhP->eq("U\x{304}", "\x{16A}"));
+ok($objZhP->eq("u\x{301}", pack('U', 0xFA)));
+ok($objZhP->eq("u\x{301}", "u\x{341}"));
+ok($objZhP->eq("U\x{301}", pack('U', 0xDA)));
+ok($objZhP->eq("U\x{301}", "U\x{341}"));
+ok($objZhP->eq("u\x{30C}", "\x{1D4}"));
+ok($objZhP->eq("U\x{30C}", "\x{1D3}"));
+ok($objZhP->eq("u\x{300}", pack('U', 0xF9)));
+ok($objZhP->eq("u\x{300}", "u\x{340}"));
+ok($objZhP->eq("U\x{300}", pack('U', 0xD9)));
+ok($objZhP->eq("U\x{300}", "U\x{340}"));
+ok($objZhP->eq("u\x{308}\x{304}", "\x{1D6}"));
+ok($objZhP->eq("u\x{308}\x{304}", pack('U*', 0xFC, 0x304)));
+ok($objZhP->eq("U\x{308}\x{304}", "\x{1D5}"));
+ok($objZhP->eq("U\x{308}\x{304}", pack('U*', 0xDC, 0x304)));
+ok($objZhP->eq("u\x{308}\x{301}", "\x{1D8}"));
+ok($objZhP->eq("u\x{308}\x{301}", pack('U*', 0xFC, 0x301)));
+ok($objZhP->eq("u\x{308}\x{301}", "u\x{308}\x{341}"));
+ok($objZhP->eq("U\x{308}\x{301}", "\x{1D7}"));
+ok($objZhP->eq("U\x{308}\x{301}", pack('U*', 0xDC, 0x301)));
+ok($objZhP->eq("U\x{308}\x{301}", "U\x{308}\x{341}"));
+ok($objZhP->eq("u\x{308}\x{30C}", "\x{1DA}"));
+ok($objZhP->eq("u\x{308}\x{30C}", pack('U*', 0xFC, 0x30C)));
+ok($objZhP->eq("U\x{308}\x{30C}", "\x{1D9}"));
+ok($objZhP->eq("U\x{308}\x{30C}", pack('U*', 0xDC, 0x30C)));
+ok($objZhP->eq("u\x{308}\x{300}", "\x{1DC}"));
+ok($objZhP->eq("u\x{308}\x{300}", pack('U*', 0xFC, 0x300)));
+ok($objZhP->eq("u\x{308}\x{300}", "u\x{308}\x{340}"));
+ok($objZhP->eq("U\x{308}\x{300}", "\x{1DB}"));
+ok($objZhP->eq("U\x{308}\x{300}", pack('U*', 0xDC, 0x300)));
+ok($objZhP->eq("U\x{308}\x{300}", "U\x{308}\x{340}"));
+ok($objZhP->eq("u\x{308}", pack('U', 0xFC)));
+ok($objZhP->eq("U\x{308}", pack('U', 0xDC)));
+
+# 266
+
+ok($objZhP->eq("e\x{302}\x{303}", "\x{1EC5}"));
+ok($objZhP->eq("E\x{302}\x{303}", "\x{1EC4}"));
+ok($objZhP->eq("e\x{302}\x{309}", "\x{1EC3}"));
+ok($objZhP->eq("E\x{302}\x{309}", "\x{1EC2}"));
+ok($objZhP->eq("e\x{302}\x{323}", "\x{1EC7}"));
+ok($objZhP->eq("E\x{302}\x{323}", "\x{1EC6}"));
+
+# 272
+
+$objZhP->change(level => 1);
+
+ok($objZhP->lt("\x{A000}", "\x{3105}"));
+
+ok($objZhP->lt("\x{3105}", "\x{3106}"));
+ok($objZhP->lt("\x{3106}", "\x{3128}"));
+ok($objZhP->lt("\x{3128}", "\x{3129}"));
+ok($objZhP->lt("\x{3129}", "\x{5416}"));
+ok($objZhP->lt("\x{5416}", "\x{963F}"));
+ok($objZhP->lt("\x{963F}", "\x{554A}"));
+ok($objZhP->lt("\x{554A}", "\x{9515}"));
+ok($objZhP->lt("\x{9515}", "\x{9312}"));
+ok($objZhP->lt("\x{9312}", "\x{55C4}"));
+ok($objZhP->lt("\x{55C4}", "\x{5391}"));
+ok($objZhP->lt("\x{5391}", "\x{54CE}"));
+ok($objZhP->lt("\x{54CE}", "\x{54C0}"));
+ok($objZhP->lt("\x{54C0}", "\x{5509}"));
+ok($objZhP->lt("\x{5509}", "\x{57C3}"));
+
+ok($objZhP->lt("\x{57C3}", "\x{4E00}"));
+ok($objZhP->lt("\x{4E00}", "\x{8331}"));
+
+ok($objZhP->lt("\x{8331}", "\x{682A}"));
+ok($objZhP->lt("\x{682A}", "\x{3231}"));
+ok($objZhP->lt("\x{3231}", "\x{73E0}"));
+ok($objZhP->lt("\x{73E0}", "\x{8BF8}"));
+
+ok($objZhP->lt("\x{5EA7}", "\x{888F}"));
+ok($objZhP->lt("\x{888F}", "\x{505A}"));
+ok($objZhP->lt("\x{505A}", "\x{8444}"));
+ok($objZhP->lt("\x{8444}", "\x{84D9}"));
+ok($objZhP->lt("\x{84D9}", "\x{98F5}"));
+ok($objZhP->lt("\x{98F5}", "\x{7CF3}"));
+ok($objZhP->lt("\x{7CF3}", "\x{5497}"));
+
+# 300
diff --git a/cpan/Unicode-Collate/t/loc_zhst.t b/cpan/Unicode-Collate/t/loc_zhst.t
new file mode 100644
index 0000000000..2ca464917c
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_zhst.t
@@ -0,0 +1,333 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 291;
+
+my $objZhS = Unicode::Collate::Locale->
+ new(locale => 'ZH__stroke', normalization => undef);
+
+ok(1);
+ok($objZhS->getlocale, 'zh__stroke');
+
+$objZhS->change(level => 1);
+
+ok($objZhS->eq("a\x{304}", "a\x{301}"));
+ok($objZhS->eq("a\x{301}", "a\x{30C}"));
+ok($objZhS->eq("a\x{30C}", "a\x{300}"));
+ok($objZhS->eq("a\x{300}", "a"));
+ok($objZhS->eq("e\x{304}", "e\x{301}"));
+ok($objZhS->eq("e\x{301}", "e\x{30C}"));
+ok($objZhS->eq("e\x{30C}", "e\x{300}"));
+ok($objZhS->eq("e\x{300}", "e"));
+ok($objZhS->eq("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZhS->eq("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZhS->eq("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZhS->eq("e\x{302}\x{300}", "e\x{302}"));
+ok($objZhS->eq("i\x{304}", "i\x{301}"));
+ok($objZhS->eq("i\x{301}", "i\x{30C}"));
+ok($objZhS->eq("i\x{30C}", "i\x{300}"));
+ok($objZhS->eq("i\x{300}", "i"));
+ok($objZhS->eq("m\x{304}", "m\x{301}"));
+ok($objZhS->eq("m\x{301}", "m\x{30C}"));
+ok($objZhS->eq("m\x{30C}", "m\x{300}"));
+ok($objZhS->eq("m\x{300}", "m"));
+ok($objZhS->eq("n\x{304}", "n\x{301}"));
+ok($objZhS->eq("n\x{301}", "n\x{30C}"));
+ok($objZhS->eq("n\x{30C}", "n\x{300}"));
+ok($objZhS->eq("n\x{300}", "n"));
+ok($objZhS->eq("o\x{304}", "o\x{301}"));
+ok($objZhS->eq("o\x{301}", "o\x{30C}"));
+ok($objZhS->eq("o\x{30C}", "o\x{300}"));
+ok($objZhS->eq("o\x{300}", "o"));
+ok($objZhS->eq("u\x{304}", "u\x{301}"));
+ok($objZhS->eq("u\x{301}", "u\x{30C}"));
+ok($objZhS->eq("u\x{30C}", "u\x{300}"));
+ok($objZhS->eq("u\x{300}", "u"));
+ok($objZhS->eq("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZhS->eq("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZhS->eq("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZhS->eq("u\x{308}\x{300}", "u\x{308}"));
+
+# 38
+
+$objZhS->change(level => 2);
+
+ok($objZhS->lt("a\x{304}", "a\x{301}"));
+ok($objZhS->lt("a\x{301}", "a\x{30C}"));
+ok($objZhS->lt("a\x{30C}", "a\x{300}"));
+ok($objZhS->lt("a\x{300}", "a"));
+ok($objZhS->lt("e\x{304}", "e\x{301}"));
+ok($objZhS->lt("e\x{301}", "e\x{30C}"));
+ok($objZhS->lt("e\x{30C}", "e\x{300}"));
+ok($objZhS->lt("e\x{300}", "e"));
+ok($objZhS->lt("e\x{302}\x{304}", "e\x{302}\x{301}"));
+ok($objZhS->lt("e\x{302}\x{301}", "e\x{302}\x{30C}"));
+ok($objZhS->lt("e\x{302}\x{30C}", "e\x{302}\x{300}"));
+ok($objZhS->lt("e\x{302}\x{300}", "e\x{302}"));
+ok($objZhS->lt("i\x{304}", "i\x{301}"));
+ok($objZhS->lt("i\x{301}", "i\x{30C}"));
+ok($objZhS->lt("i\x{30C}", "i\x{300}"));
+ok($objZhS->lt("i\x{300}", "i"));
+ok($objZhS->lt("m\x{304}", "m\x{301}"));
+ok($objZhS->lt("m\x{301}", "m\x{30C}"));
+ok($objZhS->lt("m\x{30C}", "m\x{300}"));
+ok($objZhS->lt("m\x{300}", "m"));
+ok($objZhS->lt("n\x{304}", "n\x{301}"));
+ok($objZhS->lt("n\x{301}", "n\x{30C}"));
+ok($objZhS->lt("n\x{30C}", "n\x{300}"));
+ok($objZhS->lt("n\x{300}", "n"));
+ok($objZhS->lt("o\x{304}", "o\x{301}"));
+ok($objZhS->lt("o\x{301}", "o\x{30C}"));
+ok($objZhS->lt("o\x{30C}", "o\x{300}"));
+ok($objZhS->lt("o\x{300}", "o"));
+ok($objZhS->lt("u\x{304}", "u\x{301}"));
+ok($objZhS->lt("u\x{301}", "u\x{30C}"));
+ok($objZhS->lt("u\x{30C}", "u\x{300}"));
+ok($objZhS->lt("u\x{300}", "u"));
+ok($objZhS->lt("u\x{308}\x{304}", "u\x{308}\x{301}"));
+ok($objZhS->lt("u\x{308}\x{301}", "u\x{308}\x{30C}"));
+ok($objZhS->lt("u\x{308}\x{30C}", "u\x{308}\x{300}"));
+ok($objZhS->lt("u\x{308}\x{300}", "u\x{308}"));
+
+# 74
+
+ok($objZhS->eq("a\x{304}", "A\x{304}"));
+ok($objZhS->eq("a\x{301}", "A\x{301}"));
+ok($objZhS->eq("a\x{30C}", "A\x{30C}"));
+ok($objZhS->eq("a\x{300}", "A\x{300}"));
+ok($objZhS->eq("e\x{304}", "E\x{304}"));
+ok($objZhS->eq("e\x{301}", "E\x{301}"));
+ok($objZhS->eq("e\x{30C}", "E\x{30C}"));
+ok($objZhS->eq("e\x{300}", "E\x{300}"));
+ok($objZhS->eq("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZhS->eq("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZhS->eq("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZhS->eq("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZhS->eq("e\x{302}", "E\x{302}"));
+ok($objZhS->eq("i\x{304}", "I\x{304}"));
+ok($objZhS->eq("i\x{301}", "I\x{301}"));
+ok($objZhS->eq("i\x{30C}", "I\x{30C}"));
+ok($objZhS->eq("i\x{300}", "I\x{300}"));
+ok($objZhS->eq("m\x{304}", "M\x{304}"));
+ok($objZhS->eq("m\x{301}", "M\x{301}"));
+ok($objZhS->eq("m\x{30C}", "M\x{30C}"));
+ok($objZhS->eq("m\x{300}", "M\x{300}"));
+ok($objZhS->eq("n\x{304}", "N\x{304}"));
+ok($objZhS->eq("n\x{301}", "N\x{301}"));
+ok($objZhS->eq("n\x{30C}", "N\x{30C}"));
+ok($objZhS->eq("n\x{300}", "N\x{300}"));
+ok($objZhS->eq("o\x{304}", "O\x{304}"));
+ok($objZhS->eq("o\x{301}", "O\x{301}"));
+ok($objZhS->eq("o\x{30C}", "O\x{30C}"));
+ok($objZhS->eq("o\x{300}", "O\x{300}"));
+ok($objZhS->eq("u\x{304}", "U\x{304}"));
+ok($objZhS->eq("u\x{301}", "U\x{301}"));
+ok($objZhS->eq("u\x{30C}", "U\x{30C}"));
+ok($objZhS->eq("u\x{300}", "U\x{300}"));
+ok($objZhS->eq("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZhS->eq("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZhS->eq("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZhS->eq("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZhS->eq("u\x{308}", "U\x{308}"));
+
+# 112
+
+$objZhS->change(level => 3);
+
+ok($objZhS->lt("a\x{304}", "A\x{304}"));
+ok($objZhS->lt("a\x{301}", "A\x{301}"));
+ok($objZhS->lt("a\x{30C}", "A\x{30C}"));
+ok($objZhS->lt("a\x{300}", "A\x{300}"));
+ok($objZhS->lt("e\x{304}", "E\x{304}"));
+ok($objZhS->lt("e\x{301}", "E\x{301}"));
+ok($objZhS->lt("e\x{30C}", "E\x{30C}"));
+ok($objZhS->lt("e\x{300}", "E\x{300}"));
+ok($objZhS->lt("e\x{302}\x{304}", "E\x{302}\x{304}"));
+ok($objZhS->lt("e\x{302}\x{301}", "E\x{302}\x{301}"));
+ok($objZhS->lt("e\x{302}\x{30C}", "E\x{302}\x{30C}"));
+ok($objZhS->lt("e\x{302}\x{300}", "E\x{302}\x{300}"));
+ok($objZhS->lt("e\x{302}", "E\x{302}"));
+ok($objZhS->lt("i\x{304}", "I\x{304}"));
+ok($objZhS->lt("i\x{301}", "I\x{301}"));
+ok($objZhS->lt("i\x{30C}", "I\x{30C}"));
+ok($objZhS->lt("i\x{300}", "I\x{300}"));
+ok($objZhS->lt("m\x{304}", "M\x{304}"));
+ok($objZhS->lt("m\x{301}", "M\x{301}"));
+ok($objZhS->lt("m\x{30C}", "M\x{30C}"));
+ok($objZhS->lt("m\x{300}", "M\x{300}"));
+ok($objZhS->lt("n\x{304}", "N\x{304}"));
+ok($objZhS->lt("n\x{301}", "N\x{301}"));
+ok($objZhS->lt("n\x{30C}", "N\x{30C}"));
+ok($objZhS->lt("n\x{300}", "N\x{300}"));
+ok($objZhS->lt("o\x{304}", "O\x{304}"));
+ok($objZhS->lt("o\x{301}", "O\x{301}"));
+ok($objZhS->lt("o\x{30C}", "O\x{30C}"));
+ok($objZhS->lt("o\x{300}", "O\x{300}"));
+ok($objZhS->lt("u\x{304}", "U\x{304}"));
+ok($objZhS->lt("u\x{301}", "U\x{301}"));
+ok($objZhS->lt("u\x{30C}", "U\x{30C}"));
+ok($objZhS->lt("u\x{300}", "U\x{300}"));
+ok($objZhS->lt("u\x{308}\x{304}", "U\x{308}\x{304}"));
+ok($objZhS->lt("u\x{308}\x{301}", "U\x{308}\x{301}"));
+ok($objZhS->lt("u\x{308}\x{30C}", "U\x{308}\x{30C}"));
+ok($objZhS->lt("u\x{308}\x{300}", "U\x{308}\x{300}"));
+ok($objZhS->lt("u\x{308}", "U\x{308}"));
+
+# 150
+
+ok($objZhS->eq("a\x{304}", "\x{101}"));
+ok($objZhS->eq("A\x{304}", "\x{100}"));
+ok($objZhS->eq("a\x{301}", pack('U', 0xE1)));
+ok($objZhS->eq("a\x{301}", "a\x{341}"));
+ok($objZhS->eq("A\x{301}", pack('U', 0xC1)));
+ok($objZhS->eq("A\x{301}", "A\x{341}"));
+ok($objZhS->eq("a\x{30C}", "\x{1CE}"));
+ok($objZhS->eq("A\x{30C}", "\x{1CD}"));
+ok($objZhS->eq("a\x{300}", pack('U', 0xE0)));
+ok($objZhS->eq("a\x{300}", "a\x{340}"));
+ok($objZhS->eq("A\x{300}", pack('U', 0xC0)));
+ok($objZhS->eq("A\x{300}", "A\x{340}"));
+ok($objZhS->eq("e\x{304}", "\x{113}"));
+ok($objZhS->eq("E\x{304}", "\x{112}"));
+ok($objZhS->eq("e\x{301}", pack('U', 0xE9)));
+ok($objZhS->eq("e\x{301}", "e\x{341}"));
+ok($objZhS->eq("E\x{301}", pack('U', 0xC9)));
+ok($objZhS->eq("E\x{301}", "E\x{341}"));
+ok($objZhS->eq("e\x{30C}", "\x{11B}"));
+ok($objZhS->eq("E\x{30C}", "\x{11A}"));
+ok($objZhS->eq("e\x{300}", pack('U', 0xE8)));
+ok($objZhS->eq("e\x{300}", "e\x{340}"));
+ok($objZhS->eq("E\x{300}", pack('U', 0xC8)));
+ok($objZhS->eq("E\x{300}", "E\x{340}"));
+ok($objZhS->eq("e\x{302}\x{304}", pack('U*', 0xEA, 0x304)));
+ok($objZhS->eq("E\x{302}\x{304}", pack('U*', 0xCA, 0x304)));
+ok($objZhS->eq("e\x{302}\x{301}", "\x{1EBF}"));
+ok($objZhS->eq("e\x{302}\x{301}", pack('U*', 0xEA, 0x301)));
+ok($objZhS->eq("e\x{302}\x{301}", "e\x{302}\x{341}"));
+ok($objZhS->eq("E\x{302}\x{301}", "\x{1EBE}"));
+ok($objZhS->eq("E\x{302}\x{301}", pack('U*', 0xCA, 0x301)));
+ok($objZhS->eq("E\x{302}\x{301}", "E\x{302}\x{341}"));
+ok($objZhS->eq("e\x{302}\x{30C}", pack('U*', 0xEA, 0x30C)));
+ok($objZhS->eq("E\x{302}\x{30C}", pack('U*', 0xCA, 0x30C)));
+ok($objZhS->eq("e\x{302}\x{300}", "\x{1EC1}"));
+ok($objZhS->eq("e\x{302}\x{300}", pack('U*', 0xEA, 0x300)));
+ok($objZhS->eq("e\x{302}\x{300}", "e\x{302}\x{340}"));
+ok($objZhS->eq("E\x{302}\x{300}", "\x{1EC0}"));
+ok($objZhS->eq("E\x{302}\x{300}", pack('U*', 0xCA, 0x300)));
+ok($objZhS->eq("E\x{302}\x{300}", "E\x{302}\x{340}"));
+ok($objZhS->eq("e\x{302}", pack('U', 0xEA)));
+ok($objZhS->eq("E\x{302}", pack('U', 0xCA)));
+ok($objZhS->eq("i\x{304}", "\x{12B}"));
+ok($objZhS->eq("I\x{304}", "\x{12A}"));
+ok($objZhS->eq("i\x{301}", pack('U', 0xED)));
+ok($objZhS->eq("i\x{301}", "i\x{341}"));
+ok($objZhS->eq("I\x{301}", pack('U', 0xCD)));
+ok($objZhS->eq("I\x{301}", "I\x{341}"));
+ok($objZhS->eq("i\x{30C}", "\x{1D0}"));
+ok($objZhS->eq("I\x{30C}", "\x{1CF}"));
+ok($objZhS->eq("i\x{300}", pack('U', 0xEC)));
+ok($objZhS->eq("i\x{300}", "i\x{340}"));
+ok($objZhS->eq("I\x{300}", pack('U', 0xCC)));
+ok($objZhS->eq("I\x{300}", "I\x{340}"));
+ok($objZhS->eq("m\x{301}", "\x{1E3F}"));
+ok($objZhS->eq("m\x{301}", "m\x{341}"));
+ok($objZhS->eq("M\x{301}", "\x{1E3E}"));
+ok($objZhS->eq("M\x{301}", "M\x{341}"));
+ok($objZhS->eq("m\x{300}", "m\x{340}"));
+ok($objZhS->eq("M\x{300}", "M\x{340}"));
+ok($objZhS->eq("n\x{301}", "\x{144}"));
+ok($objZhS->eq("n\x{301}", "n\x{341}"));
+ok($objZhS->eq("N\x{301}", "\x{143}"));
+ok($objZhS->eq("N\x{301}", "N\x{341}"));
+ok($objZhS->eq("n\x{30C}", "\x{148}"));
+ok($objZhS->eq("N\x{30C}", "\x{147}"));
+ok($objZhS->eq("n\x{300}", "\x{1F9}"));
+ok($objZhS->eq("n\x{300}", "n\x{340}"));
+ok($objZhS->eq("N\x{300}", "\x{1F8}"));
+ok($objZhS->eq("N\x{300}", "N\x{340}"));
+ok($objZhS->eq("o\x{304}", "\x{14D}"));
+ok($objZhS->eq("O\x{304}", "\x{14C}"));
+ok($objZhS->eq("o\x{301}", pack('U', 0xF3)));
+ok($objZhS->eq("o\x{301}", "o\x{341}"));
+ok($objZhS->eq("O\x{301}", pack('U', 0xD3)));
+ok($objZhS->eq("O\x{301}", "O\x{341}"));
+ok($objZhS->eq("o\x{30C}", "\x{1D2}"));
+ok($objZhS->eq("O\x{30C}", "\x{1D1}"));
+ok($objZhS->eq("o\x{300}", pack('U', 0xF2)));
+ok($objZhS->eq("o\x{300}", "o\x{340}"));
+ok($objZhS->eq("O\x{300}", pack('U', 0xD2)));
+ok($objZhS->eq("O\x{300}", "O\x{340}"));
+ok($objZhS->eq("u\x{304}", "\x{16B}"));
+ok($objZhS->eq("U\x{304}", "\x{16A}"));
+ok($objZhS->eq("u\x{301}", pack('U', 0xFA)));
+ok($objZhS->eq("u\x{301}", "u\x{341}"));
+ok($objZhS->eq("U\x{301}", pack('U', 0xDA)));
+ok($objZhS->eq("U\x{301}", "U\x{341}"));
+ok($objZhS->eq("u\x{30C}", "\x{1D4}"));
+ok($objZhS->eq("U\x{30C}", "\x{1D3}"));
+ok($objZhS->eq("u\x{300}", pack('U', 0xF9)));
+ok($objZhS->eq("u\x{300}", "u\x{340}"));
+ok($objZhS->eq("U\x{300}", pack('U', 0xD9)));
+ok($objZhS->eq("U\x{300}", "U\x{340}"));
+ok($objZhS->eq("u\x{308}\x{304}", "\x{1D6}"));
+ok($objZhS->eq("u\x{308}\x{304}", pack('U*', 0xFC, 0x304)));
+ok($objZhS->eq("U\x{308}\x{304}", "\x{1D5}"));
+ok($objZhS->eq("U\x{308}\x{304}", pack('U*', 0xDC, 0x304)));
+ok($objZhS->eq("u\x{308}\x{301}", "\x{1D8}"));
+ok($objZhS->eq("u\x{308}\x{301}", pack('U*', 0xFC, 0x301)));
+ok($objZhS->eq("u\x{308}\x{301}", "u\x{308}\x{341}"));
+ok($objZhS->eq("U\x{308}\x{301}", "\x{1D7}"));
+ok($objZhS->eq("U\x{308}\x{301}", pack('U*', 0xDC, 0x301)));
+ok($objZhS->eq("U\x{308}\x{301}", "U\x{308}\x{341}"));
+ok($objZhS->eq("u\x{308}\x{30C}", "\x{1DA}"));
+ok($objZhS->eq("u\x{308}\x{30C}", pack('U*', 0xFC, 0x30C)));
+ok($objZhS->eq("U\x{308}\x{30C}", "\x{1D9}"));
+ok($objZhS->eq("U\x{308}\x{30C}", pack('U*', 0xDC, 0x30C)));
+ok($objZhS->eq("u\x{308}\x{300}", "\x{1DC}"));
+ok($objZhS->eq("u\x{308}\x{300}", pack('U*', 0xFC, 0x300)));
+ok($objZhS->eq("u\x{308}\x{300}", "u\x{308}\x{340}"));
+ok($objZhS->eq("U\x{308}\x{300}", "\x{1DB}"));
+ok($objZhS->eq("U\x{308}\x{300}", pack('U*', 0xDC, 0x300)));
+ok($objZhS->eq("U\x{308}\x{300}", "U\x{308}\x{340}"));
+ok($objZhS->eq("u\x{308}", pack('U', 0xFC)));
+ok($objZhS->eq("U\x{308}", pack('U', 0xDC)));
+
+# 266
+
+ok($objZhS->eq("e\x{302}\x{303}", "\x{1EC5}"));
+ok($objZhS->eq("E\x{302}\x{303}", "\x{1EC4}"));
+ok($objZhS->eq("e\x{302}\x{309}", "\x{1EC3}"));
+ok($objZhS->eq("E\x{302}\x{309}", "\x{1EC2}"));
+ok($objZhS->eq("e\x{302}\x{323}", "\x{1EC7}"));
+ok($objZhS->eq("E\x{302}\x{323}", "\x{1EC6}"));
+
+# 272
+
+$objZhS->change(level => 1);
+
+ok($objZhS->lt("\x{A000}", "\x{4E00}"));
+
+ok($objZhS->lt("\x{4E00}", "\x{4E59}"));
+ok($objZhS->lt("\x{4E59}", "\x{4E01}"));
+ok($objZhS->lt("\x{4E01}", "\x{4E03}"));
+ok($objZhS->lt("\x{4E03}", "\x{4E43}"));
+ok($objZhS->lt("\x{4E43}", "\x{4E5D}"));
+ok($objZhS->lt("\x{4E5D}", "\x{4E86}"));
+ok($objZhS->lt("\x{4E86}", "\x{4E8C}"));
+ok($objZhS->lt("\x{4E8C}", "\x{4EBA}"));
+ok($objZhS->lt("\x{4EBA}", "\x{513F}"));
+ok($objZhS->lt("\x{513F}", "\x{5165}"));
+
+ok($objZhS->lt("\x{9E1D}", "\x{7069}"));
+ok($objZhS->lt("\x{7069}", "\x{7C72}"));
+ok($objZhS->lt("\x{7C72}", "\x{706A}"));
+ok($objZhS->lt("\x{706A}", "\x{7229}"));
+ok($objZhS->lt("\x{7229}", "\x{9EA4}"));
+ok($objZhS->lt("\x{9EA4}", "\x{9F7E}"));
+ok($objZhS->lt("\x{9F7E}", "\x{9F49}"));
+ok($objZhS->lt("\x{9F49}", "\x{9F98}"));
+
+# 291