Condition Coverage

blib/lib/Mock/Data/Charset.pm
Criterion Covered Total %
condition 77 134 57.4


and 3 conditions

line !l l&&!r l&&r condition
20 23 14 7 @_ == 1 and not ref $_[0]
59 17 0 20 defined $self{'notation'} and not keys %parse
226 0 4 4 $max_codepoint < 1114111 and 1 & @invlist
255 9 0 1 @invlists and $invlists[-1][-1] < $start
9 0 0 @invlists and $invlists[-1][0] > $limit
463 37 6 0 $flags and ($flags->{'x'} || 0) >= 2
43 0 0 $flags and ($flags->{'x'} || 0) >= 2 and /\G[ \t]/cg
573 74 1006 1897 $mid > 0 and $ofs < $$invlist_index[$mid - 1]
598 11 3397 2341 $mid > 0 and $codepoint < $invlist->[$mid]
18 769 2621 $mid < $#$invlist and $codepoint >= $$invlist[$mid + 1]
626 0 5 0 @$invlist & 1 and defined $max_codepoint
5 0 0 @$invlist & 1 and defined $max_codepoint and $invlist->[-1] == $max_codepoint + 1
678 14 166 3111 @combined and $combined[-1] >= $min_ch
709 7 6 1 1 & @combined and $max_codepoint < 1114111

or 2 conditions

line l !l condition
24 0 0 $self{'generator_opts'} ||= {%{$class->{'generator_opts'};}}
95 0 0 $self->max_codepoint || 1114111
199 3 22 $max_codepoint ||= 1114111
463 0 6 $flags->{'x'} || 0
660 25 8 shift() // 1114111

or 3 conditions

line l !l&&r !l&&!r condition
25 0 0 0 $self{'max_codepoint'} //= $class->{'max_codepoint'}
51 0 0 0 keys %parse or defined $self{'notation'}
0 0 0 keys %parse or defined $self{'notation'} or $self{'members'}
0 0 0 keys %parse or defined $self{'notation'} or $self{'members'} or $self{'member_invlist'}
55 0 0 0 $self{$_} //= $class->{$_}
67 0 0 11 $self{'members'} or $self{'member_invlist'}
72 0 6 0 $self{'members'} or $self{'member_invlist'}
105 12 1 0 $_[0]{'notation'} //= _deparse_charset($_[0]->_parse)
131 84 20 0 $_[0]{'members'} ||= $_[0]->_build_members
164 2310 19 0 $self->{'_invlist_index'} ||= Mock::Data::Charset::Util::create_invlist_index($self->member_invlist)
189 1571 33 0 $_[0]{'member_invlist'} //= _build_member_invlist(@_)
198 22 0 11 not defined $max_codepoint or $max_codepoint > 1000
22 3 8 not defined $max_codepoint or $max_codepoint > 1000 or not defined $self->{'notation'}
204 25 8 0 $invlist ||= _charset_invlist_brute_force($self->notation, $max_codepoint)
291 0 2 0 $opts{'str_len'} // $opts{'len'}
2 0 0 ($opts{'str_len'} // $opts{'len'}) // $opts{'size'}
292 6 0 76 $opts{'min_codepoint'} // $cp_min
293 27 0 55 $opts{'max_codepoint'} // $cp_max
295 6 21 86 defined $cp_min || defined $cp_max
309 84 13 16 $self->{'members'} or $member_count < 500
343 6 0 0 $at // $ins
418 2 6 9 $_class_invlist_cache{$class} ||= do { $have_prop_invlist = do { require Unicode::UCD; not !'Unicode::UCD'->can('prop_invlist') } unless defined $have_prop_invlist; return $have_prop_invlist ? [Unicode::UCD::prop_invlist($class)] : _charset_invlist_brute_force("\\p{$class}", 1114111) }
466 19 0 0 $_parse_charset_backslash{$1} || ord $1
568 0 0 1080 $ofs >= $invlist_index->[-1] or $ofs < 0
637 0 0 0 ref $_ eq 'ARRAY' or $_ = $_->member_invlist
682 3 1326 1782 not defined $new_end or $combined[-1] < $new_end

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
220 801 16 20 572 $match xor chr($_) =~ /$re/