Condition Coverage

lib/mb.pm
Criterion Covered Total %
condition 97 190 51.0


and 2 conditions

line l !l condition
4004 6286 71 $i + 1 < $#hyphened and $hyphened[$i + 1] eq "-" and 1

and 3 conditions

line !l l&&!r l&&r condition
27 105 0 0 $] < "5.006" and not defined &warnings::import
81 93 10 0 defined $_[0] and $_[0] =~ /\A [0-9] /msx
450 37 0 0 @_ and not wantarray
710 8 8 230 $pos < CORE::length $str and $pos <= $position
945 205 0 3069 defined $replacement[$i] and $replacement[$i] ne ""
8 0 89 defined $replacement[-1] and $replacement[-1] ne ""
991 43 0 9 defined $last_transliterated and $replacement[-1] eq $last_transliterated
1038 131 28 177 defined $last_transliterated and $tr{$x} eq $last_transliterated
1209 0 0 8 defined $1 and CORE::substr($&, 0, CORE::length $1) eq $1
1217 0 0 53 defined $1 and CORE::substr($&, -CORE::length($1)) eq $1
1238 0 0 7 defined $1 and CORE::substr($&, -CORE::length($1)) eq $1
1493 4 298 34 ($modifier) = $pattern =~ /\A \(\?\^? (.+?) [\)\-\:] /msx and $modifier =~ /x/msx
1527 303 12 21 defined $_[2] and $_[2] >= 1
1533 15 6 42 --$limit > 0 and $string =~ s/\A((?:$x)$substring_quantifier)$pattern//
1553 21 6 6 defined $_[2] and $_[2] >= 1
1564 0 309 0 scalar @split >= 1 and $split[-1] eq ""
1589 2 0 0 $OSNAME =~ /MSWin32/ and $script_encoding =~ /\A (?: sjis | gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx
1599 0 0 0 $script_encoding =~ /\A (?: sjis ) \z/msx and $_[0] =~ /\A $x* [\x81-\x9F\xE0-\xFC][\x5C] \z/msx
0 0 0 $script_encoding =~ /\A (?: gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx and $_[0] =~ /\A $x* [\x81-\xFE][\x5C] \z/msx
1628 11209 0 0 @_ and not wantarray
1631 11209 0 0 $OSNAME =~ /MSWin32/ and $script_encoding =~ /\A (?: sjis | gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx
11209 0 0 $OSNAME =~ /MSWin32/ and $script_encoding =~ /\A (?: sjis | gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx and /[\x5C]\z/
1666 3 0 0 $OSNAME =~ /MSWin32/ and $script_encoding =~ /\A (?: sjis | gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx
3 0 0 $OSNAME =~ /MSWin32/ and $script_encoding =~ /\A (?: sjis | gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx and /[\x5C]\z/
1685 7 0 0 $OSNAME =~ /MSWin32/ && $script_encoding =~ /\A (?: sjis | gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx
1703 9 0 0 $OSNAME =~ /MSWin32/ and $script_encoding =~ /\A (?: sjis | gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx
9 0 0 $OSNAME =~ /MSWin32/ and $script_encoding =~ /\A (?: sjis | gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx and /[\x5C]\z/
1719 10222 0 0 $OSNAME =~ /MSWin32/ and $script_encoding =~ /\A (?: sjis | gbk | uhc | big5 | big5hkscs | gb18030 ) \z/msx
4004 5668 618 71 $i + 1 < $#hyphened and $hyphened[$i + 1] eq "-"
4224 120 154 160 $a[1] <= 128 && 160 <= $b[1]
4591 987 436 117298 $i < $#classmate and $classmate[$i + 1] eq "-"
4695 117843 398 28 @sbcs && @xbcs
398 0 117843 !@sbcs && @xbcs
0 0 398 @sbcs && !@xbcs
5266 21 1110 994 @sbcs && @xbcs
1110 0 21 !@sbcs && @xbcs
0 0 1110 @sbcs && !@xbcs

or 2 conditions

line l !l condition
218 0 0 $module_path ||= "."
229 0 0 $module_path ||= "."
517 8 8 $position ||= 0
753 194 0 {'sjis', '(?>[\\x81-\\x9F\\xE0-\\xFC][\\x00-\\xFF]|[\\x80-\\xFF])', 'gbk', '(?>[\\x81-\\xFE][\\x00-\\xFF])', 'uhc', '(?>[\\x81-\\xFE][\\x00-\\xFF])', 'big5', '(?>[\\x81-\\xFE][\\x00-\\xFF])', 'big5hkscs', '(?>[\\x81-\\xFE][\\x00-\\xFF])', 'eucjp', '(?>[\\xA1-\\xFE][\\x00-\\xFF])', 'gb18030', '(?>[\\x81-\\xFE][\\x30-\\x39][\\x81-\\xFE][\\x30-\\x39]|[\\x81-\\xFE][\\x00-\\xFF])', 'rfc2279', '(?>[\\xC2-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF][\\x80-\\xBF]|[\\xF0-\\xF4][\\x80-\\xBF][\\x80-\\xBF][\\x80-\\xBF])', 'utf8', '(?>[\\xE1-\\xEC][\\x80-\\xBF][\\x80-\\xBF]|[\\xC2-\\xDF][\\x80-\\xBF]|[\\xEE-\\xEF][\\x80-\\xBF][\\x80-\\xBF]|[\\xF0-\\xF0][\\x90-\\xBF][\\x80-\\xBF][\\x80-\\xBF]|[\\xE0-\\xE0][\\xA0-\\xBF][\\x80-\\xBF]|[\\xED-\\xED][\\x80-\\x9F][\\x80-\\xBF]|[\\xF1-\\xF3][\\x80-\\xBF][\\x80-\\xBF][\\x80-\\xBF]|[\\xF4-\\xF4][\\x80-\\x8F][\\x80-\\xBF][\\x80-\\xBF])', 'wtf8', '(?>[\\xE1-\\xEF][\\x80-\\xBF][\\x80-\\xBF]|[\\xC2-\\xDF][\\x80-\\xBF]|[\\xE0-\\xE0][\\xA0-\\xBF][\\x80-\\xBF]|[\\xF0-\\xF0][\\x90-\\xBF][\\x80-\\xBF][\\x80-\\xBF]|[\\xF1-\\xF3][\\x80-\\xBF][\\x80-\\xBF][\\x80-\\xBF]|[\\xF4-\\xF4][\\x80-\\x8F][\\x80-\\xBF][\\x80-\\xBF])'}->{$script_encoding} || '[\\x80-\\xFF]'
807 96 0 {'sjis', qr/(?(?=.{0,2147483646}\z)(?:$x)*?|(?(?=[^\x81-\x9F\xE0-\xFC]+\z).*?|.*?[^\x81-\x9F\xE0-\xFC](?>[\x81-\x9F\xE0-\xFC][\x81-\x9F\xE0-\xFC])*?))/msx, 'eucjp', qr/(?(?=.{0,2147483646}\z)(?:$x)*?|(?(?=[^\xA1-\xFE\xA1-\xFE]+\z).*?|.*?[^\xA1-\xFE\xA1-\xFE](?>[\xA1-\xFE\xA1-\xFE][\xA1-\xFE\xA1-\xFE])*?))/msx, 'gbk', qr/(?(?=.{0,2147483646}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'uhc', qr/(?(?=.{0,2147483646}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'big5', qr/(?(?=.{0,2147483646}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'big5hkscs', qr/(?(?=.{0,2147483646}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'gb18030', qr/(?(?=.{0,2147483646}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx}->{$script_encoding} || die()
818 0 0 {'sjis', qr/(?(?=.{0,65534}\z)(?:$x)*?|(?(?=[^\x81-\x9F\xE0-\xFC]+\z).*?|.*?[^\x81-\x9F\xE0-\xFC](?>[\x81-\x9F\xE0-\xFC][\x81-\x9F\xE0-\xFC])*?))/msx, 'eucjp', qr/(?(?=.{0,65534}\z)(?:$x)*?|(?(?=[^\xA1-\xFE\xA1-\xFE]+\z).*?|.*?[^\xA1-\xFE\xA1-\xFE](?>[\xA1-\xFE\xA1-\xFE][\xA1-\xFE\xA1-\xFE])*?))/msx, 'gbk', qr/(?(?=.{0,65534}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'uhc', qr/(?(?=.{0,65534}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'big5', qr/(?(?=.{0,65534}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'big5hkscs', qr/(?(?=.{0,65534}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'gb18030', qr/(?(?=.{0,65534}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx}->{$script_encoding} || die()
829 0 0 {'sjis', qr/(?(?=.{0,32766}\z)(?:$x)*?|(?(?=[^\x81-\x9F\xE0-\xFC]+\z).*?|.*?[^\x81-\x9F\xE0-\xFC](?>[\x81-\x9F\xE0-\xFC][\x81-\x9F\xE0-\xFC])*?))/msx, 'eucjp', qr/(?(?=.{0,32766}\z)(?:$x)*?|(?(?=[^\xA1-\xFE\xA1-\xFE]+\z).*?|.*?[^\xA1-\xFE\xA1-\xFE](?>[\xA1-\xFE\xA1-\xFE][\xA1-\xFE\xA1-\xFE])*?))/msx, 'gbk', qr/(?(?=.{0,32766}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'uhc', qr/(?(?=.{0,32766}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'big5', qr/(?(?=.{0,32766}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'big5hkscs', qr/(?(?=.{0,32766}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx, 'gb18030', qr/(?(?=.{0,32766}\z)(?:$x)*?|(?(?=[^\x81-\xFE\x81-\xFE]+\z).*?|.*?[^\x81-\xFE\x81-\xFE](?>[\x81-\xFE\x81-\xFE][\x81-\xFE\x81-\xFE])*?))/msx}->{$script_encoding} || die()
873 680443 0 {'sjis', 'Sjis::', 'gbk', 'GBK::', 'uhc', 'UHC::', 'big5', 'Big5::', 'big5hkscs', 'Big5HKSCS::', 'eucjp', 'EUCJP::', 'gb18030', 'GB18030::', 'rfc2279', 'RFC2279::', 'utf8', 'UTF2::', 'wtf8', 'WTF8::'}->{&get_script_encoding()} || die()
1782 0 0 {'ja_JP.PCK', 'sjis', 'ja', 'eucjp', 'japanese', 'eucjp', 'ja_JP.eucJP', 'eucjp', 'zh', 'gbk', 'zh.GBK', 'gbk', 'zh_CN.GBK', 'gbk', 'zh_CN.EUC', 'gbk', 'zh_CN.GB18030', 'gb18030', 'ko', 'uhc', 'ko_KR.EUC', 'uhc', 'zh_TW.BIG5', 'big5', 'zh_HK.BIG5HK', 'big5hkscs'}->{$LANG} || 'utf8'
1803 0 0 {'japanese', 'sjis', 'ja_JP.SJIS', 'sjis', 'japanese.euc', 'eucjp', 'ja_JP.eucJP', 'eucjp', 'zh_CN.hp15CN', 'gbk', 'zh_CN.gb18030', 'gb18030', 'ko_KR.eucKR', 'uhc', 'zh_TW.big5', 'big5', 'zh_HK.big5', 'big5hkscs', 'zh_HK.hkbig5', 'big5hkscs'}->{$LANG} || 'utf8'
1828 0 0 {'Ja_JP', 'sjis', 'Ja_JP.IBM-943', 'sjis', 'ja_JP', 'eucjp', 'ja_JP.IBM-eucJP', 'eucjp', 'zh_CN', 'gbk', 'zh_CN.IBM-eucCN', 'gbk', 'Zh_CN', 'gb18030', 'Zh_CN.GB18030', 'gb18030', 'ko_KR', 'uhc', 'ko_KR.IBM-eucKR', 'uhc', 'Zh_TW', 'big5', 'Zh_TW.big-5', 'big5', 'Zh_HK', 'big5hkscs', 'Zh_HK.BIG5-HKSCS', 'big5hkscs'}->{$LANG} || 'utf8'
1860 0 103 {'japanese', 'sjis', 'ja_JP.SJIS', 'sjis', 'ja_JP.mscode', 'sjis', 'ja', 'eucjp', 'japan', 'eucjp', 'japanese.euc', 'eucjp', 'Japanese-EUC', 'eucjp', 'ja_JP', 'eucjp', 'ja_JP.ujis', 'eucjp', 'ja_JP.eucJP', 'eucjp', 'ja_JP.AJEC', 'eucjp', 'ja_JP.EUC', 'eucjp', 'Jp_JP', 'eucjp', 'zh_CN.EUC', 'gbk', 'zh_CN.GB2312', 'gbk', 'zh_CN.hp15CN', 'gbk', 'zh_CN.gb18030', 'gb18030', 'ko_KR.eucKR', 'uhc', 'zh_TW.Big5', 'big5', 'zh_TW.big5', 'big5', 'zh_HK.big5', 'big5hkscs'}->{$LANG} || 'utf8'
3014 42 0 {'mb::use', 'import', 'mb::no', 'unimport'}->{$1} || die()
3341 438 0 {'(', ')', '{', '}', '[', ']', '<', '>'}->{$open_bracket} || die()
3586 42 0 {'(', ')', '{', '}', '[', ']', '<', '>'}->{$open_bracket} || die()
3656 85 0 {'(', ')', '{', '}', '[', ']', '<', '>'}->{$open_bracket} || die()
4042 2080 0 {'(', ')', '{', '}', '[', ']', '<', '>'}->{$open_bracket} || die()
4179 9 0 {'\\c@', "\000", '\\cA', "\cA", '\\cB', "\cB", '\\cC', "\cC", '\\cD', "\cD", '\\cE', "\cE", '\\cF', "\cF", '\\cG', "\a", '\\cH', "\cH", '\\cI', "\t", '\\cJ', "\n", '\\cK', "\cK", '\\cL', "\f", '\\cM', "\r", '\\cN', "\cN", '\\cO', "\cO", '\\cP', "\cP", '\\cQ', "\cQ", '\\cR', "\cR", '\\cS', "\cS", '\\cT', "\cT", '\\cU', "\cU", '\\cV', "\cV", '\\cW', "\cW", '\\cX', "\cX", '\\cY', "\cY", '\\cZ', "\cZ", '\\c[', "\e", '\\c\\', "\034", '\\c]', "\035", '\\c^', "\036", '\\c_', "\037", '\\c?', "\177"}->{$1} || die()
4827 564 0 {'(', ')', '{', '}', '[', ']', '<', '>'}->{$open_bracket} || die()

or 3 conditions

line l !l&&r !l&&!r condition
184 0 0 0 not -e $script_oo or mtime($script_oo) <= mtime($ARGV[0])
0 0 0 not -e $script_oo or mtime($script_oo) <= mtime($ARGV[0]) or mtime($script_oo) <= mtime(__FILE__)
354 5 0 0 not -e $prefix_file_oo or mtime($prefix_file_oo) <= mtime($prefix_file)
5 0 0 not -e $prefix_file_oo or mtime($prefix_file_oo) <= mtime($prefix_file) or mtime($prefix_file_oo) <= mtime(__FILE__)
597 0 0 5 $file =~ s[::][/]g or not $file =~ m([\./\\])
610 4 0 0 not -e $prefix_file_oo or mtime($prefix_file_oo) <= mtime($prefix_file)
4 0 0 not -e $prefix_file_oo or mtime($prefix_file_oo) <= mtime($prefix_file) or mtime($prefix_file_oo) <= mtime(__FILE__)
707 8 8 0 $position ||= CORE::length($str) - 1
879 1 1 48 $_[1] < -1 * scalar(@x) or 1 * scalar(@x) < $_[1]
1371 12 180 0 {'A', 'Aa', 'a', 'Aa', 'B', 'Bb', 'b', 'Bb', 'C', 'Cc', 'c', 'Cc', 'D', 'Dd', 'd', 'Dd', 'E', 'Ee', 'e', 'Ee', 'F', 'Ff', 'f', 'Ff', 'G', 'Gg', 'g', 'Gg', 'H', 'Hh', 'h', 'Hh', 'I', 'Ii', 'i', 'Ii', 'J', 'Jj', 'j', 'Jj', 'K', 'Kk', 'k', 'Kk', 'L', 'Ll', 'l', 'Ll', 'M', 'Mm', 'm', 'Mm', 'N', 'Nn', 'n', 'Nn', 'O', 'Oo', 'o', 'Oo', 'P', 'Pp', 'p', 'Pp', 'Q', 'Qq', 'q', 'Qq', 'R', 'Rr', 'r', 'Rr', 'S', 'Ss', 's', 'Ss', 'T', 'Tt', 't', 'Tt', 'U', 'Uu', 'u', 'Uu', 'V', 'Vv', 'v', 'Vv', 'W', 'Ww', 'w', 'Ww', 'X', 'Xx', 'x', 'Xx', 'Y', 'Yy', 'y', 'Yy', 'Z', 'Zz', 'z', 'Zz'}->{$element} || $element
1405 76 376 0 {'A', '[Aa]', 'a', '[Aa]', 'B', '[Bb]', 'b', '[Bb]', 'C', '[Cc]', 'c', '[Cc]', 'D', '[Dd]', 'd', '[Dd]', 'E', '[Ee]', 'e', '[Ee]', 'F', '[Ff]', 'f', '[Ff]', 'G', '[Gg]', 'g', '[Gg]', 'H', '[Hh]', 'h', '[Hh]', 'I', '[Ii]', 'i', '[Ii]', 'J', '[Jj]', 'j', '[Jj]', 'K', '[Kk]', 'k', '[Kk]', 'L', '[Ll]', 'l', '[Ll]', 'M', '[Mm]', 'm', '[Mm]', 'N', '[Nn]', 'n', '[Nn]', 'O', '[Oo]', 'o', '[Oo]', 'P', '[Pp]', 'p', '[Pp]', 'Q', '[Qq]', 'q', '[Qq]', 'R', '[Rr]', 'r', '[Rr]', 'S', '[Ss]', 's', '[Ss]', 'T', '[Tt]', 't', '[Tt]', 'U', '[Uu]', 'u', '[Uu]', 'V', '[Vv]', 'v', '[Vv]', 'W', '[Ww]', 'w', '[Ww]', 'X', '[Xx]', 'x', '[Xx]', 'Y', '[Yy]', 'y', '[Yy]', 'Z', '[Zz]', 'z', '[Zz]'}->{$element} || $element
1563 303 6 27 not defined $_[2] or $_[2] == 0
4193 10 6 0 {'\\\\', '\\\\', '\\a', "\a", '\\b', "\cH", '\\e', "\e", '\\f', "\f", '\\n', "\n", '\\r', "\r", '\\t', "\t"}->{$1} || $2