Branch Coverage

blib/lib/Geo/METAR.pm
Criterion Covered Total %
branch 82 250 32.8


line true false branch
394 0 4 unless (ref $self)
399 4 0 if ($Geo::METAR::AUTOLOAD =~ /.*::(.*)/) { }
413 0 4 if ($compat{$key})
420 4 0 if (exists $$self{$key}) { }
443 0 0 if $$self{'debug'}
455 1 0 if (@_)
538 0 9 if $$self{'debug'}
544 0 9 if ($parsestate == $expect_type and $tok =~ /(METAR|SPECI)/i) { }
1 8 elsif ($parsestate <= $expect_site and $tok =~ /([A-Z]{4}|K[A-Z0-9]{3})/) { }
1 7 elsif ($parsestate == $expect_datetime and $tok =~ /\d{6,6}Z/i) { }
0 7 elsif ($parsestate == $expect_modifier and $tok =~ /AUTO|COR|CC[A-Z]/i) { }
1 6 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_visibility and $tok =~ /(\d{3}|VRB)\d{2}(G\d{1,3})?(KT)?$/i) { }
0 6 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_visibility and $tok =~ /^(\d{3}|VRB)\d{2}(G\d{2,3})?MPS$/) { }
0 6 elsif ($parsestate >= $expect_wind and $parsestate < $expect_visibility and $tok =~ /^\d{3}V\d{3}$/) { }
0 6 elsif ($parsestate >= $expect_wind and $parsestate < $expect_visibility and $tok =~ m[^/////(KT|MPS)$]) { }
0 6 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_runwayvisual and $tok =~ /^\d{4}$/) { }
0 6 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_runwayvisual and $tok =~ /^\d{4}NDV$/) { }
1 5 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_runwayvisual and $tok =~ /.*?SM$/i) { }
0 5 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_runwayvisual and $tok =~ /^\d$/) { }
0 5 elsif ($parsestate == $expect_visibility and $tok =~ /^\d{4}(N|S|E|W|NE|NW|SE|SW)$/) { }
0 5 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_presentweather and $tok =~ m[R\d+(L|R|C)?/P?\d+(VP?\d+)?(FT|D|U|N|/)?$]i) { }
0 5 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_clouds and $tok =~ /^(-|\+)?(VC)?($_weather_types_pat)+/i) { }
0 5 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok eq 'CAVOK') { }
0 5 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok =~ /SKC|CLR/) { }
1 4 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok =~ m[^(FEW|SCT|BKN|OVC)(\d\d\d)?(CB|TCU)?/*$]i) { }
0 4 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok =~ /^(NSC|NCD)$/) { }
0 4 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_temperature and $tok =~ /^VV\d+$/) { }
1 3 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_pressure and $tok =~ m[^(M?\d\d)/(M?\d{0,2})]i) { }
1 2 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_remarks and $tok =~ /^A(\d\d)(\d\d)$/i) { }
0 2 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_remarks and $tok =~ /^Q(\d\d\d\d)$/i) { }
0 2 elsif ($parsestate >= $expect_modifier and $parsestate < $expect_remarks and $tok =~ /^RE($_weather_types_pat)$/) { }
0 2 elsif ($parsestate >= $expect_modifier and $tok =~ /^$_trend_types_pat/) { }
1 1 elsif ($parsestate >= $expect_modifier and $tok =~ /^RMK$/i) { }
0 1 elsif ($parsestate == $expect_usremarks and $tok =~ /^A(O\d)$/i) { }
0 1 elsif ($parsestate == $expect_usremarks and $tok =~ /^SLP(\d+)/i) { }
0 1 elsif ($parsestate == $expect_usremarks and $tok eq 'SLPNO') { }
0 1 elsif ($parsestate == $expect_usremarks and $tok =~ /^P(\d\d\d\d)$/i) { }
0 1 elsif ($parsestate == $expect_usremarks and $tok =~ /^($_weather_types_pat)([BE\d]+)$/i) { }
0 1 elsif ($parsestate >= $expect_recentweather and $tok eq 'CB' || $tok eq 'TCU') { }
0 1 elsif ($parsestate == $expect_usremarks and $tok =~ /^T(\d)(\d\d)(\d)(\d)(\d\d)(\d)$/i) { }
0 1 elsif ($parsestate < $expect_remarks) { }
548 0 0 if ($$self{'type'} eq 'METAR') { }
0 0 elsif ($$self{'type'} eq 'SPECI') { }
556 0 0 if $$self{'debug'}
568 0 1 if $$self{'debug'}
580 0 1 if $$self{'debug'}
594 0 0 if $$self{'debug'}
611 0 1 if $$self{'debug'}
624 0 0 if $$self{'debug'}
637 0 0 if $$self{'debug'}
647 0 0 if $$self{'debug'}
659 0 0 if $$self{'debug'}
669 0 0 if $$self{'debug'}
681 0 1 if $$self{'debug'}
698 0 0 if $$self{'debug'}
707 0 0 if $$self{'debug'}
722 0 0 if $$self{'debug'}
740 0 0 if (defined $qual) { }
742 0 0 if ($qual eq '-') { }
0 0 elsif ($qual eq '+') { }
762 0 0 if (defined $addlqual)
764 0 0 if ($addlqual eq 'VC')
775 0 0 if $$self{'debug'}
804 0 0 if $$self{'debug'}
821 0 1 if (defined $3)
823 0 0 if ($3 eq 'TCU') { }
0 0 elsif ($3 eq 'CB') { }
833 1 0 if ($2 ne '')
840 0 1 if $$self{'debug'}
855 0 0 if $$self{'debug'}
865 0 0 if $$self{'debug'}
876 0 1 if $$self{'temp_dew'}
884 0 1 if $$self{'debug'}
903 0 1 if $$self{'debug'}
917 0 0 if $$self{'debug'}
927 0 0 if $$self{'debug'}
937 0 0 if $$self{'debug'}
949 0 1 if $$self{'debug'}
962 0 0 if $$self{'debug'}
974 0 0 if $$self{'debug'}
986 0 0 if $$self{'debug'}
998 0 0 if ($1 eq '0000') { }
1020 0 0 if ($1 eq 'B') { }
1028 0 0 if $$self{'debug'}
1040 0 0 if ($tok eq 'CB') { }
0 0 elsif ($tok eq 'TCU') { }
1055 0 0 if ($1 == 1)
1061 0 0 if ($4 == 1)
1066 0 0 if $$self{'debug'}
1078 0 0 if $$self{'debug'}
1090 0 1 if $$self{'debug'}
1111 1 0 if (defined $$self{'wind'})
1119 0 1 if ($dir_deg =~ /VRB/i) { }
1122 0 1 if ($dir_deg < 15) { }
0 1 elsif ($dir_deg < 30) { }
0 1 elsif ($dir_deg < 60) { }
0 1 elsif ($dir_deg < 75) { }
0 1 elsif ($dir_deg < 105) { }
0 1 elsif ($dir_deg < 120) { }
0 1 elsif ($dir_deg < 150) { }
0 1 elsif ($dir_deg < 165) { }
0 1 elsif ($dir_deg < 195) { }
0 1 elsif ($dir_deg < 210) { }
1 0 elsif ($dir_deg < 240) { }
0 0 elsif ($dir_deg < 265) { }
0 0 elsif ($dir_deg < 285) { }
0 0 elsif ($dir_deg < 300) { }
0 0 elsif ($dir_deg < 330) { }
0 0 elsif ($dir_deg < 345) { }
1184 1 0 if ($$self{'windtype'} == $wt_knots) { }
0 0 elsif ($$self{'windtype'} == $wt_mps) { }
1190 1 0 if ($wind =~ /.{5,6}G(\d\d\d?)/o)
1200 0 0 if ($wind =~ /\d{5,6}G(\d\d\d?)/o)
1225 0 1 if (defined $$self{'windvar'})
1227 0 0 if ($$self{'windvar'} =~ /^(\d\d\d)V(\d\d\d)$/)
1241 1 0 if ($vis =~ /SM$/) { }
0 0 elsif ($$self{'MOD'} eq 'AUTO' and $vis =~ /(\d+)NDV$/) { }
1243 0 1 if ($vis =~ m[M(\d/\d)]o) { }
1262 4 48 if (uc $key eq $key and $key =~ /^(.*)_C$/)
1266 2 2 unless defined $$self{$key} and $$self{$key}
1299 0 0 unless defined $flag
1301 0 0 if ($flag eq 'Y' or $flag eq 'y' or $flag == 1) { }
0 0 elsif ($flag eq 'N' or $flag eq 'n' or $flag == 0) { }
1337 0 0 if uc $var ne $var
1339 0 0 if (ref $$self{$var} eq 'ARRAY') { }