Branch Coverage

blib/lib/Games/Maze.pm
Criterion Covered Total %
branch 182 236 77.1


line true false branch
128 2 8 if (ref $class)
130 2 0 if ($class->isa('Games::Maze'))
151 0 42 unless (defined $ref_type)
157 18 24 if $ref_type eq 'scalar'
158 24 18 if $ref_type eq 'array'
166 0 8 if @{$$self{'dimensions'};} < 1
167 0 8 if @{$$self{'dimensions'};} < 2
168 1 7 if @{$$self{'dimensions'};} < 3
173 0 8 unless ($$self{'form'} =~ /^(?:Rectangle|Hexagon)$/)
178 0 8 unless ($$self{'cell'} =~ /^(?:Quad|Hex)$/)
236 0 8 unless exists $$self{'form'}
240 0 8 unless $self->_set_internals
296 0 8 if $$self{'_status'} ne 'reset'
305 1076 971 if (@dir > 0) { }
311 963 113 if @dir > 1
319 0 1076 if $Debug_make_vx
320 0 1076 if $Debug_make_ascii
324 8 963 if @queue == 0
346 0 6 if $$self{'_status'} ne 'make'
347 0 6 unless $self
364 748 2128 if $self->_wall_open($dir, $c, $r, $l)
372 96 652 if ($self->_on_pathmark($cc, $rr, $ll)) { }
383 0 748 if $Debug_solve_vx
384 0 748 if $Debug_solve_ascii
402 0 6 if $$self{'_status'} eq 'make'
404 6 0 if ($$self{'_status'} eq 'solve') { }
464 0 10 wantarray ? :
693 0 3 wantarray ? :
711 2 0 if ($$self{'form'} eq 'Rectangle') { }
713 0 2 if ($cols < 2 or $rows < 2 or $lvls < 1)
731 1 1 if (defined $$self{'start'})
735 0 1 if (not defined $start[0] or $start[0] < 1 or $start[0] > $$self{'_cols'})
741 0 1 if (not defined $start[1] or $start[1] < 1 or $start[1] > $$self{'_rows'})
747 0 1 if (not defined $start[2] or $start[2] < 1 or $start[2] > $$self{'_rows'})
800 1 1 if (defined $$self{'entry'}) { }
804 0 1 if ($entry[0] < 1 or $entry[0] > $$self{'_cols'})
820 1 1 if (defined $$self{'exit'}) { }
824 0 1 if ($exit[0] < 1 or $exit[0] > $$self{'_cols'})
853 1 1 if defined $$self{'start'}
875 0 362 if $Debug_internal
877 299 63 if ($dir == $Games::Maze::North or $dir == $Games::Maze::South) { }
58 5 elsif ($dir == $Games::Maze::East or $dir == $Games::Maze::West) { }
879 146 153 $dir == $Games::Maze::North ? :
883 14 44 $dir == $Games::Maze::West ? :
887 1 4 $dir == $Games::Maze::Ceiling ? :
890 161 201 $dir <= $Games::Maze::Ceiling ? :
892 0 362 if $Debug_internal
913 105 377 if $$m[$l][$r - 1][$c] == 0
914 22 460 if $$m[$l][$r][$c - 1] == 0
915 117 365 if $$m[$l][$r + 1][$c] == 0
916 216 266 if $$m[$l][$r][$c + 1] == 0
917 70 412 if $$m[$l - 1][$r][$c] == 0
918 99 383 if $$m[$l + 1][$r][$c] == 0
920 0 482 if $Debug_internal
934 0 303 if $Debug_internal
935 41 262 if ($dir == $Games::Maze::Floor) { }
60 202 elsif ($dir == $Games::Maze::Ceiling) { }
947 0 303 if $Debug_internal
1018 165 168 if ($self->_up_column($c)) { }
1044 1689 1689 if ($self->_up_column($c)) { }
1061 1689 1689 if ($self->_up_column($c)) { }
1077 0 15 wantarray ? :
1095 2 4 if ($$self{'form'} eq 'Rectangle') { }
4 0 elsif ($$self{'form'} eq 'Hexagon') { }
1097 0 2 if ($cols < 2 or $rows < 2 or $lvls < 1)
1103 0 2 unless defined $$self{'upcolumn_even'}
1110 0 4 if ($cols < 2 or $rows < 1 or $lvls < 1)
1130 5 1 if (defined $$self{'start'})
1134 0 5 if (not defined $start[0] or $start[0] < 1 or $start[0] > $$self{'_cols'})
1140 0 5 if (not defined $start[1] or $start[1] < 1 or $start[1] > $$self{'_rows'})
1148 0 4 if (not defined $start[2] or $start[2] < 1 or $start[2] > $$self{'_rows'})
1173 2 4 if ($$self{'form'} eq 'Rectangle') { }
4 0 elsif ($$self{'form'} eq 'Hexagon') { }
1183 12 12 if ($self->_up_column($c)) { }
1207 1 1 if ($self->_up_column(1)) { }
1219 1 1 if ($self->_up_column($$self{'_cols'} + 1)) { }
1242 2 2 if ($self->_up_column($$self{'_cols'} + 1)) { }
1318 5 1 if (defined $$self{'entry'}) { }
1322 0 5 if ($entry[0] < 1 or $entry[0] > $$self{'_cols'})
1343 5 1 if (defined $$self{'exit'}) { }
1347 0 5 if ($exit[0] < 1 or $exit[0] > $$self{'_cols'})
1380 5 1 if defined $$self{'start'}
1405 0 1462 if $Debug_internal
1406 820 642 if ($dir == $Games::Maze::North or $dir == $Games::Maze::South) { }
29 613 elsif ($dir == $Games::Maze::Ceiling or $dir == $Games::Maze::Floor) { }
1408 473 347 $dir == $Games::Maze::North ? :
1412 11 18 $dir == $Games::Maze::Ceiling ? :
1416 305 308 if ($self->_up_column($c)) { }
1418 31 274 if $dir == $Games::Maze::NorthWest or $dir == $Games::Maze::NorthEast
1422 186 122 if $dir == $Games::Maze::SouthWest or $dir == $Games::Maze::SouthEast
1425 256 357 if ($dir == $Games::Maze::NorthWest or $dir == $Games::Maze::SouthWest) { }
357 0 elsif ($dir == $Games::Maze::NorthEast or $dir == $Games::Maze::SouthEast) { }
1435 740 722 $dir <= $Games::Maze::Ceiling ? :
1437 0 1462 if $Debug_internal
1458 318 1247 if $$m[$l][$r - 1][$c] == 0
1460 774 791 if ($self->_up_column($c)) { }
1462 12 762 if $$m[$l][$r - 1][$c - 1] == 0
1463 79 695 if $$m[$l][$r][$c - 1] == 0
1465 149 625 if $$m[$l][$r + 1][$c] == 0
1467 327 447 if $$m[$l][$r][$c + 1] == 0
1468 258 516 if $$m[$l][$r - 1][$c + 1] == 0
1472 46 745 if $$m[$l][$r][$c - 1] == 0
1473 83 708 if $$m[$l][$r + 1][$c - 1] == 0
1475 242 549 if $$m[$l][$r + 1][$c] == 0
1477 328 463 if $$m[$l][$r + 1][$c + 1] == 0
1478 299 492 if $$m[$l][$r][$c + 1] == 0
1481 294 1271 if $$m[$l - 1][$r][$c] == 0
1482 42 1523 if $$m[$l + 1][$r][$c] == 0
1484 0 1565 if $Debug_internal
1498 0 2573 if $Debug_internal
1499 319 2254 if ($dir == $Games::Maze::Floor) { }
367 1887 elsif ($dir == $Games::Maze::NorthWest) { }
276 1611 elsif ($dir == $Games::Maze::SouthEast) { }
1515 0 2573 if $Debug_internal
1542 0 0 if ($$self{'form'} eq 'Hexagon') { }
1548 0 0 if ($r <= $ante_r) { }
0 0 elsif ($r > $post_r) { }
1584 57 4 if ($$self{'form'} eq 'Hexagon') { }