Condition Coverage

lib/Catan/Game.pm
Criterion Covered Total %
condition 97 181 53.5


and 3 conditions

line !l l&&!r l&&r condition
65 0 0 1 exists $args->{'log'} && ref $args->{'log'} eq 'GLOB'
111 0 0 30 $player_number and $location
120 28 2 0 $self->player->has_built_road and $self->phase eq 'Deployment'
125 0 0 2 defined $self->{'road_building'} and $self->{'road_building'}->can_build_road
167 40 17 11 @players == 1 and $road_length >= 6
57 9 2 @players == 1 and $road_length >= 6 and not $player->longest_road
203 0 0 15 $player_number and $location
212 13 0 1 $self->player->has_built_settlement and $self->phase eq 'Deployment'
233 5 4 4 $self->phase eq 'Deployment' and $self->round == 2
249 0 0 6 $player_number and $location
296 0 0 7 $player_number and $type
362 0 2 1 @players == 1 and $knights_played >= 3
2 0 1 @players == 1 and $knights_played >= 3 and not $player->largest_army
388 0 0 1 $player_number and $code
411 0 0 1 $player_number and $resources
0 0 1 $player_number and $resources and ref $resources eq 'HASH'
464 0 0 0 $player and $resources
0 0 0 $player and $resources and ref $resources eq 'HASH'
0 0 0 $player and $resources and ref $resources eq 'HASH' and 1 == keys %$resources
0 0 0 $player and $resources and ref $resources eq 'HASH' and 1 == keys %$resources and exists $resources->{$player_number}
0 0 0 $player and $resources and ref $resources eq 'HASH' and 1 == keys %$resources and exists $resources->{$player_number} and &all(sub { $_ < 0; } , values %{$$resources{$player_number};})
0 0 0 $player and $resources and ref $resources eq 'HASH' and 1 == keys %$resources and exists $resources->{$player_number} and &all(sub { $_ < 0; } , values %{$$resources{$player_number};}) and 1 == grep(($player_number == $_->{'player'}->number), @{$self->robber->check_players_to_concede;})
489 0 0 9 $player_number eq 'A' || $self->is_player_number($player_number) and $msg
530 0 0 6 $player and $target_player
553 0 0 7 $player_number and $location
585 0 0 1 $self->round == 2 and $self->player->number eq '1'
607 14 1 1 $self->phase eq 'Deployment' and $self->round == 2
618 56 5 2 $self->phase eq 'Deployment' and $self->turn == @{$self->players;}
61 1 1 $self->phase eq 'Deployment' and $self->turn == @{$self->players;} and @{$self->player->settlements;} == 1
56 3 3 $self->phase eq 'Deployment' and @{$self->player->settlements;} == 2
3 42 14 $self->phase eq 'Play' and $self->{'turn_index'} + 1 == @{$self->players;}
663 1 0 8 $self->player->has_built_road && $self->player->has_built_settlement
56 8 1 $self->phase eq 'Deployment' and not $self->player->has_built_road && $self->player->has_built_settlement
686 48 2 14 $self->turn == @{$self->players;} and $self->phase eq 'Play'
42 4 4 $self->phase eq 'Deployment' and @{$self->player->properties;} == 2
46 3 1 $self->phase eq 'Deployment' and @{$self->player->properties;} == 2 and $self->turn == 1
42 3 4 $self->phase eq 'Deployment' and @{$self->player->properties;} == 1
45 3 1 $self->phase eq 'Deployment' and @{$self->player->properties;} == 1 and $self->turn == @{$self->players;}
838 0 0 5 grep(($self->player->number == $_), keys %$details) and $player_number == $self->player->number
868 0 0 9 $player_number and $uuid
0 9 0 $player_number and $uuid and exists $self->trades->{$uuid}
0 0 9 $player_number and $uuid and exists $self->trades->{$uuid} and $self->trades->{$uuid}{'player'} != $player_number
0 0 9 $player_number and $uuid and exists $self->trades->{$uuid} and $self->trades->{$uuid}{'player'} != $player_number and $self->trades->{$uuid}{'trade'}->resources($player_number)
888 0 0 1 $player_number and $uuid
0 1 0 $player_number and $uuid and exists $self->trades->{$uuid}
0 0 1 $player_number and $uuid and exists $self->trades->{$uuid} and $self->trades->{$uuid}{'player'} == $player_number
0 0 1 $player_number and $uuid and exists $self->trades->{$uuid} and $self->trades->{$uuid}{'player'} == $player_number and $self->trades->{$uuid}{'trade'}->resources($player_number)
937 0 0 240 $msgs and ref $msgs eq 'ARRAY'

or 2 conditions

line l !l condition
862 9 0 $args->{'uuid'} || ''
882 1 0 $args->{'uuid'} || ''

or 3 conditions

line l !l&&r !l&&!r condition
125 8 20 2 $self->phase eq 'Deployment' or $self->player->has_rolled_dice
28 0 2 $self->phase eq 'Deployment' or $self->player->has_rolled_dice or defined $self->{'road_building'} and $self->{'road_building'}->can_build_road
139 8 0 22 $self->phase eq 'Deployment' || defined $self->{'road_building'} && $self->{'road_building'}->can_build_road
209 9 5 0 $self->phase eq 'Deployment' or $self->player->has_rolled_dice
224 0 0 78 $intersection->is_colliding($_->location) || $intersection->is_adjacent($_->location)
489 9 0 0 $player_number eq 'A' || $self->is_player_number($player_number)
535 6 0 0 $code ||= $self->robber->steal($target_player)
660 9 56 1 $self->phase eq 'Deployment' or $self->player->has_rolled_dice
686 14 0 50 $self->turn == @{$self->players;} and $self->phase eq 'Play' or $self->phase eq 'Deployment' and @{$self->player->properties;} == 2 and $self->turn == 1
1 0 49 $self->turn == @{$self->players;} and $self->phase eq 'Play' or $self->phase eq 'Deployment' and @{$self->player->properties;} == 2 and $self->turn == 1 or $self->phase eq 'Deployment' and @{$self->player->properties;} == 1 and $self->turn == @{$self->players;}
810 10 0 0 $args->{'uuid'} || 'Data::UUID'->new->create_str