Update Unicode-Collate to CPAN version 0.81
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 23 Oct 2011 19:08:59 +0000 (20:08 +0100)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 23 Oct 2011 19:08:59 +0000 (20:08 +0100)
  [DELTA]

  0.81  Sun Oct 23 21:32:36 2011
    - U::C::Locale newly supports locales: ml, mr, or, pa.
    - added loc_ml.t, loc_mr.t, loc_or.t, loc_pa.t in t.
    - updated some locales to CLDR 2.0 : mk, mt, nb, nn, ro, ru.

32 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/kok.pl
cpan/Unicode-Collate/Collate/Locale/mk.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/ml.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/mr.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/mt.pl
cpan/Unicode-Collate/Collate/Locale/nb.pl
cpan/Unicode-Collate/Collate/Locale/nn.pl
cpan/Unicode-Collate/Collate/Locale/or.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/pa.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/ro.pl
cpan/Unicode-Collate/Collate/Locale/ru.pl
cpan/Unicode-Collate/README
cpan/Unicode-Collate/t/iglevel2.t
cpan/Unicode-Collate/t/ignor.t
cpan/Unicode-Collate/t/loc_kn.t
cpan/Unicode-Collate/t/loc_mk.t
cpan/Unicode-Collate/t/loc_ml.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_mr.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_mt.t
cpan/Unicode-Collate/t/loc_nb.t
cpan/Unicode-Collate/t/loc_nn.t
cpan/Unicode-Collate/t/loc_or.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_pa.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_ro.t
cpan/Unicode-Collate/t/loc_ru.t
cpan/Unicode-Collate/t/rearrang.t
pod/perldelta.pod

index 7498fd7..6a10d3a 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -2717,11 +2717,16 @@ 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/mk.pl      Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ml.pl      Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/mr.pl      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/mt.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/nb.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/nn.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/nso.pl                     Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/om.pl                      Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/or.pl      Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/pa.pl      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/pl.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale.pm                 Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/ro.pl                      Unicode::Collate
@@ -2811,11 +2816,15 @@ 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
+cpan/Unicode-Collate/t/loc_ml.t        Unicode::Collate
+cpan/Unicode-Collate/t/loc_mr.t        Unicode::Collate
 cpan/Unicode-Collate/t/loc_mt.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_nb.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_nn.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_nso.t                       Unicode::Collate
 cpan/Unicode-Collate/t/loc_om.t                        Unicode::Collate
+cpan/Unicode-Collate/t/loc_or.t        Unicode::Collate
+cpan/Unicode-Collate/t/loc_pa.t        Unicode::Collate
 cpan/Unicode-Collate/t/loc_pl.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_ro.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_ru.t                        Unicode::Collate
index 4f97e2a..ff4bb1b 100755 (executable)
@@ -1970,7 +1970,7 @@ use File::Glob qw(:case);
     'Unicode::Collate' =>
        {
        'MAINTAINER'    => 'sadahiro',
-       'DISTRIBUTION'  => 'SADAHIRO/Unicode-Collate-0.80.tar.gz',
+       'DISTRIBUTION'  => 'SADAHIRO/Unicode-Collate-0.81.tar.gz',
        'FILES'         => q[cpan/Unicode-Collate],
        'EXCLUDED'      => [ qr{N$},
                    qr{^data/},
index 4550a6d..0779628 100644 (file)
@@ -1,5 +1,10 @@
 Revision history for Perl module Unicode::Collate.
 
+0.81  Sun Oct 23 21:32:36 2011
+    - U::C::Locale newly supports locales: ml, mr, or, pa.
+    - added loc_ml.t, loc_mr.t, loc_or.t, loc_pa.t in t.
+    - updated some locales to CLDR 2.0 : mk, mt, nb, nn, ro, ru.
+
 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.
@@ -10,7 +15,7 @@ Revision history for Perl module Unicode::Collate.
             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.
+    - added loc_as.t, loc_fiph.t, loc_gu.t in t.
     - updated some locales to CLDR 2.0 : ar, be, bg.
 
 0.78  Mon Jul 25 21:29:50 2011
index f02f720..0ed7f2a 100644 (file)
@@ -14,7 +14,7 @@ use File::Spec;
 
 no warnings 'utf8';
 
-our $VERSION = '0.80';
+our $VERSION = '0.81';
 our $PACKAGE = __PACKAGE__;
 
 ### begin XS only ###
index 1f19fc1..6e23bff 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use Carp;
 use base qw(Unicode::Collate);
 
-our $VERSION = '0.80';
+our $VERSION = '0.81';
 
 use File::Spec;
 
@@ -14,12 +14,12 @@ 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 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
+   mk ml mr mt nb nn nso om or pa pl ro ru se sk sl sq sv
+   tn to tr uk vi wo yo zh
 );
    $LocaleFile{'default'} = '';
 # aliases
    $LocaleFile{'bs'} = 'hr';
-   $LocaleFile{'mk'} = 'ru';
    $LocaleFile{'sr'} = 'ru';
 # short file names
    $LocaleFile{'de__phonebook'}   = 'de_phone';
@@ -129,15 +129,19 @@ 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
-nn
-nso
-om
-pl
-ro
-ru
+mk             2.0
+ml             2.0
+mr             2.0 = 1.8.1
+mt             2.0
+nb             2.0 (type="standard")
+nn             2.0 (type="standard")
+nso            2.0 = 1.8.1
+om             2.0 = 1.8.1
+or             2.0
+pa             2.0 = 1.8.1
+pl             2.0 = 1.8.1
+ro             2.0 (type="standard")
+ru             2.0
 se
 sk
 sl
@@ -302,11 +306,15 @@ this method returns a string C<'default'> meaning no special tailoring.
       lt                Lithuanian
       lv                Latvian
       mk                Macedonian
+      ml                Malayalam
+      mr                Marathi
       mt                Maltese
       nb                Norwegian Bokmal
       nn                Norwegian Nynorsk
       nso               Northern Sotho
       om                Oromo
+      or                Oriya
+      pa                Punjabi
       pl                Polish
       ro                Romanian
       ru                Russian
@@ -331,6 +339,7 @@ this method returns a string C<'default'> meaning no special tailoring.
     ----------------------------------------------------------
 
 Locales according to the default UCA rules include
+chr (Cherokee),
 de (German),
 en (English),
 ga (Irish),
index 88e698a..940d542 100644 (file)
@@ -4,7 +4,7 @@
 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
+0915 094D 0937 ; [.1FBC.0020.0002.0915][.FFF2.0000.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
 ENTRY
 };
diff --git a/cpan/Unicode-Collate/Collate/Locale/mk.pl b/cpan/Unicode-Collate/Collate/Locale/mk.pl
new file mode 100644 (file)
index 0000000..2c89b4b
--- /dev/null
@@ -0,0 +1,44 @@
++{
+   suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0415, 0x0435, 0x0416, 0x0436,
+               0x0417, 0x0437, 0x0418, 0x0438, 0x0406, 0x0456, 0x041E, 0x043E,
+               0x04E8, 0x04E9, 0x0423, 0x0443, 0x0427, 0x0447, 0x042B, 0x044B,
+               0x042D, 0x044D, 0x0474, 0x0475],
+   entry => <<'ENTRY', # for DUCET v6.0.0
+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
+04D7      ; [.198B.0020.0002.0435][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER IE WITH BREVE
+04D6      ; [.198B.0020.0008.0415][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER IE WITH BREVE
+04DD      ; [.1997.0020.0002.0436][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+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      ; [.19C8.0020.0002.0456][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER YI
+0407      ; [.19C8.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
+045E      ; [.1A6B.0020.0002.0443][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER SHORT U
+040E      ; [.1A6B.0020.0008.0423][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER SHORT U
+04F1      ; [.1A6B.0020.0002.0443][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F0      ; [.1A6B.0020.0008.0423][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F3      ; [.1A6B.0020.0002.0443][.0000.004D.0002.030B] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F2      ; [.1A6B.0020.0008.0423][.0000.004D.0002.030B] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F5      ; [.1ABE.0020.0002.0447][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F4      ; [.1ABE.0020.0008.0427][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F9      ; [.1AF1.0020.0002.044B][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+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/ml.pl b/cpan/Unicode-Collate/Collate/Locale/ml.pl
new file mode 100644 (file)
index 0000000..82a854d
--- /dev/null
@@ -0,0 +1,22 @@
++{
+   entry => <<'ENTRY', # for DUCET v6.0.0
+0D3D      ; [.0000.00FC.0002.0D3D] # MALAYALAM SIGN AVAGRAHA
+0D57      ; [.21E3.0020.0002.0D57] # MALAYALAM AU LENGTH MARK
+0D4C      ; [.21E3.0020.0003.0D4C] # MALAYALAM VOWEL SIGN AU
+0D46 0D57 ; [.21E3.0020.0003.0D4C] # MALAYALAM VOWEL SIGN AU
+0D15 0D4D 200D ; [.21AE.0020.0002.0D15][.21E5.0021.0002.0D15] # <MALAYALAM LETTER KA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7F      ; [.21AE.0020.0003.0D7F][.21E5.0021.0002.0D7F] # MALAYALAM LETTER CHILLU K
+0D23 0D4D 200D ; [.21BC.0020.0002.0D23][.21E5.0021.0002.0D23] # <MALAYALAM LETTER NNA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7A      ; [.21BC.0020.0003.0D7A][.21E5.0021.0002.0D7A] # MALAYALAM LETTER CHILLU NN
+0D28 0D4D 200D ; [.21C1.0020.0002.0D28][.21E5.0021.0002.0D28] # <MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7B      ; [.21C1.0020.0003.0D7B][.21E5.0021.0002.0D7B] # MALAYALAM LETTER CHILLU N
+0D30 0D4D 200D ; [.21C9.0020.0002.0D30][.21E5.0021.0002.0D30] # <MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7C      ; [.21C9.0020.0003.0D7C][.21E5.0021.0002.0D7C] # MALAYALAM LETTER CHILLU RR
+0D32 0D4D 200D ; [.21CA.0020.0002.0D32][.21E5.0021.0002.0D32] # <MALAYALAM LETTER LA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7D      ; [.21CA.0020.0003.0D7D][.21E5.0021.0002.0D7D] # MALAYALAM LETTER CHILLU L
+0D33 0D4D 200D ; [.21D0.0020.0002.0D33][.21E5.0021.0002.0D33] # <MALAYALAM LETTER LLA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7E      ; [.21D0.0020.0003.0D7E][.21E5.0021.0002.0D7E] # MALAYALAM LETTER CHILLU LL
+0D02      ; [.21C7.0020.0002.0D2E][.21E5.0021.0002.0D02] # MALAYALAM SIGN ANUSVARA
+0D7B 0D4D ; [.21C1.0020.0002.0D28][.21E5.0020.0003.0D7B] # <MALAYALAM LETTER CHILLU N, MALAYALAM SIGN VIRAMA>
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/Collate/Locale/mr.pl b/cpan/Unicode-Collate/Collate/Locale/mr.pl
new file mode 100644 (file)
index 0000000..c29ff40
--- /dev/null
@@ -0,0 +1,11 @@
++{
+   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
+0934      ; [.1FBC.0020.0002.0933][.FFF1.0000.0000.0000][.0000.00DD.0002.093C] # DEVANAGARI LETTER LLLA
+0915 094D 0937 ; [.1FBC.0020.0002.0915][.FFF2.0000.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
+091C 094D 091E ; [.1FBC.0020.0002.091C][.FFF3.0000.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
+ENTRY
+};
index 2066428..867a251 100644 (file)
@@ -1,10 +1,10 @@
 +{
    upper_before_lower => 1,
    entry => <<'ENTRY', # for DUCET v6.0.0
-010B      ; [.15E3.0020.0002.010B] # LATIN SMALL LETTER C WITH DOT ABOVE
-0063 0307 ; [.15E3.0020.0002.010B] # LATIN SMALL LETTER C WITH DOT ABOVE
-010A      ; [.15E3.0020.0008.010A] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-0043 0307 ; [.15E3.0020.0008.010A] # LATIN CAPITAL LETTER C WITH DOT ABOVE
+010B      ; [.15D0.0020.0002.010B] # LATIN SMALL LETTER C WITH DOT ABOVE
+0063 0307 ; [.15D0.0020.0002.010B] # LATIN SMALL LETTER C WITH DOT ABOVE
+010A      ; [.15D0.0020.0008.010A] # LATIN CAPITAL LETTER C WITH DOT ABOVE
+0043 0307 ; [.15D0.0020.0008.010A] # LATIN CAPITAL LETTER C WITH DOT ABOVE
 0121      ; [.1643.0020.0002.0121] # LATIN SMALL LETTER G WITH DOT ABOVE
 0067 0307 ; [.1643.0020.0002.0121] # LATIN SMALL LETTER G WITH DOT ABOVE
 0120      ; [.1643.0020.0008.0120] # LATIN CAPITAL LETTER G WITH DOT ABOVE
index 9c25e1c..92ea4a4 100644 (file)
@@ -66,5 +66,8 @@
 212B      ; [.18BB.0020.0008.00C5] # ANGSTROM SIGN
 01FB      ; [.18BB.0020.0002.00E5][.0000.0032.0002.0301] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
 01FA      ; [.18BB.0020.0008.00C5][.0000.0032.0002.0301] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.18BB.0021.0002.0061] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0041 0061 ; [.18BB.0021.0007.0041] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0041 0041 ; [.18BB.0021.0008.0041] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
 ENTRY
 };
index 9c25e1c..92ea4a4 100644 (file)
@@ -66,5 +66,8 @@
 212B      ; [.18BB.0020.0008.00C5] # ANGSTROM SIGN
 01FB      ; [.18BB.0020.0002.00E5][.0000.0032.0002.0301] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
 01FA      ; [.18BB.0020.0008.00C5][.0000.0032.0002.0301] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.18BB.0021.0002.0061] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0041 0061 ; [.18BB.0021.0007.0041] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0041 0041 ; [.18BB.0021.0008.0041] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
 ENTRY
 };
diff --git a/cpan/Unicode-Collate/Collate/Locale/or.pl b/cpan/Unicode-Collate/Collate/Locale/or.pl
new file mode 100644 (file)
index 0000000..fdb2893
--- /dev/null
@@ -0,0 +1,9 @@
++{
+   entry => <<'ENTRY', # for DUCET v6.0.0
+0B01      ; [.20A5.0020.0002.0B01][.FFF1.0000.0000.0000] # ORIYA SIGN CANDRABINDU
+0B02      ; [.20A5.0020.0002.0B02][.FFF2.0000.0000.0000] # ORIYA SIGN ANUSVARA
+0B03      ; [.20A5.0020.0002.0B03][.FFF3.0000.0000.0000] # ORIYA SIGN VISARGA
+0B15 0B4D 0B37 ; [.20C9.0020.0002.0B15][.FFF1.0000.0000.0000] # <ORIYA LETTER KA, ORIYA SIGN VIRAMA, ORIYA LETTER SSA>
+0B5F      ; [.20BF.0021.0002.0B5F] # ORIYA LETTER YYA
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/Collate/Locale/pa.pl b/cpan/Unicode-Collate/Collate/Locale/pa.pl
new file mode 100644 (file)
index 0000000..cfe44bb
--- /dev/null
@@ -0,0 +1,26 @@
++{
+   entry => <<'ENTRY', # for DUCET v6.0.0
+0A71      ; [.0000.00E6.0002.0A71] # GURMUKHI ADDAK
+0A03      ; [.0000.00E5.0002.0A03] # GURMUKHI SIGN VISARGA
+0A70      ; [.0000.00E7.0002.0A70] # GURMUKHI TIPPI
+0A02      ; [.0000.00E8.0002.0A02] # GURMUKHI SIGN BINDI
+0A01      ; [.0000.00E9.0002.0A01] # GURMUKHI SIGN ADAK BINDI
+0A3C      ; [.0000.00EA.0002.0A3C] # GURMUKHI SIGN NUKTA
+0A33      ; [.2047.0020.0002.0A32][.0000.00EA.0002.0A3C] # GURMUKHI LETTER LLA
+0A36      ; [.2028.0020.0002.0A38][.0000.00EA.0002.0A3C] # GURMUKHI LETTER SHA
+0A59      ; [.202C.0020.0002.0A16][.0000.00EA.0002.0A3C] # GURMUKHI LETTER KHHA
+0A5A      ; [.202D.0020.0002.0A17][.0000.00EA.0002.0A3C] # GURMUKHI LETTER GHHA
+0A5B      ; [.2032.0020.0002.0A1C][.0000.00EA.0002.0A3C] # GURMUKHI LETTER ZA
+0A5E      ; [.2040.0020.0002.0A2B][.0000.00EA.0002.0A3C] # GURMUKHI LETTER FA
+0A4D      ; [.204A.0020.0002.0A4D] # GURMUKHI SIGN VIRAMA
+0A3E      ; [.204B.0020.0002.0A3E] # GURMUKHI VOWEL SIGN AA
+0A3F      ; [.204C.0020.0002.0A3F] # GURMUKHI VOWEL SIGN I
+0A40      ; [.204D.0020.0002.0A40] # GURMUKHI VOWEL SIGN II
+0A41      ; [.204E.0020.0002.0A41] # GURMUKHI VOWEL SIGN U
+0A42      ; [.204F.0020.0002.0A42] # GURMUKHI VOWEL SIGN UU
+0A47      ; [.2050.0020.0002.0A47] # GURMUKHI VOWEL SIGN EE
+0A48      ; [.2051.0020.0002.0A48] # GURMUKHI VOWEL SIGN AI
+0A4B      ; [.2052.0020.0002.0A4B] # GURMUKHI VOWEL SIGN OO
+0A4C      ; [.2053.0020.0002.0A4C] # GURMUKHI VOWEL SIGN AU
+ENTRY
+};
index 6c48424..0f22405 100644 (file)
 1EA8      ; [.15A5.0020.0008.00C2][.0000.0064.0002.0309] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
 1EAD      ; [.15A5.0020.0002.00E2][.0000.0070.0002.0323] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
 1EAC      ; [.15A5.0020.0008.00C2][.0000.0070.0002.0323] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-0111      ; [.15E5.0020.0002.0111] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.15E5.0020.0002.0111] # LATIN SMALL LETTER D WITH STROKE
-0110      ; [.15E5.0020.0008.0110] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.15E5.0020.0008.0110] # LATIN CAPITAL LETTER D WITH STROKE
 00EE      ; [.1681.0020.0002.00EE] # LATIN SMALL LETTER I WITH CIRCUMFLEX
 0069 0302 ; [.1681.0020.0002.00EE] # LATIN SMALL LETTER I WITH CIRCUMFLEX
 00CE      ; [.1681.0020.0008.00CE] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
@@ -52,9 +48,5 @@
 0054 0327 ; [.17CA.0020.0008.0162] # LATIN CAPITAL LETTER T WITH CEDILLA
 021A      ; [.17CA.0020.0008.021A] # LATIN CAPITAL LETTER T WITH COMMA BELOW
 0054 0326 ; [.17CA.0020.0008.021A] # LATIN CAPITAL LETTER T WITH COMMA BELOW
-017C      ; [.1845.0020.0002.017C] # LATIN SMALL LETTER Z WITH DOT ABOVE
-007A 0307 ; [.1845.0020.0002.017C] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B      ; [.1845.0020.0008.017B] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-005A 0307 ; [.1845.0020.0008.017B] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
 ENTRY
 };
index 54bccad..8b4c808 100644 (file)
@@ -1,10 +1,15 @@
 +{
-   suppress => [0x0400..0x0417, 0x041A..0x0437, 0x043A..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
 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
@@ -17,6 +22,8 @@
 0407      ; [.19C8.0020.0008.0406][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER YI
 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
@@ -31,5 +38,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
 };
index c6af50c..1218ec1 100644 (file)
@@ -1,4 +1,4 @@
-Unicode/Collate version 0.80
+Unicode/Collate version 0.81
 ===============================
 
 NAME
index f9fdbe0..75915ff 100644 (file)
@@ -80,8 +80,8 @@ ok($Collator->eq("camel", "came\x{1B01}l"));
 ok($Collator->eq("camel", "came\x{1B02}l"));
 
 #  primary: 1900 isn't zero
-ok($Collator->lt("\x{03C6}", "\x{03D5}"));
-ok($Collator->lt("\x{03D5}", "\x{03A6}"));
+ok($Collator->lt("\x{3C6}", "\x{3D5}"));
+ok($Collator->lt("\x{3D5}", "\x{3A6}"));
 
 # 24
 
index 13defcc..693bbfe 100644 (file)
@@ -119,10 +119,10 @@ ENTRIES
 ok($L3ignorable->lt("\cA", "!"));
 ok($L3ignorable->lt("\x{591}", "!"));
 ok($L3ignorable->eq("\cA", "\x{591}"));
-ok($L3ignorable->eq("\x{09C7}\x{09BE}A", "\x{09C7}\cA\x{09BE}A"));
-ok($L3ignorable->eq("\x{09C7}\x{09BE}A", "\x{09C7}\x{0591}\x{09BE}A"));
-ok($L3ignorable->eq("\x{09C7}\x{09BE}A", "\x{09C7}\x{1D165}\x{09BE}A"));
-ok($L3ignorable->eq("\x{09C7}\x{09BE}A", "\x{09CB}A"));
+ok($L3ignorable->eq("\x{9C7}\x{9BE}A", "\x{9C7}\cA\x{9BE}A"));
+ok($L3ignorable->eq("\x{9C7}\x{9BE}A", "\x{9C7}\x{591}\x{9BE}A"));
+ok($L3ignorable->eq("\x{9C7}\x{9BE}A", "\x{9C7}\x{1D165}\x{9BE}A"));
+ok($L3ignorable->eq("\x{9C7}\x{9BE}A", "\x{9CB}A"));
 ok($L3ignorable->lt("\x{1D1BB}", "\x{1D1BC}"));
 ok($L3ignorable->eq("\x{1D1BB}", "\x{1D1B9}"));
 ok($L3ignorable->eq("\x{1D1BC}", "\x{1D1BA}"));
@@ -148,14 +148,14 @@ ENTRIES
 
 ok($c->gt("ocho", "oc\x00\x00ho"));
 ok($c->gt("ocho", "oc\cAho"));
-ok($c->gt("ocho", "oc\x{034F}ho"));
-ok($c->gt("ocio", "oc\x{034F}ho"));
-ok($c->lt("ocgo", "oc\x{034F}ho"));
-ok($c->lt("oceo", "oc\x{034F}ho"));
+ok($c->gt("ocho", "oc\x{34F}ho"));
+ok($c->gt("ocio", "oc\x{34F}ho"));
+ok($c->lt("ocgo", "oc\x{34F}ho"));
+ok($c->lt("oceo", "oc\x{34F}ho"));
 
 ok($c->viewSortKey("ocho"),         "[0B4B 0A3F 0B4B | | |]");
 ok($c->viewSortKey("oc\x00\x00ho"), "[0B4B 0A3D 0AB9 0B4B | | |]");
 ok($c->viewSortKey("oc\cAho"),      "[0B4B 0A3D 0AB9 0B4B | | |]");
-ok($c->viewSortKey("oc\x{034F}ho"), "[0B4B 0A3D 0AB9 0B4B | | |]");
+ok($c->viewSortKey("oc\x{34F}ho"),  "[0B4B 0A3D 0AB9 0B4B | | |]");
 
 
index 3563f69..bb31bfb 100644 (file)
@@ -29,9 +29,9 @@ 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}"));
+ok($objKn->lt("\x{C94}", "\x{C82}"));
+ok($objKn->lt("\x{C82}", "\x{C83}"));
+ok($objKn->lt("\x{C83}", "\x{CF1}"));
+ok($objKn->lt("\x{CF1}", "\x{CF2}"));
+ok($objKn->lt("\x{CF2}", "\x{C95}"));
 
index 1df037e..61bdaed 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 130 };
+BEGIN { plan tests => 202 };
 
 use strict;
 use warnings;
@@ -29,10 +29,10 @@ ok($objMk->getlocale, 'mk');
 
 $objMk->change(level => 1);
 
-ok($objMk->gt("\x{4E5}", "\x{438}"));
-ok($objMk->gt("\x{4E4}", "\x{418}"));
-ok($objMk->gt("\x{439}", "\x{438}"));
-ok($objMk->gt("\x{419}", "\x{418}"));
+ok($objMk->gt("\x{453}", "\x{433}")); # not suppressed
+ok($objMk->gt("\x{403}", "\x{413}")); # not suppressed
+ok($objMk->gt("\x{45C}", "\x{43A}")); # not suppressed
+ok($objMk->gt("\x{40C}", "\x{41A}")); # not suppressed
 
 # 6
 
@@ -40,20 +40,36 @@ ok($objMk->eq("\x{4D1}", "\x{430}"));
 ok($objMk->eq("\x{4D0}", "\x{410}"));
 ok($objMk->eq("\x{4D3}", "\x{430}"));
 ok($objMk->eq("\x{4D2}", "\x{410}"));
-ok($objMk->eq("\x{453}", "\x{433}"));
-ok($objMk->eq("\x{403}", "\x{413}"));
+ok($objMk->eq("\x{4DB}", "\x{4D9}"));
+ok($objMk->eq("\x{4DA}", "\x{4D8}"));
+ok($objMk->eq("\x{450}", "\x{435}")); # not contraction
+ok($objMk->eq("\x{400}", "\x{415}")); # not contraction
+ok($objMk->eq("\x{451}", "\x{435}")); # not contraction
+ok($objMk->eq("\x{401}", "\x{415}")); # not contraction
 ok($objMk->eq("\x{4D7}", "\x{435}"));
 ok($objMk->eq("\x{4D6}", "\x{415}"));
+ok($objMk->eq("\x{4C2}", "\x{436}")); # not contraction
+ok($objMk->eq("\x{4C1}", "\x{416}")); # not contraction
 ok($objMk->eq("\x{4DD}", "\x{436}"));
 ok($objMk->eq("\x{4DC}", "\x{416}"));
 ok($objMk->eq("\x{4DF}", "\x{437}"));
 ok($objMk->eq("\x{4DE}", "\x{417}"));
+ok($objMk->eq("\x{45D}", "\x{438}")); # not contraction
+ok($objMk->eq("\x{40D}", "\x{418}")); # not contraction
+ok($objMk->eq("\x{4E3}", "\x{438}")); # not contraction
+ok($objMk->eq("\x{4E2}", "\x{418}")); # not contraction
+ok($objMk->eq("\x{4E5}", "\x{438}"));
+ok($objMk->eq("\x{4E4}", "\x{418}"));
 ok($objMk->eq("\x{457}", "\x{456}"));
 ok($objMk->eq("\x{407}", "\x{406}"));
+ok($objMk->eq("\x{439}", "\x{438}"));
+ok($objMk->eq("\x{419}", "\x{418}"));
 ok($objMk->eq("\x{4E7}", "\x{43E}"));
 ok($objMk->eq("\x{4E6}", "\x{41E}"));
-ok($objMk->eq("\x{45C}", "\x{43A}"));
-ok($objMk->eq("\x{40C}", "\x{41A}"));
+ok($objMk->eq("\x{4EB}", "\x{4E9}"));
+ok($objMk->eq("\x{4EA}", "\x{4E8}"));
+ok($objMk->eq("\x{4EF}", "\x{443}")); # not contraction
+ok($objMk->eq("\x{4EE}", "\x{423}")); # not contraction
 ok($objMk->eq("\x{45E}", "\x{443}"));
 ok($objMk->eq("\x{40E}", "\x{423}"));
 ok($objMk->eq("\x{4F1}", "\x{443}"));
@@ -66,8 +82,10 @@ ok($objMk->eq("\x{4F9}", "\x{44B}"));
 ok($objMk->eq("\x{4F8}", "\x{42B}"));
 ok($objMk->eq("\x{4ED}", "\x{44D}"));
 ok($objMk->eq("\x{4EC}", "\x{42D}"));
+ok($objMk->eq("\x{477}", "\x{475}"));
+ok($objMk->eq("\x{476}", "\x{474}"));
 
-# 36
+# 54
 
 $objMk->change(level => 2);
 
@@ -75,20 +93,36 @@ ok($objMk->gt("\x{4D1}", "\x{430}"));
 ok($objMk->gt("\x{4D0}", "\x{410}"));
 ok($objMk->gt("\x{4D3}", "\x{430}"));
 ok($objMk->gt("\x{4D2}", "\x{410}"));
-ok($objMk->gt("\x{453}", "\x{433}"));
-ok($objMk->gt("\x{403}", "\x{413}"));
+ok($objMk->gt("\x{4DB}", "\x{4D9}"));
+ok($objMk->gt("\x{4DA}", "\x{4D8}"));
+ok($objMk->gt("\x{450}", "\x{435}")); # not contraction
+ok($objMk->gt("\x{400}", "\x{415}")); # not contraction
+ok($objMk->gt("\x{451}", "\x{435}")); # not contraction
+ok($objMk->gt("\x{401}", "\x{415}")); # not contraction
 ok($objMk->gt("\x{4D7}", "\x{435}"));
 ok($objMk->gt("\x{4D6}", "\x{415}"));
+ok($objMk->gt("\x{4C2}", "\x{436}")); # not contraction
+ok($objMk->gt("\x{4C1}", "\x{416}")); # not contraction
 ok($objMk->gt("\x{4DD}", "\x{436}"));
 ok($objMk->gt("\x{4DC}", "\x{416}"));
 ok($objMk->gt("\x{4DF}", "\x{437}"));
 ok($objMk->gt("\x{4DE}", "\x{417}"));
+ok($objMk->gt("\x{45D}", "\x{438}")); # not contraction
+ok($objMk->gt("\x{40D}", "\x{418}")); # not contraction
+ok($objMk->gt("\x{4E3}", "\x{438}")); # not contraction
+ok($objMk->gt("\x{4E2}", "\x{418}")); # not contraction
+ok($objMk->gt("\x{4E5}", "\x{438}"));
+ok($objMk->gt("\x{4E4}", "\x{418}"));
 ok($objMk->gt("\x{457}", "\x{456}"));
 ok($objMk->gt("\x{407}", "\x{406}"));
+ok($objMk->gt("\x{439}", "\x{438}"));
+ok($objMk->gt("\x{419}", "\x{418}"));
 ok($objMk->gt("\x{4E7}", "\x{43E}"));
 ok($objMk->gt("\x{4E6}", "\x{41E}"));
-ok($objMk->gt("\x{45C}", "\x{43A}"));
-ok($objMk->gt("\x{40C}", "\x{41A}"));
+ok($objMk->gt("\x{4EB}", "\x{4E9}"));
+ok($objMk->gt("\x{4EA}", "\x{4E8}"));
+ok($objMk->gt("\x{4EF}", "\x{443}")); # not contraction
+ok($objMk->gt("\x{4EE}", "\x{423}")); # not contraction
 ok($objMk->gt("\x{45E}", "\x{443}"));
 ok($objMk->gt("\x{40E}", "\x{423}"));
 ok($objMk->gt("\x{4F1}", "\x{443}"));
@@ -101,77 +135,69 @@ ok($objMk->gt("\x{4F9}", "\x{44B}"));
 ok($objMk->gt("\x{4F8}", "\x{42B}"));
 ok($objMk->gt("\x{4ED}", "\x{44D}"));
 ok($objMk->gt("\x{4EC}", "\x{42D}"));
+ok($objMk->gt("\x{477}", "\x{475}"));
+ok($objMk->gt("\x{476}", "\x{474}"));
 
-# 66
+# 102
 
 $objMk->change(level => 3);
 
-ok($objMk->eq("\x{4D1}", "\x{430}\x{306}"));
-ok($objMk->eq("\x{4D0}", "\x{410}\x{306}"));
-ok($objMk->eq("\x{4D3}", "\x{430}\x{308}"));
-ok($objMk->eq("\x{4D2}", "\x{410}\x{308}"));
-ok($objMk->eq("\x{453}", "\x{433}\x{301}"));
-ok($objMk->eq("\x{403}", "\x{413}\x{301}"));
-ok($objMk->eq("\x{4D7}", "\x{435}\x{306}"));
-ok($objMk->eq("\x{4D6}", "\x{415}\x{306}"));
-ok($objMk->eq("\x{4DD}", "\x{436}\x{308}"));
-ok($objMk->eq("\x{4DC}", "\x{416}\x{308}"));
-ok($objMk->eq("\x{4DF}", "\x{437}\x{308}"));
-ok($objMk->eq("\x{4DE}", "\x{417}\x{308}"));
-ok($objMk->eq("\x{4E5}", "\x{438}\x{308}"));
-ok($objMk->eq("\x{4E4}", "\x{418}\x{308}"));
-ok($objMk->eq("\x{457}", "\x{456}\x{308}"));
-ok($objMk->eq("\x{407}", "\x{406}\x{308}"));
-ok($objMk->eq("\x{439}", "\x{438}\x{306}"));
-ok($objMk->eq("\x{419}", "\x{418}\x{306}"));
-ok($objMk->eq("\x{4E7}", "\x{43E}\x{308}"));
-ok($objMk->eq("\x{4E6}", "\x{41E}\x{308}"));
-ok($objMk->eq("\x{45C}", "\x{43A}\x{301}"));
-ok($objMk->eq("\x{40C}", "\x{41A}\x{301}"));
-ok($objMk->eq("\x{45E}", "\x{443}\x{306}"));
-ok($objMk->eq("\x{40E}", "\x{423}\x{306}"));
-ok($objMk->eq("\x{4F1}", "\x{443}\x{308}"));
-ok($objMk->eq("\x{4F0}", "\x{423}\x{308}"));
-ok($objMk->eq("\x{4F3}", "\x{443}\x{30B}"));
-ok($objMk->eq("\x{4F2}", "\x{423}\x{30B}"));
-ok($objMk->eq("\x{4F5}", "\x{447}\x{308}"));
-ok($objMk->eq("\x{4F4}", "\x{427}\x{308}"));
-ok($objMk->eq("\x{4F9}", "\x{44B}\x{308}"));
-ok($objMk->eq("\x{4F8}", "\x{42B}\x{308}"));
-ok($objMk->eq("\x{4ED}", "\x{44D}\x{308}"));
-ok($objMk->eq("\x{4EC}", "\x{42D}\x{308}"));
-
-# 100
-
-ok($objMk->eq("\x{4D1}", "\x{430}\0\x{306}"));
-ok($objMk->eq("\x{4D0}", "\x{410}\0\x{306}"));
-ok($objMk->eq("\x{4D3}", "\x{430}\0\x{308}"));
-ok($objMk->eq("\x{4D2}", "\x{410}\0\x{308}"));
-ok($objMk->eq("\x{453}", "\x{433}\0\x{301}"));
-ok($objMk->eq("\x{403}", "\x{413}\0\x{301}"));
-ok($objMk->eq("\x{4D7}", "\x{435}\0\x{306}"));
-ok($objMk->eq("\x{4D6}", "\x{415}\0\x{306}"));
-ok($objMk->eq("\x{4DD}", "\x{436}\0\x{308}"));
-ok($objMk->eq("\x{4DC}", "\x{416}\0\x{308}"));
-ok($objMk->eq("\x{4DF}", "\x{437}\0\x{308}"));
-ok($objMk->eq("\x{4DE}", "\x{417}\0\x{308}"));
-ok($objMk->eq("\x{457}", "\x{456}\0\x{308}"));
-ok($objMk->eq("\x{407}", "\x{406}\0\x{308}"));
-ok($objMk->eq("\x{4E7}", "\x{43E}\0\x{308}"));
-ok($objMk->eq("\x{4E6}", "\x{41E}\0\x{308}"));
-ok($objMk->eq("\x{45C}", "\x{43A}\0\x{301}"));
-ok($objMk->eq("\x{40C}", "\x{41A}\0\x{301}"));
-ok($objMk->eq("\x{45E}", "\x{443}\0\x{306}"));
-ok($objMk->eq("\x{40E}", "\x{423}\0\x{306}"));
-ok($objMk->eq("\x{4F1}", "\x{443}\0\x{308}"));
-ok($objMk->eq("\x{4F0}", "\x{423}\0\x{308}"));
-ok($objMk->eq("\x{4F3}", "\x{443}\0\x{30B}"));
-ok($objMk->eq("\x{4F2}", "\x{423}\0\x{30B}"));
-ok($objMk->eq("\x{4F5}", "\x{447}\0\x{308}"));
-ok($objMk->eq("\x{4F4}", "\x{427}\0\x{308}"));
-ok($objMk->eq("\x{4F9}", "\x{44B}\0\x{308}"));
-ok($objMk->eq("\x{4F8}", "\x{42B}\0\x{308}"));
-ok($objMk->eq("\x{4ED}", "\x{44D}\0\x{308}"));
-ok($objMk->eq("\x{4EC}", "\x{42D}\0\x{308}"));
-
-# 130
+ok($objMk->eq("\x{453}", "\x{433}\x{301}")); # not suppressed
+ok($objMk->eq("\x{403}", "\x{413}\x{301}")); # not suppressed
+ok($objMk->eq("\x{45C}", "\x{43A}\x{301}")); # not suppressed
+ok($objMk->eq("\x{40C}", "\x{41A}\x{301}")); # not suppressed
+
+# 106
+
+for my $i ("", "\0") {
+  ok($objMk->eq("\x{4D1}", "\x{430}$i\x{306}"));
+  ok($objMk->eq("\x{4D0}", "\x{410}$i\x{306}"));
+  ok($objMk->eq("\x{4D3}", "\x{430}$i\x{308}"));
+  ok($objMk->eq("\x{4D2}", "\x{410}$i\x{308}"));
+  ok($objMk->eq("\x{4DB}", "\x{4D9}$i\x{308}"));
+  ok($objMk->eq("\x{4DA}", "\x{4D8}$i\x{308}"));
+  ok($objMk->eq("\x{450}", "\x{435}$i\x{300}")); # not contraction
+  ok($objMk->eq("\x{400}", "\x{415}$i\x{300}")); # not contraction
+  ok($objMk->eq("\x{451}", "\x{435}$i\x{308}")); # not contraction
+  ok($objMk->eq("\x{401}", "\x{415}$i\x{308}")); # not contraction
+  ok($objMk->eq("\x{4D7}", "\x{435}$i\x{306}"));
+  ok($objMk->eq("\x{4D6}", "\x{415}$i\x{306}"));
+  ok($objMk->eq("\x{4C2}", "\x{436}$i\x{306}")); # not contraction
+  ok($objMk->eq("\x{4C1}", "\x{416}$i\x{306}")); # not contraction
+  ok($objMk->eq("\x{4DD}", "\x{436}$i\x{308}"));
+  ok($objMk->eq("\x{4DC}", "\x{416}$i\x{308}"));
+  ok($objMk->eq("\x{4DF}", "\x{437}$i\x{308}"));
+  ok($objMk->eq("\x{4DE}", "\x{417}$i\x{308}"));
+  ok($objMk->eq("\x{45D}", "\x{438}$i\x{300}")); # not contraction
+  ok($objMk->eq("\x{40D}", "\x{418}$i\x{300}")); # not contraction
+  ok($objMk->eq("\x{4E3}", "\x{438}$i\x{304}")); # not contraction
+  ok($objMk->eq("\x{4E2}", "\x{418}$i\x{304}")); # not contraction
+  ok($objMk->eq("\x{4E5}", "\x{438}$i\x{308}"));
+  ok($objMk->eq("\x{4E4}", "\x{418}$i\x{308}"));
+  ok($objMk->eq("\x{457}", "\x{456}$i\x{308}"));
+  ok($objMk->eq("\x{407}", "\x{406}$i\x{308}"));
+  ok($objMk->eq("\x{439}", "\x{438}$i\x{306}"));
+  ok($objMk->eq("\x{419}", "\x{418}$i\x{306}"));
+  ok($objMk->eq("\x{4E7}", "\x{43E}$i\x{308}"));
+  ok($objMk->eq("\x{4E6}", "\x{41E}$i\x{308}"));
+  ok($objMk->eq("\x{4EB}", "\x{4E9}$i\x{308}"));
+  ok($objMk->eq("\x{4EA}", "\x{4E8}$i\x{308}"));
+  ok($objMk->eq("\x{4EF}", "\x{443}$i\x{304}")); # not contraction
+  ok($objMk->eq("\x{4EE}", "\x{423}$i\x{304}")); # not contraction
+  ok($objMk->eq("\x{45E}", "\x{443}$i\x{306}"));
+  ok($objMk->eq("\x{40E}", "\x{423}$i\x{306}"));
+  ok($objMk->eq("\x{4F1}", "\x{443}$i\x{308}"));
+  ok($objMk->eq("\x{4F0}", "\x{423}$i\x{308}"));
+  ok($objMk->eq("\x{4F3}", "\x{443}$i\x{30B}"));
+  ok($objMk->eq("\x{4F2}", "\x{423}$i\x{30B}"));
+  ok($objMk->eq("\x{4F5}", "\x{447}$i\x{308}"));
+  ok($objMk->eq("\x{4F4}", "\x{427}$i\x{308}"));
+  ok($objMk->eq("\x{4F9}", "\x{44B}$i\x{308}"));
+  ok($objMk->eq("\x{4F8}", "\x{42B}$i\x{308}"));
+  ok($objMk->eq("\x{4ED}", "\x{44D}$i\x{308}"));
+  ok($objMk->eq("\x{4EC}", "\x{42D}$i\x{308}"));
+  ok($objMk->eq("\x{477}", "\x{475}$i\x{30F}"));
+  ok($objMk->eq("\x{476}", "\x{474}$i\x{30F}"));
+}
+
+# 202
diff --git a/cpan/Unicode-Collate/t/loc_ml.t b/cpan/Unicode-Collate/t/loc_ml.t
new file mode 100644 (file)
index 0000000..9ffdde7
--- /dev/null
@@ -0,0 +1,86 @@
+
+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 => 36 };
+
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objMl = Unicode::Collate::Locale->
+    new(locale => 'ML', normalization => undef);
+
+ok($objMl->getlocale, 'ml');
+
+$objMl->change(level => 1);
+
+ok($objMl->lt("\x{D4B}", "\x{D57}"));
+
+# 3
+
+ok($objMl->eq("\x{D03}",        "\x{D3D}"));
+ok($objMl->eq("\x{D15}\x{D4D}", "\x{D15}\x{D4D}\x{200D}"));
+ok($objMl->eq("\x{D23}\x{D4D}", "\x{D23}\x{D4D}\x{200D}"));
+ok($objMl->eq("\x{D28}\x{D4D}", "\x{D28}\x{D4D}\x{200D}"));
+ok($objMl->eq("\x{D30}\x{D4D}", "\x{D30}\x{D4D}\x{200D}"));
+ok($objMl->eq("\x{D32}\x{D4D}", "\x{D32}\x{D4D}\x{200D}"));
+ok($objMl->eq("\x{D33}\x{D4D}", "\x{D33}\x{D4D}\x{200D}"));
+ok($objMl->eq("\x{D2E}\x{D4D}", "\x{D02}"));
+
+# 11
+
+$objMl->change(level => 2);
+
+ok($objMl->lt("\x{D03}",        "\x{D3D}"));
+ok($objMl->lt("\x{D15}\x{D4D}", "\x{D15}\x{D4D}\x{200D}"));
+ok($objMl->lt("\x{D23}\x{D4D}", "\x{D23}\x{D4D}\x{200D}"));
+ok($objMl->lt("\x{D28}\x{D4D}", "\x{D28}\x{D4D}\x{200D}"));
+ok($objMl->lt("\x{D30}\x{D4D}", "\x{D30}\x{D4D}\x{200D}"));
+ok($objMl->lt("\x{D32}\x{D4D}", "\x{D32}\x{D4D}\x{200D}"));
+ok($objMl->lt("\x{D33}\x{D4D}", "\x{D33}\x{D4D}\x{200D}"));
+ok($objMl->lt("\x{D2E}\x{D4D}", "\x{D02}"));
+
+# 19
+
+ok($objMl->eq("\x{D57}",                "\x{D4C}"));
+ok($objMl->eq("\x{D15}\x{D4D}\x{200D}", "\x{D7F}"));
+ok($objMl->eq("\x{D23}\x{D4D}\x{200D}", "\x{D7A}"));
+ok($objMl->eq("\x{D28}\x{D4D}\x{200D}", "\x{D7B}"));
+ok($objMl->eq("\x{D30}\x{D4D}\x{200D}", "\x{D7C}"));
+ok($objMl->eq("\x{D32}\x{D4D}\x{200D}", "\x{D7D}"));
+ok($objMl->eq("\x{D33}\x{D4D}\x{200D}", "\x{D7E}"));
+ok($objMl->eq("\x{D28}\x{D4D}",         "\x{D7B}\x{D4D}"));
+
+# 27
+
+$objMl->change(level => 3);
+
+ok($objMl->lt("\x{D57}",                "\x{D4C}"));
+ok($objMl->lt("\x{D15}\x{D4D}\x{200D}", "\x{D7F}"));
+ok($objMl->lt("\x{D23}\x{D4D}\x{200D}", "\x{D7A}"));
+ok($objMl->lt("\x{D28}\x{D4D}\x{200D}", "\x{D7B}"));
+ok($objMl->lt("\x{D30}\x{D4D}\x{200D}", "\x{D7C}"));
+ok($objMl->lt("\x{D32}\x{D4D}\x{200D}", "\x{D7D}"));
+ok($objMl->lt("\x{D33}\x{D4D}\x{200D}", "\x{D7E}"));
+ok($objMl->lt("\x{D28}\x{D4D}",         "\x{D7B}\x{D4D}"));
+
+# 35
+
+ok($objMl->eq("\x{D4C}", "\x{D46}\x{D57}"));
+
+# 36
diff --git a/cpan/Unicode-Collate/t/loc_mr.t b/cpan/Unicode-Collate/t/loc_mr.t
new file mode 100644 (file)
index 0000000..d1e07a5
--- /dev/null
@@ -0,0 +1,56 @@
+
+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 => 14 };
+
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objMr = Unicode::Collate::Locale->
+    new(locale => 'MR', normalization => undef);
+
+ok($objMr->getlocale, 'mr');
+
+$objMr->change(level => 1);
+
+ok($objMr->lt("\x{950}", "\x{902}"));
+ok($objMr->lt("\x{902}", "\x{903}"));
+ok($objMr->lt("\x{903}", "\x{972}"));
+
+ok($objMr->eq("\x{902}", "\x{901}"));
+
+ok($objMr->lt("\x{939}", "\x{933}"));
+ok($objMr->lt("\x{933}", "\x{915}\x{94D}\x{937}"));
+ok($objMr->lt("\x{915}\x{94D}\x{937}", "\x{91C}\x{94D}\x{91E}"));
+ok($objMr->lt("\x{91C}\x{94D}\x{91E}", "\x{93D}"));
+
+ok($objMr->eq("\x{933}", "\x{934}"));
+
+# 11
+
+$objMr->change(level => 2);
+
+ok($objMr->lt("\x{902}", "\x{901}"));
+ok($objMr->lt("\x{933}", "\x{934}"));
+
+$objMr->change(level => 3);
+
+ok($objMr->eq("\x{933}\x{93C}", "\x{934}"));
+
+# 14
index f3e15ba..3f027bb 100644 (file)
@@ -29,8 +29,8 @@ ok($objMt->getlocale, 'mt');
 
 $objMt->change(level => 1);
 
-ok($objMt->lt("c", "c\x{307}"));
-ok($objMt->gt("d", "c\x{307}"));
+ok($objMt->lt("b", "c\x{307}"));
+ok($objMt->gt("c", "c\x{307}"));
 ok($objMt->lt("f", "g\x{307}"));
 ok($objMt->gt("g", "g\x{307}"));
 ok($objMt->lt("g", "gh\x{335}"));
index 4de166a..9cccbd5 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 95 };
+BEGIN { plan tests => 101 };
 
 use strict;
 use warnings;
@@ -62,8 +62,9 @@ ok($objNb->eq($auml, "\x{119}"));
 ok($objNb->eq($ostk, $ouml));
 ok($objNb->eq($ouml, "\x{151}"));
 ok($objNb->eq("\x{151}", "\x{153}"));
+ok($objNb->eq($arng, 'aa'));
 
-# 15
+# 16
 
 $objNb->change(level => 2);
 
@@ -76,8 +77,9 @@ ok($objNb->lt($auml, "\x{119}"));
 ok($objNb->lt($ostk, $ouml));
 ok($objNb->lt($ouml, "\x{151}"));
 ok($objNb->lt("\x{151}", "\x{153}"));
+ok($objNb->lt($arng, 'aa'));
 
-# 24
+# 26
 
 ok($objNb->eq("\x{111}", "\x{110}"));
 ok($objNb->eq($eth,  $ETH));
@@ -95,8 +97,10 @@ ok($objNb->eq($ouml, $Ouml));
 ok($objNb->eq("\x{151}", "\x{150}"));
 ok($objNb->eq("\x{153}", "\x{152}"));
 ok($objNb->eq($arng, $Arng));
+ok($objNb->eq('aa', 'Aa'));
+ok($objNb->eq('Aa', 'AA'));
 
-# 40
+# 44
 
 $objNb->change(level => 3);
 
@@ -116,8 +120,10 @@ ok($objNb->lt($ouml, $Ouml));
 ok($objNb->lt("\x{151}", "\x{150}"));
 ok($objNb->lt("\x{153}", "\x{152}"));
 ok($objNb->lt($arng, $Arng));
+ok($objNb->lt('aa', 'Aa'));
+ok($objNb->lt('Aa', 'AA'));
 
-# 56
+# 62
 
 ok($objNb->eq("d\x{335}", "\x{111}"));
 ok($objNb->eq("D\x{335}", "\x{110}"));
@@ -138,7 +144,7 @@ ok($objNb->eq("O\x{30B}", "\x{150}"));
 ok($objNb->eq("a\x{30A}", $arng));
 ok($objNb->eq("A\x{30A}", $Arng));
 
-# 74
+# 80
 
 ok($objNb->eq("u\x{308}\x{300}", "\x{1DC}"));
 ok($objNb->eq("U\x{308}\x{300}", "\x{1DB}"));
@@ -162,4 +168,4 @@ ok($objNb->eq("A\x{30A}", "\x{212B}"));
 ok($objNb->eq("a\x{30A}\x{301}", "\x{1FB}"));
 ok($objNb->eq("A\x{30A}\x{301}", "\x{1FA}"));
 
-# 95
+# 101
index 6af4447..bed31a0 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 95 };
+BEGIN { plan tests => 101 };
 
 use strict;
 use warnings;
@@ -62,8 +62,9 @@ ok($objNn->eq($auml, "\x{119}"));
 ok($objNn->eq($ostk, $ouml));
 ok($objNn->eq($ouml, "\x{151}"));
 ok($objNn->eq("\x{151}", "\x{153}"));
+ok($objNn->eq($arng, 'aa'));
 
-# 15
+# 16
 
 $objNn->change(level => 2);
 
@@ -76,8 +77,9 @@ ok($objNn->lt($auml, "\x{119}"));
 ok($objNn->lt($ostk, $ouml));
 ok($objNn->lt($ouml, "\x{151}"));
 ok($objNn->lt("\x{151}", "\x{153}"));
+ok($objNn->lt($arng, 'aa'));
 
-# 24
+# 26
 
 ok($objNn->eq("\x{111}", "\x{110}"));
 ok($objNn->eq($eth,  $ETH));
@@ -95,8 +97,10 @@ ok($objNn->eq($ouml, $Ouml));
 ok($objNn->eq("\x{151}", "\x{150}"));
 ok($objNn->eq("\x{153}", "\x{152}"));
 ok($objNn->eq($arng, $Arng));
+ok($objNn->eq('aa', 'Aa'));
+ok($objNn->eq('Aa', 'AA'));
 
-# 40
+# 44
 
 $objNn->change(level => 3);
 
@@ -116,8 +120,10 @@ ok($objNn->lt($ouml, $Ouml));
 ok($objNn->lt("\x{151}", "\x{150}"));
 ok($objNn->lt("\x{153}", "\x{152}"));
 ok($objNn->lt($arng, $Arng));
+ok($objNn->lt('aa', 'Aa'));
+ok($objNn->lt('Aa', 'AA'));
 
-# 56
+# 62
 
 ok($objNn->eq("d\x{335}", "\x{111}"));
 ok($objNn->eq("D\x{335}", "\x{110}"));
@@ -138,7 +144,7 @@ ok($objNn->eq("O\x{30B}", "\x{150}"));
 ok($objNn->eq("a\x{30A}", $arng));
 ok($objNn->eq("A\x{30A}", $Arng));
 
-# 74
+# 80
 
 ok($objNn->eq("u\x{308}\x{300}", "\x{1DC}"));
 ok($objNn->eq("U\x{308}\x{300}", "\x{1DB}"));
@@ -162,4 +168,4 @@ ok($objNn->eq("A\x{30A}", "\x{212B}"));
 ok($objNn->eq("a\x{30A}\x{301}", "\x{1FB}"));
 ok($objNn->eq("A\x{30A}\x{301}", "\x{1FA}"));
 
-# 95
+# 101
diff --git a/cpan/Unicode-Collate/t/loc_or.t b/cpan/Unicode-Collate/t/loc_or.t
new file mode 100644 (file)
index 0000000..1f94fd9
--- /dev/null
@@ -0,0 +1,45 @@
+
+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 => 10 };
+
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objOr = Unicode::Collate::Locale->
+    new(locale => 'OR', normalization => undef);
+
+ok($objOr->getlocale, 'or');
+
+$objOr->change(level => 1);
+
+ok($objOr->lt("\x{B14}", "\x{B01}"));
+ok($objOr->lt("\x{B01}", "\x{B02}"));
+ok($objOr->lt("\x{B02}", "\x{B03}"));
+ok($objOr->lt("\x{B03}", "\x{B15}"));
+
+ok($objOr->lt("\x{B39}", "\x{B15}\x{B4D}\x{B37}"));
+ok($objOr->gt("\x{B3D}", "\x{B15}\x{B4D}\x{B37}"));
+
+ok($objOr->eq("\x{B2F}", "\x{B5F}"));
+
+$objOr->change(level => 2);
+
+ok($objOr->lt("\x{B2F}", "\x{B5F}"));
+
diff --git a/cpan/Unicode-Collate/t/loc_pa.t b/cpan/Unicode-Collate/t/loc_pa.t
new file mode 100644 (file)
index 0000000..811ee78
--- /dev/null
@@ -0,0 +1,88 @@
+
+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 => 41 };
+
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objPa = Unicode::Collate::Locale->
+    new(locale => 'PA', normalization => undef);
+
+my $default = Unicode::Collate::Locale->
+    new(normalization => undef);
+
+ok($objPa->getlocale, 'pa');
+ok($default->getlocale, 'default');
+
+$objPa->change(level => 1);
+
+ok($objPa->lt("\x{A5C}", "\x{A4D}"));
+ok($objPa->lt("\x{A4D}", "\x{A3E}"));
+
+# 5
+
+# RRA and Vowel Signs
+for my $o ($objPa, $default) {
+  ok($o->lt("\x{A5C}", "\x{A3E}"));
+  ok($o->lt("\x{A3E}", "\x{A3F}"));
+  ok($o->lt("\x{A3F}", "\x{A40}"));
+  ok($o->lt("\x{A40}", "\x{A41}"));
+  ok($o->lt("\x{A41}", "\x{A42}"));
+  ok($o->lt("\x{A42}", "\x{A47}"));
+  ok($o->lt("\x{A47}", "\x{A48}"));
+  ok($o->lt("\x{A48}", "\x{A4B}"));
+  ok($o->lt("\x{A4B}", "\x{A4C}"));
+}
+
+# 23
+
+ok($default->lt("\x{A4C}", "\x{A4D}"));
+
+# 24
+
+ok($objPa->eq("\x{A03}", ""));
+ok($objPa->eq("\x{A03}", "\x{A71}"));
+ok($objPa->eq("\x{A71}", "\x{A70}"));
+ok($objPa->eq("\x{A70}", "\x{A02}"));
+ok($objPa->eq("\x{A02}", "\x{A01}"));
+ok($objPa->eq("\x{A01}", "\x{A3C}"));
+
+# 30
+
+$objPa->change(level => 2);
+
+ok($objPa->lt("\x{A03}", "\x{A71}"));
+ok($objPa->lt("\x{A71}", "\x{A70}"));
+ok($objPa->lt("\x{A70}", "\x{A02}"));
+ok($objPa->lt("\x{A02}", "\x{A01}"));
+ok($objPa->lt("\x{A01}", "\x{A3C}"));
+
+# 35
+
+$objPa->change(level => 3);
+
+ok($objPa->eq("\x{A33}", "\x{A32}\x{A3C}"));
+ok($objPa->eq("\x{A36}", "\x{A38}\x{A3C}"));
+ok($objPa->eq("\x{A59}", "\x{A16}\x{A3C}"));
+ok($objPa->eq("\x{A5A}", "\x{A17}\x{A3C}"));
+ok($objPa->eq("\x{A5B}", "\x{A1C}\x{A3C}"));
+ok($objPa->eq("\x{A5E}", "\x{A2B}\x{A3C}"));
+
+# 41
index 9a88320..ec1b16b 100644 (file)
@@ -32,7 +32,7 @@ $objRo->change(level => 1);
 ok($objRo->lt("a", "a\x{306}"));
 ok($objRo->lt("a\x{306}", "a\x{302}"));
 ok($objRo->gt("b", "a\x{302}"));
-ok($objRo->lt("d", "d\x{335}"));
+ok($objRo->eq("d", "d\x{335}")); # not tailored in CLDR 2.0
 ok($objRo->gt("e", "d\x{335}"));
 ok($objRo->lt("i", "i\x{302}"));
 ok($objRo->gt("j", "i\x{302}"));
@@ -40,7 +40,7 @@ ok($objRo->lt("s", "s\x{327}"));
 ok($objRo->gt("t", "s\x{327}"));
 ok($objRo->lt("t", "t\x{327}"));
 ok($objRo->gt("u", "t\x{327}"));
-ok($objRo->lt("z", "z\x{307}"));
+ok($objRo->eq("z", "z\x{307}")); # not tailored in CLDR 2.0
 ok($objRo->lt("z\x{307}", "\x{292}")); # U+0292 EZH
 
 # 15
index bdd81cb..a814897 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 130 };
+BEGIN { plan tests => 202 };
 
 use strict;
 use warnings;
@@ -29,10 +29,10 @@ ok($objRu->getlocale, 'ru');
 
 $objRu->change(level => 1);
 
-ok($objRu->gt("\x{4E5}", "\x{438}"));
-ok($objRu->gt("\x{4E4}", "\x{418}"));
-ok($objRu->gt("\x{439}", "\x{438}"));
-ok($objRu->gt("\x{419}", "\x{418}"));
+ok($objRu->gt("\x{4E5}", "\x{438}")); # not suppressed
+ok($objRu->gt("\x{4E4}", "\x{418}")); # not suppressed
+ok($objRu->gt("\x{439}", "\x{438}")); # not suppressed
+ok($objRu->gt("\x{419}", "\x{418}")); # not suppressed
 
 # 6
 
@@ -40,20 +40,36 @@ ok($objRu->eq("\x{4D1}", "\x{430}"));
 ok($objRu->eq("\x{4D0}", "\x{410}"));
 ok($objRu->eq("\x{4D3}", "\x{430}"));
 ok($objRu->eq("\x{4D2}", "\x{410}"));
+ok($objRu->eq("\x{4DB}", "\x{4D9}"));
+ok($objRu->eq("\x{4DA}", "\x{4D8}"));
 ok($objRu->eq("\x{453}", "\x{433}"));
 ok($objRu->eq("\x{403}", "\x{413}"));
+ok($objRu->eq("\x{450}", "\x{435}")); # not contraction
+ok($objRu->eq("\x{400}", "\x{415}")); # not contraction
+ok($objRu->eq("\x{451}", "\x{435}")); # not contraction
+ok($objRu->eq("\x{401}", "\x{415}")); # not contraction
 ok($objRu->eq("\x{4D7}", "\x{435}"));
 ok($objRu->eq("\x{4D6}", "\x{415}"));
+ok($objRu->eq("\x{4C2}", "\x{436}")); # not contraction
+ok($objRu->eq("\x{4C1}", "\x{416}")); # not contraction
 ok($objRu->eq("\x{4DD}", "\x{436}"));
 ok($objRu->eq("\x{4DC}", "\x{416}"));
 ok($objRu->eq("\x{4DF}", "\x{437}"));
 ok($objRu->eq("\x{4DE}", "\x{417}"));
+ok($objRu->eq("\x{45D}", "\x{438}")); # not contraction
+ok($objRu->eq("\x{40D}", "\x{418}")); # not contraction
+ok($objRu->eq("\x{4E3}", "\x{438}")); # not contraction
+ok($objRu->eq("\x{4E2}", "\x{418}")); # not contraction
 ok($objRu->eq("\x{457}", "\x{456}"));
 ok($objRu->eq("\x{407}", "\x{406}"));
 ok($objRu->eq("\x{4E7}", "\x{43E}"));
 ok($objRu->eq("\x{4E6}", "\x{41E}"));
+ok($objRu->eq("\x{4EB}", "\x{4E9}"));
+ok($objRu->eq("\x{4EA}", "\x{4E8}"));
 ok($objRu->eq("\x{45C}", "\x{43A}"));
 ok($objRu->eq("\x{40C}", "\x{41A}"));
+ok($objRu->eq("\x{4EF}", "\x{443}")); # not contraction
+ok($objRu->eq("\x{4EE}", "\x{423}")); # not contraction
 ok($objRu->eq("\x{45E}", "\x{443}"));
 ok($objRu->eq("\x{40E}", "\x{423}"));
 ok($objRu->eq("\x{4F1}", "\x{443}"));
@@ -66,8 +82,10 @@ ok($objRu->eq("\x{4F9}", "\x{44B}"));
 ok($objRu->eq("\x{4F8}", "\x{42B}"));
 ok($objRu->eq("\x{4ED}", "\x{44D}"));
 ok($objRu->eq("\x{4EC}", "\x{42D}"));
+ok($objRu->eq("\x{477}", "\x{475}"));
+ok($objRu->eq("\x{476}", "\x{474}"));
 
-# 36
+# 54
 
 $objRu->change(level => 2);
 
@@ -75,20 +93,36 @@ ok($objRu->gt("\x{4D1}", "\x{430}"));
 ok($objRu->gt("\x{4D0}", "\x{410}"));
 ok($objRu->gt("\x{4D3}", "\x{430}"));
 ok($objRu->gt("\x{4D2}", "\x{410}"));
+ok($objRu->gt("\x{4DB}", "\x{4D9}"));
+ok($objRu->gt("\x{4DA}", "\x{4D8}"));
 ok($objRu->gt("\x{453}", "\x{433}"));
 ok($objRu->gt("\x{403}", "\x{413}"));
+ok($objRu->gt("\x{450}", "\x{435}")); # not contraction
+ok($objRu->gt("\x{400}", "\x{415}")); # not contraction
+ok($objRu->gt("\x{451}", "\x{435}")); # not contraction
+ok($objRu->gt("\x{401}", "\x{415}")); # not contraction
 ok($objRu->gt("\x{4D7}", "\x{435}"));
 ok($objRu->gt("\x{4D6}", "\x{415}"));
+ok($objRu->gt("\x{4C2}", "\x{436}")); # not contraction
+ok($objRu->gt("\x{4C1}", "\x{416}")); # not contraction
 ok($objRu->gt("\x{4DD}", "\x{436}"));
 ok($objRu->gt("\x{4DC}", "\x{416}"));
 ok($objRu->gt("\x{4DF}", "\x{437}"));
 ok($objRu->gt("\x{4DE}", "\x{417}"));
+ok($objRu->gt("\x{45D}", "\x{438}")); # not contraction
+ok($objRu->gt("\x{40D}", "\x{418}")); # not contraction
+ok($objRu->gt("\x{4E3}", "\x{438}")); # not contraction
+ok($objRu->gt("\x{4E2}", "\x{418}")); # not contraction
 ok($objRu->gt("\x{457}", "\x{456}"));
 ok($objRu->gt("\x{407}", "\x{406}"));
 ok($objRu->gt("\x{4E7}", "\x{43E}"));
 ok($objRu->gt("\x{4E6}", "\x{41E}"));
+ok($objRu->gt("\x{4EB}", "\x{4E9}"));
+ok($objRu->gt("\x{4EA}", "\x{4E8}"));
 ok($objRu->gt("\x{45C}", "\x{43A}"));
 ok($objRu->gt("\x{40C}", "\x{41A}"));
+ok($objRu->gt("\x{4EF}", "\x{443}")); # not contraction
+ok($objRu->gt("\x{4EE}", "\x{423}")); # not contraction
 ok($objRu->gt("\x{45E}", "\x{443}"));
 ok($objRu->gt("\x{40E}", "\x{423}"));
 ok($objRu->gt("\x{4F1}", "\x{443}"));
@@ -101,77 +135,69 @@ ok($objRu->gt("\x{4F9}", "\x{44B}"));
 ok($objRu->gt("\x{4F8}", "\x{42B}"));
 ok($objRu->gt("\x{4ED}", "\x{44D}"));
 ok($objRu->gt("\x{4EC}", "\x{42D}"));
+ok($objRu->gt("\x{477}", "\x{475}"));
+ok($objRu->gt("\x{476}", "\x{474}"));
 
-# 66
+# 102
 
 $objRu->change(level => 3);
 
-ok($objRu->eq("\x{4D1}", "\x{430}\x{306}"));
-ok($objRu->eq("\x{4D0}", "\x{410}\x{306}"));
-ok($objRu->eq("\x{4D3}", "\x{430}\x{308}"));
-ok($objRu->eq("\x{4D2}", "\x{410}\x{308}"));
-ok($objRu->eq("\x{453}", "\x{433}\x{301}"));
-ok($objRu->eq("\x{403}", "\x{413}\x{301}"));
-ok($objRu->eq("\x{4D7}", "\x{435}\x{306}"));
-ok($objRu->eq("\x{4D6}", "\x{415}\x{306}"));
-ok($objRu->eq("\x{4DD}", "\x{436}\x{308}"));
-ok($objRu->eq("\x{4DC}", "\x{416}\x{308}"));
-ok($objRu->eq("\x{4DF}", "\x{437}\x{308}"));
-ok($objRu->eq("\x{4DE}", "\x{417}\x{308}"));
-ok($objRu->eq("\x{4E5}", "\x{438}\x{308}"));
-ok($objRu->eq("\x{4E4}", "\x{418}\x{308}"));
-ok($objRu->eq("\x{457}", "\x{456}\x{308}"));
-ok($objRu->eq("\x{407}", "\x{406}\x{308}"));
-ok($objRu->eq("\x{439}", "\x{438}\x{306}"));
-ok($objRu->eq("\x{419}", "\x{418}\x{306}"));
-ok($objRu->eq("\x{4E7}", "\x{43E}\x{308}"));
-ok($objRu->eq("\x{4E6}", "\x{41E}\x{308}"));
-ok($objRu->eq("\x{45C}", "\x{43A}\x{301}"));
-ok($objRu->eq("\x{40C}", "\x{41A}\x{301}"));
-ok($objRu->eq("\x{45E}", "\x{443}\x{306}"));
-ok($objRu->eq("\x{40E}", "\x{423}\x{306}"));
-ok($objRu->eq("\x{4F1}", "\x{443}\x{308}"));
-ok($objRu->eq("\x{4F0}", "\x{423}\x{308}"));
-ok($objRu->eq("\x{4F3}", "\x{443}\x{30B}"));
-ok($objRu->eq("\x{4F2}", "\x{423}\x{30B}"));
-ok($objRu->eq("\x{4F5}", "\x{447}\x{308}"));
-ok($objRu->eq("\x{4F4}", "\x{427}\x{308}"));
-ok($objRu->eq("\x{4F9}", "\x{44B}\x{308}"));
-ok($objRu->eq("\x{4F8}", "\x{42B}\x{308}"));
-ok($objRu->eq("\x{4ED}", "\x{44D}\x{308}"));
-ok($objRu->eq("\x{4EC}", "\x{42D}\x{308}"));
-
-# 100
-
-ok($objRu->eq("\x{4D1}", "\x{430}\0\x{306}"));
-ok($objRu->eq("\x{4D0}", "\x{410}\0\x{306}"));
-ok($objRu->eq("\x{4D3}", "\x{430}\0\x{308}"));
-ok($objRu->eq("\x{4D2}", "\x{410}\0\x{308}"));
-ok($objRu->eq("\x{453}", "\x{433}\0\x{301}"));
-ok($objRu->eq("\x{403}", "\x{413}\0\x{301}"));
-ok($objRu->eq("\x{4D7}", "\x{435}\0\x{306}"));
-ok($objRu->eq("\x{4D6}", "\x{415}\0\x{306}"));
-ok($objRu->eq("\x{4DD}", "\x{436}\0\x{308}"));
-ok($objRu->eq("\x{4DC}", "\x{416}\0\x{308}"));
-ok($objRu->eq("\x{4DF}", "\x{437}\0\x{308}"));
-ok($objRu->eq("\x{4DE}", "\x{417}\0\x{308}"));
-ok($objRu->eq("\x{457}", "\x{456}\0\x{308}"));
-ok($objRu->eq("\x{407}", "\x{406}\0\x{308}"));
-ok($objRu->eq("\x{4E7}", "\x{43E}\0\x{308}"));
-ok($objRu->eq("\x{4E6}", "\x{41E}\0\x{308}"));
-ok($objRu->eq("\x{45C}", "\x{43A}\0\x{301}"));
-ok($objRu->eq("\x{40C}", "\x{41A}\0\x{301}"));
-ok($objRu->eq("\x{45E}", "\x{443}\0\x{306}"));
-ok($objRu->eq("\x{40E}", "\x{423}\0\x{306}"));
-ok($objRu->eq("\x{4F1}", "\x{443}\0\x{308}"));
-ok($objRu->eq("\x{4F0}", "\x{423}\0\x{308}"));
-ok($objRu->eq("\x{4F3}", "\x{443}\0\x{30B}"));
-ok($objRu->eq("\x{4F2}", "\x{423}\0\x{30B}"));
-ok($objRu->eq("\x{4F5}", "\x{447}\0\x{308}"));
-ok($objRu->eq("\x{4F4}", "\x{427}\0\x{308}"));
-ok($objRu->eq("\x{4F9}", "\x{44B}\0\x{308}"));
-ok($objRu->eq("\x{4F8}", "\x{42B}\0\x{308}"));
-ok($objRu->eq("\x{4ED}", "\x{44D}\0\x{308}"));
-ok($objRu->eq("\x{4EC}", "\x{42D}\0\x{308}"));
-
-# 130
+ok($objRu->eq("\x{4E5}", "\x{438}\x{308}")); # not suppressed
+ok($objRu->eq("\x{4E4}", "\x{418}\x{308}")); # not suppressed
+ok($objRu->eq("\x{439}", "\x{438}\x{306}")); # not suppressed
+ok($objRu->eq("\x{419}", "\x{418}\x{306}")); # not suppressed
+
+# 106
+
+for my $i ("", "\0") {
+  ok($objRu->eq("\x{4D1}", "\x{430}$i\x{306}"));
+  ok($objRu->eq("\x{4D0}", "\x{410}$i\x{306}"));
+  ok($objRu->eq("\x{4D3}", "\x{430}$i\x{308}"));
+  ok($objRu->eq("\x{4D2}", "\x{410}$i\x{308}"));
+  ok($objRu->eq("\x{4DB}", "\x{4D9}$i\x{308}"));
+  ok($objRu->eq("\x{4DA}", "\x{4D8}$i\x{308}"));
+  ok($objRu->eq("\x{453}", "\x{433}$i\x{301}"));
+  ok($objRu->eq("\x{403}", "\x{413}$i\x{301}"));
+  ok($objRu->eq("\x{450}", "\x{435}$i\x{300}")); # not contraction
+  ok($objRu->eq("\x{400}", "\x{415}$i\x{300}")); # not contraction
+  ok($objRu->eq("\x{451}", "\x{435}$i\x{308}")); # not contraction
+  ok($objRu->eq("\x{401}", "\x{415}$i\x{308}")); # not contraction
+  ok($objRu->eq("\x{4D7}", "\x{435}$i\x{306}"));
+  ok($objRu->eq("\x{4D6}", "\x{415}$i\x{306}"));
+  ok($objRu->eq("\x{4C2}", "\x{436}$i\x{306}")); # not contraction
+  ok($objRu->eq("\x{4C1}", "\x{416}$i\x{306}")); # not contraction
+  ok($objRu->eq("\x{4DD}", "\x{436}$i\x{308}"));
+  ok($objRu->eq("\x{4DC}", "\x{416}$i\x{308}"));
+  ok($objRu->eq("\x{4DF}", "\x{437}$i\x{308}"));
+  ok($objRu->eq("\x{4DE}", "\x{417}$i\x{308}"));
+  ok($objRu->eq("\x{45D}", "\x{438}$i\x{300}")); # not contraction
+  ok($objRu->eq("\x{40D}", "\x{418}$i\x{300}")); # not contraction
+  ok($objRu->eq("\x{4E3}", "\x{438}$i\x{304}")); # not contraction
+  ok($objRu->eq("\x{4E2}", "\x{418}$i\x{304}")); # not contraction
+  ok($objRu->eq("\x{457}", "\x{456}$i\x{308}"));
+  ok($objRu->eq("\x{407}", "\x{406}$i\x{308}"));
+  ok($objRu->eq("\x{4E7}", "\x{43E}$i\x{308}"));
+  ok($objRu->eq("\x{4E6}", "\x{41E}$i\x{308}"));
+  ok($objRu->eq("\x{4EB}", "\x{4E9}$i\x{308}"));
+  ok($objRu->eq("\x{4EA}", "\x{4E8}$i\x{308}"));
+  ok($objRu->eq("\x{45C}", "\x{43A}$i\x{301}"));
+  ok($objRu->eq("\x{40C}", "\x{41A}$i\x{301}"));
+  ok($objRu->eq("\x{4EF}", "\x{443}$i\x{304}")); # not contraction
+  ok($objRu->eq("\x{4EE}", "\x{423}$i\x{304}")); # not contraction
+  ok($objRu->eq("\x{45E}", "\x{443}$i\x{306}"));
+  ok($objRu->eq("\x{40E}", "\x{423}$i\x{306}"));
+  ok($objRu->eq("\x{4F1}", "\x{443}$i\x{308}"));
+  ok($objRu->eq("\x{4F0}", "\x{423}$i\x{308}"));
+  ok($objRu->eq("\x{4F3}", "\x{443}$i\x{30B}"));
+  ok($objRu->eq("\x{4F2}", "\x{423}$i\x{30B}"));
+  ok($objRu->eq("\x{4F5}", "\x{447}$i\x{308}"));
+  ok($objRu->eq("\x{4F4}", "\x{427}$i\x{308}"));
+  ok($objRu->eq("\x{4F9}", "\x{44B}$i\x{308}"));
+  ok($objRu->eq("\x{4F8}", "\x{42B}$i\x{308}"));
+  ok($objRu->eq("\x{4ED}", "\x{44D}$i\x{308}"));
+  ok($objRu->eq("\x{4EC}", "\x{42D}$i\x{308}"));
+  ok($objRu->eq("\x{477}", "\x{475}$i\x{30F}"));
+  ok($objRu->eq("\x{476}", "\x{474}$i\x{30F}"));
+}
+
+# 202
index 0977db9..78f77e6 100644 (file)
@@ -34,8 +34,8 @@ my $Collator = Unicode::Collate->new(
 
 my %old_rearrange = $Collator->change(rearrange => undef);
 
-ok($Collator->gt("\x{0E41}A", "\x{0E40}B"));
-ok($Collator->gt("A\x{0E41}A", "A\x{0E40}B"));
+ok($Collator->gt( "\x{E41}A",  "\x{E40}B"));
+ok($Collator->gt("A\x{E41}A", "A\x{E40}B"));
 
 $Collator->change(rearrange => [ 0x61 ]);
  # U+0061, 'a': This is a Unicode value, never a native value.
@@ -45,10 +45,10 @@ ok($Collator->gt("ab", "AB")); # as 'ba' > 'AB'
 $Collator->change(%old_rearrange);
 
 ok($Collator->lt("ab", "AB"));
-ok($Collator->lt("\x{0E40}", "\x{0E41}"));
-ok($Collator->lt("\x{0E40}A", "\x{0E41}B"));
-ok($Collator->lt("\x{0E41}A", "\x{0E40}B"));
-ok($Collator->lt("A\x{0E41}A", "A\x{0E40}B"));
+ok($Collator->lt( "\x{E40}",   "\x{E41}"));
+ok($Collator->lt( "\x{E40}A",  "\x{E41}B"));
+ok($Collator->lt( "\x{E41}A",  "\x{E40}B"));
+ok($Collator->lt("A\x{E41}A", "A\x{E40}B"));
 
 ##### 10..13
 
@@ -60,10 +60,10 @@ my $all_undef_8 = Unicode::Collate->new(
   UCA_Version => 8,
 );
 
-ok($all_undef_8->lt("\x{0E40}", "\x{0E41}"));
-ok($all_undef_8->lt("\x{0E40}A", "\x{0E41}B"));
-ok($all_undef_8->lt("\x{0E41}A", "\x{0E40}B"));
-ok($all_undef_8->lt("A\x{0E41}A", "A\x{0E40}B"));
+ok($all_undef_8->lt( "\x{E40}",   "\x{E41}"));
+ok($all_undef_8->lt( "\x{E40}A",  "\x{E41}B"));
+ok($all_undef_8->lt( "\x{E41}A",  "\x{E40}B"));
+ok($all_undef_8->lt("A\x{E41}A", "A\x{E40}B"));
 
 ##### 14..18
 
@@ -75,10 +75,10 @@ my $no_rearrange = Unicode::Collate->new(
 );
 
 ok($no_rearrange->lt("A", "B"));
-ok($no_rearrange->lt("\x{0E40}", "\x{0E41}"));
-ok($no_rearrange->lt("\x{0E40}A", "\x{0E41}B"));
-ok($no_rearrange->gt("\x{0E41}A", "\x{0E40}B"));
-ok($no_rearrange->gt("A\x{0E41}A", "A\x{0E40}B"));
+ok($no_rearrange->lt( "\x{E40}",   "\x{E41}"));
+ok($no_rearrange->lt( "\x{E40}A",  "\x{E41}B"));
+ok($no_rearrange->gt( "\x{E41}A",  "\x{E40}B"));
+ok($no_rearrange->gt("A\x{E41}A", "A\x{E40}B"));
 
 ##### 19..23
 
@@ -90,8 +90,8 @@ my $undef_rearrange = Unicode::Collate->new(
 );
 
 ok($undef_rearrange->lt("A", "B"));
-ok($undef_rearrange->lt("\x{0E40}", "\x{0E41}"));
-ok($undef_rearrange->lt("\x{0E40}A", "\x{0E41}B"));
-ok($undef_rearrange->gt("\x{0E41}A", "\x{0E40}B"));
-ok($undef_rearrange->gt("A\x{0E41}A", "A\x{0E40}B"));
+ok($undef_rearrange->lt( "\x{E40}",   "\x{E41}"));
+ok($undef_rearrange->lt( "\x{E40}A",  "\x{E41}B"));
+ok($undef_rearrange->gt( "\x{E41}A",  "\x{E40}B"));
+ok($undef_rearrange->gt("A\x{E41}A", "A\x{E40}B"));
 
index 28d6fd4..871edb0 100644 (file)
@@ -110,6 +110,13 @@ a C<www_form_urlencode()> utility method.
 
 L<perlfaq> has been upgraded from version 5.0150035 to version 5.0150036.
 
+=item *
+
+L<Unicode::Collate> has been upgraded from version 0.80 to version 0.81.
+
+Locales updated to CLDR 2.0: mk, mt, nb, nn, ro, ru.
+Newly supported locales: ml, mr, or, pa.
+
 =back
 
 =head2 Removed Modules and Pragmata