Branch Coverage

blib/lib/Sport/Analytics/NHL/Test.pm
Criterion Covered Total %
branch 176 224 78.5


line true false branch
318 68 0 if ($DO_NOT_DIE)
321 0 68 if ($EVENT) { }
0 68 elsif ($PLAYER) { }
343 0 0 unless $message =~ /\n$/
361 149937 75046 if (@_ == 2) { }
365 74 74972 if (ref $_[1] and ref $_[1] eq 'ARRAY') { }
373 224915 68 if (&$test(@_)) { }
381 224983 0 if $0 =~ /\.t$/
396 0 1539 if $@
425 11219 6483 $is_nhl ? :
437 0 12430 if &test_team_code($_[0], $_[1])
446 6054 480 unless $THIS_SEASON < ($Sport::Analytics::NHL::Test::DATA_BY_SEASON{$data} || $Sport::Analytics::NHL::Test::STAT_RECORD_FROM{$data} || $data)
459 9 1 unless &is_unapplicable('location')
462 0 10 if @{$bs->{'periods'};} > 3
464 0 10 if @{$bs->{'periods'};} > 4 and $bs->{'stage'} == $Sport::Analytics::NHL::Test::REGULAR
465 0 10 if ($bs->{'so'} and ref $bs->{'shootout'})
499 10 15 if not $period and $p > 2
513 255 1235 if scalar keys %{$coords;} < 2
528 12 2 unless $opts->{'es'} or $opts->{'gs'} or $opts->{'ro'}
530 14 2 unless $opts->{'es'} or $opts->{'gs'}
531 2 16 if $opts->{'bs'}
533 2 16 if $opts->{'bs'}
536 5 20 $opts->{'ro'} ? :
547 0 304 if $player->{'missing'}
548 4 300 if ($opts->{'gs'}) { }
40 260 elsif ($opts->{'ro'}) { }
40 220 elsif ($opts->{'es'}) { }
550 0 4 $player->{'old'} ? :
560 12 208 $player->{'position'} eq 'G' ? :
563 106 114 if $opts->{'merged'}
577 436 180 if &is_unapplicable($Sport::Analytics::NHL::Test::STAT_RECORD_FROM{$stat}) or $player->{'position'} eq 'G' and $opts->{'es'}
578 0 3992 unless (defined $player->{$stat})
583 16 760 $opts->{'es'} || $opts->{'gs'} ? :
776 3216 $stat =~ /timeonice/i ? :
587 220 40 unless $opts->{'es'} or $opts->{'gs'} or $opts->{'ro'}
601 0 324 if $player->{'_id'} and $player->{'_id'} =~ /^80/
603 20 304 if ($player->{'broken'})
608 207 97 if (not $decision) { }
0 97 elsif ($player->{'decision'}) { }
620 6 2 unless $broken or $Sport::Analytics::NHL::Test::BOXSCORE->{'_gs_no_g'} or $opts->{'es'} or $opts->{'ro'}
621 6 12 if $opts->{'merged'}
640 555 112 if $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'})
650 1490 462 if not &is_unapplicable('coordinates') || &is_noplay_event($event) || $event->{'penalty'} || $Sport::Analytics::NHL::Test::BROKEN_COORDS{$Sport::Analytics::NHL::Test::BOXSCORE->{'_id'}}
659 659 1293 if $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'}
666 7 1945 if ($event->{'servedby'})
669 1 6 $opts->{'pl'} ? :
671 33 1919 if ($event->{'assists'} and @{$event->{'assists'};})
674 10 56 $opts->{'pl'} ? :
684 268 1351 if ($opts->{'gs'} and not $event->{'old'} or $opts->{'pl'}) { }
694 1325 26 unless $opts->{'gs'} or $event->{'type'} eq 'PENL' and $event->{'time'} eq '20:00' || $Sport::Analytics::NHL::Test::PENALTY_POSSIBLE_NO_OFFENDER{$event->{'penalty'}}
707 666 0 unless $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'
714 34 0 unless ($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)
718 16 18 if $event->{'sources'}{'BS'} or $event->{'sources'}{'GS'}
720 5 29 if $opts->{'bs'}
727 128 0 unless ($opts->{'pb'})
736 80 0 unless 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
748 1952 0 if exists $event->{'strength'}
785 192 0 unless $event->{'penaltyshot'}
827 1 6 $Sport::Analytics::NHL::Test::BOXSCORE->{'season'} < 2010 ? :
7 1 unless $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'}
841 1 5 if $opts->{'bs'}
843 3 3 if not $opts->{'es'} || $opts->{'pl'} and $boxscore->{'season'} >= $Sport::Analytics::NHL::Test::DATA_BY_SEASON{'officials'}
844 5 1 unless $opts->{'pl'}
846 4 1 unless $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'}
857 2 1 if $BOXSCORE->has_html or not &is_unapplicable('attendance')
859 0 3 if $bs->has_html
906 38 0 if defined $roster_player->{'penaltyMinutes'} and $roster_player->{'penaltyMinutes'} != -1
907 37 1 if ($roster_player->{'penaltyMinutes'} == $event_player->{'penaltyMinutes'} - $event_player->{'servedbyMinutes'})
922 2 0 unless $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore_id}{'BS'} or &is_unapplicable('saves')
933 36 72 if $stat eq 'penaltyMinutes'
934 36 36 if ($stat eq 'goals' or $stat eq 'assists')
942 0 36 unless defined $roster_player->{$stat}
951 36 0 unless $Sport::Analytics::NHL::Test::BROKEN_FILES{'BS'}{$boxscore_id} or &is_unapplicable($stat)
964 2 41 if ($player->{'position'} eq 'G') { }
993 2 0 unless $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore->{'_id'}}{'BS'}
995 5 38 if $player->{'broken'} or $player->{'position'} eq 'N/A'
1000 2 36 $player->{'position'} eq 'G' ? :
1005 1 0 unless $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore->{'_id'}}{'BS'}
1012 0 3 if ($boxscore->{'teams'}[0]{'score'} > $boxscore->{'teams'}[1]{'score'}) { }
3 0 elsif ($boxscore->{'teams'}[0]{'score'} < $boxscore->{'teams'}[1]{'score'}) { }
1014 0 0 $boxscore->{'season'} > 1998 && $boxscore->{'ot'} ? :
1018 0 3 $boxscore->{'season'} > 1998 && $boxscore->{'ot'} ? :
1025 2 1 unless &is_unapplicable('location')
1029 11 4 if $source eq 'BS' or -f "$path/$source.html" and not $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore->{'_id'}}{$source}
1056 6 0 if ($player->{'position'} eq 'G') { }
1070 2474 0 if defined $player->{$field}
1097 0 3 if $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore->{'_id'}}{'BS'} and $Sport::Analytics::NHL::Test::BROKEN_FILES{$boxscore->{'_id'}}{'BS'} == $Sport::Analytics::NHL::Test::UNSYNCHED
1100 547 119 unless &is_noplay_event($event)
1102 547 119 unless &is_noplay_event($event)
1106 3323 7 if defined $event->{$field}
1109 0 666 if $event->{'coords'}
1110 547 119 unless &is_noplay_event($event)
1113 11 655 if exists $event->{'en'}
1117 547 119 if defined $event->{'t'} and $event->{'t'} != -1
1120 990 1674 if exists $event->{$field}
1122 624 42 if ($event->{'on_ice'})
1133 11 0 unless $event->{'en'}
1137 10 1 if ($event->{'assist1'})
1140 10 0 if ($event->{'assist2'})
1147 0 0 if $event->{'length'} == 0
1150 0 0 if $event->{'servedby'}
1155 0 11 if ($event->{'type'} ne 'GOAL')
1167 46 279 if $field eq 'file' or ref $event->{$field}
1168 88 191 if ($event->{$field} =~ /\D/) { }
1204 657 6 if $boxscore->{'events'}[$e]{'period'} == $boxscore->{'events'}[$e + 1]{'period'}
1218 219 444 if $boxscore->{'events'}[$e]{'period'} == $boxscore->{'events'}[$e + 1]{'period'} and $boxscore->{'events'}[$e]{'ts'} == $boxscore->{'events'}[$e + 1]{'ts'}
1221 9 654 if ($event->{'type'} eq 'PSTR') { }
9 645 elsif ($event->{'type'} eq 'PEND') { }
0 645 elsif ($event->{'type'} eq 'GEND') { }
1246 1 38 if ($BOXSCORE)
1249 0 39 if ($EVENT)
1253 0 39 if ($PLAYER)