Condition Coverage

blib/lib/Geo/BUFR.pm
Criterion Covered Total %
condition 380 693 54.8


and 3 conditions

line !l l&&!r l&&r condition
190 0 54 1961 $level > $self->{'VERBOSE'} and $level > $Verbose
280 0 0 0 ref $value and not $key =~ /[BCD]_TABLE/
374 0 0 7 $bufr_edition >= 0 and $bufr_edition < 5
711 7 0 0 $compressed_data and defined $self->{'NUM_SUBSETS'}
7 0 0 $compressed_data and defined $self->{'NUM_SUBSETS'} and $self->{'NUM_SUBSETS'} == 1
1292 0 0 0 not $path and $version =~ /wmo/
1321 261 182 0 $Strict_checking and $num ne $val
1334 12 9 0 $Strict_checking and not $C_table{$table}
1612 12 37 106 $filehandle and not $self->{'BAD_LENGTH'}
1613 27 46 33 read($filehandle, $gts_eom, 4) == 4 and $gts_eom eq "\r\r\n\3"
1721 0 0 26 exists $self->{'START_POS'} and $self->{'BUFR_LENGTH'}
1892 134 21 0 $Strict_checking and $self->{'NUM_SUBSETS'} == 0
1893 134 21 0 $Strict_checking and ($sec3[3] & 63) != 0
1934 0 63 5 $len == 4 and substr($str, 0, 4) ne 7777
1939 5 0 0 $len > 4 and substr($str, 0, 4) eq 7777
0 0 5 $len == 4 and substr($str, 0, 4) ne 7777
2046 14 12 0 substr($id, 0, 1) eq 0 and not exists $B_table->{$id}
15 11 0 substr($id, 0, 1) eq 3 and not exists $D_table->{$id}
2270 18 28 0 $self->{'LOCAL_USE'} and length $self->{'LOCAL_USE'} > 1
2280 0 0 0 defined $sec2_code_ref and ref $sec2_code_ref eq "CODE"
2334 7152 20 4 $f == 9 and $id != 999999
2376 3692 3453 27 $Strict_checking and $short_unit eq "FLAG TABLE"
7145 0 27 $Strict_checking and $short_unit eq "FLAG TABLE" and $bits > 1
2377 27 0 0 $value ne "missing" and $value % 2
2387 6668 8 496 $C_table and $id != 31031
6676 167 329 $C_table and $id != 31031 and $value ne "missing"
2510 634 7 0 substr($id, 0, 1) eq 2 and $id =~ /^22[2-5]/ || $id =~ /^232/
2552 634 0 0 $Strict_checking and $short_unit eq "FLAG TABLE"
634 0 0 $Strict_checking and $short_unit eq "FLAG TABLE" and $bits > 1
2553 0 0 0 $value ne "missing" and $value % 2
2562 634 0 0 $C_table and $value ne "missing"
2609 36 3 0 defined $check_illegal and $value > $max_value
2633 36 2 1 defined $check_illegal and $txt =~ /bit $width set/
2686 108 0 1 $di + 2 == @_ and $_[$di + 1] =~ /^0310(00|01|02|11|12)$/
2757 0 0 0 $BUFR_table{'FORMAT'} eq "ECCODES" and $self->{'LOCAL_TABLES_NOT_FOUND'}
2775 1 5 0 $need_Dtable and not $self->{'D_TABLE'}
2776 0 0 0 $BUFR_table{'FORMAT'} eq "ECCODES" and $self->{'LOCAL_TABLES_NOT_FOUND'}
2808 0 3 0 @desc == 1 and $desc[0] =~ /^1/
2846 0 0 1 defined $width and $width =~ /\d+$/
2975 2 0 0 $Spew and $x == 0
2988 0 0 74 /^0310(00|01|02|11|12)/ and exists $B_table->{$_}
3130 7471 1 2 $self->{'ADD_ASSOCIATED_FIELD'} and $id ne "031021"
3151 7129 39 306 substr($id, 0, 3) eq "033" and defined $self->{'BITMAP_OPERATORS'}
7168 0 306 substr($id, 0, 3) eq "033" and defined $self->{'BITMAP_OPERATORS'} and $self->{'BITMAP_OPERATORS'}[-1] eq 222000
3178 1 23 102 $unit ne "CCITTIA5" and not $unit =~ /^(CODE|FLAG)/
23 0 1 $unit eq "CCITTIA5" and defined $self->{'CHANGE_CCITTIA5_WIDTH'}
3193 124 0 2 defined $self->{'NEW_REFVAL_OF'}{$id} and defined $self->{'NEW_REFVAL_OF'}{$id}{$isub}
3244 6525 0 949 $id eq "031031" and $self->{'BUILD_BITMAP'}
6063 453 9 $self->{'BUILD_BITMAP'} and $self->{'BITMAP_INDEX'} > 0
3259 8 0 17 $desc[$i] ne $self->{'BITMAP_OPERATORS'}[-1] and $i >= 0
3261 8 0 8 $desc[$i] > 100000 and $i >= 0
3347 7 0 0 $Spew and $x == 0
3360 0 0 29 /^0310(00|01|02|11|12)/ and exists $B_table->{$_}
3504 1637 9 9 $self->{'ADD_ASSOCIATED_FIELD'} and $id ne "031021"
3562 1610 24 30 substr($id, 0, 3) eq "033" and defined $self->{'BITMAP_OPERATORS'}
1634 0 30 substr($id, 0, 3) eq "033" and defined $self->{'BITMAP_OPERATORS'} and $self->{'BITMAP_OPERATORS'}[-1] eq 222000
3602 0 0 22 $unit ne "CCITTIA5" and not $unit =~ /^(CODE|FLAG)/
0 0 0 $unit eq "CCITTIA5" and defined $self->{'CHANGE_CCITTIA5_WIDTH'}
3644 5 0 7 $deltabytes and defined $minval
3649 3 0 4 $Strict_checking and $minval ne "\0" x $nbytes
3686 1652 0 0 $Spew and defined $minval
3693 1280 0 372 $deltabits and defined $minval
3698 704 211 696 $Strict_checking and defined $value
915 696 0 $Strict_checking and defined $value and $value + $minval > 2 ** $width
3711 1611 0 0 $id == 999999 and not defined $value
3733 1271 0 9 $id == 999999 and not defined $value
3745 1537 0 115 $id eq "031031" and $self->{'BUILD_BITMAP'}
1509 24 4 $self->{'BUILD_BITMAP'} and $self->{'BITMAP_INDEX'} > 0
3761 4 0 11 $desc_ref->[$i] ne $self->{'BITMAP_OPERATORS'}[-1] and $i >= 0
3763 4 0 4 $desc_ref->[$i] > 100000 and $i >= 0
3769 3 0 2 $desc_ref->[$i] > 100000 and $i >= 0
3829 18 18 54 not $lines[$i] =~ /^Section 0/ and $i < @lines - 1
4268 0 0 2 /^0310(00|01|02|11|12)/ and exists $B_table->{$_}
4270 0 0 2 @delayed_repl and /^03100(1|2)/
4317 0 0 0 $unit ne "CCITTIA5" and not $unit =~ /^(CODE|FLAG)/
0 0 0 $unit eq "CCITTIA5" and defined $self->{'CHANGE_CCITTIA5_WIDTH'}
4438 0 0 54 $next_id =~ /^0310(00|01|02|11|12)/ and exists $B_table->{$next_id}
4542 4958 1 2 $self->{'ADD_ASSOCIATED_FIELD'} and $id ne "031021"
4567 4564 25 372 substr($id, 0, 3) eq "033" and defined $self->{'BITMAP_OPERATORS'}
4589 0 372 substr($id, 0, 3) eq "033" and defined $self->{'BITMAP_OPERATORS'} and $self->{'BITMAP_OPERATORS'}[-1] eq 222000
4588 3898 0 1063 $id eq "031031" and $self->{'BUILD_BITMAP'}
3587 302 9 $self->{'BUILD_BITMAP'} and $self->{'BITMAP_INDEX'} > 0
4593 0 729 334 defined $value and $value == 0
4603 7 0 15 $desc[$i] ne $self->{'BITMAP_OPERATORS'}[-1] and $i >= 0
4605 7 0 7 $desc[$i] > 100000 and $i >= 0
4634 4959 0 2 defined $self->{'NEW_REFVAL_OF'}{$id} and defined $self->{'NEW_REFVAL_OF'}{$id}{$isub}
4642 4817 0 144 $self->{'NUM_CHANGE_OPERATORS'} > 0 and $id != 999999
4643 1 23 120 $unit ne "CCITTIA5" and not $unit =~ /^(CODE|FLAG)/
23 0 1 $unit eq "CCITTIA5" and defined $self->{'CHANGE_CCITTIA5_WIDTH'}
4657 142 0 2 defined $self->{'NEW_REFVAL_OF'}{$id} and defined $self->{'NEW_REFVAL_OF'}{$id}{$isub}
4695 531 2120 1194 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/
2651 1063 131 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/ and $width > 1
3183 0 131 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/ and $width > 1 and $value < $max_value
1063 131 0 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/ and $width > 1 and $value < $max_value and $value % 2
4760 54 0 2 $self->{'NUM_CHANGE_OPERATORS'} > 0 and $id != 999999
4761 0 0 2 $unit ne "CCITTIA5" and not $unit =~ /^(CODE|FLAG)/
0 0 0 $unit eq "CCITTIA5" and defined $self->{'CHANGE_CCITTIA5_WIDTH'}
4775 2 0 0 defined $self->{'NEW_REFVAL_OF'}{$id} and defined $self->{'NEW_REFVAL_OF'}{$id}{$isub}
4813 16 40 0 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/
56 0 0 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/ and $width > 1
40 0 0 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/ and $width > 1 and $value < $max_value
0 0 0 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/ and $width > 1 and $value < $max_value and $value % 2
4868 467 0 12 $self->{'NUM_CHANGE_OPERATORS'} > 0 and $id != 999999
4869 0 0 12 $unit ne "CCITTIA5" and not $unit =~ /^(CODE|FLAG)/
0 0 0 $unit eq "CCITTIA5" and defined $self->{'CHANGE_CCITTIA5_WIDTH'}
4903 140 2 461 defined $value and $unit ne "CCITTIA5"
142 461 0 defined $value and $unit ne "CCITTIA5" and not &looks_like_number($value)
4908 135 19 390 defined $value and defined $first_value
4926 0 485 118 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/
485 107 11 $Strict_checking and $unit =~ /^FLAG[ ]?TABLE/ and $width > 1
4927 0 0 11 defined $value and $value ne "missing"
0 11 0 defined $value and $value ne "missing" and $value % 2
4991 19 93 0 defined $first_value and not &looks_like_number($first_value)
5025 0 256 0 $Strict_checking and $value + $min_value > 2 ** $width - 1
5103 0 0 7 $next_id =~ /^0310(00|01|02|11|12)/ and exists $B_table->{$next_id}
5217 472 0 0 $self->{'ADD_ASSOCIATED_FIELD'} and $id ne "031021"
5247 432 10 30 substr($id, 0, 3) eq "033" and defined $self->{'BITMAP_OPERATORS'}
442 0 30 substr($id, 0, 3) eq "033" and defined $self->{'BITMAP_OPERATORS'} and $self->{'BITMAP_OPERATORS'}[-1] eq 222000
5266 365 0 107 $id eq "031031" and $self->{'BUILD_BITMAP'}
339 24 2 $self->{'BUILD_BITMAP'} and $self->{'BITMAP_INDEX'} > 0
5283 2 0 5 $desc[$i] ne $self->{'BITMAP_OPERATORS'}[-1] and $i >= 0
5285 2 0 2 $desc[$i] > 100000 and $i >= 0
5356 0 14 0 $bufr_edition < 4 and $actual_bytes % 2
5362 0 4 10 $bufr_edition < 4 and $comp_bytes % 2
5376 56 27 0 $Strict_checking and $str =~ /^ +$/
5389 56 0 27 $Strict_checking and $str ne ""
5435 25 13 5 $self->{'MINUTE'} == 0 and $self->{'HOUR'} == 0
38 5 0 $self->{'MINUTE'} == 0 and $self->{'HOUR'} == 0 and $self->{'DAY'} == 0
18 0 0 $self->{'MINUTE'} == 0 and $self->{'HOUR'} == 0 and $self->{'DAY'} == 0 and $self->{'MONTH'} == 0
5 0 0 $self->{'MINUTE'} == 0 and $self->{'HOUR'} == 0 and $self->{'DAY'} == 0 and $self->{'MONTH'} == 0 and $second == 0
0 0 0 $self->{'MINUTE'} == 0 and $self->{'HOUR'} == 0 and $self->{'DAY'} == 0 and $self->{'MONTH'} == 0 and $second == 0 and $year == 0 || $year == 2000
5516 196 104 87 $y == 0 and $x =~ /^[12378]$/
212 6 6 $x == 3 and $y == 255
121 0 40 $x == 22 and $y == 0
58 60 3 $x == 23 and $y == 0
58 0 60 $x == 23 and $y == 255
50 4 4 $x == 24 and $y == 0
50 0 4 $x == 24 and $y == 255
50 0 0 $x == 25 and $y == 0
50 0 0 $x == 25 and $y == 255
44 4 2 $x == 32 and $y == 0
44 0 4 $x == 32 and $y == 255
42 0 2 $x == 35 and $y == 0
24 0 18 $x == 36 and $y == 0
0 0 24 $x == 37 and $y == 0
0 0 0 $x == 37 and $y == 255
0 0 0 $x == 41 and $y == 0
0 0 0 $x == 41 and $y == 255
0 0 0 $x == 42 and $y == 0
0 0 0 $x == 42 and $y == 255
0 0 0 $x == 43 and $y == 0
0 0 0 $x == 43 and $y == 255
5519 38 49 0 $Strict_checking and not grep({$_ == $x;} @operators)
5610 0 8 0 $xx < 48 and $yy < 192
5614 8 0 16 exists $self->{'B_TABLE'}{$next_id} and (split(/\0/, $self->{'B_TABLE'}{$next_id}, 0))[-1] == $y
5673 0 0 60 defined $self->{'CURRENT_BITMAP'} || defined $self->{'REUSE_BITMAP'} and $self->{'BITMAP_OPERATORS'}[-1] eq 223000
5696 0 0 4 defined $self->{'CURRENT_BITMAP'} || defined $self->{'REUSE_BITMAP'} and $self->{'BITMAP_OPERATORS'}[-1] eq 224000
5719 0 0 0 defined $self->{'CURRENT_BITMAP'} || defined $self->{'REUSE_BITMAP'} and $self->{'BITMAP_OPERATORS'}[-1] eq 225000
5749 0 0 4 defined $self->{'CURRENT_BITMAP'} || defined $self->{'REUSE_BITMAP'} and $self->{'BITMAP_OPERATORS'}[-1] eq 232000

or 2 conditions

line l !l condition
259 5 0 shift() || 'all'
1351 10 94 shift() || ''
1383 15 0 shift() || ''
1385 15 0 $self->get_table_version($table) || ''
1466 3 233 $self->{'EOF'} || 0
1653 162 37 readline $filehandle || ' '
1666 56 46 $1 || ''
1684 5 1 $1 || ''
2172 0 0 shift() || {}
2174 0 0 $options->{'width'} || 15
2179 0 0 $self->get_current_ahl || ''
2296 111 0 $self->{'DESCRIPTORS_UNEXPANDED'} ||= ""
2314 64 0 shift() || 15
2324 5 59 $self->{'C_TABLE'} || ''
2467 7 0 shift() || 15
2503 0 7 $self->{'C_TABLE'} || ''
2876 0 3 $num_leading_spaces ||= 0
3801 18 0 shift() || 15

or 3 conditions

line l !l&&r !l&&!r condition
246 0 84 0 ref $class || $class
450 4 0 0 $optional_section eq 0 or $optional_section eq 1
595 0 0 7 $month == 0 or $month > 12
610 0 0 7 $day == 0 or $day > 31
694 1 4 0 $observed_data eq 0 or $observed_data eq 1
707 7 0 0 $compressed_data eq 0 or $compressed_data eq 1
790 58 9 0 uc $format eq "BUFRDC" or uc $format eq "ECCODES"
838 0 0 16 $table =~ /wmo/ or $table =~ /local/
847 7 2 0 $table =~ /wmo/ or $table =~ /local/
865 26 0 76 $local_table_version == 0 or $local_table_version == 255
902 0 0 0 substr($btables[-1], 14, 3) || _croak('Wrong tablepath or tableformat?')
1260 0 0 3210 $line eq "NOT DEFINED" or $line eq "RESERVED"
1266 6 0 23286 not defined $txt or $txt eq "NOT DEFINED"
6 312 22974 not defined $txt or $txt eq "NOT DEFINED" or $txt eq "RESERVED"
1275 0 0 2004 not defined $txt or $txt eq "NOT DEFINED"
0 174 1830 not defined $txt or $txt eq "NOT DEFINED" or $txt eq "RESERVED"
1357 34 61 0 $BUFR_table{"B$version"} || $self->_read_B_table_bufrdc($version)
1358 34 61 0 $BUFR_table{"D$version"} || $self->_read_D_table_bufrdc($version)
1362 2 5 0 $BUFR_table{"B$master"} || $self->_read_B_table_eccodes($master)
1363 2 5 0 $BUFR_table{"D$master"} || $self->_read_D_table_eccodes($master)
1374 0 2 0 $BUFR_table{"B$version"} || $self->_read_B_table_eccodes($version)
1375 0 1 1 $BUFR_table{"D$version"} || $self->_read_D_table_eccodes($version)
1389 3 6 0 $BUFR_table{"C$version"} || $self->_read_C_table($version)
1393 0 3 0 $BUFR_table{"$master"} || $self->_read_C_table($master)
1401 0 3 0 $BUFR_table{"C$version"} || $self->_read_C_table_eccodes($version)
1408 0 0 0 $self->get_max_table_version || _croak('No master tables found in tablepath')
1411 0 0 0 $BUFR_table{"C$version"} || $self->_read_C_table($version)
1413 0 0 0 $BUFR_table{"C$version"} || $self->_read_C_table_eccodes($version)
1503 185 14 0 $filehandle or $in_buffer
1554 0 1 155 $edition < 2 or $edition > 4
1655 41 0 158 CORE::eof $filehandle or substr($slurp, -4) ne "BUFR"
1713 0 0 26 $self->{'BAD_LENGTH'} or $self->{'ERROR_IN_MESSAGE'}
1717 21 5 0 $self->{'FILEHANDLE'} or $self->{'IN_BUFFER'}
1895 0 67 88 $Spew == 6 or $Nodata
1904 31 55 69 $self->{'IS_FILTERED'} or $Nodata
1934 0 5 63 $len > 4 or $len == 4 and substr($str, 0, 4) ne 7777
1984 67 19 63 $Nodata or $self->{'IS_FILTERED'}
2046 0 0 26 substr($id, 0, 1) eq 0 and not exists $B_table->{$id} or substr($id, 0, 1) eq 3 and not exists $D_table->{$id}
2100 47 14 173 $self->{'CURRENT_MESSAGE'} == 0 or $self->{'ERROR_IN_MESSAGE'}
14 138 35 $self->{'CURRENT_MESSAGE'} == 0 or $self->{'ERROR_IN_MESSAGE'} or $self->{'CURRENT_SUBSET'} >= $self->{'NUM_SUBSETS'}
2134 67 19 56 $Nodata or $self->{'IS_FILTERED'}
2317 0 0 64 ref $width or not $width =~ /^\d+$/
2510 7 0 0 $id =~ /^22[2-5]/ || $id =~ /^232/
2789 1 1 4 $how eq "simply" or $how eq "partially"
3001 0 0 8 $_ eq "031011" or $_ eq "031012"
3012 0 0 74 $_ eq "031011" or $_ eq "031012"
3380 0 0 29 $_ eq "031011" or $_ eq "031012"
3932 62 31 3906 /^$/ or /^Subset/
3941 0 624 3237 $value eq "" or $value eq "missing"
4272 0 0 2 not $factor =~ /^\d+$/ or $factor == 0
4419 5172 0 0 $desc[$idesc] || _croak("No descriptor no. $idesc defined. Consider using --strict_checking 2" . ' or --verbose 4 to explore what went wrong in the encoding')
4457 1 0 53 $next_id eq "031011" or $next_id eq "031012"
4908 19 4 131 defined $value or defined $first_value
5123 1 0 6 $next_id eq "031011" or $next_id eq "031012"
5435 0 0 0 $year == 0 || $year == 2000
5630 0 0 0 $_ == 1 or $_ == 2
5673 60 0 0 defined $self->{'CURRENT_BITMAP'} || defined $self->{'REUSE_BITMAP'}
5696 4 0 0 defined $self->{'CURRENT_BITMAP'} || defined $self->{'REUSE_BITMAP'}
5719 0 0 0 defined $self->{'CURRENT_BITMAP'} || defined $self->{'REUSE_BITMAP'}
5749 4 0 0 defined $self->{'CURRENT_BITMAP'} || defined $self->{'REUSE_BITMAP'}