diff options
author | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2010-09-23 17:46:43 +0100 |
---|---|---|
committer | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2010-09-23 17:47:50 +0100 |
commit | 1393fe000d6be26b7927c85788f02d6ea124d991 (patch) | |
tree | f9a9da2686b270a9145d3ced711ada1bb5320c6f | |
parent | 3db6ecf2ab3559908674348221dcc60f4fcb6af9 (diff) | |
download | perl-1393fe000d6be26b7927c85788f02d6ea124d991.tar.gz |
Updated Unicode-Collate to CPAN version 0.60
[DELTA]
0.60 Thu Sep 23 21:37:36 2010
- bug fix: index() [and its friends including gmatch()] didn't remove
ignorable characters in the substring correctly.
Thanks for the bug report:
http://www.xray.mpe.mpg.de/mailing-lists/perl-unicode/2010-09/msg00014.html
- U::C::Locale newly supports locales: de__phonebook, nso, om, tn, vi.
- precomposites of a-breve, a-circ, e-circ, o-circ are tailored as well.
(affected locales: ro, sk, sv)
35 files changed, 1253 insertions, 222 deletions
@@ -2394,6 +2394,7 @@ 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 cpan/Unicode-Collate/Collate/Locale/da.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/de_phone.pl Unicode::Collate 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 @@ -2410,6 +2411,8 @@ cpan/Unicode-Collate/Collate/Locale/lt.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/lv.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/mt.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/nn.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/nso.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/om.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/pl.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale.pm Unicode::Collate cpan/Unicode-Collate/Collate/Locale/ro.pl Unicode::Collate @@ -2417,7 +2420,9 @@ cpan/Unicode-Collate/Collate/Locale/sk.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/sl.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/sv.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/sw.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/tn.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/tr.pl Unicode::Collate +cpan/Unicode-Collate/Collate/Locale/vi.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/wo.pl Unicode::Collate cpan/Unicode-Collate/Collate/Locale/yo.pl Unicode::Collate cpan/Unicode-Collate/Collate.pm Unicode::Collate @@ -2438,6 +2443,8 @@ cpan/Unicode-Collate/t/loc_ca.t Unicode::Collate cpan/Unicode-Collate/t/loc_cs.t Unicode::Collate 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_eo.t Unicode::Collate cpan/Unicode-Collate/t/loc_es.t Unicode::Collate cpan/Unicode-Collate/t/loc_estr.t Unicode::Collate @@ -2455,6 +2462,8 @@ cpan/Unicode-Collate/t/loc_lv.t Unicode::Collate cpan/Unicode-Collate/t/loc_mt.t Unicode::Collate cpan/Unicode-Collate/t/loc_nb.t Unicode::Collate cpan/Unicode-Collate/t/loc_nn.t Unicode::Collate +cpan/Unicode-Collate/t/loc_nso.t Unicode::Collate +cpan/Unicode-Collate/t/loc_om.t Unicode::Collate cpan/Unicode-Collate/t/loc_pl.t Unicode::Collate cpan/Unicode-Collate/t/loc_ro.t Unicode::Collate cpan/Unicode-Collate/t/loc_sk.t Unicode::Collate @@ -2462,7 +2471,9 @@ cpan/Unicode-Collate/t/loc_sl.t Unicode::Collate cpan/Unicode-Collate/t/loc_sv.t Unicode::Collate cpan/Unicode-Collate/t/loc_sw.t Unicode::Collate cpan/Unicode-Collate/t/loc_test.t Unicode::Collate +cpan/Unicode-Collate/t/loc_tn.t Unicode::Collate cpan/Unicode-Collate/t/loc_tr.t Unicode::Collate +cpan/Unicode-Collate/t/loc_vi.t Unicode::Collate cpan/Unicode-Collate/t/loc_wo.t Unicode::Collate cpan/Unicode-Collate/t/loc_yo.t Unicode::Collate cpan/Unicode-Collate/t/normal.t Unicode::Collate diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 4b153bb3f8..fb653470bb 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -1506,7 +1506,7 @@ use File::Glob qw(:case); 'Unicode::Collate' => { 'MAINTAINER' => 'sadahiro', - 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-0.59-withoutworldwriteables.tar.gz', + 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-0.60-withoutworldwriteables.tar.gz', 'FILES' => q[cpan/Unicode-Collate], # ignore experimental XS version 'EXCLUDED' => [ qr{X$}, diff --git a/cpan/Unicode-Collate/Changes b/cpan/Unicode-Collate/Changes index 646b93bb06..cc7e75fd99 100644 --- a/cpan/Unicode-Collate/Changes +++ b/cpan/Unicode-Collate/Changes @@ -1,5 +1,15 @@ Revision history for Perl module Unicode::Collate. +0.60 Thu Sep 23 21:37:36 2010 + - bug fix: index() [and its friends including gmatch()] didn't remove + ignorable characters in the substring correctly. + Thanks for the bug report: + http://www.xray.mpe.mpg.de/mailing-lists/perl-unicode/2010-09/msg00014.html + + - U::C::Locale newly supports locales: de__phonebook, nso, om, tn, vi. + - precomposites of a-breve, a-circ, e-circ, o-circ are tailored as well. + (affected locales: ro, sk, sv) + 0.59 Sun Sep 5 17:03:52 2010 - U::C::Locale newly supports locales: az, fil, ha, lt, mt, tr, wo, yo. - precomposites of a-uml, o-uml, and u-uml are tailored as well. @@ -32,7 +42,7 @@ Revision history for Perl module Unicode::Collate. ! DUCET will be compiled when XS is used. Explicit saying <table => 'allkeys.txt'> (or using another table) will prevent - this module using the compiled DUCET. + this module from using the compiled DUCET. ! added t/default.t that uses DUCET. diff --git a/cpan/Unicode-Collate/Collate.pm b/cpan/Unicode-Collate/Collate.pm index 0836453f8f..bdc00ddeab 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.59'; +our $VERSION = '0.60'; our $PACKAGE = __PACKAGE__; my @Path = qw(Unicode Collate); @@ -1015,9 +1015,10 @@ sub index if (@subWt && !$var && !$wt[0]) { push @{ $subWt[-1] }, \@wt if $to_be_pushed; - } else { + } elsif ($to_be_pushed) { push @subWt, [ \@wt ]; } + # else ===> skipped } my $count = 0; @@ -1536,7 +1537,7 @@ B<NOTE>: When XSUB is used, the DUCET is compiled on building this module, and it may save time at the run time. Explicit saying C<table =E<gt> 'allkeys.txt'> (or using another table), or using C<ignoreChar>, C<ignoreName>, C<undefChar>, or C<undefName> -will prevent this module using the compiled DUCET. +will prevent this module from using the compiled DUCET. If C<undef> is passed explicitly as the value for this key, no file is read (but you can define collation elements via C<entry>). diff --git a/cpan/Unicode-Collate/Collate/Locale.pm b/cpan/Unicode-Collate/Collate/Locale.pm index 4803df98c7..0715ca929c 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.59'; +our $VERSION = '0.60'; use File::Spec; @@ -14,9 +14,10 @@ my $PL_EXT = '.pl'; my %LocaleFile = map { ($_, $_) } qw( af az ca cs cy da eo es et fi fil fo fr ha haw - is kl lt lv mt nn pl ro sk sl sv sw tr wo yo + is kl lt lv mt nn nso om pl ro sk sl sv sw tn tr vi wo yo ); $LocaleFile{'default'} = ''; + $LocaleFile{'de__phonebook'} = 'de_phone'; $LocaleFile{'es__traditional'} = 'es_trad'; $LocaleFile{'nb'} = 'nn'; @@ -25,6 +26,7 @@ sub _locale { if ($locale) { $locale = lc $locale; $locale =~ tr/\-\ \./_/; + $locale =~ s/_phone\z/_phonebook/; $locale =~ s/_trad\z/_traditional/; $LocaleFile{$locale} and return $locale; @@ -159,6 +161,7 @@ this method returns a string C<'default'> meaning no special tailoring. cs Czech cy Welsh da Danish + de__phonebook German (umlaut as 'ae', 'oe', 'ue') eo Esperanto es Spanish es__traditional Spanish ('ch' and 'll' as a grapheme) @@ -176,13 +179,17 @@ this method returns a string C<'default'> meaning no special tailoring. mt Maltese nb Norwegian Bokmal nn Norwegian Nynorsk + nso Northern Sotho + om Oromo pl Polish ro Romanian sk Slovak sl Slovenian sv Swedish sw Swahili + tn Tswana tr Turkish + vi Vietnamese wo Wolof yo Yoruba @@ -193,6 +200,20 @@ F<Collate/Locale/*.pm> and F<Collate/allkeys.txt>. On building, Unicode::Collate::Locale doesn't require F<data/*.txt> and F<mklocale>. Tests for Unicode::Collate::Locale are named F<t/loc_*.t>. +=head1 CAVEAT + +=over 4 + +=item tailoring is not maximum + +If a certain letter is tailored, its equivalents are not always +tailored as well as it. For example, even though W is tailored, +fullwidth W (C<U+FF37>), W with acute (C<U+1E82>), etc. are not +tailored. Thus the result may depend on whether source strings +are normalized or not. + +=back + =head1 AUTHOR The Unicode::Collate::Locale module for perl was written diff --git a/cpan/Unicode-Collate/Collate/Locale/de_phone.pl b/cpan/Unicode-Collate/Collate/Locale/de_phone.pl new file mode 100644 index 0000000000..a4405ec23b --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/de_phone.pl @@ -0,0 +1,28 @@ ++{ + entry => <<'ENTRY', # for DUCET v5.2.0 +00E4 ; [.120F.0021.0002.00E4][.126B.0021.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS +0061 0308 ; [.120F.0021.0002.00E4][.126B.0021.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS +00C4 ; [.120F.0021.0008.00C4][.126B.0021.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS +0041 0308 ; [.120F.0021.0008.00C4][.126B.0021.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS +01DF ; [.120F.0021.0002.00E4][.126B.0021.0002.00E4][.0000.005B.0002.0304] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON +01DE ; [.120F.0021.0008.00C4][.126B.0021.0008.00C4][.0000.005B.0002.0304] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON +00F6 ; [.138E.0021.0002.00F6][.126B.0021.0002.00F6] # LATIN SMALL LETTER O WITH DIAERESIS +006F 0308 ; [.138E.0021.0002.00F6][.126B.0021.0002.00F6] # LATIN SMALL LETTER O WITH DIAERESIS +00D6 ; [.138E.0021.0008.00D6][.126B.0021.0008.00D6] # LATIN CAPITAL LETTER O WITH DIAERESIS +004F 0308 ; [.138E.0021.0008.00D6][.126B.0021.0008.00D6] # LATIN CAPITAL LETTER O WITH DIAERESIS +022B ; [.138E.0021.0002.00F6][.126B.0021.0002.00F6][.0000.005B.0002.0304] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON +022A ; [.138E.0021.0008.00D6][.126B.0021.0008.00D6][.0000.005B.0002.0304] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON +00FC ; [.1453.0021.0002.00FC][.126B.0021.0002.00FC] # LATIN SMALL LETTER U WITH DIAERESIS +0075 0308 ; [.1453.0021.0002.00FC][.126B.0021.0002.00FC] # LATIN SMALL LETTER U WITH DIAERESIS +00DC ; [.1453.0021.0008.00DC][.126B.0021.0008.00DC] # LATIN CAPITAL LETTER U WITH DIAERESIS +0055 0308 ; [.1453.0021.0008.00DC][.126B.0021.0008.00DC] # LATIN CAPITAL LETTER U WITH DIAERESIS +01DC ; [.1453.0021.0002.00FC][.126B.0021.0002.00FC][.0000.0035.0002.0300] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE +01DB ; [.1453.0021.0008.00DC][.126B.0021.0008.00DC][.0000.0035.0002.0300] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE +01D8 ; [.1453.0021.0002.00FC][.126B.0021.0002.00FC][.0000.0032.0002.0301] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE +01D7 ; [.1453.0021.0008.00DC][.126B.0021.0008.00DC][.0000.0032.0002.0301] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE +01D6 ; [.1453.0021.0002.00FC][.126B.0021.0002.00FC][.0000.005B.0002.0304] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON +01D5 ; [.1453.0021.0008.00DC][.126B.0021.0008.00DC][.0000.005B.0002.0304] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON +01DA ; [.1453.0021.0002.00FC][.126B.0021.0002.00FC][.0000.0041.0002.030C] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON +01D9 ; [.1453.0021.0008.00DC][.126B.0021.0008.00DC][.0000.0041.0002.030C] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON +ENTRY +}; diff --git a/cpan/Unicode-Collate/Collate/Locale/nso.pl b/cpan/Unicode-Collate/Collate/Locale/nso.pl new file mode 100644 index 0000000000..2d20e1e403 --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/nso.pl @@ -0,0 +1,36 @@ ++{ + entry => <<'ENTRY', # for DUCET v5.2.0 +00EA ; [.126C.0020.0002.00EA] # LATIN SMALL LETTER E WITH CIRCUMFLEX +0065 0302 ; [.126C.0020.0002.00EA] # LATIN SMALL LETTER E WITH CIRCUMFLEX +00CA ; [.126C.0020.0008.00CA] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0045 0302 ; [.126C.0020.0008.00CA] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +1EC1 ; [.126C.0020.0002.00EA][.0000.0035.0002.0300] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC0 ; [.126C.0020.0008.00CA][.0000.0035.0002.0300] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +1EBF ; [.126C.0020.0002.00EA][.0000.0032.0002.0301] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE +1EBE ; [.126C.0020.0008.00CA][.0000.0032.0002.0301] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC5 ; [.126C.0020.0002.00EA][.0000.004E.0002.0303] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE +1EC4 ; [.126C.0020.0008.00CA][.0000.004E.0002.0303] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +1EC3 ; [.126C.0020.0002.00EA][.0000.0064.0002.0309] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC2 ; [.126C.0020.0008.00CA][.0000.0064.0002.0309] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC7 ; [.126C.0020.0002.00EA][.0000.0070.0002.0323] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC6 ; [.126C.0020.0008.00CA][.0000.0070.0002.0323] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +00F4 ; [.138F.0020.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX +006F 0302 ; [.138F.0020.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX +00D4 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +004F 0302 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +1ED3 ; [.138F.0020.0002.00F4][.0000.0035.0002.0300] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED2 ; [.138F.0020.0008.00D4][.0000.0035.0002.0300] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED1 ; [.138F.0020.0002.00F4][.0000.0032.0002.0301] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED0 ; [.138F.0020.0008.00D4][.0000.0032.0002.0301] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED7 ; [.138F.0020.0002.00F4][.0000.004E.0002.0303] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED6 ; [.138F.0020.0008.00D4][.0000.004E.0002.0303] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED5 ; [.138F.0020.0002.00F4][.0000.0064.0002.0309] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED4 ; [.138F.0020.0008.00D4][.0000.0064.0002.0309] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED9 ; [.138F.0020.0002.00F4][.0000.0070.0002.0323] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1ED8 ; [.138F.0020.0008.00D4][.0000.0070.0002.0323] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +0161 ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON +0073 030C ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON +0160 ; [.1411.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON +0053 030C ; [.1411.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON +ENTRY +}; diff --git a/cpan/Unicode-Collate/Collate/Locale/om.pl b/cpan/Unicode-Collate/Collate/Locale/om.pl new file mode 100644 index 0000000000..ad7aa41f29 --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/om.pl @@ -0,0 +1,21 @@ ++{ + entry => <<'ENTRY', # for DUCET v5.2.0 +0063 0068 ; [.14AE.0020.0002.0063] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H> +0043 0068 ; [.14AE.0020.0007.0043] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H> +0043 0048 ; [.14AE.0020.0008.0043] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H> +0064 0068 ; [.14AF.0020.0002.0064] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H> +0044 0068 ; [.14AF.0020.0007.0044] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H> +0044 0048 ; [.14AF.0020.0008.0044] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H> +006B 0068 ; [.14B0.0020.0002.006B] # <LATIN SMALL LETTER K, LATIN SMALL LETTER H> +004B 0068 ; [.14B0.0020.0007.004B] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER H> +004B 0048 ; [.14B0.0020.0008.004B] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER H> +006E 0079 ; [.14B1.0020.0002.006E] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y> +004E 0079 ; [.14B1.0020.0007.004E] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y> +004E 0059 ; [.14B1.0020.0008.004E] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y> +0070 0068 ; [.14B2.0020.0002.0070] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H> +0050 0068 ; [.14B2.0020.0007.0050] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H> +0050 0048 ; [.14B2.0020.0008.0050] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H> +0073 0068 ; [.14B3.0020.0002.0073] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H> +0053 0068 ; [.14B3.0020.0007.0053] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H> +ENTRY +}; diff --git a/cpan/Unicode-Collate/Collate/Locale/ro.pl b/cpan/Unicode-Collate/Collate/Locale/ro.pl index 35c7f33925..f59ca14ee9 100644 --- a/cpan/Unicode-Collate/Collate/Locale/ro.pl +++ b/cpan/Unicode-Collate/Collate/Locale/ro.pl @@ -4,10 +4,30 @@ 0061 0306 ; [.1210.0020.0002.0103] # LATIN SMALL LETTER A WITH BREVE 0102 ; [.1210.0020.0008.0102] # LATIN CAPITAL LETTER A WITH BREVE 0041 0306 ; [.1210.0020.0008.0102] # LATIN CAPITAL LETTER A WITH BREVE +1EB1 ; [.1210.0020.0002.0103][.0000.0035.0002.0300] # LATIN SMALL LETTER A WITH BREVE AND GRAVE +1EB0 ; [.1210.0020.0008.0102][.0000.0035.0002.0300] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE +1EAF ; [.1210.0020.0002.0103][.0000.0032.0002.0301] # LATIN SMALL LETTER A WITH BREVE AND ACUTE +1EAE ; [.1210.0020.0008.0102][.0000.0032.0002.0301] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE +1EB5 ; [.1210.0020.0002.0103][.0000.004E.0002.0303] # LATIN SMALL LETTER A WITH BREVE AND TILDE +1EB4 ; [.1210.0020.0008.0102][.0000.004E.0002.0303] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE +1EB3 ; [.1210.0020.0002.0103][.0000.0064.0002.0309] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE +1EB2 ; [.1210.0020.0008.0102][.0000.0064.0002.0309] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE +1EB7 ; [.1210.0020.0002.0103][.0000.0070.0002.0323] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW +1EB6 ; [.1210.0020.0008.0102][.0000.0070.0002.0323] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW 00E2 ; [.1211.0020.0002.00E2] # LATIN SMALL LETTER A WITH CIRCUMFLEX 0061 0302 ; [.1211.0020.0002.00E2] # LATIN SMALL LETTER A WITH CIRCUMFLEX 00C2 ; [.1211.0020.0008.00C2] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0041 0302 ; [.1211.0020.0008.00C2] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +1EA7 ; [.1211.0020.0002.00E2][.0000.0035.0002.0300] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA6 ; [.1211.0020.0008.00C2][.0000.0035.0002.0300] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA5 ; [.1211.0020.0002.00E2][.0000.0032.0002.0301] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA4 ; [.1211.0020.0008.00C2][.0000.0032.0002.0301] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE +1EAB ; [.1211.0020.0002.00E2][.0000.004E.0002.0303] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE +1EAA ; [.1211.0020.0008.00C2][.0000.004E.0002.0303] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE +1EA9 ; [.1211.0020.0002.00E2][.0000.0064.0002.0309] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EA8 ; [.1211.0020.0008.00C2][.0000.0064.0002.0309] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAD ; [.1211.0020.0002.00E2][.0000.0070.0002.0323] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAC ; [.1211.0020.0008.00C2][.0000.0070.0002.0323] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW 0111 ; [.1251.0020.0002.0111] # LATIN SMALL LETTER D WITH STROKE 0064 0335 ; [.1251.0020.0002.0111] # LATIN SMALL LETTER D WITH STROKE 0110 ; [.1251.0020.0008.0110] # LATIN CAPITAL LETTER D WITH STROKE diff --git a/cpan/Unicode-Collate/Collate/Locale/sk.pl b/cpan/Unicode-Collate/Collate/Locale/sk.pl index dc42f44acd..fe100ce841 100644 --- a/cpan/Unicode-Collate/Collate/Locale/sk.pl +++ b/cpan/Unicode-Collate/Collate/Locale/sk.pl @@ -18,6 +18,16 @@ 006F 0302 ; [.138F.0020.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX 00D4 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 004F 0302 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +1ED3 ; [.138F.0020.0002.00F4][.0000.0035.0002.0300] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED2 ; [.138F.0020.0008.00D4][.0000.0035.0002.0300] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED1 ; [.138F.0020.0002.00F4][.0000.0032.0002.0301] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED0 ; [.138F.0020.0008.00D4][.0000.0032.0002.0301] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED7 ; [.138F.0020.0002.00F4][.0000.004E.0002.0303] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED6 ; [.138F.0020.0008.00D4][.0000.004E.0002.0303] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED5 ; [.138F.0020.0002.00F4][.0000.0064.0002.0309] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED4 ; [.138F.0020.0008.00D4][.0000.0064.0002.0309] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED9 ; [.138F.0020.0002.00F4][.0000.0070.0002.0323] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1ED8 ; [.138F.0020.0008.00D4][.0000.0070.0002.0323] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW 0161 ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON 0073 030C ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON 0160 ; [.1411.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON diff --git a/cpan/Unicode-Collate/Collate/Locale/sv.pl b/cpan/Unicode-Collate/Collate/Locale/sv.pl index a039152cde..c04bed4d75 100644 --- a/cpan/Unicode-Collate/Collate/Locale/sv.pl +++ b/cpan/Unicode-Collate/Collate/Locale/sv.pl @@ -72,5 +72,15 @@ 006F 0302 ; [.14B0.0024.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX 00D4 ; [.14B0.0024.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 004F 0302 ; [.14B0.0024.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +1ED3 ; [.14B0.0024.0002.00F4][.0000.0035.0002.0300] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED2 ; [.14B0.0024.0008.00D4][.0000.0035.0002.0300] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED1 ; [.14B0.0024.0002.00F4][.0000.0032.0002.0301] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED0 ; [.14B0.0024.0008.00D4][.0000.0032.0002.0301] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED7 ; [.14B0.0024.0002.00F4][.0000.004E.0002.0303] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED6 ; [.14B0.0024.0008.00D4][.0000.004E.0002.0303] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED5 ; [.14B0.0024.0002.00F4][.0000.0064.0002.0309] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED4 ; [.14B0.0024.0008.00D4][.0000.0064.0002.0309] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED9 ; [.14B0.0024.0002.00F4][.0000.0070.0002.0323] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1ED8 ; [.14B0.0024.0008.00D4][.0000.0070.0002.0323] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW ENTRY }; diff --git a/cpan/Unicode-Collate/Collate/Locale/tn.pl b/cpan/Unicode-Collate/Collate/Locale/tn.pl new file mode 100644 index 0000000000..2d20e1e403 --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/tn.pl @@ -0,0 +1,36 @@ ++{ + entry => <<'ENTRY', # for DUCET v5.2.0 +00EA ; [.126C.0020.0002.00EA] # LATIN SMALL LETTER E WITH CIRCUMFLEX +0065 0302 ; [.126C.0020.0002.00EA] # LATIN SMALL LETTER E WITH CIRCUMFLEX +00CA ; [.126C.0020.0008.00CA] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0045 0302 ; [.126C.0020.0008.00CA] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +1EC1 ; [.126C.0020.0002.00EA][.0000.0035.0002.0300] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC0 ; [.126C.0020.0008.00CA][.0000.0035.0002.0300] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +1EBF ; [.126C.0020.0002.00EA][.0000.0032.0002.0301] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE +1EBE ; [.126C.0020.0008.00CA][.0000.0032.0002.0301] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC5 ; [.126C.0020.0002.00EA][.0000.004E.0002.0303] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE +1EC4 ; [.126C.0020.0008.00CA][.0000.004E.0002.0303] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +1EC3 ; [.126C.0020.0002.00EA][.0000.0064.0002.0309] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC2 ; [.126C.0020.0008.00CA][.0000.0064.0002.0309] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC7 ; [.126C.0020.0002.00EA][.0000.0070.0002.0323] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC6 ; [.126C.0020.0008.00CA][.0000.0070.0002.0323] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +00F4 ; [.138F.0020.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX +006F 0302 ; [.138F.0020.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX +00D4 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +004F 0302 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +1ED3 ; [.138F.0020.0002.00F4][.0000.0035.0002.0300] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED2 ; [.138F.0020.0008.00D4][.0000.0035.0002.0300] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED1 ; [.138F.0020.0002.00F4][.0000.0032.0002.0301] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED0 ; [.138F.0020.0008.00D4][.0000.0032.0002.0301] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED7 ; [.138F.0020.0002.00F4][.0000.004E.0002.0303] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED6 ; [.138F.0020.0008.00D4][.0000.004E.0002.0303] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED5 ; [.138F.0020.0002.00F4][.0000.0064.0002.0309] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED4 ; [.138F.0020.0008.00D4][.0000.0064.0002.0309] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED9 ; [.138F.0020.0002.00F4][.0000.0070.0002.0323] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1ED8 ; [.138F.0020.0008.00D4][.0000.0070.0002.0323] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +0161 ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON +0073 030C ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON +0160 ; [.1411.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON +0053 030C ; [.1411.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON +ENTRY +}; diff --git a/cpan/Unicode-Collate/Collate/Locale/vi.pl b/cpan/Unicode-Collate/Collate/Locale/vi.pl new file mode 100644 index 0000000000..2057ecf0db --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/vi.pl @@ -0,0 +1,154 @@ ++{ +# 0306 is not a Vietnamese tone, just to avoid \x{303} eq \x{306}. + entry => <<'ENTRY', # for DUCET v5.2.0 +0309 ; [.0000.0036.0002.0309] # COMBINING HOOK ABOVE +1EA3 ; [.120F.0020.0002.0061][.0000.0036.0002.0309] # LATIN SMALL LETTER A WITH HOOK ABOVE +1EA2 ; [.120F.0020.0008.0041][.0000.0036.0002.0309] # LATIN CAPITAL LETTER A WITH HOOK ABOVE +1EBB ; [.126B.0020.0002.0065][.0000.0036.0002.0309] # LATIN SMALL LETTER E WITH HOOK ABOVE +1EBA ; [.126B.0020.0008.0045][.0000.0036.0002.0309] # LATIN CAPITAL LETTER E WITH HOOK ABOVE +1EC9 ; [.12EC.0020.0002.0069][.0000.0036.0002.0309] # LATIN SMALL LETTER I WITH HOOK ABOVE +1EC8 ; [.12EC.0020.0008.0049][.0000.0036.0002.0309] # LATIN CAPITAL LETTER I WITH HOOK ABOVE +1ECF ; [.138E.0020.0002.006F][.0000.0036.0002.0309] # LATIN SMALL LETTER O WITH HOOK ABOVE +1ECE ; [.138E.0020.0008.004F][.0000.0036.0002.0309] # LATIN CAPITAL LETTER O WITH HOOK ABOVE +1EE7 ; [.1453.0020.0002.0075][.0000.0036.0002.0309] # LATIN SMALL LETTER U WITH HOOK ABOVE +1EE6 ; [.1453.0020.0008.0055][.0000.0036.0002.0309] # LATIN CAPITAL LETTER U WITH HOOK ABOVE +1EF7 ; [.149C.0020.0002.0079][.0000.0036.0002.0309] # LATIN SMALL LETTER Y WITH HOOK ABOVE +1EF6 ; [.149C.0020.0008.0059][.0000.0036.0002.0309] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE +0303 ; [.0000.0037.0002.0303] # COMBINING TILDE +00E3 ; [.120F.0020.0002.0061][.0000.0037.0002.0303] # LATIN SMALL LETTER A WITH TILDE +00C3 ; [.120F.0020.0008.0041][.0000.0037.0002.0303] # LATIN CAPITAL LETTER A WITH TILDE +1EBD ; [.126B.0020.0002.0065][.0000.0037.0002.0303] # LATIN SMALL LETTER E WITH TILDE +1EBC ; [.126B.0020.0008.0045][.0000.0037.0002.0303] # LATIN CAPITAL LETTER E WITH TILDE +0129 ; [.12EC.0020.0002.0069][.0000.0037.0002.0303] # LATIN SMALL LETTER I WITH TILDE +0128 ; [.12EC.0020.0008.0049][.0000.0037.0002.0303] # LATIN CAPITAL LETTER I WITH TILDE +00F5 ; [.138E.0020.0002.006F][.0000.0037.0002.0303] # LATIN SMALL LETTER O WITH TILDE +00D5 ; [.138E.0020.0008.004F][.0000.0037.0002.0303] # LATIN CAPITAL LETTER O WITH TILDE +0169 ; [.1453.0020.0002.0075][.0000.0037.0002.0303] # LATIN SMALL LETTER U WITH TILDE +0168 ; [.1453.0020.0008.0055][.0000.0037.0002.0303] # LATIN CAPITAL LETTER U WITH TILDE +1EF9 ; [.149C.0020.0002.0079][.0000.0037.0002.0303] # LATIN SMALL LETTER Y WITH TILDE +1EF8 ; [.149C.0020.0008.0059][.0000.0037.0002.0303] # LATIN CAPITAL LETTER Y WITH TILDE +0301 ; [.0000.0038.0002.0301] # COMBINING ACUTE ACCENT +00E1 ; [.120F.0020.0002.0061][.0000.0038.0002.0301] # LATIN SMALL LETTER A WITH ACUTE +00C1 ; [.120F.0020.0008.0041][.0000.0038.0002.0301] # LATIN CAPITAL LETTER A WITH ACUTE +00E9 ; [.126B.0020.0002.0065][.0000.0038.0002.0301] # LATIN SMALL LETTER E WITH ACUTE +00C9 ; [.126B.0020.0008.0045][.0000.0038.0002.0301] # LATIN CAPITAL LETTER E WITH ACUTE +00ED ; [.12EC.0020.0002.0069][.0000.0038.0002.0301] # LATIN SMALL LETTER I WITH ACUTE +00CD ; [.12EC.0020.0008.0049][.0000.0038.0002.0301] # LATIN CAPITAL LETTER I WITH ACUTE +00F3 ; [.138E.0020.0002.006F][.0000.0038.0002.0301] # LATIN SMALL LETTER O WITH ACUTE +00D3 ; [.138E.0020.0008.004F][.0000.0038.0002.0301] # LATIN CAPITAL LETTER O WITH ACUTE +00FA ; [.1453.0020.0002.0075][.0000.0038.0002.0301] # LATIN SMALL LETTER U WITH ACUTE +00DA ; [.1453.0020.0008.0055][.0000.0038.0002.0301] # LATIN CAPITAL LETTER U WITH ACUTE +00FD ; [.149C.0020.0002.0079][.0000.0038.0002.0301] # LATIN SMALL LETTER Y WITH ACUTE +00DD ; [.149C.0020.0008.0059][.0000.0038.0002.0301] # LATIN CAPITAL LETTER Y WITH ACUTE +0323 ; [.0000.0039.0002.0323] # COMBINING DOT BELOW +1EA1 ; [.120F.0020.0002.0061][.0000.0039.0002.0323] # LATIN SMALL LETTER A WITH DOT BELOW +1EA0 ; [.120F.0020.0008.0041][.0000.0039.0002.0323] # LATIN CAPITAL LETTER A WITH DOT BELOW +1EB9 ; [.126B.0020.0002.0065][.0000.0039.0002.0323] # LATIN SMALL LETTER E WITH DOT BELOW +1EB8 ; [.126B.0020.0008.0045][.0000.0039.0002.0323] # LATIN CAPITAL LETTER E WITH DOT BELOW +1ECB ; [.12EC.0020.0002.0069][.0000.0039.0002.0323] # LATIN SMALL LETTER I WITH DOT BELOW +1ECA ; [.12EC.0020.0008.0049][.0000.0039.0002.0323] # LATIN CAPITAL LETTER I WITH DOT BELOW +1ECD ; [.138E.0020.0002.006F][.0000.0039.0002.0323] # LATIN SMALL LETTER O WITH DOT BELOW +1ECC ; [.138E.0020.0008.004F][.0000.0039.0002.0323] # LATIN CAPITAL LETTER O WITH DOT BELOW +1EE5 ; [.1453.0020.0002.0075][.0000.0039.0002.0323] # LATIN SMALL LETTER U WITH DOT BELOW +1EE4 ; [.1453.0020.0008.0055][.0000.0039.0002.0323] # LATIN CAPITAL LETTER U WITH DOT BELOW +1EF5 ; [.149C.0020.0002.0079][.0000.0039.0002.0323] # LATIN SMALL LETTER Y WITH DOT BELOW +1EF4 ; [.149C.0020.0008.0059][.0000.0039.0002.0323] # LATIN CAPITAL LETTER Y WITH DOT BELOW +0306 ; [.0000.003A.0002.0306] # COMBINING BREVE +0115 ; [.126B.0020.0002.0065][.0000.003A.0002.0306] # LATIN SMALL LETTER E WITH BREVE +0114 ; [.126B.0020.0008.0045][.0000.003A.0002.0306] # LATIN CAPITAL LETTER E WITH BREVE +012D ; [.12EC.0020.0002.0069][.0000.003A.0002.0306] # LATIN SMALL LETTER I WITH BREVE +012C ; [.12EC.0020.0008.0049][.0000.003A.0002.0306] # LATIN CAPITAL LETTER I WITH BREVE +014F ; [.138E.0020.0002.006F][.0000.003A.0002.0306] # LATIN SMALL LETTER O WITH BREVE +014E ; [.138E.0020.0008.004F][.0000.003A.0002.0306] # LATIN CAPITAL LETTER O WITH BREVE +016D ; [.1453.0020.0002.0075][.0000.003A.0002.0306] # LATIN SMALL LETTER U WITH BREVE +016C ; [.1453.0020.0008.0055][.0000.003A.0002.0306] # LATIN CAPITAL LETTER U WITH BREVE +0103 ; [.1210.0020.0002.0103] # LATIN SMALL LETTER A WITH BREVE +0061 0306 ; [.1210.0020.0002.0103] # LATIN SMALL LETTER A WITH BREVE +0102 ; [.1210.0020.0008.0102] # LATIN CAPITAL LETTER A WITH BREVE +0041 0306 ; [.1210.0020.0008.0102] # LATIN CAPITAL LETTER A WITH BREVE +1EB1 ; [.1210.0020.0002.0103][.0000.0035.0002.0300] # LATIN SMALL LETTER A WITH BREVE AND GRAVE +1EB0 ; [.1210.0020.0008.0102][.0000.0035.0002.0300] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE +1EAF ; [.1210.0020.0002.0103][.0000.0038.0002.0301] # LATIN SMALL LETTER A WITH BREVE AND ACUTE +1EAE ; [.1210.0020.0008.0102][.0000.0038.0002.0301] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE +1EB5 ; [.1210.0020.0002.0103][.0000.0037.0002.0303] # LATIN SMALL LETTER A WITH BREVE AND TILDE +1EB4 ; [.1210.0020.0008.0102][.0000.0037.0002.0303] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE +1EB3 ; [.1210.0020.0002.0103][.0000.0036.0002.0309] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE +1EB2 ; [.1210.0020.0008.0102][.0000.0036.0002.0309] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE +1EB7 ; [.1210.0020.0002.0103][.0000.0039.0002.0323] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW +1EB6 ; [.1210.0020.0008.0102][.0000.0039.0002.0323] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW +00E2 ; [.1211.0020.0002.00E2] # LATIN SMALL LETTER A WITH CIRCUMFLEX +0061 0302 ; [.1211.0020.0002.00E2] # LATIN SMALL LETTER A WITH CIRCUMFLEX +00C2 ; [.1211.0020.0008.00C2] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0041 0302 ; [.1211.0020.0008.00C2] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +1EA7 ; [.1211.0020.0002.00E2][.0000.0035.0002.0300] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA6 ; [.1211.0020.0008.00C2][.0000.0035.0002.0300] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA5 ; [.1211.0020.0002.00E2][.0000.0038.0002.0301] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA4 ; [.1211.0020.0008.00C2][.0000.0038.0002.0301] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE +1EAB ; [.1211.0020.0002.00E2][.0000.0037.0002.0303] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE +1EAA ; [.1211.0020.0008.00C2][.0000.0037.0002.0303] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE +1EA9 ; [.1211.0020.0002.00E2][.0000.0036.0002.0309] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EA8 ; [.1211.0020.0008.00C2][.0000.0036.0002.0309] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAD ; [.1211.0020.0002.00E2][.0000.0039.0002.0323] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAC ; [.1211.0020.0008.00C2][.0000.0039.0002.0323] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW +0111 ; [.1251.0020.0002.0111] # LATIN SMALL LETTER D WITH STROKE +0064 0335 ; [.1251.0020.0002.0111] # LATIN SMALL LETTER D WITH STROKE +0110 ; [.1251.0020.0008.0110] # LATIN CAPITAL LETTER D WITH STROKE +0044 0335 ; [.1251.0020.0008.0110] # LATIN CAPITAL LETTER D WITH STROKE +00EA ; [.126C.0020.0002.00EA] # LATIN SMALL LETTER E WITH CIRCUMFLEX +0065 0302 ; [.126C.0020.0002.00EA] # LATIN SMALL LETTER E WITH CIRCUMFLEX +00CA ; [.126C.0020.0008.00CA] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0045 0302 ; [.126C.0020.0008.00CA] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +1EC1 ; [.126C.0020.0002.00EA][.0000.0035.0002.0300] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC0 ; [.126C.0020.0008.00CA][.0000.0035.0002.0300] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +1EBF ; [.126C.0020.0002.00EA][.0000.0038.0002.0301] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE +1EBE ; [.126C.0020.0008.00CA][.0000.0038.0002.0301] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC5 ; [.126C.0020.0002.00EA][.0000.0037.0002.0303] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE +1EC4 ; [.126C.0020.0008.00CA][.0000.0037.0002.0303] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +1EC3 ; [.126C.0020.0002.00EA][.0000.0036.0002.0309] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC2 ; [.126C.0020.0008.00CA][.0000.0036.0002.0309] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC7 ; [.126C.0020.0002.00EA][.0000.0039.0002.0323] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC6 ; [.126C.0020.0008.00CA][.0000.0039.0002.0323] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +00F4 ; [.138F.0020.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX +006F 0302 ; [.138F.0020.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX +00D4 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +004F 0302 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +1ED3 ; [.138F.0020.0002.00F4][.0000.0035.0002.0300] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED2 ; [.138F.0020.0008.00D4][.0000.0035.0002.0300] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED1 ; [.138F.0020.0002.00F4][.0000.0038.0002.0301] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED0 ; [.138F.0020.0008.00D4][.0000.0038.0002.0301] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED7 ; [.138F.0020.0002.00F4][.0000.0037.0002.0303] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED6 ; [.138F.0020.0008.00D4][.0000.0037.0002.0303] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED5 ; [.138F.0020.0002.00F4][.0000.0036.0002.0309] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED4 ; [.138F.0020.0008.00D4][.0000.0036.0002.0309] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED9 ; [.138F.0020.0002.00F4][.0000.0039.0002.0323] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1ED8 ; [.138F.0020.0008.00D4][.0000.0039.0002.0323] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +01A1 ; [.1390.0020.0002.01A1] # LATIN SMALL LETTER O WITH HORN +006F 031B ; [.1390.0020.0002.01A1] # LATIN SMALL LETTER O WITH HORN +01A0 ; [.1390.0020.0008.01A0] # LATIN CAPITAL LETTER O WITH HORN +004F 031B ; [.1390.0020.0008.01A0] # LATIN CAPITAL LETTER O WITH HORN +1EDD ; [.1390.0020.0002.01A1][.0000.0035.0002.0300] # LATIN SMALL LETTER O WITH HORN AND GRAVE +1EDC ; [.1390.0020.0008.01A0][.0000.0035.0002.0300] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE +1EDB ; [.1390.0020.0002.01A1][.0000.0038.0002.0301] # LATIN SMALL LETTER O WITH HORN AND ACUTE +1EDA ; [.1390.0020.0008.01A0][.0000.0038.0002.0301] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE +1EE1 ; [.1390.0020.0002.01A1][.0000.0037.0002.0303] # LATIN SMALL LETTER O WITH HORN AND TILDE +1EE0 ; [.1390.0020.0008.01A0][.0000.0037.0002.0303] # LATIN CAPITAL LETTER O WITH HORN AND TILDE +1EDF ; [.1390.0020.0002.01A1][.0000.0036.0002.0309] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE +1EDE ; [.1390.0020.0008.01A0][.0000.0036.0002.0309] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE +1EE3 ; [.1390.0020.0002.01A1][.0000.0039.0002.0323] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW +1EE2 ; [.1390.0020.0008.01A0][.0000.0039.0002.0323] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW +01B0 ; [.1454.0020.0002.01B0] # LATIN SMALL LETTER U WITH HORN +0075 031B ; [.1454.0020.0002.01B0] # LATIN SMALL LETTER U WITH HORN +01AF ; [.1454.0020.0008.01AF] # LATIN CAPITAL LETTER U WITH HORN +0055 031B ; [.1454.0020.0008.01AF] # LATIN CAPITAL LETTER U WITH HORN +1EEB ; [.1454.0020.0002.01B0][.0000.0035.0002.0300] # LATIN SMALL LETTER U WITH HORN AND GRAVE +1EEA ; [.1454.0020.0008.01AF][.0000.0035.0002.0300] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE +1EE9 ; [.1454.0020.0002.01B0][.0000.0038.0002.0301] # LATIN SMALL LETTER U WITH HORN AND ACUTE +1EE8 ; [.1454.0020.0008.01AF][.0000.0038.0002.0301] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE +1EEF ; [.1454.0020.0002.01B0][.0000.0037.0002.0303] # LATIN SMALL LETTER U WITH HORN AND TILDE +1EEE ; [.1454.0020.0008.01AF][.0000.0037.0002.0303] # LATIN CAPITAL LETTER U WITH HORN AND TILDE +1EEC ; [.1454.0020.0008.01AF][.0000.0036.0002.0309] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE +1EED ; [.1454.0020.0002.01B0][.0000.0036.0002.0309] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE +1EF0 ; [.1454.0020.0008.01AF][.0000.0039.0002.0323] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW +1EF1 ; [.1454.0020.0002.01B0][.0000.0039.0002.0323] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW +ENTRY +}; diff --git a/cpan/Unicode-Collate/README b/cpan/Unicode-Collate/README index ac1fc77796..4a04396861 100644 --- a/cpan/Unicode-Collate/README +++ b/cpan/Unicode-Collate/README @@ -1,4 +1,4 @@ -Unicode/Collate version 0.59 +Unicode/Collate version 0.60 =============================== NAME diff --git a/cpan/Unicode-Collate/t/index.t b/cpan/Unicode-Collate/t/index.t index 5b6c78d968..cfe89953c9 100644 --- a/cpan/Unicode-Collate/t/index.t +++ b/cpan/Unicode-Collate/t/index.t @@ -12,7 +12,7 @@ BEGIN { } use Test; -BEGIN { plan tests => 65 }; +BEGIN { plan tests => 71 }; use strict; use warnings; @@ -341,6 +341,33 @@ $Collator->gsubst($str, "camel", sub { "<b>$_[0]</b>" }); ok($str, "<b>Camel</b> donkey zebra <b>came\x{301}l</b> " . "<b>CAMEL</b> horse <b>cAm\0E\0L</b>..."); +# http://www.xray.mpe.mpg.de/mailing-lists/perl-unicode/2010-09/msg00014.html +# when the substring includes an ignorable element like a space... + +$str = "Camel donkey zebra came\x{301}l CAMEL horse cAm\0E\0L..."; +$Collator->gsubst($str, "camel horse", sub { "<b>$_[0]</b>" }); +ok($str, "Camel donkey zebra came\x{301}l <b>CAMEL horse</b> cAm\0E\0L..."); + +$str = "Camel donkey zebra camex{301}l CAMEL horse cAmEL-horse..."; +$Collator->gsubst($str, "camel horse", sub { "=$_[0]=" }); +ok($str, "Camel donkey zebra camex{301}l =CAMEL horse= =cAmEL-horse=..."); + +$str = "Camel donkey zebra camex{301}l CAMEL horse cAmEL-horse..."; +$Collator->gsubst($str, "camel-horse", sub { "=$_[0]=" }); +ok($str, "Camel donkey zebra camex{301}l =CAMEL horse= =cAmEL-horse=..."); + +$str = "Camel donkey zebra camex{301}l CAMEL horse cAmEL-horse..."; +$Collator->gsubst($str, "camelhorse", sub { "=$_[0]=" }); +ok($str, "Camel donkey zebra camex{301}l =CAMEL horse= =cAmEL-horse=..."); + +$str = "Camel donkey zebra camex{301}l CAMEL horse cAmEL-horse..."; +$Collator->gsubst($str, " ca mel hor se ", sub { "=$_[0]=" }); +ok($str, "Camel donkey zebra camex{301}l =CAMEL horse= =cAmEL-horse=..."); + +$str = "Camel donkey zebra camex{301}l CAMEL horse cAmEL-horse..."; +$Collator->gsubst($str, "ca\x{300}melho\x{302}rse", sub { "=$_[0]=" }); +ok($str, "Camel donkey zebra camex{301}l =CAMEL horse= =cAmEL-horse=..."); + $Collator->change(level => 3); $str = "P\cBe\x{300}\cBrl and PERL."; diff --git a/cpan/Unicode-Collate/t/loc_cy.t b/cpan/Unicode-Collate/t/loc_cy.t index bc4d9821f7..13cc3bec3b 100644 --- a/cpan/Unicode-Collate/t/loc_cy.t +++ b/cpan/Unicode-Collate/t/loc_cy.t @@ -44,62 +44,62 @@ ok($objCy->gt("u", "th")); $objCy->change(level => 2); ok($objCy->eq("ch", "Ch")); -ok($objCy->eq("CH", "Ch")); +ok($objCy->eq("Ch", "CH")); ok($objCy->eq("dd", "Dd")); -ok($objCy->eq("DD", "Dd")); +ok($objCy->eq("Dd", "DD")); ok($objCy->eq("ff", "Ff")); -ok($objCy->eq("FF", "Ff")); +ok($objCy->eq("Ff", "FF")); ok($objCy->eq("ng", "Ng")); -ok($objCy->eq("NG", "Ng")); +ok($objCy->eq("Ng", "NG")); ok($objCy->eq("ll", "Ll")); -ok($objCy->eq("LL", "Ll")); +ok($objCy->eq("Ll", "LL")); ok($objCy->eq("ph", "Ph")); -ok($objCy->eq("PH", "Ph")); +ok($objCy->eq("Ph", "PH")); ok($objCy->eq("rh", "Rh")); -ok($objCy->eq("RH", "Rh")); +ok($objCy->eq("Rh", "RH")); ok($objCy->eq("th", "Th")); -ok($objCy->eq("TH", "Th")); +ok($objCy->eq("Th", "TH")); # 42 $objCy->change(level => 3); ok($objCy->lt("ch", "Ch")); -ok($objCy->gt("CH", "Ch")); +ok($objCy->lt("Ch", "CH")); ok($objCy->lt("dd", "Dd")); -ok($objCy->gt("DD", "Dd")); +ok($objCy->lt("Dd", "DD")); ok($objCy->lt("ff", "Ff")); -ok($objCy->gt("FF", "Ff")); +ok($objCy->lt("Ff", "FF")); ok($objCy->lt("ng", "Ng")); -ok($objCy->gt("NG", "Ng")); +ok($objCy->lt("Ng", "NG")); ok($objCy->lt("ll", "Ll")); -ok($objCy->gt("LL", "Ll")); +ok($objCy->lt("Ll", "LL")); ok($objCy->lt("ph", "Ph")); -ok($objCy->gt("PH", "Ph")); +ok($objCy->lt("Ph", "PH")); ok($objCy->lt("rh", "Rh")); -ok($objCy->gt("RH", "Rh")); +ok($objCy->lt("Rh", "RH")); ok($objCy->lt("th", "Th")); -ok($objCy->gt("TH", "Th")); +ok($objCy->lt("Th", "TH")); # 58 $objCy->change(upper_before_lower => 1); ok($objCy->gt("ch", "Ch")); -ok($objCy->lt("CH", "Ch")); +ok($objCy->gt("Ch", "CH")); ok($objCy->gt("dd", "Dd")); -ok($objCy->lt("DD", "Dd")); +ok($objCy->gt("Dd", "DD")); ok($objCy->gt("ff", "Ff")); -ok($objCy->lt("FF", "Ff")); +ok($objCy->gt("Ff", "FF")); ok($objCy->gt("ng", "Ng")); -ok($objCy->lt("NG", "Ng")); +ok($objCy->gt("Ng", "NG")); ok($objCy->gt("ll", "Ll")); -ok($objCy->lt("LL", "Ll")); +ok($objCy->gt("Ll", "LL")); ok($objCy->gt("ph", "Ph")); -ok($objCy->lt("PH", "Ph")); +ok($objCy->gt("Ph", "PH")); ok($objCy->gt("rh", "Rh")); -ok($objCy->lt("RH", "Rh")); +ok($objCy->gt("Rh", "RH")); ok($objCy->gt("th", "Th")); -ok($objCy->lt("TH", "Th")); +ok($objCy->gt("Th", "TH")); # 74 diff --git a/cpan/Unicode-Collate/t/loc_da.t b/cpan/Unicode-Collate/t/loc_da.t index 09af185abb..aff6da741c 100644 --- a/cpan/Unicode-Collate/t/loc_da.t +++ b/cpan/Unicode-Collate/t/loc_da.t @@ -118,6 +118,23 @@ ok($objDa->eq("d\x{335}", "\x{111}")); ok($objDa->eq("D\x{335}", "\x{110}")); ok($objDa->eq("u\x{308}", $uuml)); ok($objDa->eq("U\x{308}", $Uuml)); +ok($objDa->eq("u\x{30B}", "\x{171}")); +ok($objDa->eq("U\x{30B}", "\x{170}")); +ok($objDa->eq("a\x{308}", $auml)); +ok($objDa->eq("A\x{308}", $Auml)); +ok($objDa->eq("e\x{328}", "\x{119}")); +ok($objDa->eq("E\x{328}", "\x{118}")); +ok($objDa->eq("o\x{338}", $ostk)); +ok($objDa->eq("O\x{338}", $Ostk)); +ok($objDa->eq("o\x{308}", $ouml)); +ok($objDa->eq("O\x{308}", $Ouml)); +ok($objDa->eq("o\x{30B}", "\x{151}")); +ok($objDa->eq("O\x{30B}", "\x{150}")); +ok($objDa->eq("a\x{30A}", $arng)); +ok($objDa->eq("A\x{30A}", $Arng)); + +# 84 + ok($objDa->eq("u\x{308}\x{300}", "\x{1DC}")); ok($objDa->eq("U\x{308}\x{300}", "\x{1DB}")); ok($objDa->eq("u\x{308}\x{301}", "\x{1D8}")); @@ -126,33 +143,16 @@ ok($objDa->eq("u\x{308}\x{304}", "\x{1D6}")); ok($objDa->eq("U\x{308}\x{304}", "\x{1D5}")); ok($objDa->eq("u\x{308}\x{30C}", "\x{1DA}")); ok($objDa->eq("U\x{308}\x{30C}", "\x{1D9}")); -ok($objDa->eq("u\x{30B}", "\x{171}")); -ok($objDa->eq("U\x{30B}", "\x{170}")); - -# 80 - ok($objDa->eq("\x{1FD}", "$ae\x{301}")); ok($objDa->eq("\x{1FC}", "$AE\x{301}")); ok($objDa->eq("\x{1E3}", "$ae\x{304}")); ok($objDa->eq("\x{1E2}", "$AE\x{304}")); -ok($objDa->eq("a\x{308}", $auml)); -ok($objDa->eq("A\x{308}", $Auml)); ok($objDa->eq("a\x{308}\x{304}", "\x{1DF}")); ok($objDa->eq("A\x{308}\x{304}", "\x{1DE}")); -ok($objDa->eq("e\x{328}", "\x{119}")); -ok($objDa->eq("E\x{328}", "\x{118}")); -ok($objDa->eq("o\x{338}", $ostk)); -ok($objDa->eq("O\x{338}", $Ostk)); ok($objDa->eq("o\x{338}\x{301}", "\x{1FF}")); ok($objDa->eq("O\x{338}\x{301}", "\x{1FE}")); -ok($objDa->eq("o\x{308}", $ouml)); -ok($objDa->eq("O\x{308}", $Ouml)); ok($objDa->eq("o\x{308}\x{304}", "\x{22B}")); ok($objDa->eq("O\x{308}\x{304}", "\x{22A}")); -ok($objDa->eq("o\x{30B}", "\x{151}")); -ok($objDa->eq("O\x{30B}", "\x{150}")); -ok($objDa->eq("a\x{30A}", $arng)); -ok($objDa->eq("A\x{30A}", $Arng)); ok($objDa->eq("A\x{30A}", "\x{212B}")); ok($objDa->eq("a\x{30A}\x{301}", "\x{1FB}")); ok($objDa->eq("A\x{30A}\x{301}", "\x{1FA}")); diff --git a/cpan/Unicode-Collate/t/loc_de.t b/cpan/Unicode-Collate/t/loc_de.t new file mode 100644 index 0000000000..066ea0594e --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_de.t @@ -0,0 +1,51 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 20; + +my $auml = pack 'U', 0xE4; +my $Auml = pack 'U', 0xC4; +my $ouml = pack 'U', 0xF6; +my $Ouml = pack 'U', 0xD6; +my $uuml = pack 'U', 0xFC; +my $Uuml = pack 'U', 0xDC; + +my $objDe = Unicode::Collate::Locale-> + new(locale => 'DE', normalization => undef); + +ok(1); +ok($objDe->getlocale, 'default'); + +$objDe->change(level => 1); + +ok($objDe->lt("a\x{308}", "ae")); +ok($objDe->lt("A\x{308}", "AE")); +ok($objDe->lt("o\x{308}", "oe")); +ok($objDe->lt("O\x{308}", "OE")); +ok($objDe->lt("u\x{308}", "ue")); +ok($objDe->lt("U\x{308}", "UE")); + +# 8 + +ok($objDe->eq("a\x{308}", "a")); +ok($objDe->eq("A\x{308}", "A")); +ok($objDe->eq("o\x{308}", "o")); +ok($objDe->eq("O\x{308}", "O")); +ok($objDe->eq("u\x{308}", "u")); +ok($objDe->eq("U\x{308}", "U")); + +# 14 + +$objDe->change(level => 2); + +ok($objDe->gt("a\x{308}", "a")); +ok($objDe->gt("A\x{308}", "A")); +ok($objDe->gt("o\x{308}", "o")); +ok($objDe->gt("O\x{308}", "O")); +ok($objDe->gt("u\x{308}", "u")); +ok($objDe->gt("U\x{308}", "U")); + +# 20 diff --git a/cpan/Unicode-Collate/t/loc_deph.t b/cpan/Unicode-Collate/t/loc_deph.t new file mode 100644 index 0000000000..44396cb3fb --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_deph.t @@ -0,0 +1,87 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 40; + +my $auml = pack 'U', 0xE4; +my $Auml = pack 'U', 0xC4; +my $ouml = pack 'U', 0xF6; +my $Ouml = pack 'U', 0xD6; +my $uuml = pack 'U', 0xFC; +my $Uuml = pack 'U', 0xDC; + +my $objDePhone = Unicode::Collate::Locale-> + new(locale => 'DE-PHONE', normalization => undef); + +ok(1); +ok($objDePhone->getlocale, 'de__phonebook'); + +$objDePhone->change(level => 1); + +ok($objDePhone->eq("a\x{308}", "ae")); +ok($objDePhone->eq("A\x{308}", "AE")); +ok($objDePhone->eq("o\x{308}", "oe")); +ok($objDePhone->eq("O\x{308}", "OE")); +ok($objDePhone->eq("u\x{308}", "ue")); +ok($objDePhone->eq("U\x{308}", "UE")); + +# 8 + +$objDePhone->change(level => 2); + +ok($objDePhone->gt("a\x{308}", "ae")); +ok($objDePhone->gt("A\x{308}", "AE")); +ok($objDePhone->gt("o\x{308}", "oe")); +ok($objDePhone->gt("O\x{308}", "OE")); +ok($objDePhone->gt("u\x{308}", "ue")); +ok($objDePhone->gt("U\x{308}", "UE")); + +ok($objDePhone->eq("a\x{308}", "A\x{308}")); +ok($objDePhone->eq("o\x{308}", "O\x{308}")); +ok($objDePhone->eq("u\x{308}", "U\x{308}")); + +# 17 + +$objDePhone->change(level => 3); + +ok($objDePhone->lt("a\x{308}", "A\x{308}")); +ok($objDePhone->lt("o\x{308}", "O\x{308}")); +ok($objDePhone->lt("u\x{308}", "U\x{308}")); + +ok($objDePhone->eq("a\x{308}", $auml)); +ok($objDePhone->eq("A\x{308}", $Auml)); +ok($objDePhone->eq("o\x{308}", $ouml)); +ok($objDePhone->eq("O\x{308}", $Ouml)); +ok($objDePhone->eq("u\x{308}", $uuml)); +ok($objDePhone->eq("U\x{308}", $Uuml)); + +# 26 + +ok($objDePhone->eq("a\x{308}\x{304}", "\x{1DF}")); +ok($objDePhone->eq("A\x{308}\x{304}", "\x{1DE}")); +ok($objDePhone->eq("o\x{308}\x{304}", "\x{22B}")); +ok($objDePhone->eq("O\x{308}\x{304}", "\x{22A}")); +ok($objDePhone->eq("u\x{308}\x{300}", "\x{1DC}")); +ok($objDePhone->eq("U\x{308}\x{300}", "\x{1DB}")); +ok($objDePhone->eq("u\x{308}\x{301}", "\x{1D8}")); +ok($objDePhone->eq("U\x{308}\x{301}", "\x{1D7}")); +ok($objDePhone->eq("u\x{308}\x{304}", "\x{1D6}")); +ok($objDePhone->eq("U\x{308}\x{304}", "\x{1D5}")); +ok($objDePhone->eq("u\x{308}\x{30C}", "\x{1DA}")); +ok($objDePhone->eq("U\x{308}\x{30C}", "\x{1D9}")); + +# 38 + +my $objDePhoneBook = Unicode::Collate::Locale-> + new(locale => 'de__phonebook', normalization => undef); + +ok($objDePhoneBook->getlocale, 'de__phonebook'); + +$objDePhoneBook->change(level => 1); + +ok($objDePhoneBook->eq("a\x{308}", "ae")); + +# 40 diff --git a/cpan/Unicode-Collate/t/loc_fi.t b/cpan/Unicode-Collate/t/loc_fi.t index afd6707206..c8be1fb7f2 100644 --- a/cpan/Unicode-Collate/t/loc_fi.t +++ b/cpan/Unicode-Collate/t/loc_fi.t @@ -95,6 +95,19 @@ ok($objFi->lt($ostk, $Ostk)); ok($objFi->eq("u\x{308}", $uuml)); ok($objFi->eq("U\x{308}", $Uuml)); +ok($objFi->eq("\x{1EF}", "\x{292}\x{30C}")); +ok($objFi->eq("\x{1EE}", "\x{1B7}\x{30C}")); +ok($objFi->eq("a\x{30A}", $arng)); +ok($objFi->eq("A\x{30A}", $Arng)); +ok($objFi->eq("a\x{308}", $auml)); +ok($objFi->eq("A\x{308}", $Auml)); +ok($objFi->eq("o\x{308}", $ouml)); +ok($objFi->eq("O\x{308}", $Ouml)); +ok($objFi->eq("o\x{338}", $ostk)); +ok($objFi->eq("O\x{338}", $Ostk)); + +# 61 + ok($objFi->eq("u\x{308}\x{300}", "\x{1DC}")); ok($objFi->eq("U\x{308}\x{300}", "\x{1DB}")); ok($objFi->eq("u\x{308}\x{301}", "\x{1D8}")); @@ -103,30 +116,17 @@ ok($objFi->eq("u\x{308}\x{304}", "\x{1D6}")); ok($objFi->eq("U\x{308}\x{304}", "\x{1D5}")); ok($objFi->eq("u\x{308}\x{30C}", "\x{1DA}")); ok($objFi->eq("U\x{308}\x{30C}", "\x{1D9}")); -ok($objFi->eq("\x{1EF}", "\x{292}\x{30C}")); -ok($objFi->eq("\x{1EE}", "\x{1B7}\x{30C}")); - -# 61 - -ok($objFi->eq("a\x{30A}", $arng)); -ok($objFi->eq("A\x{30A}", $Arng)); ok($objFi->eq("A\x{30A}", "\x{212B}")); ok($objFi->eq("a\x{30A}\x{301}", "\x{1FB}")); ok($objFi->eq("A\x{30A}\x{301}", "\x{1FA}")); -ok($objFi->eq("a\x{308}", $auml)); -ok($objFi->eq("A\x{308}", $Auml)); ok($objFi->eq("a\x{308}\x{304}", "\x{1DF}")); ok($objFi->eq("A\x{308}\x{304}", "\x{1DE}")); ok($objFi->eq("\x{1FD}", "$ae\x{301}")); ok($objFi->eq("\x{1FC}", "$AE\x{301}")); ok($objFi->eq("\x{1E3}", "$ae\x{304}")); ok($objFi->eq("\x{1E2}", "$AE\x{304}")); -ok($objFi->eq("o\x{308}", $ouml)); -ok($objFi->eq("O\x{308}", $Ouml)); ok($objFi->eq("o\x{308}\x{304}", "\x{22B}")); ok($objFi->eq("O\x{308}\x{304}", "\x{22A}")); -ok($objFi->eq("o\x{338}", $ostk)); -ok($objFi->eq("O\x{338}", $Ostk)); ok($objFi->eq("o\x{338}\x{301}", "\x{1FF}")); ok($objFi->eq("O\x{338}\x{301}", "\x{1FE}")); diff --git a/cpan/Unicode-Collate/t/loc_fo.t b/cpan/Unicode-Collate/t/loc_fo.t index e072d6e58a..d476132471 100644 --- a/cpan/Unicode-Collate/t/loc_fo.t +++ b/cpan/Unicode-Collate/t/loc_fo.t @@ -118,6 +118,23 @@ ok($objFo->eq("d\x{335}", "\x{111}")); ok($objFo->eq("D\x{335}", "\x{110}")); ok($objFo->eq("u\x{308}", $uuml)); ok($objFo->eq("U\x{308}", $Uuml)); +ok($objFo->eq("u\x{30B}", "\x{171}")); +ok($objFo->eq("U\x{30B}", "\x{170}")); +ok($objFo->eq("a\x{308}", $auml)); +ok($objFo->eq("A\x{308}", $Auml)); +ok($objFo->eq("e\x{328}", "\x{119}")); +ok($objFo->eq("E\x{328}", "\x{118}")); +ok($objFo->eq("o\x{338}", $ostk)); +ok($objFo->eq("O\x{338}", $Ostk)); +ok($objFo->eq("o\x{308}", $ouml)); +ok($objFo->eq("O\x{308}", $Ouml)); +ok($objFo->eq("o\x{30B}", "\x{151}")); +ok($objFo->eq("O\x{30B}", "\x{150}")); +ok($objFo->eq("a\x{30A}", $arng)); +ok($objFo->eq("A\x{30A}", $Arng)); + +# 84 + ok($objFo->eq("u\x{308}\x{300}", "\x{1DC}")); ok($objFo->eq("U\x{308}\x{300}", "\x{1DB}")); ok($objFo->eq("u\x{308}\x{301}", "\x{1D8}")); @@ -126,33 +143,16 @@ ok($objFo->eq("u\x{308}\x{304}", "\x{1D6}")); ok($objFo->eq("U\x{308}\x{304}", "\x{1D5}")); ok($objFo->eq("u\x{308}\x{30C}", "\x{1DA}")); ok($objFo->eq("U\x{308}\x{30C}", "\x{1D9}")); -ok($objFo->eq("u\x{30B}", "\x{171}")); -ok($objFo->eq("U\x{30B}", "\x{170}")); - -# 80 - ok($objFo->eq("\x{1FD}", "$ae\x{301}")); ok($objFo->eq("\x{1FC}", "$AE\x{301}")); ok($objFo->eq("\x{1E3}", "$ae\x{304}")); ok($objFo->eq("\x{1E2}", "$AE\x{304}")); -ok($objFo->eq("a\x{308}", $auml)); -ok($objFo->eq("A\x{308}", $Auml)); ok($objFo->eq("a\x{308}\x{304}", "\x{1DF}")); ok($objFo->eq("A\x{308}\x{304}", "\x{1DE}")); -ok($objFo->eq("e\x{328}", "\x{119}")); -ok($objFo->eq("E\x{328}", "\x{118}")); -ok($objFo->eq("o\x{338}", $ostk)); -ok($objFo->eq("O\x{338}", $Ostk)); ok($objFo->eq("o\x{338}\x{301}", "\x{1FF}")); ok($objFo->eq("O\x{338}\x{301}", "\x{1FE}")); -ok($objFo->eq("o\x{308}", $ouml)); -ok($objFo->eq("O\x{308}", $Ouml)); ok($objFo->eq("o\x{308}\x{304}", "\x{22B}")); ok($objFo->eq("O\x{308}\x{304}", "\x{22A}")); -ok($objFo->eq("o\x{30B}", "\x{151}")); -ok($objFo->eq("O\x{30B}", "\x{150}")); -ok($objFo->eq("a\x{30A}", $arng)); -ok($objFo->eq("A\x{30A}", $Arng)); ok($objFo->eq("A\x{30A}", "\x{212B}")); ok($objFo->eq("a\x{30A}\x{301}", "\x{1FB}")); ok($objFo->eq("A\x{30A}\x{301}", "\x{1FA}")); diff --git a/cpan/Unicode-Collate/t/loc_fr.t b/cpan/Unicode-Collate/t/loc_fr.t index 025d3a897f..3cc1c17264 100644 --- a/cpan/Unicode-Collate/t/loc_fr.t +++ b/cpan/Unicode-Collate/t/loc_fr.t @@ -4,7 +4,10 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 28; +plan tests => 26; + +my $ae = pack 'U', 0xE6; +my $AE = pack 'U', 0xC6; my $objFr = Unicode::Collate::Locale-> new(locale => 'FR', normalization => undef); @@ -14,39 +17,41 @@ ok($objFr->getlocale, 'fr'); $objFr->change(level => 1); -ok($objFr->eq("Æ", "AE")); -ok($objFr->eq("æ", "ae")); -ok($objFr->eq("\x{01FD}", "ae")); -ok($objFr->eq("\x{01FC}", "AE")); -ok($objFr->eq("\x{01E3}", "ae")); -ok($objFr->eq("\x{01E2}", "AE")); -ok($objFr->eq("\x{1D2D}", "AE")); +ok($objFr->eq($ae, "ae")); +ok($objFr->eq($AE, "AE")); +ok($objFr->eq("\x{1FD}", $ae)); +ok($objFr->eq("\x{1FC}", $AE)); +ok($objFr->eq("\x{1E3}", $ae)); +ok($objFr->eq("\x{1E2}", $AE)); + +# 8 $objFr->change(level => 2); -ok($objFr->gt("Æ", "AE")); -ok($objFr->gt("æ", "ae")); -ok($objFr->gt("\x{01FD}", "ae")); -ok($objFr->gt("\x{01FC}", "AE")); -ok($objFr->gt("\x{01E3}", "ae")); -ok($objFr->gt("\x{01E2}", "AE")); -ok($objFr->gt("\x{1D2D}", "AE")); +ok($objFr->gt($ae, "ae")); +ok($objFr->gt($AE, "AE")); +ok($objFr->gt("\x{1FD}", $ae)); +ok($objFr->gt("\x{1FC}", $AE)); +ok($objFr->gt("\x{1E3}", $ae)); +ok($objFr->gt("\x{1E2}", $AE)); -ok($objFr->eq("Æ\x{304}", "\x{01E2}")); -ok($objFr->eq("æ\x{304}", "\x{01E3}")); -ok($objFr->eq("Æ\x{301}", "\x{01FC}")); -ok($objFr->eq("æ\x{301}", "\x{01FD}")); +ok($objFr->eq($ae, $AE)); +ok($objFr->eq($AE, "\x{1D2D}")); +ok($objFr->eq("$ae\x{304}", "$AE\x{304}")); +ok($objFr->eq("$ae\x{301}", "$AE\x{301}")); -$objFr->change(level => 3); +# 18 -ok($objFr->lt("æ\x{304}", "\x{01E2}")); -ok($objFr->eq("Æ\x{304}", "\x{01E2}")); -ok($objFr->eq("æ\x{304}", "\x{01E3}")); -ok($objFr->gt("Æ\x{304}", "\x{01E3}")); +$objFr->change(level => 3); -ok($objFr->lt("æ\x{301}", "\x{01FC}")); -ok($objFr->eq("Æ\x{301}", "\x{01FC}")); -ok($objFr->eq("æ\x{301}", "\x{01FD}")); -ok($objFr->gt("Æ\x{301}", "\x{01FD}")); +ok($objFr->lt($ae, $AE)); +ok($objFr->lt($AE, "\x{1D2D}")); +ok($objFr->lt("$ae\x{304}", "$AE\x{304}")); +ok($objFr->lt("$ae\x{301}", "$AE\x{301}")); +ok($objFr->eq("\x{1FD}", "$ae\x{301}")); +ok($objFr->eq("\x{1FC}", "$AE\x{301}")); +ok($objFr->eq("\x{1E3}", "$ae\x{304}")); +ok($objFr->eq("\x{1E2}", "$AE\x{304}")); +# 26 diff --git a/cpan/Unicode-Collate/t/loc_is.t b/cpan/Unicode-Collate/t/loc_is.t index 4e02ec8510..6e490a3458 100644 --- a/cpan/Unicode-Collate/t/loc_is.t +++ b/cpan/Unicode-Collate/t/loc_is.t @@ -118,27 +118,27 @@ ok($objIs->eq("u\x{301}", pack('U', 0xFA))); ok($objIs->eq("U\x{301}", pack('U', 0xDA))); ok($objIs->eq("y\x{301}", pack('U', 0xFD))); ok($objIs->eq("Y\x{301}", pack('U', 0xDD))); +ok($objIs->eq("a\x{308}", $auml)); +ok($objIs->eq("A\x{308}", $Auml)); +ok($objIs->eq("o\x{308}", $ouml)); +ok($objIs->eq("O\x{308}", $Ouml)); +ok($objIs->eq("o\x{338}", $ostk)); +ok($objIs->eq("O\x{338}", $Ostk)); +ok($objIs->eq("a\x{30A}", $arng)); +ok($objIs->eq("A\x{30A}", $Arng)); -# 71 +# 79 ok($objIs->eq("\x{1FD}", "$ae\x{301}")); ok($objIs->eq("\x{1FC}", "$AE\x{301}")); ok($objIs->eq("\x{1E3}", "$ae\x{304}")); ok($objIs->eq("\x{1E2}", "$AE\x{304}")); -ok($objIs->eq("a\x{308}", $auml)); -ok($objIs->eq("A\x{308}", $Auml)); ok($objIs->eq("a\x{308}\x{304}", "\x{1DF}")); ok($objIs->eq("A\x{308}\x{304}", "\x{1DE}")); -ok($objIs->eq("o\x{308}", $ouml)); -ok($objIs->eq("O\x{308}", $Ouml)); ok($objIs->eq("o\x{308}\x{304}", "\x{22B}")); ok($objIs->eq("O\x{308}\x{304}", "\x{22A}")); -ok($objIs->eq("o\x{338}", $ostk)); -ok($objIs->eq("O\x{338}", $Ostk)); ok($objIs->eq("o\x{338}\x{301}", "\x{1FF}")); ok($objIs->eq("O\x{338}\x{301}", "\x{1FE}")); -ok($objIs->eq("a\x{30A}", $arng)); -ok($objIs->eq("A\x{30A}", $Arng)); ok($objIs->eq("A\x{30A}", "\x{212B}")); ok($objIs->eq("a\x{30A}\x{301}", "\x{1FB}")); ok($objIs->eq("A\x{30A}\x{301}", "\x{1FA}")); diff --git a/cpan/Unicode-Collate/t/loc_kl.t b/cpan/Unicode-Collate/t/loc_kl.t index 0d0aa032fd..bc19f8e73a 100644 --- a/cpan/Unicode-Collate/t/loc_kl.t +++ b/cpan/Unicode-Collate/t/loc_kl.t @@ -114,6 +114,23 @@ ok($objKl->eq("d\x{335}", "\x{111}")); ok($objKl->eq("D\x{335}", "\x{110}")); ok($objKl->eq("u\x{308}", $uuml)); ok($objKl->eq("U\x{308}", $Uuml)); +ok($objKl->eq("u\x{30B}", "\x{171}")); +ok($objKl->eq("U\x{30B}", "\x{170}")); +ok($objKl->eq("a\x{308}", $auml)); +ok($objKl->eq("A\x{308}", $Auml)); +ok($objKl->eq("e\x{328}", "\x{119}")); +ok($objKl->eq("E\x{328}", "\x{118}")); +ok($objKl->eq("o\x{338}", $ostk)); +ok($objKl->eq("O\x{338}", $Ostk)); +ok($objKl->eq("o\x{308}", $ouml)); +ok($objKl->eq("O\x{308}", $Ouml)); +ok($objKl->eq("o\x{30B}", "\x{151}")); +ok($objKl->eq("O\x{30B}", "\x{150}")); +ok($objKl->eq("a\x{30A}", $arng)); +ok($objKl->eq("A\x{30A}", $Arng)); + +# 80 + ok($objKl->eq("u\x{308}\x{300}", "\x{1DC}")); ok($objKl->eq("U\x{308}\x{300}", "\x{1DB}")); ok($objKl->eq("u\x{308}\x{301}", "\x{1D8}")); @@ -122,33 +139,16 @@ ok($objKl->eq("u\x{308}\x{304}", "\x{1D6}")); ok($objKl->eq("U\x{308}\x{304}", "\x{1D5}")); ok($objKl->eq("u\x{308}\x{30C}", "\x{1DA}")); ok($objKl->eq("U\x{308}\x{30C}", "\x{1D9}")); -ok($objKl->eq("u\x{30B}", "\x{171}")); -ok($objKl->eq("U\x{30B}", "\x{170}")); - -# 76 - ok($objKl->eq("\x{1FD}", "$ae\x{301}")); ok($objKl->eq("\x{1FC}", "$AE\x{301}")); ok($objKl->eq("\x{1E3}", "$ae\x{304}")); ok($objKl->eq("\x{1E2}", "$AE\x{304}")); -ok($objKl->eq("a\x{308}", $auml)); -ok($objKl->eq("A\x{308}", $Auml)); ok($objKl->eq("a\x{308}\x{304}", "\x{1DF}")); ok($objKl->eq("A\x{308}\x{304}", "\x{1DE}")); -ok($objKl->eq("e\x{328}", "\x{119}")); -ok($objKl->eq("E\x{328}", "\x{118}")); -ok($objKl->eq("o\x{338}", $ostk)); -ok($objKl->eq("O\x{338}", $Ostk)); ok($objKl->eq("o\x{338}\x{301}", "\x{1FF}")); ok($objKl->eq("O\x{338}\x{301}", "\x{1FE}")); -ok($objKl->eq("o\x{308}", $ouml)); -ok($objKl->eq("O\x{308}", $Ouml)); ok($objKl->eq("o\x{308}\x{304}", "\x{22B}")); ok($objKl->eq("O\x{308}\x{304}", "\x{22A}")); -ok($objKl->eq("o\x{30B}", "\x{151}")); -ok($objKl->eq("O\x{30B}", "\x{150}")); -ok($objKl->eq("a\x{30A}", $arng)); -ok($objKl->eq("A\x{30A}", $Arng)); ok($objKl->eq("A\x{30A}", "\x{212B}")); ok($objKl->eq("a\x{30A}\x{301}", "\x{1FB}")); ok($objKl->eq("A\x{30A}\x{301}", "\x{1FA}")); diff --git a/cpan/Unicode-Collate/t/loc_nb.t b/cpan/Unicode-Collate/t/loc_nb.t index 22191e3d63..d648a685e9 100644 --- a/cpan/Unicode-Collate/t/loc_nb.t +++ b/cpan/Unicode-Collate/t/loc_nb.t @@ -110,6 +110,23 @@ ok($objNb->eq("d\x{335}", "\x{111}")); ok($objNb->eq("D\x{335}", "\x{110}")); ok($objNb->eq("u\x{308}", $uuml)); ok($objNb->eq("U\x{308}", $Uuml)); +ok($objNb->eq("u\x{30B}", "\x{171}")); +ok($objNb->eq("U\x{30B}", "\x{170}")); +ok($objNb->eq("a\x{308}", $auml)); +ok($objNb->eq("A\x{308}", $Auml)); +ok($objNb->eq("e\x{328}", "\x{119}")); +ok($objNb->eq("E\x{328}", "\x{118}")); +ok($objNb->eq("o\x{338}", $ostk)); +ok($objNb->eq("O\x{338}", $Ostk)); +ok($objNb->eq("o\x{308}", $ouml)); +ok($objNb->eq("O\x{308}", $Ouml)); +ok($objNb->eq("o\x{30B}", "\x{151}")); +ok($objNb->eq("O\x{30B}", "\x{150}")); +ok($objNb->eq("a\x{30A}", $arng)); +ok($objNb->eq("A\x{30A}", $Arng)); + +# 74 + ok($objNb->eq("u\x{308}\x{300}", "\x{1DC}")); ok($objNb->eq("U\x{308}\x{300}", "\x{1DB}")); ok($objNb->eq("u\x{308}\x{301}", "\x{1D8}")); @@ -118,33 +135,16 @@ ok($objNb->eq("u\x{308}\x{304}", "\x{1D6}")); ok($objNb->eq("U\x{308}\x{304}", "\x{1D5}")); ok($objNb->eq("u\x{308}\x{30C}", "\x{1DA}")); ok($objNb->eq("U\x{308}\x{30C}", "\x{1D9}")); -ok($objNb->eq("u\x{30B}", "\x{171}")); -ok($objNb->eq("U\x{30B}", "\x{170}")); - -# 70 - ok($objNb->eq("\x{1FD}", "$ae\x{301}")); ok($objNb->eq("\x{1FC}", "$AE\x{301}")); ok($objNb->eq("\x{1E3}", "$ae\x{304}")); ok($objNb->eq("\x{1E2}", "$AE\x{304}")); -ok($objNb->eq("a\x{308}", $auml)); -ok($objNb->eq("A\x{308}", $Auml)); ok($objNb->eq("a\x{308}\x{304}", "\x{1DF}")); ok($objNb->eq("A\x{308}\x{304}", "\x{1DE}")); -ok($objNb->eq("e\x{328}", "\x{119}")); -ok($objNb->eq("E\x{328}", "\x{118}")); -ok($objNb->eq("o\x{338}", $ostk)); -ok($objNb->eq("O\x{338}", $Ostk)); ok($objNb->eq("o\x{338}\x{301}", "\x{1FF}")); ok($objNb->eq("O\x{338}\x{301}", "\x{1FE}")); -ok($objNb->eq("o\x{308}", $ouml)); -ok($objNb->eq("O\x{308}", $Ouml)); ok($objNb->eq("o\x{308}\x{304}", "\x{22B}")); ok($objNb->eq("O\x{308}\x{304}", "\x{22A}")); -ok($objNb->eq("o\x{30B}", "\x{151}")); -ok($objNb->eq("O\x{30B}", "\x{150}")); -ok($objNb->eq("a\x{30A}", $arng)); -ok($objNb->eq("A\x{30A}", $Arng)); ok($objNb->eq("A\x{30A}", "\x{212B}")); ok($objNb->eq("a\x{30A}\x{301}", "\x{1FB}")); ok($objNb->eq("A\x{30A}\x{301}", "\x{1FA}")); diff --git a/cpan/Unicode-Collate/t/loc_nn.t b/cpan/Unicode-Collate/t/loc_nn.t index 9620209d14..fc6514abb7 100644 --- a/cpan/Unicode-Collate/t/loc_nn.t +++ b/cpan/Unicode-Collate/t/loc_nn.t @@ -110,6 +110,23 @@ ok($objNn->eq("d\x{335}", "\x{111}")); ok($objNn->eq("D\x{335}", "\x{110}")); ok($objNn->eq("u\x{308}", $uuml)); ok($objNn->eq("U\x{308}", $Uuml)); +ok($objNn->eq("u\x{30B}", "\x{171}")); +ok($objNn->eq("U\x{30B}", "\x{170}")); +ok($objNn->eq("a\x{308}", $auml)); +ok($objNn->eq("A\x{308}", $Auml)); +ok($objNn->eq("e\x{328}", "\x{119}")); +ok($objNn->eq("E\x{328}", "\x{118}")); +ok($objNn->eq("o\x{338}", $ostk)); +ok($objNn->eq("O\x{338}", $Ostk)); +ok($objNn->eq("o\x{308}", $ouml)); +ok($objNn->eq("O\x{308}", $Ouml)); +ok($objNn->eq("o\x{30B}", "\x{151}")); +ok($objNn->eq("O\x{30B}", "\x{150}")); +ok($objNn->eq("a\x{30A}", $arng)); +ok($objNn->eq("A\x{30A}", $Arng)); + +# 74 + ok($objNn->eq("u\x{308}\x{300}", "\x{1DC}")); ok($objNn->eq("U\x{308}\x{300}", "\x{1DB}")); ok($objNn->eq("u\x{308}\x{301}", "\x{1D8}")); @@ -118,33 +135,16 @@ ok($objNn->eq("u\x{308}\x{304}", "\x{1D6}")); ok($objNn->eq("U\x{308}\x{304}", "\x{1D5}")); ok($objNn->eq("u\x{308}\x{30C}", "\x{1DA}")); ok($objNn->eq("U\x{308}\x{30C}", "\x{1D9}")); -ok($objNn->eq("u\x{30B}", "\x{171}")); -ok($objNn->eq("U\x{30B}", "\x{170}")); - -# 70 - ok($objNn->eq("\x{1FD}", "$ae\x{301}")); ok($objNn->eq("\x{1FC}", "$AE\x{301}")); ok($objNn->eq("\x{1E3}", "$ae\x{304}")); ok($objNn->eq("\x{1E2}", "$AE\x{304}")); -ok($objNn->eq("a\x{308}", $auml)); -ok($objNn->eq("A\x{308}", $Auml)); ok($objNn->eq("a\x{308}\x{304}", "\x{1DF}")); ok($objNn->eq("A\x{308}\x{304}", "\x{1DE}")); -ok($objNn->eq("e\x{328}", "\x{119}")); -ok($objNn->eq("E\x{328}", "\x{118}")); -ok($objNn->eq("o\x{338}", $ostk)); -ok($objNn->eq("O\x{338}", $Ostk)); ok($objNn->eq("o\x{338}\x{301}", "\x{1FF}")); ok($objNn->eq("O\x{338}\x{301}", "\x{1FE}")); -ok($objNn->eq("o\x{308}", $ouml)); -ok($objNn->eq("O\x{308}", $Ouml)); ok($objNn->eq("o\x{308}\x{304}", "\x{22B}")); ok($objNn->eq("O\x{308}\x{304}", "\x{22A}")); -ok($objNn->eq("o\x{30B}", "\x{151}")); -ok($objNn->eq("O\x{30B}", "\x{150}")); -ok($objNn->eq("a\x{30A}", $arng)); -ok($objNn->eq("A\x{30A}", $Arng)); ok($objNn->eq("A\x{30A}", "\x{212B}")); ok($objNn->eq("a\x{30A}\x{301}", "\x{1FB}")); ok($objNn->eq("A\x{30A}\x{301}", "\x{1FA}")); diff --git a/cpan/Unicode-Collate/t/loc_nso.t b/cpan/Unicode-Collate/t/loc_nso.t new file mode 100644 index 0000000000..e0fab023bc --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_nso.t @@ -0,0 +1,71 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 40; + +my $objNso = Unicode::Collate::Locale-> + new(locale => 'NSO', normalization => undef); + +ok(1); +ok($objNso->getlocale, 'nso'); + +$objNso->change(level => 1); + +ok($objNso->lt("e", "e\x{302}")); +ok($objNso->gt("f", "e\x{302}")); +ok($objNso->lt("o", "o\x{302}")); +ok($objNso->gt("p", "o\x{302}")); +ok($objNso->lt("s", "s\x{30C}")); +ok($objNso->gt("t", "s\x{30C}")); + +# 8 + +$objNso->change(level => 2); + +ok($objNso->eq("e\x{302}", "E\x{302}")); +ok($objNso->eq("o\x{302}", "O\x{302}")); +ok($objNso->eq("s\x{30C}", "S\x{30C}")); + +$objNso->change(level => 3); + +ok($objNso->lt("e\x{302}", "E\x{302}")); +ok($objNso->lt("o\x{302}", "O\x{302}")); +ok($objNso->lt("s\x{30C}", "S\x{30C}")); + +# 14 + +ok($objNso->eq("e\x{302}", pack('U', 0xEA))); +ok($objNso->eq("E\x{302}", pack('U', 0xCA))); +ok($objNso->eq("o\x{302}", pack('U', 0xF4))); +ok($objNso->eq("O\x{302}", pack('U', 0xD4))); +ok($objNso->eq("s\x{30C}", "\x{161}")); +ok($objNso->eq("S\x{30C}", "\x{160}")); + +# 20 + +ok($objNso->eq("e\x{302}\x{300}", "\x{1EC1}")); +ok($objNso->eq("E\x{302}\x{300}", "\x{1EC0}")); +ok($objNso->eq("e\x{302}\x{301}", "\x{1EBF}")); +ok($objNso->eq("E\x{302}\x{301}", "\x{1EBE}")); +ok($objNso->eq("e\x{302}\x{303}", "\x{1EC5}")); +ok($objNso->eq("E\x{302}\x{303}", "\x{1EC4}")); +ok($objNso->eq("e\x{302}\x{309}", "\x{1EC3}")); +ok($objNso->eq("E\x{302}\x{309}", "\x{1EC2}")); +ok($objNso->eq("e\x{302}\x{323}", "\x{1EC7}")); +ok($objNso->eq("E\x{302}\x{323}", "\x{1EC6}")); + +ok($objNso->eq("o\x{302}\x{300}", "\x{1ED3}")); +ok($objNso->eq("O\x{302}\x{300}", "\x{1ED2}")); +ok($objNso->eq("o\x{302}\x{301}", "\x{1ED1}")); +ok($objNso->eq("O\x{302}\x{301}", "\x{1ED0}")); +ok($objNso->eq("o\x{302}\x{303}", "\x{1ED7}")); +ok($objNso->eq("O\x{302}\x{303}", "\x{1ED6}")); +ok($objNso->eq("o\x{302}\x{309}", "\x{1ED5}")); +ok($objNso->eq("O\x{302}\x{309}", "\x{1ED4}")); +ok($objNso->eq("o\x{302}\x{323}", "\x{1ED9}")); +ok($objNso->eq("O\x{302}\x{323}", "\x{1ED8}")); + +# 40 diff --git a/cpan/Unicode-Collate/t/loc_om.t b/cpan/Unicode-Collate/t/loc_om.t new file mode 100644 index 0000000000..ed25934ddc --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_om.t @@ -0,0 +1,72 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 41; + +my $objOm = Unicode::Collate::Locale-> + new(locale => 'OM', normalization => undef); + +ok(1); +ok($objOm->getlocale, 'om'); + +$objOm->change(level => 1); + +ok($objOm->lt("z", "ch")); +ok($objOm->lt("ch", "dh")); +ok($objOm->lt("dh", "kh")); +ok($objOm->lt("kh", "ny")); +ok($objOm->lt("ny", "ph")); +ok($objOm->lt("ph", "sh")); + +# 8 + +$objOm->change(level => 2); + +ok($objOm->eq("ch", "Ch")); +ok($objOm->eq("Ch", "CH")); +ok($objOm->eq("dh", "Dh")); +ok($objOm->eq("Dh", "DH")); +ok($objOm->eq("kh", "Kh")); +ok($objOm->eq("Kh", "KH")); +ok($objOm->eq("ny", "Ny")); +ok($objOm->eq("Ny", "NY")); +ok($objOm->eq("ph", "Ph")); +ok($objOm->eq("Ph", "PH")); +ok($objOm->eq("sh", "Sh")); + +# 19 + +$objOm->change(level => 3); + +ok($objOm->lt("ch", "Ch")); +ok($objOm->lt("Ch", "CH")); +ok($objOm->lt("dh", "Dh")); +ok($objOm->lt("Dh", "DH")); +ok($objOm->lt("kh", "Kh")); +ok($objOm->lt("Kh", "KH")); +ok($objOm->lt("ny", "Ny")); +ok($objOm->lt("Ny", "NY")); +ok($objOm->lt("ph", "Ph")); +ok($objOm->lt("Ph", "PH")); +ok($objOm->lt("sh", "Sh")); + +# 30 + +$objOm->change(upper_before_lower => 1); + +ok($objOm->gt("ch", "Ch")); +ok($objOm->gt("Ch", "CH")); +ok($objOm->gt("dh", "Dh")); +ok($objOm->gt("Dh", "DH")); +ok($objOm->gt("kh", "Kh")); +ok($objOm->gt("Kh", "KH")); +ok($objOm->gt("ny", "Ny")); +ok($objOm->gt("Ny", "NY")); +ok($objOm->gt("ph", "Ph")); +ok($objOm->gt("Ph", "PH")); +ok($objOm->gt("sh", "Sh")); + +# 41 diff --git a/cpan/Unicode-Collate/t/loc_ro.t b/cpan/Unicode-Collate/t/loc_ro.t index 33051975a1..8fa95438fb 100644 --- a/cpan/Unicode-Collate/t/loc_ro.t +++ b/cpan/Unicode-Collate/t/loc_ro.t @@ -4,7 +4,7 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 51; +plan tests => 71; my $objRo = Unicode::Collate::Locale-> new(locale => 'RO', normalization => undef); @@ -52,7 +52,12 @@ ok($objRo->lt("s\x{327}", "S\x{327}")); ok($objRo->lt("t\x{327}", "T\x{327}")); ok($objRo->lt("z\x{307}", "Z\x{307}")); -# 29 +ok($objRo->eq("s\x{327}", "s\x{326}")); +ok($objRo->eq("S\x{327}", "S\x{326}")); +ok($objRo->eq("t\x{327}", "t\x{326}")); +ok($objRo->eq("T\x{327}", "T\x{326}")); + +# 33 ok($objRo->eq("a\x{306}", "\x{103}")); ok($objRo->eq("A\x{306}", "\x{102}")); @@ -73,11 +78,28 @@ ok($objRo->eq("T\x{326}", "\x{21A}")); ok($objRo->eq("z\x{307}", "\x{17C}")); ok($objRo->eq("Z\x{307}", "\x{17B}")); -# 47 - -ok($objRo->eq("s\x{327}", "s\x{326}")); -ok($objRo->eq("S\x{327}", "S\x{326}")); -ok($objRo->eq("t\x{327}", "t\x{326}")); -ok($objRo->eq("T\x{327}", "T\x{326}")); - # 51 + +ok($objRo->eq("a\x{306}\x{300}", "\x{1EB1}")); +ok($objRo->eq("A\x{306}\x{300}", "\x{1EB0}")); +ok($objRo->eq("a\x{306}\x{301}", "\x{1EAF}")); +ok($objRo->eq("A\x{306}\x{301}", "\x{1EAE}")); +ok($objRo->eq("a\x{306}\x{303}", "\x{1EB5}")); +ok($objRo->eq("A\x{306}\x{303}", "\x{1EB4}")); +ok($objRo->eq("a\x{306}\x{309}", "\x{1EB3}")); +ok($objRo->eq("A\x{306}\x{309}", "\x{1EB2}")); +ok($objRo->eq("a\x{306}\x{323}", "\x{1EB7}")); +ok($objRo->eq("A\x{306}\x{323}", "\x{1EB6}")); + +ok($objRo->eq("a\x{302}\x{300}", "\x{1EA7}")); +ok($objRo->eq("A\x{302}\x{300}", "\x{1EA6}")); +ok($objRo->eq("a\x{302}\x{301}", "\x{1EA5}")); +ok($objRo->eq("A\x{302}\x{301}", "\x{1EA4}")); +ok($objRo->eq("a\x{302}\x{303}", "\x{1EAB}")); +ok($objRo->eq("A\x{302}\x{303}", "\x{1EAA}")); +ok($objRo->eq("a\x{302}\x{309}", "\x{1EA9}")); +ok($objRo->eq("A\x{302}\x{309}", "\x{1EA8}")); +ok($objRo->eq("a\x{302}\x{323}", "\x{1EAD}")); +ok($objRo->eq("A\x{302}\x{323}", "\x{1EAC}")); + +# 71 diff --git a/cpan/Unicode-Collate/t/loc_sk.t b/cpan/Unicode-Collate/t/loc_sk.t index 8a6a0df12b..9ed6f0a29a 100644 --- a/cpan/Unicode-Collate/t/loc_sk.t +++ b/cpan/Unicode-Collate/t/loc_sk.t @@ -4,7 +4,7 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 42; +plan tests => 52; my $objSk = Unicode::Collate::Locale-> new(locale => 'SK', normalization => undef); @@ -69,3 +69,16 @@ ok($objSk->eq("z\x{30C}", "\x{17E}")); ok($objSk->eq("Z\x{30C}", "\x{17D}")); # 42 + +ok($objSk->eq("o\x{302}\x{300}", "\x{1ED3}")); +ok($objSk->eq("O\x{302}\x{300}", "\x{1ED2}")); +ok($objSk->eq("o\x{302}\x{301}", "\x{1ED1}")); +ok($objSk->eq("O\x{302}\x{301}", "\x{1ED0}")); +ok($objSk->eq("o\x{302}\x{303}", "\x{1ED7}")); +ok($objSk->eq("O\x{302}\x{303}", "\x{1ED6}")); +ok($objSk->eq("o\x{302}\x{309}", "\x{1ED5}")); +ok($objSk->eq("O\x{302}\x{309}", "\x{1ED4}")); +ok($objSk->eq("o\x{302}\x{323}", "\x{1ED9}")); +ok($objSk->eq("O\x{302}\x{323}", "\x{1ED8}")); + +# 52 diff --git a/cpan/Unicode-Collate/t/loc_sv.t b/cpan/Unicode-Collate/t/loc_sv.t index 7df5ea6b90..7266f5e6a3 100644 --- a/cpan/Unicode-Collate/t/loc_sv.t +++ b/cpan/Unicode-Collate/t/loc_sv.t @@ -4,7 +4,7 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 107; +plan tests => 117; my $eth = pack 'U', 0xF0; my $ETH = pack 'U', 0xD0; @@ -122,6 +122,25 @@ ok($objSv->eq("d\x{335}", "\x{111}")); ok($objSv->eq("D\x{335}", "\x{110}")); ok($objSv->eq("u\x{308}", $uuml)); ok($objSv->eq("U\x{308}", $Uuml)); +ok($objSv->eq("u\x{30B}", "\x{171}")); +ok($objSv->eq("U\x{30B}", "\x{170}")); +ok($objSv->eq("a\x{30A}", $arng)); +ok($objSv->eq("A\x{30A}", $Arng)); +ok($objSv->eq("a\x{308}", $auml)); +ok($objSv->eq("A\x{308}", $Auml)); +ok($objSv->eq("e\x{328}", "\x{119}")); +ok($objSv->eq("E\x{328}", "\x{118}")); +ok($objSv->eq("o\x{308}", $ouml)); +ok($objSv->eq("O\x{308}", $Ouml)); +ok($objSv->eq("o\x{338}", $ostk)); +ok($objSv->eq("O\x{338}", $Ostk)); +ok($objSv->eq("o\x{30B}", "\x{151}")); +ok($objSv->eq("O\x{30B}", "\x{150}")); +ok($objSv->eq("o\x{302}", $ocrc)); +ok($objSv->eq("O\x{302}", $Ocrc)); + +# 86 + ok($objSv->eq("u\x{308}\x{300}", "\x{1DC}")); ok($objSv->eq("U\x{308}\x{300}", "\x{1DB}")); ok($objSv->eq("u\x{308}\x{301}", "\x{1D8}")); @@ -130,37 +149,31 @@ ok($objSv->eq("u\x{308}\x{304}", "\x{1D6}")); ok($objSv->eq("U\x{308}\x{304}", "\x{1D5}")); ok($objSv->eq("u\x{308}\x{30C}", "\x{1DA}")); ok($objSv->eq("U\x{308}\x{30C}", "\x{1D9}")); -ok($objSv->eq("u\x{30B}", "\x{171}")); -ok($objSv->eq("U\x{30B}", "\x{170}")); - -# 80 - -ok($objSv->eq("a\x{30A}", $arng)); -ok($objSv->eq("A\x{30A}", $Arng)); ok($objSv->eq("A\x{30A}", "\x{212B}")); ok($objSv->eq("a\x{30A}\x{301}", "\x{1FB}")); ok($objSv->eq("A\x{30A}\x{301}", "\x{1FA}")); -ok($objSv->eq("a\x{308}", $auml)); -ok($objSv->eq("A\x{308}", $Auml)); ok($objSv->eq("a\x{308}\x{304}", "\x{1DF}")); ok($objSv->eq("A\x{308}\x{304}", "\x{1DE}")); ok($objSv->eq("\x{1FD}", "$ae\x{301}")); ok($objSv->eq("\x{1FC}", "$AE\x{301}")); ok($objSv->eq("\x{1E3}", "$ae\x{304}")); ok($objSv->eq("\x{1E2}", "$AE\x{304}")); -ok($objSv->eq("e\x{328}", "\x{119}")); -ok($objSv->eq("E\x{328}", "\x{118}")); -ok($objSv->eq("o\x{308}", $ouml)); -ok($objSv->eq("O\x{308}", $Ouml)); ok($objSv->eq("o\x{308}\x{304}", "\x{22B}")); ok($objSv->eq("O\x{308}\x{304}", "\x{22A}")); -ok($objSv->eq("o\x{338}", $ostk)); -ok($objSv->eq("O\x{338}", $Ostk)); ok($objSv->eq("o\x{338}\x{301}", "\x{1FF}")); ok($objSv->eq("O\x{338}\x{301}", "\x{1FE}")); -ok($objSv->eq("o\x{30B}", "\x{151}")); -ok($objSv->eq("O\x{30B}", "\x{150}")); -ok($objSv->eq("o\x{302}", $ocrc)); -ok($objSv->eq("O\x{302}", $Ocrc)); # 107 + +ok($objSv->eq("o\x{302}\x{300}", "\x{1ED3}")); +ok($objSv->eq("O\x{302}\x{300}", "\x{1ED2}")); +ok($objSv->eq("o\x{302}\x{301}", "\x{1ED1}")); +ok($objSv->eq("O\x{302}\x{301}", "\x{1ED0}")); +ok($objSv->eq("o\x{302}\x{303}", "\x{1ED7}")); +ok($objSv->eq("O\x{302}\x{303}", "\x{1ED6}")); +ok($objSv->eq("o\x{302}\x{309}", "\x{1ED5}")); +ok($objSv->eq("O\x{302}\x{309}", "\x{1ED4}")); +ok($objSv->eq("o\x{302}\x{323}", "\x{1ED9}")); +ok($objSv->eq("O\x{302}\x{323}", "\x{1ED8}")); + +# 117 diff --git a/cpan/Unicode-Collate/t/loc_sw.t b/cpan/Unicode-Collate/t/loc_sw.t index e019e1f51f..403d209bc8 100644 --- a/cpan/Unicode-Collate/t/loc_sw.t +++ b/cpan/Unicode-Collate/t/loc_sw.t @@ -42,62 +42,62 @@ ok($objSw->gt("u", "th")); $objSw->change(level => 2); ok($objSw->eq("ch", "Ch")); -ok($objSw->eq("CH", "Ch")); +ok($objSw->eq("Ch", "CH")); ok($objSw->eq("dh", "Dh")); -ok($objSw->eq("DH", "Dh")); +ok($objSw->eq("Dh", "DH")); ok($objSw->eq("gh", "Gh")); -ok($objSw->eq("GH", "Gh")); +ok($objSw->eq("Gh", "GH")); ok($objSw->eq("kh", "Kh")); -ok($objSw->eq("KH", "Kh")); +ok($objSw->eq("Kh", "KH")); ok($objSw->eq("ng'","Ng'")); -ok($objSw->eq("NG'","Ng'")); +ok($objSw->eq("Ng'","NG'")); ok($objSw->eq("ny", "Ny")); -ok($objSw->eq("NY", "Ny")); +ok($objSw->eq("Ny", "NY")); ok($objSw->eq("sh", "Sh")); -ok($objSw->eq("SH", "Sh")); +ok($objSw->eq("Sh", "SH")); ok($objSw->eq("th", "Th")); -ok($objSw->eq("TH", "Th")); +ok($objSw->eq("Th", "TH")); # 40 $objSw->change(level => 3); ok($objSw->lt("ch", "Ch")); -ok($objSw->gt("CH", "Ch")); +ok($objSw->lt("Ch", "CH")); ok($objSw->lt("dh", "Dh")); -ok($objSw->gt("DH", "Dh")); +ok($objSw->lt("Dh", "DH")); ok($objSw->lt("gh", "Gh")); -ok($objSw->gt("GH", "Gh")); +ok($objSw->lt("Gh", "GH")); ok($objSw->lt("kh", "Kh")); -ok($objSw->gt("KH", "Kh")); +ok($objSw->lt("Kh", "KH")); ok($objSw->lt("ng'","Ng'")); -ok($objSw->gt("NG'","Ng'")); +ok($objSw->lt("Ng'","NG'")); ok($objSw->lt("ny", "Ny")); -ok($objSw->gt("NY", "Ny")); +ok($objSw->lt("Ny", "NY")); ok($objSw->lt("sh", "Sh")); -ok($objSw->gt("SH", "Sh")); +ok($objSw->lt("Sh", "SH")); ok($objSw->lt("th", "Th")); -ok($objSw->gt("TH", "Th")); +ok($objSw->lt("Th", "TH")); # 56 $objSw->change(upper_before_lower => 1); ok($objSw->gt("ch", "Ch")); -ok($objSw->lt("CH", "Ch")); +ok($objSw->gt("Ch", "CH")); ok($objSw->gt("dh", "Dh")); -ok($objSw->lt("DH", "Dh")); +ok($objSw->gt("Dh", "DH")); ok($objSw->gt("gh", "Gh")); -ok($objSw->lt("GH", "Gh")); +ok($objSw->gt("Gh", "GH")); ok($objSw->gt("kh", "Kh")); -ok($objSw->lt("KH", "Kh")); +ok($objSw->gt("Kh", "KH")); ok($objSw->gt("ng'","Ng'")); -ok($objSw->lt("NG'","Ng'")); +ok($objSw->gt("Ng'","NG'")); ok($objSw->gt("ny", "Ny")); -ok($objSw->lt("NY", "Ny")); +ok($objSw->gt("Ny", "NY")); ok($objSw->gt("sh", "Sh")); -ok($objSw->lt("SH", "Sh")); +ok($objSw->gt("Sh", "SH")); ok($objSw->gt("th", "Th")); -ok($objSw->lt("TH", "Th")); +ok($objSw->gt("Th", "TH")); # 72 diff --git a/cpan/Unicode-Collate/t/loc_tn.t b/cpan/Unicode-Collate/t/loc_tn.t new file mode 100644 index 0000000000..07e1f808ac --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_tn.t @@ -0,0 +1,71 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 40; + +my $objTn = Unicode::Collate::Locale-> + new(locale => 'TN', normalization => undef); + +ok(1); +ok($objTn->getlocale, 'tn'); + +$objTn->change(level => 1); + +ok($objTn->lt("e", "e\x{302}")); +ok($objTn->gt("f", "e\x{302}")); +ok($objTn->lt("o", "o\x{302}")); +ok($objTn->gt("p", "o\x{302}")); +ok($objTn->lt("s", "s\x{30C}")); +ok($objTn->gt("t", "s\x{30C}")); + +# 8 + +$objTn->change(level => 2); + +ok($objTn->eq("e\x{302}", "E\x{302}")); +ok($objTn->eq("o\x{302}", "O\x{302}")); +ok($objTn->eq("s\x{30C}", "S\x{30C}")); + +$objTn->change(level => 3); + +ok($objTn->lt("e\x{302}", "E\x{302}")); +ok($objTn->lt("o\x{302}", "O\x{302}")); +ok($objTn->lt("s\x{30C}", "S\x{30C}")); + +# 14 + +ok($objTn->eq("e\x{302}", pack('U', 0xEA))); +ok($objTn->eq("E\x{302}", pack('U', 0xCA))); +ok($objTn->eq("o\x{302}", pack('U', 0xF4))); +ok($objTn->eq("O\x{302}", pack('U', 0xD4))); +ok($objTn->eq("s\x{30C}", "\x{161}")); +ok($objTn->eq("S\x{30C}", "\x{160}")); + +# 20 + +ok($objTn->eq("e\x{302}\x{300}", "\x{1EC1}")); +ok($objTn->eq("E\x{302}\x{300}", "\x{1EC0}")); +ok($objTn->eq("e\x{302}\x{301}", "\x{1EBF}")); +ok($objTn->eq("E\x{302}\x{301}", "\x{1EBE}")); +ok($objTn->eq("e\x{302}\x{303}", "\x{1EC5}")); +ok($objTn->eq("E\x{302}\x{303}", "\x{1EC4}")); +ok($objTn->eq("e\x{302}\x{309}", "\x{1EC3}")); +ok($objTn->eq("E\x{302}\x{309}", "\x{1EC2}")); +ok($objTn->eq("e\x{302}\x{323}", "\x{1EC7}")); +ok($objTn->eq("E\x{302}\x{323}", "\x{1EC6}")); + +ok($objTn->eq("o\x{302}\x{300}", "\x{1ED3}")); +ok($objTn->eq("O\x{302}\x{300}", "\x{1ED2}")); +ok($objTn->eq("o\x{302}\x{301}", "\x{1ED1}")); +ok($objTn->eq("O\x{302}\x{301}", "\x{1ED0}")); +ok($objTn->eq("o\x{302}\x{303}", "\x{1ED7}")); +ok($objTn->eq("O\x{302}\x{303}", "\x{1ED6}")); +ok($objTn->eq("o\x{302}\x{309}", "\x{1ED5}")); +ok($objTn->eq("O\x{302}\x{309}", "\x{1ED4}")); +ok($objTn->eq("o\x{302}\x{323}", "\x{1ED9}")); +ok($objTn->eq("O\x{302}\x{323}", "\x{1ED8}")); + +# 40 diff --git a/cpan/Unicode-Collate/t/loc_vi.t b/cpan/Unicode-Collate/t/loc_vi.t new file mode 100644 index 0000000000..8af5154710 --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_vi.t @@ -0,0 +1,237 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 194; + +my $objVi = Unicode::Collate::Locale-> + new(locale => 'VI', normalization => undef); + +ok(1); +ok($objVi->getlocale, 'vi'); + +$objVi->change(level => 1); + +ok($objVi->lt("a", "a\x{306}")); +ok($objVi->lt("a\x{306}", "a\x{302}")); +ok($objVi->gt("b", "a\x{302}")); +ok($objVi->lt("d", "d\x{335}")); +ok($objVi->gt("e", "d\x{335}")); +ok($objVi->lt("e", "e\x{302}")); +ok($objVi->gt("f", "e\x{302}")); +ok($objVi->lt("o", "o\x{302}")); +ok($objVi->lt("o\x{302}", "o\x{31B}")); +ok($objVi->gt("p", "o\x{31B}")); +ok($objVi->lt("u", "u\x{31B}")); +ok($objVi->gt("v", "u\x{31B}")); + +# 14 + +ok($objVi->eq("\x{300}", "\x{309}")); +ok($objVi->eq("\x{309}", "\x{303}")); +ok($objVi->eq("\x{303}", "\x{301}")); +ok($objVi->eq("\x{301}", "\x{323}")); +ok($objVi->eq("\x{323}", "\x{306}")); +ok($objVi->eq("\x{306}", "\x{302}")); + +ok($objVi->eq("X\x{300}", "X\x{309}")); +ok($objVi->eq("X\x{309}", "X\x{303}")); +ok($objVi->eq("X\x{303}", "X\x{301}")); +ok($objVi->eq("X\x{301}", "X\x{323}")); +ok($objVi->eq("X\x{323}", "X\x{306}")); +ok($objVi->eq("X\x{306}", "X\x{302}")); + +# 26 + +$objVi->change(level => 2); + +ok($objVi->lt("\x{300}", "\x{309}")); +ok($objVi->lt("\x{309}", "\x{303}")); +ok($objVi->lt("\x{303}", "\x{301}")); +ok($objVi->lt("\x{301}", "\x{323}")); +ok($objVi->lt("\x{323}", "\x{306}")); +ok($objVi->lt("\x{306}", "\x{302}")); + +ok($objVi->lt("X\x{300}", "X\x{309}")); +ok($objVi->lt("X\x{309}", "X\x{303}")); +ok($objVi->lt("X\x{303}", "X\x{301}")); +ok($objVi->lt("X\x{301}", "X\x{323}")); +ok($objVi->lt("X\x{323}", "X\x{306}")); +ok($objVi->lt("X\x{306}", "X\x{302}")); + +# 38 + +ok($objVi->eq("a\x{306}", "A\x{306}")); +ok($objVi->eq("a\x{302}", "A\x{302}")); +ok($objVi->eq("d\x{335}", "D\x{335}")); +ok($objVi->eq("e\x{302}", "E\x{302}")); +ok($objVi->eq("o\x{302}", "O\x{302}")); +ok($objVi->eq("o\x{31B}", "O\x{31B}")); +ok($objVi->eq("u\x{31B}", "U\x{31B}")); + +# 45 + +$objVi->change(level => 3); + +ok($objVi->lt("a\x{306}", "A\x{306}")); +ok($objVi->lt("a\x{302}", "A\x{302}")); +ok($objVi->lt("d\x{335}", "D\x{335}")); +ok($objVi->lt("e\x{302}", "E\x{302}")); +ok($objVi->lt("o\x{302}", "O\x{302}")); +ok($objVi->lt("o\x{31B}", "O\x{31B}")); +ok($objVi->lt("u\x{31B}", "U\x{31B}")); + +# 52 + +ok($objVi->eq("a\x{306}", "\x{103}")); +ok($objVi->eq("A\x{306}", "\x{102}")); +ok($objVi->eq("a\x{302}", pack('U', 0xE2))); +ok($objVi->eq("A\x{302}", pack('U', 0xC2))); +ok($objVi->eq("d\x{335}", "\x{111}")); +ok($objVi->eq("D\x{335}", "\x{110}")); +ok($objVi->eq("e\x{302}", pack('U', 0xEA))); +ok($objVi->eq("E\x{302}", pack('U', 0xCA))); +ok($objVi->eq("o\x{302}", pack('U', 0xF4))); +ok($objVi->eq("O\x{302}", pack('U', 0xD4))); +ok($objVi->eq("o\x{31B}", "\x{1A1}")); +ok($objVi->eq("O\x{31B}", "\x{1A0}")); +ok($objVi->eq("u\x{31B}", "\x{1B0}")); +ok($objVi->eq("U\x{31B}", "\x{1AF}")); + +# 66 + +ok($objVi->eq("a\x{300}", pack('U', 0xE0))); +ok($objVi->eq("a\x{309}", "\x{1EA3}")); +ok($objVi->eq("a\x{303}", pack('U', 0xE3))); +ok($objVi->eq("a\x{301}", pack('U', 0xE1))); +ok($objVi->eq("a\x{323}", "\x{1EA1}")); +ok($objVi->eq("A\x{300}", pack('U', 0xC0))); +ok($objVi->eq("A\x{309}", "\x{1EA2}")); +ok($objVi->eq("A\x{303}", pack('U', 0xC3))); +ok($objVi->eq("A\x{301}", pack('U', 0xC1))); +ok($objVi->eq("A\x{323}", "\x{1EA0}")); +ok($objVi->eq("a\x{306}\x{300}", "\x{1EB1}")); +ok($objVi->eq("a\x{306}\x{309}", "\x{1EB3}")); +ok($objVi->eq("a\x{306}\x{303}", "\x{1EB5}")); +ok($objVi->eq("a\x{306}\x{301}", "\x{1EAF}")); +ok($objVi->eq("a\x{306}\x{323}", "\x{1EB7}")); +ok($objVi->eq("A\x{306}\x{300}", "\x{1EB0}")); +ok($objVi->eq("A\x{306}\x{309}", "\x{1EB2}")); +ok($objVi->eq("A\x{306}\x{303}", "\x{1EB4}")); +ok($objVi->eq("A\x{306}\x{301}", "\x{1EAE}")); +ok($objVi->eq("A\x{306}\x{323}", "\x{1EB6}")); +ok($objVi->eq("a\x{302}\x{300}", "\x{1EA7}")); +ok($objVi->eq("a\x{302}\x{309}", "\x{1EA9}")); +ok($objVi->eq("a\x{302}\x{303}", "\x{1EAB}")); +ok($objVi->eq("a\x{302}\x{301}", "\x{1EA5}")); +ok($objVi->eq("a\x{302}\x{323}", "\x{1EAD}")); +ok($objVi->eq("A\x{302}\x{300}", "\x{1EA6}")); +ok($objVi->eq("A\x{302}\x{309}", "\x{1EA8}")); +ok($objVi->eq("A\x{302}\x{303}", "\x{1EAA}")); +ok($objVi->eq("A\x{302}\x{301}", "\x{1EA4}")); +ok($objVi->eq("A\x{302}\x{323}", "\x{1EAC}")); +ok($objVi->eq("e\x{300}", pack('U', 0xE8))); +ok($objVi->eq("e\x{309}", "\x{1EBB}")); +ok($objVi->eq("e\x{303}", "\x{1EBD}")); +ok($objVi->eq("e\x{301}", pack('U', 0xE9))); +ok($objVi->eq("e\x{323}", "\x{1EB9}")); +ok($objVi->eq("E\x{300}", pack('U', 0xC8))); +ok($objVi->eq("E\x{309}", "\x{1EBA}")); +ok($objVi->eq("E\x{303}", "\x{1EBC}")); +ok($objVi->eq("E\x{301}", pack('U', 0xC9))); +ok($objVi->eq("E\x{323}", "\x{1EB8}")); +ok($objVi->eq("e\x{302}\x{300}", "\x{1EC1}")); +ok($objVi->eq("e\x{302}\x{309}", "\x{1EC3}")); +ok($objVi->eq("e\x{302}\x{303}", "\x{1EC5}")); +ok($objVi->eq("e\x{302}\x{301}", "\x{1EBF}")); +ok($objVi->eq("e\x{302}\x{323}", "\x{1EC7}")); +ok($objVi->eq("E\x{302}\x{300}", "\x{1EC0}")); +ok($objVi->eq("E\x{302}\x{309}", "\x{1EC2}")); +ok($objVi->eq("E\x{302}\x{303}", "\x{1EC4}")); +ok($objVi->eq("E\x{302}\x{301}", "\x{1EBE}")); +ok($objVi->eq("E\x{302}\x{323}", "\x{1EC6}")); +ok($objVi->eq("i\x{300}", pack('U', 0xEC))); +ok($objVi->eq("i\x{309}", "\x{1EC9}")); +ok($objVi->eq("i\x{303}", "\x{129}")); +ok($objVi->eq("i\x{301}", pack('U', 0xED))); +ok($objVi->eq("i\x{323}", "\x{1ECB}")); +ok($objVi->eq("I\x{300}", pack('U', 0xCC))); +ok($objVi->eq("I\x{309}", "\x{1EC8}")); +ok($objVi->eq("I\x{303}", "\x{128}")); +ok($objVi->eq("I\x{301}", pack('U', 0xCD))); +ok($objVi->eq("I\x{323}", "\x{1ECA}")); +ok($objVi->eq("o\x{300}", pack('U', 0xF2))); +ok($objVi->eq("o\x{309}", "\x{1ECF}")); +ok($objVi->eq("o\x{303}", pack('U', 0xF5))); +ok($objVi->eq("o\x{301}", pack('U', 0xF3))); +ok($objVi->eq("o\x{323}", "\x{1ECD}")); +ok($objVi->eq("O\x{300}", pack('U', 0xD2))); +ok($objVi->eq("O\x{309}", "\x{1ECE}")); +ok($objVi->eq("O\x{303}", pack('U', 0xD5))); +ok($objVi->eq("O\x{301}", pack('U', 0xD3))); +ok($objVi->eq("O\x{323}", "\x{1ECC}")); +ok($objVi->eq("o\x{302}\x{300}", "\x{1ED3}")); +ok($objVi->eq("o\x{302}\x{309}", "\x{1ED5}")); +ok($objVi->eq("o\x{302}\x{303}", "\x{1ED7}")); +ok($objVi->eq("o\x{302}\x{301}", "\x{1ED1}")); +ok($objVi->eq("o\x{302}\x{323}", "\x{1ED9}")); +ok($objVi->eq("O\x{302}\x{300}", "\x{1ED2}")); +ok($objVi->eq("O\x{302}\x{309}", "\x{1ED4}")); +ok($objVi->eq("O\x{302}\x{303}", "\x{1ED6}")); +ok($objVi->eq("O\x{302}\x{301}", "\x{1ED0}")); +ok($objVi->eq("O\x{302}\x{323}", "\x{1ED8}")); +ok($objVi->eq("o\x{31B}\x{300}", "\x{1EDD}")); +ok($objVi->eq("o\x{31B}\x{309}", "\x{1EDF}")); +ok($objVi->eq("o\x{31B}\x{303}", "\x{1EE1}")); +ok($objVi->eq("o\x{31B}\x{301}", "\x{1EDB}")); +ok($objVi->eq("o\x{31B}\x{323}", "\x{1EE3}")); +ok($objVi->eq("O\x{31B}\x{300}", "\x{1EDC}")); +ok($objVi->eq("O\x{31B}\x{309}", "\x{1EDE}")); +ok($objVi->eq("O\x{31B}\x{303}", "\x{1EE0}")); +ok($objVi->eq("O\x{31B}\x{301}", "\x{1EDA}")); +ok($objVi->eq("O\x{31B}\x{323}", "\x{1EE2}")); +ok($objVi->eq("u\x{300}", pack('U', 0xF9))); +ok($objVi->eq("u\x{309}", "\x{1EE7}")); +ok($objVi->eq("u\x{303}", "\x{169}")); +ok($objVi->eq("u\x{301}", pack('U', 0xFA))); +ok($objVi->eq("u\x{323}", "\x{1EE5}")); +ok($objVi->eq("U\x{300}", pack('U', 0xD9))); +ok($objVi->eq("U\x{309}", "\x{1EE6}")); +ok($objVi->eq("U\x{303}", "\x{168}")); +ok($objVi->eq("U\x{301}", pack('U', 0xDA))); +ok($objVi->eq("U\x{323}", "\x{1EE4}")); +ok($objVi->eq("u\x{31B}\x{300}", "\x{1EEB}")); +ok($objVi->eq("u\x{31B}\x{309}", "\x{1EED}")); +ok($objVi->eq("u\x{31B}\x{303}", "\x{1EEF}")); +ok($objVi->eq("u\x{31B}\x{301}", "\x{1EE9}")); +ok($objVi->eq("u\x{31B}\x{323}", "\x{1EF1}")); +ok($objVi->eq("U\x{31B}\x{300}", "\x{1EEA}")); +ok($objVi->eq("U\x{31B}\x{309}", "\x{1EEC}")); +ok($objVi->eq("U\x{31B}\x{303}", "\x{1EEE}")); +ok($objVi->eq("U\x{31B}\x{301}", "\x{1EE8}")); +ok($objVi->eq("U\x{31B}\x{323}", "\x{1EF0}")); +ok($objVi->eq("y\x{300}", "\x{1EF3}")); +ok($objVi->eq("y\x{309}", "\x{1EF7}")); +ok($objVi->eq("y\x{303}", "\x{1EF9}")); +ok($objVi->eq("y\x{301}", pack('U', 0xFD))); +ok($objVi->eq("y\x{323}", "\x{1EF5}")); +ok($objVi->eq("Y\x{300}", "\x{1EF2}")); +ok($objVi->eq("Y\x{309}", "\x{1EF6}")); +ok($objVi->eq("Y\x{303}", "\x{1EF8}")); +ok($objVi->eq("Y\x{301}", pack('U', 0xDD))); +ok($objVi->eq("Y\x{323}", "\x{1EF4}")); + +# 186 + +ok($objVi->eq("e\x{306}", "\x{115}")); +ok($objVi->eq("E\x{306}", "\x{114}")); +ok($objVi->eq("i\x{306}", "\x{12D}")); +ok($objVi->eq("I\x{306}", "\x{12C}")); +ok($objVi->eq("o\x{306}", "\x{14F}")); +ok($objVi->eq("O\x{306}", "\x{14E}")); +ok($objVi->eq("u\x{306}", "\x{16D}")); +ok($objVi->eq("U\x{306}", "\x{16C}")); + +# 194 diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 1d2609542f..5bb3706781 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -151,6 +151,10 @@ C<PathTools> has been upgraded from version 3.31_01 to 3.33. =item * +C<Unicode::Collate> has been upgraded from version 0.59 to 0.60 + +=item * + C<Unicode::Normalize> has been upgraded from version 1.06 to 1.07 =back |