1898184e3Ssthen 2b39c5158SmillertBEGIN { 3b39c5158Smillert if ($ENV{PERL_CORE}) { 4b39c5158Smillert chdir('t') if -d 't'; 5b39c5158Smillert @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); 6b39c5158Smillert } 7b39c5158Smillert} 8b39c5158Smillert 9b39c5158Smillertuse strict; 10b39c5158Smillertuse warnings; 11b8851fccSafresh1BEGIN { $| = 1; print "1..118\n"; } 12898184e3Ssthenmy $count = 0; 13898184e3Ssthensub ok ($;$) { 14898184e3Ssthen my $p = my $r = shift; 15898184e3Ssthen if (@_) { 16898184e3Ssthen my $x = shift; 17898184e3Ssthen $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; 18898184e3Ssthen } 19898184e3Ssthen print $p ? "ok" : "not ok", ' ', ++$count, "\n"; 20898184e3Ssthen} 21898184e3Ssthen 22b39c5158Smillertuse Unicode::Collate; 23b39c5158Smillert 24898184e3Ssthenok(1); 25898184e3Ssthen 26*eac174f2Safresh1sub _pack_U { Unicode::Collate::pack_U(@_) } 27*eac174f2Safresh1sub _unpack_U { Unicode::Collate::unpack_U(@_) } 28*eac174f2Safresh1 29898184e3Ssthen######################### 30898184e3Ssthen 31b39c5158Smillertour $kjeEntry = <<'ENTRIES'; 32b39c5158Smillert0301 ; [.0000.0032.0002.0301] # COMBINING ACUTE ACCENT 33b39c5158Smillert0334 ; [.0000.008B.0002.0334] # COMBINING TILDE OVERLAY 34b39c5158Smillert043A ; [.0D31.0020.0002.043A] # CYRILLIC SMALL LETTER KA 35b39c5158Smillert041A ; [.0D31.0020.0008.041A] # CYRILLIC CAPITAL LETTER KA 36b39c5158Smillert045C ; [.0DA1.0020.0002.045C] # CYRILLIC SMALL LETTER KJE 37b39c5158Smillert043A 0301 ; [.0DA1.0020.0002.045C] # CYRILLIC SMALL LETTER KJE 38b39c5158Smillert040C ; [.0DA1.0020.0008.040C] # CYRILLIC CAPITAL LETTER KJE 39b39c5158Smillert041A 0301 ; [.0DA1.0020.0008.040C] # CYRILLIC CAPITAL LETTER KJE 40b39c5158SmillertENTRIES 41b39c5158Smillert 42b39c5158Smillertour $aaEntry = <<'ENTRIES'; 43b39c5158Smillert0304 ; [.0000.005A.0002.0304] # COMBINING MACRON (cc = 230) 44b39c5158Smillert030A ; [.0000.0043.0002.030A] # COMBINING RING ABOVE (cc = 230) 45b39c5158Smillert0327 ; [.0000.0055.0002.0327] # COMBINING CEDILLA (cc = 202) 46b39c5158Smillert031A ; [.0000.006B.0002.031A] # COMBINING LEFT ANGLE ABOVE (cc = 232) 47b39c5158Smillert0061 ; [.0A15.0020.0002.0061] # LATIN SMALL LETTER A 48b39c5158Smillert0041 ; [.0A15.0020.0008.0041] # LATIN CAPITAL LETTER A 49b39c5158Smillert007A ; [.0C13.0020.0002.007A] # LATIN SMALL LETTER Z 50b39c5158Smillert005A ; [.0C13.0020.0008.005A] # LATIN CAPITAL LETTER Z 51b39c5158Smillert00E5 ; [.0C25.0020.0002.00E5] # LATIN SMALL LETTER A WITH RING ABOVE; QQCM 52b39c5158Smillert00C5 ; [.0C25.0020.0008.00C5] # LATIN CAPITAL LETTER A WITH RING ABOVE; QQCM 53b39c5158Smillert0061 030A ; [.0C25.0020.0002.0061] # LATIN SMALL LETTER A WITH RING ABOVE 54b39c5158Smillert0041 030A ; [.0C25.0020.0008.0041] # LATIN CAPITAL LETTER A WITH RING ABOVE 55b39c5158SmillertENTRIES 56b39c5158Smillert 57b39c5158Smillert######################### 58b39c5158Smillert 59b39c5158Smillertmy $kjeNoN = Unicode::Collate->new( 60b39c5158Smillert level => 1, 61b39c5158Smillert table => undef, 62b39c5158Smillert normalization => undef, 63b39c5158Smillert entry => $kjeEntry, 64b39c5158Smillert); 65b39c5158Smillert 66898184e3Ssthenok($kjeNoN->lt("\x{43A}", "\x{43A}\x{301}")); 67898184e3Ssthenok($kjeNoN->gt("\x{45C}", "\x{43A}\x{334}\x{301}")); 68898184e3Ssthenok($kjeNoN->eq("\x{43A}", "\x{43A}\x{334}\x{301}")); 69898184e3Ssthenok($kjeNoN->eq("\x{45C}", "\x{43A}\x{301}\x{334}")); 70898184e3Ssthen 71898184e3Ssthen# 5 72b39c5158Smillert 73b39c5158Smillertour %sortkeys; 74b39c5158Smillert 75898184e3Ssthen$sortkeys{'KAac'} = $kjeNoN->viewSortKey("\x{43A}\x{301}"); 76898184e3Ssthen$sortkeys{'KAta'} = $kjeNoN->viewSortKey("\x{43A}\x{334}\x{301}"); 77898184e3Ssthen$sortkeys{'KAat'} = $kjeNoN->viewSortKey("\x{43A}\x{301}\x{334}"); 78b39c5158Smillert 79b39c5158Smillerteval { require Unicode::Normalize }; 80b39c5158Smillertif (!$@) { 81b39c5158Smillert my $kjeNFD = Unicode::Collate->new( 82b39c5158Smillert level => 1, 83b39c5158Smillert table => undef, 84b39c5158Smillert entry => $kjeEntry, 85b39c5158Smillert ); 86898184e3Ssthen 87898184e3Ssthenok($kjeNFD->lt("\x{43A}", "\x{43A}\x{301}")); 88898184e3Ssthenok($kjeNFD->eq("\x{45C}", "\x{43A}\x{334}\x{301}")); 89898184e3Ssthenok($kjeNFD->lt("\x{43A}", "\x{43A}\x{334}\x{301}")); 90898184e3Ssthenok($kjeNFD->eq("\x{45C}", "\x{43A}\x{301}\x{334}")); 91898184e3Ssthen# 9 92b39c5158Smillert 93b39c5158Smillert my $aaNFD = Unicode::Collate->new( 94b39c5158Smillert level => 1, 95b39c5158Smillert table => undef, 96b39c5158Smillert entry => $aaEntry, 97b39c5158Smillert ); 98b39c5158Smillert 99b39c5158Smillertok($aaNFD->lt("Z", "A\x{30A}\x{304}")); 100b39c5158Smillertok($aaNFD->eq("A", "A\x{304}\x{30A}")); 101*eac174f2Safresh1ok($aaNFD->eq(_pack_U(0xE5), "A\x{30A}\x{304}")); 102b39c5158Smillertok($aaNFD->eq("A\x{304}", "A\x{304}\x{30A}")); 103b39c5158Smillertok($aaNFD->lt("Z", "A\x{327}\x{30A}")); 104b39c5158Smillertok($aaNFD->lt("Z", "A\x{30A}\x{327}")); 105b39c5158Smillertok($aaNFD->lt("Z", "A\x{31A}\x{30A}")); 106b39c5158Smillertok($aaNFD->lt("Z", "A\x{30A}\x{31A}")); 107898184e3Ssthen# 17 108b39c5158Smillert 109b39c5158Smillert my $aaPre = Unicode::Collate->new( 110b39c5158Smillert level => 1, 111b39c5158Smillert normalization => "prenormalized", 112b39c5158Smillert table => undef, 113b39c5158Smillert entry => $aaEntry, 114b39c5158Smillert ); 115b39c5158Smillert 116b39c5158Smillertok($aaPre->lt("Z", "A\x{30A}\x{304}")); 117b39c5158Smillertok($aaPre->eq("A", "A\x{304}\x{30A}")); 118*eac174f2Safresh1ok($aaPre->eq(_pack_U(0xE5), "A\x{30A}\x{304}")); 119b39c5158Smillertok($aaPre->eq("A\x{304}", "A\x{304}\x{30A}")); 120b39c5158Smillertok($aaPre->lt("Z", "A\x{327}\x{30A}")); 121b39c5158Smillertok($aaPre->lt("Z", "A\x{30A}\x{327}")); 122b39c5158Smillertok($aaPre->lt("Z", "A\x{31A}\x{30A}")); 123b39c5158Smillertok($aaPre->lt("Z", "A\x{30A}\x{31A}")); 124898184e3Ssthen# 25 125898184e3Ssthen} else { 126b39c5158Smillert ok(1) for 1..20; 127b39c5158Smillert} 128b39c5158Smillert 129b39c5158Smillert# again: loading Unicode::Normalize should not affect $kjeNoN. 130898184e3Ssthenok($kjeNoN->lt("\x{43A}", "\x{43A}\x{301}")); 131898184e3Ssthenok($kjeNoN->gt("\x{45C}", "\x{43A}\x{334}\x{301}")); 132898184e3Ssthenok($kjeNoN->eq("\x{43A}", "\x{43A}\x{334}\x{301}")); 133898184e3Ssthenok($kjeNoN->eq("\x{45C}", "\x{43A}\x{301}\x{334}")); 134b39c5158Smillert 135898184e3Ssthenok($sortkeys{'KAac'}, $kjeNoN->viewSortKey("\x{43A}\x{301}")); 136898184e3Ssthenok($sortkeys{'KAta'}, $kjeNoN->viewSortKey("\x{43A}\x{334}\x{301}")); 137898184e3Ssthenok($sortkeys{'KAat'}, $kjeNoN->viewSortKey("\x{43A}\x{301}\x{334}")); 138898184e3Ssthen 139898184e3Ssthen# 32 140b39c5158Smillert 141b39c5158Smillertmy $aaNoN = Unicode::Collate->new( 142b39c5158Smillert level => 1, 143b39c5158Smillert table => undef, 144b39c5158Smillert entry => $aaEntry, 145b39c5158Smillert normalization => undef, 146b39c5158Smillert); 147b39c5158Smillert 148b39c5158Smillertok($aaNoN->lt("Z", "A\x{30A}\x{304}")); 149b39c5158Smillertok($aaNoN->eq("A", "A\x{304}\x{30A}")); 150*eac174f2Safresh1ok($aaNoN->eq(_pack_U(0xE5), "A\x{30A}\x{304}")); 151b39c5158Smillertok($aaNoN->eq("A\x{304}", "A\x{304}\x{30A}")); 152b39c5158Smillertok($aaNoN->eq("A", "A\x{327}\x{30A}")); 153b39c5158Smillertok($aaNoN->lt("Z", "A\x{30A}\x{327}")); 154b39c5158Smillertok($aaNoN->eq("A", "A\x{31A}\x{30A}")); 155b39c5158Smillertok($aaNoN->lt("Z", "A\x{30A}\x{31A}")); 156b39c5158Smillert 157898184e3Ssthen# 40 158898184e3Ssthen 159898184e3Ssthen# suppress contractions (not affected) 160898184e3Ssthen 161898184e3Ssthenmy $kjeSup = Unicode::Collate->new( 162898184e3Ssthen level => 1, 163898184e3Ssthen table => undef, 164898184e3Ssthen normalization => undef, 165898184e3Ssthen entry => $kjeEntry, 166898184e3Ssthen suppress => [0x400..0x45F], 167898184e3Ssthen); 168898184e3Ssthen 169898184e3Ssthenok($kjeSup->lt("\x{43A}", "\x{43A}\x{301}")); 170898184e3Ssthenok($kjeSup->eq("\x{45C}", "\x{43A}\x{301}")); 171898184e3Ssthenok($kjeSup->lt("\x{41A}", "\x{41A}\x{301}")); 172898184e3Ssthenok($kjeSup->eq("\x{40C}", "\x{41A}\x{301}")); 173898184e3Ssthen 174898184e3Ssthen# 44 175898184e3Ssthen 176898184e3Ssthenour $tibetanEntry = <<'ENTRIES'; 177898184e3Ssthen0000 ; [.0000.0000.0000.0000] # [0000] NULL (in 6429) 178b8851fccSafresh10FB2 ; [.205B.0020.0002.0FB2] # TIBETAN SUBJOINED LETTER RA 179b8851fccSafresh10FB3 ; [.205E.0020.0002.0FB3] # TIBETAN SUBJOINED LETTER LA 180898184e3Ssthen0F71 ; [.206D.0020.0002.0F71] # TIBETAN VOWEL SIGN AA 181898184e3Ssthen0F72 ; [.206E.0020.0002.0F72] # TIBETAN VOWEL SIGN I 182898184e3Ssthen0F73 ; [.206F.0020.0002.0F73] # TIBETAN VOWEL SIGN II 183898184e3Ssthen0F71 0F72 ; [.206F.0020.0002.0F73] # TIBETAN VOWEL SIGN II 184898184e3Ssthen0F80 ; [.2070.0020.0002.0F80] # TIBETAN VOWEL SIGN REVERSED I 185898184e3Ssthen0F81 ; [.2071.0020.0002.0F81] # TIBETAN VOWEL SIGN REVERSED II 186898184e3Ssthen0F71 0F80 ; [.2071.0020.0002.0F81] # TIBETAN VOWEL SIGN REVERSED II 187898184e3Ssthen0F74 ; [.2072.0020.0002.0F74] # TIBETAN VOWEL SIGN U 188898184e3Ssthen0F75 ; [.2073.0020.0002.0F75] # TIBETAN VOWEL SIGN UU 189898184e3Ssthen0F71 0F74 ; [.2073.0020.0002.0F75] # TIBETAN VOWEL SIGN UU 190898184e3Ssthen0F76 ; [.2074.0020.0002.0F76] # TIBETAN VOWEL SIGN VOCALIC R 191898184e3Ssthen0FB2 0F80 ; [.2074.0020.0002.0F76] # TIBETAN VOWEL SIGN VOCALIC R 192898184e3Ssthen0F77 ; [.2075.0020.0002.0F77] # TIBETAN VOWEL SIGN VOCALIC RR 193898184e3Ssthen0FB2 0F81 ; [.2075.0020.0002.0F77] # TIBETAN VOWEL SIGN VOCALIC RR 194898184e3Ssthen0FB2 0F71 0F80 ; [.2075.0020.0002.0F77] # TIBETAN VOWEL SIGN VOCALIC RR 195898184e3Ssthen0F78 ; [.2076.0020.0002.0F78] # TIBETAN VOWEL SIGN VOCALIC L 196898184e3Ssthen0FB3 0F80 ; [.2076.0020.0002.0F78] # TIBETAN VOWEL SIGN VOCALIC L 197898184e3Ssthen0F79 ; [.2077.0020.0002.0F79] # TIBETAN VOWEL SIGN VOCALIC LL 198898184e3Ssthen0FB3 0F81 ; [.2077.0020.0002.0F79] # TIBETAN VOWEL SIGN VOCALIC LL 199898184e3Ssthen0FB3 0F71 0F80 ; [.2077.0020.0002.0F79] # TIBETAN VOWEL SIGN VOCALIC LL 200898184e3SsthenENTRIES 201898184e3Ssthen 202898184e3Ssthen# ccc(0F71) = 129 203898184e3Ssthen# ccc(0F80) = 130 204898184e3Ssthen# 0F76 = 0FB2 0F80 205898184e3Ssthen# 0F78 = 0FB3 0F80 206898184e3Ssthen# 0F81 = 0F71 0F80 207898184e3Ssthen# 0F77 = <compat> 0FB2 0F81 = 0FB2 0F71 0F80 = 0F76 0F71 208898184e3Ssthen# 0F79 = <compat> 0FB3 0F81 = 0FB3 0F71 0F80 = 0F78 0F71 209898184e3Ssthen 210898184e3Sstheneval { require Unicode::Normalize }; 211898184e3Ssthenif (!$@) { 212898184e3Ssthen my $tibNFD = Unicode::Collate->new( 213898184e3Ssthen table => undef, 214898184e3Ssthen entry => $tibetanEntry, 215b8851fccSafresh1 UCA_Version => 24, 216898184e3Ssthen ); 217898184e3Ssthen 218898184e3Ssthen # VOCALIC RR 219898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{334}\x{F81}")); 220898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{F81}\x{334}")); 221898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{F81}\0\x{334}")); 222898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{F76}\x{334}\x{F71}")); 223898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{F76}\x{F71}\x{334}")); 224898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{F76}\x{F71}\0\x{334}")); 225898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{334}\x{F71}\x{F80}")); 226898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{F71}\x{334}\x{F80}")); 227898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{F71}\x{F80}\x{334}")); 228898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{F71}\x{F80}\0\x{334}")); 229898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{334}\x{F80}\x{F71}")); 230898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{F80}\x{334}\x{F71}")); 231898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{F80}\x{F71}\x{334}")); 232898184e3Ssthen ok($tibNFD->eq("\x{F77}\0\x{334}", "\x{FB2}\x{F80}\x{F71}\0\x{334}")); 233898184e3Ssthen# 58 234898184e3Ssthen 235898184e3Ssthen # VOCALIC LL 236898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{334}\x{F81}")); 237898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{F81}\x{334}")); 238898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{F81}\0\x{334}")); 239898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{F78}\x{334}\x{F71}")); 240898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{F78}\x{F71}\x{334}")); 241898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{F78}\x{F71}\0\x{334}")); 242898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{334}\x{F71}\x{F80}")); 243898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{F71}\x{334}\x{F80}")); 244898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{F71}\x{F80}\x{334}")); 245898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{F71}\x{F80}\0\x{334}")); 246898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{334}\x{F80}\x{F71}")); 247898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{F80}\x{334}\x{F71}")); 248898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{F80}\x{F71}\x{334}")); 249898184e3Ssthen ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{F80}\x{F71}\0\x{334}")); 250898184e3Ssthen# 72 251898184e3Ssthen 252b8851fccSafresh1 my $a1 = "\x{FB2}\x{334}\x{F81}"; 253b8851fccSafresh1 my $b1 = "\x{F77}\0\x{334}"; 254b8851fccSafresh1 my $a2 = "\x{FB2}\x{334}\x{F81}"; 255b8851fccSafresh1 my $b2 = "\x{FB2}\x{F80}\0\x{334}\x{F71}"; 256b8851fccSafresh1 257b8851fccSafresh1 for my $v (qw/20 22 24 26 28/) { 258b8851fccSafresh1 my $tib = Unicode::Collate->new( 259b8851fccSafresh1 table => undef, 260b8851fccSafresh1 entry => $tibetanEntry, 261b8851fccSafresh1 UCA_Version => $v, 262b8851fccSafresh1 ); 263b8851fccSafresh1 my $long = 22 <= $v && $v <= 24; 264b8851fccSafresh1 ok($tib->cmp($a1, $b1), $long ? 0 : -1); 265b8851fccSafresh1 ok($tib->cmp($a2, $b2), $long ? 1 : 0); 266b8851fccSafresh1 267b8851fccSafresh1 $tib->change(long_contraction => 0); 268b8851fccSafresh1 ok($tib->cmp($a1, $b1), -1); 269b8851fccSafresh1 ok($tib->cmp($a2, $b2), 0); 270b8851fccSafresh1 271b8851fccSafresh1 $tib->change(long_contraction => 1); 272b8851fccSafresh1 ok($tib->cmp($a1, $b1), 0); 273b8851fccSafresh1 ok($tib->cmp($a2, $b2), 1); 274b8851fccSafresh1 } 275b8851fccSafresh1# 102 276b8851fccSafresh1 277b8851fccSafresh1 # UCA_Version => 22 278b8851fccSafresh1 ok($tibNFD->cmp($a1, $b1), 0); 279b8851fccSafresh1 ok($tibNFD->cmp($a2, $b2), 1); 280b8851fccSafresh1 281b8851fccSafresh1 $tibNFD->change(UCA_Version => 26); # not affect long_contraction 282b8851fccSafresh1 ok($tibNFD->cmp($a1, $b1), 0); 283b8851fccSafresh1 ok($tibNFD->cmp($a2, $b2), 1); 284b8851fccSafresh1# 106 285b8851fccSafresh1 286898184e3Ssthen my $discontNFD = Unicode::Collate->new( 287898184e3Ssthen table => undef, 288b8851fccSafresh1 UCA_Version => 22, 289898184e3Ssthen entry => <<'ENTRIES', 290898184e3Ssthen0000 ; [.0000.0000.0000.0000] # [0000] NULL (in 6429) 291898184e3Ssthen0301 ; [.0000.0032.0002.0301] # COMBINING ACUTE ACCENT 292898184e3Ssthen0300 ; [.0000.0035.0002.0300] # COMBINING GRAVE ACCENT 293898184e3Ssthen0327 ; [.0000.0055.0002.0327] # COMBINING CEDILLA 294898184e3Ssthen0334 ; [.0000.008B.0002.0334] # COMBINING TILDE OVERLAY 295898184e3Ssthen0041 ; [.0101.0020.0008.0041] # LATIN CAPITAL LETTER A 296898184e3Ssthen0041 0327 0301 ; [.0102.0020.0008.0041] 297898184e3Ssthen0041 0300 ; [.0103.0020.0008.0041] 298898184e3SsthenENTRIES 299898184e3Ssthen ); 300898184e3Ssthen 301b8851fccSafresh1 ok($discontNFD->eq("A\x{334}\x{327}\x{301}", "A\x{327}\x{301}\0\x{334}")); 302b8851fccSafresh1 ok($discontNFD->eq("A\x{327}\x{300}", "A\x{300}\0\x{327}")); 303b8851fccSafresh1 304b8851fccSafresh1 $discontNFD->change(long_contraction => 0); 305b8851fccSafresh1 ok($discontNFD->lt("A\x{334}\x{327}\x{301}", "A\x{327}\x{301}\0\x{334}")); 306b8851fccSafresh1 ok($discontNFD->eq("A\x{334}\x{327}\x{301}", "A\0\x{327}\x{301}\x{334}")); 307b8851fccSafresh1 ok($discontNFD->eq("A\x{327}\x{300}", "A\x{300}\0\x{327}")); 308b8851fccSafresh1 309b8851fccSafresh1 $discontNFD->change(level => 1); 310b8851fccSafresh1 ok($discontNFD->gt("A\x{327}\x{300}", "A\x{327}\0\x{300}")); 311b8851fccSafresh1 312b8851fccSafresh1 # discontiguous 313b8851fccSafresh1 ok($discontNFD->lt("A\x{334}\x{327}\x{301}", "A\x{327}\x{301}\0\x{334}")); 314b8851fccSafresh1 ok($discontNFD->lt("A\x{334}\x{327}\x{301}", "A\x{300}")); 315b8851fccSafresh1 ok($discontNFD->eq("A\x{334}\x{327}\x{301}", "A")); 316b8851fccSafresh1 317b8851fccSafresh1 # contiguous 318b8851fccSafresh1 ok($discontNFD->eq("A\x{327}\x{301}", "A\x{327}\x{301}\0\x{334}")); 319b8851fccSafresh1 ok($discontNFD->lt("A\x{327}\x{301}", "A\x{300}")); 320b8851fccSafresh1 ok($discontNFD->gt("A\x{327}\x{301}", "A")); 321898184e3Ssthen} else { 322b8851fccSafresh1 ok(1) for 1..74; 323898184e3Ssthen} 324b8851fccSafresh1# 118 325