Branch Coverage

blib/lib/Games/Solitaire/BlackHole/Solver/App/Base.pm
Criterion Covered Total %
branch 74 120 61.6


line true false branch
111 0 13 if ($self->_pending_board_lines) { }
0 13 elsif ($filename eq '-') { }
122 0 13 unless open my $in, "<", $filename
151 148 102 unless ($self->_display_boards)
165 102 1632 if ($iscurr)
199 1 5 if $self->_quiet
207 5 250 unless defined $prev_state
211 0 250 unless (defined $changed_foundation)
225 102 137 $self->_display_boards ? :
11 239 $col_idx == @{$self->_board_cards;} ? :
245 250 102 if ($type eq 'card') { }
102 0 elsif ($type eq 'board') { }
252 0 102 unless ($self->_display_boards)
286 0 9 $ret == 0 ? :
294 7 5 unless ($verdict)
297 4 3 if ($SOFT_EXCEEDED and $self->_max_iters_limit_exceeded) { }
306 9 3 if ($self->_should_show_maximal_num_played_cards)
329 9 0 if (defined $self->_output_fn)
347 13 0 if (my($card) = $found_line =~ /\AFoundations:((?: $card_re){$_num_foundations})\z/) { }
350 0 13 unless $card =~ s/\A //
414 0 0 if ($i != $j)
470 0 0 unless ($val eq 1 or $val eq 2)
479 0 0 unless ($val =~ /\A$TASK_ALLOC_RE(?:,$TASK_ALLOC_RE)*\z/)
488 0 0 unless ($val =~ /\A$TASK_NAME_RE\z/)
513 0 9 unless &GetOptions("display-boards!", \$display_boards, "o|output=s", \$output_fn, "quiet!", \$quiet, "next-task", sub { &$push_task(); return; } , "num-foundations=i", sub { my(undef, $val) = @_; unless ($val eq 1 or $val eq 2) { die; } ; $_num_foundations = $val; return; } , "prelude=s", sub { my(undef, $val) = @_; unless ($val =~ /\A$TASK_ALLOC_RE(?:,$TASK_ALLOC_RE)*\z/) { die "Invalid prelude string '${val}' !"; } ; $_prelude_string = $val; return; } , "task-name=s", sub { my(undef, $val) = @_; unless ($val =~ /\A$TASK_NAME_RE\z/) { die "Invalid task name '${val}' - must be alphanumeric!"; } ; $tasks[-1]{'name'} = $val; return; } , "seed=i", sub { my(undef, $val) = @_; $tasks[-1]{'seed'} = $val; return; } , "show-max-num-played-cards!", sub { my(undef, $val) = @_; $_should_show_maximal_num_played_cards = $val; return; } , "max-iters=i", sub { my(undef, $val) = @_; $_max_iters_limit = $val; return; } , "help|h|?", \$help, "man", \$man, "version", \$version, %{$$args{"extra_flags"};})
515 9 0 if (@tasks == 1)
519 0 9 if (&any(sub { not defined $_->{'name'}; } , @tasks))
525 0 9 if $help
526 0 9 if $man
528 0 9 if ($version)
538 0 9 if (defined $_prelude_string)
549 9 0 if (defined $output_fn) { }
551 0 9 unless open $output_handle, ">", $output_fn
594 0 13 if (exists $tasks_by_names{$name})
602 9 4 unless ($self->_prelude)
607 0 0 if (my($quota, $name) = $s =~ /\A([0-9]+)\@($TASK_NAME_RE)\z/) { }
609 0 0 unless (exists $self->_tasks_by_names->{$name})
630 0 9 if (my $_prelude_string = $self->_prelude_string)
641 0 13 if (@{$self->_prelude;})
665 0 814 if ($self->_prelude_iter < @{$self->_prelude;})
670 0 0 unless (@{$task->_queue;})
679 0 814 unless @$tasks
680 0 814 unless (@{$$tasks[$self->_task_idx]->_queue;})
719 80799 0 if $rec->[2]
731 55399 25394 if (@$_pending) { }
733 0 55399 if $task->_seed
748 7 80485 unless defined $parent
752 801 79992 unless (--$task->{'_remaining_iters'})
771 80799 0 unless (vec $used, $v, 1)
784 756435 605522 if ($pos)
789 0 756435 unless defined $card
793 119285 637150 if (exists $$_is_good_diff{$card - $v})
800 80592 38693 if (not $exists) { }
0 38693 elsif ($positions->{$next_s}[2]) { }
803 165 80427 if (keys %$positions >= $max_iters_limit)
806 165 0 if ($self->_do_not_err_on_exceeding_max_iters_limit)
819 80427 38693 if ($to_add)
838 9 4 unless ($self->_is_good_diff)
859 0 55412 unless @$items
863 517 54895 if ($l > $self->_max_reached_depths_stack_len)