diff options
author | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2010-10-17 00:37:58 +0100 |
---|---|---|
committer | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2010-10-17 00:37:58 +0100 |
commit | aa7758f756e0b1b04750a2eeecdc7edbb9000ff6 (patch) | |
tree | 4ecf1390ce1ca78fdd0f7435d0056f164c4a4c9c /cpan/Unicode-Collate | |
parent | b110ebfd39b99ef18dc9d64c02d8d52190a42816 (diff) | |
download | perl-aa7758f756e0b1b04750a2eeecdc7edbb9000ff6.tar.gz |
Update Unicode-Collate to CPAN version 0.63
[DELTA]
0.63 Sun Oct 10 22:13:21 2010
- supported suppress contractions (see 'suppress' in POD).
- internal for hangul_terminator in getSortKey().
- U::C::Locale newly supports locales: be, bg, kk, mk, ru, sr.
- added tailoring with U+0340 or U+0341 instead of U+0300 or U+0301.
(affected locales: hr, is, pl, se, to, wo)
Diffstat (limited to 'cpan/Unicode-Collate')
26 files changed, 1432 insertions, 77 deletions
diff --git a/cpan/Unicode-Collate/Changes b/cpan/Unicode-Collate/Changes index 1abdf45635..98ff5beb4a 100644 --- a/cpan/Unicode-Collate/Changes +++ b/cpan/Unicode-Collate/Changes @@ -1,5 +1,12 @@ Revision history for Perl module Unicode::Collate. +0.63 Sun Oct 10 22:13:21 2010 + - supported suppress contractions (see 'suppress' in POD). + - internal for hangul_terminator in getSortKey(). + - U::C::Locale newly supports locales: be, bg, kk, mk, ru, sr. + - added tailoring with U+0340 or U+0341 instead of U+0300 or U+0301. + (affected locales: hr, is, pl, se, to, wo) + 0.62 Wed Oct 6 21:35:54 2010 - U::C::Locale newly supports locales: ar, hu, hy, se, to, uk. - Vietnamese (vi): added tailoring for U+0340 and U+0341. @@ -9,14 +16,14 @@ Revision history for Perl module Unicode::Collate. - precomposites of e-dot-below, o-dot-below, o-tilde are tailored as well. (affected locales: et, yo) - Vietnamese (vi): added contractions for non-blocked decompositions - * base + dot-below + diacritical such as a\x{323}\x{306}, \x{1EA1}\x{306} etc. + * base + dot-below + mark such as a\x{323}\x{306}, \x{1EA1}\x{306} etc. * base + tone + horn such as o\x{309}\x{31B}, \x{1ECF}\x{31B} etc. 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 + 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. @@ -38,8 +45,8 @@ Revision history for Perl module Unicode::Collate. ! renamed t/locale_{xy}.t to t/loc_{xy}.t (for safer 8.3 names) 0.55 Sun Aug 1 21:21:23 2010 - - incorporated Unicode::Collate::Locale with some changes. (see: - http://www.xray.mpe.mpg.de/mailing-lists/perl-unicode/2004-03/msg00030.html) + - incorporated Unicode::Collate::Locale with some changes. see: + http://www.xray.mpe.mpg.de/mailing-lists/perl-unicode/2004-03/msg00030.html - supported locales: cs, es, es__traditional, fr, nn, pl. ! added t/locale*.t that uses DUCET. diff --git a/cpan/Unicode-Collate/Collate.pm b/cpan/Unicode-Collate/Collate.pm index 4b195df1c5..9dec10c31b 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.62'; +our $VERSION = '0.63'; our $PACKAGE = __PACKAGE__; my @Path = qw(Unicode Collate); @@ -144,6 +144,7 @@ our @ChangeNG = qw/ ignoreChar ignoreName undefChar undefName variableTable versionTable alternateTable backwardsTable forwardsTable rearrangeTable derivCode normCode rearrangeHash backwardsFlag + suppress suppressHash /; # The hash key 'ignored' is deleted at v 0.21. # The hash key 'isShift' is deleted at v 0.23. @@ -276,6 +277,11 @@ sub new my $class = shift; my $self = bless { @_ }, $class; + # keys of $self->{suppressHash} are $self->{suppress}. + if ($self->{suppress} && @{ $self->{suppress} }) { + @{ $self->{suppressHash} }{ @{ $self->{suppress} } } = (); + } # before read_table() + # If undef is passed explicitly, no file is read. $self->{table} = $KeyFile if ! exists $self->{table}; $self->read_table() if defined $self->{table}; @@ -380,7 +386,8 @@ sub parseEntry @uv = _getHexArray($e); return if !@uv; - + return if @uv > 1 && $self->{suppressHash} && + exists $self->{suppressHash}{$uv[0]}; $entry = join(CODE_SEP, @uv); # in JCPS if (defined $self->{undefChar} || defined $self->{ignoreChar}) { @@ -423,7 +430,7 @@ sub parseEntry ## -## VCE = _varCE(variable term, VCE) +## VCE = _varCE(variable, VCE) ## sub _varCE { @@ -671,32 +678,28 @@ sub getSortKey my $lev = $self->{level}; my $rEnt = $self->splitEnt(shift); # get an arrayref of JCPS my $vers = $self->{UCA_Version}; - my $v2i = $vers >= 9 && $self->{variable} ne 'non-ignorable'; + my $vbl = $self->{variable}; + my $term = $self->{hangul_terminator}; + my $v2i = $vers >= 9 && $vbl ne 'non-ignorable'; my @buf; # weight arrays - if ($self->{hangul_terminator}) { + if ($term) { my $preHST = ''; + my $termCE = _varCE($vbl, pack(VCE_TEMPLATE, NON_VAR, $term, 0,0,0)); foreach my $jcps (@$rEnt) { # weird things like VL, TL-contraction are not considered! - my $curHST = ''; - foreach my $u (split /;/, $jcps) { - $curHST .= getHST($u, $vers); - } + my $curHST = join '', map getHST($_, $vers), split /;/, $jcps; if ($preHST && !$curHST || # hangul before non-hangul $preHST =~ /L\z/ && $curHST =~ /^T/ || $preHST =~ /V\z/ && $curHST =~ /^L/ || $preHST =~ /T\z/ && $curHST =~ /^[LV]/) { - - push @buf, $self->getWtHangulTerm(); + push @buf, $termCE; } $preHST = $curHST; - push @buf, $self->getWt($jcps); } - $preHST # end at hangul - and push @buf, $self->getWtHangulTerm(); - } - else { + push @buf, $termCE if $preHST; # end at hangul + } else { foreach my $jcps (@$rEnt) { push @buf, $self->getWt($jcps); } @@ -713,11 +716,9 @@ sub getSortKey if ($v2i) { if ($var) { $last_is_variable = TRUE; - } - elsif (!$wt[0]) { # ignorable + } elsif (!$wt[0]) { # ignorable next if $last_is_variable; - } - else { + } else { $last_is_variable = FALSE; } } @@ -858,13 +859,6 @@ sub _isUIdeo { } -sub getWtHangulTerm { - my $self = shift; - return _varCE($self->{variable}, - pack(VCE_TEMPLATE, NON_VAR, $self->{hangul_terminator}, 0,0,0)); -} - - ## ## "hhhh hhhh hhhh" to (dddd, dddd, dddd) ## @@ -1199,7 +1193,7 @@ The C<new> method returns a collator object. $Collator = Unicode::Collate->new( UCA_Version => $UCA_Version, - alternate => $alternate, # deprecated: use of 'variable' is recommended. + alternate => $alternate, # alias for 'variable' backwards => $levelNumber, # or \@levelNumbers entry => $element, hangul_terminator => $term_primary_weight, @@ -1212,6 +1206,7 @@ The C<new> method returns a collator object. overrideHangul => \&overrideHangul, preprocess => \&preprocess, rearrange => \@charList, + suppress => \@charList, table => $filename, undefName => qr/$undefName/, undefChar => qr/$undefChar/, @@ -1433,7 +1428,7 @@ C<CJK Unified Ideographs Extension>. U+4E00..U+9FA5 if UCA_Version is 8 to 11; U+4E00..U+9FBB if UCA_Version is 14 to 16; U+4E00..U+9FC3 if UCA_Version is 18; - U+4E00..U+9FCB if UCA_Version> is 20. + U+4E00..U+9FCB if UCA_Version is 20. CJK Unified Ideographs Extension: Ext.A (U+3400..U+4DB5) and Ext.B (U+20000..U+2A6D6) if UCA_Version < 20; @@ -1461,7 +1456,7 @@ ex. ignores all CJK Unified Ideographs. If C<undef> is passed explicitly as the value for this key, weights for CJK Unified Ideographs are treated as undefined. But assignment of weight for CJK Unified Ideographs -in table or C<entry> is still valid. +in <table> or C<entry> is still valid. =item overrideHangul @@ -1481,7 +1476,7 @@ If C<undef> is passed explicitly as the value for this key, weight for Hangul Syllables is treated as undefined without decomposition into Hangul Jamo. But definition of weight for Hangul Syllables -in table or C<entry> is still valid. +in <table> or C<entry> is still valid. =item preprocess @@ -1519,6 +1514,20 @@ If C<UCA_Version> is equal to or greater than 14, default is C<[]> B<According to the version 9 of UCA, this parameter shall not be used; but it is not warned at present.> +=item suppress + +-- see suppress contractions in 5.14.11 Special-Purpose Commands, +UTS #35 (LDML). + +Contractions begining with the specified characters are suppressed, +even if those contractions are defined in <table> or C<entry>. + +An example for Russian and some languages using the Cyrillic script: + + suppress => [0x0400..0x0417, 0x041A..0x0437, 0x043A..0x045F], + +where 0x0400 stands for C<U+0400>, CYRILLIC CAPITAL LETTER IE WITH GRAVE. + =item table -- see 3.2 Default Unicode Collation Element Table, UTS #10. @@ -1566,7 +1575,7 @@ specified as a comment (following C<#>) on each line. -- see 6.3.4 Reducing the Repertoire, UTS #10. -Undefines the collation element as if it were unassigned in the table. +Undefines the collation element as if it were unassigned in the <table>. This reduces the size of the table. If an unassigned character appears in the string to be collated, the sort key is made from its codepoint @@ -1945,6 +1954,10 @@ L<http://www.unicode.org/Public/UNIDATA/HangulSyllableType.txt> L<http://www.unicode.org/reports/tr15/> +=item Unicode Locale Data Markup Language (LDML) - UTS #35 + +L<http://www.unicode.org/reports/tr35/> + =back =cut diff --git a/cpan/Unicode-Collate/Collate/Locale.pm b/cpan/Unicode-Collate/Collate/Locale.pm index 09cb4ce799..bbd6e1f498 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.62'; +our $VERSION = '0.63'; use File::Spec; @@ -14,12 +14,16 @@ 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 kl lt lv mt nb nn nso om pl ro + hr hu hy ig is kk kl lt lv mt nb nn nso om pl ro ru se sk sl sq sv sw tn to tr uk vi wo yo ); $LocaleFile{'default'} = ''; $LocaleFile{'de__phonebook'} = 'de_phone'; $LocaleFile{'es__traditional'} = 'es_trad'; + $LocaleFile{'be'} = "ru"; + $LocaleFile{'bg'} = "ru"; + $LocaleFile{'mk'} = "ru"; + $LocaleFile{'sr'} = "ru"; sub _locale { my $locale = shift; @@ -158,6 +162,8 @@ this method returns a string C<'default'> meaning no special tailoring. af Afrikaans ar Arabic az Azerbaijani (Azeri) + be Belarusian + bg Bulgarian ca Catalan cs Czech cy Welsh @@ -178,9 +184,11 @@ this method returns a string C<'default'> meaning no special tailoring. hy Armenian ig Igbo is Icelandic + kk Kazakh kl Kalaallisut lt Lithuanian lv Latvian + mk Macedonian mt Maltese nb Norwegian Bokmal nn Norwegian Nynorsk @@ -188,10 +196,12 @@ this method returns a string C<'default'> meaning no special tailoring. om Oromo pl Polish ro Romanian + ru Russian se Northern Sami sk Slovak sl Slovenian sq Albanian + sr Serbian sv Swedish sw Swahili tn Tswana @@ -201,6 +211,22 @@ this method returns a string C<'default'> meaning no special tailoring. vi Vietnamese wo Wolof yo Yoruba + ---------------------------------------------------------- + +Locales according to default UCA rules include: +de (German), +en (English), +ga (Irish), +id (Indonesian), +it (Italian), +ka (Georgian), +ln (Lingala), +ms (Malay), +nl (Dutch), +pt (Portuguese), +st (Southern Sotho), +xh (Xhosa), +zu (Zulu). =head1 INSTALL @@ -246,6 +272,10 @@ L<http://www.unicode.org/reports/tr10/> L<http://www.unicode.org/Public/UCA/latest/allkeys.txt> +=item Unicode Locale Data Markup Language (LDML) - UTS #35 + +L<http://www.unicode.org/reports/tr35/> + =item CLDR - Unicode Common Locale Data Repository L<http://cldr.unicode.org/> diff --git a/cpan/Unicode-Collate/Collate/Locale/hr.pl b/cpan/Unicode-Collate/Collate/Locale/hr.pl index 83ed61631a..0a15e84477 100644 --- a/cpan/Unicode-Collate/Collate/Locale/hr.pl +++ b/cpan/Unicode-Collate/Collate/Locale/hr.pl @@ -6,8 +6,10 @@ 0043 030C ; [.123E.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON 0107 ; [.123F.0020.0002.0107] # LATIN SMALL LETTER C WITH ACUTE 0063 0301 ; [.123F.0020.0002.0107] # LATIN SMALL LETTER C WITH ACUTE +0063 0341 ; [.123F.0020.0002.0107] # LATIN SMALL LETTER C WITH ACUTE 0106 ; [.123F.0020.0008.0106] # LATIN CAPITAL LETTER C WITH ACUTE 0043 0301 ; [.123F.0020.0008.0106] # LATIN CAPITAL LETTER C WITH ACUTE +0043 0341 ; [.123F.0020.0008.0106] # LATIN CAPITAL LETTER C WITH ACUTE 01C6 ; [.1251.0020.0002.01C6] # LATIN SMALL LETTER DZ WITH CARON 0064 017D ; [.1251.0020.0007.0064][.0000.0000.0002.0000] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z WITH CARON> 01C5 ; [.1251.0020.0007.01C5][.0000.0000.0008.0000] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON diff --git a/cpan/Unicode-Collate/Collate/Locale/is.pl b/cpan/Unicode-Collate/Collate/Locale/is.pl index b6c93a9c01..076a443568 100644 --- a/cpan/Unicode-Collate/Collate/Locale/is.pl +++ b/cpan/Unicode-Collate/Collate/Locale/is.pl @@ -2,8 +2,10 @@ entry => <<'ENTRY', # for DUCET v5.2.0 00E1 ; [.1224.0020.0002.00E1] # LATIN SMALL LETTER A WITH ACUTE 0061 0301 ; [.1224.0020.0002.00E1] # LATIN SMALL LETTER A WITH ACUTE +0061 0341 ; [.1224.0020.0002.00E1] # LATIN SMALL LETTER A WITH ACUTE 00C1 ; [.1224.0020.0008.00C1] # LATIN CAPITAL LETTER A WITH ACUTE 0041 0301 ; [.1224.0020.0008.00C1] # LATIN CAPITAL LETTER A WITH ACUTE +0041 0341 ; [.1224.0020.0008.00C1] # LATIN CAPITAL LETTER A WITH ACUTE 0111 ; [.1250.0021.0002.0111] # LATIN SMALL LETTER D WITH STROKE 0064 0335 ; [.1250.0021.0002.0111] # LATIN SMALL LETTER D WITH STROKE 0110 ; [.1250.0021.0008.0110] # LATIN CAPITAL LETTER D WITH STROKE @@ -12,24 +14,34 @@ 00D0 ; [.1251.0020.0008.00D0] # LATIN CAPITAL LETTER ETH 00E9 ; [.12A2.0020.0002.00E9] # LATIN SMALL LETTER E WITH ACUTE 0065 0301 ; [.12A2.0020.0002.00E9] # LATIN SMALL LETTER E WITH ACUTE +0065 0341 ; [.12A2.0020.0002.00E9] # LATIN SMALL LETTER E WITH ACUTE 00C9 ; [.12A2.0020.0008.00C9] # LATIN CAPITAL LETTER E WITH ACUTE 0045 0301 ; [.12A2.0020.0008.00C9] # LATIN CAPITAL LETTER E WITH ACUTE +0045 0341 ; [.12A2.0020.0008.00C9] # LATIN CAPITAL LETTER E WITH ACUTE 00ED ; [.1304.0020.0002.00ED] # LATIN SMALL LETTER I WITH ACUTE 0069 0301 ; [.1304.0020.0002.00ED] # LATIN SMALL LETTER I WITH ACUTE +0069 0341 ; [.1304.0020.0002.00ED] # LATIN SMALL LETTER I WITH ACUTE 00CD ; [.1304.0020.0008.00CD] # LATIN CAPITAL LETTER I WITH ACUTE 0049 0301 ; [.1304.0020.0008.00CD] # LATIN CAPITAL LETTER I WITH ACUTE +0049 0341 ; [.1304.0020.0008.00CD] # LATIN CAPITAL LETTER I WITH ACUTE 00F3 ; [.13B2.0020.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE 006F 0301 ; [.13B2.0020.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE +006F 0341 ; [.13B2.0020.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE 00D3 ; [.13B2.0020.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE 004F 0301 ; [.13B2.0020.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE +004F 0341 ; [.13B2.0020.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE 00FA ; [.147A.0020.0002.00FA] # LATIN SMALL LETTER U WITH ACUTE 0075 0301 ; [.147A.0020.0002.00FA] # LATIN SMALL LETTER U WITH ACUTE +0075 0341 ; [.147A.0020.0002.00FA] # LATIN SMALL LETTER U WITH ACUTE 00DA ; [.147A.0020.0008.00DA] # LATIN CAPITAL LETTER U WITH ACUTE 0055 0301 ; [.147A.0020.0008.00DA] # LATIN CAPITAL LETTER U WITH ACUTE +0055 0341 ; [.147A.0020.0008.00DA] # LATIN CAPITAL LETTER U WITH ACUTE 00FD ; [.14AC.0020.0002.00FD] # LATIN SMALL LETTER Y WITH ACUTE 0079 0301 ; [.14AC.0020.0002.00FD] # LATIN SMALL LETTER Y WITH ACUTE +0079 0341 ; [.14AC.0020.0002.00FD] # LATIN SMALL LETTER Y WITH ACUTE 00DD ; [.14AC.0020.0008.00DD] # LATIN CAPITAL LETTER Y WITH ACUTE 0059 0301 ; [.14AC.0020.0008.00DD] # LATIN CAPITAL LETTER Y WITH ACUTE +0059 0341 ; [.14AC.0020.0008.00DD] # LATIN CAPITAL LETTER Y WITH ACUTE 00E6 ; [.1522.0020.0002.00E6] # LATIN SMALL LETTER AE 00C6 ; [.1522.0020.0008.00C6] # LATIN CAPITAL LETTER AE 1D2D ; [.1522.0020.0014.1D2D] # MODIFIER LETTER CAPITAL AE diff --git a/cpan/Unicode-Collate/Collate/Locale/kk.pl b/cpan/Unicode-Collate/Collate/Locale/kk.pl new file mode 100644 index 0000000000..a5e1a71200 --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/kk.pl @@ -0,0 +1,44 @@ ++{ +# barred-o doesn't require tailoring + suppress => [0x0400..0x045F], + entry => <<'ENTRY', # for DUCET v5.2.0 +04B1 ; [.16E3.0020.0002.04B1] # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE +04B0 ; [.16E3.0020.0008.04B0] # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE +0456 ; [.175F.0020.0002.0456] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0406 ; [.175F.0020.0008.0406] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +04D1 ; [.15AC.0020.0002.0430][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER A WITH BREVE +04D0 ; [.15AC.0020.0008.0410][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER A WITH BREVE +04D3 ; [.15AC.0020.0002.0430][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER A WITH DIAERESIS +04D2 ; [.15AC.0020.0008.0410][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS +0453 ; [.15CC.0020.0002.0433][.0000.0032.0002.0301] # CYRILLIC SMALL LETTER GJE +0403 ; [.15CC.0020.0008.0413][.0000.0032.0002.0301] # CYRILLIC CAPITAL LETTER GJE +04D7 ; [.15F4.0020.0002.0435][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER IE WITH BREVE +04D6 ; [.15F4.0020.0008.0415][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER IE WITH BREVE +04DD ; [.1600.0020.0002.0436][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS +04DC ; [.1600.0020.0008.0416][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS +04DF ; [.160D.0020.0002.0437][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS +04DE ; [.160D.0020.0008.0417][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS +04E5 ; [.1625.0020.0002.0438][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER I WITH DIAERESIS +04E4 ; [.1625.0020.0008.0418][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS +0457 ; [.175F.0020.0002.0456][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER YI +0407 ; [.175F.0020.0008.0406][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER YI +0439 ; [.1625.0020.0002.0438][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER SHORT I +0419 ; [.1625.0020.0008.0418][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER SHORT I +04E7 ; [.1692.0020.0002.043E][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER O WITH DIAERESIS +04E6 ; [.1692.0020.0008.041E][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS +045C ; [.1643.0020.0002.043A][.0000.0032.0002.0301] # CYRILLIC SMALL LETTER KJE +040C ; [.1643.0020.0008.041A][.0000.0032.0002.0301] # CYRILLIC CAPITAL LETTER KJE +045E ; [.16D4.0020.0002.0443][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER SHORT U +040E ; [.16D4.0020.0008.0423][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER SHORT U +04F1 ; [.16D4.0020.0002.0443][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER U WITH DIAERESIS +04F0 ; [.16D4.0020.0008.0423][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS +04F3 ; [.16D4.0020.0002.0443][.0000.004D.0002.030B] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE +04F2 ; [.16D4.0020.0008.0423][.0000.004D.0002.030B] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE +04F5 ; [.1725.0020.0002.0447][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS +04F4 ; [.1725.0020.0008.0427][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS +04F9 ; [.1758.0020.0002.044B][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS +04F8 ; [.1758.0020.0008.042B][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS +04ED ; [.176D.0020.0002.044D][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER E WITH DIAERESIS +04EC ; [.176D.0020.0008.042D][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS +ENTRY +}; diff --git a/cpan/Unicode-Collate/Collate/Locale/pl.pl b/cpan/Unicode-Collate/Collate/Locale/pl.pl index f9694d9ff6..485e38078f 100644 --- a/cpan/Unicode-Collate/Collate/Locale/pl.pl +++ b/cpan/Unicode-Collate/Collate/Locale/pl.pl @@ -6,8 +6,10 @@ 0041 0328 ; [.1210.0020.0008.0104] # LATIN CAPITAL LETTER A WITH OGONEK 0107 ; [.123E.0020.0002.0107] # LATIN SMALL LETTER C WITH ACUTE 0063 0301 ; [.123E.0020.0002.0107] # LATIN SMALL LETTER C WITH ACUTE +0063 0341 ; [.123E.0020.0002.0107] # LATIN SMALL LETTER C WITH ACUTE 0106 ; [.123E.0020.0008.0106] # LATIN CAPITAL LETTER C WITH ACUTE 0043 0301 ; [.123E.0020.0008.0106] # LATIN CAPITAL LETTER C WITH ACUTE +0043 0341 ; [.123E.0020.0008.0106] # LATIN CAPITAL LETTER C WITH ACUTE 0119 ; [.126C.0020.0002.0119] # LATIN SMALL LETTER E WITH OGONEK 0065 0328 ; [.126C.0020.0002.0119] # LATIN SMALL LETTER E WITH OGONEK 0118 ; [.126C.0020.0008.0118] # LATIN CAPITAL LETTER E WITH OGONEK @@ -18,20 +20,28 @@ 004C 0335 ; [.1331.0020.0008.0141] # LATIN CAPITAL LETTER L WITH STROKE 0144 ; [.136E.0020.0002.0144] # LATIN SMALL LETTER N WITH ACUTE 006E 0301 ; [.136E.0020.0002.0144] # LATIN SMALL LETTER N WITH ACUTE +006E 0341 ; [.136E.0020.0002.0144] # LATIN SMALL LETTER N WITH ACUTE 0143 ; [.136E.0020.0008.0143] # LATIN CAPITAL LETTER N WITH ACUTE 004E 0301 ; [.136E.0020.0008.0143] # LATIN CAPITAL LETTER N WITH ACUTE +004E 0341 ; [.136E.0020.0008.0143] # LATIN CAPITAL LETTER N WITH ACUTE 00F3 ; [.138F.0020.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE 006F 0301 ; [.138F.0020.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE +006F 0341 ; [.138F.0020.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE 00D3 ; [.138F.0020.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE 004F 0301 ; [.138F.0020.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE +004F 0341 ; [.138F.0020.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE 015B ; [.1411.0020.0002.015B] # LATIN SMALL LETTER S WITH ACUTE 0073 0301 ; [.1411.0020.0002.015B] # LATIN SMALL LETTER S WITH ACUTE +0073 0341 ; [.1411.0020.0002.015B] # LATIN SMALL LETTER S WITH ACUTE 015A ; [.1411.0020.0008.015A] # LATIN CAPITAL LETTER S WITH ACUTE 0053 0301 ; [.1411.0020.0008.015A] # LATIN CAPITAL LETTER S WITH ACUTE +0053 0341 ; [.1411.0020.0008.015A] # LATIN CAPITAL LETTER S WITH ACUTE 017A ; [.14AE.0020.0002.017A] # LATIN SMALL LETTER Z WITH ACUTE 007A 0301 ; [.14AE.0020.0002.017A] # LATIN SMALL LETTER Z WITH ACUTE +007A 0341 ; [.14AE.0020.0002.017A] # LATIN SMALL LETTER Z WITH ACUTE 0179 ; [.14AE.0020.0008.0179] # LATIN CAPITAL LETTER Z WITH ACUTE 005A 0301 ; [.14AE.0020.0008.0179] # LATIN CAPITAL LETTER Z WITH ACUTE +005A 0341 ; [.14AE.0020.0008.0179] # LATIN CAPITAL LETTER Z WITH ACUTE 017C ; [.14AF.0020.0002.017C] # LATIN SMALL LETTER Z WITH DOT ABOVE 007A 0307 ; [.14AF.0020.0002.017C] # LATIN SMALL LETTER Z WITH DOT ABOVE 017B ; [.14AF.0020.0008.017B] # LATIN CAPITAL LETTER Z WITH DOT ABOVE diff --git a/cpan/Unicode-Collate/Collate/Locale/ru.pl b/cpan/Unicode-Collate/Collate/Locale/ru.pl new file mode 100644 index 0000000000..ea2eabde95 --- /dev/null +++ b/cpan/Unicode-Collate/Collate/Locale/ru.pl @@ -0,0 +1,35 @@ ++{ + suppress => [0x0400..0x0417, 0x041A..0x0437, 0x043A..0x045F], + entry => <<'ENTRY', # for DUCET v5.2.0 +04D1 ; [.15AC.0020.0002.0430][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER A WITH BREVE +04D0 ; [.15AC.0020.0008.0410][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER A WITH BREVE +04D3 ; [.15AC.0020.0002.0430][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER A WITH DIAERESIS +04D2 ; [.15AC.0020.0008.0410][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS +0453 ; [.15CC.0020.0002.0433][.0000.0032.0002.0301] # CYRILLIC SMALL LETTER GJE +0403 ; [.15CC.0020.0008.0413][.0000.0032.0002.0301] # CYRILLIC CAPITAL LETTER GJE +04D7 ; [.15F4.0020.0002.0435][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER IE WITH BREVE +04D6 ; [.15F4.0020.0008.0415][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER IE WITH BREVE +04DD ; [.1600.0020.0002.0436][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS +04DC ; [.1600.0020.0008.0416][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS +04DF ; [.160D.0020.0002.0437][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS +04DE ; [.160D.0020.0008.0417][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS +0457 ; [.1631.0020.0002.0456][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER YI +0407 ; [.1631.0020.0008.0406][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER YI +04E7 ; [.1692.0020.0002.043E][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER O WITH DIAERESIS +04E6 ; [.1692.0020.0008.041E][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS +045C ; [.1643.0020.0002.043A][.0000.0032.0002.0301] # CYRILLIC SMALL LETTER KJE +040C ; [.1643.0020.0008.041A][.0000.0032.0002.0301] # CYRILLIC CAPITAL LETTER KJE +045E ; [.16D4.0020.0002.0443][.0000.0037.0002.0306] # CYRILLIC SMALL LETTER SHORT U +040E ; [.16D4.0020.0008.0423][.0000.0037.0002.0306] # CYRILLIC CAPITAL LETTER SHORT U +04F1 ; [.16D4.0020.0002.0443][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER U WITH DIAERESIS +04F0 ; [.16D4.0020.0008.0423][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS +04F3 ; [.16D4.0020.0002.0443][.0000.004D.0002.030B] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE +04F2 ; [.16D4.0020.0008.0423][.0000.004D.0002.030B] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE +04F5 ; [.1725.0020.0002.0447][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS +04F4 ; [.1725.0020.0008.0427][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS +04F9 ; [.1758.0020.0002.044B][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS +04F8 ; [.1758.0020.0008.042B][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS +04ED ; [.176D.0020.0002.044D][.0000.0047.0002.0308] # CYRILLIC SMALL LETTER E WITH DIAERESIS +04EC ; [.176D.0020.0008.042D][.0000.0047.0002.0308] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS +ENTRY +}; diff --git a/cpan/Unicode-Collate/Collate/Locale/se.pl b/cpan/Unicode-Collate/Collate/Locale/se.pl index 5b8c8e4a3f..a37ed34baf 100644 --- a/cpan/Unicode-Collate/Collate/Locale/se.pl +++ b/cpan/Unicode-Collate/Collate/Locale/se.pl @@ -3,8 +3,10 @@ entry => <<'ENTRY', # for DUCET v5.2.0 00E1 ; [.1224.0020.0002.00E1] # LATIN SMALL LETTER A WITH ACUTE 0061 0301 ; [.1224.0020.0002.00E1] # LATIN SMALL LETTER A WITH ACUTE +0061 0341 ; [.1224.0020.0002.00E1] # LATIN SMALL LETTER A WITH ACUTE 00C1 ; [.1224.0020.0008.00C1] # LATIN CAPITAL LETTER A WITH ACUTE 0041 0301 ; [.1224.0020.0008.00C1] # LATIN CAPITAL LETTER A WITH ACUTE +0041 0341 ; [.1224.0020.0008.00C1] # LATIN CAPITAL LETTER A WITH ACUTE 010D ; [.124D.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON 0063 030C ; [.124D.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON 010C ; [.124D.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON @@ -31,8 +33,10 @@ 004B 030C ; [.132F.0020.0008.01E8] # LATIN CAPITAL LETTER K WITH CARON 0144 ; [.138A.0021.0002.0144] # LATIN SMALL LETTER N WITH ACUTE 006E 0301 ; [.138A.0021.0002.0144] # LATIN SMALL LETTER N WITH ACUTE +006E 0341 ; [.138A.0021.0002.0144] # LATIN SMALL LETTER N WITH ACUTE 0143 ; [.138A.0021.0008.0143] # LATIN CAPITAL LETTER N WITH ACUTE 004E 0301 ; [.138A.0021.0008.0143] # LATIN CAPITAL LETTER N WITH ACUTE +004E 0341 ; [.138A.0021.0008.0143] # LATIN CAPITAL LETTER N WITH ACUTE 00F1 ; [.138A.0022.0002.00F1] # LATIN SMALL LETTER N WITH TILDE 006E 0303 ; [.138A.0022.0002.00F1] # LATIN SMALL LETTER N WITH TILDE 00D1 ; [.138A.0022.0008.00D1] # LATIN CAPITAL LETTER N WITH TILDE diff --git a/cpan/Unicode-Collate/Collate/Locale/to.pl b/cpan/Unicode-Collate/Collate/Locale/to.pl index c52aa36839..af445a1c6e 100644 --- a/cpan/Unicode-Collate/Collate/Locale/to.pl +++ b/cpan/Unicode-Collate/Collate/Locale/to.pl @@ -11,41 +11,51 @@ 0061 0304 ; [.120F.0021.0002.0101] # LATIN SMALL LETTER A WITH MACRON 00E1 ; [.120F.0021.0003.00E1] # LATIN SMALL LETTER A WITH ACUTE 0061 0301 ; [.120F.0021.0003.00E1] # LATIN SMALL LETTER A WITH ACUTE +0061 0341 ; [.120F.0021.0003.00E1] # LATIN SMALL LETTER A WITH ACUTE 0100 ; [.120F.0021.0008.0100] # LATIN CAPITAL LETTER A WITH MACRON 0041 0304 ; [.120F.0021.0008.0100] # LATIN CAPITAL LETTER A WITH MACRON 00C1 ; [.120F.0021.0009.00C1] # LATIN CAPITAL LETTER A WITH ACUTE 0041 0301 ; [.120F.0021.0009.00C1] # LATIN CAPITAL LETTER A WITH ACUTE +0041 0341 ; [.120F.0021.0009.00C1] # LATIN CAPITAL LETTER A WITH ACUTE 0113 ; [.126B.0021.0002.0113] # LATIN SMALL LETTER E WITH MACRON 0065 0304 ; [.126B.0021.0002.0113] # LATIN SMALL LETTER E WITH MACRON 00E9 ; [.126B.0021.0003.00E9] # LATIN SMALL LETTER E WITH ACUTE 0065 0301 ; [.126B.0021.0003.00E9] # LATIN SMALL LETTER E WITH ACUTE +0065 0341 ; [.126B.0021.0003.00E9] # LATIN SMALL LETTER E WITH ACUTE 0112 ; [.126B.0021.0008.0112] # LATIN CAPITAL LETTER E WITH MACRON 0045 0304 ; [.126B.0021.0008.0112] # LATIN CAPITAL LETTER E WITH MACRON 00C9 ; [.126B.0021.0009.00C9] # LATIN CAPITAL LETTER E WITH ACUTE 0045 0301 ; [.126B.0021.0009.00C9] # LATIN CAPITAL LETTER E WITH ACUTE +0045 0341 ; [.126B.0021.0009.00C9] # LATIN CAPITAL LETTER E WITH ACUTE 012B ; [.12EC.0021.0002.012B] # LATIN SMALL LETTER I WITH MACRON 0069 0304 ; [.12EC.0021.0002.012B] # LATIN SMALL LETTER I WITH MACRON 00ED ; [.12EC.0021.0003.00ED] # LATIN SMALL LETTER I WITH ACUTE 0069 0301 ; [.12EC.0021.0003.00ED] # LATIN SMALL LETTER I WITH ACUTE +0069 0341 ; [.12EC.0021.0003.00ED] # LATIN SMALL LETTER I WITH ACUTE 012A ; [.12EC.0021.0008.012A] # LATIN CAPITAL LETTER I WITH MACRON 0049 0304 ; [.12EC.0021.0008.012A] # LATIN CAPITAL LETTER I WITH MACRON 00CD ; [.12EC.0021.0009.00CD] # LATIN CAPITAL LETTER I WITH ACUTE 0049 0301 ; [.12EC.0021.0009.00CD] # LATIN CAPITAL LETTER I WITH ACUTE +0049 0341 ; [.12EC.0021.0009.00CD] # LATIN CAPITAL LETTER I WITH ACUTE 014D ; [.138E.0021.0002.014D] # LATIN SMALL LETTER O WITH MACRON 006F 0304 ; [.138E.0021.0002.014D] # LATIN SMALL LETTER O WITH MACRON 00F3 ; [.138E.0021.0003.00F3] # LATIN SMALL LETTER O WITH ACUTE 006F 0301 ; [.138E.0021.0003.00F3] # LATIN SMALL LETTER O WITH ACUTE +006F 0341 ; [.138E.0021.0003.00F3] # LATIN SMALL LETTER O WITH ACUTE 014C ; [.138E.0021.0008.014C] # LATIN CAPITAL LETTER O WITH MACRON 004F 0304 ; [.138E.0021.0008.014C] # LATIN CAPITAL LETTER O WITH MACRON 00D3 ; [.138E.0021.0009.00D3] # LATIN CAPITAL LETTER O WITH ACUTE 004F 0301 ; [.138E.0021.0009.00D3] # LATIN CAPITAL LETTER O WITH ACUTE +004F 0341 ; [.138E.0021.0009.00D3] # LATIN CAPITAL LETTER O WITH ACUTE 016B ; [.1453.0021.0002.016B] # LATIN SMALL LETTER U WITH MACRON 0075 0304 ; [.1453.0021.0002.016B] # LATIN SMALL LETTER U WITH MACRON 00FA ; [.1453.0021.0003.00FA] # LATIN SMALL LETTER U WITH ACUTE 0075 0301 ; [.1453.0021.0003.00FA] # LATIN SMALL LETTER U WITH ACUTE +0075 0341 ; [.1453.0021.0003.00FA] # LATIN SMALL LETTER U WITH ACUTE 016A ; [.1453.0021.0008.016A] # LATIN CAPITAL LETTER U WITH MACRON 0055 0304 ; [.1453.0021.0008.016A] # LATIN CAPITAL LETTER U WITH MACRON 00DA ; [.1453.0021.0009.00DA] # LATIN CAPITAL LETTER U WITH ACUTE 0055 0301 ; [.1453.0021.0009.00DA] # LATIN CAPITAL LETTER U WITH ACUTE +0055 0341 ; [.1453.0021.0009.00DA] # LATIN CAPITAL LETTER U WITH ACUTE ENTRY }; diff --git a/cpan/Unicode-Collate/Collate/Locale/wo.pl b/cpan/Unicode-Collate/Collate/Locale/wo.pl index 941260cf7f..818a5c1179 100644 --- a/cpan/Unicode-Collate/Collate/Locale/wo.pl +++ b/cpan/Unicode-Collate/Collate/Locale/wo.pl @@ -3,12 +3,16 @@ entry => <<'ENTRY', # for DUCET v5.2.0 00E0 ; [.1210.0020.0002.00E0] # LATIN SMALL LETTER A WITH GRAVE 0061 0300 ; [.1210.0020.0002.00E0] # LATIN SMALL LETTER A WITH GRAVE +0061 0340 ; [.1210.0020.0002.00E0] # LATIN SMALL LETTER A WITH GRAVE 00C0 ; [.1210.0020.0008.00C0] # LATIN CAPITAL LETTER A WITH GRAVE 0041 0300 ; [.1210.0020.0008.00C0] # LATIN CAPITAL LETTER A WITH GRAVE +0041 0340 ; [.1210.0020.0008.00C0] # LATIN CAPITAL LETTER A WITH GRAVE 00E9 ; [.126C.0020.0002.00E9] # LATIN SMALL LETTER E WITH ACUTE 0065 0301 ; [.126C.0020.0002.00E9] # LATIN SMALL LETTER E WITH ACUTE +0065 0341 ; [.126C.0020.0002.00E9] # LATIN SMALL LETTER E WITH ACUTE 00C9 ; [.126C.0020.0008.00C9] # LATIN CAPITAL LETTER E WITH ACUTE 0045 0301 ; [.126C.0020.0008.00C9] # LATIN CAPITAL LETTER E WITH ACUTE +0045 0341 ; [.126C.0020.0008.00C9] # LATIN CAPITAL LETTER E WITH ACUTE 00EB ; [.126D.0020.0002.00EB] # LATIN SMALL LETTER E WITH DIAERESIS 0065 0308 ; [.126D.0020.0002.00EB] # LATIN SMALL LETTER E WITH DIAERESIS 00CB ; [.126D.0020.0008.00CB] # LATIN CAPITAL LETTER E WITH DIAERESIS @@ -19,7 +23,9 @@ 004E 0303 ; [.136E.0020.0008.00D1] # LATIN CAPITAL LETTER N WITH TILDE 00F3 ; [.138F.0020.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE 006F 0301 ; [.138F.0020.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE +006F 0341 ; [.138F.0020.0002.00F3] # LATIN SMALL LETTER O WITH ACUTE 00D3 ; [.138F.0020.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE 004F 0301 ; [.138F.0020.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE +004F 0341 ; [.138F.0020.0008.00D3] # LATIN CAPITAL LETTER O WITH ACUTE ENTRY }; diff --git a/cpan/Unicode-Collate/README b/cpan/Unicode-Collate/README index 2e12016669..9df8d22507 100644 --- a/cpan/Unicode-Collate/README +++ b/cpan/Unicode-Collate/README @@ -1,4 +1,4 @@ -Unicode/Collate version 0.62 +Unicode/Collate version 0.63 =============================== NAME diff --git a/cpan/Unicode-Collate/t/contract.t b/cpan/Unicode-Collate/t/contract.t index 9c55ecdc8b..e87239f38a 100644 --- a/cpan/Unicode-Collate/t/contract.t +++ b/cpan/Unicode-Collate/t/contract.t @@ -11,7 +11,7 @@ BEGIN { } use Test; -BEGIN { plan tests => 40 }; +BEGIN { plan tests => 44 }; use strict; use warnings; @@ -54,16 +54,16 @@ my $kjeNoN = Unicode::Collate->new( entry => $kjeEntry, ); -ok($kjeNoN->lt("\x{043A}", "\x{043A}\x{0301}")); -ok($kjeNoN->gt("\x{045C}", "\x{043A}\x{0334}\x{0301}")); -ok($kjeNoN->eq("\x{043A}", "\x{043A}\x{0334}\x{0301}")); -ok($kjeNoN->eq("\x{045C}", "\x{043A}\x{0301}\x{0334}")); +ok($kjeNoN->lt("\x{43A}", "\x{43A}\x{301}")); +ok($kjeNoN->gt("\x{45C}", "\x{43A}\x{334}\x{301}")); +ok($kjeNoN->eq("\x{43A}", "\x{43A}\x{334}\x{301}")); +ok($kjeNoN->eq("\x{45C}", "\x{43A}\x{301}\x{334}")); our %sortkeys; -$sortkeys{'KAac'} = $kjeNoN->viewSortKey("\x{043A}\x{0301}"); -$sortkeys{'KAta'} = $kjeNoN->viewSortKey("\x{043A}\x{0334}\x{0301}"); -$sortkeys{'KAat'} = $kjeNoN->viewSortKey("\x{043A}\x{0301}\x{0334}"); +$sortkeys{'KAac'} = $kjeNoN->viewSortKey("\x{43A}\x{301}"); +$sortkeys{'KAta'} = $kjeNoN->viewSortKey("\x{43A}\x{334}\x{301}"); +$sortkeys{'KAat'} = $kjeNoN->viewSortKey("\x{43A}\x{301}\x{334}"); eval { require Unicode::Normalize }; if (!$@) { @@ -72,10 +72,10 @@ if (!$@) { table => undef, entry => $kjeEntry, ); -ok($kjeNFD->lt("\x{043A}", "\x{043A}\x{0301}")); -ok($kjeNFD->eq("\x{045C}", "\x{043A}\x{0334}\x{0301}")); -ok($kjeNFD->lt("\x{043A}", "\x{043A}\x{0334}\x{0301}")); -ok($kjeNFD->eq("\x{045C}", "\x{043A}\x{0301}\x{0334}")); +ok($kjeNFD->lt("\x{43A}", "\x{43A}\x{301}")); +ok($kjeNFD->eq("\x{45C}", "\x{43A}\x{334}\x{301}")); +ok($kjeNFD->lt("\x{43A}", "\x{43A}\x{334}\x{301}")); +ok($kjeNFD->eq("\x{45C}", "\x{43A}\x{301}\x{334}")); my $aaNFD = Unicode::Collate->new( level => 1, @@ -113,14 +113,14 @@ else { } # again: loading Unicode::Normalize should not affect $kjeNoN. -ok($kjeNoN->lt("\x{043A}", "\x{043A}\x{0301}")); -ok($kjeNoN->gt("\x{045C}", "\x{043A}\x{0334}\x{0301}")); -ok($kjeNoN->eq("\x{043A}", "\x{043A}\x{0334}\x{0301}")); -ok($kjeNoN->eq("\x{045C}", "\x{043A}\x{0301}\x{0334}")); +ok($kjeNoN->lt("\x{43A}", "\x{43A}\x{301}")); +ok($kjeNoN->gt("\x{45C}", "\x{43A}\x{334}\x{301}")); +ok($kjeNoN->eq("\x{43A}", "\x{43A}\x{334}\x{301}")); +ok($kjeNoN->eq("\x{45C}", "\x{43A}\x{301}\x{334}")); -ok($sortkeys{'KAac'}, $kjeNoN->viewSortKey("\x{043A}\x{0301}")); -ok($sortkeys{'KAta'}, $kjeNoN->viewSortKey("\x{043A}\x{0334}\x{0301}")); -ok($sortkeys{'KAat'}, $kjeNoN->viewSortKey("\x{043A}\x{0301}\x{0334}")); +ok($sortkeys{'KAac'}, $kjeNoN->viewSortKey("\x{43A}\x{301}")); +ok($sortkeys{'KAta'}, $kjeNoN->viewSortKey("\x{43A}\x{334}\x{301}")); +ok($sortkeys{'KAat'}, $kjeNoN->viewSortKey("\x{43A}\x{301}\x{334}")); my $aaNoN = Unicode::Collate->new( level => 1, @@ -138,3 +138,18 @@ ok($aaNoN->lt("Z", "A\x{30A}\x{327}")); ok($aaNoN->eq("A", "A\x{31A}\x{30A}")); ok($aaNoN->lt("Z", "A\x{30A}\x{31A}")); +# suppress contractions + +my $kjeSup = Unicode::Collate->new( + level => 1, + table => undef, + normalization => undef, + entry => $kjeEntry, + 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}")); + diff --git a/cpan/Unicode-Collate/t/loc_be.t b/cpan/Unicode-Collate/t/loc_be.t new file mode 100644 index 0000000000..90f93dbe1b --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_be.t @@ -0,0 +1,162 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 130; + +my $objBe = Unicode::Collate::Locale-> + new(locale => 'BE', normalization => undef); + +ok(1); +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}")); + +# 6 + +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{453}", "\x{433}")); +ok($objBe->eq("\x{403}", "\x{413}")); +ok($objBe->eq("\x{4D7}", "\x{435}")); +ok($objBe->eq("\x{4D6}", "\x{415}")); +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{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{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{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}")); + +# 36 + +$objBe->change(level => 2); + +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{453}", "\x{433}")); +ok($objBe->gt("\x{403}", "\x{413}")); +ok($objBe->gt("\x{4D7}", "\x{435}")); +ok($objBe->gt("\x{4D6}", "\x{415}")); +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{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{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{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}")); + +# 66 + +$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 diff --git a/cpan/Unicode-Collate/t/loc_bg.t b/cpan/Unicode-Collate/t/loc_bg.t new file mode 100644 index 0000000000..59acb41589 --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_bg.t @@ -0,0 +1,162 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 130; + +my $objBg = Unicode::Collate::Locale-> + new(locale => 'BG', normalization => undef); + +ok(1); +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}")); + +# 6 + +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{453}", "\x{433}")); +ok($objBg->eq("\x{403}", "\x{413}")); +ok($objBg->eq("\x{4D7}", "\x{435}")); +ok($objBg->eq("\x{4D6}", "\x{415}")); +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{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{45C}", "\x{43A}")); +ok($objBg->eq("\x{40C}", "\x{41A}")); +ok($objBg->eq("\x{45E}", "\x{443}")); +ok($objBg->eq("\x{40E}", "\x{423}")); +ok($objBg->eq("\x{4F1}", "\x{443}")); +ok($objBg->eq("\x{4F0}", "\x{423}")); +ok($objBg->eq("\x{4F3}", "\x{443}")); +ok($objBg->eq("\x{4F2}", "\x{423}")); +ok($objBg->eq("\x{4F5}", "\x{447}")); +ok($objBg->eq("\x{4F4}", "\x{427}")); +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}")); + +# 36 + +$objBg->change(level => 2); + +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{453}", "\x{433}")); +ok($objBg->gt("\x{403}", "\x{413}")); +ok($objBg->gt("\x{4D7}", "\x{435}")); +ok($objBg->gt("\x{4D6}", "\x{415}")); +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{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{45C}", "\x{43A}")); +ok($objBg->gt("\x{40C}", "\x{41A}")); +ok($objBg->gt("\x{45E}", "\x{443}")); +ok($objBg->gt("\x{40E}", "\x{423}")); +ok($objBg->gt("\x{4F1}", "\x{443}")); +ok($objBg->gt("\x{4F0}", "\x{423}")); +ok($objBg->gt("\x{4F3}", "\x{443}")); +ok($objBg->gt("\x{4F2}", "\x{423}")); +ok($objBg->gt("\x{4F5}", "\x{447}")); +ok($objBg->gt("\x{4F4}", "\x{427}")); +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}")); + +# 66 + +$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 diff --git a/cpan/Unicode-Collate/t/loc_cyrl.t b/cpan/Unicode-Collate/t/loc_cyrl.t new file mode 100644 index 0000000000..c7223ac145 --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_cyrl.t @@ -0,0 +1,128 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 104; + +my $objNoSuppress = Unicode::Collate::Locale-> + new(locale => 'NoSuppress', normalization => undef); + +ok(1); +ok($objNoSuppress->getlocale, 'default'); + +$objNoSuppress->change(level => 1); + +ok($objNoSuppress->ne("\x{4D1}", "\x{430}")); +ok($objNoSuppress->ne("\x{4D0}", "\x{410}")); +ok($objNoSuppress->ne("\x{4D3}", "\x{430}")); +ok($objNoSuppress->ne("\x{4D2}", "\x{410}")); +ok($objNoSuppress->ne("\x{453}", "\x{433}")); +ok($objNoSuppress->ne("\x{403}", "\x{413}")); +ok($objNoSuppress->ne("\x{4D7}", "\x{435}")); +ok($objNoSuppress->ne("\x{4D6}", "\x{415}")); +ok($objNoSuppress->ne("\x{4DD}", "\x{436}")); +ok($objNoSuppress->ne("\x{4DC}", "\x{416}")); +ok($objNoSuppress->ne("\x{4DF}", "\x{437}")); +ok($objNoSuppress->ne("\x{4DE}", "\x{417}")); +ok($objNoSuppress->ne("\x{4E5}", "\x{438}")); +ok($objNoSuppress->ne("\x{4E4}", "\x{418}")); +ok($objNoSuppress->ne("\x{457}", "\x{456}")); +ok($objNoSuppress->ne("\x{407}", "\x{406}")); +ok($objNoSuppress->ne("\x{439}", "\x{438}")); +ok($objNoSuppress->ne("\x{419}", "\x{418}")); +ok($objNoSuppress->ne("\x{4E7}", "\x{43E}")); +ok($objNoSuppress->ne("\x{4E6}", "\x{41E}")); +ok($objNoSuppress->ne("\x{45C}", "\x{43A}")); +ok($objNoSuppress->ne("\x{40C}", "\x{41A}")); +ok($objNoSuppress->ne("\x{45E}", "\x{443}")); +ok($objNoSuppress->ne("\x{40E}", "\x{423}")); +ok($objNoSuppress->ne("\x{4F1}", "\x{443}")); +ok($objNoSuppress->ne("\x{4F0}", "\x{423}")); +ok($objNoSuppress->ne("\x{4F3}", "\x{443}")); +ok($objNoSuppress->ne("\x{4F2}", "\x{423}")); +ok($objNoSuppress->ne("\x{4F5}", "\x{447}")); +ok($objNoSuppress->ne("\x{4F4}", "\x{427}")); +ok($objNoSuppress->ne("\x{4F9}", "\x{44B}")); +ok($objNoSuppress->ne("\x{4F8}", "\x{42B}")); +ok($objNoSuppress->ne("\x{4ED}", "\x{44D}")); +ok($objNoSuppress->ne("\x{4EC}", "\x{42D}")); + +# 36 + +$objNoSuppress->change(level => 3); + +ok($objNoSuppress->eq("\x{4D1}", "\x{430}\x{306}")); +ok($objNoSuppress->eq("\x{4D0}", "\x{410}\x{306}")); +ok($objNoSuppress->eq("\x{4D3}", "\x{430}\x{308}")); +ok($objNoSuppress->eq("\x{4D2}", "\x{410}\x{308}")); +ok($objNoSuppress->eq("\x{453}", "\x{433}\x{301}")); +ok($objNoSuppress->eq("\x{403}", "\x{413}\x{301}")); +ok($objNoSuppress->eq("\x{4D7}", "\x{435}\x{306}")); +ok($objNoSuppress->eq("\x{4D6}", "\x{415}\x{306}")); +ok($objNoSuppress->eq("\x{4DD}", "\x{436}\x{308}")); +ok($objNoSuppress->eq("\x{4DC}", "\x{416}\x{308}")); +ok($objNoSuppress->eq("\x{4DF}", "\x{437}\x{308}")); +ok($objNoSuppress->eq("\x{4DE}", "\x{417}\x{308}")); +ok($objNoSuppress->eq("\x{4E5}", "\x{438}\x{308}")); +ok($objNoSuppress->eq("\x{4E4}", "\x{418}\x{308}")); +ok($objNoSuppress->eq("\x{457}", "\x{456}\x{308}")); +ok($objNoSuppress->eq("\x{407}", "\x{406}\x{308}")); +ok($objNoSuppress->eq("\x{439}", "\x{438}\x{306}")); +ok($objNoSuppress->eq("\x{419}", "\x{418}\x{306}")); +ok($objNoSuppress->eq("\x{4E7}", "\x{43E}\x{308}")); +ok($objNoSuppress->eq("\x{4E6}", "\x{41E}\x{308}")); +ok($objNoSuppress->eq("\x{45C}", "\x{43A}\x{301}")); +ok($objNoSuppress->eq("\x{40C}", "\x{41A}\x{301}")); +ok($objNoSuppress->eq("\x{45E}", "\x{443}\x{306}")); +ok($objNoSuppress->eq("\x{40E}", "\x{423}\x{306}")); +ok($objNoSuppress->eq("\x{4F1}", "\x{443}\x{308}")); +ok($objNoSuppress->eq("\x{4F0}", "\x{423}\x{308}")); +ok($objNoSuppress->eq("\x{4F3}", "\x{443}\x{30B}")); +ok($objNoSuppress->eq("\x{4F2}", "\x{423}\x{30B}")); +ok($objNoSuppress->eq("\x{4F5}", "\x{447}\x{308}")); +ok($objNoSuppress->eq("\x{4F4}", "\x{427}\x{308}")); +ok($objNoSuppress->eq("\x{4F9}", "\x{44B}\x{308}")); +ok($objNoSuppress->eq("\x{4F8}", "\x{42B}\x{308}")); +ok($objNoSuppress->eq("\x{4ED}", "\x{44D}\x{308}")); +ok($objNoSuppress->eq("\x{4EC}", "\x{42D}\x{308}")); + +# 70 + +ok($objNoSuppress->ne("\x{4D1}", "\x{430}\0\x{306}")); +ok($objNoSuppress->ne("\x{4D0}", "\x{410}\0\x{306}")); +ok($objNoSuppress->ne("\x{4D3}", "\x{430}\0\x{308}")); +ok($objNoSuppress->ne("\x{4D2}", "\x{410}\0\x{308}")); +ok($objNoSuppress->ne("\x{453}", "\x{433}\0\x{301}")); +ok($objNoSuppress->ne("\x{403}", "\x{413}\0\x{301}")); +ok($objNoSuppress->ne("\x{4D7}", "\x{435}\0\x{306}")); +ok($objNoSuppress->ne("\x{4D6}", "\x{415}\0\x{306}")); +ok($objNoSuppress->ne("\x{4DD}", "\x{436}\0\x{308}")); +ok($objNoSuppress->ne("\x{4DC}", "\x{416}\0\x{308}")); +ok($objNoSuppress->ne("\x{4DF}", "\x{437}\0\x{308}")); +ok($objNoSuppress->ne("\x{4DE}", "\x{417}\0\x{308}")); +ok($objNoSuppress->ne("\x{4E5}", "\x{438}\0\x{308}")); +ok($objNoSuppress->ne("\x{4E4}", "\x{418}\0\x{308}")); +ok($objNoSuppress->ne("\x{457}", "\x{456}\0\x{308}")); +ok($objNoSuppress->ne("\x{407}", "\x{406}\0\x{308}")); +ok($objNoSuppress->ne("\x{439}", "\x{438}\0\x{306}")); +ok($objNoSuppress->ne("\x{419}", "\x{418}\0\x{306}")); +ok($objNoSuppress->ne("\x{4E7}", "\x{43E}\0\x{308}")); +ok($objNoSuppress->ne("\x{4E6}", "\x{41E}\0\x{308}")); +ok($objNoSuppress->ne("\x{45C}", "\x{43A}\0\x{301}")); +ok($objNoSuppress->ne("\x{40C}", "\x{41A}\0\x{301}")); +ok($objNoSuppress->ne("\x{45E}", "\x{443}\0\x{306}")); +ok($objNoSuppress->ne("\x{40E}", "\x{423}\0\x{306}")); +ok($objNoSuppress->ne("\x{4F1}", "\x{443}\0\x{308}")); +ok($objNoSuppress->ne("\x{4F0}", "\x{423}\0\x{308}")); +ok($objNoSuppress->ne("\x{4F3}", "\x{443}\0\x{30B}")); +ok($objNoSuppress->ne("\x{4F2}", "\x{423}\0\x{30B}")); +ok($objNoSuppress->ne("\x{4F5}", "\x{447}\0\x{308}")); +ok($objNoSuppress->ne("\x{4F4}", "\x{427}\0\x{308}")); +ok($objNoSuppress->ne("\x{4F9}", "\x{44B}\0\x{308}")); +ok($objNoSuppress->ne("\x{4F8}", "\x{42B}\0\x{308}")); +ok($objNoSuppress->ne("\x{4ED}", "\x{44D}\0\x{308}")); +ok($objNoSuppress->ne("\x{4EC}", "\x{42D}\0\x{308}")); + +# 104 diff --git a/cpan/Unicode-Collate/t/loc_hr.t b/cpan/Unicode-Collate/t/loc_hr.t index beded45b92..026657e73e 100644 --- a/cpan/Unicode-Collate/t/loc_hr.t +++ b/cpan/Unicode-Collate/t/loc_hr.t @@ -4,7 +4,7 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 86; +plan tests => 88; my $objHr = Unicode::Collate::Locale-> new(locale => 'HR', normalization => undef); @@ -77,7 +77,9 @@ ok($objHr->lt("z\x{30C}", "Z\x{30C}")); ok($objHr->eq("c\x{30C}", "\x{10D}")); ok($objHr->eq("C\x{30C}", "\x{10C}")); ok($objHr->eq("c\x{301}", "\x{107}")); +ok($objHr->eq("c\x{341}", "\x{107}")); ok($objHr->eq("C\x{301}", "\x{106}")); +ok($objHr->eq("C\x{341}", "\x{106}")); ok($objHr->eq("dz\x{30C}", "\x{1C6}")); ok($objHr->eq("Dz\x{30C}", "\x{1C5}")); ok($objHr->eq("DZ\x{30C}", "\x{1C4}")); @@ -98,7 +100,7 @@ ok($objHr->eq("S\x{30C}", "\x{160}")); ok($objHr->eq("z\x{30C}", "\x{17E}")); ok($objHr->eq("Z\x{30C}", "\x{17D}")); -# 72 +# 74 $objHr->change(upper_before_lower => 1); @@ -117,4 +119,4 @@ ok($objHr->gt("Nj", "NJ")); ok($objHr->gt("s\x{30C}", "S\x{30C}")); ok($objHr->gt("z\x{30C}", "Z\x{30C}")); -# 86 +# 88 diff --git a/cpan/Unicode-Collate/t/loc_is.t b/cpan/Unicode-Collate/t/loc_is.t index 6e490a3458..e97357caf9 100644 --- a/cpan/Unicode-Collate/t/loc_is.t +++ b/cpan/Unicode-Collate/t/loc_is.t @@ -4,7 +4,7 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 98; +plan tests => 110; my $eth = pack 'U', 0xF0; my $ETH = pack 'U', 0xD0; @@ -105,19 +105,31 @@ ok($objIs->lt($arng, $Arng)); # 57 ok($objIs->eq("a\x{301}", pack('U', 0xE1))); +ok($objIs->eq("a\x{341}", pack('U', 0xE1))); ok($objIs->eq("A\x{301}", pack('U', 0xC1))); +ok($objIs->eq("A\x{341}", pack('U', 0xC1))); ok($objIs->eq("d\x{335}", "\x{111}")); ok($objIs->eq("D\x{335}", "\x{110}")); ok($objIs->eq("e\x{301}", pack('U', 0xE9))); +ok($objIs->eq("e\x{341}", pack('U', 0xE9))); ok($objIs->eq("E\x{301}", pack('U', 0xC9))); +ok($objIs->eq("E\x{341}", pack('U', 0xC9))); ok($objIs->eq("i\x{301}", pack('U', 0xED))); +ok($objIs->eq("i\x{341}", pack('U', 0xED))); ok($objIs->eq("I\x{301}", pack('U', 0xCD))); +ok($objIs->eq("I\x{341}", pack('U', 0xCD))); ok($objIs->eq("o\x{301}", pack('U', 0xF3))); +ok($objIs->eq("o\x{341}", pack('U', 0xF3))); ok($objIs->eq("O\x{301}", pack('U', 0xD3))); +ok($objIs->eq("O\x{341}", pack('U', 0xD3))); ok($objIs->eq("u\x{301}", pack('U', 0xFA))); +ok($objIs->eq("u\x{341}", pack('U', 0xFA))); ok($objIs->eq("U\x{301}", pack('U', 0xDA))); +ok($objIs->eq("U\x{341}", pack('U', 0xDA))); ok($objIs->eq("y\x{301}", pack('U', 0xFD))); +ok($objIs->eq("y\x{341}", pack('U', 0xFD))); ok($objIs->eq("Y\x{301}", pack('U', 0xDD))); +ok($objIs->eq("Y\x{341}", pack('U', 0xDD))); ok($objIs->eq("a\x{308}", $auml)); ok($objIs->eq("A\x{308}", $Auml)); ok($objIs->eq("o\x{308}", $ouml)); @@ -127,7 +139,7 @@ ok($objIs->eq("O\x{338}", $Ostk)); ok($objIs->eq("a\x{30A}", $arng)); ok($objIs->eq("A\x{30A}", $Arng)); -# 79 +# 91 ok($objIs->eq("\x{1FD}", "$ae\x{301}")); ok($objIs->eq("\x{1FC}", "$AE\x{301}")); @@ -143,7 +155,7 @@ 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}")); -# 92 +# 104 $objIs->change(upper_before_lower => 1); @@ -154,4 +166,4 @@ ok($objIs->gt($ouml, $Ouml)); ok($objIs->gt($ostk, $Ostk)); ok($objIs->gt($arng, $Arng)); -# 98 +# 110 diff --git a/cpan/Unicode-Collate/t/loc_kk.t b/cpan/Unicode-Collate/t/loc_kk.t new file mode 100644 index 0000000000..ecdfd6e95f --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_kk.t @@ -0,0 +1,185 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 149; + +my $objKk = Unicode::Collate::Locale-> + new(locale => 'KK', normalization => undef); + +ok(1); +ok($objKk->getlocale, 'kk'); + +$objKk->change(level => 1); + +ok($objKk->lt("\x{43E}", "\x{4E9}")); +ok($objKk->gt("\x{43F}", "\x{4E9}")); +ok($objKk->lt("\x{443}", "\x{4B1}")); +ok($objKk->gt("\x{4AF}", "\x{4B1}")); +ok($objKk->lt("\x{44B}", "\x{456}")); +ok($objKk->gt("\x{44C}", "\x{456}")); + +# 8 + +ok($objKk->eq("\x{4D1}", "\x{430}")); +ok($objKk->eq("\x{4D0}", "\x{410}")); +ok($objKk->eq("\x{4D3}", "\x{430}")); +ok($objKk->eq("\x{4D2}", "\x{410}")); +ok($objKk->eq("\x{453}", "\x{433}")); +ok($objKk->eq("\x{403}", "\x{413}")); +ok($objKk->eq("\x{4D7}", "\x{435}")); +ok($objKk->eq("\x{4D6}", "\x{415}")); +ok($objKk->eq("\x{4DD}", "\x{436}")); +ok($objKk->eq("\x{4DC}", "\x{416}")); +ok($objKk->eq("\x{4DF}", "\x{437}")); +ok($objKk->eq("\x{4DE}", "\x{417}")); +ok($objKk->eq("\x{4E5}", "\x{438}")); +ok($objKk->eq("\x{4E4}", "\x{418}")); +ok($objKk->eq("\x{457}", "\x{456}")); +ok($objKk->eq("\x{407}", "\x{406}")); +ok($objKk->eq("\x{439}", "\x{438}")); +ok($objKk->eq("\x{419}", "\x{418}")); +ok($objKk->eq("\x{4E7}", "\x{43E}")); +ok($objKk->eq("\x{4E6}", "\x{41E}")); +ok($objKk->eq("\x{45C}", "\x{43A}")); +ok($objKk->eq("\x{40C}", "\x{41A}")); +ok($objKk->eq("\x{45E}", "\x{443}")); +ok($objKk->eq("\x{40E}", "\x{423}")); +ok($objKk->eq("\x{4F1}", "\x{443}")); +ok($objKk->eq("\x{4F0}", "\x{423}")); +ok($objKk->eq("\x{4F3}", "\x{443}")); +ok($objKk->eq("\x{4F2}", "\x{423}")); +ok($objKk->eq("\x{4F5}", "\x{447}")); +ok($objKk->eq("\x{4F4}", "\x{427}")); +ok($objKk->eq("\x{4F9}", "\x{44B}")); +ok($objKk->eq("\x{4F8}", "\x{42B}")); +ok($objKk->eq("\x{4ED}", "\x{44D}")); +ok($objKk->eq("\x{4EC}", "\x{42D}")); + +# 42 + +$objKk->change(level => 2); + +ok($objKk->gt("\x{4D1}", "\x{430}")); +ok($objKk->gt("\x{4D0}", "\x{410}")); +ok($objKk->gt("\x{4D3}", "\x{430}")); +ok($objKk->gt("\x{4D2}", "\x{410}")); +ok($objKk->gt("\x{453}", "\x{433}")); +ok($objKk->gt("\x{403}", "\x{413}")); +ok($objKk->gt("\x{4D7}", "\x{435}")); +ok($objKk->gt("\x{4D6}", "\x{415}")); +ok($objKk->gt("\x{4DD}", "\x{436}")); +ok($objKk->gt("\x{4DC}", "\x{416}")); +ok($objKk->gt("\x{4DF}", "\x{437}")); +ok($objKk->gt("\x{4DE}", "\x{417}")); +ok($objKk->gt("\x{4E5}", "\x{438}")); +ok($objKk->gt("\x{4E4}", "\x{418}")); +ok($objKk->gt("\x{457}", "\x{456}")); +ok($objKk->gt("\x{407}", "\x{406}")); +ok($objKk->gt("\x{439}", "\x{438}")); +ok($objKk->gt("\x{419}", "\x{418}")); +ok($objKk->gt("\x{4E7}", "\x{43E}")); +ok($objKk->gt("\x{4E6}", "\x{41E}")); +ok($objKk->gt("\x{45C}", "\x{43A}")); +ok($objKk->gt("\x{40C}", "\x{41A}")); +ok($objKk->gt("\x{45E}", "\x{443}")); +ok($objKk->gt("\x{40E}", "\x{423}")); +ok($objKk->gt("\x{4F1}", "\x{443}")); +ok($objKk->gt("\x{4F0}", "\x{423}")); +ok($objKk->gt("\x{4F3}", "\x{443}")); +ok($objKk->gt("\x{4F2}", "\x{423}")); +ok($objKk->gt("\x{4F5}", "\x{447}")); +ok($objKk->gt("\x{4F4}", "\x{427}")); +ok($objKk->gt("\x{4F9}", "\x{44B}")); +ok($objKk->gt("\x{4F8}", "\x{42B}")); +ok($objKk->gt("\x{4ED}", "\x{44D}")); +ok($objKk->gt("\x{4EC}", "\x{42D}")); + +# 76 + +$objKk->change(level => 3); + +ok($objKk->lt("\x{4E9}", "\x{4E8}")); +ok($objKk->lt("\x{4B1}", "\x{4B0}")); +ok($objKk->lt("\x{456}", "\x{406}")); + +ok($objKk->eq("\x{4EB}", "\x{4E9}\x{308}")); +ok($objKk->eq("\x{4EA}", "\x{4E8}\x{308}")); + +# 81 + +ok($objKk->eq("\x{4D1}", "\x{430}\x{306}")); +ok($objKk->eq("\x{4D0}", "\x{410}\x{306}")); +ok($objKk->eq("\x{4D3}", "\x{430}\x{308}")); +ok($objKk->eq("\x{4D2}", "\x{410}\x{308}")); +ok($objKk->eq("\x{453}", "\x{433}\x{301}")); +ok($objKk->eq("\x{403}", "\x{413}\x{301}")); +ok($objKk->eq("\x{4D7}", "\x{435}\x{306}")); +ok($objKk->eq("\x{4D6}", "\x{415}\x{306}")); +ok($objKk->eq("\x{4DD}", "\x{436}\x{308}")); +ok($objKk->eq("\x{4DC}", "\x{416}\x{308}")); +ok($objKk->eq("\x{4DF}", "\x{437}\x{308}")); +ok($objKk->eq("\x{4DE}", "\x{417}\x{308}")); +ok($objKk->eq("\x{4E5}", "\x{438}\x{308}")); +ok($objKk->eq("\x{4E4}", "\x{418}\x{308}")); +ok($objKk->eq("\x{457}", "\x{456}\x{308}")); +ok($objKk->eq("\x{407}", "\x{406}\x{308}")); +ok($objKk->eq("\x{439}", "\x{438}\x{306}")); +ok($objKk->eq("\x{419}", "\x{418}\x{306}")); +ok($objKk->eq("\x{4E7}", "\x{43E}\x{308}")); +ok($objKk->eq("\x{4E6}", "\x{41E}\x{308}")); +ok($objKk->eq("\x{45C}", "\x{43A}\x{301}")); +ok($objKk->eq("\x{40C}", "\x{41A}\x{301}")); +ok($objKk->eq("\x{45E}", "\x{443}\x{306}")); +ok($objKk->eq("\x{40E}", "\x{423}\x{306}")); +ok($objKk->eq("\x{4F1}", "\x{443}\x{308}")); +ok($objKk->eq("\x{4F0}", "\x{423}\x{308}")); +ok($objKk->eq("\x{4F3}", "\x{443}\x{30B}")); +ok($objKk->eq("\x{4F2}", "\x{423}\x{30B}")); +ok($objKk->eq("\x{4F5}", "\x{447}\x{308}")); +ok($objKk->eq("\x{4F4}", "\x{427}\x{308}")); +ok($objKk->eq("\x{4F9}", "\x{44B}\x{308}")); +ok($objKk->eq("\x{4F8}", "\x{42B}\x{308}")); +ok($objKk->eq("\x{4ED}", "\x{44D}\x{308}")); +ok($objKk->eq("\x{4EC}", "\x{42D}\x{308}")); + +# 115 + +ok($objKk->eq("\x{4D1}", "\x{430}\0\x{306}")); +ok($objKk->eq("\x{4D0}", "\x{410}\0\x{306}")); +ok($objKk->eq("\x{4D3}", "\x{430}\0\x{308}")); +ok($objKk->eq("\x{4D2}", "\x{410}\0\x{308}")); +ok($objKk->eq("\x{453}", "\x{433}\0\x{301}")); +ok($objKk->eq("\x{403}", "\x{413}\0\x{301}")); +ok($objKk->eq("\x{4D7}", "\x{435}\0\x{306}")); +ok($objKk->eq("\x{4D6}", "\x{415}\0\x{306}")); +ok($objKk->eq("\x{4DD}", "\x{436}\0\x{308}")); +ok($objKk->eq("\x{4DC}", "\x{416}\0\x{308}")); +ok($objKk->eq("\x{4DF}", "\x{437}\0\x{308}")); +ok($objKk->eq("\x{4DE}", "\x{417}\0\x{308}")); +ok($objKk->eq("\x{4E5}", "\x{438}\0\x{308}")); +ok($objKk->eq("\x{4E4}", "\x{418}\0\x{308}")); +ok($objKk->eq("\x{457}", "\x{456}\0\x{308}")); +ok($objKk->eq("\x{407}", "\x{406}\0\x{308}")); +ok($objKk->eq("\x{439}", "\x{438}\0\x{306}")); +ok($objKk->eq("\x{419}", "\x{418}\0\x{306}")); +ok($objKk->eq("\x{4E7}", "\x{43E}\0\x{308}")); +ok($objKk->eq("\x{4E6}", "\x{41E}\0\x{308}")); +ok($objKk->eq("\x{45C}", "\x{43A}\0\x{301}")); +ok($objKk->eq("\x{40C}", "\x{41A}\0\x{301}")); +ok($objKk->eq("\x{45E}", "\x{443}\0\x{306}")); +ok($objKk->eq("\x{40E}", "\x{423}\0\x{306}")); +ok($objKk->eq("\x{4F1}", "\x{443}\0\x{308}")); +ok($objKk->eq("\x{4F0}", "\x{423}\0\x{308}")); +ok($objKk->eq("\x{4F3}", "\x{443}\0\x{30B}")); +ok($objKk->eq("\x{4F2}", "\x{423}\0\x{30B}")); +ok($objKk->eq("\x{4F5}", "\x{447}\0\x{308}")); +ok($objKk->eq("\x{4F4}", "\x{427}\0\x{308}")); +ok($objKk->eq("\x{4F9}", "\x{44B}\0\x{308}")); +ok($objKk->eq("\x{4F8}", "\x{42B}\0\x{308}")); +ok($objKk->eq("\x{4ED}", "\x{44D}\0\x{308}")); +ok($objKk->eq("\x{4EC}", "\x{42D}\0\x{308}")); + +# 149 diff --git a/cpan/Unicode-Collate/t/loc_mk.t b/cpan/Unicode-Collate/t/loc_mk.t new file mode 100644 index 0000000000..87164baa25 --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_mk.t @@ -0,0 +1,162 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 130; + +my $objMk = Unicode::Collate::Locale-> + new(locale => 'MK', normalization => undef); + +ok(1); +ok($objMk->getlocale, 'mk'); + +$objMk->change(level => 1); + +ok($objMk->gt("\x{4E5}", "\x{438}")); +ok($objMk->gt("\x{4E4}", "\x{418}")); +ok($objMk->gt("\x{439}", "\x{438}")); +ok($objMk->gt("\x{419}", "\x{418}")); + +# 6 + +ok($objMk->eq("\x{4D1}", "\x{430}")); +ok($objMk->eq("\x{4D0}", "\x{410}")); +ok($objMk->eq("\x{4D3}", "\x{430}")); +ok($objMk->eq("\x{4D2}", "\x{410}")); +ok($objMk->eq("\x{453}", "\x{433}")); +ok($objMk->eq("\x{403}", "\x{413}")); +ok($objMk->eq("\x{4D7}", "\x{435}")); +ok($objMk->eq("\x{4D6}", "\x{415}")); +ok($objMk->eq("\x{4DD}", "\x{436}")); +ok($objMk->eq("\x{4DC}", "\x{416}")); +ok($objMk->eq("\x{4DF}", "\x{437}")); +ok($objMk->eq("\x{4DE}", "\x{417}")); +ok($objMk->eq("\x{457}", "\x{456}")); +ok($objMk->eq("\x{407}", "\x{406}")); +ok($objMk->eq("\x{4E7}", "\x{43E}")); +ok($objMk->eq("\x{4E6}", "\x{41E}")); +ok($objMk->eq("\x{45C}", "\x{43A}")); +ok($objMk->eq("\x{40C}", "\x{41A}")); +ok($objMk->eq("\x{45E}", "\x{443}")); +ok($objMk->eq("\x{40E}", "\x{423}")); +ok($objMk->eq("\x{4F1}", "\x{443}")); +ok($objMk->eq("\x{4F0}", "\x{423}")); +ok($objMk->eq("\x{4F3}", "\x{443}")); +ok($objMk->eq("\x{4F2}", "\x{423}")); +ok($objMk->eq("\x{4F5}", "\x{447}")); +ok($objMk->eq("\x{4F4}", "\x{427}")); +ok($objMk->eq("\x{4F9}", "\x{44B}")); +ok($objMk->eq("\x{4F8}", "\x{42B}")); +ok($objMk->eq("\x{4ED}", "\x{44D}")); +ok($objMk->eq("\x{4EC}", "\x{42D}")); + +# 36 + +$objMk->change(level => 2); + +ok($objMk->gt("\x{4D1}", "\x{430}")); +ok($objMk->gt("\x{4D0}", "\x{410}")); +ok($objMk->gt("\x{4D3}", "\x{430}")); +ok($objMk->gt("\x{4D2}", "\x{410}")); +ok($objMk->gt("\x{453}", "\x{433}")); +ok($objMk->gt("\x{403}", "\x{413}")); +ok($objMk->gt("\x{4D7}", "\x{435}")); +ok($objMk->gt("\x{4D6}", "\x{415}")); +ok($objMk->gt("\x{4DD}", "\x{436}")); +ok($objMk->gt("\x{4DC}", "\x{416}")); +ok($objMk->gt("\x{4DF}", "\x{437}")); +ok($objMk->gt("\x{4DE}", "\x{417}")); +ok($objMk->gt("\x{457}", "\x{456}")); +ok($objMk->gt("\x{407}", "\x{406}")); +ok($objMk->gt("\x{4E7}", "\x{43E}")); +ok($objMk->gt("\x{4E6}", "\x{41E}")); +ok($objMk->gt("\x{45C}", "\x{43A}")); +ok($objMk->gt("\x{40C}", "\x{41A}")); +ok($objMk->gt("\x{45E}", "\x{443}")); +ok($objMk->gt("\x{40E}", "\x{423}")); +ok($objMk->gt("\x{4F1}", "\x{443}")); +ok($objMk->gt("\x{4F0}", "\x{423}")); +ok($objMk->gt("\x{4F3}", "\x{443}")); +ok($objMk->gt("\x{4F2}", "\x{423}")); +ok($objMk->gt("\x{4F5}", "\x{447}")); +ok($objMk->gt("\x{4F4}", "\x{427}")); +ok($objMk->gt("\x{4F9}", "\x{44B}")); +ok($objMk->gt("\x{4F8}", "\x{42B}")); +ok($objMk->gt("\x{4ED}", "\x{44D}")); +ok($objMk->gt("\x{4EC}", "\x{42D}")); + +# 66 + +$objMk->change(level => 3); + +ok($objMk->eq("\x{4D1}", "\x{430}\x{306}")); +ok($objMk->eq("\x{4D0}", "\x{410}\x{306}")); +ok($objMk->eq("\x{4D3}", "\x{430}\x{308}")); +ok($objMk->eq("\x{4D2}", "\x{410}\x{308}")); +ok($objMk->eq("\x{453}", "\x{433}\x{301}")); +ok($objMk->eq("\x{403}", "\x{413}\x{301}")); +ok($objMk->eq("\x{4D7}", "\x{435}\x{306}")); +ok($objMk->eq("\x{4D6}", "\x{415}\x{306}")); +ok($objMk->eq("\x{4DD}", "\x{436}\x{308}")); +ok($objMk->eq("\x{4DC}", "\x{416}\x{308}")); +ok($objMk->eq("\x{4DF}", "\x{437}\x{308}")); +ok($objMk->eq("\x{4DE}", "\x{417}\x{308}")); +ok($objMk->eq("\x{4E5}", "\x{438}\x{308}")); +ok($objMk->eq("\x{4E4}", "\x{418}\x{308}")); +ok($objMk->eq("\x{457}", "\x{456}\x{308}")); +ok($objMk->eq("\x{407}", "\x{406}\x{308}")); +ok($objMk->eq("\x{439}", "\x{438}\x{306}")); +ok($objMk->eq("\x{419}", "\x{418}\x{306}")); +ok($objMk->eq("\x{4E7}", "\x{43E}\x{308}")); +ok($objMk->eq("\x{4E6}", "\x{41E}\x{308}")); +ok($objMk->eq("\x{45C}", "\x{43A}\x{301}")); +ok($objMk->eq("\x{40C}", "\x{41A}\x{301}")); +ok($objMk->eq("\x{45E}", "\x{443}\x{306}")); +ok($objMk->eq("\x{40E}", "\x{423}\x{306}")); +ok($objMk->eq("\x{4F1}", "\x{443}\x{308}")); +ok($objMk->eq("\x{4F0}", "\x{423}\x{308}")); +ok($objMk->eq("\x{4F3}", "\x{443}\x{30B}")); +ok($objMk->eq("\x{4F2}", "\x{423}\x{30B}")); +ok($objMk->eq("\x{4F5}", "\x{447}\x{308}")); +ok($objMk->eq("\x{4F4}", "\x{427}\x{308}")); +ok($objMk->eq("\x{4F9}", "\x{44B}\x{308}")); +ok($objMk->eq("\x{4F8}", "\x{42B}\x{308}")); +ok($objMk->eq("\x{4ED}", "\x{44D}\x{308}")); +ok($objMk->eq("\x{4EC}", "\x{42D}\x{308}")); + +# 100 + +ok($objMk->eq("\x{4D1}", "\x{430}\0\x{306}")); +ok($objMk->eq("\x{4D0}", "\x{410}\0\x{306}")); +ok($objMk->eq("\x{4D3}", "\x{430}\0\x{308}")); +ok($objMk->eq("\x{4D2}", "\x{410}\0\x{308}")); +ok($objMk->eq("\x{453}", "\x{433}\0\x{301}")); +ok($objMk->eq("\x{403}", "\x{413}\0\x{301}")); +ok($objMk->eq("\x{4D7}", "\x{435}\0\x{306}")); +ok($objMk->eq("\x{4D6}", "\x{415}\0\x{306}")); +ok($objMk->eq("\x{4DD}", "\x{436}\0\x{308}")); +ok($objMk->eq("\x{4DC}", "\x{416}\0\x{308}")); +ok($objMk->eq("\x{4DF}", "\x{437}\0\x{308}")); +ok($objMk->eq("\x{4DE}", "\x{417}\0\x{308}")); +ok($objMk->eq("\x{457}", "\x{456}\0\x{308}")); +ok($objMk->eq("\x{407}", "\x{406}\0\x{308}")); +ok($objMk->eq("\x{4E7}", "\x{43E}\0\x{308}")); +ok($objMk->eq("\x{4E6}", "\x{41E}\0\x{308}")); +ok($objMk->eq("\x{45C}", "\x{43A}\0\x{301}")); +ok($objMk->eq("\x{40C}", "\x{41A}\0\x{301}")); +ok($objMk->eq("\x{45E}", "\x{443}\0\x{306}")); +ok($objMk->eq("\x{40E}", "\x{423}\0\x{306}")); +ok($objMk->eq("\x{4F1}", "\x{443}\0\x{308}")); +ok($objMk->eq("\x{4F0}", "\x{423}\0\x{308}")); +ok($objMk->eq("\x{4F3}", "\x{443}\0\x{30B}")); +ok($objMk->eq("\x{4F2}", "\x{423}\0\x{30B}")); +ok($objMk->eq("\x{4F5}", "\x{447}\0\x{308}")); +ok($objMk->eq("\x{4F4}", "\x{427}\0\x{308}")); +ok($objMk->eq("\x{4F9}", "\x{44B}\0\x{308}")); +ok($objMk->eq("\x{4F8}", "\x{42B}\0\x{308}")); +ok($objMk->eq("\x{4ED}", "\x{44D}\0\x{308}")); +ok($objMk->eq("\x{4EC}", "\x{42D}\0\x{308}")); + +# 130 diff --git a/cpan/Unicode-Collate/t/loc_pl.t b/cpan/Unicode-Collate/t/loc_pl.t index 380744930a..5291062fe1 100644 --- a/cpan/Unicode-Collate/t/loc_pl.t +++ b/cpan/Unicode-Collate/t/loc_pl.t @@ -4,7 +4,7 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 55; +plan tests => 65; my $objPl = Unicode::Collate::Locale-> new(locale => 'PL', normalization => undef); @@ -65,20 +65,30 @@ ok($objPl->lt("z\x{307}", "Z\x{307}")); ok($objPl->eq("a\x{328}", "\x{105}")); ok($objPl->eq("A\x{328}", "\x{104}")); ok($objPl->eq("c\x{301}", "\x{107}")); +ok($objPl->eq("c\x{341}", "\x{107}")); ok($objPl->eq("C\x{301}", "\x{106}")); +ok($objPl->eq("C\x{341}", "\x{106}")); ok($objPl->eq("e\x{328}", "\x{119}")); ok($objPl->eq("E\x{328}", "\x{118}")); ok($objPl->eq("l\x{335}", "\x{142}")); ok($objPl->eq("L\x{335}", "\x{141}")); ok($objPl->eq("n\x{301}", "\x{144}")); +ok($objPl->eq("n\x{341}", "\x{144}")); ok($objPl->eq("N\x{301}", "\x{143}")); +ok($objPl->eq("N\x{341}", "\x{143}")); ok($objPl->eq("o\x{301}", pack('U', 0xF3))); +ok($objPl->eq("o\x{341}", pack('U', 0xF3))); ok($objPl->eq("O\x{301}", pack('U', 0xD3))); +ok($objPl->eq("O\x{341}", pack('U', 0xD3))); ok($objPl->eq("s\x{301}", "\x{15B}")); +ok($objPl->eq("s\x{341}", "\x{15B}")); ok($objPl->eq("S\x{301}", "\x{15A}")); +ok($objPl->eq("S\x{341}", "\x{15A}")); ok($objPl->eq("z\x{301}", "\x{17A}")); +ok($objPl->eq("z\x{341}", "\x{17A}")); ok($objPl->eq("Z\x{301}", "\x{179}")); +ok($objPl->eq("Z\x{341}", "\x{179}")); ok($objPl->eq("z\x{307}", "\x{17C}")); ok($objPl->eq("Z\x{307}", "\x{17B}")); -# 55 +# 65 diff --git a/cpan/Unicode-Collate/t/loc_ru.t b/cpan/Unicode-Collate/t/loc_ru.t new file mode 100644 index 0000000000..111f81d91d --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_ru.t @@ -0,0 +1,162 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 130; + +my $objRu = Unicode::Collate::Locale-> + new(locale => 'RU', normalization => undef); + +ok(1); +ok($objRu->getlocale, 'ru'); + +$objRu->change(level => 1); + +ok($objRu->gt("\x{4E5}", "\x{438}")); +ok($objRu->gt("\x{4E4}", "\x{418}")); +ok($objRu->gt("\x{439}", "\x{438}")); +ok($objRu->gt("\x{419}", "\x{418}")); + +# 6 + +ok($objRu->eq("\x{4D1}", "\x{430}")); +ok($objRu->eq("\x{4D0}", "\x{410}")); +ok($objRu->eq("\x{4D3}", "\x{430}")); +ok($objRu->eq("\x{4D2}", "\x{410}")); +ok($objRu->eq("\x{453}", "\x{433}")); +ok($objRu->eq("\x{403}", "\x{413}")); +ok($objRu->eq("\x{4D7}", "\x{435}")); +ok($objRu->eq("\x{4D6}", "\x{415}")); +ok($objRu->eq("\x{4DD}", "\x{436}")); +ok($objRu->eq("\x{4DC}", "\x{416}")); +ok($objRu->eq("\x{4DF}", "\x{437}")); +ok($objRu->eq("\x{4DE}", "\x{417}")); +ok($objRu->eq("\x{457}", "\x{456}")); +ok($objRu->eq("\x{407}", "\x{406}")); +ok($objRu->eq("\x{4E7}", "\x{43E}")); +ok($objRu->eq("\x{4E6}", "\x{41E}")); +ok($objRu->eq("\x{45C}", "\x{43A}")); +ok($objRu->eq("\x{40C}", "\x{41A}")); +ok($objRu->eq("\x{45E}", "\x{443}")); +ok($objRu->eq("\x{40E}", "\x{423}")); +ok($objRu->eq("\x{4F1}", "\x{443}")); +ok($objRu->eq("\x{4F0}", "\x{423}")); +ok($objRu->eq("\x{4F3}", "\x{443}")); +ok($objRu->eq("\x{4F2}", "\x{423}")); +ok($objRu->eq("\x{4F5}", "\x{447}")); +ok($objRu->eq("\x{4F4}", "\x{427}")); +ok($objRu->eq("\x{4F9}", "\x{44B}")); +ok($objRu->eq("\x{4F8}", "\x{42B}")); +ok($objRu->eq("\x{4ED}", "\x{44D}")); +ok($objRu->eq("\x{4EC}", "\x{42D}")); + +# 36 + +$objRu->change(level => 2); + +ok($objRu->gt("\x{4D1}", "\x{430}")); +ok($objRu->gt("\x{4D0}", "\x{410}")); +ok($objRu->gt("\x{4D3}", "\x{430}")); +ok($objRu->gt("\x{4D2}", "\x{410}")); +ok($objRu->gt("\x{453}", "\x{433}")); +ok($objRu->gt("\x{403}", "\x{413}")); +ok($objRu->gt("\x{4D7}", "\x{435}")); +ok($objRu->gt("\x{4D6}", "\x{415}")); +ok($objRu->gt("\x{4DD}", "\x{436}")); +ok($objRu->gt("\x{4DC}", "\x{416}")); +ok($objRu->gt("\x{4DF}", "\x{437}")); +ok($objRu->gt("\x{4DE}", "\x{417}")); +ok($objRu->gt("\x{457}", "\x{456}")); +ok($objRu->gt("\x{407}", "\x{406}")); +ok($objRu->gt("\x{4E7}", "\x{43E}")); +ok($objRu->gt("\x{4E6}", "\x{41E}")); +ok($objRu->gt("\x{45C}", "\x{43A}")); +ok($objRu->gt("\x{40C}", "\x{41A}")); +ok($objRu->gt("\x{45E}", "\x{443}")); +ok($objRu->gt("\x{40E}", "\x{423}")); +ok($objRu->gt("\x{4F1}", "\x{443}")); +ok($objRu->gt("\x{4F0}", "\x{423}")); +ok($objRu->gt("\x{4F3}", "\x{443}")); +ok($objRu->gt("\x{4F2}", "\x{423}")); +ok($objRu->gt("\x{4F5}", "\x{447}")); +ok($objRu->gt("\x{4F4}", "\x{427}")); +ok($objRu->gt("\x{4F9}", "\x{44B}")); +ok($objRu->gt("\x{4F8}", "\x{42B}")); +ok($objRu->gt("\x{4ED}", "\x{44D}")); +ok($objRu->gt("\x{4EC}", "\x{42D}")); + +# 66 + +$objRu->change(level => 3); + +ok($objRu->eq("\x{4D1}", "\x{430}\x{306}")); +ok($objRu->eq("\x{4D0}", "\x{410}\x{306}")); +ok($objRu->eq("\x{4D3}", "\x{430}\x{308}")); +ok($objRu->eq("\x{4D2}", "\x{410}\x{308}")); +ok($objRu->eq("\x{453}", "\x{433}\x{301}")); +ok($objRu->eq("\x{403}", "\x{413}\x{301}")); +ok($objRu->eq("\x{4D7}", "\x{435}\x{306}")); +ok($objRu->eq("\x{4D6}", "\x{415}\x{306}")); +ok($objRu->eq("\x{4DD}", "\x{436}\x{308}")); +ok($objRu->eq("\x{4DC}", "\x{416}\x{308}")); +ok($objRu->eq("\x{4DF}", "\x{437}\x{308}")); +ok($objRu->eq("\x{4DE}", "\x{417}\x{308}")); +ok($objRu->eq("\x{4E5}", "\x{438}\x{308}")); +ok($objRu->eq("\x{4E4}", "\x{418}\x{308}")); +ok($objRu->eq("\x{457}", "\x{456}\x{308}")); +ok($objRu->eq("\x{407}", "\x{406}\x{308}")); +ok($objRu->eq("\x{439}", "\x{438}\x{306}")); +ok($objRu->eq("\x{419}", "\x{418}\x{306}")); +ok($objRu->eq("\x{4E7}", "\x{43E}\x{308}")); +ok($objRu->eq("\x{4E6}", "\x{41E}\x{308}")); +ok($objRu->eq("\x{45C}", "\x{43A}\x{301}")); +ok($objRu->eq("\x{40C}", "\x{41A}\x{301}")); +ok($objRu->eq("\x{45E}", "\x{443}\x{306}")); +ok($objRu->eq("\x{40E}", "\x{423}\x{306}")); +ok($objRu->eq("\x{4F1}", "\x{443}\x{308}")); +ok($objRu->eq("\x{4F0}", "\x{423}\x{308}")); +ok($objRu->eq("\x{4F3}", "\x{443}\x{30B}")); +ok($objRu->eq("\x{4F2}", "\x{423}\x{30B}")); +ok($objRu->eq("\x{4F5}", "\x{447}\x{308}")); +ok($objRu->eq("\x{4F4}", "\x{427}\x{308}")); +ok($objRu->eq("\x{4F9}", "\x{44B}\x{308}")); +ok($objRu->eq("\x{4F8}", "\x{42B}\x{308}")); +ok($objRu->eq("\x{4ED}", "\x{44D}\x{308}")); +ok($objRu->eq("\x{4EC}", "\x{42D}\x{308}")); + +# 100 + +ok($objRu->eq("\x{4D1}", "\x{430}\0\x{306}")); +ok($objRu->eq("\x{4D0}", "\x{410}\0\x{306}")); +ok($objRu->eq("\x{4D3}", "\x{430}\0\x{308}")); +ok($objRu->eq("\x{4D2}", "\x{410}\0\x{308}")); +ok($objRu->eq("\x{453}", "\x{433}\0\x{301}")); +ok($objRu->eq("\x{403}", "\x{413}\0\x{301}")); +ok($objRu->eq("\x{4D7}", "\x{435}\0\x{306}")); +ok($objRu->eq("\x{4D6}", "\x{415}\0\x{306}")); +ok($objRu->eq("\x{4DD}", "\x{436}\0\x{308}")); +ok($objRu->eq("\x{4DC}", "\x{416}\0\x{308}")); +ok($objRu->eq("\x{4DF}", "\x{437}\0\x{308}")); +ok($objRu->eq("\x{4DE}", "\x{417}\0\x{308}")); +ok($objRu->eq("\x{457}", "\x{456}\0\x{308}")); +ok($objRu->eq("\x{407}", "\x{406}\0\x{308}")); +ok($objRu->eq("\x{4E7}", "\x{43E}\0\x{308}")); +ok($objRu->eq("\x{4E6}", "\x{41E}\0\x{308}")); +ok($objRu->eq("\x{45C}", "\x{43A}\0\x{301}")); +ok($objRu->eq("\x{40C}", "\x{41A}\0\x{301}")); +ok($objRu->eq("\x{45E}", "\x{443}\0\x{306}")); +ok($objRu->eq("\x{40E}", "\x{423}\0\x{306}")); +ok($objRu->eq("\x{4F1}", "\x{443}\0\x{308}")); +ok($objRu->eq("\x{4F0}", "\x{423}\0\x{308}")); +ok($objRu->eq("\x{4F3}", "\x{443}\0\x{30B}")); +ok($objRu->eq("\x{4F2}", "\x{423}\0\x{30B}")); +ok($objRu->eq("\x{4F5}", "\x{447}\0\x{308}")); +ok($objRu->eq("\x{4F4}", "\x{427}\0\x{308}")); +ok($objRu->eq("\x{4F9}", "\x{44B}\0\x{308}")); +ok($objRu->eq("\x{4F8}", "\x{42B}\0\x{308}")); +ok($objRu->eq("\x{4ED}", "\x{44D}\0\x{308}")); +ok($objRu->eq("\x{4EC}", "\x{42D}\0\x{308}")); + +# 130 diff --git a/cpan/Unicode-Collate/t/loc_se.t b/cpan/Unicode-Collate/t/loc_se.t index 5921fd49b0..9e3ecf0037 100644 --- a/cpan/Unicode-Collate/t/loc_se.t +++ b/cpan/Unicode-Collate/t/loc_se.t @@ -4,7 +4,7 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 213; +plan tests => 217; my $objSe = Unicode::Collate::Locale-> new(locale => 'SE', normalization => undef); @@ -155,7 +155,9 @@ ok($objSe->lt("o\x{328}", "O\x{328}")); # 116 ok($objSe->eq("a\x{301}", pack('U', 0xE1))); +ok($objSe->eq("a\x{341}", pack('U', 0xE1))); ok($objSe->eq("A\x{301}", pack('U', 0xC1))); +ok($objSe->eq("A\x{341}", pack('U', 0xC1))); ok($objSe->eq("c\x{30C}", "\x{10D}")); ok($objSe->eq("C\x{30C}", "\x{10C}")); ok($objSe->eq("\x{1EF}", "\x{292}\x{30C}")); @@ -167,7 +169,9 @@ ok($objSe->eq("G\x{30C}", "\x{1E6}")); ok($objSe->eq("k\x{30C}", "\x{1E9}")); ok($objSe->eq("K\x{30C}", "\x{1E8}")); ok($objSe->eq("n\x{301}", "\x{144}")); +ok($objSe->eq("n\x{341}", "\x{144}")); ok($objSe->eq("N\x{301}", "\x{143}")); +ok($objSe->eq("N\x{341}", "\x{143}")); ok($objSe->eq("n\x{303}", pack('U', 0xF1))); ok($objSe->eq("N\x{303}", pack('U', 0xD1))); ok($objSe->eq("s\x{30C}", "\x{161}")); @@ -177,7 +181,7 @@ ok($objSe->eq("U\x{308}", pack('U', 0xDC))); ok($objSe->eq("u\x{30B}", "\x{171}")); ok($objSe->eq("U\x{30B}", "\x{170}")); -# 138 +# 142 ok($objSe->eq("z\x{30C}", "\x{17E}")); ok($objSe->eq("Z\x{30C}", "\x{17D}")); @@ -202,7 +206,7 @@ ok($objSe->eq("O\x{302}", pack('U', 0xD4))); ok($objSe->eq("o\x{328}", "\x{1EB}")); ok($objSe->eq("O\x{328}", "\x{1EA}")); -# 160 +# 164 ok($objSe->eq("u\x{308}\x{300}", "\x{1DC}")); ok($objSe->eq("U\x{308}\x{300}", "\x{1DB}")); @@ -247,7 +251,7 @@ ok($objSe->eq("O\x{302}\x{309}", "\x{1ED4}")); ok($objSe->eq("o\x{302}\x{323}", "\x{1ED9}")); ok($objSe->eq("O\x{302}\x{323}", "\x{1ED8}")); -# 199 +# 203 $objSe->change(upper_before_lower => 1); @@ -266,4 +270,4 @@ ok($objSe->gt("o\x{303}", "O\x{303}")); ok($objSe->gt("o\x{302}", "O\x{302}")); ok($objSe->gt("o\x{328}", "O\x{328}")); -# 213 +# 217 diff --git a/cpan/Unicode-Collate/t/loc_sr.t b/cpan/Unicode-Collate/t/loc_sr.t new file mode 100644 index 0000000000..a80fc6208d --- /dev/null +++ b/cpan/Unicode-Collate/t/loc_sr.t @@ -0,0 +1,162 @@ +#!perl +use strict; +use warnings; +use Unicode::Collate::Locale; + +use Test; +plan tests => 130; + +my $objSr = Unicode::Collate::Locale-> + new(locale => 'SR', normalization => undef); + +ok(1); +ok($objSr->getlocale, 'sr'); + +$objSr->change(level => 1); + +ok($objSr->gt("\x{4E5}", "\x{438}")); +ok($objSr->gt("\x{4E4}", "\x{418}")); +ok($objSr->gt("\x{439}", "\x{438}")); +ok($objSr->gt("\x{419}", "\x{418}")); + +# 6 + +ok($objSr->eq("\x{4D1}", "\x{430}")); +ok($objSr->eq("\x{4D0}", "\x{410}")); +ok($objSr->eq("\x{4D3}", "\x{430}")); +ok($objSr->eq("\x{4D2}", "\x{410}")); +ok($objSr->eq("\x{453}", "\x{433}")); +ok($objSr->eq("\x{403}", "\x{413}")); +ok($objSr->eq("\x{4D7}", "\x{435}")); +ok($objSr->eq("\x{4D6}", "\x{415}")); +ok($objSr->eq("\x{4DD}", "\x{436}")); +ok($objSr->eq("\x{4DC}", "\x{416}")); +ok($objSr->eq("\x{4DF}", "\x{437}")); +ok($objSr->eq("\x{4DE}", "\x{417}")); +ok($objSr->eq("\x{457}", "\x{456}")); +ok($objSr->eq("\x{407}", "\x{406}")); +ok($objSr->eq("\x{4E7}", "\x{43E}")); +ok($objSr->eq("\x{4E6}", "\x{41E}")); +ok($objSr->eq("\x{45C}", "\x{43A}")); +ok($objSr->eq("\x{40C}", "\x{41A}")); +ok($objSr->eq("\x{45E}", "\x{443}")); +ok($objSr->eq("\x{40E}", "\x{423}")); +ok($objSr->eq("\x{4F1}", "\x{443}")); +ok($objSr->eq("\x{4F0}", "\x{423}")); +ok($objSr->eq("\x{4F3}", "\x{443}")); +ok($objSr->eq("\x{4F2}", "\x{423}")); +ok($objSr->eq("\x{4F5}", "\x{447}")); +ok($objSr->eq("\x{4F4}", "\x{427}")); +ok($objSr->eq("\x{4F9}", "\x{44B}")); +ok($objSr->eq("\x{4F8}", "\x{42B}")); +ok($objSr->eq("\x{4ED}", "\x{44D}")); +ok($objSr->eq("\x{4EC}", "\x{42D}")); + +# 36 + +$objSr->change(level => 2); + +ok($objSr->gt("\x{4D1}", "\x{430}")); +ok($objSr->gt("\x{4D0}", "\x{410}")); +ok($objSr->gt("\x{4D3}", "\x{430}")); +ok($objSr->gt("\x{4D2}", "\x{410}")); +ok($objSr->gt("\x{453}", "\x{433}")); +ok($objSr->gt("\x{403}", "\x{413}")); +ok($objSr->gt("\x{4D7}", "\x{435}")); +ok($objSr->gt("\x{4D6}", "\x{415}")); +ok($objSr->gt("\x{4DD}", "\x{436}")); +ok($objSr->gt("\x{4DC}", "\x{416}")); +ok($objSr->gt("\x{4DF}", "\x{437}")); +ok($objSr->gt("\x{4DE}", "\x{417}")); +ok($objSr->gt("\x{457}", "\x{456}")); +ok($objSr->gt("\x{407}", "\x{406}")); +ok($objSr->gt("\x{4E7}", "\x{43E}")); +ok($objSr->gt("\x{4E6}", "\x{41E}")); +ok($objSr->gt("\x{45C}", "\x{43A}")); +ok($objSr->gt("\x{40C}", "\x{41A}")); +ok($objSr->gt("\x{45E}", "\x{443}")); +ok($objSr->gt("\x{40E}", "\x{423}")); +ok($objSr->gt("\x{4F1}", "\x{443}")); +ok($objSr->gt("\x{4F0}", "\x{423}")); +ok($objSr->gt("\x{4F3}", "\x{443}")); +ok($objSr->gt("\x{4F2}", "\x{423}")); +ok($objSr->gt("\x{4F5}", "\x{447}")); +ok($objSr->gt("\x{4F4}", "\x{427}")); +ok($objSr->gt("\x{4F9}", "\x{44B}")); +ok($objSr->gt("\x{4F8}", "\x{42B}")); +ok($objSr->gt("\x{4ED}", "\x{44D}")); +ok($objSr->gt("\x{4EC}", "\x{42D}")); + +# 66 + +$objSr->change(level => 3); + +ok($objSr->eq("\x{4D1}", "\x{430}\x{306}")); +ok($objSr->eq("\x{4D0}", "\x{410}\x{306}")); +ok($objSr->eq("\x{4D3}", "\x{430}\x{308}")); +ok($objSr->eq("\x{4D2}", "\x{410}\x{308}")); +ok($objSr->eq("\x{453}", "\x{433}\x{301}")); +ok($objSr->eq("\x{403}", "\x{413}\x{301}")); +ok($objSr->eq("\x{4D7}", "\x{435}\x{306}")); +ok($objSr->eq("\x{4D6}", "\x{415}\x{306}")); +ok($objSr->eq("\x{4DD}", "\x{436}\x{308}")); +ok($objSr->eq("\x{4DC}", "\x{416}\x{308}")); +ok($objSr->eq("\x{4DF}", "\x{437}\x{308}")); +ok($objSr->eq("\x{4DE}", "\x{417}\x{308}")); +ok($objSr->eq("\x{4E5}", "\x{438}\x{308}")); +ok($objSr->eq("\x{4E4}", "\x{418}\x{308}")); +ok($objSr->eq("\x{457}", "\x{456}\x{308}")); +ok($objSr->eq("\x{407}", "\x{406}\x{308}")); +ok($objSr->eq("\x{439}", "\x{438}\x{306}")); +ok($objSr->eq("\x{419}", "\x{418}\x{306}")); +ok($objSr->eq("\x{4E7}", "\x{43E}\x{308}")); +ok($objSr->eq("\x{4E6}", "\x{41E}\x{308}")); +ok($objSr->eq("\x{45C}", "\x{43A}\x{301}")); +ok($objSr->eq("\x{40C}", "\x{41A}\x{301}")); +ok($objSr->eq("\x{45E}", "\x{443}\x{306}")); +ok($objSr->eq("\x{40E}", "\x{423}\x{306}")); +ok($objSr->eq("\x{4F1}", "\x{443}\x{308}")); +ok($objSr->eq("\x{4F0}", "\x{423}\x{308}")); +ok($objSr->eq("\x{4F3}", "\x{443}\x{30B}")); +ok($objSr->eq("\x{4F2}", "\x{423}\x{30B}")); +ok($objSr->eq("\x{4F5}", "\x{447}\x{308}")); +ok($objSr->eq("\x{4F4}", "\x{427}\x{308}")); +ok($objSr->eq("\x{4F9}", "\x{44B}\x{308}")); +ok($objSr->eq("\x{4F8}", "\x{42B}\x{308}")); +ok($objSr->eq("\x{4ED}", "\x{44D}\x{308}")); +ok($objSr->eq("\x{4EC}", "\x{42D}\x{308}")); + +# 100 + +ok($objSr->eq("\x{4D1}", "\x{430}\0\x{306}")); +ok($objSr->eq("\x{4D0}", "\x{410}\0\x{306}")); +ok($objSr->eq("\x{4D3}", "\x{430}\0\x{308}")); +ok($objSr->eq("\x{4D2}", "\x{410}\0\x{308}")); +ok($objSr->eq("\x{453}", "\x{433}\0\x{301}")); +ok($objSr->eq("\x{403}", "\x{413}\0\x{301}")); +ok($objSr->eq("\x{4D7}", "\x{435}\0\x{306}")); +ok($objSr->eq("\x{4D6}", "\x{415}\0\x{306}")); +ok($objSr->eq("\x{4DD}", "\x{436}\0\x{308}")); +ok($objSr->eq("\x{4DC}", "\x{416}\0\x{308}")); +ok($objSr->eq("\x{4DF}", "\x{437}\0\x{308}")); +ok($objSr->eq("\x{4DE}", "\x{417}\0\x{308}")); +ok($objSr->eq("\x{457}", "\x{456}\0\x{308}")); +ok($objSr->eq("\x{407}", "\x{406}\0\x{308}")); +ok($objSr->eq("\x{4E7}", "\x{43E}\0\x{308}")); +ok($objSr->eq("\x{4E6}", "\x{41E}\0\x{308}")); +ok($objSr->eq("\x{45C}", "\x{43A}\0\x{301}")); +ok($objSr->eq("\x{40C}", "\x{41A}\0\x{301}")); +ok($objSr->eq("\x{45E}", "\x{443}\0\x{306}")); +ok($objSr->eq("\x{40E}", "\x{423}\0\x{306}")); +ok($objSr->eq("\x{4F1}", "\x{443}\0\x{308}")); +ok($objSr->eq("\x{4F0}", "\x{423}\0\x{308}")); +ok($objSr->eq("\x{4F3}", "\x{443}\0\x{30B}")); +ok($objSr->eq("\x{4F2}", "\x{423}\0\x{30B}")); +ok($objSr->eq("\x{4F5}", "\x{447}\0\x{308}")); +ok($objSr->eq("\x{4F4}", "\x{427}\0\x{308}")); +ok($objSr->eq("\x{4F9}", "\x{44B}\0\x{308}")); +ok($objSr->eq("\x{4F8}", "\x{42B}\0\x{308}")); +ok($objSr->eq("\x{4ED}", "\x{44D}\0\x{308}")); +ok($objSr->eq("\x{4EC}", "\x{42D}\0\x{308}")); + +# 130 diff --git a/cpan/Unicode-Collate/t/loc_to.t b/cpan/Unicode-Collate/t/loc_to.t index e7acf46553..a14c7290f0 100644 --- a/cpan/Unicode-Collate/t/loc_to.t +++ b/cpan/Unicode-Collate/t/loc_to.t @@ -4,7 +4,7 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 122; +plan tests => 132; my $objTo = Unicode::Collate::Locale-> new(locale => 'TO', normalization => undef); @@ -124,17 +124,27 @@ ok($objTo->eq("u\x{304}", "\x{16B}")); ok($objTo->eq("U\x{304}", "\x{16A}")); ok($objTo->eq("a\x{301}", pack('U', 0xE1))); +ok($objTo->eq("a\x{341}", pack('U', 0xE1))); ok($objTo->eq("A\x{301}", pack('U', 0xC1))); +ok($objTo->eq("A\x{341}", pack('U', 0xC1))); ok($objTo->eq("e\x{301}", pack('U', 0xE9))); +ok($objTo->eq("e\x{341}", pack('U', 0xE9))); ok($objTo->eq("E\x{301}", pack('U', 0xC9))); +ok($objTo->eq("E\x{341}", pack('U', 0xC9))); ok($objTo->eq("i\x{301}", pack('U', 0xED))); +ok($objTo->eq("i\x{341}", pack('U', 0xED))); ok($objTo->eq("I\x{301}", pack('U', 0xCD))); +ok($objTo->eq("I\x{341}", pack('U', 0xCD))); ok($objTo->eq("o\x{301}", pack('U', 0xF3))); +ok($objTo->eq("o\x{341}", pack('U', 0xF3))); ok($objTo->eq("O\x{301}", pack('U', 0xD3))); +ok($objTo->eq("O\x{341}", pack('U', 0xD3))); ok($objTo->eq("u\x{301}", pack('U', 0xFA))); +ok($objTo->eq("u\x{341}", pack('U', 0xFA))); ok($objTo->eq("U\x{301}", pack('U', 0xDA))); +ok($objTo->eq("U\x{341}", pack('U', 0xDA))); -# 97 +# 107 $objTo->change(upper_before_lower => 1); @@ -166,4 +176,4 @@ ok($objTo->lt("O\x{304}", "O\x{301}")); ok($objTo->lt("u\x{304}", "u\x{301}")); ok($objTo->lt("U\x{304}", "U\x{301}")); -# 122 +# 132 diff --git a/cpan/Unicode-Collate/t/loc_wo.t b/cpan/Unicode-Collate/t/loc_wo.t index ceff5068e9..48cb8df21d 100644 --- a/cpan/Unicode-Collate/t/loc_wo.t +++ b/cpan/Unicode-Collate/t/loc_wo.t @@ -4,7 +4,7 @@ use warnings; use Unicode::Collate::Locale; use Test; -plan tests => 34; +plan tests => 40; my $objWo = Unicode::Collate::Locale-> new(locale => 'WO', normalization => undef); @@ -50,14 +50,20 @@ ok($objWo->lt("o\x{301}", "O\x{301}")); # 24 ok($objWo->eq("a\x{300}", pack('U', 0xE0))); +ok($objWo->eq("a\x{340}", pack('U', 0xE0))); ok($objWo->eq("A\x{300}", pack('U', 0xC0))); +ok($objWo->eq("A\x{340}", pack('U', 0xC0))); ok($objWo->eq("e\x{301}", pack('U', 0xE9))); +ok($objWo->eq("e\x{341}", pack('U', 0xE9))); ok($objWo->eq("E\x{301}", pack('U', 0xC9))); +ok($objWo->eq("E\x{341}", pack('U', 0xC9))); ok($objWo->eq("e\x{308}", pack('U', 0xEB))); ok($objWo->eq("E\x{308}", pack('U', 0xCB))); ok($objWo->eq("n\x{303}", pack('U', 0xF1))); ok($objWo->eq("N\x{303}", pack('U', 0xD1))); ok($objWo->eq("o\x{301}", pack('U', 0xF3))); +ok($objWo->eq("o\x{341}", pack('U', 0xF3))); ok($objWo->eq("O\x{301}", pack('U', 0xD3))); +ok($objWo->eq("O\x{341}", pack('U', 0xD3))); -# 34 +# 40 |