Condition Coverage

blib/lib/Sport/Analytics/NHL/Test.pm
Criterion Covered Total %
condition 201 321 62.6


and 3 conditions

line !l l&&!r l&&r condition
378 2952 72138 74 ref $_[1] and ref $_[1] eq 'ARRAY'
394 226047 0 0 $Sport::Analytics::NHL::Test::IS_AUTHOR and $0 =~ /\.t$/
459 4043 2011 0 $EVENT and $Sport::Analytics::NHL::Test::EVENT->{'time'} eq '00:00'
6054 0 0 $EVENT and $Sport::Analytics::NHL::Test::EVENT->{'time'} eq '00:00' and $Sport::Analytics::NHL::Test::EVENT->{'period'} < 2
477 10 0 0 @{$bs->{'periods'};} > 4 and $bs->{'stage'} == $Sport::Analytics::NHL::Test::REGULAR
478 10 0 0 $bs->{'so'} and ref $bs->{'shootout'}
512 15 0 10 not $period and $p > 2
590 3812 180 0 $player->{'position'} eq 'G' and $opts->{'es'}
614 84 240 0 $player->{'_id'} and $player->{'_id'} =~ /^80/
653 0 0 962 not $Sport::Analytics::NHL::Test::BROKEN_TIMES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $event->{'type'} ne 'CHL'
894 48 20 $event->{'type'} eq 'PENL' && !$event->{'sources'}{'PL'}
0 20 942 not $Sport::Analytics::NHL::Test::BROKEN_TIMES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $event->{'type'} ne 'CHL' and not $event->{'type'} eq 'PENL' && !$event->{'sources'}{'PL'}
20 426 516 not $Sport::Analytics::NHL::Test::BROKEN_TIMES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $event->{'type'} ne 'CHL' and not $event->{'type'} eq 'PENL' && !$event->{'sources'}{'PL'} and $event->{'type'} eq 'GOAL' || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'} && !&is_noplay_event($event)
452 64 0 $event->{'type'} eq 'MISS' && !$event->{'sources'}{'PL'}
426 0 516 not $Sport::Analytics::NHL::Test::BROKEN_TIMES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $event->{'type'} ne 'CHL' and not $event->{'type'} eq 'PENL' && !$event->{'sources'}{'PL'} and $event->{'type'} eq 'GOAL' || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'} && !&is_noplay_event($event) and not $event->{'type'} eq 'MISS' && !$event->{'sources'}{'PL'}
951 2 960 $opts->{'merged'} and (not $Sport::Analytics::NHL::Test::BROKEN_TIMES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $event->{'type'} ne 'CHL' and not $event->{'type'} eq 'PENL' && !$event->{'sources'}{'PL'} and $event->{'type'} eq 'GOAL' || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'} && !&is_noplay_event($event) and not $event->{'type'} eq 'MISS' && !$event->{'sources'}{'PL'})
672 1612 0 340 $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'BS'} and not $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'}
684 1918 1 33 $event->{'assists'} and @{$event->{'assists'};}
697 1614 0 5 $opts->{'gs'} and not $event->{'old'}
707 1239 86 26 $event->{'type'} eq 'PENL' and $event->{'time'} eq '20:00' || $Sport::Analytics::NHL::Test::PENALTY_POSSIBLE_NO_OFFENDER{$event->{'penalty'}}
720 768 39 0 $event->{'type'} eq 'GOAL' and $event->{'en'}
768 36 3 $event->{'type'} eq 'GOAL' and $opts->{'bh'}
266 400 0 $opts->{'merged'} and not $event->{'sources'}{'BS'}
666 0 0 $opts->{'merged'} and not $event->{'sources'}{'BS'} and $event->{'type'} eq 'GOAL'
651 15 0 $event->{'time'} eq '0:00' and $event->{'type'} ne 'FAC'
727 34 0 0 $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} == $Sport::Analytics::NHL::Test::NO_EVENTS
749 80 0 0 $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} == $Sport::Analytics::NHL::Test::NO_EVENTS
840 9 0 0 $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} and $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} == $Sport::Analytics::NHL::Test::NO_EVENTS
9 0 0 $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} and $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} == $Sport::Analytics::NHL::Test::NO_EVENTS and not $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'GS'} || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'}
856 2 1 3 not $opts->{'es'} || $opts->{'pl'} and $boxscore->{'season'} >= $Sport::Analytics::NHL::Test::DATA_BY_SEASON{'officials'}
859 6 0 0 $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} == $Sport::Analytics::NHL::Test::NO_EVENTS
919 0 0 38 defined $roster_player->{'penaltyMinutes'} and $roster_player->{'penaltyMinutes'} != -1
1027 0 0 0 $boxscore->{'season'} > 1998 && $boxscore->{'ot'}
1031 1 2 0 $boxscore->{'season'} > 1998 && $boxscore->{'ot'}
1042 4 0 8 -f "$path/$source.html" and not $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore->{'_id'}}{$source}
1110 3 0 0 $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore->{'_id'}}{'BS'} and $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore->{'_id'}}{'BS'} == $Sport::Analytics::NHL::Test::UNSYNCHED
1130 7 112 547 defined $event->{'t'} and $event->{'t'} != -1
1232 6 438 219 $boxscore->{'events'}[$e]{'period'} == $boxscore->{'events'}[$e + 1]{'period'} and $boxscore->{'events'}[$e]{'ts'} == $boxscore->{'events'}[$e + 1]{'ts'}
1295 0 0 160 $season->{'season'} ne 'total' and $season->{'league'} ne 'bogus'
1297 0 0 101 $season->{'start'} > 1890 && $season->{'start'} < $Sport::Analytics::NHL::Test::CURRENT_SEASON + 1
1298 0 0 101 $season->{'end'} > 1890 && $season->{'end'} < $Sport::Analytics::NHL::Test::CURRENT_SEASON + 2
1309 0 0 0 $season->{'ot'} and length $season->{'ot'}
1323 0 33 68 $season->{'league'} eq 'NHL' and $season->{'start'} >= 1988
1325 0 0 0 length $season->{'gp'} and $season->{'gp'}
1341 0 0 68 $season->{'s%'} >= 0 && $season->{'s%'} <= 100
1350 0 0 0 $season->{'career_start'} >= $Sport::Analytics::NHL::Test::FIRST_SEASON && $season->{'career_start'} <= $Sport::Analytics::NHL::Test::CURRENT_SEASON
1352 0 0 0 $season->{'career_end'} >= $Sport::Analytics::NHL::Test::FIRST_SEASON && $season->{'career_end'} <= $Sport::Analytics::NHL::Test::CURRENT_SEASON

or 2 conditions

line l !l condition
346 0 68 $Sport::Analytics::NHL::Test::TEST_ERRORS->{$field} ||= []
436 11219 6483 shift() || 0
538 18 0 shift() || {}
557 304 0 shift() || {}
584 304 0 shift() || {}
607 8 1 shift() || {}
677 1952 0 shift() || {}
812 1952 0 shift() || {}
829 8 1 shift() || {}
850 6 0 shift() || {'bs', 0}
909 10 28 $event_player->{'penaltyMinutes'} ||= 0
910 1 37 $event_player->{'servedbyMinutes'} ||= 0
935 2 0 $event_player->{'goalsAgainst'} || 0
950 8 28 $event_player->{$stat} || 0
976 4 39 $player->{'goals'} ||= 0
979 0 2 $$event_summary{$player->{'_id'}}{'g_goals'} || 0
1006 2 0 $$event_summary{$team->{'name'}}{'score'} || 0
1198 0 0 $boxscore->{'so'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
351 0 0 68 $object->{'_id'} || $object->{'event_idx'} || $object->{'number'}
459 38 4428 0 $Sport::Analytics::NHL::Test::DATA_BY_SEASON{$data} || $Sport::Analytics::NHL::Test::STAT_RECORD_FROM{$data} || $data
541 2 2 14 $opts->{'es'} or $opts->{'gs'}
2 2 12 $opts->{'es'} or $opts->{'gs'} or $opts->{'ro'}
543 2 2 14 $opts->{'es'} or $opts->{'gs'}
590 436 0 3992 &is_unapplicable($Sport::Analytics::NHL::Test::STAT_RECORD_FROM{$stat}) or $player->{'position'} eq 'G' and $opts->{'es'}
596 0 16 760 $opts->{'es'} || $opts->{'gs'}
600 40 4 260 $opts->{'es'} or $opts->{'gs'}
4 40 220 $opts->{'es'} or $opts->{'gs'} or $opts->{'ro'}
633 8 0 10 $broken or $Sport::Analytics::NHL::Test::BOXSCORE->{'_gs_no_g'}
0 2 8 $broken or $Sport::Analytics::NHL::Test::BOXSCORE->{'_gs_no_g'} or $opts->{'es'}
2 2 6 $broken or $Sport::Analytics::NHL::Test::BOXSCORE->{'_gs_no_g'} or $opts->{'es'} or $opts->{'ro'}
653 0 516 426 $event->{'type'} eq 'GOAL' || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'} && !&is_noplay_event($event)
39 1725 188 $event->{'type'} eq 'GOAL' or $opts->{'merged'} and (not $Sport::Analytics::NHL::Test::BROKEN_TIMES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $event->{'type'} ne 'CHL' and not $event->{'type'} eq 'PENL' && !$event->{'sources'}{'PL'} and $event->{'type'} eq 'GOAL' || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'} && !&is_noplay_event($event) and not $event->{'type'} eq 'MISS' && !$event->{'sources'}{'PL'})
663 108 0 1490 &is_unapplicable('coordinates') || &is_noplay_event($event) || $event->{'penalty'} || $Sport::Analytics::NHL::Test::BROKEN_COORDS{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}
672 340 319 1293 $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'BS'} and not $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} or $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'}
697 5 263 1351 $opts->{'gs'} and not $event->{'old'} or $opts->{'pl'}
707 0 26 86 $event->{'time'} eq '20:00' || $Sport::Analytics::NHL::Test::PENALTY_POSSIBLE_NO_OFFENDER{$event->{'penalty'}}
0 304 1047 $opts->{'gs'} or $event->{'type'} eq 'PENL' and $event->{'time'} eq '20:00' || $Sport::Analytics::NHL::Test::PENALTY_POSSIBLE_NO_OFFENDER{$event->{'penalty'}}
720 3 5 799 $event->{'type'} eq 'GOAL' and $opts->{'bh'} or $opts->{'gs'}
5 133 666 $event->{'type'} eq 'GOAL' and $opts->{'bh'} or $opts->{'gs'} or $opts->{'pl'}
0 133 674 $event->{'type'} eq 'GOAL' and $event->{'en'} or ($event->{'type'} eq 'GOAL' and $opts->{'bh'} or $opts->{'gs'} or $opts->{'pl'})
133 0 666 $event->{'type'} eq 'GOAL' and $event->{'en'} or ($event->{'type'} eq 'GOAL' and $opts->{'bh'} or $opts->{'gs'} or $opts->{'pl'}) or $opts->{'merged'} and not $event->{'sources'}{'BS'} and $event->{'type'} eq 'GOAL'
0 0 666 $event->{'type'} eq 'GOAL' and $event->{'en'} or ($event->{'type'} eq 'GOAL' and $opts->{'bh'} or $opts->{'gs'} or $opts->{'pl'}) or $opts->{'merged'} and not $event->{'sources'}{'BS'} and $event->{'type'} eq 'GOAL' or $event->{'time'} eq '0:00' and $event->{'type'} ne 'FAC'
727 0 5 34 $opts->{'pb'} or $opts->{'pl'}
5 0 34 $opts->{'pb'} or $opts->{'pl'} or $event->{'so'}
0 0 34 $opts->{'pb'} or $opts->{'pl'} or $event->{'so'} or $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} == $Sport::Analytics::NHL::Test::NO_EVENTS
731 16 0 18 $event->{'sources'}{'BS'} or $event->{'sources'}{'GS'}
749 28 20 80 not defined $event->{'severity'} or &is_unapplicable('severity')
48 0 80 not defined $event->{'severity'} or &is_unapplicable('severity') or $opts->{'bh'}
0 0 80 not defined $event->{'severity'} or &is_unapplicable('severity') or $opts->{'bh'} or $opts->{'gs'}
0 0 80 not defined $event->{'severity'} or &is_unapplicable('severity') or $opts->{'bh'} or $opts->{'gs'} or $opts->{'pl'}
0 0 80 not defined $event->{'severity'} or &is_unapplicable('severity') or $opts->{'bh'} or $opts->{'gs'} or $opts->{'pl'} or not $event->{'length'}
0 0 80 not defined $event->{'severity'} or &is_unapplicable('severity') or $opts->{'bh'} or $opts->{'gs'} or $opts->{'pl'} or not $event->{'length'} or $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} == $Sport::Analytics::NHL::Test::NO_EVENTS
840 0 0 0 $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'GS'} || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'}
0 0 9 $Sport::Analytics::NHL::Test::ZERO_EVENT_GAMES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} or $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} and $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} == $Sport::Analytics::NHL::Test::NO_EVENTS and not $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'GS'} || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'}
0 1 8 $Sport::Analytics::NHL::Test::ZERO_EVENT_GAMES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} or $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} and $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} == $Sport::Analytics::NHL::Test::NO_EVENTS and not $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'GS'} || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'} or $opts->{'bh'}
1 1 7 $Sport::Analytics::NHL::Test::ZERO_EVENT_GAMES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} or $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} and $Sport::Analytics::NHL::Test::BROKEN_FILES{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}{'BS'} == $Sport::Analytics::NHL::Test::NO_EVENTS and not $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'GS'} || $Sport::Analytics::NHL::Test::BOXSCORE->{'sources'}{'PL'} or $opts->{'bh'} or $opts->{'gs'}
856 1 1 4 $opts->{'es'} || $opts->{'pl'}
859 0 1 5 $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} == $Sport::Analytics::NHL::Test::NO_EVENTS or $opts->{'es'}
1 1 4 $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} and $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}} == $Sport::Analytics::NHL::Test::NO_EVENTS or $opts->{'es'} or $opts->{'ro'}
870 0 2 1 $BOXSCORE->has_html or not &is_unapplicable('attendance')
935 0 0 2 $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore_id}{'BS'} or &is_unapplicable('saves')
947 0 36 36 $stat eq 'goals' or $stat eq 'assists'
964 0 0 36 $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$boxscore_id} or &is_unapplicable($stat)
1008 5 0 38 $player->{'broken'} or $player->{'position'} eq 'N/A'
1042 3 8 4 $source eq 'BS' or -f "$path/$source.html" and not $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore->{'_id'}}{$source}
1180 0 46 279 $field eq 'file' or ref $event->{$field}