Update Unicode-Collate to CPAN version 0.80
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 9 Oct 2011 20:43:39 +0000 (21:43 +0100)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 9 Oct 2011 20:43:39 +0000 (21:43 +0100)
  [DELTA]

  0.80  Sun Oct  9 21:00:21 2011
    - U::C::Locale newly supports locales: bs, hi, kn, kok, ln.
    - added loc_bs.t, loc_hi.t, loc_kn.t, loc_kok.t, loc_ln.t in t.
    - updated some locales to CLDR 2.0 : ha, hr, kk, lt.

  0.79  Sun Oct  2 20:31:01 2011
    - pod: [rt.cpan.org #70241] Fix minor grammar error in manpage
            by Harlan Lieberman-Berg.
    - 'suppress' no longer affects contractions via 'entry'.
    - U::C::Locale newly supports locales: as, fi__phonebook, gu.
    - added loc_as.t, loc_fiph.t, loc_gu in t.
    - updated some locales to CLDR 2.0 : ar, be, bg.

29 files changed:
MANIFEST
Porting/Maintainers.pl
cpan/Unicode-Collate/Changes
cpan/Unicode-Collate/Collate.pm
cpan/Unicode-Collate/Collate/Locale.pm
cpan/Unicode-Collate/Collate/Locale/ha.pl
cpan/Unicode-Collate/Collate/Locale/hi.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/hr.pl
cpan/Unicode-Collate/Collate/Locale/hy.pl
cpan/Unicode-Collate/Collate/Locale/ja.pl
cpan/Unicode-Collate/Collate/Locale/kk.pl
cpan/Unicode-Collate/Collate/Locale/kn.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/kok.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/ln.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/lt.pl
cpan/Unicode-Collate/Collate/Locale/lv.pl
cpan/Unicode-Collate/README
cpan/Unicode-Collate/t/loc_be.t
cpan/Unicode-Collate/t/loc_bs.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_ha.t
cpan/Unicode-Collate/t/loc_hi.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_hr.t
cpan/Unicode-Collate/t/loc_ja.t
cpan/Unicode-Collate/t/loc_kk.t
cpan/Unicode-Collate/t/loc_kn.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_kok.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_ln.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_lt.t
pod/perldelta.pod

index 2e1312c..4cde7fb 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -2691,6 +2691,7 @@ cpan/Unicode-Collate/Collate/Locale/fr.pl                 Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/gu.pl      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/ha.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/haw.pl                     Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/hi.pl      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/hr.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/hu.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/hy.pl                      Unicode::Collate
@@ -2699,7 +2700,10 @@ cpan/Unicode-Collate/Collate/Locale/is.pl                        Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/ja.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/kk.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/kl.pl                      Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/kn.pl      Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/kok.pl     Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/ko.pl                      Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ln.pl      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/lt.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/lv.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/mt.pl                      Unicode::Collate
@@ -2758,6 +2762,7 @@ cpan/Unicode-Collate/t/loc_as.t   Unicode::Collate
 cpan/Unicode-Collate/t/loc_az.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_be.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_bg.t                        Unicode::Collate
+cpan/Unicode-Collate/t/loc_bs.t        Unicode::Collate
 cpan/Unicode-Collate/t/loc_ca.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_cs.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_cyrl.t                      Unicode::Collate
@@ -2777,6 +2782,7 @@ cpan/Unicode-Collate/t/loc_fr.t                   Unicode::Collate
 cpan/Unicode-Collate/t/loc_gu.t        Unicode::Collate
 cpan/Unicode-Collate/t/loc_ha.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_haw.t                       Unicode::Collate
+cpan/Unicode-Collate/t/loc_hi.t        Unicode::Collate
 cpan/Unicode-Collate/t/loc_hr.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_hu.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_hy.t                        Unicode::Collate
@@ -2787,7 +2793,10 @@ cpan/Unicode-Collate/t/loc_japr.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_ja.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_kk.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_kl.t                        Unicode::Collate
+cpan/Unicode-Collate/t/loc_kn.t        Unicode::Collate
+cpan/Unicode-Collate/t/loc_kok.t       Unicode::Collate
 cpan/Unicode-Collate/t/loc_ko.t                        Unicode::Collate
+cpan/Unicode-Collate/t/loc_ln.t        Unicode::Collate
 cpan/Unicode-Collate/t/loc_lt.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_lv.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_mk.t                        Unicode::Collate
index 633f5d7..b7d6115 100755 (executable)
@@ -1970,7 +1970,7 @@ use File::Glob qw(:case);
     'Unicode::Collate' =>
        {
        'MAINTAINER'    => 'sadahiro',
-       'DISTRIBUTION'  => 'SADAHIRO/Unicode-Collate-0.79.tar.gz',
+       'DISTRIBUTION'  => 'SADAHIRO/Unicode-Collate-0.80.tar.gz',
        'FILES'         => q[cpan/Unicode-Collate],
        'EXCLUDED'      => [ qr{N$},
                    qr{^data/},
index f7c6e30..4550a6d 100644 (file)
@@ -1,5 +1,10 @@
 Revision history for Perl module Unicode::Collate.
 
+0.80  Sun Oct  9 21:00:21 2011
+    - U::C::Locale newly supports locales: bs, hi, kn, kok, ln.
+    - added loc_bs.t, loc_hi.t, loc_kn.t, loc_kok.t, loc_ln.t in t.
+    - updated some locales to CLDR 2.0 : ha, hr, kk, lt.
+
 0.79  Sun Oct  2 20:31:01 2011
     - pod: [rt.cpan.org #70241] Fix minor grammar error in manpage
             by Harlan Lieberman-Berg.
index 7a86032..f02f720 100644 (file)
@@ -14,7 +14,7 @@ use File::Spec;
 
 no warnings 'utf8';
 
-our $VERSION = '0.79';
+our $VERSION = '0.80';
 our $PACKAGE = __PACKAGE__;
 
 ### begin XS only ###
index 92bdf24..1f19fc1 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use Carp;
 use base qw(Unicode::Collate);
 
-our $VERSION = '0.79';
+our $VERSION = '0.80';
 
 use File::Spec;
 
@@ -13,19 +13,22 @@ my $PL_EXT  = '.pl';
 
 my %LocaleFile = map { ($_, $_) } qw(
    af ar as az be bg ca cs cy da eo es et fi fil fo fr gu
-   ha haw hr hu hy ig is ja kk kl ko lt lv mt nb nn nso om
-   pl ro ru se sk sl sq sv tn to tr uk vi wo yo zh
+   ha haw hi hr hu hy ig is ja kk kl kn ko kok ln lt lv
+   mt nb nn nso om pl ro ru se sk sl sq sv tn to tr uk vi wo yo zh
 );
-   $LocaleFile{'default'}         = '';
+   $LocaleFile{'default'} = '';
+# aliases
+   $LocaleFile{'bs'} = 'hr';
+   $LocaleFile{'mk'} = 'ru';
+   $LocaleFile{'sr'} = 'ru';
+# short file names
    $LocaleFile{'de__phonebook'}   = 'de_phone';
    $LocaleFile{'es__traditional'} = 'es_trad';
    $LocaleFile{'fi__phonebook'}   = 'fi_phone';
-   $LocaleFile{'mk'} = 'ru';
-   $LocaleFile{'sr'} = 'ru';
-   $LocaleFile{'zh__big5han'}   = 'zh_big5';
-   $LocaleFile{'zh__gb2312han'} = 'zh_gb';
-   $LocaleFile{'zh__pinyin'}    = 'zh_pin';
-   $LocaleFile{'zh__stroke'}    = 'zh_strk';
+   $LocaleFile{'zh__big5han'}     = 'zh_big5';
+   $LocaleFile{'zh__gb2312han'}   = 'zh_gb';
+   $LocaleFile{'zh__pinyin'}      = 'zh_pin';
+   $LocaleFile{'zh__stroke'}      = 'zh_strk';
 
 sub _locale {
     my $locale = shift;
@@ -93,10 +96,11 @@ as          2.0 = 1.8.1
 az             2.0 = 1.8.1
 be             2.0
 bg             2.0
+bs             2.0
 ca             2.0 = 1.8.1 (alt="proposed" type="standard")
 cs             2.0 = 1.8.1 (type="standard")
 cy             2.0 = 1.8.1
-da             2.0 = 1.8.1 (type="standard") [AA's to pass CLDR tests]
+da             2.0 = 1.8.1 (type="standard") [modify aA to pass CLDR tests]
 de__phonebook  2.0 (type="phonebook")
 eo             2.0 = 1.8.1
 es             2.0 (type="standard")
@@ -108,19 +112,23 @@ fil               2.0 (type="standard") = 1.8.1
 fo             2.0 = 1.8.1 (alt="proposed" type="standard")
 fr             2.0 (fr_CA, backwards="on")
 gu             2.0 (type="standard")
-ha
-haw
-hr
-hu
-hy
-ig
-is
-ja
-kk
-kl
-ko
-lt
-lv
+ha             2.0
+haw            2.0 = 1.8.1
+hi             2.0
+hr             2.0
+hu             2.0 = 1.8.1 (alt="proposed" type="standard")
+hy             2.0 = 1.8.1
+ig             2.0 = 1.8.1
+is             2.0 = 1.8.1
+ja             2.0 = 1.8.1 (type="standard")
+kk             2.0
+kl             2.0 = 1.8.1
+kn             2.0 (type="standard")
+ko             2.0 = 1.8.1 (type="standard")
+kok            2.0 = 1.8.1
+ln             2.0 (type="standard") = 1.8.1
+lt             2.0
+lv             2.0 (type="standard") = 1.8.1
 mk
 mt
 nb
@@ -260,6 +268,7 @@ this method returns a string C<'default'> meaning no special tailoring.
       az                Azerbaijani (Azeri)
       be                Belarusian
       bg                Bulgarian
+      bs                Bosnian
       ca                Catalan
       cs                Czech
       cy                Welsh
@@ -277,6 +286,7 @@ this method returns a string C<'default'> meaning no special tailoring.
       gu                Gujarati
       ha                Hausa
       haw               Hawaiian
+      hi                Hindi
       hr                Croatian
       hu                Hungarian
       hy                Armenian
@@ -285,7 +295,10 @@ this method returns a string C<'default'> meaning no special tailoring.
       ja                Japanese [1]
       kk                Kazakh
       kl                Kalaallisut
+      kn                Kannada
       ko                Korean [2]
+      kok               Konkani
+      ln                Lingala
       lt                Lithuanian
       lv                Latvian
       mk                Macedonian
@@ -324,7 +337,6 @@ ga (Irish),
 id (Indonesian),
 it (Italian),
 ka (Georgian),
-ln (Lingala),
 ms (Malay),
 nl (Dutch),
 pt (Portuguese),
index 644716a..ed345d8 100644 (file)
@@ -7,7 +7,9 @@
 0074 0073 ; [.17CA.0020.0002.0074] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
 0054 0073 ; [.17CA.0020.0007.0054] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
 0054 0053 ; [.17CA.0020.0008.0054] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
-0027 0079 ; [.183F.0020.0002.01B4] # <APOSTROPHE, LATIN SMALL LETTER Y>
-0027 0059 ; [.183F.0020.0008.01B3] # <APOSTROPHE, LATIN CAPITAL LETTER Y>
+02BC 0079 ; [.183F.0020.0003.02BC] # <MODIFIER LETTER APOSTROPHE, LATIN SMALL LETTER Y>
+02BC 0059 ; [.183F.0020.0009.02BC] # <MODIFIER LETTER APOSTROPHE, LATIN CAPITAL LETTER Y>
+0027 0079 ; [.183F.0020.0004.0027] # <APOSTROPHE, LATIN SMALL LETTER Y>
+0027 0059 ; [.183F.0020.000A.0027] # <APOSTROPHE, LATIN CAPITAL LETTER Y>
 ENTRY
 };
diff --git a/cpan/Unicode-Collate/Collate/Locale/hi.pl b/cpan/Unicode-Collate/Collate/Locale/hi.pl
new file mode 100644 (file)
index 0000000..dbdd7e9
--- /dev/null
@@ -0,0 +1,7 @@
++{
+   entry => <<'ENTRY', # for DUCET v6.0.0
+0902      ; [.1F7B.0020.0002.0902][.FFF1.0000.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901      ; [.1F7B.0021.0002.0901][.FFF1.0000.0000.0901] # DEVANAGARI SIGN CANDRABINDU
+0903      ; [.1F7B.0020.0002.0903][.FFF2.0000.0000.0000] # DEVANAGARI SIGN VISARGA
+ENTRY
+};
index b83305c..f78c9f7 100644 (file)
 0106      ; [.15D3.0020.0008.0106] # LATIN CAPITAL LETTER C WITH ACUTE
 0043 0301 ; [.15D3.0020.0008.0106] # LATIN CAPITAL LETTER C WITH ACUTE
 0043 0341 ; [.15D3.0020.0008.0106] # LATIN CAPITAL LETTER C WITH ACUTE
-01C6      ; [.15E5.0020.0002.01C6] # LATIN SMALL LETTER DZ WITH CARON
-0064 017D ; [.15E5.0020.0007.0064][.0000.0000.0002.0000] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z WITH CARON>
-01C5      ; [.15E5.0020.0007.01C5][.0000.0000.0008.0000] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-01C4      ; [.15E5.0020.0008.01C4] # LATIN CAPITAL LETTER DZ WITH CARON
-0064 017E ; [.15E5.0020.0002.01C6] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON>
-0044 017E ; [.15E5.0020.0007.01C5][.0000.0000.0008.0000] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON>
-0044 017D ; [.15E5.0020.0008.01C4] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON>
-0064 007A 030C ; [.15E5.0020.0002.01C6] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
-0064 005A 030C ; [.15E5.0020.0007.0064][.0000.0000.0002.0000] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, COMBINING CARON>
-0044 007A 030C ; [.15E5.0020.0007.01C5][.0000.0000.0008.0000] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
-0044 005A 030C ; [.15E5.0020.0008.01C4] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, COMBINING CARON>
+0064 017E ; [.15E5.0020.0002.0064] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON>
+01C6      ; [.15E5.0020.0003.01C6] # LATIN SMALL LETTER DZ WITH CARON
+0044 017E ; [.15E5.0020.0007.0044][.0000.0000.0001.0000] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON>
+01C5      ; [.15E5.0020.0007.01C5][.0000.0000.0007.0000] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+0044 017D ; [.15E5.0020.0008.0044] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON>
+01C4      ; [.15E5.0020.0009.01C4] # LATIN CAPITAL LETTER DZ WITH CARON
+0064 007A 030C ; [.15E5.0020.0002.0064] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
+0044 007A 030C ; [.15E5.0020.0007.0044][.0000.0000.0001.0000] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
+0044 005A 030C ; [.15E5.0020.0008.0044] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, COMBINING CARON>
 0111      ; [.15E6.0020.0002.0111] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.15E6.0020.0002.0111] # LATIN SMALL LETTER D WITH STROKE
 0110      ; [.15E6.0020.0008.0110] # LATIN CAPITAL LETTER D WITH STROKE
 0044 0335 ; [.15E6.0020.0008.0110] # LATIN CAPITAL LETTER D WITH STROKE
-01C9      ; [.16C5.0020.0002.01C9] # LATIN SMALL LETTER LJ
-006C 006A ; [.16C5.0020.0002.01C9] # <LATIN SMALL LETTER L, LATIN SMALL LETTER J>
-006C 004A ; [.16C5.0020.0007.006C][.0000.0000.0002.0000] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER J>
-01C8      ; [.16C5.0020.0007.01C8][.0000.0000.0008.0000] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-004C 006A ; [.16C5.0020.0007.01C8][.0000.0000.0008.0000] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER J>
-01C7      ; [.16C5.0020.0008.01C7] # LATIN CAPITAL LETTER LJ
-004C 004A ; [.16C5.0020.0008.01C7] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER J>
-01CC      ; [.1703.0020.0002.01CC] # LATIN SMALL LETTER NJ
-006E 006A ; [.1703.0020.0002.01CC] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
-006E 004A ; [.1703.0020.0007.006E][.0000.0000.0002.0000] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER J>
-01CB      ; [.1703.0020.0007.01CB][.0000.0000.0008.0000] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-004E 006A ; [.1703.0020.0007.01CB][.0000.0000.0008.0000] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
-01CA      ; [.1703.0020.0008.01CA] # LATIN CAPITAL LETTER NJ
-004E 004A ; [.1703.0020.0008.01CA] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
+006C 006A ; [.16C5.0020.0002.006C] # <LATIN SMALL LETTER L, LATIN SMALL LETTER J>
+01C9      ; [.16C5.0020.0003.01C9] # LATIN SMALL LETTER LJ
+004C 006A ; [.16C5.0020.0007.004C][.0000.0000.0001.0000] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER J>
+01C8      ; [.16C5.0020.0007.01C8][.0000.0000.0007.0000] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
+004C 004A ; [.16C5.0020.0008.004C] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER J>
+01C7      ; [.16C5.0020.0009.01C7] # LATIN CAPITAL LETTER LJ
+006E 006A ; [.1703.0020.0002.006E] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
+01CC      ; [.1703.0020.0003.01CC] # LATIN SMALL LETTER NJ
+004E 006A ; [.1703.0020.0007.004E][.0000.0000.0001.0000] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
+01CB      ; [.1703.0020.0007.01CB][.0000.0000.0007.0000] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
+004E 004A ; [.1703.0020.0008.004E] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
+01CA      ; [.1703.0020.0009.01CA] # LATIN CAPITAL LETTER NJ
 0161      ; [.17A7.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
 0073 030C ; [.17A7.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
 0160      ; [.17A7.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
index e67f360..595bfe4 100644 (file)
@@ -1,6 +1,6 @@
 +{
    entry => <<'ENTRY', # for DUCET v6.0.0
-0587      ; [.1BF1.0020.0002.0584][.FFF1.0000.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
-0535 0582 ; [.1BF1.0020.0008.0554][.FFF1.0000.0000.0000] # <ARMENIAN CAPITAL LETTER ECH, ARMENIAN SMALL LETTER YIWN>
+0587      ; [.1BF1.0020.0002.0587][.FFF1.0000.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
+0535 0582 ; [.1BF1.0020.0008.0535][.FFF1.0000.0000.0000] # <ARMENIAN CAPITAL LETTER ECH, ARMENIAN SMALL LETTER YIWN>
 ENTRY
 };
index 0b49c17..0be2171 100644 (file)
@@ -88,6 +88,8 @@ use Unicode::Collate::CJK::JISX0208;
 3094      ; [.3198.0020.0011.3046][.0000.014E.0002.3099] # HIRAGANA LETTER VU
 3095      ; [.319C.0020.000F.3095] # HIRAGANA LETTER SMALL KA
 3096      ; [.319F.0020.000F.3096] # HIRAGANA LETTER SMALL KE
+309D      ; [.1571.0020.0002.309D] # HIRAGANA ITERATION MARK
+309E      ; [.1571.0020.0002.309D][.0000.014E.0002.3099] # HIRAGANA VOICED ITERATION MARK
 3000      ; [*020A.0020.0002.0020] # IDEOGRAPHIC SPACE
 FF01      ; [*027B.0020.0002.0021] # FULLWIDTH EXCLAMATION MARK
 FF02      ; [*0304.0020.0002.0022] # FULLWIDTH QUOTATION MARK
index bc36ebd..8899a52 100644 (file)
@@ -1,15 +1,23 @@
 +{
-# barred-o doesn't require tailoring
-   suppress => [0x0400..0x045F],
+   suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
+               0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
+               0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
+               0x042B, 0x044B, 0x042D, 0x044D, 0x0474, 0x0475],
    entry => <<'ENTRY', # for DUCET v6.0.0
-04B1      ; [.1A7A.0020.0002.04B1] # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B0      ; [.1A7A.0020.0008.04B0] # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+0451      ; [.198C.0020.0002.0451] # CYRILLIC SMALL LETTER IO
+0435 0308 ; [.198C.0020.0002.0451] # CYRILLIC SMALL LETTER IO
+0401      ; [.198C.0020.0008.0401] # CYRILLIC CAPITAL LETTER IO
+0415 0308 ; [.198C.0020.0008.0401] # CYRILLIC CAPITAL LETTER IO
+04AF      ; [.1A80.0020.0002.04AF] # CYRILLIC SMALL LETTER STRAIGHT U
+04AE      ; [.1A80.0020.0008.04AE] # CYRILLIC CAPITAL LETTER STRAIGHT U
 0456      ; [.1AF8.0020.0002.0456] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 0406      ; [.1AF8.0020.0008.0406] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
 04D1      ; [.1943.0020.0002.0430][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER A WITH BREVE
 04D0      ; [.1943.0020.0008.0410][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER A WITH BREVE
 04D3      ; [.1943.0020.0002.0430][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER A WITH DIAERESIS
 04D2      ; [.1943.0020.0008.0410][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04DB      ; [.194F.0020.0002.04D9][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DA      ; [.194F.0020.0008.04D8][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
 0453      ; [.1963.0020.0002.0433][.0000.0032.0002.0301] # CYRILLIC SMALL LETTER GJE
 0403      ; [.1963.0020.0008.0413][.0000.0032.0002.0301] # CYRILLIC CAPITAL LETTER GJE
 04D7      ; [.198B.0020.0002.0435][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER IE WITH BREVE
 04DC      ; [.1997.0020.0008.0416][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
 04DF      ; [.19A4.0020.0002.0437][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
 04DE      ; [.19A4.0020.0008.0417][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E5      ; [.19BC.0020.0002.0438][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4      ; [.19BC.0020.0008.0418][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
 0457      ; [.1AF8.0020.0002.0456][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER YI
 0407      ; [.1AF8.0020.0008.0406][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER YI
-0439      ; [.19BC.0020.0002.0438][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER SHORT I
-0419      ; [.19BC.0020.0008.0418][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER SHORT I
 04E7      ; [.1A29.0020.0002.043E][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER O WITH DIAERESIS
 04E6      ; [.1A29.0020.0008.041E][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04EB      ; [.1A31.0020.0002.04E9][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EA      ; [.1A31.0020.0008.04E8][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
 045C      ; [.19DA.0020.0002.043A][.0000.0032.0002.0301] # CYRILLIC SMALL LETTER KJE
 040C      ; [.19DA.0020.0008.041A][.0000.0032.0002.0301] # CYRILLIC CAPITAL LETTER KJE
 045E      ; [.1A6B.0020.0002.0443][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER SHORT U
@@ -40,5 +46,7 @@
 04F8      ; [.1AF1.0020.0008.042B][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
 04ED      ; [.1B06.0020.0002.044D][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER E WITH DIAERESIS
 04EC      ; [.1B06.0020.0008.042D][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+0477      ; [.1B3C.0020.0002.0475][.0000.0065.0002.030F] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0476      ; [.1B3C.0020.0008.0474][.0000.0065.0002.030F] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
 ENTRY
 };
diff --git a/cpan/Unicode-Collate/Collate/Locale/kn.pl b/cpan/Unicode-Collate/Collate/Locale/kn.pl
new file mode 100644 (file)
index 0000000..bd471cd
--- /dev/null
@@ -0,0 +1,8 @@
++{
+   entry => <<'ENTRY', # for DUCET v6.0.0
+0C82      ; [.2164.0020.0002.0C82][.FFF1.0000.0000.0000] # KANNADA SIGN ANUSVARA
+0C83      ; [.2164.0020.0002.0C83][.FFF2.0000.0000.0000] # KANNADA SIGN VISARGA
+0CF1      ; [.2164.0020.0002.0CF1][.FFF3.0000.0000.0000] # KANNADA SIGN JIHVAMULIYA
+0CF2      ; [.2164.0020.0002.0CF2][.FFF4.0000.0000.0000] # KANNADA SIGN UPADHMANIYA
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/Collate/Locale/kok.pl b/cpan/Unicode-Collate/Collate/Locale/kok.pl
new file mode 100644 (file)
index 0000000..88e698a
--- /dev/null
@@ -0,0 +1,10 @@
++{
+   entry => <<'ENTRY', # for DUCET v6.0.0
+0902      ; [.1F7B.0020.0002.0902][.FFF1.0000.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901      ; [.1F7B.0021.0002.0901][.FFF1.0000.0000.0901] # DEVANAGARI SIGN CANDRABINDU
+0903      ; [.1F7B.0020.0002.0903][.FFF2.0000.0000.0000] # DEVANAGARI SIGN VISARGA
+0933      ; [.1FBC.0020.0002.0933][.FFF1.0000.0000.0000] # DEVANAGARI LETTER LLA
+0915 094D 0937 ; [.1FBC.0020.0002.0915][.FFF2.0000.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
+0934      ; [.1FBC.0020.0002.0933][.FFF1.0000.0000.0000][.0000.00DD.0002.093C] # DEVANAGARI LETTER LLLA
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/Collate/Locale/ln.pl b/cpan/Unicode-Collate/Collate/Locale/ln.pl
new file mode 100644 (file)
index 0000000..c5a29cf
--- /dev/null
@@ -0,0 +1,11 @@
++{
+   entry => <<'ENTRY', # for DUCET v6.0.0
+025B      ; [.1600.0020.0002.025B] # LATIN SMALL LETTER OPEN E
+0190      ; [.1600.0020.0008.0190] # LATIN CAPITAL LETTER OPEN E
+2107      ; [.1600.0020.000A.2107] # EULER CONSTANT
+1D4B      ; [.1600.0020.0014.1D4B] # MODIFIER LETTER SMALL OPEN E
+0254      ; [.1724.0021.0002.0254] # LATIN SMALL LETTER OPEN O
+0186      ; [.1724.0021.0008.0186] # LATIN CAPITAL LETTER OPEN O
+1D53      ; [.1724.0021.0014.1D53] # MODIFIER LETTER SMALL OPEN O
+ENTRY
+};
index bf6a034..589c0c7 100644 (file)
@@ -1,22 +1,47 @@
 +{
+# in cldr test/lt.xml why I-dot-acute > I-dot though i-dot-acute < i-dot ?
    entry => <<'ENTRY', # for DUCET v6.0.0
-0307      ; [.0000.005A.0002.0307] # COMBINING DOT ABOVE
-010D      ; [.15E3.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.15E3.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
-010C      ; [.15E3.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.15E3.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
-0079      ; [.1680.0021.0002.0079] # LATIN SMALL LETTER Y
-0059      ; [.1680.0021.0008.0059] # LATIN CAPITAL LETTER Y
-0161      ; [.17C8.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.17C8.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
-0160      ; [.17C8.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.17C8.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
-017E      ; [.1860.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1860.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
-017D      ; [.1860.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1860.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
-0117      ; [.15FF.0020.0002.0065][.0000.005A.0002.0307] # LATIN SMALL LETTER E WITH DOT ABOVE
-0116      ; [.15FF.0020.0008.0045][.0000.005A.0002.0307] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0130      ; [.1680.0020.0008.0049][.0000.005A.0002.0307] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+0049 0307 ; [.1680.0020.0008.0049][.0000.0052.0002.0307] # <LATIN CAPITAL LETTER I, COMBINING DOT ABOVE>
+0307 0300 ; [.0000.0035.0002.0300] # <COMBINING DOT ABOVE, COMBINING GRAVE ACCENT>
+0307 0301 ; [.0000.0032.0002.0301] # <COMBINING DOT ABOVE, COMBINING ACUTE ACCENT>
+0307 0303 ; [.0000.004E.0002.0303] # <COMBINING DOT ABOVE, COMBINING TILDE>
+0105      ; [.15A3.0021.0002.0105] # LATIN SMALL LETTER A WITH OGONEK
+0061 0328 ; [.15A3.0021.0002.0105] # LATIN SMALL LETTER A WITH OGONEK
+0104      ; [.15A3.0021.0008.0104] # LATIN CAPITAL LETTER A WITH OGONEK
+0041 0328 ; [.15A3.0021.0008.0104] # LATIN CAPITAL LETTER A WITH OGONEK
+010D      ; [.15D2.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.15D2.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
+010C      ; [.15D2.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.15D2.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
+0119      ; [.15FF.0021.0002.0119] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.15FF.0021.0002.0119] # LATIN SMALL LETTER E WITH OGONEK
+0118      ; [.15FF.0021.0008.0118] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.15FF.0021.0008.0118] # LATIN CAPITAL LETTER E WITH OGONEK
+0117      ; [.15FF.0022.0002.0117] # LATIN SMALL LETTER E WITH DOT ABOVE
+0065 0307 ; [.15FF.0022.0002.0117] # LATIN SMALL LETTER E WITH DOT ABOVE
+0116      ; [.15FF.0022.0008.0116] # LATIN CAPITAL LETTER E WITH DOT ABOVE
+0045 0307 ; [.15FF.0022.0008.0116] # LATIN CAPITAL LETTER E WITH DOT ABOVE
+012F      ; [.1680.0021.0002.012F] # LATIN SMALL LETTER I WITH OGONEK
+0069 0328 ; [.1680.0021.0002.012F] # LATIN SMALL LETTER I WITH OGONEK
+012E      ; [.1680.0021.0008.012E] # LATIN CAPITAL LETTER I WITH OGONEK
+0049 0328 ; [.1680.0021.0008.012E] # LATIN CAPITAL LETTER I WITH OGONEK
+0079      ; [.1680.0022.0002.0079] # LATIN SMALL LETTER Y
+0059      ; [.1680.0022.0008.0059] # LATIN CAPITAL LETTER Y
+0161      ; [.17A7.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.17A7.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0160      ; [.17A7.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.17A7.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+0173      ; [.17E9.0021.0002.0173] # LATIN SMALL LETTER U WITH OGONEK
+0075 0328 ; [.17E9.0021.0002.0173] # LATIN SMALL LETTER U WITH OGONEK
+0172      ; [.17E9.0021.0008.0172] # LATIN CAPITAL LETTER U WITH OGONEK
+0055 0328 ; [.17E9.0021.0008.0172] # LATIN CAPITAL LETTER U WITH OGONEK
+016B      ; [.17E9.0022.0002.016B] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.17E9.0022.0002.016B] # LATIN SMALL LETTER U WITH MACRON
+016A      ; [.17E9.0022.0008.016A] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.17E9.0022.0008.016A] # LATIN CAPITAL LETTER U WITH MACRON
+017E      ; [.1845.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1845.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+017D      ; [.1845.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1845.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
 ENTRY
 };
index 7397f0c..2e14043 100644 (file)
@@ -1,5 +1,4 @@
 +{
-# ignored: Y < J
    entry => <<'ENTRY', # for DUCET v6.0.0
 010D      ; [.15E3.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
 0063 030C ; [.15E3.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
index f5c99b8..c6af50c 100644 (file)
@@ -1,4 +1,4 @@
-Unicode/Collate version 0.79
+Unicode/Collate version 0.80
 ===============================
 
 NAME
index f9d20d9..be08550 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 190 };
+BEGIN { plan tests => 191 };
 
 use strict;
 use warnings;
@@ -200,3 +200,9 @@ for my $i ("", "\0") {
 }
 
 # 190
+
+$objBe->change(upper_before_lower => 1);
+
+ok($objBe->gt("\x{451}", "\x{401}"));
+
+# 191
diff --git a/cpan/Unicode-Collate/t/loc_bs.t b/cpan/Unicode-Collate/t/loc_bs.t
new file mode 100644 (file)
index 0000000..0ffec2c
--- /dev/null
@@ -0,0 +1,186 @@
+
+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 Test;
+BEGIN { plan tests => 118 };
+
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objBs = Unicode::Collate::Locale->
+    new(locale => 'BS', normalization => undef);
+
+ok($objBs->getlocale, 'bs');
+
+$objBs->change(level => 1);
+
+ok($objBs->lt("c", "c\x{30C}"));
+ok($objBs->lt("c\x{30C}", "c\x{301}"));
+ok($objBs->gt("d", "c\x{301}"));
+ok($objBs->lt("d", "dz\x{30C}"));
+ok($objBs->lt("dzz", "dz\x{30C}"));
+ok($objBs->lt("dz\x{30C}", "d\x{335}"));
+ok($objBs->gt("e", "d\x{335}"));
+ok($objBs->lt("l", "lj"));
+ok($objBs->lt("lz","lj"));
+ok($objBs->gt("m", "lj"));
+ok($objBs->lt("n", "nj"));
+ok($objBs->lt("nz","nj"));
+ok($objBs->gt("o", "nj"));
+ok($objBs->lt("s", "s\x{30C}"));
+ok($objBs->lt("sz","s\x{30C}"));
+ok($objBs->gt("t", "s\x{30C}"));
+ok($objBs->lt("z", "z\x{30C}"));
+ok($objBs->lt("zz","z\x{30C}"));
+ok($objBs->lt("z\x{30C}", "\x{292}")); # U+0292 EZH
+
+# 21
+
+# not tailored
+ok($objBs->lt("dZ\x{30C}","dz\x{30C}"));
+ok($objBs->lt("lJ", "lj"));
+ok($objBs->lt("nJ", "nj"));
+
+# 24
+
+$objBs->change(level => 2);
+
+ok($objBs->eq("c\x{30C}", "C\x{30C}"));
+ok($objBs->eq("c\x{301}", "C\x{301}"));
+ok($objBs->eq("dz\x{30C}","Dz\x{30C}"));
+ok($objBs->eq("Dz\x{30C}","DZ\x{30C}"));
+ok($objBs->eq("d\x{335}", "D\x{335}"));
+ok($objBs->eq("lj", "Lj"));
+ok($objBs->eq("Lj", "LJ"));
+ok($objBs->eq("nj", "Nj"));
+ok($objBs->eq("Nj", "NJ"));
+ok($objBs->eq("s\x{30C}", "S\x{30C}"));
+ok($objBs->eq("z\x{30C}", "Z\x{30C}"));
+
+# 35
+
+ok($objBs->eq("dz\x{30C}", "\x{1C6}"));
+ok($objBs->eq("Dz\x{30C}", "\x{1C6}"));
+ok($objBs->eq("Dz\x{30C}", "\x{1C5}"));
+ok($objBs->eq("DZ\x{30C}", "\x{1C5}"));
+ok($objBs->eq("DZ\x{30C}", "\x{1C4}"));
+
+ok($objBs->eq("lj", "\x{1C9}"));
+ok($objBs->eq("Lj", "\x{1C9}"));
+ok($objBs->eq("Lj", "\x{1C8}"));
+ok($objBs->eq("LJ", "\x{1C8}"));
+ok($objBs->eq("LJ", "\x{1C7}"));
+
+ok($objBs->eq("nj", "\x{1CC}"));
+ok($objBs->eq("Nj", "\x{1CC}"));
+ok($objBs->eq("Nj", "\x{1CB}"));
+ok($objBs->eq("NJ", "\x{1CB}"));
+ok($objBs->eq("NJ", "\x{1CA}"));
+
+# 50
+
+$objBs->change(level => 3);
+
+ok($objBs->lt("c\x{30C}", "C\x{30C}"));
+ok($objBs->lt("c\x{301}", "C\x{301}"));
+ok($objBs->lt("dz\x{30C}","Dz\x{30C}"));
+ok($objBs->lt("Dz\x{30C}","DZ\x{30C}"));
+ok($objBs->lt("d\x{335}", "D\x{335}"));
+ok($objBs->lt("lj", "Lj"));
+ok($objBs->lt("Lj", "LJ"));
+ok($objBs->lt("nj", "Nj"));
+ok($objBs->lt("Nj", "NJ"));
+ok($objBs->lt("s\x{30C}", "S\x{30C}"));
+ok($objBs->lt("z\x{30C}", "Z\x{30C}"));
+
+# 61
+
+ok($objBs->lt("dz\x{30C}", "\x{1C6}"));
+ok($objBs->gt("Dz\x{30C}", "\x{1C6}"));
+ok($objBs->lt("Dz\x{30C}", "\x{1C5}"));
+ok($objBs->gt("DZ\x{30C}", "\x{1C5}"));
+ok($objBs->lt("DZ\x{30C}", "\x{1C4}"));
+
+ok($objBs->lt("lj", "\x{1C9}"));
+ok($objBs->gt("Lj", "\x{1C9}"));
+ok($objBs->lt("Lj", "\x{1C8}"));
+ok($objBs->gt("LJ", "\x{1C8}"));
+ok($objBs->lt("LJ", "\x{1C7}"));
+
+ok($objBs->lt("nj", "\x{1CC}"));
+ok($objBs->gt("Nj", "\x{1CC}"));
+ok($objBs->lt("Nj", "\x{1CB}"));
+ok($objBs->gt("NJ", "\x{1CB}"));
+ok($objBs->lt("NJ", "\x{1CA}"));
+
+# 76
+
+ok($objBs->eq("c\x{30C}", "\x{10D}"));
+ok($objBs->eq("C\x{30C}", "\x{10C}"));
+ok($objBs->eq("c\x{301}", "\x{107}"));
+ok($objBs->eq("c\x{341}", "\x{107}"));
+ok($objBs->eq("C\x{301}", "\x{106}"));
+ok($objBs->eq("C\x{341}", "\x{106}"));
+ok($objBs->eq("dz\x{30C}", "d\x{17E}"));
+ok($objBs->eq("dZ\x{30C}", "d\x{17D}"));
+ok($objBs->eq("Dz\x{30C}", "D\x{17E}"));
+ok($objBs->eq("DZ\x{30C}", "D\x{17D}"));
+ok($objBs->eq("d\x{335}", "\x{111}"));
+ok($objBs->eq("D\x{335}", "\x{110}"));
+ok($objBs->eq("s\x{30C}", "\x{161}"));
+ok($objBs->eq("S\x{30C}", "\x{160}"));
+ok($objBs->eq("z\x{30C}", "\x{17E}"));
+ok($objBs->eq("Z\x{30C}", "\x{17D}"));
+
+# 92
+
+$objBs->change(upper_before_lower => 1);
+
+ok($objBs->gt("c\x{30C}", "C\x{30C}"));
+ok($objBs->gt("c\x{301}", "C\x{301}"));
+ok($objBs->gt("dz\x{30C}","Dz\x{30C}"));
+ok($objBs->gt("Dz\x{30C}","DZ\x{30C}"));
+ok($objBs->gt("d\x{335}", "D\x{335}"));
+ok($objBs->gt("lj", "Lj"));
+ok($objBs->gt("Lj", "LJ"));
+ok($objBs->gt("nj", "Nj"));
+ok($objBs->gt("Nj", "NJ"));
+ok($objBs->gt("s\x{30C}", "S\x{30C}"));
+ok($objBs->gt("z\x{30C}", "Z\x{30C}"));
+
+# 103
+
+ok($objBs->lt("DZ\x{30C}", "\x{1C4}"));
+ok($objBs->gt("Dz\x{30C}", "\x{1C4}"));
+ok($objBs->lt("Dz\x{30C}", "\x{1C5}"));
+ok($objBs->gt("dz\x{30C}", "\x{1C5}"));
+ok($objBs->lt("dz\x{30C}", "\x{1C6}"));
+
+ok($objBs->lt("LJ", "\x{1C7}"));
+ok($objBs->gt("Lj", "\x{1C7}"));
+ok($objBs->lt("Lj", "\x{1C8}"));
+ok($objBs->gt("lj", "\x{1C8}"));
+ok($objBs->lt("lj", "\x{1C9}"));
+
+ok($objBs->lt("NJ", "\x{1CA}"));
+ok($objBs->gt("Nj", "\x{1CA}"));
+ok($objBs->lt("Nj", "\x{1CB}"));
+ok($objBs->gt("nj", "\x{1CB}"));
+ok($objBs->lt("nj", "\x{1CC}"));
+
+# 118
index 72e6742..0305a96 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 34 };
+BEGIN { plan tests => 51 };
 
 use strict;
 use warnings;
@@ -56,7 +56,14 @@ ok($objHa->eq("Ts", "TS"));
 ok($objHa->eq("'y", "'Y"));
 ok($objHa->eq("\x{1B4}", "\x{1B3}"));
 
-# 23
+ok($objHa->eq("\x{1B4}", "\x{2BC}y"));
+ok($objHa->eq("\x{2BC}y","'y"));
+ok($objHa->eq("'y",      "\x{1B3}"));
+ok($objHa->eq("\x{1B3}", "\x{2BC}Y"));
+ok($objHa->eq("\x{2BC}Y","'Y"));
+ok($objHa->eq("'Y",      "\x{1B4}"));
+
+# 29
 
 $objHa->change(level => 3);
 
@@ -69,7 +76,24 @@ ok($objHa->lt("ts", "Ts"));
 ok($objHa->lt("Ts", "TS"));
 ok($objHa->lt("'y", "'Y"));
 ok($objHa->lt("\x{1B4}", "\x{1B3}"));
-ok($objHa->eq("'y", "\x{1B4}"));
-ok($objHa->eq("'Y", "\x{1B3}"));
 
-# 34
+ok($objHa->lt("\x{1B4}", "\x{2BC}y"));
+ok($objHa->lt("\x{2BC}y","'y"));
+ok($objHa->lt("'y",      "\x{1B3}"));
+ok($objHa->lt("\x{1B3}", "\x{2BC}Y"));
+ok($objHa->lt("\x{2BC}Y","'Y"));
+ok($objHa->gt("'Y",      "\x{1B4}"));
+
+# 44
+
+$objHa->change(upper_before_lower => 1);
+
+ok($objHa->gt("\x{1B4}", "\x{1B3}"));
+ok($objHa->lt("\x{1B4}", "\x{2BC}y"));
+ok($objHa->lt("\x{2BC}y","'y"));
+ok($objHa->gt("'y",      "\x{1B3}"));
+ok($objHa->lt("\x{1B3}", "\x{2BC}Y"));
+ok($objHa->lt("\x{2BC}Y","'Y"));
+ok($objHa->lt("'Y",      "\x{1B4}"));
+
+# 51
diff --git a/cpan/Unicode-Collate/t/loc_hi.t b/cpan/Unicode-Collate/t/loc_hi.t
new file mode 100644 (file)
index 0000000..d77831e
--- /dev/null
@@ -0,0 +1,41 @@
+
+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 Test;
+BEGIN { plan tests => 7 };
+
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objHi = Unicode::Collate::Locale->
+    new(locale => 'HI', normalization => undef);
+
+ok($objHi->getlocale, 'hi');
+
+$objHi->change(level => 1);
+
+ok($objHi->lt("\x{950}", "\x{902}"));
+ok($objHi->lt("\x{902}", "\x{903}"));
+ok($objHi->lt("\x{903}", "\x{972}"));
+
+ok($objHi->eq("\x{902}", "\x{901}"));
+
+$objHi->change(level => 2);
+
+ok($objHi->lt("\x{902}", "\x{901}"));
+
index 5c01a0f..223aef4 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 88 };
+BEGIN { plan tests => 118 };
 
 use strict;
 use warnings;
@@ -51,43 +51,84 @@ ok($objHr->lt("z\x{30C}", "\x{292}")); # U+0292 EZH
 
 # 21
 
+# not tailored
+ok($objHr->lt("dZ\x{30C}","dz\x{30C}"));
+ok($objHr->lt("lJ", "lj"));
+ok($objHr->lt("nJ", "nj"));
+
+# 24
+
 $objHr->change(level => 2);
 
 ok($objHr->eq("c\x{30C}", "C\x{30C}"));
 ok($objHr->eq("c\x{301}", "C\x{301}"));
-ok($objHr->eq("dz\x{30C}","dZ\x{30C}"));
-ok($objHr->eq("dZ\x{30C}","Dz\x{30C}"));
+ok($objHr->eq("dz\x{30C}","Dz\x{30C}"));
 ok($objHr->eq("Dz\x{30C}","DZ\x{30C}"));
 ok($objHr->eq("d\x{335}", "D\x{335}"));
-ok($objHr->eq("lj", "lJ"));
-ok($objHr->eq("lJ", "Lj"));
+ok($objHr->eq("lj", "Lj"));
 ok($objHr->eq("Lj", "LJ"));
-ok($objHr->eq("nj", "nJ"));
-ok($objHr->eq("nJ", "Nj"));
+ok($objHr->eq("nj", "Nj"));
 ok($objHr->eq("Nj", "NJ"));
 ok($objHr->eq("s\x{30C}", "S\x{30C}"));
 ok($objHr->eq("z\x{30C}", "Z\x{30C}"));
 
 # 35
 
+ok($objHr->eq("dz\x{30C}", "\x{1C6}"));
+ok($objHr->eq("Dz\x{30C}", "\x{1C6}"));
+ok($objHr->eq("Dz\x{30C}", "\x{1C5}"));
+ok($objHr->eq("DZ\x{30C}", "\x{1C5}"));
+ok($objHr->eq("DZ\x{30C}", "\x{1C4}"));
+
+ok($objHr->eq("lj", "\x{1C9}"));
+ok($objHr->eq("Lj", "\x{1C9}"));
+ok($objHr->eq("Lj", "\x{1C8}"));
+ok($objHr->eq("LJ", "\x{1C8}"));
+ok($objHr->eq("LJ", "\x{1C7}"));
+
+ok($objHr->eq("nj", "\x{1CC}"));
+ok($objHr->eq("Nj", "\x{1CC}"));
+ok($objHr->eq("Nj", "\x{1CB}"));
+ok($objHr->eq("NJ", "\x{1CB}"));
+ok($objHr->eq("NJ", "\x{1CA}"));
+
+# 50
+
 $objHr->change(level => 3);
 
 ok($objHr->lt("c\x{30C}", "C\x{30C}"));
 ok($objHr->lt("c\x{301}", "C\x{301}"));
-ok($objHr->lt("dz\x{30C}","dZ\x{30C}"));
-ok($objHr->lt("dZ\x{30C}","Dz\x{30C}"));
+ok($objHr->lt("dz\x{30C}","Dz\x{30C}"));
 ok($objHr->lt("Dz\x{30C}","DZ\x{30C}"));
 ok($objHr->lt("d\x{335}", "D\x{335}"));
-ok($objHr->lt("lj", "lJ"));
-ok($objHr->lt("lJ", "Lj"));
+ok($objHr->lt("lj", "Lj"));
 ok($objHr->lt("Lj", "LJ"));
-ok($objHr->lt("nj", "nJ"));
-ok($objHr->lt("nJ", "Nj"));
+ok($objHr->lt("nj", "Nj"));
 ok($objHr->lt("Nj", "NJ"));
 ok($objHr->lt("s\x{30C}", "S\x{30C}"));
 ok($objHr->lt("z\x{30C}", "Z\x{30C}"));
 
-# 49
+# 61
+
+ok($objHr->lt("dz\x{30C}", "\x{1C6}"));
+ok($objHr->gt("Dz\x{30C}", "\x{1C6}"));
+ok($objHr->lt("Dz\x{30C}", "\x{1C5}"));
+ok($objHr->gt("DZ\x{30C}", "\x{1C5}"));
+ok($objHr->lt("DZ\x{30C}", "\x{1C4}"));
+
+ok($objHr->lt("lj", "\x{1C9}"));
+ok($objHr->gt("Lj", "\x{1C9}"));
+ok($objHr->lt("Lj", "\x{1C8}"));
+ok($objHr->gt("LJ", "\x{1C8}"));
+ok($objHr->lt("LJ", "\x{1C7}"));
+
+ok($objHr->lt("nj", "\x{1CC}"));
+ok($objHr->gt("Nj", "\x{1CC}"));
+ok($objHr->lt("Nj", "\x{1CB}"));
+ok($objHr->gt("NJ", "\x{1CB}"));
+ok($objHr->lt("NJ", "\x{1CA}"));
+
+# 76
 
 ok($objHr->eq("c\x{30C}", "\x{10D}"));
 ok($objHr->eq("C\x{30C}", "\x{10C}"));
@@ -95,43 +136,51 @@ ok($objHr->eq("c\x{301}", "\x{107}"));
 ok($objHr->eq("c\x{341}", "\x{107}"));
 ok($objHr->eq("C\x{301}", "\x{106}"));
 ok($objHr->eq("C\x{341}", "\x{106}"));
-ok($objHr->eq("dz\x{30C}", "\x{1C6}"));
-ok($objHr->eq("Dz\x{30C}", "\x{1C5}"));
-ok($objHr->eq("DZ\x{30C}", "\x{1C4}"));
 ok($objHr->eq("dz\x{30C}", "d\x{17E}"));
 ok($objHr->eq("dZ\x{30C}", "d\x{17D}"));
 ok($objHr->eq("Dz\x{30C}", "D\x{17E}"));
 ok($objHr->eq("DZ\x{30C}", "D\x{17D}"));
 ok($objHr->eq("d\x{335}", "\x{111}"));
 ok($objHr->eq("D\x{335}", "\x{110}"));
-ok($objHr->eq("lj", "\x{1C9}"));
-ok($objHr->eq("Lj", "\x{1C8}"));
-ok($objHr->eq("LJ", "\x{1C7}"));
-ok($objHr->eq("nj", "\x{1CC}"));
-ok($objHr->eq("Nj", "\x{1CB}"));
-ok($objHr->eq("NJ", "\x{1CA}"));
 ok($objHr->eq("s\x{30C}", "\x{161}"));
 ok($objHr->eq("S\x{30C}", "\x{160}"));
 ok($objHr->eq("z\x{30C}", "\x{17E}"));
 ok($objHr->eq("Z\x{30C}", "\x{17D}"));
 
-# 74
+# 92
 
 $objHr->change(upper_before_lower => 1);
 
 ok($objHr->gt("c\x{30C}", "C\x{30C}"));
 ok($objHr->gt("c\x{301}", "C\x{301}"));
-ok($objHr->gt("dz\x{30C}","dZ\x{30C}"));
-ok($objHr->gt("dZ\x{30C}","Dz\x{30C}"));
+ok($objHr->gt("dz\x{30C}","Dz\x{30C}"));
 ok($objHr->gt("Dz\x{30C}","DZ\x{30C}"));
 ok($objHr->gt("d\x{335}", "D\x{335}"));
-ok($objHr->gt("lj", "lJ"));
-ok($objHr->gt("lJ", "Lj"));
+ok($objHr->gt("lj", "Lj"));
 ok($objHr->gt("Lj", "LJ"));
-ok($objHr->gt("nj", "nJ"));
-ok($objHr->gt("nJ", "Nj"));
+ok($objHr->gt("nj", "Nj"));
 ok($objHr->gt("Nj", "NJ"));
 ok($objHr->gt("s\x{30C}", "S\x{30C}"));
 ok($objHr->gt("z\x{30C}", "Z\x{30C}"));
 
-# 88
+# 103
+
+ok($objHr->lt("DZ\x{30C}", "\x{1C4}"));
+ok($objHr->gt("Dz\x{30C}", "\x{1C4}"));
+ok($objHr->lt("Dz\x{30C}", "\x{1C5}"));
+ok($objHr->gt("dz\x{30C}", "\x{1C5}"));
+ok($objHr->lt("dz\x{30C}", "\x{1C6}"));
+
+ok($objHr->lt("LJ", "\x{1C7}"));
+ok($objHr->gt("Lj", "\x{1C7}"));
+ok($objHr->lt("Lj", "\x{1C8}"));
+ok($objHr->gt("lj", "\x{1C8}"));
+ok($objHr->lt("lj", "\x{1C9}"));
+
+ok($objHr->lt("NJ", "\x{1CA}"));
+ok($objHr->gt("Nj", "\x{1CA}"));
+ok($objHr->lt("Nj", "\x{1CB}"));
+ok($objHr->gt("nj", "\x{1CB}"));
+ok($objHr->lt("nj", "\x{1CC}"));
+
+# 118
index 5a77418..50dffaf 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 490 };
+BEGIN { plan tests => 497 };
 
 use strict;
 use warnings;
@@ -163,8 +163,10 @@ ok($objJa->eq("\x{3093}", "\x{30F3}"));
 ok($objJa->eq("\x{3094}", "\x{30F4}"));
 ok($objJa->eq("\x{3095}", "\x{30F5}"));
 ok($objJa->eq("\x{3096}", "\x{30F6}"));
+ok($objJa->eq("\x{309D}", "\x{30FD}"));
+ok($objJa->eq("\x{309E}", "\x{30FE}"));
 
-# 118
+# 120
 
 $objJa->change(variable => 'Non-ignorable');
 
@@ -343,7 +345,7 @@ ok($objJa->eq("\x{FFEC}", "\x{2193}"));
 ok($objJa->eq("\x{FFED}", "\x{25A0}"));
 ok($objJa->eq("\x{FFEE}", "\x{25CB}"));
 
-# 292
+# 294
 
 $objJa->change(level => 4);
 
@@ -433,8 +435,10 @@ ok($objJa->lt("\x{3093}", "\x{30F3}"));
 ok($objJa->lt("\x{3094}", "\x{30F4}"));
 ok($objJa->lt("\x{3095}", "\x{30F5}"));
 ok($objJa->lt("\x{3096}", "\x{30F6}"));
+ok($objJa->lt("\x{309D}", "\x{30FD}"));
+ok($objJa->lt("\x{309E}", "\x{30FE}"));
 
-# 378
+# 382
 
 ok($objJa->eq("\x{304C}", "\x{304B}\x{3099}"));
 ok($objJa->eq("\x{304E}", "\x{304D}\x{3099}"));
@@ -462,8 +466,9 @@ ok($objJa->eq("\x{307A}", "\x{3078}\x{309A}"));
 ok($objJa->eq("\x{307C}", "\x{307B}\x{3099}"));
 ok($objJa->eq("\x{307D}", "\x{307B}\x{309A}"));
 ok($objJa->eq("\x{3094}", "\x{3046}\x{3099}"));
+ok($objJa->eq("\x{309E}", "\x{309D}\x{3099}"));
 
-# 404
+# 409
 
 $objJa->change(katakana_before_hiragana => 1);
 
@@ -553,5 +558,7 @@ ok($objJa->lt("\x{3093}", "\x{30F3}"));
 ok($objJa->lt("\x{3094}", "\x{30F4}"));
 ok($objJa->lt("\x{3095}", "\x{30F5}"));
 ok($objJa->lt("\x{3096}", "\x{30F6}"));
+ok($objJa->lt("\x{309D}", "\x{30FD}"));
+ok($objJa->lt("\x{309E}", "\x{30FE}"));
 
-# 490
+# 497
index 413d532..ee58409 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 149 };
+BEGIN { plan tests => 217 };
 
 use strict;
 use warnings;
@@ -29,37 +29,59 @@ ok($objKk->getlocale, 'kk');
 
 $objKk->change(level => 1);
 
-ok($objKk->lt("\x{43E}", "\x{4E9}"));
-ok($objKk->gt("\x{43F}", "\x{4E9}"));
-ok($objKk->lt("\x{443}", "\x{4B1}"));
+ok($objKk->gt("\x{451}", "\x{435}"));
+ok($objKk->gt("\x{401}", "\x{415}"));
 ok($objKk->gt("\x{4AF}", "\x{4B1}"));
-ok($objKk->lt("\x{44B}", "\x{456}"));
-ok($objKk->gt("\x{44C}", "\x{456}"));
+ok($objKk->gt("\x{4AE}", "\x{4B0}"));
+ok($objKk->lt("\x{456}", "\x{44C}"));
+ok($objKk->lt("\x{406}", "\x{42C}"));
 
-# 8
+ok($objKk->lt("\x{451}", "\x{454}"));
+ok($objKk->lt("\x{401}", "\x{404}"));
+ok($objKk->lt("\x{4AF}", "\x{A64B}"));
+ok($objKk->lt("\x{4AE}", "\x{A64A}"));
+ok($objKk->gt("\x{456}", "\x{4F9}"));
+ok($objKk->gt("\x{406}", "\x{4F8}"));
+
+ok($objKk->gt("\x{4E5}", "\x{438}")); # not suppressed
+ok($objKk->gt("\x{4E4}", "\x{418}")); # not suppressed
+ok($objKk->gt("\x{439}", "\x{438}")); # not suppressed
+ok($objKk->gt("\x{419}", "\x{418}")); # not suppressed
+
+# 18
 
 ok($objKk->eq("\x{4D1}", "\x{430}"));
 ok($objKk->eq("\x{4D0}", "\x{410}"));
 ok($objKk->eq("\x{4D3}", "\x{430}"));
 ok($objKk->eq("\x{4D2}", "\x{410}"));
+ok($objKk->eq("\x{4DB}", "\x{4D9}"));
+ok($objKk->eq("\x{4DA}", "\x{4D8}"));
 ok($objKk->eq("\x{453}", "\x{433}"));
 ok($objKk->eq("\x{403}", "\x{413}"));
+ok($objKk->eq("\x{450}", "\x{435}")); # not contraction
+ok($objKk->eq("\x{400}", "\x{415}")); # not contraction
 ok($objKk->eq("\x{4D7}", "\x{435}"));
 ok($objKk->eq("\x{4D6}", "\x{415}"));
+ok($objKk->eq("\x{4C2}", "\x{436}")); # not contraction
+ok($objKk->eq("\x{4C1}", "\x{416}")); # not contraction
 ok($objKk->eq("\x{4DD}", "\x{436}"));
 ok($objKk->eq("\x{4DC}", "\x{416}"));
 ok($objKk->eq("\x{4DF}", "\x{437}"));
 ok($objKk->eq("\x{4DE}", "\x{417}"));
-ok($objKk->eq("\x{4E5}", "\x{438}"));
-ok($objKk->eq("\x{4E4}", "\x{418}"));
+ok($objKk->eq("\x{45D}", "\x{438}")); # not contraction
+ok($objKk->eq("\x{40D}", "\x{418}")); # not contraction
+ok($objKk->eq("\x{4E3}", "\x{438}")); # not contraction
+ok($objKk->eq("\x{4E2}", "\x{418}")); # not contraction
 ok($objKk->eq("\x{457}", "\x{456}"));
 ok($objKk->eq("\x{407}", "\x{406}"));
-ok($objKk->eq("\x{439}", "\x{438}"));
-ok($objKk->eq("\x{419}", "\x{418}"));
 ok($objKk->eq("\x{4E7}", "\x{43E}"));
 ok($objKk->eq("\x{4E6}", "\x{41E}"));
+ok($objKk->eq("\x{4EB}", "\x{4E9}"));
+ok($objKk->eq("\x{4EA}", "\x{4E8}"));
 ok($objKk->eq("\x{45C}", "\x{43A}"));
 ok($objKk->eq("\x{40C}", "\x{41A}"));
+ok($objKk->eq("\x{4EF}", "\x{443}")); # not contraction
+ok($objKk->eq("\x{4EE}", "\x{423}")); # not contraction
 ok($objKk->eq("\x{45E}", "\x{443}"));
 ok($objKk->eq("\x{40E}", "\x{423}"));
 ok($objKk->eq("\x{4F1}", "\x{443}"));
@@ -72,33 +94,49 @@ ok($objKk->eq("\x{4F9}", "\x{44B}"));
 ok($objKk->eq("\x{4F8}", "\x{42B}"));
 ok($objKk->eq("\x{4ED}", "\x{44D}"));
 ok($objKk->eq("\x{4EC}", "\x{42D}"));
+ok($objKk->eq("\x{477}", "\x{475}"));
+ok($objKk->eq("\x{476}", "\x{474}"));
 
-# 42
+# 64
 
 $objKk->change(level => 2);
 
+ok($objKk->eq("\x{451}", "\x{401}"));
+ok($objKk->eq("\x{4AF}", "\x{4AE}"));
+ok($objKk->eq("\x{456}", "\x{406}"));
+
 ok($objKk->gt("\x{4D1}", "\x{430}"));
 ok($objKk->gt("\x{4D0}", "\x{410}"));
 ok($objKk->gt("\x{4D3}", "\x{430}"));
 ok($objKk->gt("\x{4D2}", "\x{410}"));
+ok($objKk->gt("\x{4DB}", "\x{4D9}"));
+ok($objKk->gt("\x{4DA}", "\x{4D8}"));
 ok($objKk->gt("\x{453}", "\x{433}"));
 ok($objKk->gt("\x{403}", "\x{413}"));
+ok($objKk->gt("\x{450}", "\x{435}")); # not contraction
+ok($objKk->gt("\x{400}", "\x{415}")); # not contraction
 ok($objKk->gt("\x{4D7}", "\x{435}"));
 ok($objKk->gt("\x{4D6}", "\x{415}"));
+ok($objKk->gt("\x{4C2}", "\x{436}")); # not contraction
+ok($objKk->gt("\x{4C1}", "\x{416}")); # not contraction
 ok($objKk->gt("\x{4DD}", "\x{436}"));
 ok($objKk->gt("\x{4DC}", "\x{416}"));
 ok($objKk->gt("\x{4DF}", "\x{437}"));
 ok($objKk->gt("\x{4DE}", "\x{417}"));
-ok($objKk->gt("\x{4E5}", "\x{438}"));
-ok($objKk->gt("\x{4E4}", "\x{418}"));
+ok($objKk->gt("\x{45D}", "\x{438}")); # not contraction
+ok($objKk->gt("\x{40D}", "\x{418}")); # not contraction
+ok($objKk->gt("\x{4E3}", "\x{438}")); # not contraction
+ok($objKk->gt("\x{4E2}", "\x{418}")); # not contraction
 ok($objKk->gt("\x{457}", "\x{456}"));
 ok($objKk->gt("\x{407}", "\x{406}"));
-ok($objKk->gt("\x{439}", "\x{438}"));
-ok($objKk->gt("\x{419}", "\x{418}"));
 ok($objKk->gt("\x{4E7}", "\x{43E}"));
 ok($objKk->gt("\x{4E6}", "\x{41E}"));
+ok($objKk->gt("\x{4EB}", "\x{4E9}"));
+ok($objKk->gt("\x{4EA}", "\x{4E8}"));
 ok($objKk->gt("\x{45C}", "\x{43A}"));
 ok($objKk->gt("\x{40C}", "\x{41A}"));
+ok($objKk->gt("\x{4EF}", "\x{443}")); # not contraction
+ok($objKk->gt("\x{4EE}", "\x{423}")); # not contraction
 ok($objKk->gt("\x{45E}", "\x{443}"));
 ok($objKk->gt("\x{40E}", "\x{423}"));
 ok($objKk->gt("\x{4F1}", "\x{443}"));
@@ -111,90 +149,81 @@ ok($objKk->gt("\x{4F9}", "\x{44B}"));
 ok($objKk->gt("\x{4F8}", "\x{42B}"));
 ok($objKk->gt("\x{4ED}", "\x{44D}"));
 ok($objKk->gt("\x{4EC}", "\x{42D}"));
+ok($objKk->gt("\x{477}", "\x{475}"));
+ok($objKk->gt("\x{476}", "\x{474}"));
 
-# 76
+# 113
 
 $objKk->change(level => 3);
 
-ok($objKk->lt("\x{4E9}", "\x{4E8}"));
-ok($objKk->lt("\x{4B1}", "\x{4B0}"));
+ok($objKk->lt("\x{451}", "\x{401}"));
+ok($objKk->lt("\x{4AF}", "\x{4AE}"));
 ok($objKk->lt("\x{456}", "\x{406}"));
 
-ok($objKk->eq("\x{4EB}", "\x{4E9}\x{308}"));
-ok($objKk->eq("\x{4EA}", "\x{4E8}\x{308}"));
-
-# 81
-
-ok($objKk->eq("\x{4D1}", "\x{430}\x{306}"));
-ok($objKk->eq("\x{4D0}", "\x{410}\x{306}"));
-ok($objKk->eq("\x{4D3}", "\x{430}\x{308}"));
-ok($objKk->eq("\x{4D2}", "\x{410}\x{308}"));
-ok($objKk->eq("\x{453}", "\x{433}\x{301}"));
-ok($objKk->eq("\x{403}", "\x{413}\x{301}"));
-ok($objKk->eq("\x{4D7}", "\x{435}\x{306}"));
-ok($objKk->eq("\x{4D6}", "\x{415}\x{306}"));
-ok($objKk->eq("\x{4DD}", "\x{436}\x{308}"));
-ok($objKk->eq("\x{4DC}", "\x{416}\x{308}"));
-ok($objKk->eq("\x{4DF}", "\x{437}\x{308}"));
-ok($objKk->eq("\x{4DE}", "\x{417}\x{308}"));
-ok($objKk->eq("\x{4E5}", "\x{438}\x{308}"));
-ok($objKk->eq("\x{4E4}", "\x{418}\x{308}"));
-ok($objKk->eq("\x{457}", "\x{456}\x{308}"));
-ok($objKk->eq("\x{407}", "\x{406}\x{308}"));
-ok($objKk->eq("\x{439}", "\x{438}\x{306}"));
-ok($objKk->eq("\x{419}", "\x{418}\x{306}"));
-ok($objKk->eq("\x{4E7}", "\x{43E}\x{308}"));
-ok($objKk->eq("\x{4E6}", "\x{41E}\x{308}"));
-ok($objKk->eq("\x{45C}", "\x{43A}\x{301}"));
-ok($objKk->eq("\x{40C}", "\x{41A}\x{301}"));
-ok($objKk->eq("\x{45E}", "\x{443}\x{306}"));
-ok($objKk->eq("\x{40E}", "\x{423}\x{306}"));
-ok($objKk->eq("\x{4F1}", "\x{443}\x{308}"));
-ok($objKk->eq("\x{4F0}", "\x{423}\x{308}"));
-ok($objKk->eq("\x{4F3}", "\x{443}\x{30B}"));
-ok($objKk->eq("\x{4F2}", "\x{423}\x{30B}"));
-ok($objKk->eq("\x{4F5}", "\x{447}\x{308}"));
-ok($objKk->eq("\x{4F4}", "\x{427}\x{308}"));
-ok($objKk->eq("\x{4F9}", "\x{44B}\x{308}"));
-ok($objKk->eq("\x{4F8}", "\x{42B}\x{308}"));
-ok($objKk->eq("\x{4ED}", "\x{44D}\x{308}"));
-ok($objKk->eq("\x{4EC}", "\x{42D}\x{308}"));
-
-# 115
-
-ok($objKk->eq("\x{4D1}", "\x{430}\0\x{306}"));
-ok($objKk->eq("\x{4D0}", "\x{410}\0\x{306}"));
-ok($objKk->eq("\x{4D3}", "\x{430}\0\x{308}"));
-ok($objKk->eq("\x{4D2}", "\x{410}\0\x{308}"));
-ok($objKk->eq("\x{453}", "\x{433}\0\x{301}"));
-ok($objKk->eq("\x{403}", "\x{413}\0\x{301}"));
-ok($objKk->eq("\x{4D7}", "\x{435}\0\x{306}"));
-ok($objKk->eq("\x{4D6}", "\x{415}\0\x{306}"));
-ok($objKk->eq("\x{4DD}", "\x{436}\0\x{308}"));
-ok($objKk->eq("\x{4DC}", "\x{416}\0\x{308}"));
-ok($objKk->eq("\x{4DF}", "\x{437}\0\x{308}"));
-ok($objKk->eq("\x{4DE}", "\x{417}\0\x{308}"));
-ok($objKk->eq("\x{4E5}", "\x{438}\0\x{308}"));
-ok($objKk->eq("\x{4E4}", "\x{418}\0\x{308}"));
-ok($objKk->eq("\x{457}", "\x{456}\0\x{308}"));
-ok($objKk->eq("\x{407}", "\x{406}\0\x{308}"));
-ok($objKk->eq("\x{439}", "\x{438}\0\x{306}"));
-ok($objKk->eq("\x{419}", "\x{418}\0\x{306}"));
-ok($objKk->eq("\x{4E7}", "\x{43E}\0\x{308}"));
-ok($objKk->eq("\x{4E6}", "\x{41E}\0\x{308}"));
-ok($objKk->eq("\x{45C}", "\x{43A}\0\x{301}"));
-ok($objKk->eq("\x{40C}", "\x{41A}\0\x{301}"));
-ok($objKk->eq("\x{45E}", "\x{443}\0\x{306}"));
-ok($objKk->eq("\x{40E}", "\x{423}\0\x{306}"));
-ok($objKk->eq("\x{4F1}", "\x{443}\0\x{308}"));
-ok($objKk->eq("\x{4F0}", "\x{423}\0\x{308}"));
-ok($objKk->eq("\x{4F3}", "\x{443}\0\x{30B}"));
-ok($objKk->eq("\x{4F2}", "\x{423}\0\x{30B}"));
-ok($objKk->eq("\x{4F5}", "\x{447}\0\x{308}"));
-ok($objKk->eq("\x{4F4}", "\x{427}\0\x{308}"));
-ok($objKk->eq("\x{4F9}", "\x{44B}\0\x{308}"));
-ok($objKk->eq("\x{4F8}", "\x{42B}\0\x{308}"));
-ok($objKk->eq("\x{4ED}", "\x{44D}\0\x{308}"));
-ok($objKk->eq("\x{4EC}", "\x{42D}\0\x{308}"));
-
-# 149
+ok($objKk->eq("\x{451}", "\x{435}\x{308}"));
+ok($objKk->eq("\x{401}", "\x{415}\x{308}"));
+ok($objKk->eq("\x{4E5}", "\x{438}\x{308}")); # not suppressed
+ok($objKk->eq("\x{4E4}", "\x{418}\x{308}")); # not suppressed
+ok($objKk->eq("\x{439}", "\x{438}\x{306}")); # not suppressed
+ok($objKk->eq("\x{419}", "\x{418}\x{306}")); # not suppressed
+
+# 122
+
+for my $i ("", "\0") {
+  ok($objKk->eq("\x{4D1}", "\x{430}$i\x{306}"));
+  ok($objKk->eq("\x{4D0}", "\x{410}$i\x{306}"));
+  ok($objKk->eq("\x{4D3}", "\x{430}$i\x{308}"));
+  ok($objKk->eq("\x{4D2}", "\x{410}$i\x{308}"));
+  ok($objKk->eq("\x{4DB}", "\x{4D9}$i\x{308}"));
+  ok($objKk->eq("\x{4DA}", "\x{4D8}$i\x{308}"));
+  ok($objKk->eq("\x{453}", "\x{433}$i\x{301}"));
+  ok($objKk->eq("\x{403}", "\x{413}$i\x{301}"));
+  ok($objKk->eq("\x{450}", "\x{435}$i\x{300}")); # not contraction
+  ok($objKk->eq("\x{400}", "\x{415}$i\x{300}")); # not contraction
+  ok($objKk->eq("\x{4D7}", "\x{435}$i\x{306}"));
+  ok($objKk->eq("\x{4D6}", "\x{415}$i\x{306}"));
+  ok($objKk->eq("\x{4C2}", "\x{436}$i\x{306}")); # not contraction
+  ok($objKk->eq("\x{4C1}", "\x{416}$i\x{306}")); # not contraction
+  ok($objKk->eq("\x{4DD}", "\x{436}$i\x{308}"));
+  ok($objKk->eq("\x{4DC}", "\x{416}$i\x{308}"));
+  ok($objKk->eq("\x{4DF}", "\x{437}$i\x{308}"));
+  ok($objKk->eq("\x{4DE}", "\x{417}$i\x{308}"));
+  ok($objKk->eq("\x{45D}", "\x{438}$i\x{300}")); # not contraction
+  ok($objKk->eq("\x{40D}", "\x{418}$i\x{300}")); # not contraction
+  ok($objKk->eq("\x{4E3}", "\x{438}$i\x{304}")); # not contraction
+  ok($objKk->eq("\x{4E2}", "\x{418}$i\x{304}")); # not contraction
+  ok($objKk->eq("\x{457}", "\x{456}$i\x{308}"));
+  ok($objKk->eq("\x{407}", "\x{406}$i\x{308}"));
+  ok($objKk->eq("\x{4E7}", "\x{43E}$i\x{308}"));
+  ok($objKk->eq("\x{4E6}", "\x{41E}$i\x{308}"));
+  ok($objKk->eq("\x{4EB}", "\x{4E9}$i\x{308}"));
+  ok($objKk->eq("\x{4EA}", "\x{4E8}$i\x{308}"));
+  ok($objKk->eq("\x{45C}", "\x{43A}$i\x{301}"));
+  ok($objKk->eq("\x{40C}", "\x{41A}$i\x{301}"));
+  ok($objKk->eq("\x{4EF}", "\x{443}$i\x{304}")); # not contraction
+  ok($objKk->eq("\x{4EE}", "\x{423}$i\x{304}")); # not contraction
+  ok($objKk->eq("\x{45E}", "\x{443}$i\x{306}"));
+  ok($objKk->eq("\x{40E}", "\x{423}$i\x{306}"));
+  ok($objKk->eq("\x{4F1}", "\x{443}$i\x{308}"));
+  ok($objKk->eq("\x{4F0}", "\x{423}$i\x{308}"));
+  ok($objKk->eq("\x{4F3}", "\x{443}$i\x{30B}"));
+  ok($objKk->eq("\x{4F2}", "\x{423}$i\x{30B}"));
+  ok($objKk->eq("\x{4F5}", "\x{447}$i\x{308}"));
+  ok($objKk->eq("\x{4F4}", "\x{427}$i\x{308}"));
+  ok($objKk->eq("\x{4F9}", "\x{44B}$i\x{308}"));
+  ok($objKk->eq("\x{4F8}", "\x{42B}$i\x{308}"));
+  ok($objKk->eq("\x{4ED}", "\x{44D}$i\x{308}"));
+  ok($objKk->eq("\x{4EC}", "\x{42D}$i\x{308}"));
+  ok($objKk->eq("\x{477}", "\x{475}$i\x{30F}"));
+  ok($objKk->eq("\x{476}", "\x{474}$i\x{30F}"));
+}
+
+# 214
+
+$objKk->change(upper_before_lower => 1);
+
+ok($objKk->gt("\x{451}", "\x{401}"));
+ok($objKk->gt("\x{4AF}", "\x{4AE}"));
+ok($objKk->gt("\x{456}", "\x{406}"));
+
+# 217
diff --git a/cpan/Unicode-Collate/t/loc_kn.t b/cpan/Unicode-Collate/t/loc_kn.t
new file mode 100644 (file)
index 0000000..3563f69
--- /dev/null
@@ -0,0 +1,37 @@
+
+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 Test;
+BEGIN { plan tests => 7 };
+
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objKn = Unicode::Collate::Locale->
+    new(locale => 'KN', normalization => undef);
+
+ok($objKn->getlocale, 'kn');
+
+$objKn->change(level => 1);
+
+ok($objKn->lt("\x{0C94}", "\x{0C82}"));
+ok($objKn->lt("\x{0C82}", "\x{0C83}"));
+ok($objKn->lt("\x{0C83}", "\x{0CF1}"));
+ok($objKn->lt("\x{0CF1}", "\x{0CF2}"));
+ok($objKn->lt("\x{0CF2}", "\x{0C95}"));
+
diff --git a/cpan/Unicode-Collate/t/loc_kok.t b/cpan/Unicode-Collate/t/loc_kok.t
new file mode 100644 (file)
index 0000000..d6cce3a
--- /dev/null
@@ -0,0 +1,55 @@
+
+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 Test;
+BEGIN { plan tests => 13 };
+
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objKok = Unicode::Collate::Locale->
+    new(locale => 'KOK', normalization => undef);
+
+ok($objKok->getlocale, 'kok');
+
+$objKok->change(level => 1);
+
+ok($objKok->lt("\x{950}", "\x{902}"));
+ok($objKok->lt("\x{902}", "\x{903}"));
+ok($objKok->lt("\x{903}", "\x{972}"));
+
+ok($objKok->eq("\x{902}", "\x{901}"));
+
+ok($objKok->lt("\x{939}", "\x{933}"));
+ok($objKok->lt("\x{933}", "\x{915}\x{94D}\x{937}"));
+ok($objKok->lt("\x{915}\x{94D}\x{937}", "\x{93D}"));
+
+ok($objKok->eq("\x{933}", "\x{934}"));
+
+# 10
+
+$objKok->change(level => 2);
+
+ok($objKok->lt("\x{902}", "\x{901}"));
+ok($objKok->lt("\x{933}", "\x{934}"));
+
+$objKok->change(level => 3);
+
+ok($objKok->eq("\x{933}\x{93C}", "\x{934}"));
+
+# 13
diff --git a/cpan/Unicode-Collate/t/loc_ln.t b/cpan/Unicode-Collate/t/loc_ln.t
new file mode 100644 (file)
index 0000000..02f6c31
--- /dev/null
@@ -0,0 +1,71 @@
+
+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 Test;
+BEGIN { plan tests => 23 };
+
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objLn = Unicode::Collate::Locale->
+    new(locale => 'LN', normalization => undef);
+
+ok($objLn->getlocale, 'ln');
+
+$objLn->change(level => 1);
+
+ok($objLn->gt("\x{25B}", "E"));
+ok($objLn->lt("\x{25B}", "F"));
+
+ok($objLn->eq("\x{254}", "O"));
+
+# 5
+
+$objLn->change(level => 2);
+
+ok($objLn->gt("\x{254}", "O"));
+
+ok($objLn->eq("\x{25B}", "\x{190}"));
+ok($objLn->eq("\x{254}", "\x{186}"));
+
+ok($objLn->eq("\x{25B}", "\x{2107}"));
+ok($objLn->eq("\x{25B}", "\x{1D4B}"));
+ok($objLn->eq("\x{254}", "\x{1D53}"));
+
+# 11
+
+$objLn->change(level => 3);
+
+ok($objLn->lt("\x{25B}", "\x{190}"));
+ok($objLn->lt("\x{25B}", "\x{2107}"));
+ok($objLn->lt("\x{254}", "\x{186}"));
+
+$objLn->change(upper_before_lower => 1);
+
+ok($objLn->gt("\x{25B}", "\x{190}"));
+ok($objLn->gt("\x{25B}", "\x{2107}"));
+ok($objLn->gt("\x{254}", "\x{186}"));
+
+for my $up_lo (0, 1) {
+  $objLn->change(upper_before_lower => $up_lo);
+  ok($objLn->lt("\x{190}", "\x{2107}"));
+  ok($objLn->lt("\x{25B}", "\x{1D4B}"));
+  ok($objLn->lt("\x{254}", "\x{1D53}"));
+}
+
+# 23
index 86c508c..d8babba 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 55 };
+BEGIN { plan tests => 69 };
 
 use strict;
 use warnings;
@@ -38,47 +38,68 @@ ok($objLt->lt("z\x{30C}", "\x{292}")); # U+0292 EZH
 
 # 8
 
-ok($objLt->eq( "\x{328}",  "\x{307}"));
+ok($objLt->eq("a", "a\x{328}"));
+ok($objLt->eq("e", "e\x{328}"));
 ok($objLt->eq("e\x{328}", "e\x{307}"));
-ok($objLt->eq("i\x{328}", "i\x{307}"));
-ok($objLt->eq('i', 'y'));
+ok($objLt->eq("i", "i\x{328}"));
+ok($objLt->eq("y", "i\x{328}"));
+ok($objLt->eq("u", "u\x{328}"));
+ok($objLt->eq("u\x{328}", "u\x{304}"));
+
+# 15
 
 $objLt->change(level => 2);
 
-ok($objLt->lt( "\x{328}",  "\x{307}"));
+ok($objLt->lt("a", "a\x{328}"));
+ok($objLt->lt("e", "e\x{328}"));
 ok($objLt->lt("e\x{328}", "e\x{307}"));
-ok($objLt->lt("i\x{328}", "i\x{307}"));
-ok($objLt->lt('i', 'y'));
+ok($objLt->lt("i", "i\x{328}"));
+ok($objLt->gt("y", "i\x{328}"));
+ok($objLt->lt("u", "u\x{328}"));
+ok($objLt->lt("u\x{328}", "u\x{304}"));
 
-# 16
+# 22
 
 ok($objLt->eq("c\x{30C}", "C\x{30C}"));
 ok($objLt->eq("s\x{30C}", "S\x{30C}"));
 ok($objLt->eq("z\x{30C}", "Z\x{30C}"));
-ok($objLt->eq('y', 'Y'));
-ok($objLt->eq("e\x{307}", "E\x{307}"));
+
 ok($objLt->eq("i\x{307}", "I\x{307}"));
+ok($objLt->eq("y", "Y"));
+
 ok($objLt->eq("a\x{328}", "A\x{328}"));
 ok($objLt->eq("e\x{328}", "E\x{328}"));
+ok($objLt->eq("e\x{307}", "E\x{307}"));
 ok($objLt->eq("i\x{328}", "I\x{328}"));
 ok($objLt->eq("u\x{328}", "U\x{328}"));
+ok($objLt->eq("u\x{304}", "U\x{304}"));
+
+# 33
 
-# 26
+# according to CLDR tests
+ok($objLt->gt("I\x{307}\x{300}", "I\x{300}"));
+ok($objLt->gt("I\x{307}\x{301}", "I\x{301}"));
+ok($objLt->gt("I\x{307}\x{303}", "I\x{303}"));
+
+# 36
 
 $objLt->change(level => 3);
 
 ok($objLt->lt("c\x{30C}", "C\x{30C}"));
 ok($objLt->lt("s\x{30C}", "S\x{30C}"));
 ok($objLt->lt("z\x{30C}", "Z\x{30C}"));
-ok($objLt->lt('y', 'Y'));
-ok($objLt->lt("e\x{307}", "E\x{307}"));
+
 ok($objLt->lt("i\x{307}", "I\x{307}"));
+ok($objLt->lt("y", "Y"));
+
 ok($objLt->lt("a\x{328}", "A\x{328}"));
 ok($objLt->lt("e\x{328}", "E\x{328}"));
+ok($objLt->lt("e\x{307}", "E\x{307}"));
 ok($objLt->lt("i\x{328}", "I\x{328}"));
 ok($objLt->lt("u\x{328}", "U\x{328}"));
+ok($objLt->lt("u\x{304}", "U\x{304}"));
 
-# 36
+# 47
 
 ok($objLt->eq("c\x{30C}", "\x{10D}"));
 ok($objLt->eq("C\x{30C}", "\x{10C}"));
@@ -86,16 +107,15 @@ ok($objLt->eq("s\x{30C}", "\x{161}"));
 ok($objLt->eq("S\x{30C}", "\x{160}"));
 ok($objLt->eq("z\x{30C}", "\x{17E}"));
 ok($objLt->eq("Z\x{30C}", "\x{17D}"));
-ok($objLt->eq("e\x{307}", "\x{117}"));
-ok($objLt->eq("E\x{307}", "\x{116}"));
-ok($objLt->eq("I\x{307}", "\x{130}"));
 
-# 45
+ok($objLt->eq("I\x{307}", "\x{130}"));
 
 ok($objLt->eq("a\x{328}", "\x{105}"));
 ok($objLt->eq("A\x{328}", "\x{104}"));
 ok($objLt->eq("e\x{328}", "\x{119}"));
 ok($objLt->eq("E\x{328}", "\x{118}"));
+ok($objLt->eq("e\x{307}", "\x{117}"));
+ok($objLt->eq("E\x{307}", "\x{116}"));
 ok($objLt->eq("i\x{328}", "\x{12F}"));
 ok($objLt->eq("I\x{328}", "\x{12E}"));
 ok($objLt->eq("u\x{328}", "\x{173}"));
@@ -103,4 +123,10 @@ ok($objLt->eq("U\x{328}", "\x{172}"));
 ok($objLt->eq("u\x{304}", "\x{16B}"));
 ok($objLt->eq("U\x{304}", "\x{16A}"));
 
-# 55
+# 66
+
+ok($objLt->eq("i\x{307}\x{300}", "i\x{300}"));
+ok($objLt->eq("i\x{307}\x{301}", "i\x{301}"));
+ok($objLt->eq("i\x{307}\x{303}", "i\x{303}"));
+
+# 69
index 9b71a70..99aa5c4 100644 (file)
@@ -266,7 +266,10 @@ module can 'jump' out of @INC
 
 =item *
 
-L<Unicode::Collate> has been upgraded from version 0.78 to version 0.79.
+L<Unicode::Collate> has been upgraded from version 0.78 to version 0.80.
+
+Locales updated to CLDR 2.0: ar, be, bg, ha, hr, kk, lt.
+Newly supported locales: as, fi__phonebook, gu, hi, kn, kok and ln.
 
 =back