From bd65daabad8a8b02a5d670456ceb2ca31f9d26cd Mon Sep 17 00:00:00 2001 From: Chris 'BinGOs' Williams Date: Sun, 2 Oct 2011 19:36:35 +0100 Subject: [PATCH] Update Unicode-Collate to CPAN version 0.79 [DELTA] 0.79 Sun Oct 2 20:31:01 2011 - pod: [rt.cpan.org #70241] Fix minor grammar error in manpage by Harlan Lieberman-Berg. - 'suppress' no longer affects contractions via 'entry'. - U::C::Locale newly supports locales: as, fi__phonebook, gu. - added loc_as.t, loc_fiph.t, loc_gu in t. - updated some locales to CLDR 2.0 : ar, be, bg. --- MANIFEST | 8 + Porting/Maintainers.pl | 2 +- cpan/Unicode-Collate/Changes | 8 + cpan/Unicode-Collate/Collate.pm | 13 +- cpan/Unicode-Collate/Collate/Locale.pm | 83 +++++++++- cpan/Unicode-Collate/Collate/Locale/ar.pl | 13 +- cpan/Unicode-Collate/Collate/Locale/as.pl | 9 ++ cpan/Unicode-Collate/Collate/Locale/be.pl | 42 +++++ cpan/Unicode-Collate/Collate/Locale/bg.pl | 44 +++++ cpan/Unicode-Collate/Collate/Locale/fi_phone.pl | 61 +++++++ cpan/Unicode-Collate/Collate/Locale/gu.pl | 7 + cpan/Unicode-Collate/README | 2 +- cpan/Unicode-Collate/t/contract.t | 10 +- cpan/Unicode-Collate/t/default.t | 18 ++- cpan/Unicode-Collate/t/loc_ar.t | 41 ++++- cpan/Unicode-Collate/t/loc_as.t | 41 +++++ cpan/Unicode-Collate/t/loc_be.t | 203 +++++++++++++----------- cpan/Unicode-Collate/t/loc_bg.t | 178 ++++++++++++--------- cpan/Unicode-Collate/t/loc_ca.t | 36 ++--- cpan/Unicode-Collate/t/loc_fiph.t | 149 +++++++++++++++++ cpan/Unicode-Collate/t/loc_gu.t | 41 +++++ pod/perldelta.pod | 4 + 22 files changed, 800 insertions(+), 213 deletions(-) create mode 100644 cpan/Unicode-Collate/Collate/Locale/as.pl create mode 100644 cpan/Unicode-Collate/Collate/Locale/be.pl create mode 100644 cpan/Unicode-Collate/Collate/Locale/bg.pl create mode 100644 cpan/Unicode-Collate/Collate/Locale/fi_phone.pl create mode 100644 cpan/Unicode-Collate/Collate/Locale/gu.pl create mode 100644 cpan/Unicode-Collate/t/loc_as.t create mode 100644 cpan/Unicode-Collate/t/loc_fiph.t create mode 100644 cpan/Unicode-Collate/t/loc_gu.t diff --git a/MANIFEST b/MANIFEST index b6eaf80..432b6af 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2670,7 +2670,10 @@ cpan/Unicode-Collate/Collate/CJK/Stroke.pm Unicode::Collate cpan/Unicode-Collate/Collate/keys.txt Unicode::Collate cpan/Unicode-Collate/Collate/Locale/af.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/ar.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/as.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/az.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/be.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/bg.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/ca.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/cs.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/cy.pl Unicode::Collate @@ -2681,9 +2684,11 @@ cpan/Unicode-Collate/Collate/Locale/es.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/es_trad.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/et.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/fil.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/fi_phone.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/fi.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/fo.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/fr.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/gu.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/ha.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/haw.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/hr.pl Unicode::Collate @@ -2749,6 +2754,7 @@ cpan/Unicode-Collate/t/illegal.t Unicode::Collate cpan/Unicode-Collate/t/index.t Unicode::Collate cpan/Unicode-Collate/t/loc_af.t Unicode::Collate cpan/Unicode-Collate/t/loc_ar.t Unicode::Collate +cpan/Unicode-Collate/t/loc_as.t Unicode::Collate cpan/Unicode-Collate/t/loc_az.t Unicode::Collate cpan/Unicode-Collate/t/loc_be.t Unicode::Collate cpan/Unicode-Collate/t/loc_bg.t Unicode::Collate @@ -2764,9 +2770,11 @@ cpan/Unicode-Collate/t/loc_es.t Unicode::Collate cpan/Unicode-Collate/t/loc_estr.t Unicode::Collate cpan/Unicode-Collate/t/loc_et.t Unicode::Collate cpan/Unicode-Collate/t/loc_fil.t Unicode::Collate +cpan/Unicode-Collate/t/loc_fiph.t Unicode::Collate cpan/Unicode-Collate/t/loc_fi.t Unicode::Collate cpan/Unicode-Collate/t/loc_fo.t Unicode::Collate cpan/Unicode-Collate/t/loc_fr.t Unicode::Collate +cpan/Unicode-Collate/t/loc_gu.t Unicode::Collate cpan/Unicode-Collate/t/loc_ha.t Unicode::Collate cpan/Unicode-Collate/t/loc_haw.t Unicode::Collate cpan/Unicode-Collate/t/loc_hr.t Unicode::Collate diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index b4c8211..d0dfd8a 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -1970,7 +1970,7 @@ use File::Glob qw(:case); 'Unicode::Collate' => { 'MAINTAINER' => 'sadahiro', - 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-0.78.tar.gz', + 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-0.79.tar.gz', 'FILES' => q[cpan/Unicode-Collate], 'EXCLUDED' => [ qr{N$}, qr{^data/}, diff --git a/cpan/Unicode-Collate/Changes b/cpan/Unicode-Collate/Changes index 4794583..f7c6e30 100644 --- a/cpan/Unicode-Collate/Changes +++ b/cpan/Unicode-Collate/Changes @@ -1,5 +1,13 @@ Revision history for Perl module Unicode::Collate. +0.79 Sun Oct 2 20:31:01 2011 + - pod: [rt.cpan.org #70241] Fix minor grammar error in manpage + by Harlan Lieberman-Berg. + - 'suppress' no longer affects contractions via 'entry'. + - U::C::Locale newly supports locales: as, fi__phonebook, gu. + - added loc_as.t, loc_fiph.t, loc_gu in t. + - updated some locales to CLDR 2.0 : ar, be, bg. + 0.78 Mon Jul 25 21:29:50 2011 - tried fixing the tarball with world writable files. ( http://www.perlmonks.org/?node_id=731935 ) diff --git a/cpan/Unicode-Collate/Collate.pm b/cpan/Unicode-Collate/Collate.pm index fac2cce..7a86032 100644 --- a/cpan/Unicode-Collate/Collate.pm +++ b/cpan/Unicode-Collate/Collate.pm @@ -14,7 +14,7 @@ use File::Spec; no warnings 'utf8'; -our $VERSION = '0.78'; +our $VERSION = '0.79'; our $PACKAGE = __PACKAGE__; ### begin XS only ### @@ -269,7 +269,7 @@ sub new if ($self->{entry}) { while ($self->{entry} =~ /([^\n]+)/g) { - $self->parseEntry($1); + $self->parseEntry($1, TRUE); } } @@ -367,6 +367,7 @@ sub parseEntry { my $self = shift; my $line = shift; + my $tailoring = shift; my($name, $entry, @uv, @key); if (defined $self->{rewrite}) { @@ -387,7 +388,7 @@ sub parseEntry @uv = _getHexArray($e); return if !@uv; - return if @uv > 1 && $self->{suppressHash} && + return if @uv > 1 && $self->{suppressHash} && !$tailoring && exists $self->{suppressHash}{$uv[0]}; $entry = join(CODE_SEP, @uv); # in JCPS @@ -1443,7 +1444,7 @@ rewriting lines on reading an unmodified table every time. UTS #35 (LDML). Contractions beginning with the specified characters are suppressed, -even if those contractions are defined in C or C. +even if those contractions are defined in C
. An example for Russian and some languages using the Cyrillic script: @@ -1451,6 +1452,8 @@ An example for Russian and some languages using the Cyrillic script: where 0x0400 stands for C, CYRILLIC CAPITAL LETTER IE WITH GRAVE. +B: Contractions via C are not be suppressed. + =item table -- see 3.2 Default Unicode Collation Element Table, UTS #10. @@ -1534,7 +1537,7 @@ this parameter doesn't work validly. -- see 3.2.2 Variable Weighting, UTS #10. -This key allows to variable weighting for variable collation elements, +This key allows for variable weighting of variable collation elements, which are marked with an ASTERISK in the table (NOTE: Many punctuation marks and symbols are variable in F). diff --git a/cpan/Unicode-Collate/Collate/Locale.pm b/cpan/Unicode-Collate/Collate/Locale.pm index 749c64c..92bdf24 100644 --- a/cpan/Unicode-Collate/Collate/Locale.pm +++ b/cpan/Unicode-Collate/Collate/Locale.pm @@ -4,7 +4,7 @@ use strict; use Carp; use base qw(Unicode::Collate); -our $VERSION = '0.76'; +our $VERSION = '0.79'; use File::Spec; @@ -12,15 +12,14 @@ use File::Spec; my $PL_EXT = '.pl'; my %LocaleFile = map { ($_, $_) } qw( - af ar az ca cs cy da eo es et fi fil fo fr ha haw - hr hu hy ig is ja kk kl ko lt lv mt nb nn nso om pl ro ru - se sk sl sq sv tn to tr uk vi wo yo zh + af ar as az be bg ca cs cy da eo es et fi fil fo fr gu + ha haw hr hu hy ig is ja kk kl ko lt lv mt nb nn nso om + pl ro ru se sk sl sq sv tn to tr uk vi wo yo zh ); $LocaleFile{'default'} = ''; $LocaleFile{'de__phonebook'} = 'de_phone'; $LocaleFile{'es__traditional'} = 'es_trad'; - $LocaleFile{'be'} = 'ru'; - $LocaleFile{'bg'} = 'ru'; + $LocaleFile{'fi__phonebook'} = 'fi_phone'; $LocaleFile{'mk'} = 'ru'; $LocaleFile{'sr'} = 'ru'; $LocaleFile{'zh__big5han'} = 'zh_big5'; @@ -84,6 +83,73 @@ sub new { 1; __END__ +MEMORANDA for developing + +locale based CLDR +---------------------------------------------------------------------------- +af 2.0 = 1.8.1 +ar 2.0 +as 2.0 = 1.8.1 +az 2.0 = 1.8.1 +be 2.0 +bg 2.0 +ca 2.0 = 1.8.1 (alt="proposed" type="standard") +cs 2.0 = 1.8.1 (type="standard") +cy 2.0 = 1.8.1 +da 2.0 = 1.8.1 (type="standard") [AA's to pass CLDR tests] +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 +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 +haw +hr +hu +hy +ig +is +ja +kk +kl +ko +lt +lv +mk +mt +nb +nn +nso +om +pl +ro +ru +se +sk +sl +sq +sr +sv +tn +to +tr +uk +vi +wo +yo +zh +zh__big5han +zh__gb2312han +zh__pinyin +zh__stroke +---------------------------------------------------------------------------- + =head1 NAME Unicode::Collate::Locale - Linguistic tailoring for DUCET via Unicode::Collate @@ -190,6 +256,7 @@ this method returns a string C<'default'> meaning no special tailoring. ---------------------------------------------------------- af Afrikaans ar Arabic + as Assamese az Azerbaijani (Azeri) be Belarusian bg Bulgarian @@ -202,10 +269,12 @@ this method returns a string C<'default'> meaning no special tailoring. es Spanish es__traditional Spanish ('ch' and 'll' as a grapheme) et Estonian - fi Finnish + fi Finnish (v and w are primary equal) + fi__phonebook Finnish (v and w as separate characters) fil Filipino fo Faroese fr French + gu Gujarati ha Hausa haw Hawaiian hr Croatian diff --git a/cpan/Unicode-Collate/Collate/Locale/ar.pl b/cpan/Unicode-Collate/Collate/Locale/ar.pl index 516e02d..bd71ba2 100644 --- a/cpan/Unicode-Collate/Collate/Locale/ar.pl +++ b/cpan/Unicode-Collate/Collate/Locale/ar.pl @@ -1,7 +1,14 @@ +{ entry => <<'ENTRY', # for DUCET v6.0.0 -0629 ; [.1C54.0020.0002.062A] # ARABIC LETTER TEH MARBUTA -FE93 ; [.1C54.0020.0002.062A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM -FE94 ; [.1C54.0020.0002.062A] # ARABIC LETTER TEH MARBUTA FINAL FORM +0629 ; [.1C54.0021.0002.0629] # ARABIC LETTER TEH MARBUTA +FE94 ; [.1C54.0021.0019.FE94] # ARABIC LETTER TEH MARBUTA FINAL FORM +FE93 ; [.1C54.0021.001A.FE93] # ARABIC LETTER TEH MARBUTA ISOLATED FORM +0649 ; [.1CE9.0021.0002.0649] # ARABIC LETTER ALEF MAKSURA +FBE8 ; [.1CE9.0021.0017.FBE8] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM +FBE9 ; [.1CE9.0021.0018.FBE9] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM +FEF0 ; [.1CE9.0021.0019.FEF0] # ARABIC LETTER ALEF MAKSURA FINAL FORM +FEEF ; [.1CE9.0021.001A.FEEF] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM +FC90 ; [.1CE9.0021.001B.FC90] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM +FC5D ; [.1CE9.0021.001C.FC5D] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM ENTRY }; diff --git a/cpan/Unicode-Collate/Collate/Locale/as.pl b/cpan/Unicode-Collate/Collate/Locale/as.pl new file mode 100644 index 0000000..b9a51de --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/as.pl @@ -0,0 +1,9 @@ ++{ + entry => <<'ENTRY', # for DUCET v6.0.0 +0982 ; [.1FE8.0020.0002.0982][.FFF1.0000.0000.0000] # BENGALI SIGN ANUSVARA +0981 ; [.1FE8.0020.0002.0981][.FFF2.0000.0000.0000] # BENGALI SIGN CANDRABINDU +0983 ; [.1FE8.0020.0002.0983][.FFF3.0000.0000.0000] # BENGALI SIGN VISARGA +09A4 09CD 200D ; [.1FF7.0020.0002.09A4][.FFF1.0000.0000.0000] # +0995 09CD 09B7 ; [.200A.0020.0002.0995][.FFF1.0000.0000.0000] # +ENTRY +}; diff --git a/cpan/Unicode-Collate/Collate/Locale/be.pl b/cpan/Unicode-Collate/Collate/Locale/be.pl new file mode 100644 index 0000000..3e7684f --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/be.pl @@ -0,0 +1,42 @@ ++{ + suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435, + 0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E, + 0x04E8, 0x04E9, 0x041A, 0x043A, 0x0427, 0x0447, 0x042B, 0x044B, + 0x042D, 0x044D, 0x0474, 0x0475], + entry => <<'ENTRY', # for DUCET v6.0.0 +0451 ; [.198C.0020.0002.0451] # CYRILLIC SMALL LETTER IO +0435 0308 ; [.198C.0020.0002.0451] # CYRILLIC SMALL LETTER IO +0401 ; [.198C.0020.0008.0401] # CYRILLIC CAPITAL LETTER IO +0415 0308 ; [.198C.0020.0008.0401] # CYRILLIC CAPITAL LETTER IO +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 +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 +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 +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 +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/bg.pl b/cpan/Unicode-Collate/Collate/Locale/bg.pl new file mode 100644 index 0000000..8b4c808 --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/bg.pl @@ -0,0 +1,44 @@ ++{ + 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 +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 +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 +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 +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/fi_phone.pl b/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl new file mode 100644 index 0000000..850ddd7 --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl @@ -0,0 +1,61 @@ ++{ +# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ? + entry => <<'ENTRY', # for DUCET v6.0.0 +0111 ; [.15E4.0021.0002.0111][.0000.007D.0002.0335] # LATIN SMALL LETTER D WITH STROKE +0110 ; [.15E4.0021.0008.0110][.0000.007D.0002.0335] # LATIN CAPITAL LETTER D WITH STROKE +01E5 ; [.1644.0021.0002.01E5][.0000.007D.0002.0335] # LATIN SMALL LETTER G WITH STROKE +01E4 ; [.1644.0021.0008.01E4][.0000.007D.0002.0335] # LATIN CAPITAL LETTER G WITH STROKE +014B ; [.1702.0021.0002.014B][.0000.007D.0002.0335] # LATIN SMALL LETTER ENG +014A ; [.1702.0021.0008.014A][.0000.007D.0002.0335] # LATIN CAPITAL LETTER ENG +0167 ; [.17C9.0021.0002.0167][.0000.007D.0002.0335] # LATIN SMALL LETTER T WITH STROKE +0166 ; [.17C9.0021.0008.0166][.0000.007D.0002.0335] # LATIN CAPITAL LETTER T WITH STROKE +00FC ; [.1833.0021.0002.00FC] # LATIN SMALL LETTER U WITH DIAERESIS +0075 0308 ; [.1833.0021.0002.00FC] # LATIN SMALL LETTER U WITH DIAERESIS +00DC ; [.1833.0021.0008.00DC] # LATIN CAPITAL LETTER U WITH DIAERESIS +0055 0308 ; [.1833.0021.0008.00DC] # LATIN CAPITAL LETTER U WITH DIAERESIS +01DC ; [.1833.0021.0002.00FC][.0000.0035.0002.0300] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE +01DB ; [.1833.0021.0008.00DC][.0000.0035.0002.0300] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE +01D8 ; [.1833.0021.0002.00FC][.0000.0032.0002.0301] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE +01D7 ; [.1833.0021.0008.00DC][.0000.0032.0002.0301] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE +01D6 ; [.1833.0021.0002.00FC][.0000.005B.0002.0304] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON +01D5 ; [.1833.0021.0008.00DC][.0000.005B.0002.0304] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON +01DA ; [.1833.0021.0002.00FC][.0000.0041.0002.030C] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON +01D9 ; [.1833.0021.0008.00DC][.0000.0041.0002.030C] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON +0292 ; [.1844.0021.0002.0292][.0000.007D.0002.0335] # LATIN SMALL LETTER EZH +01B7 ; [.1844.0021.0008.01B7][.0000.007D.0002.0335] # LATIN CAPITAL LETTER EZH +01EF ; [.1844.0021.0002.0292][.0000.007D.0002.0335][.0000.0041.0002.030C] # LATIN SMALL LETTER EZH WITH CARON +01EE ; [.1844.0021.0008.01B7][.0000.007D.0002.0335][.0000.0041.0002.030C] # LATIN CAPITAL LETTER EZH WITH CARON +00E5 ; [.18B9.0020.0002.00E5] # LATIN SMALL LETTER A WITH RING ABOVE +0061 030A ; [.18B9.0020.0002.00E5] # LATIN SMALL LETTER A WITH RING ABOVE +00C5 ; [.18B9.0020.0008.00C5] # LATIN CAPITAL LETTER A WITH RING ABOVE +0041 030A ; [.18B9.0020.0008.00C5] # LATIN CAPITAL LETTER A WITH RING ABOVE +212B ; [.18B9.0020.0008.00C5] # ANGSTROM SIGN +01FB ; [.18B9.0020.0002.00E5][.0000.0032.0002.0301] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE +01FA ; [.18B9.0020.0008.00C5][.0000.0032.0002.0301] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE +00E4 ; [.18BA.0020.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS +0061 0308 ; [.18BA.0020.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS +00C4 ; [.18BA.0020.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS +0041 0308 ; [.18BA.0020.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS +01DF ; [.18BA.0020.0002.00E4][.0000.005B.0002.0304] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON +01DE ; [.18BA.0020.0008.00C4][.0000.005B.0002.0304] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON +00E6 ; [.18BA.0021.0002.00E6] # LATIN SMALL LETTER AE +00C6 ; [.18BA.0021.0008.00C6] # LATIN CAPITAL LETTER AE +1D2D ; [.18BA.0021.0014.1D2D] # MODIFIER LETTER CAPITAL AE +01FD ; [.18BA.0021.0002.00E6][.0000.0032.0002.0301] # LATIN SMALL LETTER AE WITH ACUTE +01FC ; [.18BA.0021.0008.00C6][.0000.0032.0002.0301] # LATIN CAPITAL LETTER AE WITH ACUTE +01E3 ; [.18BA.0021.0002.00E6][.0000.005B.0002.0304] # LATIN SMALL LETTER AE WITH MACRON +01E2 ; [.18BA.0021.0008.00C6][.0000.005B.0002.0304] # LATIN CAPITAL LETTER AE WITH MACRON +00F6 ; [.18BB.0020.0002.00F6] # LATIN SMALL LETTER O WITH DIAERESIS +006F 0308 ; [.18BB.0020.0002.00F6] # LATIN SMALL LETTER O WITH DIAERESIS +00D6 ; [.18BB.0020.0008.00D6] # LATIN CAPITAL LETTER O WITH DIAERESIS +004F 0308 ; [.18BB.0020.0008.00D6] # LATIN CAPITAL LETTER O WITH DIAERESIS +022B ; [.18BB.0020.0002.00F6][.0000.005B.0002.0304] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON +022A ; [.18BB.0020.0008.00D6][.0000.005B.0002.0304] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON +00F8 ; [.18BB.0021.0002.00F8] # LATIN SMALL LETTER O WITH STROKE +006F 0338 ; [.18BB.0021.0002.00F8] # LATIN SMALL LETTER O WITH STROKE +00D8 ; [.18BB.0021.0008.00D8] # LATIN CAPITAL LETTER O WITH STROKE +004F 0338 ; [.18BB.0021.0008.00D8] # LATIN CAPITAL LETTER O WITH STROKE +01FF ; [.18BB.0021.0002.00F8][.0000.0032.0002.0301] # LATIN SMALL LETTER O WITH STROKE AND ACUTE +01FE ; [.18BB.0021.0008.00D8][.0000.0032.0002.0301] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE +ENTRY +}; diff --git a/cpan/Unicode-Collate/Collate/Locale/gu.pl b/cpan/Unicode-Collate/Collate/Locale/gu.pl new file mode 100644 index 0000000..0f630c8 --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/gu.pl @@ -0,0 +1,7 @@ ++{ + entry => <<'ENTRY', # for DUCET v6.0.0 +0A82 ; [.2054.0020.0002.0A82][.FFF1.0000.0000.0000] # GUJARATI SIGN ANUSVARA +0A81 ; [.2054.0021.0002.0A81][.FFF1.0000.0000.0A81] # GUJARATI SIGN CANDRABINDU +0A83 ; [.2054.0020.0002.0A83][.FFF2.0000.0000.0000] # GUJARATI SIGN VISARGA +ENTRY +}; diff --git a/cpan/Unicode-Collate/README b/cpan/Unicode-Collate/README index 89368c6..f5c99b8 100644 --- a/cpan/Unicode-Collate/README +++ b/cpan/Unicode-Collate/README @@ -1,4 +1,4 @@ -Unicode/Collate version 0.78 +Unicode/Collate version 0.79 =============================== NAME diff --git a/cpan/Unicode-Collate/t/contract.t b/cpan/Unicode-Collate/t/contract.t index af14106..f66733b 100644 --- a/cpan/Unicode-Collate/t/contract.t +++ b/cpan/Unicode-Collate/t/contract.t @@ -150,7 +150,7 @@ ok($aaNoN->lt("Z", "A\x{30A}\x{31A}")); # 40 -# suppress contractions +# suppress contractions (not affected) my $kjeSup = Unicode::Collate->new( level => 1, @@ -160,10 +160,10 @@ my $kjeSup = Unicode::Collate->new( suppress => [0x400..0x45F], ); -ok($kjeSup->eq("\x{43A}", "\x{43A}\x{301}")); -ok($kjeSup->gt("\x{45C}", "\x{43A}\x{301}")); -ok($kjeSup->eq("\x{41A}", "\x{41A}\x{301}")); -ok($kjeSup->gt("\x{40C}", "\x{41A}\x{301}")); +ok($kjeSup->lt("\x{43A}", "\x{43A}\x{301}")); +ok($kjeSup->eq("\x{45C}", "\x{43A}\x{301}")); +ok($kjeSup->lt("\x{41A}", "\x{41A}\x{301}")); +ok($kjeSup->eq("\x{40C}", "\x{41A}\x{301}")); # 44 diff --git a/cpan/Unicode-Collate/t/default.t b/cpan/Unicode-Collate/t/default.t index 72bbdc2..e3ada75 100644 --- a/cpan/Unicode-Collate/t/default.t +++ b/cpan/Unicode-Collate/t/default.t @@ -12,7 +12,7 @@ BEGIN { } use Test; -BEGIN { plan tests => 56 }; +BEGIN { plan tests => 60 }; use strict; use warnings; @@ -142,3 +142,19 @@ ok( $Collator->le("abc", "ABC") ); ok( $Collator->cmp($hiragana, $katakana), -1); ok( $Collator->lt($hiragana, $katakana) ); +##### 55..60 + +$Collator->change(level => 1); + +my $SupCyril = Unicode::Collate->new( + normalization => undef, + suppress => [0x400..0x4FF], + level => 1, +); + +# Ka vs Kje +ok($Collator->gt("\x{45C}", "\x{43A}")); +ok($Collator->gt("\x{40C}", "\x{41A}")); +ok($SupCyril->gt("\x{45C}", "\x{43A}")); +ok($SupCyril->gt("\x{40C}", "\x{41A}")); + diff --git a/cpan/Unicode-Collate/t/loc_ar.t b/cpan/Unicode-Collate/t/loc_ar.t index 089c30b..4faabda 100644 --- a/cpan/Unicode-Collate/t/loc_ar.t +++ b/cpan/Unicode-Collate/t/loc_ar.t @@ -12,7 +12,7 @@ BEGIN { } use Test; -BEGIN { plan tests => 8 }; +BEGIN { plan tests => 30 }; use strict; use warnings; @@ -30,13 +30,40 @@ ok($objAr->getlocale, 'ar'); $objAr->change(level => 1); ok($objAr->eq("\x{62A}", "\x{629}")); -ok($objAr->eq("\x{62A}", "\x{FE93}")); -ok($objAr->eq("\x{62A}", "\x{FE94}")); +ok($objAr->eq("\x{64A}", "\x{649}")); + +# 4 + +$objAr->change(level => 2); + +ok($objAr->lt("\x{62A}", "\x{629}")); +ok($objAr->eq("\x{629}", "\x{FE94}")); +ok($objAr->eq("\x{FE94}","\x{FE93}")); + +ok($objAr->lt("\x{64A}", "\x{649}")); +ok($objAr->eq("\x{649}", "\x{FBE8}")); +ok($objAr->eq("\x{FBE8}","\x{FBE9}")); +ok($objAr->eq("\x{FBE9}","\x{FEF0}")); +ok($objAr->eq("\x{FEF0}","\x{FEEF}")); +ok($objAr->eq("\x{FEEF}","\x{FC90}")); +ok($objAr->eq("\x{FC90}","\x{FC5D}")); + +# 14 $objAr->change(level => 3); -ok($objAr->eq("\x{62A}", "\x{629}")); -ok($objAr->eq("\x{62A}", "\x{FE93}")); -ok($objAr->eq("\x{62A}", "\x{FE94}")); +for my $up_lo (0, 1) { + $objAr->change(upper_before_lower => $up_lo); + + ok($objAr->lt("\x{629}", "\x{FE94}")); + ok($objAr->lt("\x{FE94}","\x{FE93}")); + + ok($objAr->lt("\x{649}", "\x{FBE8}")); + ok($objAr->lt("\x{FBE8}","\x{FBE9}")); + ok($objAr->lt("\x{FBE9}","\x{FEF0}")); + ok($objAr->lt("\x{FEF0}","\x{FEEF}")); + ok($objAr->lt("\x{FEEF}","\x{FC90}")); + ok($objAr->lt("\x{FC90}","\x{FC5D}")); +} -# 8 +# 30 diff --git a/cpan/Unicode-Collate/t/loc_as.t b/cpan/Unicode-Collate/t/loc_as.t new file mode 100644 index 0000000..12e513f --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_as.t @@ -0,0 +1,41 @@ + +BEGIN { + unless ("A" eq pack('U', 0x41)) { + print "1..0 # Unicode::Collate " . + "cannot stringify a Unicode code point\n"; + exit 0; + } + if ($ENV{PERL_CORE}) { + chdir('t') if -d 't'; + @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); + } +} + +use Test; +BEGIN { plan tests => 10 }; + +use strict; +use warnings; +use Unicode::Collate::Locale; + +ok(1); + +######################### + +my $objAs = Unicode::Collate::Locale-> + new(locale => 'AS', normalization => undef); + +ok($objAs->getlocale, 'as'); + +$objAs->change(level => 1); + +ok($objAs->lt("\x{994}", "\x{982}")); +ok($objAs->lt("\x{982}", "\x{981}")); +ok($objAs->lt("\x{981}", "\x{983}")); +ok($objAs->lt("\x{983}", "\x{995}")); + +ok($objAs->lt("\x{9A3}","\x{9A4}\x{9CD}\x{200D}")); +ok($objAs->lt("\x{9A4}\x{9CD}\x{200D}","\x{9A4}")); + +ok($objAs->lt("\x{9B9}", "\x{995}\x{9CD}\x{9B7}")); +ok($objAs->lt("\x{995}\x{9CD}\x{9B7}", "\x{9BD}")); diff --git a/cpan/Unicode-Collate/t/loc_be.t b/cpan/Unicode-Collate/t/loc_be.t index 708b03d..f9d20d9 100644 --- a/cpan/Unicode-Collate/t/loc_be.t +++ b/cpan/Unicode-Collate/t/loc_be.t @@ -12,7 +12,7 @@ BEGIN { } use Test; -BEGIN { plan tests => 130 }; +BEGIN { plan tests => 190 }; use strict; use warnings; @@ -29,149 +29,174 @@ ok($objBe->getlocale, 'be'); $objBe->change(level => 1); -ok($objBe->gt("\x{4E5}", "\x{438}")); -ok($objBe->gt("\x{4E4}", "\x{418}")); -ok($objBe->gt("\x{439}", "\x{438}")); -ok($objBe->gt("\x{419}", "\x{418}")); +ok($objBe->gt("\x{451}", "\x{435}")); +ok($objBe->gt("\x{401}", "\x{415}")); +ok($objBe->lt("\x{451}", "\x{454}")); +ok($objBe->lt("\x{401}", "\x{404}")); -# 6 +ok($objBe->gt("\x{4E5}", "\x{438}")); # not suppressed +ok($objBe->gt("\x{4E4}", "\x{418}")); # not suppressed +ok($objBe->gt("\x{439}", "\x{438}")); # not suppressed +ok($objBe->gt("\x{419}", "\x{418}")); # not suppressed +ok($objBe->gt("\x{45E}", "\x{443}")); # not suppressed +ok($objBe->gt("\x{40E}", "\x{423}")); # not suppressed +ok($objBe->gt("\x{4F1}", "\x{443}")); # not suppressed +ok($objBe->gt("\x{4F0}", "\x{423}")); # not suppressed +ok($objBe->gt("\x{4F3}", "\x{443}")); # not suppressed +ok($objBe->gt("\x{4F2}", "\x{423}")); # not suppressed + +# 16 ok($objBe->eq("\x{4D1}", "\x{430}")); ok($objBe->eq("\x{4D0}", "\x{410}")); ok($objBe->eq("\x{4D3}", "\x{430}")); ok($objBe->eq("\x{4D2}", "\x{410}")); +ok($objBe->eq("\x{4DB}", "\x{4D9}")); +ok($objBe->eq("\x{4DA}", "\x{4D8}")); ok($objBe->eq("\x{453}", "\x{433}")); ok($objBe->eq("\x{403}", "\x{413}")); +ok($objBe->eq("\x{450}", "\x{435}")); # not contraction +ok($objBe->eq("\x{400}", "\x{415}")); # not contraction ok($objBe->eq("\x{4D7}", "\x{435}")); ok($objBe->eq("\x{4D6}", "\x{415}")); +ok($objBe->eq("\x{4C2}", "\x{436}")); # not contraction +ok($objBe->eq("\x{4C1}", "\x{416}")); # not contraction ok($objBe->eq("\x{4DD}", "\x{436}")); ok($objBe->eq("\x{4DC}", "\x{416}")); ok($objBe->eq("\x{4DF}", "\x{437}")); ok($objBe->eq("\x{4DE}", "\x{417}")); +ok($objBe->eq("\x{45D}", "\x{438}")); # not contraction +ok($objBe->eq("\x{40D}", "\x{418}")); # not contraction +ok($objBe->eq("\x{4E3}", "\x{438}")); # not contraction +ok($objBe->eq("\x{4E2}", "\x{418}")); # not contraction ok($objBe->eq("\x{457}", "\x{456}")); ok($objBe->eq("\x{407}", "\x{406}")); ok($objBe->eq("\x{4E7}", "\x{43E}")); ok($objBe->eq("\x{4E6}", "\x{41E}")); +ok($objBe->eq("\x{4EB}", "\x{4E9}")); +ok($objBe->eq("\x{4EA}", "\x{4E8}")); ok($objBe->eq("\x{45C}", "\x{43A}")); ok($objBe->eq("\x{40C}", "\x{41A}")); -ok($objBe->eq("\x{45E}", "\x{443}")); -ok($objBe->eq("\x{40E}", "\x{423}")); -ok($objBe->eq("\x{4F1}", "\x{443}")); -ok($objBe->eq("\x{4F0}", "\x{423}")); -ok($objBe->eq("\x{4F3}", "\x{443}")); -ok($objBe->eq("\x{4F2}", "\x{423}")); +ok($objBe->eq("\x{4EF}", "\x{443}")); # not contraction +ok($objBe->eq("\x{4EE}", "\x{423}")); # not contraction ok($objBe->eq("\x{4F5}", "\x{447}")); ok($objBe->eq("\x{4F4}", "\x{427}")); ok($objBe->eq("\x{4F9}", "\x{44B}")); ok($objBe->eq("\x{4F8}", "\x{42B}")); ok($objBe->eq("\x{4ED}", "\x{44D}")); ok($objBe->eq("\x{4EC}", "\x{42D}")); +ok($objBe->eq("\x{477}", "\x{475}")); +ok($objBe->eq("\x{476}", "\x{474}")); -# 36 +# 56 $objBe->change(level => 2); +ok($objBe->eq("\x{451}", "\x{401}")); + ok($objBe->gt("\x{4D1}", "\x{430}")); ok($objBe->gt("\x{4D0}", "\x{410}")); ok($objBe->gt("\x{4D3}", "\x{430}")); ok($objBe->gt("\x{4D2}", "\x{410}")); +ok($objBe->gt("\x{4DB}", "\x{4D9}")); +ok($objBe->gt("\x{4DA}", "\x{4D8}")); ok($objBe->gt("\x{453}", "\x{433}")); ok($objBe->gt("\x{403}", "\x{413}")); +ok($objBe->gt("\x{450}", "\x{435}")); # not contraction +ok($objBe->gt("\x{400}", "\x{415}")); # not contraction ok($objBe->gt("\x{4D7}", "\x{435}")); ok($objBe->gt("\x{4D6}", "\x{415}")); +ok($objBe->gt("\x{4C2}", "\x{436}")); # not contraction +ok($objBe->gt("\x{4C1}", "\x{416}")); # not contraction ok($objBe->gt("\x{4DD}", "\x{436}")); ok($objBe->gt("\x{4DC}", "\x{416}")); ok($objBe->gt("\x{4DF}", "\x{437}")); ok($objBe->gt("\x{4DE}", "\x{417}")); +ok($objBe->gt("\x{45D}", "\x{438}")); # not contraction +ok($objBe->gt("\x{40D}", "\x{418}")); # not contraction +ok($objBe->gt("\x{4E3}", "\x{438}")); # not contraction +ok($objBe->gt("\x{4E2}", "\x{418}")); # not contraction ok($objBe->gt("\x{457}", "\x{456}")); ok($objBe->gt("\x{407}", "\x{406}")); ok($objBe->gt("\x{4E7}", "\x{43E}")); ok($objBe->gt("\x{4E6}", "\x{41E}")); +ok($objBe->gt("\x{4EB}", "\x{4E9}")); +ok($objBe->gt("\x{4EA}", "\x{4E8}")); ok($objBe->gt("\x{45C}", "\x{43A}")); ok($objBe->gt("\x{40C}", "\x{41A}")); -ok($objBe->gt("\x{45E}", "\x{443}")); -ok($objBe->gt("\x{40E}", "\x{423}")); -ok($objBe->gt("\x{4F1}", "\x{443}")); -ok($objBe->gt("\x{4F0}", "\x{423}")); -ok($objBe->gt("\x{4F3}", "\x{443}")); -ok($objBe->gt("\x{4F2}", "\x{423}")); +ok($objBe->gt("\x{4EF}", "\x{443}")); # not contraction +ok($objBe->gt("\x{4EE}", "\x{423}")); # not contraction ok($objBe->gt("\x{4F5}", "\x{447}")); ok($objBe->gt("\x{4F4}", "\x{427}")); ok($objBe->gt("\x{4F9}", "\x{44B}")); ok($objBe->gt("\x{4F8}", "\x{42B}")); ok($objBe->gt("\x{4ED}", "\x{44D}")); ok($objBe->gt("\x{4EC}", "\x{42D}")); +ok($objBe->gt("\x{477}", "\x{475}")); +ok($objBe->gt("\x{476}", "\x{474}")); -# 66 +# 97 $objBe->change(level => 3); -ok($objBe->eq("\x{4D1}", "\x{430}\x{306}")); -ok($objBe->eq("\x{4D0}", "\x{410}\x{306}")); -ok($objBe->eq("\x{4D3}", "\x{430}\x{308}")); -ok($objBe->eq("\x{4D2}", "\x{410}\x{308}")); -ok($objBe->eq("\x{453}", "\x{433}\x{301}")); -ok($objBe->eq("\x{403}", "\x{413}\x{301}")); -ok($objBe->eq("\x{4D7}", "\x{435}\x{306}")); -ok($objBe->eq("\x{4D6}", "\x{415}\x{306}")); -ok($objBe->eq("\x{4DD}", "\x{436}\x{308}")); -ok($objBe->eq("\x{4DC}", "\x{416}\x{308}")); -ok($objBe->eq("\x{4DF}", "\x{437}\x{308}")); -ok($objBe->eq("\x{4DE}", "\x{417}\x{308}")); -ok($objBe->eq("\x{4E5}", "\x{438}\x{308}")); -ok($objBe->eq("\x{4E4}", "\x{418}\x{308}")); -ok($objBe->eq("\x{457}", "\x{456}\x{308}")); -ok($objBe->eq("\x{407}", "\x{406}\x{308}")); -ok($objBe->eq("\x{439}", "\x{438}\x{306}")); -ok($objBe->eq("\x{419}", "\x{418}\x{306}")); -ok($objBe->eq("\x{4E7}", "\x{43E}\x{308}")); -ok($objBe->eq("\x{4E6}", "\x{41E}\x{308}")); -ok($objBe->eq("\x{45C}", "\x{43A}\x{301}")); -ok($objBe->eq("\x{40C}", "\x{41A}\x{301}")); -ok($objBe->eq("\x{45E}", "\x{443}\x{306}")); -ok($objBe->eq("\x{40E}", "\x{423}\x{306}")); -ok($objBe->eq("\x{4F1}", "\x{443}\x{308}")); -ok($objBe->eq("\x{4F0}", "\x{423}\x{308}")); -ok($objBe->eq("\x{4F3}", "\x{443}\x{30B}")); -ok($objBe->eq("\x{4F2}", "\x{423}\x{30B}")); -ok($objBe->eq("\x{4F5}", "\x{447}\x{308}")); -ok($objBe->eq("\x{4F4}", "\x{427}\x{308}")); -ok($objBe->eq("\x{4F9}", "\x{44B}\x{308}")); -ok($objBe->eq("\x{4F8}", "\x{42B}\x{308}")); -ok($objBe->eq("\x{4ED}", "\x{44D}\x{308}")); -ok($objBe->eq("\x{4EC}", "\x{42D}\x{308}")); - -# 100 - -ok($objBe->eq("\x{4D1}", "\x{430}\0\x{306}")); -ok($objBe->eq("\x{4D0}", "\x{410}\0\x{306}")); -ok($objBe->eq("\x{4D3}", "\x{430}\0\x{308}")); -ok($objBe->eq("\x{4D2}", "\x{410}\0\x{308}")); -ok($objBe->eq("\x{453}", "\x{433}\0\x{301}")); -ok($objBe->eq("\x{403}", "\x{413}\0\x{301}")); -ok($objBe->eq("\x{4D7}", "\x{435}\0\x{306}")); -ok($objBe->eq("\x{4D6}", "\x{415}\0\x{306}")); -ok($objBe->eq("\x{4DD}", "\x{436}\0\x{308}")); -ok($objBe->eq("\x{4DC}", "\x{416}\0\x{308}")); -ok($objBe->eq("\x{4DF}", "\x{437}\0\x{308}")); -ok($objBe->eq("\x{4DE}", "\x{417}\0\x{308}")); -ok($objBe->eq("\x{457}", "\x{456}\0\x{308}")); -ok($objBe->eq("\x{407}", "\x{406}\0\x{308}")); -ok($objBe->eq("\x{4E7}", "\x{43E}\0\x{308}")); -ok($objBe->eq("\x{4E6}", "\x{41E}\0\x{308}")); -ok($objBe->eq("\x{45C}", "\x{43A}\0\x{301}")); -ok($objBe->eq("\x{40C}", "\x{41A}\0\x{301}")); -ok($objBe->eq("\x{45E}", "\x{443}\0\x{306}")); -ok($objBe->eq("\x{40E}", "\x{423}\0\x{306}")); -ok($objBe->eq("\x{4F1}", "\x{443}\0\x{308}")); -ok($objBe->eq("\x{4F0}", "\x{423}\0\x{308}")); -ok($objBe->eq("\x{4F3}", "\x{443}\0\x{30B}")); -ok($objBe->eq("\x{4F2}", "\x{423}\0\x{30B}")); -ok($objBe->eq("\x{4F5}", "\x{447}\0\x{308}")); -ok($objBe->eq("\x{4F4}", "\x{427}\0\x{308}")); -ok($objBe->eq("\x{4F9}", "\x{44B}\0\x{308}")); -ok($objBe->eq("\x{4F8}", "\x{42B}\0\x{308}")); -ok($objBe->eq("\x{4ED}", "\x{44D}\0\x{308}")); -ok($objBe->eq("\x{4EC}", "\x{42D}\0\x{308}")); - -# 130 +ok($objBe->lt("\x{451}", "\x{401}")); + +ok($objBe->eq("\x{451}", "\x{435}\x{308}")); +ok($objBe->eq("\x{401}", "\x{415}\x{308}")); +ok($objBe->eq("\x{4E5}", "\x{438}\x{308}")); # not suppressed +ok($objBe->eq("\x{4E4}", "\x{418}\x{308}")); # not suppressed +ok($objBe->eq("\x{439}", "\x{438}\x{306}")); # not suppressed +ok($objBe->eq("\x{419}", "\x{418}\x{306}")); # not suppressed +ok($objBe->eq("\x{45E}", "\x{443}\x{306}")); # not suppressed +ok($objBe->eq("\x{40E}", "\x{423}\x{306}")); # not suppressed +ok($objBe->eq("\x{4F1}", "\x{443}\x{308}")); # not suppressed +ok($objBe->eq("\x{4F0}", "\x{423}\x{308}")); # not suppressed +ok($objBe->eq("\x{4F3}", "\x{443}\x{30B}")); # not suppressed +ok($objBe->eq("\x{4F2}", "\x{423}\x{30B}")); # not suppressed + +# 110 + +for my $i ("", "\0") { + ok($objBe->eq("\x{4D1}", "\x{430}$i\x{306}")); + ok($objBe->eq("\x{4D0}", "\x{410}$i\x{306}")); + ok($objBe->eq("\x{4D3}", "\x{430}$i\x{308}")); + ok($objBe->eq("\x{4D2}", "\x{410}$i\x{308}")); + ok($objBe->eq("\x{4DB}", "\x{4D9}$i\x{308}")); + ok($objBe->eq("\x{4DA}", "\x{4D8}$i\x{308}")); + ok($objBe->eq("\x{453}", "\x{433}$i\x{301}")); + ok($objBe->eq("\x{403}", "\x{413}$i\x{301}")); + ok($objBe->eq("\x{450}", "\x{435}$i\x{300}")); # not contraction + ok($objBe->eq("\x{400}", "\x{415}$i\x{300}")); # not contraction + ok($objBe->eq("\x{4D7}", "\x{435}$i\x{306}")); + ok($objBe->eq("\x{4D6}", "\x{415}$i\x{306}")); + ok($objBe->eq("\x{4C2}", "\x{436}$i\x{306}")); # not contraction + ok($objBe->eq("\x{4C1}", "\x{416}$i\x{306}")); # not contraction + ok($objBe->eq("\x{4DD}", "\x{436}$i\x{308}")); + ok($objBe->eq("\x{4DC}", "\x{416}$i\x{308}")); + ok($objBe->eq("\x{4DF}", "\x{437}$i\x{308}")); + ok($objBe->eq("\x{4DE}", "\x{417}$i\x{308}")); + ok($objBe->eq("\x{45D}", "\x{438}$i\x{300}")); # not contraction + ok($objBe->eq("\x{40D}", "\x{418}$i\x{300}")); # not contraction + ok($objBe->eq("\x{4E3}", "\x{438}$i\x{304}")); # not contraction + ok($objBe->eq("\x{4E2}", "\x{418}$i\x{304}")); # not contraction + ok($objBe->eq("\x{457}", "\x{456}$i\x{308}")); + ok($objBe->eq("\x{407}", "\x{406}$i\x{308}")); + ok($objBe->eq("\x{4E7}", "\x{43E}$i\x{308}")); + ok($objBe->eq("\x{4E6}", "\x{41E}$i\x{308}")); + ok($objBe->eq("\x{4EB}", "\x{4E9}$i\x{308}")); + ok($objBe->eq("\x{4EA}", "\x{4E8}$i\x{308}")); + ok($objBe->eq("\x{45C}", "\x{43A}$i\x{301}")); + ok($objBe->eq("\x{40C}", "\x{41A}$i\x{301}")); + ok($objBe->eq("\x{4EF}", "\x{443}$i\x{304}")); # not contraction + ok($objBe->eq("\x{4EE}", "\x{423}$i\x{304}")); # not contraction + ok($objBe->eq("\x{4F5}", "\x{447}$i\x{308}")); + ok($objBe->eq("\x{4F4}", "\x{427}$i\x{308}")); + ok($objBe->eq("\x{4F9}", "\x{44B}$i\x{308}")); + ok($objBe->eq("\x{4F8}", "\x{42B}$i\x{308}")); + ok($objBe->eq("\x{4ED}", "\x{44D}$i\x{308}")); + ok($objBe->eq("\x{4EC}", "\x{42D}$i\x{308}")); + ok($objBe->eq("\x{477}", "\x{475}$i\x{30F}")); + ok($objBe->eq("\x{476}", "\x{474}$i\x{30F}")); +} + +# 190 diff --git a/cpan/Unicode-Collate/t/loc_bg.t b/cpan/Unicode-Collate/t/loc_bg.t index 9c706a3..2299d39 100644 --- a/cpan/Unicode-Collate/t/loc_bg.t +++ b/cpan/Unicode-Collate/t/loc_bg.t @@ -12,7 +12,7 @@ BEGIN { } use Test; -BEGIN { plan tests => 130 }; +BEGIN { plan tests => 202 }; use strict; use warnings; @@ -29,10 +29,10 @@ ok($objBg->getlocale, 'bg'); $objBg->change(level => 1); -ok($objBg->gt("\x{4E5}", "\x{438}")); -ok($objBg->gt("\x{4E4}", "\x{418}")); -ok($objBg->gt("\x{439}", "\x{438}")); -ok($objBg->gt("\x{419}", "\x{418}")); +ok($objBg->gt("\x{4E5}", "\x{438}")); # not suppressed +ok($objBg->gt("\x{4E4}", "\x{418}")); # not suppressed +ok($objBg->gt("\x{439}", "\x{438}")); # not suppressed +ok($objBg->gt("\x{419}", "\x{418}")); # not suppressed # 6 @@ -40,20 +40,36 @@ ok($objBg->eq("\x{4D1}", "\x{430}")); ok($objBg->eq("\x{4D0}", "\x{410}")); ok($objBg->eq("\x{4D3}", "\x{430}")); ok($objBg->eq("\x{4D2}", "\x{410}")); +ok($objBg->eq("\x{4DB}", "\x{4D9}")); +ok($objBg->eq("\x{4DA}", "\x{4D8}")); ok($objBg->eq("\x{453}", "\x{433}")); ok($objBg->eq("\x{403}", "\x{413}")); +ok($objBg->eq("\x{450}", "\x{435}")); # not contraction +ok($objBg->eq("\x{400}", "\x{415}")); # not contraction +ok($objBg->eq("\x{451}", "\x{435}")); # not contraction +ok($objBg->eq("\x{401}", "\x{415}")); # not contraction ok($objBg->eq("\x{4D7}", "\x{435}")); ok($objBg->eq("\x{4D6}", "\x{415}")); +ok($objBg->eq("\x{4C2}", "\x{436}")); # not contraction +ok($objBg->eq("\x{4C1}", "\x{416}")); # not contraction ok($objBg->eq("\x{4DD}", "\x{436}")); ok($objBg->eq("\x{4DC}", "\x{416}")); ok($objBg->eq("\x{4DF}", "\x{437}")); ok($objBg->eq("\x{4DE}", "\x{417}")); +ok($objBg->eq("\x{45D}", "\x{438}")); # not contraction +ok($objBg->eq("\x{40D}", "\x{418}")); # not contraction +ok($objBg->eq("\x{4E3}", "\x{438}")); # not contraction +ok($objBg->eq("\x{4E2}", "\x{418}")); # not contraction ok($objBg->eq("\x{457}", "\x{456}")); ok($objBg->eq("\x{407}", "\x{406}")); ok($objBg->eq("\x{4E7}", "\x{43E}")); ok($objBg->eq("\x{4E6}", "\x{41E}")); +ok($objBg->eq("\x{4EB}", "\x{4E9}")); +ok($objBg->eq("\x{4EA}", "\x{4E8}")); ok($objBg->eq("\x{45C}", "\x{43A}")); ok($objBg->eq("\x{40C}", "\x{41A}")); +ok($objBg->eq("\x{4EF}", "\x{443}")); # not contraction +ok($objBg->eq("\x{4EE}", "\x{423}")); # not contraction ok($objBg->eq("\x{45E}", "\x{443}")); ok($objBg->eq("\x{40E}", "\x{423}")); ok($objBg->eq("\x{4F1}", "\x{443}")); @@ -66,8 +82,10 @@ ok($objBg->eq("\x{4F9}", "\x{44B}")); ok($objBg->eq("\x{4F8}", "\x{42B}")); ok($objBg->eq("\x{4ED}", "\x{44D}")); ok($objBg->eq("\x{4EC}", "\x{42D}")); +ok($objBg->eq("\x{477}", "\x{475}")); +ok($objBg->eq("\x{476}", "\x{474}")); -# 36 +# 54 $objBg->change(level => 2); @@ -75,20 +93,36 @@ ok($objBg->gt("\x{4D1}", "\x{430}")); ok($objBg->gt("\x{4D0}", "\x{410}")); ok($objBg->gt("\x{4D3}", "\x{430}")); ok($objBg->gt("\x{4D2}", "\x{410}")); +ok($objBg->gt("\x{4DB}", "\x{4D9}")); +ok($objBg->gt("\x{4DA}", "\x{4D8}")); ok($objBg->gt("\x{453}", "\x{433}")); ok($objBg->gt("\x{403}", "\x{413}")); +ok($objBg->gt("\x{450}", "\x{435}")); # not contraction +ok($objBg->gt("\x{400}", "\x{415}")); # not contraction +ok($objBg->gt("\x{451}", "\x{435}")); # not contraction +ok($objBg->gt("\x{401}", "\x{415}")); # not contraction ok($objBg->gt("\x{4D7}", "\x{435}")); ok($objBg->gt("\x{4D6}", "\x{415}")); +ok($objBg->gt("\x{4C2}", "\x{436}")); # not contraction +ok($objBg->gt("\x{4C1}", "\x{416}")); # not contraction ok($objBg->gt("\x{4DD}", "\x{436}")); ok($objBg->gt("\x{4DC}", "\x{416}")); ok($objBg->gt("\x{4DF}", "\x{437}")); ok($objBg->gt("\x{4DE}", "\x{417}")); +ok($objBg->gt("\x{45D}", "\x{438}")); # not contraction +ok($objBg->gt("\x{40D}", "\x{418}")); # not contraction +ok($objBg->gt("\x{4E3}", "\x{438}")); # not contraction +ok($objBg->gt("\x{4E2}", "\x{418}")); # not contraction ok($objBg->gt("\x{457}", "\x{456}")); ok($objBg->gt("\x{407}", "\x{406}")); ok($objBg->gt("\x{4E7}", "\x{43E}")); ok($objBg->gt("\x{4E6}", "\x{41E}")); +ok($objBg->gt("\x{4EB}", "\x{4E9}")); +ok($objBg->gt("\x{4EA}", "\x{4E8}")); ok($objBg->gt("\x{45C}", "\x{43A}")); ok($objBg->gt("\x{40C}", "\x{41A}")); +ok($objBg->gt("\x{4EF}", "\x{443}")); # not contraction +ok($objBg->gt("\x{4EE}", "\x{423}")); # not contraction ok($objBg->gt("\x{45E}", "\x{443}")); ok($objBg->gt("\x{40E}", "\x{423}")); ok($objBg->gt("\x{4F1}", "\x{443}")); @@ -101,77 +135,69 @@ ok($objBg->gt("\x{4F9}", "\x{44B}")); ok($objBg->gt("\x{4F8}", "\x{42B}")); ok($objBg->gt("\x{4ED}", "\x{44D}")); ok($objBg->gt("\x{4EC}", "\x{42D}")); +ok($objBg->gt("\x{477}", "\x{475}")); +ok($objBg->gt("\x{476}", "\x{474}")); -# 66 +# 102 $objBg->change(level => 3); -ok($objBg->eq("\x{4D1}", "\x{430}\x{306}")); -ok($objBg->eq("\x{4D0}", "\x{410}\x{306}")); -ok($objBg->eq("\x{4D3}", "\x{430}\x{308}")); -ok($objBg->eq("\x{4D2}", "\x{410}\x{308}")); -ok($objBg->eq("\x{453}", "\x{433}\x{301}")); -ok($objBg->eq("\x{403}", "\x{413}\x{301}")); -ok($objBg->eq("\x{4D7}", "\x{435}\x{306}")); -ok($objBg->eq("\x{4D6}", "\x{415}\x{306}")); -ok($objBg->eq("\x{4DD}", "\x{436}\x{308}")); -ok($objBg->eq("\x{4DC}", "\x{416}\x{308}")); -ok($objBg->eq("\x{4DF}", "\x{437}\x{308}")); -ok($objBg->eq("\x{4DE}", "\x{417}\x{308}")); -ok($objBg->eq("\x{4E5}", "\x{438}\x{308}")); -ok($objBg->eq("\x{4E4}", "\x{418}\x{308}")); -ok($objBg->eq("\x{457}", "\x{456}\x{308}")); -ok($objBg->eq("\x{407}", "\x{406}\x{308}")); -ok($objBg->eq("\x{439}", "\x{438}\x{306}")); -ok($objBg->eq("\x{419}", "\x{418}\x{306}")); -ok($objBg->eq("\x{4E7}", "\x{43E}\x{308}")); -ok($objBg->eq("\x{4E6}", "\x{41E}\x{308}")); -ok($objBg->eq("\x{45C}", "\x{43A}\x{301}")); -ok($objBg->eq("\x{40C}", "\x{41A}\x{301}")); -ok($objBg->eq("\x{45E}", "\x{443}\x{306}")); -ok($objBg->eq("\x{40E}", "\x{423}\x{306}")); -ok($objBg->eq("\x{4F1}", "\x{443}\x{308}")); -ok($objBg->eq("\x{4F0}", "\x{423}\x{308}")); -ok($objBg->eq("\x{4F3}", "\x{443}\x{30B}")); -ok($objBg->eq("\x{4F2}", "\x{423}\x{30B}")); -ok($objBg->eq("\x{4F5}", "\x{447}\x{308}")); -ok($objBg->eq("\x{4F4}", "\x{427}\x{308}")); -ok($objBg->eq("\x{4F9}", "\x{44B}\x{308}")); -ok($objBg->eq("\x{4F8}", "\x{42B}\x{308}")); -ok($objBg->eq("\x{4ED}", "\x{44D}\x{308}")); -ok($objBg->eq("\x{4EC}", "\x{42D}\x{308}")); - -# 100 - -ok($objBg->eq("\x{4D1}", "\x{430}\0\x{306}")); -ok($objBg->eq("\x{4D0}", "\x{410}\0\x{306}")); -ok($objBg->eq("\x{4D3}", "\x{430}\0\x{308}")); -ok($objBg->eq("\x{4D2}", "\x{410}\0\x{308}")); -ok($objBg->eq("\x{453}", "\x{433}\0\x{301}")); -ok($objBg->eq("\x{403}", "\x{413}\0\x{301}")); -ok($objBg->eq("\x{4D7}", "\x{435}\0\x{306}")); -ok($objBg->eq("\x{4D6}", "\x{415}\0\x{306}")); -ok($objBg->eq("\x{4DD}", "\x{436}\0\x{308}")); -ok($objBg->eq("\x{4DC}", "\x{416}\0\x{308}")); -ok($objBg->eq("\x{4DF}", "\x{437}\0\x{308}")); -ok($objBg->eq("\x{4DE}", "\x{417}\0\x{308}")); -ok($objBg->eq("\x{457}", "\x{456}\0\x{308}")); -ok($objBg->eq("\x{407}", "\x{406}\0\x{308}")); -ok($objBg->eq("\x{4E7}", "\x{43E}\0\x{308}")); -ok($objBg->eq("\x{4E6}", "\x{41E}\0\x{308}")); -ok($objBg->eq("\x{45C}", "\x{43A}\0\x{301}")); -ok($objBg->eq("\x{40C}", "\x{41A}\0\x{301}")); -ok($objBg->eq("\x{45E}", "\x{443}\0\x{306}")); -ok($objBg->eq("\x{40E}", "\x{423}\0\x{306}")); -ok($objBg->eq("\x{4F1}", "\x{443}\0\x{308}")); -ok($objBg->eq("\x{4F0}", "\x{423}\0\x{308}")); -ok($objBg->eq("\x{4F3}", "\x{443}\0\x{30B}")); -ok($objBg->eq("\x{4F2}", "\x{423}\0\x{30B}")); -ok($objBg->eq("\x{4F5}", "\x{447}\0\x{308}")); -ok($objBg->eq("\x{4F4}", "\x{427}\0\x{308}")); -ok($objBg->eq("\x{4F9}", "\x{44B}\0\x{308}")); -ok($objBg->eq("\x{4F8}", "\x{42B}\0\x{308}")); -ok($objBg->eq("\x{4ED}", "\x{44D}\0\x{308}")); -ok($objBg->eq("\x{4EC}", "\x{42D}\0\x{308}")); - -# 130 +ok($objBg->eq("\x{4E5}", "\x{438}\x{308}")); # not suppressed +ok($objBg->eq("\x{4E4}", "\x{418}\x{308}")); # not suppressed +ok($objBg->eq("\x{439}", "\x{438}\x{306}")); # not suppressed +ok($objBg->eq("\x{419}", "\x{418}\x{306}")); # not suppressed + +# 106 + +for my $i ("", "\0") { + ok($objBg->eq("\x{4D1}", "\x{430}$i\x{306}")); + ok($objBg->eq("\x{4D0}", "\x{410}$i\x{306}")); + ok($objBg->eq("\x{4D3}", "\x{430}$i\x{308}")); + ok($objBg->eq("\x{4D2}", "\x{410}$i\x{308}")); + ok($objBg->eq("\x{4DB}", "\x{4D9}$i\x{308}")); + ok($objBg->eq("\x{4DA}", "\x{4D8}$i\x{308}")); + ok($objBg->eq("\x{453}", "\x{433}$i\x{301}")); + ok($objBg->eq("\x{403}", "\x{413}$i\x{301}")); + ok($objBg->eq("\x{450}", "\x{435}$i\x{300}")); # not contraction + ok($objBg->eq("\x{400}", "\x{415}$i\x{300}")); # not contraction + ok($objBg->eq("\x{451}", "\x{435}$i\x{308}")); # not contraction + ok($objBg->eq("\x{401}", "\x{415}$i\x{308}")); # not contraction + ok($objBg->eq("\x{4D7}", "\x{435}$i\x{306}")); + ok($objBg->eq("\x{4D6}", "\x{415}$i\x{306}")); + ok($objBg->eq("\x{4C2}", "\x{436}$i\x{306}")); # not contraction + ok($objBg->eq("\x{4C1}", "\x{416}$i\x{306}")); # not contraction + ok($objBg->eq("\x{4DD}", "\x{436}$i\x{308}")); + ok($objBg->eq("\x{4DC}", "\x{416}$i\x{308}")); + ok($objBg->eq("\x{4DF}", "\x{437}$i\x{308}")); + ok($objBg->eq("\x{4DE}", "\x{417}$i\x{308}")); + ok($objBg->eq("\x{45D}", "\x{438}$i\x{300}")); # not contraction + ok($objBg->eq("\x{40D}", "\x{418}$i\x{300}")); # not contraction + ok($objBg->eq("\x{4E3}", "\x{438}$i\x{304}")); # not contraction + ok($objBg->eq("\x{4E2}", "\x{418}$i\x{304}")); # not contraction + ok($objBg->eq("\x{457}", "\x{456}$i\x{308}")); + ok($objBg->eq("\x{407}", "\x{406}$i\x{308}")); + ok($objBg->eq("\x{4E7}", "\x{43E}$i\x{308}")); + ok($objBg->eq("\x{4E6}", "\x{41E}$i\x{308}")); + ok($objBg->eq("\x{4EB}", "\x{4E9}$i\x{308}")); + ok($objBg->eq("\x{4EA}", "\x{4E8}$i\x{308}")); + ok($objBg->eq("\x{45C}", "\x{43A}$i\x{301}")); + ok($objBg->eq("\x{40C}", "\x{41A}$i\x{301}")); + ok($objBg->eq("\x{4EF}", "\x{443}$i\x{304}")); # not contraction + ok($objBg->eq("\x{4EE}", "\x{423}$i\x{304}")); # not contraction + ok($objBg->eq("\x{45E}", "\x{443}$i\x{306}")); + ok($objBg->eq("\x{40E}", "\x{423}$i\x{306}")); + ok($objBg->eq("\x{4F1}", "\x{443}$i\x{308}")); + ok($objBg->eq("\x{4F0}", "\x{423}$i\x{308}")); + ok($objBg->eq("\x{4F3}", "\x{443}$i\x{30B}")); + ok($objBg->eq("\x{4F2}", "\x{423}$i\x{30B}")); + ok($objBg->eq("\x{4F5}", "\x{447}$i\x{308}")); + ok($objBg->eq("\x{4F4}", "\x{427}$i\x{308}")); + ok($objBg->eq("\x{4F9}", "\x{44B}$i\x{308}")); + ok($objBg->eq("\x{4F8}", "\x{42B}$i\x{308}")); + ok($objBg->eq("\x{4ED}", "\x{44D}$i\x{308}")); + ok($objBg->eq("\x{4EC}", "\x{42D}$i\x{308}")); + ok($objBg->eq("\x{477}", "\x{475}$i\x{30F}")); + ok($objBg->eq("\x{476}", "\x{474}$i\x{30F}")); +} + +# 202 diff --git a/cpan/Unicode-Collate/t/loc_ca.t b/cpan/Unicode-Collate/t/loc_ca.t index 092d75d..5569ccc 100644 --- a/cpan/Unicode-Collate/t/loc_ca.t +++ b/cpan/Unicode-Collate/t/loc_ca.t @@ -31,11 +31,11 @@ ok($objCa->getlocale, 'ca'); $objCa->change(level => 1); -ok($objCa->lt("c", "ch")); -ok($objCa->lt("cz", "ch")); +ok($objCa->lt("c", "ch")); +ok($objCa->lt("cz","ch")); ok($objCa->gt("d", "ch")); -ok($objCa->lt("l", "ll")); -ok($objCa->lt("lz", "ll")); +ok($objCa->lt("l", "ll")); +ok($objCa->lt("lz","ll")); ok($objCa->gt("m", "ll")); # 8 @@ -57,13 +57,13 @@ ok($objCa->eq("Ch", "CH")); ok($objCa->eq("ll", "lL")); ok($objCa->eq("lL", "Ll")); ok($objCa->eq("Ll", "LL")); -ok($objCa->eq("l${dot}l", "lL")); -ok($objCa->eq("l${dot}L", "Ll")); -ok($objCa->eq("L${dot}l", "LL")); -ok($objCa->eq("ll","l${dot}l")); -ok($objCa->eq("lL","l${dot}L")); -ok($objCa->eq("Ll","L${dot}l")); -ok($objCa->eq("LL","L${dot}L")); +ok($objCa->eq("ll", "l${dot}l")); +ok($objCa->eq("lL", "l${dot}l")); +ok($objCa->eq("lL", "l${dot}L")); +ok($objCa->eq("Ll", "l${dot}L")); +ok($objCa->eq("Ll", "L${dot}l")); +ok($objCa->eq("LL", "L${dot}l")); +ok($objCa->eq("LL", "L${dot}L")); # 25 @@ -76,13 +76,13 @@ ok($objCa->lt("Ch", "CH")); ok($objCa->lt("ll", "lL")); ok($objCa->lt("lL", "Ll")); ok($objCa->lt("Ll", "LL")); -ok($objCa->lt("l${dot}l", "lL")); -ok($objCa->lt("l${dot}L", "Ll")); -ok($objCa->lt("L${dot}l", "LL")); -ok($objCa->lt("ll","l${dot}l")); -ok($objCa->lt("lL","l${dot}L")); -ok($objCa->lt("Ll","L${dot}l")); -ok($objCa->lt("LL","L${dot}L")); +ok($objCa->lt("ll", "l${dot}l")); +ok($objCa->gt("lL", "l${dot}l")); +ok($objCa->lt("lL", "l${dot}L")); +ok($objCa->gt("Ll", "l${dot}L")); +ok($objCa->lt("Ll", "L${dot}l")); +ok($objCa->gt("LL", "L${dot}l")); +ok($objCa->lt("LL", "L${dot}L")); # 38 diff --git a/cpan/Unicode-Collate/t/loc_fiph.t b/cpan/Unicode-Collate/t/loc_fiph.t new file mode 100644 index 0000000..4c38c15 --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_fiph.t @@ -0,0 +1,149 @@ + +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 => 83 }; + +use strict; +use warnings; +use Unicode::Collate::Locale; + +ok(1); + +######################### + +my $uuml = pack 'U', 0xFC; +my $Uuml = pack 'U', 0xDC; +my $arng = pack 'U', 0xE5; +my $Arng = pack 'U', 0xC5; +my $auml = pack 'U', 0xE4; +my $Auml = pack 'U', 0xC4; +my $ae = pack 'U', 0xE6; +my $AE = pack 'U', 0xC6; +my $ouml = pack 'U', 0xF6; +my $Ouml = pack 'U', 0xD6; +my $ostk = pack 'U', 0xF8; +my $Ostk = pack 'U', 0xD8; + +my $objFiPhone = Unicode::Collate::Locale-> + new(locale => 'FI__phonebook', normalization => undef); + +ok($objFiPhone->getlocale, 'fi__phonebook'); + +$objFiPhone->change(level => 1); + +ok($objFiPhone->lt('z', $arng)); +ok($objFiPhone->lt($arng, $auml)); +ok($objFiPhone->lt($auml, $ouml)); +ok($objFiPhone->lt($ouml, "\x{1C0}")); + +# 6 + +ok($objFiPhone->eq("d\x{335}", "\x{111}")); +ok($objFiPhone->eq("g\x{335}", "\x{1E5}")); +ok($objFiPhone->eq("n\x{335}", "\x{14B}")); +ok($objFiPhone->eq("t\x{335}", "\x{167}")); +ok($objFiPhone->eq("z\x{335}", "\x{292}")); +ok($objFiPhone->lt('v', 'w')); +ok($objFiPhone->eq('y', $uuml)); +ok($objFiPhone->eq($auml, $ae)); +ok($objFiPhone->eq($ouml, $ostk)); + +# 15 + +$objFiPhone->change(level => 2); + +ok($objFiPhone->lt("d\x{335}", "\x{111}")); +ok($objFiPhone->lt("g\x{335}", "\x{1E5}")); +ok($objFiPhone->lt("n\x{335}", "\x{14B}")); +ok($objFiPhone->lt("t\x{335}", "\x{167}")); +ok($objFiPhone->lt("z\x{335}", "\x{292}")); +ok($objFiPhone->lt('v', 'w')); +ok($objFiPhone->lt('y', $uuml)); +ok($objFiPhone->lt($auml, $ae)); +ok($objFiPhone->lt($ouml, $ostk)); + +# 24 + +ok($objFiPhone->eq("\x{111}", "\x{110}")); +ok($objFiPhone->eq("\x{1E5}", "\x{1E4}")); +ok($objFiPhone->eq("\x{14B}", "\x{14A}")); +ok($objFiPhone->eq("\x{167}", "\x{166}")); +ok($objFiPhone->eq("\x{292}", "\x{1B7}")); +ok($objFiPhone->eq('w', 'W')); +ok($objFiPhone->eq($uuml, $Uuml)); +ok($objFiPhone->eq($arng, $Arng)); +ok($objFiPhone->eq($auml, $Auml)); +ok($objFiPhone->eq($ae, $AE)); +ok($objFiPhone->eq($AE, "\x{1D2D}")); +ok($objFiPhone->eq($ouml, $Ouml)); +ok($objFiPhone->eq($ostk, $Ostk)); + +# 37 + +$objFiPhone->change(level => 3); + +ok($objFiPhone->lt("\x{111}", "\x{110}")); +ok($objFiPhone->lt("\x{1E5}", "\x{1E4}")); +ok($objFiPhone->lt("\x{14B}", "\x{14A}")); +ok($objFiPhone->lt("\x{167}", "\x{166}")); +ok($objFiPhone->lt("\x{292}", "\x{1B7}")); +ok($objFiPhone->lt('w', 'W')); +ok($objFiPhone->lt($uuml, $Uuml)); +ok($objFiPhone->lt($arng, $Arng)); +ok($objFiPhone->lt($auml, $Auml)); +ok($objFiPhone->lt($ae, $AE)); +ok($objFiPhone->lt($AE, "\x{1D2D}")); +ok($objFiPhone->lt($ouml, $Ouml)); +ok($objFiPhone->lt($ostk, $Ostk)); + +# 50 + +ok($objFiPhone->eq("u\x{308}", $uuml)); +ok($objFiPhone->eq("U\x{308}", $Uuml)); +ok($objFiPhone->eq("\x{1EF}", "\x{292}\x{30C}")); +ok($objFiPhone->eq("\x{1EE}", "\x{1B7}\x{30C}")); +ok($objFiPhone->eq("a\x{30A}", $arng)); +ok($objFiPhone->eq("A\x{30A}", $Arng)); +ok($objFiPhone->eq("a\x{308}", $auml)); +ok($objFiPhone->eq("A\x{308}", $Auml)); +ok($objFiPhone->eq("o\x{308}", $ouml)); +ok($objFiPhone->eq("O\x{308}", $Ouml)); +ok($objFiPhone->eq("o\x{338}", $ostk)); +ok($objFiPhone->eq("O\x{338}", $Ostk)); + +# 62 + +ok($objFiPhone->eq("u\x{308}\x{300}", "\x{1DC}")); +ok($objFiPhone->eq("U\x{308}\x{300}", "\x{1DB}")); +ok($objFiPhone->eq("u\x{308}\x{301}", "\x{1D8}")); +ok($objFiPhone->eq("U\x{308}\x{301}", "\x{1D7}")); +ok($objFiPhone->eq("u\x{308}\x{304}", "\x{1D6}")); +ok($objFiPhone->eq("U\x{308}\x{304}", "\x{1D5}")); +ok($objFiPhone->eq("u\x{308}\x{30C}", "\x{1DA}")); +ok($objFiPhone->eq("U\x{308}\x{30C}", "\x{1D9}")); +ok($objFiPhone->eq("A\x{30A}", "\x{212B}")); +ok($objFiPhone->eq("a\x{30A}\x{301}", "\x{1FB}")); +ok($objFiPhone->eq("A\x{30A}\x{301}", "\x{1FA}")); +ok($objFiPhone->eq("a\x{308}\x{304}", "\x{1DF}")); +ok($objFiPhone->eq("A\x{308}\x{304}", "\x{1DE}")); +ok($objFiPhone->eq("\x{1FD}", "$ae\x{301}")); +ok($objFiPhone->eq("\x{1FC}", "$AE\x{301}")); +ok($objFiPhone->eq("\x{1E3}", "$ae\x{304}")); +ok($objFiPhone->eq("\x{1E2}", "$AE\x{304}")); +ok($objFiPhone->eq("o\x{308}\x{304}", "\x{22B}")); +ok($objFiPhone->eq("O\x{308}\x{304}", "\x{22A}")); +ok($objFiPhone->eq("o\x{338}\x{301}", "\x{1FF}")); +ok($objFiPhone->eq("O\x{338}\x{301}", "\x{1FE}")); + +# 83 diff --git a/cpan/Unicode-Collate/t/loc_gu.t b/cpan/Unicode-Collate/t/loc_gu.t new file mode 100644 index 0000000..e9b7e30 --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_gu.t @@ -0,0 +1,41 @@ + +BEGIN { + unless ("A" eq pack('U', 0x41)) { + print "1..0 # Unicode::Collate " . + "cannot stringify a Unicode code point\n"; + exit 0; + } + if ($ENV{PERL_CORE}) { + chdir('t') if -d 't'; + @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); + } +} + +use Test; +BEGIN { plan tests => 7 }; + +use strict; +use warnings; +use Unicode::Collate::Locale; + +ok(1); + +######################### + +my $objGu = Unicode::Collate::Locale-> + new(locale => 'GU', normalization => undef); + +ok($objGu->getlocale, 'gu'); + +$objGu->change(level => 1); + +ok($objGu->lt("\x{AD0}", "\x{A82}")); +ok($objGu->lt("\x{A82}", "\x{A83}")); +ok($objGu->lt("\x{A83}", "\x{A85}")); + +ok($objGu->eq("\x{A82}", "\x{A81}")); + +$objGu->change(level => 2); + +ok($objGu->lt("\x{A82}", "\x{A81}")); + diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 9b50c80..671c4be 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -110,6 +110,10 @@ L has been upgraded from version 1.16 to version 1.17. L has been upgraded from version 6.59 to version 6.61_01. +=item * + +L has been upgraded from version 0.78 to version 0.79. + =back =head2 Removed Modules and Pragmata -- 2.7.4