The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

BEGIN { $| = 1; print "1..11\n"; }
END {print "not ok 1\n" unless $loaded;}
use String::Multibyte;
$^W = 1;
$loaded = 1;
print "ok 1\n";

#####

$mb = String::Multibyte->new('EUC_JP',1);

$NG = 0;
for ("´Á»ú¥Æ¥¹¥È", "abc", "Ž±Ž²Ž³Ž´Žµ", "ŽÊŽßŽ°ŽÙ=Perl",
	"\001\002\003\000\n", "", " ", '¡¡') {
    $NG++ unless $mb->islegal($_);
}
print !$NG ? "ok" : "not ok", " 2\n";

$NG = 0;
for ("¤½¤ì¤â¤½¤¦¤À\xFF\xFF", "¤É¤¦¤Ë¤â¤³¤¦¤Ë¤â\x81\x39", "\xA1\x21",
	"\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("Ž±Ž²Ž³Ž´Žµ")
  &&  4 eq $mb->length("ŽÊŽßŽ°ŽÙ")
  && 12 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";

print $mb->mkrange("¤¡-¤¦") eq "¤¡¤¢¤£¤¤¤¥¤¦"
  &&  $mb->mkrange("0-9£°-£¹") eq "0123456789£°£±£²£³£´£µ£¶£·£¸£¹"
  &&  $mb->mkrange('ɽ-') eq 'ɽ-'
  ? "ok" : "not ok", " 6\n";

$ref = '»ú´ÁËÜÆüŽµŽ´Ž³Ž²Ž±OEUIAoeuia¤ª¤¨¤¦¤¤¤¢';
$str = '¤¢¤¤¤¦¤¨¤ªaiueoAIUEOŽ±Ž²Ž³Ž´ŽµÆüËÜ´Á»ú';

print $ref eq $mb->strrev($str)
  ? "ok" : "not ok", " 7\n";

print $mb->strspn("XZ\0Z\0Yz", "\0X\0YZ") == 6
   && $mb->strcspn("Perl¤ÏÌÌÇò¤¤¡£", "XY\0r") == 2
   && $mb->strspn("+0.12345*12", "+-.0123456789") == 8
   && $mb->strcspn("Perl¤ÏÌÌÇò¤¤¡£", "ÀÖÀIJ«Çò¹õ") == 6
   && $mb->strspn("", "123") == 0
   && $mb->strcspn("", "123") == 0
   && $mb->strspn("¤¢¤¤¤¦¤¨¤ª", "") == 0
   && $mb->strcspn("¤¢¤¤¤¦¤¨¤ª", "") == 5
   && $mb->strspn("ŽÊŽßŽÊŽßŽÊŽÍŽßŽÎŽß", "ŽÊŽßŽËŽßŽÌŽßŽÍŽßŽÎŽß") == 9
   && $mb->strcspn("Ž¹Ž»ŽÉŽºŽÞŽÊŽÝŽÊ", "Ž¶ŽÞŽ·ŽÞŽ¸ŽÞŽ¹ŽÞŽºŽÞ") == 0
   && $mb->strspn("", "") == 0
   && $mb->strcspn("", "") == 0
 ? "ok" : "not ok", " 8\n";

$str = "¤Ê¤ó¤È¤¤¤ª¤¦¤«";
print $mb->strtr(\$str,"¤¢¤¤¤¦¤¨¤ª", "¥¢¥¤¥¦¥¨¥ª") eq 3
    && $str eq "¤Ê¤ó¤È¥¤¥ª¥¦¤«"
  ? "ok" : "not ok", " 9\n";

print $mb->strtr('¤ª¤«¤«¤¦¤á¤Ü¤·¡¡¤Á¤Á¤È¤Ï¤Ï', '¤¡-¤ó', '', 's')
	eq '¤ª¤«¤¦¤á¤Ü¤·¡¡¤Á¤È¤Ï'
   && $mb->strtr("¾ò·ï±é»»»Ò¤Î»È¤¤¤¹¤®¤Ï¸«¶ì¤·¤¤", '¤¡-¤ó', '¡ô', 'cs')
	eq '¡ô¤Î¡ô¤¤¤¹¤®¤Ï¡ô¤·¤¤'
   && $mb->strtr("90 - 32 = 58", "0-9", "A-J") eq "JA - DC = FI"
   && $mb->strtr("90 - 32 = 58", "0-9", "A-J", "R") eq "JA - 32 = 58"
    ? "ok" : "not ok", " 10\n";

$digit_tr = $mb->trclosure(
	"1234567890-", "°ìÆ󻰻͸ÞÏ»¼·È¬¶å¡»¡Ý");

$frstr1 = "TEL¡§0124-45-6789\n";
$tostr1 = "TEL¡§¡»°ìÆó»Í¡Ý»Í¸Þ¡ÝÏ»¼·È¬¶å\n";
$frstr2 = "FAX¡§0124-51-5368\n";
$tostr2 = "FAX¡§¡»°ìÆó»Í¡Ý¸Þ°ì¡Ý¸Þ»°Ï»È¬\n";

$restr1 = &$digit_tr($frstr1);
$restr2 = &$digit_tr($frstr2);

print $tostr1 eq $restr1 && $tostr2 eq $restr2
    ? "ok" : "not ok", " 11\n";

1;
__END__