Condition Coverage

blib/lib/Regexp/Debugger.pm
Criterion Covered Total %
condition 2 319 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
833 0 0 0 $match_was_null and $prev_match_was_null
1308 0 0 0 $paren_stack[-2]{'is_conditional'} and $paren_stack[-2]{'is_pending'}
1427 0 0 0 $paren_data->{'is_capture'} && ref $paren_data->{'capture_name'}
1738 0 0 0 $event->{'is_match'} and $depth <= $interaction_depth
1778 0 0 0 $event->{'is_fail'} and $depth <= $interaction_depth
1927 0 0 0 index($raw_regex_src, '$^N') >= 0 and defined $^N
1982 0 0 0 $is_capture && $forward_step == 1
0 0 0 $is_capture && $forward_step > 1
2093 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
2268 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 '|'
2294 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
2296 0 0 0 $event_type eq 'post' and $backtrack
2318 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'
2327 0 0 0 $construct_type ne '_named_subpattern_call' && index(lc $msg, 'failed') < 0
2377 0 0 0 $matchable && $event_type eq 'pre'
2387 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 '|'
2398 0 0 0 $event_str && $event_regex
2431 0 0 0 $display_mode eq 'events' and not $lexical_config->{'save_to_fh'}
2452 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
2459 0 0 0 $construct_type eq '_START' and $str_pos == 0
2476 0 0 0 $display_mode eq 'JSON' and not $lexical_config->{'save_to_fh'}
2508 0 0 0 $display_mode eq 'visual' and index('nrFMC', $interaction_mode) < 0 || $subpattern_depth <= $interaction_depth
2524 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'
2920 0 0 0 $data_mode eq 'JSON' and substr($state, -2) eq ",\n"
3030 0 0 0 $marker and substr($marker, -1) eq ' '
3183 0 0 0 ref $dumped_data eq 'HASH' and defined $dumped_data->{'regex_ID'}
3358 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 // ''
375 0 0 $event_desc_ref->{'quantifier'} //= ''
386 0 0 $event_desc_ref->{'quantifier'} //= ''
412 0 0 $lexical_scope //= 0
784 0 0 $+{'quantifier'} // ''
849 0 0 $history_of{'visual'} // []
1380 0 0 $capture_names_for[$next_capture_group] // []
1412 0 0 pop @paren_stack // {'type', 'unmatched closing )'}
1534 0 0 $history_of{$data_mode} // []
1698 0 0 $event->{'depth'} // 0
1737 0 0 $event->{'depth'} // 0
1777 0 0 $event->{'depth'} // 0
1909 0 0 $capture{$name}{'from'} // (next CAPVAR)
1910 0 0 $capture{$name}{'to'} // (next CAPVAR)
1967 0 0 $construct_len || 1
1971 0 0 $construct_len || 1
2074 0 0 $_ // 0
2075 0 0 $_ // 0
2087 0 0 $heatmap_ref->[$index] // 0
2097 0 0 $heat[$index] // 0
2115 0 0 $entry->{'heat'} || ' '
2209 0 0 $opt{'nested_because'} // ''
2234 0 0 $construct_type //= ''
2250 0 0 $str_pos // 0
2258 0 0 $shared_str_pos_ref // \$prev_str_pos
2281 0 0 $prev_str_pos // 0
0 0 $prev_regex_pos // 0
2295 0 0 pop @pre_is_pending // []
2383 0 0 $subpattern_depth // 0
2774 0 0 $ENV{'PAGER'} // 'more'
2874 0 0 $ENV{'PAGER'} // 'more'
2907 0 0 $step //= -1
2940 0 0 $_ // 0
2941 0 0 $_ // 0
2946 0 0 $count[$n] // 0
2957 0 0 $arg{'text'} // ''
2958 0 0 $arg{'pos'} // 0
2959 0 0 $arg{'start'} // 0
2960 0 0 $arg{'heat'} // []
3052 0 0 $extras //= ''
3059 0 0 $extras //= ''
3079 0 0 $colour_scheme //= 'clear'
3267 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
379 0 0 0 $] <= 5.022 || $] >= 5.032
1547 0 0 0 not $lexical_config->{'save_to_fh'} or $data_mode ne 'JSON'
1587 0 0 0 $step //= &max(0, @{$history_of{$display_mode};} - 2)
1595 0 0 0 $input eq 'q' or $input eq "\cD"
1838 0 0 0 $display_mode eq 'events' or $display_mode eq 'JSON'
2093 0 0 0 $char ne ' ' or $abs_heat != 0
2258 0 0 0 ${$shared_str_pos_ref // \$prev_str_pos;} // $str_pos
2268 0 0 0 $matchable || $is_capture
2296 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
2344 0 0 0 index($msg, 'matched') >= 0 || index($msg, 'Matched') >= 0
2345 0 0 0 index($msg, 'rematched') >= 0 || index($msg, 'Rematched') >= 0
2346 0 0 0 index($msg, 'trying') >= 0 || index($msg, 'Trying') >= 0
2347 0 0 0 index($msg, 'skipping') >= 0 || index($msg, 'Skipping') >= 0
2348 0 0 0 index($msg, 'failed') >= 0 || index($msg, 'Failed') >= 0
2360 0 0 0 $is_match || $is_fail || $is_skip
0 0 0 $is_rematch or not $is_match || $is_fail || $is_skip
2395 0 0 0 length $event_str > 1 or length $event_regex > 1
2414 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2427 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2432 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2477 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2508 0 0 0 index('nrFMC', $interaction_mode) < 0 || $subpattern_depth <= $interaction_depth
2520 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2524 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'
2566 0 0 0 $input eq 'q' or $input eq "\cD"
2578 0 0 0 $display_mode eq 'events' or $display_mode eq 'JSON'
2606 0 0 0 $input eq 'q' or $input eq "\cD"
2623 0 0 0 $input eq 'q' or $input eq "\cD"
3118 0 0 0 index($msg, 'forgetting') >= 0 or index($msg, 'Forgetting') >= 0
3121 0 0 0 index($msg, 'try') >= 0 or index($msg, 'Try') >= 0
3124 0 0 0 index($msg, 'failed') >= 0 or index($msg, 'Failed') >= 0
3127 0 0 0 index($msg, 'matched') >= 0 or index($msg, 'Matched') >= 0