Update Unicode-Collate to CPAN version 0.95
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sat, 8 Dec 2012 10:05:12 +0000 (10:05 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sat, 8 Dec 2012 10:05:12 +0000 (10:05 +0000)
  [DELTA]

  0.95  Sat Dec  8 15:11:09 2012
    - U::C::Locale newly supports locales: bs_Cyrl, ee.
    - updated to CLDR 21: uk.
    - updated to CLDR 22: th, to.
    - added loc_bscy.t, loc_ee.t in t.
    - modified tests: loc_th.t, loc_to.t, loc_uk.t in t.

16 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/ee.pl [new file with mode: 0644]
cpan/Unicode-Collate/Collate/Locale/th.pl
cpan/Unicode-Collate/Collate/Locale/to.pl
cpan/Unicode-Collate/Collate/Locale/uk.pl
cpan/Unicode-Collate/README
cpan/Unicode-Collate/t/loc_bscy.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_ee.t [new file with mode: 0644]
cpan/Unicode-Collate/t/loc_sq.t
cpan/Unicode-Collate/t/loc_th.t
cpan/Unicode-Collate/t/loc_to.t
cpan/Unicode-Collate/t/loc_uk.t

index 032b1b6..49eede9 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -2727,6 +2727,7 @@ cpan/Unicode-Collate/Collate/Locale/cs.pl                 Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/cy.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/da.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/de_phone.pl                        Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ee.pl
 cpan/Unicode-Collate/Collate/Locale/eo.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/es.pl                      Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/es_trad.pl                 Unicode::Collate
@@ -2830,6 +2831,7 @@ 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_bn.t                Unicode::Collate
+cpan/Unicode-Collate/t/loc_bscy.t
 cpan/Unicode-Collate/t/loc_bs.t        Unicode::Collate
 cpan/Unicode-Collate/t/loc_ca.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_cjkc.t              Unicode::Collate
@@ -2840,6 +2842,7 @@ cpan/Unicode-Collate/t/loc_cy.t                   Unicode::Collate
 cpan/Unicode-Collate/t/loc_da.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_deph.t                      Unicode::Collate
 cpan/Unicode-Collate/t/loc_de.t                        Unicode::Collate
+cpan/Unicode-Collate/t/loc_ee.t
 cpan/Unicode-Collate/t/loc_eo.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_es.t                        Unicode::Collate
 cpan/Unicode-Collate/t/loc_estr.t                      Unicode::Collate
index 7ca98be..9fffb42 100755 (executable)
@@ -2011,7 +2011,7 @@ use File::Glob qw(:case);
 
     'Unicode::Collate' => {
         'MAINTAINER'   => 'sadahiro',
-        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-0.94.tar.gz',
+        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-0.95.tar.gz',
         'FILES'        => q[cpan/Unicode-Collate],
         'EXCLUDED'     => [
             qr{N$},
index d3ededb..4eef252 100644 (file)
@@ -1,5 +1,12 @@
 Revision history for Perl module Unicode::Collate.
 
+0.95  Sat Dec  8 15:11:09 2012
+    - U::C::Locale newly supports locales: bs_Cyrl, ee.
+    - updated to CLDR 21: uk.
+    - updated to CLDR 22: th, to.
+    - added loc_bscy.t, loc_ee.t in t.
+    - modified tests: loc_th.t, loc_to.t, loc_uk.t in t.
+
 0.94  Fri Nov 23 18:45:53 2012
     - U::C::Locale newly supports locale: zh__zhuyin.
     - added Unicode::Collate::CJK::Zhuyin for zh__zhuyin.
index 2329f70..f3901ad 100644 (file)
@@ -14,7 +14,7 @@ use File::Spec;
 
 no warnings 'utf8';
 
-our $VERSION = '0.94';
+our $VERSION = '0.95';
 our $PACKAGE = __PACKAGE__;
 
 ### begin XS only ###
@@ -1074,7 +1074,7 @@ If the revision (previously "tracking version") number of UCA is given,
 behavior of that revision is emulated on collating.
 If omitted, the return value of C<UCA_Version()> is used.
 
-The following revisions are supported.  The default is 24.
+The following revisions are supported.  The default is 26.
 
      UCA       Unicode Standard         DUCET (@version)
    -------------------------------------------------------
index 3b10d28..b7b3528 100644 (file)
@@ -4,12 +4,12 @@ use strict;
 use Carp;
 use base qw(Unicode::Collate);
 
-our $VERSION = '0.94';
+our $VERSION = '0.95';
 
 my $PL_EXT  = '.pl';
 
 my %LocaleFile = map { ($_, $_) } qw(
-   af ar as az be bg bn ca cs cy da eo es et fa fi fil fo fr
+   af ar as az be bg bn ca cs cy da ee eo es et fa fi fil fo fr
    gu ha haw hi hr hu hy ig is ja kk kl kn ko kok ln lt lv
    mk ml mr mt nb nn nso om or pa pl ro ru sa se si sk sl sq
    sr sv ta te th tn to tr uk ur vi wae wo yo zh
@@ -17,6 +17,7 @@ my %LocaleFile = map { ($_, $_) } qw(
    $LocaleFile{'default'} = '';
 # aliases
    $LocaleFile{'bs'}      = 'hr';
+   $LocaleFile{'bs_Cyrl'} = 'sr';
    $LocaleFile{'sr_Latn'} = 'hr';
 # short file names
    $LocaleFile{'de__phonebook'}   = 'de_phone';
@@ -122,91 +123,93 @@ __END__
 
 MEMORANDA for developing
 
-locale         based CLDR
+locale            based CLDR
 ----------------------------------------------------------------------------
-af             2.0 = 1.8.1
-ar             2.0
-as             2.0 = 1.8.1
-az             2.0 = 1.8.1 (type="standard")
-be             2.0
-bg             2.0
-bn             2.0.1 (type="standard")
-bs             2.0 (alias source="hr")
-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") [modify aA to pass CLDR tests]
-de__phonebook  2.0 (type="phonebook")
-eo             2.0 = 1.8.1
-es             2.0 (type="standard")
-es__traditional        2.0 = 1.8.1 (type="traditional")
-et             2.0 = 1.8.1
-fa             2.0 = 1.8.1
-fi             2.0 = 1.8.1 (type="standard" alt="proposed")
-fi__phonebook  2.0 = 1.8.1 (type="phonebook")
-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             2.0
-haw            2.0 = 1.8.1
-hi             2.0 (type="standard")
-hr             2.0 (type="standard")
-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 (type="standard")
-ja             22.1 = 2.0 = 1.8.1 (type="standard")
-kk             2.0
-kl             2.0 = 1.8.1 (type="standard")
-kn             2.0 (type="standard")
-ko             22.1 = 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             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
-sa             1.8.1 (type="standard" alt="proposed") [currently in /seed]
-se             2.0 = 1.8.1 (type="standard")
-si             2.0 (type="standard")
-si__dictionary 2.0 (type="dictionary")
-sk             2.0 (type="standard")
-sl             2.0 = 1.8.1 (type="standard" alt="proposed")
-sq             2.0 = 1.8.1 (alt="proposed" type="standard")
-sr             2.0 (type="standard")
-sr_Latn                2.0 = 1.8.1 (alias source="hr")
-sv             2.0 (type="standard")
-sv__reformed   2.0 = 1.8.1 (type="reformed")
-ta             2.0
-te             2.0
-th             2.0 (type="standard")
-tn             2.0 = 1.8.1
-to             2.0 = 1.8.1 (type="standard" alt="proposed")
-tr             2.0 = 1.8.1 (type="standard")
-uk             2.0
-ur             2.0
-vi             2.0 = 1.8.1
-wae            2.0
-wo             1.8.1 [currently in /seed]
-yo             2.0 = 1.8.1
-zh             22.1 = 2.0 = 1.8.1 (type="standard")
-zh__big5han    22.1 = 2.0 = 1.8.1 (type="big5han")
-zh__gb2312han  22.1 = 2.0 = 1.8.1 (type="gb2312han")
-zh__pinyin     22.1 = 2.0         (type='pinyin' alt='short')
-zh__stroke     22.1 = 2.0 = 1.9.1 (type='stroke' alt='short')
-zh__zhuyin     22.1 = 22          (type='zhuyin' alt='short')
+af                22.1 = 1.8.1
+ar                22.1 = 1.9.0
+as                22.1 = 1.8.1
+az                22.1 = 1.8.1 (type="standard")
+be                22.1 = 1.9.0
+bg                22.1 = 1.9.0
+bn                22.1 = 2.0.1 (type="standard")
+bs                22.1 = 1.9.0 (alias source="hr")
+bs_Cyrl           22.1 = 22    (alias source="sr")
+ca                22.1 = 1.8.1 (alt="proposed" type="standard")
+cs                22.1 = 1.8.1 (type="standard")
+cy                22.1 = 1.8.1
+da                22.1 = 1.8.1 (type="standard") [mod aA to pass CLDR test]
+de__phonebook     22.1 = 2.0   (type="phonebook")
+ee                22.1 = 22
+eo                22.1 = 1.8.1
+es                22.1 = 1.9.0 (type="standard")
+es__traditional   22.1 = 1.8.1 (type="traditional")
+et                22.1 = 1.8.1
+fa                22.1 = 1.8.1
+fi                22.1 = 1.8.1 (type="standard" alt="proposed")
+fi__phonebook     22.1 = 1.8.1 (type="phonebook")
+fil               22.1 = 1.9.0 (type="standard") = 1.8.1
+fo                22.1 = 1.8.1 (alt="proposed" type="standard")
+fr                22.1 = 1.9.0 (fr_CA, backwards="on")
+gu                22.1 = 1.9.0 (type="standard")
+ha                22.1 = 1.9.0
+haw               22.1 = 1.8.1
+hi                22.1 = 1.9.0 (type="standard")
+hr                22.1 = 1.9.0 (type="standard")
+hu                22.1 = 1.8.1 (alt="proposed" type="standard")
+hy                22.1 = 1.8.1
+ig                22.1 = 1.8.1
+is                22.1 = 1.8.1 (type="standard")
+ja                22.1 = 1.8.1 (type="standard")
+kk                22.1 = 1.9.0
+kl                22.1 = 1.8.1 (type="standard")
+kn                22.1 = 1.9.0 (type="standard")
+ko                22.1 = 1.8.1 (type="standard")
+kok               22.1 = 1.8.1
+ln                22.1 = 2.0   (type="standard") = 1.8.1
+lt                22.1 = 1.9.0
+lv                22.1 = 1.9.0 (type="standard") = 1.8.1
+mk                22.1 = 1.9.0
+ml                22.1 = 1.9.0
+mr                22.1 = 1.8.1
+mt                22.1 = 1.9.0
+nb                22.1 = 2.0   (type="standard")
+nn                22.1 = 2.0   (type="standard")
+nso               22.1 = 1.8.1
+om                22.1 = 1.8.1
+or                22.1 = 1.9.0
+pa                22.1 = 1.8.1
+pl                22.1 = 1.8.1
+ro                22.1 = 1.9.0 (type="standard")
+ru                22.1 = 1.9.0
+sa                1.9.1 = 1.8.1 (type="standard" alt="proposed") [now /seed]
+se                22.1 = 1.8.1 (type="standard")
+si                22.1 = 1.9.0 (type="standard")
+si__dictionary    22.1 = 1.9.0 (type="dictionary")
+sk                22.1 = 1.9.0 (type="standard")
+sl                22.1 = 1.8.1 (type="standard" alt="proposed")
+sq                22.1 = 1.8.1 (alt="proposed" type="standard")
+sr                22.1 = 1.9.0 (type="standard")
+sr_Latn           22.1 = 1.8.1 (alias source="hr")
+sv                22.1 = 1.9.0 (type="standard")
+sv__reformed      22.1 = 1.8.1 (type="reformed")
+ta                22.1 = 1.9.0
+te                22.1 = 1.9.0
+th                22.1 = 22
+tn                22.1 = 1.8.1
+to                22.1 = 22
+tr                22.1 = 1.8.1 (type="standard")
+uk                22.1 = 21
+ur                22.1 = 1.9.0
+vi                22.1 = 1.8.1
+wae               22.1 = 2.0
+wo                1.9.1 = 1.8.1 [now /seed]
+yo                22.1 = 1.8.1
+zh                22.1 = 1.8.1 (type="standard")
+zh__big5han       22.1 = 1.8.1 (type="big5han")
+zh__gb2312han     22.1 = 1.8.1 (type="gb2312han")
+zh__pinyin        22.1 = 2.0   (type='pinyin' alt='short')
+zh__stroke        22.1 = 1.9.1 (type='stroke' alt='short')
+zh__zhuyin        22.1 = 22    (type='zhuyin' alt='short')
 ----------------------------------------------------------------------------
 
 =head1 NAME
@@ -332,11 +335,13 @@ a combination of return values from C<getlocale> and C<locale_version>.
       bg                Bulgarian
       bn                Bengali
       bs                Bosnian
+      bs_Cyrl           Bosnian in Cyrillic (tailored as Serbian)
       ca                Catalan
       cs                Czech
       cy                Welsh
       da                Danish
       de__phonebook     German (umlaut as 'ae', 'oe', 'ue')
+      ee                Ewe
       eo                Esperanto
       es                Spanish
       es__traditional   Spanish ('ch' and 'll' as a grapheme)
@@ -428,7 +433,7 @@ zu (Zulu).
 B<Note>
 
 [1] ja: Ideographs are sorted in JIS X 0208 order.
-Fullwidth and halfwidth forms are identical to their normal form.
+Fullwidth and halfwidth forms are identical to their regular form.
 The difference between hiragana and katakana is at the 4th level,
 the comparison also requires C<(variable =E<gt> 'Non-ignorable')>,
 and then C<katakana_before_hiragana> has no effect.
diff --git a/cpan/Unicode-Collate/Collate/Locale/ee.pl b/cpan/Unicode-Collate/Collate/Locale/ee.pl
new file mode 100644 (file)
index 0000000..c593a26
--- /dev/null
@@ -0,0 +1,36 @@
++{
+   locale_version => 0.95,
+# d-tail, open-e, f-hook, gamma, eng, open-o, v-hook don't require tailoring
+   entry => <<'ENTRY', # for DUCET v6.2.0
+0302      ; [.0000.0042.0002.0302] # COMBINING CIRCUMFLEX ACCENT
+00E2      ; [.15EF.0020.0002.0061][.0000.0042.0002.0302] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+00C2      ; [.15EF.0020.0008.0041][.0000.0042.0002.0302] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+00EA      ; [.164C.0020.0002.0065][.0000.0042.0002.0302] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA      ; [.164C.0020.0008.0045][.0000.0042.0002.0302] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+00EE      ; [.16CD.0020.0002.0069][.0000.0042.0002.0302] # LATIN SMALL LETTER I WITH CIRCUMFLEX
+00CE      ; [.16CD.0020.0008.0049][.0000.0042.0002.0302] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00F4      ; [.1771.0020.0002.006F][.0000.0042.0002.0302] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4      ; [.1771.0020.0008.004F][.0000.0042.0002.0302] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00FB      ; [.1836.0020.0002.0075][.0000.0042.0002.0302] # LATIN SMALL LETTER U WITH CIRCUMFLEX
+00DB      ; [.1836.0020.0008.0055][.0000.0042.0002.0302] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0177      ; [.1880.0020.0002.0079][.0000.0042.0002.0302] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0176      ; [.1880.0020.0008.0059][.0000.0042.0002.0302] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0064 007A ; [.1632.0020.0002.0064] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
+0044 007A ; [.1632.0020.0007.0044] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
+0044 005A ; [.1632.0020.0008.0044] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
+0067 0062 ; [.1692.0020.0002.0067] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
+0047 0062 ; [.1692.0020.0007.0047] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
+0047 0042 ; [.1692.0020.0008.0047] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
+0078      ; [.16B5.0020.0002.0078] # LATIN SMALL LETTER X
+0058      ; [.16B5.0020.0008.0058] # LATIN CAPITAL LETTER X
+006B 0070 ; [.1700.0020.0002.006B] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
+004B 0070 ; [.1700.0020.0007.004B] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
+004B 0050 ; [.1700.0020.0008.004B] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
+006E 0079 ; [.1750.0020.0002.006E] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+004E 0079 ; [.1750.0020.0007.004E] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 0059 ; [.1750.0020.0008.004E] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+0074 0073 ; [.1817.0020.0002.0074] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
+0054 0073 ; [.1817.0020.0007.0054] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
+0054 0053 ; [.1817.0020.0008.0054] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
+ENTRY
+};
index 893166b..d83b6f1 100644 (file)
@@ -1,8 +1,10 @@
 +{
-   locale_version => 0.93,
+   locale_version => 0.95,
+   variable => 'shifted',
+   alternate => 'shifted',
    entry => <<'ENTRY', # for DUCET v6.2.0
-0E2F      ; [*03BC.0020.0002.0E2F][*FFF1.0000.0000.0000] # THAI CHARACTER PAIYANNOI
-0E46      ; [*03BC.0020.0002.0E46][*FFF2.0000.0000.0000] # THAI CHARACTER MAIYAMOK
+0E2F      ; [*03BD.0020.0002.0E2F][*FFF1.0000.0000.0000] # THAI CHARACTER PAIYANNOI
+0E46      ; [*03BF.0020.0002.0E46][*FFF1.0000.0000.0000] # THAI CHARACTER MAIYAMOK
 0E4C      ; [.0000.00FF.0002.0E4C] # THAI CHARACTER THANTHAKHAT
 0E47      ; [.0000.0100.0002.0E47] # THAI CHARACTER MAITAIKHU
 0E48      ; [.0000.0101.0002.0E48] # THAI CHARACTER MAI EK
@@ -11,6 +13,9 @@
 0E4B      ; [.0000.0104.0002.0E4B] # THAI CHARACTER MAI CHATTAWA
 0E4D      ; [.24B6.0020.0002.0E4D] # THAI CHARACTER NIKHAHIT
 0E45      ; [.24B9.0020.0003.0E45] # THAI CHARACTER LAKKHANGYAO
+0E4D 0E32 ; [.24B9.0020.0002.0E32][.24B6.0020.0003.0E4D] # THAI CHARACTER SARA AM
+0E33      ; [.24B9.0020.0002.0E32][.24B6.0020.0004.0E33] # THAI CHARACTER SARA AM
+0E45 0E4D ; [.24B6.0020.0002.0E4D][.24B9.0020.0004.0E45] # <THAI CHARACTER LAKKHANGYAO, THAI CHARACTER NIKHAHIT>
 0E3A      ; [.24C7.0020.0002.0E3A] # THAI CHARACTER PHINTHU
 ENTRY
 };
index c589544..df42141 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 0.93,
+   locale_version => 0.95,
    entry => <<'ENTRY', # for DUCET v6.2.0
 006E 0067 ; [.1750.0020.0002.006E] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
 004E 0067 ; [.1750.0020.0007.004E] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
@@ -8,55 +8,55 @@
 014A      ; [.1750.0020.001D.014A] # LATIN CAPITAL LETTER ENG
 02BB      ; [.1896.0020.0002.02BB] # MODIFIER LETTER TURNED COMMA
 02BD      ; [.1896.0020.0003.02BD] # MODIFIER LETTER REVERSED COMMA
-0101      ; [.15EF.0021.0002.0101] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.15EF.0021.0002.0101] # LATIN SMALL LETTER A WITH MACRON
-00E1      ; [.15EF.0021.0003.00E1] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.15EF.0021.0003.00E1] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.15EF.0021.0003.00E1] # LATIN SMALL LETTER A WITH ACUTE
-0100      ; [.15EF.0021.0008.0100] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.15EF.0021.0008.0100] # LATIN CAPITAL LETTER A WITH MACRON
-00C1      ; [.15EF.0021.0009.00C1] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.15EF.0021.0009.00C1] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.15EF.0021.0009.00C1] # LATIN CAPITAL LETTER A WITH ACUTE
-0113      ; [.164C.0021.0002.0113] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.164C.0021.0002.0113] # LATIN SMALL LETTER E WITH MACRON
-00E9      ; [.164C.0021.0003.00E9] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.164C.0021.0003.00E9] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.164C.0021.0003.00E9] # LATIN SMALL LETTER E WITH ACUTE
-0112      ; [.164C.0021.0008.0112] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.164C.0021.0008.0112] # LATIN CAPITAL LETTER E WITH MACRON
-00C9      ; [.164C.0021.0009.00C9] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.164C.0021.0009.00C9] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.164C.0021.0009.00C9] # LATIN CAPITAL LETTER E WITH ACUTE
-012B      ; [.16CD.0021.0002.012B] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.16CD.0021.0002.012B] # LATIN SMALL LETTER I WITH MACRON
-00ED      ; [.16CD.0021.0003.00ED] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.16CD.0021.0003.00ED] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.16CD.0021.0003.00ED] # LATIN SMALL LETTER I WITH ACUTE
-012A      ; [.16CD.0021.0008.012A] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.16CD.0021.0008.012A] # LATIN CAPITAL LETTER I WITH MACRON
-00CD      ; [.16CD.0021.0009.00CD] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.16CD.0021.0009.00CD] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.16CD.0021.0009.00CD] # LATIN CAPITAL LETTER I WITH ACUTE
-014D      ; [.1771.0021.0002.014D] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1771.0021.0002.014D] # LATIN SMALL LETTER O WITH MACRON
-00F3      ; [.1771.0021.0003.00F3] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1771.0021.0003.00F3] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1771.0021.0003.00F3] # LATIN SMALL LETTER O WITH ACUTE
-014C      ; [.1771.0021.0008.014C] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1771.0021.0008.014C] # LATIN CAPITAL LETTER O WITH MACRON
-00D3      ; [.1771.0021.0009.00D3] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1771.0021.0009.00D3] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1771.0021.0009.00D3] # LATIN CAPITAL LETTER O WITH ACUTE
-016B      ; [.1836.0021.0002.016B] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1836.0021.0002.016B] # LATIN SMALL LETTER U WITH MACRON
-00FA      ; [.1836.0021.0003.00FA] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1836.0021.0003.00FA] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1836.0021.0003.00FA] # LATIN SMALL LETTER U WITH ACUTE
-016A      ; [.1836.0021.0008.016A] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1836.0021.0008.016A] # LATIN CAPITAL LETTER U WITH MACRON
-00DA      ; [.1836.0021.0009.00DA] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1836.0021.0009.00DA] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1836.0021.0009.00DA] # LATIN CAPITAL LETTER U WITH ACUTE
+00E1      ; [.15EF.0021.0002.00E1] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.15EF.0021.0002.00E1] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.15EF.0021.0002.00E1] # LATIN SMALL LETTER A WITH ACUTE
+00C1      ; [.15EF.0021.0008.00C1] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.15EF.0021.0008.00C1] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.15EF.0021.0008.00C1] # LATIN CAPITAL LETTER A WITH ACUTE
+0101      ; [.15EF.0022.0002.0101] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.15EF.0022.0002.0101] # LATIN SMALL LETTER A WITH MACRON
+0100      ; [.15EF.0022.0008.0100] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.15EF.0022.0008.0100] # LATIN CAPITAL LETTER A WITH MACRON
+00E9      ; [.164C.0021.0002.00E9] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.164C.0021.0002.00E9] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.164C.0021.0002.00E9] # LATIN SMALL LETTER E WITH ACUTE
+00C9      ; [.164C.0021.0008.00C9] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.164C.0021.0008.00C9] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.164C.0021.0008.00C9] # LATIN CAPITAL LETTER E WITH ACUTE
+0113      ; [.164C.0022.0002.0113] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.164C.0022.0002.0113] # LATIN SMALL LETTER E WITH MACRON
+0112      ; [.164C.0022.0008.0112] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.164C.0022.0008.0112] # LATIN CAPITAL LETTER E WITH MACRON
+00ED      ; [.16CD.0021.0002.00ED] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.16CD.0021.0002.00ED] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.16CD.0021.0002.00ED] # LATIN SMALL LETTER I WITH ACUTE
+00CD      ; [.16CD.0021.0008.00CD] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.16CD.0021.0008.00CD] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.16CD.0021.0008.00CD] # LATIN CAPITAL LETTER I WITH ACUTE
+012B      ; [.16CD.0022.0002.012B] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.16CD.0022.0002.012B] # LATIN SMALL LETTER I WITH MACRON
+012A      ; [.16CD.0022.0008.012A] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.16CD.0022.0008.012A] # LATIN CAPITAL LETTER I WITH MACRON
+00F3      ; [.1771.0021.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1771.0021.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1771.0021.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE
+00D3      ; [.1771.0021.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1771.0021.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1771.0021.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE
+014D      ; [.1771.0022.0002.014D] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1771.0022.0002.014D] # LATIN SMALL LETTER O WITH MACRON
+014C      ; [.1771.0022.0008.014C] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1771.0022.0008.014C] # LATIN CAPITAL LETTER O WITH MACRON
+00FA      ; [.1836.0021.0002.00FA] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1836.0021.0002.00FA] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1836.0021.0002.00FA] # LATIN SMALL LETTER U WITH ACUTE
+00DA      ; [.1836.0021.0008.00DA] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1836.0021.0008.00DA] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1836.0021.0008.00DA] # LATIN CAPITAL LETTER U WITH ACUTE
+016B      ; [.1836.0022.0002.016B] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1836.0022.0002.016B] # LATIN SMALL LETTER U WITH MACRON
+016A      ; [.1836.0022.0008.016A] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1836.0022.0008.016A] # LATIN CAPITAL LETTER U WITH MACRON
 ENTRY
 };
index 8bb0db1..e3bd16f 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 0.93,
+   locale_version => 0.95,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x041E, 0x043E, 0x04E8, 0x04E9,
                0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447, 0x042B, 0x044B,
@@ -7,8 +7,6 @@
    entry => <<'ENTRY', # for DUCET v6.2.0
 0491      ; [.19B2.0020.0002.0491] # CYRILLIC SMALL LETTER GHE WITH UPTURN
 0490      ; [.19B2.0020.0008.0490] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-044C      ; [.1B63.0020.0002.044C] # CYRILLIC SMALL LETTER SOFT SIGN
-042C      ; [.1B63.0020.0008.042C] # CYRILLIC CAPITAL LETTER SOFT SIGN
 04D1      ; [.1991.0020.0002.0430][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER A WITH BREVE
 04D0      ; [.1991.0020.0008.0410][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER A WITH BREVE
 04D3      ; [.1991.0020.0002.0430][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER A WITH DIAERESIS
index 7032e5a..5b257a8 100644 (file)
@@ -1,4 +1,4 @@
-Unicode/Collate version 0.94
+Unicode/Collate version 0.95
 ===============================
 
 NAME
diff --git a/cpan/Unicode-Collate/t/loc_bscy.t b/cpan/Unicode-Collate/t/loc_bscy.t
new file mode 100644 (file)
index 0000000..b2283dd
--- /dev/null
@@ -0,0 +1,209 @@
+
+BEGIN {
+    unless ("A" eq pack('U', 0x41)) {
+       print "1..0 # Unicode::Collate " .
+           "cannot stringify a Unicode code point\n";
+       exit 0;
+    }
+    if ($ENV{PERL_CORE}) {
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+    }
+}
+
+use strict;
+use warnings;
+BEGIN { $| = 1; print "1..210\n"; }
+my $count = 0;
+sub ok ($;$) {
+    my $p = my $r = shift;
+    if (@_) {
+       my $x = shift;
+       $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
+    }
+    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
+}
+
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objBsCyrl = Unicode::Collate::Locale->
+    new(locale => 'BS-CYRL', normalization => undef);
+
+ok($objBsCyrl->getlocale, 'bs_Cyrl');
+
+$objBsCyrl->change(level => 1);
+
+ok($objBsCyrl->eq("\x{4D1}", "\x{430}"));
+ok($objBsCyrl->eq("\x{4D0}", "\x{410}"));
+ok($objBsCyrl->eq("\x{4D3}", "\x{430}"));
+ok($objBsCyrl->eq("\x{4D2}", "\x{410}"));
+ok($objBsCyrl->eq("\x{4DB}", "\x{4D9}"));
+ok($objBsCyrl->eq("\x{4DA}", "\x{4D8}"));
+ok($objBsCyrl->eq("\x{453}", "\x{433}"));
+ok($objBsCyrl->eq("\x{403}", "\x{413}"));
+ok($objBsCyrl->eq("\x{450}", "\x{435}")); # not contraction
+ok($objBsCyrl->eq("\x{400}", "\x{415}")); # not contraction
+ok($objBsCyrl->eq("\x{451}", "\x{435}")); # not contraction
+ok($objBsCyrl->eq("\x{401}", "\x{415}")); # not contraction
+ok($objBsCyrl->eq("\x{4D7}", "\x{435}"));
+ok($objBsCyrl->eq("\x{4D6}", "\x{415}"));
+ok($objBsCyrl->eq("\x{4C2}", "\x{436}")); # not contraction
+ok($objBsCyrl->eq("\x{4C1}", "\x{416}")); # not contraction
+ok($objBsCyrl->eq("\x{4DD}", "\x{436}"));
+ok($objBsCyrl->eq("\x{4DC}", "\x{416}"));
+ok($objBsCyrl->eq("\x{4DF}", "\x{437}"));
+ok($objBsCyrl->eq("\x{4DE}", "\x{417}"));
+ok($objBsCyrl->eq("\x{45D}", "\x{438}")); # not contraction
+ok($objBsCyrl->eq("\x{40D}", "\x{418}")); # not contraction
+ok($objBsCyrl->eq("\x{4E3}", "\x{438}")); # not contraction
+ok($objBsCyrl->eq("\x{4E2}", "\x{418}")); # not contraction
+ok($objBsCyrl->eq("\x{4E5}", "\x{438}"));
+ok($objBsCyrl->eq("\x{4E4}", "\x{418}"));
+ok($objBsCyrl->eq("\x{457}", "\x{456}"));
+ok($objBsCyrl->eq("\x{407}", "\x{406}"));
+ok($objBsCyrl->eq("\x{439}", "\x{438}"));
+ok($objBsCyrl->eq("\x{419}", "\x{418}"));
+ok($objBsCyrl->eq("\x{4E7}", "\x{43E}"));
+ok($objBsCyrl->eq("\x{4E6}", "\x{41E}"));
+ok($objBsCyrl->eq("\x{4EB}", "\x{4E9}"));
+ok($objBsCyrl->eq("\x{4EA}", "\x{4E8}"));
+ok($objBsCyrl->eq("\x{45C}", "\x{43A}"));
+ok($objBsCyrl->eq("\x{40C}", "\x{41A}"));
+ok($objBsCyrl->eq("\x{4EF}", "\x{443}")); # not contraction
+ok($objBsCyrl->eq("\x{4EE}", "\x{423}")); # not contraction
+ok($objBsCyrl->eq("\x{45E}", "\x{443}"));
+ok($objBsCyrl->eq("\x{40E}", "\x{423}"));
+ok($objBsCyrl->eq("\x{4F1}", "\x{443}"));
+ok($objBsCyrl->eq("\x{4F0}", "\x{423}"));
+ok($objBsCyrl->eq("\x{4F3}", "\x{443}"));
+ok($objBsCyrl->eq("\x{4F2}", "\x{423}"));
+ok($objBsCyrl->eq("\x{4F5}", "\x{447}"));
+ok($objBsCyrl->eq("\x{4F4}", "\x{427}"));
+ok($objBsCyrl->eq("\x{4F9}", "\x{44B}"));
+ok($objBsCyrl->eq("\x{4F8}", "\x{42B}"));
+ok($objBsCyrl->eq("\x{4ED}", "\x{44D}"));
+ok($objBsCyrl->eq("\x{4EC}", "\x{42D}"));
+ok($objBsCyrl->eq("\x{477}", "\x{475}"));
+ok($objBsCyrl->eq("\x{476}", "\x{474}"));
+
+# 54
+
+$objBsCyrl->change(level => 2);
+
+ok($objBsCyrl->gt("\x{4D1}", "\x{430}"));
+ok($objBsCyrl->gt("\x{4D0}", "\x{410}"));
+ok($objBsCyrl->gt("\x{4D3}", "\x{430}"));
+ok($objBsCyrl->gt("\x{4D2}", "\x{410}"));
+ok($objBsCyrl->gt("\x{4DB}", "\x{4D9}"));
+ok($objBsCyrl->gt("\x{4DA}", "\x{4D8}"));
+ok($objBsCyrl->gt("\x{453}", "\x{433}"));
+ok($objBsCyrl->gt("\x{403}", "\x{413}"));
+ok($objBsCyrl->gt("\x{450}", "\x{435}")); # not contraction
+ok($objBsCyrl->gt("\x{400}", "\x{415}")); # not contraction
+ok($objBsCyrl->gt("\x{451}", "\x{435}")); # not contraction
+ok($objBsCyrl->gt("\x{401}", "\x{415}")); # not contraction
+ok($objBsCyrl->gt("\x{4D7}", "\x{435}"));
+ok($objBsCyrl->gt("\x{4D6}", "\x{415}"));
+ok($objBsCyrl->gt("\x{4C2}", "\x{436}")); # not contraction
+ok($objBsCyrl->gt("\x{4C1}", "\x{416}")); # not contraction
+ok($objBsCyrl->gt("\x{4DD}", "\x{436}"));
+ok($objBsCyrl->gt("\x{4DC}", "\x{416}"));
+ok($objBsCyrl->gt("\x{4DF}", "\x{437}"));
+ok($objBsCyrl->gt("\x{4DE}", "\x{417}"));
+ok($objBsCyrl->gt("\x{45D}", "\x{438}")); # not contraction
+ok($objBsCyrl->gt("\x{40D}", "\x{418}")); # not contraction
+ok($objBsCyrl->gt("\x{4E3}", "\x{438}")); # not contraction
+ok($objBsCyrl->gt("\x{4E2}", "\x{418}")); # not contraction
+ok($objBsCyrl->gt("\x{4E5}", "\x{438}"));
+ok($objBsCyrl->gt("\x{4E4}", "\x{418}"));
+ok($objBsCyrl->gt("\x{457}", "\x{456}"));
+ok($objBsCyrl->gt("\x{407}", "\x{406}"));
+ok($objBsCyrl->gt("\x{439}", "\x{438}"));
+ok($objBsCyrl->gt("\x{419}", "\x{418}"));
+ok($objBsCyrl->gt("\x{4E7}", "\x{43E}"));
+ok($objBsCyrl->gt("\x{4E6}", "\x{41E}"));
+ok($objBsCyrl->gt("\x{4EB}", "\x{4E9}"));
+ok($objBsCyrl->gt("\x{4EA}", "\x{4E8}"));
+ok($objBsCyrl->gt("\x{45C}", "\x{43A}"));
+ok($objBsCyrl->gt("\x{40C}", "\x{41A}"));
+ok($objBsCyrl->gt("\x{4EF}", "\x{443}")); # not contraction
+ok($objBsCyrl->gt("\x{4EE}", "\x{423}")); # not contraction
+ok($objBsCyrl->gt("\x{45E}", "\x{443}"));
+ok($objBsCyrl->gt("\x{40E}", "\x{423}"));
+ok($objBsCyrl->gt("\x{4F1}", "\x{443}"));
+ok($objBsCyrl->gt("\x{4F0}", "\x{423}"));
+ok($objBsCyrl->gt("\x{4F3}", "\x{443}"));
+ok($objBsCyrl->gt("\x{4F2}", "\x{423}"));
+ok($objBsCyrl->gt("\x{4F5}", "\x{447}"));
+ok($objBsCyrl->gt("\x{4F4}", "\x{427}"));
+ok($objBsCyrl->gt("\x{4F9}", "\x{44B}"));
+ok($objBsCyrl->gt("\x{4F8}", "\x{42B}"));
+ok($objBsCyrl->gt("\x{4ED}", "\x{44D}"));
+ok($objBsCyrl->gt("\x{4EC}", "\x{42D}"));
+ok($objBsCyrl->gt("\x{477}", "\x{475}"));
+ok($objBsCyrl->gt("\x{476}", "\x{474}"));
+
+# 106
+
+$objBsCyrl->change(level => 3);
+
+for my $i ("", "\0") {
+  ok($objBsCyrl->eq("\x{4D1}", "\x{430}$i\x{306}"));
+  ok($objBsCyrl->eq("\x{4D0}", "\x{410}$i\x{306}"));
+  ok($objBsCyrl->eq("\x{4D3}", "\x{430}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4D2}", "\x{410}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4DB}", "\x{4D9}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4DA}", "\x{4D8}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{453}", "\x{433}$i\x{301}"));
+  ok($objBsCyrl->eq("\x{403}", "\x{413}$i\x{301}"));
+  ok($objBsCyrl->eq("\x{450}", "\x{435}$i\x{300}")); # not contraction
+  ok($objBsCyrl->eq("\x{400}", "\x{415}$i\x{300}")); # not contraction
+  ok($objBsCyrl->eq("\x{451}", "\x{435}$i\x{308}")); # not contraction
+  ok($objBsCyrl->eq("\x{401}", "\x{415}$i\x{308}")); # not contraction
+  ok($objBsCyrl->eq("\x{4D7}", "\x{435}$i\x{306}"));
+  ok($objBsCyrl->eq("\x{4D6}", "\x{415}$i\x{306}"));
+  ok($objBsCyrl->eq("\x{4C2}", "\x{436}$i\x{306}")); # not contraction
+  ok($objBsCyrl->eq("\x{4C1}", "\x{416}$i\x{306}")); # not contraction
+  ok($objBsCyrl->eq("\x{4DD}", "\x{436}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4DC}", "\x{416}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4DF}", "\x{437}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4DE}", "\x{417}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{45D}", "\x{438}$i\x{300}")); # not contraction
+  ok($objBsCyrl->eq("\x{40D}", "\x{418}$i\x{300}")); # not contraction
+  ok($objBsCyrl->eq("\x{4E3}", "\x{438}$i\x{304}")); # not contraction
+  ok($objBsCyrl->eq("\x{4E2}", "\x{418}$i\x{304}")); # not contraction
+  ok($objBsCyrl->eq("\x{4E5}", "\x{438}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4E4}", "\x{418}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{457}", "\x{456}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{407}", "\x{406}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{439}", "\x{438}$i\x{306}"));
+  ok($objBsCyrl->eq("\x{419}", "\x{418}$i\x{306}"));
+  ok($objBsCyrl->eq("\x{4E7}", "\x{43E}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4E6}", "\x{41E}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4EB}", "\x{4E9}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4EA}", "\x{4E8}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{45C}", "\x{43A}$i\x{301}"));
+  ok($objBsCyrl->eq("\x{40C}", "\x{41A}$i\x{301}"));
+  ok($objBsCyrl->eq("\x{4EF}", "\x{443}$i\x{304}")); # not contraction
+  ok($objBsCyrl->eq("\x{4EE}", "\x{423}$i\x{304}")); # not contraction
+  ok($objBsCyrl->eq("\x{45E}", "\x{443}$i\x{306}"));
+  ok($objBsCyrl->eq("\x{40E}", "\x{423}$i\x{306}"));
+  ok($objBsCyrl->eq("\x{4F1}", "\x{443}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4F0}", "\x{423}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4F3}", "\x{443}$i\x{30B}"));
+  ok($objBsCyrl->eq("\x{4F2}", "\x{423}$i\x{30B}"));
+  ok($objBsCyrl->eq("\x{4F5}", "\x{447}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4F4}", "\x{427}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4F9}", "\x{44B}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4F8}", "\x{42B}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4ED}", "\x{44D}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{4EC}", "\x{42D}$i\x{308}"));
+  ok($objBsCyrl->eq("\x{477}", "\x{475}$i\x{30F}"));
+  ok($objBsCyrl->eq("\x{476}", "\x{474}$i\x{30F}"));
+}
+
+# 210
diff --git a/cpan/Unicode-Collate/t/loc_ee.t b/cpan/Unicode-Collate/t/loc_ee.t
new file mode 100644 (file)
index 0000000..3b0ea27
--- /dev/null
@@ -0,0 +1,190 @@
+
+BEGIN {
+    unless ("A" eq pack('U', 0x41)) {
+       print "1..0 # Unicode::Collate " .
+           "cannot stringify a Unicode code point\n";
+       exit 0;
+    }
+    if ($ENV{PERL_CORE}) {
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+    }
+}
+
+use strict;
+use warnings;
+BEGIN { $| = 1; print "1..120\n"; }
+my $count = 0;
+sub ok ($;$) {
+    my $p = my $r = shift;
+    if (@_) {
+       my $x = shift;
+       $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
+    }
+    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
+}
+
+use Unicode::Collate::Locale;
+
+ok(1);
+
+#########################
+
+my $objEe = Unicode::Collate::Locale->
+    new(locale => 'EE', normalization => undef);
+
+ok($objEe->getlocale, 'ee');
+
+# 2
+
+$objEe->change(level => 1);
+
+ok($objEe->lt("d", "d\x{292}"));
+ok($objEe->gt("dz","d\x{292}"));
+ok($objEe->lt("dz","\x{256}"));
+ok($objEe->gt("e", "\x{256}"));
+ok($objEe->lt("e", "\x{25B}"));
+ok($objEe->gt("f", "\x{25B}"));
+ok($objEe->lt("f", "\x{192}"));
+ok($objEe->gt("g", "\x{192}"));
+
+ok($objEe->lt("gz","gb"));
+ok($objEe->lt("gb","\x{263}"));
+ok($objEe->gt("h", "\x{263}"));
+ok($objEe->lt("h", "hz"));
+ok($objEe->lt("hz","x"));
+ok($objEe->lt("x", "i"));
+
+# 16
+
+ok($objEe->lt("kz","kp"));
+ok($objEe->lt("kp","l"));
+ok($objEe->lt("nz","ny"));
+ok($objEe->lt("ny","\x{14B}"));
+ok($objEe->gt("o", "\x{14B}"));
+ok($objEe->lt("o", "\x{254}"));
+ok($objEe->gt("p", "\x{254}"));
+
+ok($objEe->lt("tz","ts"));
+ok($objEe->lt("ts","u"));
+ok($objEe->lt("u", "v"));
+ok($objEe->lt("v", "\x{28B}"));
+ok($objEe->gt("w", "\x{28B}"));
+
+# 28
+
+ok($objEe->eq("\x{302}",  "\x{30C}"));
+ok($objEe->eq("a\x{302}", "a\x{30C}"));
+ok($objEe->eq("A\x{302}", "A\x{30C}"));
+ok($objEe->eq("e\x{302}", "e\x{30C}"));
+ok($objEe->eq("E\x{302}", "E\x{30C}"));
+ok($objEe->eq("i\x{302}", "i\x{30C}"));
+ok($objEe->eq("I\x{302}", "I\x{30C}"));
+ok($objEe->eq("o\x{302}", "o\x{30C}"));
+ok($objEe->eq("O\x{302}", "O\x{30C}"));
+ok($objEe->eq("u\x{302}", "u\x{30C}"));
+ok($objEe->eq("U\x{302}", "U\x{30C}"));
+ok($objEe->eq("y\x{302}", "y\x{30C}"));
+ok($objEe->eq("Y\x{302}", "Y\x{30C}"));
+
+# 41
+
+$objEe->change(level => 2);
+
+ok($objEe->gt("\x{302}",  "\x{30C}"));
+ok($objEe->gt("a\x{302}", "a\x{30C}"));
+ok($objEe->gt("A\x{302}", "A\x{30C}"));
+ok($objEe->gt("e\x{302}", "e\x{30C}"));
+ok($objEe->gt("E\x{302}", "E\x{30C}"));
+ok($objEe->gt("i\x{302}", "i\x{30C}"));
+ok($objEe->gt("I\x{302}", "I\x{30C}"));
+ok($objEe->gt("o\x{302}", "o\x{30C}"));
+ok($objEe->gt("O\x{302}", "O\x{30C}"));
+ok($objEe->gt("u\x{302}", "u\x{30C}"));
+ok($objEe->gt("U\x{302}", "U\x{30C}"));
+ok($objEe->gt("y\x{302}", "y\x{30C}"));
+ok($objEe->gt("Y\x{302}", "Y\x{30C}"));
+
+# 54
+
+ok($objEe->eq("dz", "Dz"));
+ok($objEe->eq("Dz", "DZ"));
+ok($objEe->eq("\x{256}", "\x{189}"));
+ok($objEe->eq("\x{25B}", "\x{190}"));
+ok($objEe->eq("\x{192}", "\x{191}"));
+ok($objEe->eq("gb", "Gb"));
+ok($objEe->eq("Gb", "GB"));
+ok($objEe->eq("\x{263}", "\x{194}"));
+ok($objEe->eq("x", "X"));
+ok($objEe->eq("kp", "Kp"));
+ok($objEe->eq("Kp", "KP"));
+ok($objEe->eq("ny", "Ny"));
+ok($objEe->eq("Ny", "NY"));
+ok($objEe->eq("\x{14B}", "\x{14A}"));
+ok($objEe->eq("\x{254}", "\x{186}"));
+ok($objEe->eq("ts", "Ts"));
+ok($objEe->eq("Ts", "TS"));
+ok($objEe->eq("\x{28B}", "\x{1B2}"));
+
+# 72
+
+$objEe->change(level => 3);
+
+ok($objEe->lt("dz", "Dz"));
+ok($objEe->lt("Dz", "DZ"));
+ok($objEe->lt("\x{256}", "\x{189}"));
+ok($objEe->lt("\x{25B}", "\x{190}"));
+ok($objEe->lt("\x{192}", "\x{191}"));
+ok($objEe->lt("gb", "Gb"));
+ok($objEe->lt("Gb", "GB"));
+ok($objEe->lt("\x{263}", "\x{194}"));
+ok($objEe->lt("x", "X"));
+ok($objEe->lt("kp", "Kp"));
+ok($objEe->lt("Kp", "KP"));
+ok($objEe->lt("ny", "Ny"));
+ok($objEe->lt("Ny", "NY"));
+ok($objEe->lt("\x{14B}", "\x{14A}"));
+ok($objEe->lt("\x{254}", "\x{186}"));
+ok($objEe->lt("ts", "Ts"));
+ok($objEe->lt("Ts", "TS"));
+ok($objEe->lt("\x{28B}", "\x{1B2}"));
+
+# 90
+
+ok($objEe->eq("a\x{302}", pack('U', 0xE2)));
+ok($objEe->eq("A\x{302}", pack('U', 0xC2)));
+ok($objEe->eq("e\x{302}", pack('U', 0xEA)));
+ok($objEe->eq("E\x{302}", pack('U', 0xCA)));
+ok($objEe->eq("i\x{302}", pack('U', 0xEE)));
+ok($objEe->eq("I\x{302}", pack('U', 0xCE)));
+ok($objEe->eq("o\x{302}", pack('U', 0xF4)));
+ok($objEe->eq("O\x{302}", pack('U', 0xD4)));
+ok($objEe->eq("u\x{302}", pack('U', 0xFB)));
+ok($objEe->eq("U\x{302}", pack('U', 0xDB)));
+ok($objEe->eq("y\x{302}", "\x{177}"));
+ok($objEe->eq("Y\x{302}", "\x{176}"));
+
+# 102
+
+$objEe->change(upper_before_lower => 1);
+
+ok($objEe->gt("dz", "Dz"));
+ok($objEe->gt("Dz", "DZ"));
+ok($objEe->gt("\x{256}", "\x{189}"));
+ok($objEe->gt("\x{25B}", "\x{190}"));
+ok($objEe->gt("\x{192}", "\x{191}"));
+ok($objEe->gt("gb", "Gb"));
+ok($objEe->gt("Gb", "GB"));
+ok($objEe->gt("\x{263}", "\x{194}"));
+ok($objEe->gt("x", "X"));
+ok($objEe->gt("kp", "Kp"));
+ok($objEe->gt("Kp", "KP"));
+ok($objEe->gt("ny", "Ny"));
+ok($objEe->gt("Ny", "NY"));
+ok($objEe->gt("\x{14B}", "\x{14A}"));
+ok($objEe->gt("\x{254}", "\x{186}"));
+ok($objEe->gt("ts", "Ts"));
+ok($objEe->gt("Ts", "TS"));
+ok($objEe->gt("\x{28B}", "\x{1B2}"));
+
+# 120
index 6f29c4f..3582d3e 100644 (file)
@@ -69,7 +69,7 @@ ok($objSq->lt("xz","xh"));
 ok($objSq->gt("y", "xh"));
 ok($objSq->lt("z", "zh"));
 ok($objSq->lt("zz","zh"));
-ok($objSq->lt("zh", "\x{1B7}"));
+ok($objSq->lt("zh","\x{1B7}"));
 
 # 35
 
index 0c992f6..2dd3994 100644 (file)
@@ -13,7 +13,7 @@ BEGIN {
 
 use strict;
 use warnings;
-BEGIN { $| = 1; print "1..25\n"; }
+BEGIN { $| = 1; print "1..47\n"; }
 my $count = 0;
 sub ok ($;$) {
     my $p = my $r = shift;
@@ -43,13 +43,10 @@ $objTh->change(level => 1);
 ok($objTh->eq("\x{E2F}", ""));
 ok($objTh->eq("\x{E46}", ""));
 ok($objTh->eq("\x{E4F}", ""));
+ok($objTh->eq("\x{E5A}", ""));
+ok($objTh->eq("\x{E5B}", ""));
 
-# 5
-
-$objTh->change(variable => "non-ignorable");
-
-ok($objTh->lt("\x{E2F}", "\x{E46}"));
-ok($objTh->lt("\x{E46}", "\x{E4F}"));
+# 7
 
 ok($objTh->lt("\x{E2E}", "\x{E4D}"));
 ok($objTh->lt("\x{E4D}", "\x{E30}"));
@@ -64,8 +61,9 @@ ok($objTh->eq("\x{E47}", ""));
 ok($objTh->eq("\x{E48}", ""));
 ok($objTh->eq("\x{E49}", ""));
 ok($objTh->eq("\x{E4A}", ""));
+ok($objTh->eq("\x{E4B}", ""));
 
-# 16
+# 17
 
 $objTh->change(level => 2);
 
@@ -77,13 +75,49 @@ ok($objTh->lt("\x{E49}", "\x{E4A}"));
 ok($objTh->lt("\x{E4A}", "\x{E4B}"));
 
 ok($objTh->eq("\x{E32}", "\x{E45}"));
+ok($objTh->eq("\x{E32}\x{E4D}", "\x{E4D}\x{E32}"));
+ok($objTh->eq("\x{E4D}\x{E32}", "\x{E33}"));
+ok($objTh->eq("\x{E4D}\x{E45}", "\x{E45}\x{E4D}"));
 
-# 23
+# 27
 
 $objTh->change(level => 3);
 
 ok($objTh->lt("\x{E32}", "\x{E45}"));
+ok($objTh->lt("\x{E32}\x{E4D}", "\x{E4D}\x{E32}"));
+ok($objTh->lt("\x{E4D}\x{E32}", "\x{E33}"));
+ok($objTh->lt("\x{E4D}\x{E45}", "\x{E45}\x{E4D}"));
+
+ok($objTh->eq("\x{E4F}", "\x{E2F}"));
+ok($objTh->eq("\x{E2F}", "\x{E5A}"));
+ok($objTh->eq("\x{E5A}", "\x{E5B}"));
+ok($objTh->eq("\x{E5B}", "\x{E46}"));
+
+# 35
+
+$objTh->change(level => 4);
+
+ok($objTh->lt("\x{E4F}", "\x{E2F}"));
+ok($objTh->lt("\x{E2F}", "\x{E5A}"));
+ok($objTh->lt("\x{E5A}", "\x{E5B}"));
+ok($objTh->lt("\x{E5B}", "\x{E46}"));
+
+# 39
+
+$objTh->change(level => 1);
+
+ok($objTh->eq("\x{E4F}", "\x{E2F}"));
+ok($objTh->eq("\x{E2F}", "\x{E5A}"));
+ok($objTh->eq("\x{E5A}", "\x{E5B}"));
+ok($objTh->eq("\x{E5B}", "\x{E46}"));
+
+# 43
+
+$objTh->change(variable => "non-ignorable");
 
-ok($objTh->eq("\x{E33}", "\x{E4D}\x{E32}"));
+ok($objTh->lt("\x{E4F}", "\x{E2F}"));
+ok($objTh->lt("\x{E2F}", "\x{E5A}"));
+ok($objTh->lt("\x{E5A}", "\x{E5B}"));
+ok($objTh->lt("\x{E5B}", "\x{E46}"));
 
-# 25
+# 47
index 55aadde..8fddb91 100644 (file)
@@ -13,7 +13,7 @@ BEGIN {
 
 use strict;
 use warnings;
-BEGIN { $| = 1; print "1..132\n"; }
+BEGIN { $| = 1; print "1..122\n"; }
 my $count = 0;
 sub ok ($;$) {
     my $p = my $r = shift;
@@ -45,33 +45,55 @@ ok($objTo->lt("z", "\x{2BD}"));
 
 # 7
 
-ok($objTo->eq("a", "a\x{304}"));
-ok($objTo->eq("A", "A\x{304}"));
-ok($objTo->eq("e", "e\x{304}"));
-ok($objTo->eq("E", "E\x{304}"));
-ok($objTo->eq("i", "i\x{304}"));
-ok($objTo->eq("I", "I\x{304}"));
-ok($objTo->eq("o", "o\x{304}"));
-ok($objTo->eq("O", "O\x{304}"));
-ok($objTo->eq("u", "u\x{304}"));
-ok($objTo->eq("U", "U\x{304}"));
+ok($objTo->eq("a", "a\x{301}"));
+ok($objTo->eq("A", "A\x{301}"));
+ok($objTo->eq("e", "e\x{301}"));
+ok($objTo->eq("E", "E\x{301}"));
+ok($objTo->eq("i", "i\x{301}"));
+ok($objTo->eq("I", "I\x{301}"));
+ok($objTo->eq("o", "o\x{301}"));
+ok($objTo->eq("O", "O\x{301}"));
+ok($objTo->eq("u", "u\x{301}"));
+ok($objTo->eq("U", "U\x{301}"));
+
+ok($objTo->eq("a\x{301}", "a\x{304}"));
+ok($objTo->eq("A\x{301}", "A\x{304}"));
+ok($objTo->eq("e\x{301}", "e\x{304}"));
+ok($objTo->eq("E\x{301}", "E\x{304}"));
+ok($objTo->eq("i\x{301}", "i\x{304}"));
+ok($objTo->eq("I\x{301}", "I\x{304}"));
+ok($objTo->eq("o\x{301}", "o\x{304}"));
+ok($objTo->eq("O\x{301}", "O\x{304}"));
+ok($objTo->eq("u\x{301}", "u\x{304}"));
+ok($objTo->eq("U\x{301}", "U\x{304}"));
 
-# 17
+# 27
 
 $objTo->change(level => 2);
 
-ok($objTo->lt("a", "a\x{304}"));
-ok($objTo->lt("A", "A\x{304}"));
-ok($objTo->lt("e", "e\x{304}"));
-ok($objTo->lt("E", "E\x{304}"));
-ok($objTo->lt("i", "i\x{304}"));
-ok($objTo->lt("I", "I\x{304}"));
-ok($objTo->lt("o", "o\x{304}"));
-ok($objTo->lt("O", "O\x{304}"));
-ok($objTo->lt("u", "u\x{304}"));
-ok($objTo->lt("U", "U\x{304}"));
-
-# 27
+ok($objTo->lt("a", "a\x{301}"));
+ok($objTo->lt("A", "A\x{301}"));
+ok($objTo->lt("e", "e\x{301}"));
+ok($objTo->lt("E", "E\x{301}"));
+ok($objTo->lt("i", "i\x{301}"));
+ok($objTo->lt("I", "I\x{301}"));
+ok($objTo->lt("o", "o\x{301}"));
+ok($objTo->lt("O", "O\x{301}"));
+ok($objTo->lt("u", "u\x{301}"));
+ok($objTo->lt("U", "U\x{301}"));
+
+ok($objTo->lt("a\x{301}", "a\x{304}"));
+ok($objTo->lt("A\x{301}", "A\x{304}"));
+ok($objTo->lt("e\x{301}", "e\x{304}"));
+ok($objTo->lt("E\x{301}", "E\x{304}"));
+ok($objTo->lt("i\x{301}", "i\x{304}"));
+ok($objTo->lt("I\x{301}", "I\x{304}"));
+ok($objTo->lt("o\x{301}", "o\x{304}"));
+ok($objTo->lt("O\x{301}", "O\x{304}"));
+ok($objTo->lt("u\x{301}", "u\x{304}"));
+ok($objTo->lt("U\x{301}", "U\x{304}"));
+
+# 47
 
 ok($objTo->eq("ng", "Ng"));
 ok($objTo->eq("Ng", "NG"));
@@ -79,29 +101,18 @@ ok($objTo->eq("NG", "\x{14B}"));
 ok($objTo->eq("\x{14B}", "\x{14A}"));
 ok($objTo->eq("\x{2BB}", "\x{2BD}"));
 
-ok($objTo->eq("a\x{304}", "A\x{304}"));
 ok($objTo->eq("a\x{301}", "A\x{301}"));
-ok($objTo->eq("e\x{304}", "E\x{304}"));
+ok($objTo->eq("a\x{304}", "A\x{304}"));
 ok($objTo->eq("e\x{301}", "E\x{301}"));
-ok($objTo->eq("i\x{304}", "I\x{304}"));
+ok($objTo->eq("e\x{304}", "E\x{304}"));
 ok($objTo->eq("i\x{301}", "I\x{301}"));
-ok($objTo->eq("o\x{304}", "O\x{304}"));
+ok($objTo->eq("i\x{304}", "I\x{304}"));
 ok($objTo->eq("o\x{301}", "O\x{301}"));
-ok($objTo->eq("u\x{304}", "U\x{304}"));
+ok($objTo->eq("o\x{304}", "O\x{304}"));
 ok($objTo->eq("u\x{301}", "U\x{301}"));
+ok($objTo->eq("u\x{304}", "U\x{304}"));
 
-ok($objTo->eq("a\x{304}", "a\x{301}"));
-ok($objTo->eq("A\x{304}", "A\x{301}"));
-ok($objTo->eq("e\x{304}", "e\x{301}"));
-ok($objTo->eq("E\x{304}", "E\x{301}"));
-ok($objTo->eq("i\x{304}", "i\x{301}"));
-ok($objTo->eq("I\x{304}", "I\x{301}"));
-ok($objTo->eq("o\x{304}", "o\x{301}"));
-ok($objTo->eq("O\x{304}", "O\x{301}"));
-ok($objTo->eq("u\x{304}", "u\x{301}"));
-ok($objTo->eq("U\x{304}", "U\x{301}"));
-
-# 52
+# 62
 
 $objTo->change(level => 3);
 
@@ -111,41 +122,19 @@ ok($objTo->lt("NG", "\x{14B}"));
 ok($objTo->lt("\x{14B}", "\x{14A}"));
 ok($objTo->lt("\x{2BB}", "\x{2BD}"));
 
-ok($objTo->lt("a\x{304}", "A\x{304}"));
 ok($objTo->lt("a\x{301}", "A\x{301}"));
-ok($objTo->lt("e\x{304}", "E\x{304}"));
+ok($objTo->lt("a\x{304}", "A\x{304}"));
 ok($objTo->lt("e\x{301}", "E\x{301}"));
-ok($objTo->lt("i\x{304}", "I\x{304}"));
+ok($objTo->lt("e\x{304}", "E\x{304}"));
 ok($objTo->lt("i\x{301}", "I\x{301}"));
-ok($objTo->lt("o\x{304}", "O\x{304}"));
+ok($objTo->lt("i\x{304}", "I\x{304}"));
 ok($objTo->lt("o\x{301}", "O\x{301}"));
-ok($objTo->lt("u\x{304}", "U\x{304}"));
+ok($objTo->lt("o\x{304}", "O\x{304}"));
 ok($objTo->lt("u\x{301}", "U\x{301}"));
-
-ok($objTo->lt("a\x{304}", "a\x{301}"));
-ok($objTo->lt("A\x{304}", "A\x{301}"));
-ok($objTo->lt("e\x{304}", "e\x{301}"));
-ok($objTo->lt("E\x{304}", "E\x{301}"));
-ok($objTo->lt("i\x{304}", "i\x{301}"));
-ok($objTo->lt("I\x{304}", "I\x{301}"));
-ok($objTo->lt("o\x{304}", "o\x{301}"));
-ok($objTo->lt("O\x{304}", "O\x{301}"));
-ok($objTo->lt("u\x{304}", "u\x{301}"));
-ok($objTo->lt("U\x{304}", "U\x{301}"));
+ok($objTo->lt("u\x{304}", "U\x{304}"));
 
 # 77
 
-ok($objTo->eq("a\x{304}", "\x{101}"));
-ok($objTo->eq("A\x{304}", "\x{100}"));
-ok($objTo->eq("e\x{304}", "\x{113}"));
-ok($objTo->eq("E\x{304}", "\x{112}"));
-ok($objTo->eq("i\x{304}", "\x{12B}"));
-ok($objTo->eq("I\x{304}", "\x{12A}"));
-ok($objTo->eq("o\x{304}", "\x{14D}"));
-ok($objTo->eq("O\x{304}", "\x{14C}"));
-ok($objTo->eq("u\x{304}", "\x{16B}"));
-ok($objTo->eq("U\x{304}", "\x{16A}"));
-
 ok($objTo->eq("a\x{301}", pack('U', 0xE1)));
 ok($objTo->eq("a\x{341}", pack('U', 0xE1)));
 ok($objTo->eq("A\x{301}", pack('U', 0xC1)));
@@ -167,6 +156,17 @@ ok($objTo->eq("u\x{341}", pack('U', 0xFA)));
 ok($objTo->eq("U\x{301}", pack('U', 0xDA)));
 ok($objTo->eq("U\x{341}", pack('U', 0xDA)));
 
+ok($objTo->eq("a\x{304}", "\x{101}"));
+ok($objTo->eq("A\x{304}", "\x{100}"));
+ok($objTo->eq("e\x{304}", "\x{113}"));
+ok($objTo->eq("E\x{304}", "\x{112}"));
+ok($objTo->eq("i\x{304}", "\x{12B}"));
+ok($objTo->eq("I\x{304}", "\x{12A}"));
+ok($objTo->eq("o\x{304}", "\x{14D}"));
+ok($objTo->eq("O\x{304}", "\x{14C}"));
+ok($objTo->eq("u\x{304}", "\x{16B}"));
+ok($objTo->eq("U\x{304}", "\x{16A}"));
+
 # 107
 
 $objTo->change(upper_before_lower => 1);
@@ -177,26 +177,15 @@ ok($objTo->lt("NG", "\x{14B}"));
 ok($objTo->gt("\x{14B}", "\x{14A}"));
 ok($objTo->lt("\x{2BB}", "\x{2BD}"));
 
-ok($objTo->gt("a\x{304}", "A\x{304}"));
 ok($objTo->gt("a\x{301}", "A\x{301}"));
-ok($objTo->gt("e\x{304}", "E\x{304}"));
+ok($objTo->gt("a\x{304}", "A\x{304}"));
 ok($objTo->gt("e\x{301}", "E\x{301}"));
-ok($objTo->gt("i\x{304}", "I\x{304}"));
+ok($objTo->gt("e\x{304}", "E\x{304}"));
 ok($objTo->gt("i\x{301}", "I\x{301}"));
-ok($objTo->gt("o\x{304}", "O\x{304}"));
+ok($objTo->gt("i\x{304}", "I\x{304}"));
 ok($objTo->gt("o\x{301}", "O\x{301}"));
-ok($objTo->gt("u\x{304}", "U\x{304}"));
+ok($objTo->gt("o\x{304}", "O\x{304}"));
 ok($objTo->gt("u\x{301}", "U\x{301}"));
+ok($objTo->gt("u\x{304}", "U\x{304}"));
 
-ok($objTo->lt("a\x{304}", "a\x{301}"));
-ok($objTo->lt("A\x{304}", "A\x{301}"));
-ok($objTo->lt("e\x{304}", "e\x{301}"));
-ok($objTo->lt("E\x{304}", "E\x{301}"));
-ok($objTo->lt("i\x{304}", "i\x{301}"));
-ok($objTo->lt("I\x{304}", "I\x{301}"));
-ok($objTo->lt("o\x{304}", "o\x{301}"));
-ok($objTo->lt("O\x{304}", "O\x{301}"));
-ok($objTo->lt("u\x{304}", "u\x{301}"));
-ok($objTo->lt("U\x{304}", "U\x{301}"));
-
-# 132
+# 122
index df3a6e7..9867049 100644 (file)
@@ -13,7 +13,7 @@ BEGIN {
 
 use strict;
 use warnings;
-BEGIN { $| = 1; print "1..208\n"; }
+BEGIN { $| = 1; print "1..203\n"; }
 my $count = 0;
 sub ok ($;$) {
     my $p = my $r = shift;
@@ -39,10 +39,8 @@ $objUk->change(level => 1);
 
 ok($objUk->gt("\x{491}", "\x{433}"));
 ok($objUk->lt("\x{491}", "\x{434}"));
-ok($objUk->gt("\x{44C}", "\x{44F}"));
-ok($objUk->lt("\x{44C}", "\x{519}"));
 
-# 6
+# 4
 
 ok($objUk->gt("\x{4E5}", "\x{438}")); # not suppressed
 ok($objUk->gt("\x{4E4}", "\x{418}")); # not suppressed
@@ -51,7 +49,7 @@ ok($objUk->gt("\x{407}", "\x{406}")); # not suppressed
 ok($objUk->gt("\x{439}", "\x{438}")); # not suppressed
 ok($objUk->gt("\x{419}", "\x{418}")); # not suppressed
 
-# 12
+# 10
 
 ok($objUk->eq("\x{4D1}", "\x{430}"));
 ok($objUk->eq("\x{4D0}", "\x{410}"));
@@ -100,14 +98,13 @@ ok($objUk->eq("\x{4EC}", "\x{42D}"));
 ok($objUk->eq("\x{477}", "\x{475}"));
 ok($objUk->eq("\x{476}", "\x{474}"));
 
-# 58
+# 56
 
 $objUk->change(level => 2);
 
 ok($objUk->eq("\x{491}", "\x{490}"));
-ok($objUk->eq("\x{44C}", "\x{42C}"));
 
-# 60
+# 57
 
 ok($objUk->gt("\x{4D1}", "\x{430}"));
 ok($objUk->gt("\x{4D0}", "\x{410}"));
@@ -156,14 +153,13 @@ ok($objUk->gt("\x{4EC}", "\x{42D}"));
 ok($objUk->gt("\x{477}", "\x{475}"));
 ok($objUk->gt("\x{476}", "\x{474}"));
 
-# 106
+# 103
 
 $objUk->change(level => 3);
 
 ok($objUk->lt("\x{491}", "\x{490}"));
-ok($objUk->lt("\x{44C}", "\x{42C}"));
 
-# 108
+# 104
 
 ok($objUk->eq("\x{4E5}", "\x{438}\x{308}")); # not suppressed
 ok($objUk->eq("\x{4E4}", "\x{418}\x{308}")); # not suppressed
@@ -172,7 +168,7 @@ ok($objUk->eq("\x{407}", "\x{406}\x{308}")); # not suppressed
 ok($objUk->eq("\x{439}", "\x{438}\x{306}")); # not suppressed
 ok($objUk->eq("\x{419}", "\x{418}\x{306}")); # not suppressed
 
-# 114
+# 110
 
 for my $i ("", "\0") {
   ok($objUk->eq("\x{4D1}", "\x{430}$i\x{306}"));
@@ -223,11 +219,10 @@ for my $i ("", "\0") {
   ok($objUk->eq("\x{476}", "\x{474}$i\x{30F}"));
 }
 
-# 206
+# 202
 
 $objUk->change(upper_before_lower => 1);
 
 ok($objUk->gt("\x{491}", "\x{490}"));
-ok($objUk->gt("\x{44C}", "\x{42C}"));
 
-# 208
+# 203