BEGIN { $| = 1; print "1..13\n"; }
END {print "not ok 1\n" unless $loaded;}
use String::Multibyte;
$^W = 1;
$loaded = 1;
print "ok 1\n";
$mb = String::Multibyte->new({
charset => 'sjis_grapheme',
regexp => '[\xB3\xB6-\xC4]\xDE|[\xCA-\xCE][\xDE\xDF]|' .
'[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]',
}, 1);
$NG = 0;
for ("¿eXg", "abc", "±²³´µ", "Êß°Ù=Perl",
"\001\002\003\000\n", "", " ", '@') {
$NG++ unless $mb->islegal($_);
}
print !$NG ? "ok" : "not ok", " 2\n";
for ("»ê໤¾\xFF\xFF", "ǤÉ౤Éà\x81\x39",
"\x91\x00", "±êÍ\xFFǤ©È") {
$NG++ unless ! $mb->islegal($_);
}
print !$NG ? "ok" : "not ok", " 3\n";
print $mb->islegal(" ", "P", "", "¶Ý¼Þ test")
&& ! $mb->islegal("ú{","³kanji","\xA0","PERL")
? "ok" : "not ok", " 4\n";
print 0 eq $mb->length("")
&& 3 eq $mb->length("abc")
&& 4 eq $mb->length("abc\n")
&& 5 eq $mb->length("±²³´µ")
&& 3 eq $mb->length("Êß°Ù")
&& 6 eq $mb->length("¶Þ·Þ¸Þ¹ÞºÞ³Þ")
&& 10 eq $mb->length(" ©³½ÈÍÜâçí")
&& 14 eq $mb->length(" ©³½È\n\nÍÜâçí\n\n")
&& 9 eq $mb->length('AIUEOú{¿')
? "ok" : "not ok", " 5\n";
$ref = '¿{úµ´³²±OEUIAoeuia¨¦¤¢ ';
$str = ' ¢¤¦¨aiueoAIUEO±²³´µú{¿';
print $ref eq $mb->strrev($str)
? "ok" : "not ok", " 6\n";
$ref = 'Êß°ÙðgÁı¿ËÞϼ®³';
$str = '³®¼ÏËÞ¿±ÄÁgðÙ°Êß';
print $ref eq $mb->strrev($str)
? "ok" : "not ok", " 7\n";
print $mb->strspn ("XZ\0Z\0Y", "\0X\0YZ") == 6
&& $mb->strcspn("PerlÍÊ¢B", "XY\0r") == 2
&& $mb->strspn ("+0.12345*12", "+-.0123456789") == 8
&& $mb->strcspn("PerlÍÊ¢B", "Ô©") == 6
&& $mb->strspn ("", "123") == 0
&& $mb->strcspn("", "123") == 0
&& $mb->strspn (" ¢¤¦¨", "") == 0
&& $mb->strcspn(" ¢¤¦¨", "") == 5
&& $mb->strspn ("ÊßÊßÊÍßÎß", "ÊßËßÌßÍßÎß") == 2
&& $mb->strcspn("¹»ÉºÞÊÝÊ", "¶Þ·Þ¸Þ¹ÞºÞ") == 3
&& $mb->strspn ("ÊßÊßÊÍßÎß", "ÊËÌÍÎ") == 0
&& $mb->strcspn("ÊßÊßÊÍßÎß", "ÊËÌÍÎ") == 2
&& $mb->strspn ("¹»ÉºÞÊÝÊ", "¶·¸¹º") == 1
&& $mb->strcspn("¹»ÉºÞÊÝÊ", "¶·¸¹º") == 0
&& $mb->strspn ("", "") == 0
&& $mb->strcspn("", "") == 0
? "ok" : "not ok", " 8\n";
$str = "ÈñÆ¢¨¤©";
print 3 eq $mb->strtr(\$str," ¢¤¦¨", "ACEGI")
&& $str eq "ÈñÆCIE©"
? "ok" : "not ok", " 9\n";
$digit_tr = $mb->trclosure(
"1234567890-", "êñOlÜZµªãZ|");
$frstr1 = "TELF0124-45-6789\n";
$tostr1 = "TELFZêñl|lÜ|Zµªã\n";
$frstr2 = "FAXF0124-51-5368\n";
$tostr2 = "FAXFZêñl|Üê|ÜOZª\n";
$restr1 = &$digit_tr($frstr1);
$restr2 = &$digit_tr($frstr2);
print $tostr1 eq $restr1 && $tostr2 eq $restr2
? "ok" : "not ok", " 10\n";
print $mb->index("", "") == 0
&& $mb->index("", "a") == -1
&& $mb->index(" ", "") == 0
&& $mb->index(" ", "", 1) == 1
&& $mb->index("", " ", 1) == -1
&& $mb->index(" ", "a", -1) == -1
&& $mb->index("\x81\x81\x40\x81\x40", "\x81\x40") == 2
&& $mb->index("´Ä¤´ÄÞ", "´ÄÞ") == 3
&& $mb->index("´Ä¤´Ä", "´ÄÞ") == -1
&& $mb->index("´Ä¤´ÄÞ", "´Ä") == 0
&& $mb->index("´ÄÞ¤´Ä", "´Ä") == 3
&& $mb->index("ŶÀޤŶÀ", "ŶÀ") == 4
&& $mb->index("ŶÀޤŶÀ", "ŶÀÞ") == 0
? "ok" : "not ok", " 11\n";
print $mb->rindex("", "") == 0
&& $mb->rindex("", "a") == -1
&& $mb->rindex(" ", "") == 1
&& $mb->rindex(" ", "", 1) == 1
&& $mb->rindex("", " ", 1) == -1
&& $mb->rindex(" ", "a", -1) == -1
&& $mb->rindex("\x81\x81\x40\x81\x40", "\x81\x40") == 2
&& $mb->rindex("´Ä¤´ÄÞ", "´ÄÞ") == 3
&& $mb->rindex("´Ä¤´Ä", "´ÄÞ") == -1
&& $mb->rindex("´Ä¤´ÄÞ", "´Ä") == 0
&& $mb->rindex("´ÄÞ¤´Ä", "´Ä") == 3
&& $mb->rindex("ŶÀޤŶÀ", "ŶÀ") == 4
&& $mb->rindex("ŶÀޤŶÀ", "ŶÀÞ") == 0
? "ok" : "not ok", " 12\n";
print "¶Þ¶Þ¶Þ¶Þ¶Þ:¶Þ¶Þ¶Þ¶Þ:¶Þ¶Þ¶Þ" eq
join(':', $mb->strsplit("¶", "¶Þ¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ"))
&& "¶Þ¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ" eq
join(':', $mb->strsplit("¶", "¶Þ¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ", 1))
&& "¶Þ¶Þ¶Þ¶Þ¶Þ:¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ" eq
join(':', $mb->strsplit("¶", "¶Þ¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ", 2))
&& "¶Þ¶Þ¶Þ¶Þ¶Þ:¶Þ¶Þ¶Þ¶Þ:¶Þ¶Þ¶Þ" eq
join(':', $mb->strsplit("¶", "¶Þ¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ", 3))
&& "¶Þ¶Þ¶Þ:¶Þ¶Þ:¶Þ¶Þ¶Þ" eq
join(':', $mb->strsplit("¶Þ¶Þ¶", "¶Þ¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶Þ"))
&& "¶Þ¶Þ¶Þ::¶Þ:¶Þ¶Þ" eq
join(':', $mb->strsplit("¶Þ¶Þ¶", "¶Þ¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶¶Þ¶Þ¶Þ¶¶Þ¶Þ"))
&& "¶Þ¶Þ:¶Þ¶Þ¶:¶Þ¶Þ" eq
join(':', $mb->strsplit("¶Þ¶Þ¶Þ¶", "¶Þ¶Þ¶Þ¶Þ¶Þ¶¶Þ¶Þ¶¶Þ¶Þ¶Þ¶¶Þ¶Þ"))
? "ok" : "not ok", " 13\n";
1;
__END__