Branch Coverage

blib/lib/Algorithm/Search.pm
Criterion Covered Total %
branch 120 140 85.7


line true false branch
17 8 103 if (defined $$parameters{'additional_steps'})
23 8 197859 if ($$self{'steps'} == $$self{'max_steps'}) { }
0 197859 elsif (&{$$self{'stop_search'};}($$self{'last_object'}, $$self{'steps'}, $$self{'last_path'})) { }
51 0 0 if ($#{$$self{'solutions'};} == -1)
69 0 4 if ($#{$$self{'paths'};} == -1)
104 88 1 if ($$self{'mark_solution'})
105 0 88 if ($initial_position->is_solution)
108 0 0 if (++$$self{'solutions_found'} == $$self{'solutions_to_find'})
117 47 42 if ($$self{'value_function'})
119 10 37 if ($$self{'do_not_repeat_values'})
126 4 85 if ($$self{'committing'})
130 3 86 if ($$self{'return_search_trace'})
155 61 197180 unless (scalar @{$$self{'queue'};})
171 112658 84522 unless (defined $new_cost)
175 63 84 if ($$self{'cost_cannot_increase'} and $new_cost > $cost and defined $cost)
187 50933 33526 if ($$self{'value_function'})
189 17460 33473 if ($$path_values{$value})
192 33176 297 if ($$self{'do_not_repeat_values'})
193 2096 31080 if ($$self{'handled'}{$value})
202 23 64880 if ($$self{'return_search_trace'})
212 62139 2764 if ($$self{'mark_solution'})
213 303 61836 if ($new_position->is_solution)
216 28 275 if (++$$self{'solutions_found'} == $$self{'solutions_to_find'})
223 227 64676 if (scalar @$new_path == $$self{'maximum_depth_minus_one'})
228 31020 33656 if ($$self{'committing'})
230 24 30996 if ($new_commit < $commit)
235 14115 50561 if ($$self{'search_type'} eq 'dfs') { }
50267 294 elsif ($$self{'search_type'} eq 'bfs') { }
294 0 elsif ($$self{'search_type'} eq 'cost') { }
251 265 29 if (scalar @moves)
259 500 460 if ($$self{'queue'}[$m][4] > $new_cost) { }
285 0 14 if ($$self{'committing'})
288 0 14 if ($search_this->is_solution)
290 0 0 if ($$self{'preserve_solutions'})
293 0 0 if (++$$self{'solutions_found'} == $$self{'solutions_to_find'})
300 1 13 if (not defined $$self{'next_move'}) { }
309 12 1 if ($$self{'value_function'})
313 2 10 if ($$self{'do_not_repeat_values'})
319 1 13 if ($$self{'return_search_trace'})
338 0 318 unless (defined $new_cost)
342 10 308 if ($$self{'cost_cannot_increase'} and $new_cost > $$self{'cost'})
350 156 152 if ($$self{'value_function'})
353 30 126 if ($$self{'do_not_repeat_values'})
354 14 16 if ($$self{'handled'}{$value})
362 35 107 if ($$self{'path_values'}{$value})
370 0 259 if ($$self{'committing'})
374 7 252 if ($$self{'return_search_trace'})
386 34 225 if ($search_this->is_solution)
388 0 34 if ($$self{'preserve_solutions'})
391 3 31 if (++$$self{'solutions_found'} == $$self{'solutions_to_find'})
401 75 184 if (scalar @{$$self{'path'};} == $$self{'maximum_depth_minus_one'})
409 151 33 if (defined $$self{'next_move'}) { }
410 77 74 if ($$self{'value_function'})
431 154 146 if (defined $next_move)
437 10 136 if (scalar @{$$self{'path'};} == 0) { }
445 0 136 if ($$self{'committing'} and $$self{'commit'} < $previous_commit)
452 62 74 if ($$self{'value_function'})
467 318 300 if ($$self{'moving_forward'}) { }
482 103 0 if (defined $$parameters{'solutions_to_find'})
488 16 87 if (defined $$parameters{'maximum_depth'}) { }
501 89 14 if (UNIVERSAL::can($$self{'search_this'}, 'copy')) { }
508 102 1 if (UNIVERSAL::can($$self{'search_this'}, 'is_solution')) { }
515 74 29 if (UNIVERSAL::can($$self{'search_this'}, 'value')) { }
521 36 67 if ($no_value_function)
525 4 99 if (UNIVERSAL::can($$self{'search_this'}, 'commit_level')) { }
532 86 17 if (defined $$parameters{'search_type'}) { }
534 16 70 if ($$parameters{'search_type'} eq 'dfs') { }
43 27 elsif ($$parameters{'search_type'} eq 'bfs') { }
13 14 elsif ($$parameters{'search_type'} eq 'cost') { }
14 0 elsif ($$parameters{'search_type'} eq 'rdfs') { }