Condition Coverage

blib/lib/Regexp/Debugger.pm
Criterion Covered Total %
condition 2 322 0.6


and 3 conditions

line !l l&&!r l&&r condition
120 0 0 1 ($^O ne 'MSWin32' || eval { do { require Win32::Console::ANSI } }) && eval { do { require Term::ANSIColor } }
165 0 0 0 _module_is_active() and $type =~ /qq?/
0 0 0 _module_is_active() and $type =~ /qq?/ and $is_interactive
195 1 0 0 not $home_dir and eval { do { require File::HomeDir } }
246 0 0 0 defined $a_key && defined $b_key
811 0 0 0 $match_was_null and $prev_match_was_null
1270 0 0 0 $paren_stack[-2]{'is_conditional'} and $paren_stack[-2]{'is_pending'}
1389 0 0 0 $paren_data->{'is_capture'} && ref $paren_data->{'capture_name'}
1695 0 0 0 $event->{'is_match'} and $depth <= $interaction_depth
1735 0 0 0 $event->{'is_fail'} and $depth <= $interaction_depth
1884 0 0 0 index($raw_regex_src, '$^N') >= 0 and defined $^N
1939 0 0 0 $is_capture && $forward_step == 1
0 0 0 $is_capture && $forward_step > 1
2050 0 0 0 @graph and length $graph[-1]{'text'} . $display_char < $TABLE_STR_WIDTH
0 0 0 @graph and length $graph[-1]{'text'} . $display_char < $TABLE_STR_WIDTH and $graph[-1]{'heat'} == $abs_heat
2225 0 0 0 $matchable || $is_capture and $event_type eq 'post'
0 0 0 $matchable || $is_capture and $event_type eq 'post' and $construct ne '|'
2251 0 0 0 not $nested_because and @pre_is_pending
0 0 0 not $nested_because and @pre_is_pending and $pre_is_pending[-1][1] >= $subpattern_depth
2253 0 0 0 $event_type eq 'post' and $backtrack
2275 0 0 0 $event_type eq 'pre' && ref $msg
0 0 0 $event_type eq 'post' && ref $msg
0 0 0 pos $_ && pos $_ == $prev_str_pos && $construct_type eq '_START'
2284 0 0 0 $construct_type ne '_named_subpattern_call' && index(lc $msg, 'failed') < 0
2334 0 0 0 $matchable && $event_type eq 'pre'
2344 0 0 0 $shared_str_pos_ref and $event_type eq 'pre'
0 0 0 $shared_str_pos_ref and $event_type eq 'pre' and $construct ne '|'
2355 0 0 0 $event_str && $event_regex
2388 0 0 0 $display_mode eq 'events' and not $lexical_config->{'save_to_fh'}
2409 0 0 0 ref $starting_str_pos eq 'SCALAR' and ${$starting_str_pos;}
0 0 0 ref $starting_str_pos eq 'SCALAR' and ${$starting_str_pos;} and ${$starting_str_pos;} ne $str_pos
2416 0 0 0 $construct_type eq '_START' and $str_pos == 0
2433 0 0 0 $display_mode eq 'JSON' and not $lexical_config->{'save_to_fh'}
2465 0 0 0 $display_mode eq 'visual' and index('nrFMC', $interaction_mode) < 0 || $subpattern_depth <= $interaction_depth
2481 0 0 0 $event_type ne 'break' and lc $interaction_mode eq 'm' && (!$is_match || $interaction_mode eq 'M' && $subpattern_depth > $interaction_depth) && index($msg, 'restarting regex match') < 0 && $construct_type ne '_END' || lc $interaction_mode eq 'f' && (!$is_fail || $interaction_mode eq 'F' && $subpattern_depth > $interaction_depth) && index($msg, 'restarting regex match') < 0 && $construct_type ne '_END' || $interaction_mode eq 'r' && $subpattern_depth > 0 && $subpattern_depth > $interaction_depth && index($msg, 'restarting regex match') < 0 && $construct_type ne '_END' || $interaction_mode eq 'n' && $subpattern_depth > $interaction_depth && index($msg, 'restarting regex match') < 0 || lc $interaction_mode eq 'c' && $construct_type ne '_END'
2877 0 0 0 $data_mode eq 'JSON' and substr($state, -2) eq ",\n"
2987 0 0 0 $marker and substr($marker, -1) eq ' '
3140 0 0 0 ref $dumped_data eq 'HASH' and defined $dumped_data->{'regex_ID'}
3315 0 0 0 defined $string and defined $input_regex

or 2 conditions

line l !l condition
160 0 0 (caller 1)[10] // {}
184 0 0 (caller 1)[10] // (return 0)
280 0 0 $mode || '>'
310 0 0 $x->{'lexical_scope'} // 0
328 0 0 $y // ''
358 0 0 $event_desc_ref->{'quantifier'} //= ''
369 0 0 $event_desc_ref->{'quantifier'} //= ''
395 0 0 $lexical_scope //= 0
762 0 0 $+{'quantifier'} // ''
827 0 0 $history_of{'visual'} // []
1342 0 0 $capture_names_for[$next_capture_group] // []
1374 0 0 pop @paren_stack // {'type', 'unmatched closing )'}
1491 0 0 $history_of{$data_mode} // []
1655 0 0 $event->{'depth'} // 0
1694 0 0 $event->{'depth'} // 0
1734 0 0 $event->{'depth'} // 0
1866 0 0 $capture{$name}{'from'} // (next CAPVAR)
1867 0 0 $capture{$name}{'to'} // (next CAPVAR)
1924 0 0 $construct_len || 1
1928 0 0 $construct_len || 1
2031 0 0 $_ // 0
2032 0 0 $_ // 0
2044 0 0 $heatmap_ref->[$index] // 0
2054 0 0 $heat[$index] // 0
2072 0 0 $entry->{'heat'} || ' '
2166 0 0 $opt{'nested_because'} // ''
2191 0 0 $construct_type //= ''
2207 0 0 $str_pos // 0
2215 0 0 $shared_str_pos_ref // \$prev_str_pos
2238 0 0 $prev_str_pos // 0
0 0 $prev_regex_pos // 0
2252 0 0 pop @pre_is_pending // []
2340 0 0 $subpattern_depth // 0
2731 0 0 $ENV{'PAGER'} // 'more'
2831 0 0 $ENV{'PAGER'} // 'more'
2864 0 0 $step //= -1
2897 0 0 $_ // 0
2898 0 0 $_ // 0
2903 0 0 $count[$n] // 0
2914 0 0 $arg{'text'} // ''
2915 0 0 $arg{'pos'} // 0
2916 0 0 $arg{'start'} // 0
2917 0 0 $arg{'heat'} // []
3009 0 0 $extras //= ''
3016 0 0 $extras //= ''
3036 0 0 $colour_scheme //= 'clear'
3224 0 0 $flags // 'x'

or 3 conditions

line l !l&&r !l&&!r condition
164 0 0 0 defined $arg{'save_to'} || -t *STDIN && -t *STDOUT
316 0 0 0 eval { do { $x->{'cooked'} } } // $x
317 0 0 0 eval { do { $y->{'cooked'} } } // $y
340 0 0 0 $regex_cache{&refaddr($obj)} //= Regexp::Debugger::_build_debugging_regex(@{$obj;}{'cooked', 'lexical_scope'})
362 0 0 0 $] <= 5.022 || $] >= 5.032
1504 0 0 0 not $lexical_config->{'save_to_fh'} or $data_mode ne 'JSON'
1544 0 0 0 $step //= &max(0, @{$history_of{$display_mode};} - 2)
1552 0 0 0 $input eq 'q' or $input eq "\cD"
1795 0 0 0 $display_mode eq 'events' or $display_mode eq 'JSON'
2050 0 0 0 $char ne ' ' or $abs_heat != 0
2215 0 0 0 ${$shared_str_pos_ref // \$prev_str_pos;} // $str_pos
2225 0 0 0 $matchable || $is_capture
2253 0 0 0 $event_type eq 'post' and $backtrack or not defined $pending_event_ID
0 0 0 $event_type eq 'post' and $backtrack or not defined $pending_event_ID or $pending_event_ID == $event_ID
2301 0 0 0 index($msg, 'matched') >= 0 || index($msg, 'Matched') >= 0
2302 0 0 0 index($msg, 'rematched') >= 0 || index($msg, 'Rematched') >= 0
2303 0 0 0 index($msg, 'trying') >= 0 || index($msg, 'Trying') >= 0
2304 0 0 0 index($msg, 'skipping') >= 0 || index($msg, 'Skipping') >= 0
2305 0 0 0 index($msg, 'failed') >= 0 || index($msg, 'Failed') >= 0
2317 0 0 0 $is_match || $is_fail || $is_skip
0 0 0 $is_rematch or not $is_match || $is_fail || $is_skip
2352 0 0 0 length $event_str > 1 or length $event_regex > 1
2371 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2384 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2389 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2434 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2465 0 0 0 index('nrFMC', $interaction_mode) < 0 || $subpattern_depth <= $interaction_depth
2477 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2481 0 0 0 lc $interaction_mode eq 'm' && (!$is_match || $interaction_mode eq 'M' && $subpattern_depth > $interaction_depth) && index($msg, 'restarting regex match') < 0 && $construct_type ne '_END' || lc $interaction_mode eq 'f' && (!$is_fail || $interaction_mode eq 'F' && $subpattern_depth > $interaction_depth) && index($msg, 'restarting regex match') < 0 && $construct_type ne '_END' || $interaction_mode eq 'r' && $subpattern_depth > 0 && $subpattern_depth > $interaction_depth && index($msg, 'restarting regex match') < 0 && $construct_type ne '_END' || $interaction_mode eq 'n' && $subpattern_depth > $interaction_depth && index($msg, 'restarting regex match') < 0 || lc $interaction_mode eq 'c' && $construct_type ne '_END'
2523 0 0 0 $input eq 'q' or $input eq "\cD"
2535 0 0 0 $display_mode eq 'events' or $display_mode eq 'JSON'
2563 0 0 0 $input eq 'q' or $input eq "\cD"
2580 0 0 0 $input eq 'q' or $input eq "\cD"
3075 0 0 0 index($msg, 'forgetting') >= 0 or index($msg, 'Forgetting') >= 0
3078 0 0 0 index($msg, 'try') >= 0 or index($msg, 'Try') >= 0
3081 0 0 0 index($msg, 'failed') >= 0 or index($msg, 'Failed') >= 0
3084 0 0 0 index($msg, 'matched') >= 0 or index($msg, 'Matched') >= 0