⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contract.t

📁 source of perl for linux application,
💻 T
字号:
BEGIN {    unless ("A" eq pack('U', 0x41)) {	print "1..0 # Unicode::Collate " .	    "cannot stringify a Unicode code point\n";	exit 0;    }    if ($ENV{PERL_CORE}) {	chdir('t') if -d 't';	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);    }}use Test;BEGIN { plan tests => 40 };use strict;use warnings;use Unicode::Collate;our $kjeEntry = <<'ENTRIES';0301  ; [.0000.0032.0002.0301] # COMBINING ACUTE ACCENT0334  ; [.0000.008B.0002.0334] # COMBINING TILDE OVERLAY043A  ; [.0D31.0020.0002.043A] # CYRILLIC SMALL LETTER KA041A  ; [.0D31.0020.0008.041A] # CYRILLIC CAPITAL LETTER KA045C  ; [.0DA1.0020.0002.045C] # CYRILLIC SMALL LETTER KJE043A 0301 ; [.0DA1.0020.0002.045C] # CYRILLIC SMALL LETTER KJE040C  ; [.0DA1.0020.0008.040C] # CYRILLIC CAPITAL LETTER KJE041A 0301 ; [.0DA1.0020.0008.040C] # CYRILLIC CAPITAL LETTER KJEENTRIESour $aaEntry = <<'ENTRIES';0304  ; [.0000.005A.0002.0304] # COMBINING MACRON (cc = 230)030A  ; [.0000.0043.0002.030A] # COMBINING RING ABOVE (cc = 230)0327  ; [.0000.0055.0002.0327] # COMBINING CEDILLA (cc = 202)031A  ; [.0000.006B.0002.031A] # COMBINING LEFT ANGLE ABOVE (cc = 232)0061  ; [.0A15.0020.0002.0061] # LATIN SMALL LETTER A0041  ; [.0A15.0020.0008.0041] # LATIN CAPITAL LETTER A007A  ; [.0C13.0020.0002.007A] # LATIN SMALL LETTER Z005A  ; [.0C13.0020.0008.005A] # LATIN CAPITAL LETTER Z00E5  ; [.0C25.0020.0002.00E5] # LATIN SMALL LETTER A WITH RING ABOVE; QQCM00C5  ; [.0C25.0020.0008.00C5] # LATIN CAPITAL LETTER A WITH RING ABOVE; QQCM0061 030A ; [.0C25.0020.0002.0061] # LATIN SMALL LETTER A WITH RING ABOVE0041 030A ; [.0C25.0020.0008.0041] # LATIN CAPITAL LETTER A WITH RING ABOVEENTRIES#########################ok(1);my $kjeNoN = Unicode::Collate->new(    level => 1,    table => undef,    normalization => undef,    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}"));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}");eval { require Unicode::Normalize };if (!$@) {    my $kjeNFD = Unicode::Collate->new(	level => 1,	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}"));    my $aaNFD = Unicode::Collate->new(	level => 1,	table => undef,	entry => $aaEntry,    );ok($aaNFD->lt("Z", "A\x{30A}\x{304}"));ok($aaNFD->eq("A", "A\x{304}\x{30A}"));ok($aaNFD->eq(pack('U', 0xE5), "A\x{30A}\x{304}"));ok($aaNFD->eq("A\x{304}", "A\x{304}\x{30A}"));ok($aaNFD->lt("Z", "A\x{327}\x{30A}"));ok($aaNFD->lt("Z", "A\x{30A}\x{327}"));ok($aaNFD->lt("Z", "A\x{31A}\x{30A}"));ok($aaNFD->lt("Z", "A\x{30A}\x{31A}"));    my $aaPre = Unicode::Collate->new(	level => 1,	normalization => "prenormalized",	table => undef,	entry => $aaEntry,    );ok($aaPre->lt("Z", "A\x{30A}\x{304}"));ok($aaPre->eq("A", "A\x{304}\x{30A}"));ok($aaPre->eq(pack('U', 0xE5), "A\x{30A}\x{304}"));ok($aaPre->eq("A\x{304}", "A\x{304}\x{30A}"));ok($aaPre->lt("Z", "A\x{327}\x{30A}"));ok($aaPre->lt("Z", "A\x{30A}\x{327}"));ok($aaPre->lt("Z", "A\x{31A}\x{30A}"));ok($aaPre->lt("Z", "A\x{30A}\x{31A}"));}else {  ok(1) for 1..20;}# 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($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}"));my $aaNoN = Unicode::Collate->new(    level => 1,    table => undef,    entry => $aaEntry,    normalization => undef,);ok($aaNoN->lt("Z", "A\x{30A}\x{304}"));ok($aaNoN->eq("A", "A\x{304}\x{30A}"));ok($aaNoN->eq(pack('U', 0xE5), "A\x{30A}\x{304}"));ok($aaNoN->eq("A\x{304}", "A\x{304}\x{30A}"));ok($aaNoN->eq("A", "A\x{327}\x{30A}"));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}"));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -