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
830 0 0 0 $match_was_null and $prev_match_was_null
1305 0 0 0 $paren_stack[-2]{'is_conditional'} and $paren_stack[-2]{'is_pending'}
1424 0 0 0 $paren_data->{'is_capture'} && ref $paren_data->{'capture_name'}
1735 0 0 0 $event->{'is_match'} and $depth <= $interaction_depth
1775 0 0 0 $event->{'is_fail'} and $depth <= $interaction_depth
1924 0 0 0 index($raw_regex_src, '$^N') >= 0 and defined $^N
1979 0 0 0 $is_capture && $forward_step == 1
0 0 0 $is_capture && $forward_step > 1
2089 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
2264 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 '|'
2290 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
2292 0 0 0 $event_type eq 'post' and $backtrack
2314 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'
2323 0 0 0 $construct_type ne '_named_subpattern_call' && index(lc $msg, 'failed') < 0
2373 0 0 0 $matchable && $event_type eq 'pre'
2383 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 '|'
2394 0 0 0 $event_str && $event_regex
2427 0 0 0 $display_mode eq 'events' and not $lexical_config->{'save_to_fh'}
2448 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
2455 0 0 0 $construct_type eq '_START' and $str_pos == 0
2472 0 0 0 $display_mode eq 'JSON' and not $lexical_config->{'save_to_fh'}
2504 0 0 0 $display_mode eq 'visual' and index('nrFMC', $interaction_mode) < 0 || $subpattern_depth <= $interaction_depth
2520 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'
2916 0 0 0 $data_mode eq 'JSON' and substr($state, -2) eq ",\n"
3026 0 0 0 $marker and substr($marker, -1) eq ' '
3179 0 0 0 ref $dumped_data eq 'HASH' and defined $dumped_data->{'regex_ID'}
3354 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'} // ''
846 0 0 $history_of{'visual'} // []
1377 0 0 $capture_names_for[$next_capture_group] // []
1409 0 0 pop @paren_stack // {'type', 'unmatched closing )'}
1531 0 0 $history_of{$data_mode} // []
1695 0 0 $event->{'depth'} // 0
1734 0 0 $event->{'depth'} // 0
1774 0 0 $event->{'depth'} // 0
1906 0 0 $capture{$name}{'from'} // (next CAPVAR)
1907 0 0 $capture{$name}{'to'} // (next CAPVAR)
1964 0 0 $construct_len || 1
1968 0 0 $construct_len || 1
2070 0 0 $_ // 0
2071 0 0 $_ // 0
2083 0 0 $heatmap_ref->[$index] // 0
2093 0 0 $heat[$index] // 0
2111 0 0 $entry->{'heat'} || ' '
2205 0 0 $opt{'nested_because'} // ''
2230 0 0 $construct_type //= ''
2246 0 0 $str_pos // 0
2254 0 0 $shared_str_pos_ref // \$prev_str_pos
2277 0 0 $prev_str_pos // 0
0 0 $prev_regex_pos // 0
2291 0 0 pop @pre_is_pending // []
2379 0 0 $subpattern_depth // 0
2770 0 0 $ENV{'PAGER'} // 'more'
2870 0 0 $ENV{'PAGER'} // 'more'
2903 0 0 $step //= -1
2936 0 0 $_ // 0
2937 0 0 $_ // 0
2942 0 0 $count[$n] // 0
2953 0 0 $arg{'text'} // ''
2954 0 0 $arg{'pos'} // 0
2955 0 0 $arg{'start'} // 0
2956 0 0 $arg{'heat'} // []
3048 0 0 $extras //= ''
3055 0 0 $extras //= ''
3075 0 0 $colour_scheme //= 'clear'
3263 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
1544 0 0 0 not $lexical_config->{'save_to_fh'} or $data_mode ne 'JSON'
1584 0 0 0 $step //= &max(0, @{$history_of{$display_mode};} - 2)
1592 0 0 0 $input eq 'q' or $input eq "\cD"
1835 0 0 0 $display_mode eq 'events' or $display_mode eq 'JSON'
2089 0 0 0 $char ne ' ' or $abs_heat != 0
2254 0 0 0 ${$shared_str_pos_ref // \$prev_str_pos;} // $str_pos
2264 0 0 0 $matchable || $is_capture
2292 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
2340 0 0 0 index($msg, 'matched') >= 0 || index($msg, 'Matched') >= 0
2341 0 0 0 index($msg, 'rematched') >= 0 || index($msg, 'Rematched') >= 0
2342 0 0 0 index($msg, 'trying') >= 0 || index($msg, 'Trying') >= 0
2343 0 0 0 index($msg, 'skipping') >= 0 || index($msg, 'Skipping') >= 0
2344 0 0 0 index($msg, 'failed') >= 0 || index($msg, 'Failed') >= 0
2356 0 0 0 $is_match || $is_fail || $is_skip
0 0 0 $is_rematch or not $is_match || $is_fail || $is_skip
2391 0 0 0 length $event_str > 1 or length $event_regex > 1
2410 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2423 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2428 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2473 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2504 0 0 0 index('nrFMC', $interaction_mode) < 0 || $subpattern_depth <= $interaction_depth
2516 0 0 0 index('nrFMC', $interaction_mode) < 0 or $subpattern_depth <= $interaction_depth
2520 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'
2562 0 0 0 $input eq 'q' or $input eq "\cD"
2574 0 0 0 $display_mode eq 'events' or $display_mode eq 'JSON'
2602 0 0 0 $input eq 'q' or $input eq "\cD"
2619 0 0 0 $input eq 'q' or $input eq "\cD"
3114 0 0 0 index($msg, 'forgetting') >= 0 or index($msg, 'Forgetting') >= 0
3117 0 0 0 index($msg, 'try') >= 0 or index($msg, 'Try') >= 0
3120 0 0 0 index($msg, 'failed') >= 0 or index($msg, 'Failed') >= 0
3123 0 0 0 index($msg, 'matched') >= 0 or index($msg, 'Matched') >= 0