Branch Coverage

blib/lib/Geo/FIT.pm
Criterion Covered Total %
branch 123 520 23.6


line true false branch
42 6 0 unless (defined $uint64_invalid)
176 0 0 if ($_[0]->bcmp(0) < 0) { }
184 0 0 if ($_[0]->bcmp(0) < 0) { }
197 0 0 if ($n->band($sint64_2c_sign)->bcmp(0) == 0) { }
6676 0 0 $mspec =~ /^\d+$/ ? :
6678 0 0 if (ref $msgtype eq 'HASH') { }
6687 0 0 $mspec =~ /^\d+$/ ? :
6689 0 0 if (ref $msgtype eq 'HASH') { }
6712 0 0 $mspec =~ /^\d+$/ ? :
6714 0 0 if (ref $msgtype eq "HASH")
6717 0 0 if ref $flddesc eq "HASH"
6724 0 0 $mspec =~ /^\d+$/ ? :
6726 0 0 if (ref $msgtype eq "HASH")
6729 0 0 if ref $flddesc eq "HASH"
6759 0 6 if wantarray
6766 0 0 if (@_) { }
6768 0 0 if wantarray
6774 0 15 unless $str
6776 7 8 if ($minor >= 100)
6783 16 3 if (@_) { }
6785 6 10 if $version =~ /\./
6788 12 7 if (wantarray)
6791 5 7 if ($version >= 2200)
6803 1 4 if (&blessed($self)) { }
6804 0 1 unless defined $self->{'profile_version'}
6805 0 1 if @_
6860 4 8 if (@_) { }
6869 3 310 if (@_) { }
6878 2 303 if (@_) { }
6887 345 1306 if (@_) { }
6896 0 1252 if (@_) { }
6905 0 2 if (@_) { }
6916 0 2 unless defined $self->crc
6924 0 2 if (@_) { }
6933 0 3 if (@_) { }
6942 2 3 if ($self->offset > 0)
6943 0 2 if ($self->cp_fit) { }
6946 0 0 if (&safe_isa($FH, "FileHandle") and $FH->opened)
6973 3 4 if (@_) { }
6994 3 0 if ($fn ne '') { }
6997 3 0 if ($FH->open("< $fn")) { }
6998 3 0 if (binmode $FH, ':raw') { }
7013 0 11 if (@_) { }
7022 1 0 if (@_) { }
7031 1 0 if (@_) { }
7046 4 1 if ($n > 0) { }
7049 1 3 if (defined $self->file_size)
7050 1 0 if (defined $self->crc) { }
7057 1 0 if (defined $n) { }
7094 0 3 unless $self->fill_buffer($header_length)
7102 0 3 if ($h_len < $header_length) { }
7108 3 0 if ($h_len > $header_length)
7109 0 3 unless $self->fill_buffer($h_len - $header_length)
7114 0 3 if ($sig != $FIT_signature) { }
7116 0 0 $_ ne '\\' && 32 >= ord $_ && ord $_ <= 126 ? :
7122 3 0 if ($proto_ver >= $protocol_version_header_crc_started and length $extra >= $header_crc_length)
7132 3 0 unless (defined $self->crc)
7157 1 301 unless $self->fill_buffer($crc_octets)
7163 300 1 if ($j < $self->file_size) { }
0 1 elsif (not $self->maybe_chained and $j > $self->file_size) { }
7167 0 300 if ($record_header & $rechd_mask_compressed_timestamp_header) { }
36 264 elsif ($record_header & $rechd_mask_definition_message) { }
7175 36 264 if ($local_msg_type < 0) { }
7180 264 0 if (ref $desc eq 'HASH') { }
7191 0 1 unless defined $self->crc
7208 0 0 if (@_) { }
7209 0 0 if (&safe_isa($_[0], 'CODE')) { }
7232 1 0 if (@_) { }
7238 1 0 if $fit ne ""
7242 0 1 if (&safe_isa($self->{'error_callback'}, 'CODE')) { }
7243 0 0 &safe_isa($self->{'error_callback_argv'}, 'ARRAY') ? :
7266 7 11 if (@_) { }
7285 3 1 if $over < 0
7287 4 0 if ($m > $over)
7305 1 0 if (@_) { }
7324 0 0 if (@_) { }
7333 0 0 if (@_) { }
7342 0 0 $self->use_gmtime ? :
7350 0 0 if (ref $typedesc ne 'HASH') { }
0 0 elsif ($typedesc->{'_mask'}) { }
0 0 elsif ($type_name eq 'date_time') { }
7353 0 0 if (not $val =~ /^[-+]?\d+$/) { }
7359 0 0 if ($expr =~ s/^0[xX]//) { }
7378 0 0 if ($rest) { }
0 0 elsif (@key) { }
7389 0 0 if (not $val =~ /^[-+]?\d+$/) { }
0 0 elsif ($val >= $typedesc->{'_min'} and $val != $invalid[$typedesc->{'_base_type'}]) { }
7392 0 0 $gmt ne '' ? :
7394 0 0 if ($self->numeric_date_time) { }
7410 0 300 if (@_) { }
7413 2 298 if ref $self->{'data_message_descriptor'} ne "ARRAY"
7441 0 0 if ($num == $msgnum_anon) { }
0 0 elsif (not defined($msgtype = $msgtype_by_num{$num})) { }
0 0 elsif (@_) { }
7442 0 0 if (@_) { }
7443 0 0 if (ref $_[0] eq 'CODE') { }
7452 0 0 if ref $cb eq "ARRAY"
7459 0 0 if (ref $_[0] eq 'CODE') { }
7461 0 0 if $msgtype->{'_name'} ne ""
7468 0 0 ref $cb eq 'ARRAY' ? :
7488 2 8 if ($name eq $msgname_anon) { }
0 8 elsif (not defined($msgtype = $msgtype_by_name{$name})) { }
8 0 elsif (@_) { }
7489 1 1 if (@_) { }
7490 1 0 if (ref $_[0] eq 'CODE') { }
7499 2 96 if ref $cb eq "ARRAY"
7506 8 0 if (ref $_[0] eq 'CODE') { }
7513 0 0 ref $cb eq 'ARRAY' ? :
7528 0 0 if (not defined $i_id) { }
0 0 elsif ($T_id != 2 and $T_id != 13) { }
0 0 elsif (not defined $i_index) { }
7539 0 0 if ($emsg ne "")
7540 0 0 if ($warn) { }
7549 0 0 unless ref $devdata_by_index eq "HASH"
7552 0 0 unless ref $devdata_by_id eq "HASH"
7555 0 0 if ($T_id == 2) { }
7577 0 0 if (not defined $i_index) { }
0 0 elsif (not defined $i_field_num) { }
0 0 elsif (not defined $i_base_type_id) { }
0 0 elsif ($T_base_type_id != 2) { }
0 0 elsif (not defined $i_field_name) { }
0 0 elsif ($T_field_name != 7 or $c_field_name <= 0) { }
7597 0 0 if ($emsg ne "")
7598 0 0 if ($warn) { }
7608 0 0 if ($base_type == $I_base_type_id)
7613 0 0 if ($base_type < 0)
7620 0 0 unless ($base_type <= 16)
7627 0 0 unless (ref $devdata_by_index eq "HASH")
7634 0 0 if ($index == $I_index)
7641 0 0 if ($num == $I_field_num)
7648 0 0 unless (ref $devdata eq "HASH")
7654 0 0 unless ref $field_desc_by_num eq "HASH"
7657 0 0 unless ref $field_desc_by_name eq "HASH"
7661 0 0 if (defined $name)
7675 0 0 unless ($i_aname =~ /^i_(developer_data_index|field_definition_number|fit_base_type_id|field_name)$/)
7685 0 0 if ($desc->{$T_aname} == 7) { }
0 0 elsif ($v->[$i] != $desc->{$I_aname}) { }
7693 0 0 if defined $name
7700 0 858 if ($endian != $my_endian and $size[$type] > 1) { }
7703 0 0 if ($size[$type] == 2) { }
0 0 elsif ($size[$type] == 4) { }
7721 0 36 unless $self->fill_buffer($defmsg_min_length)
7727 0 36 $endian ? :
7732 0 36 unless $self->fill_buffer($len)
7734 0 36 if $endian != $my_endian
7743 27 5 if ref $msgtype eq "HASH" and exists $msgtype->{'_name'}
7744 0 36 if ref $cbmap->{$msgnum} eq "ARRAY"
7745 36 0 if ref $cb ne "ARRAY"
7746 16 20 if ref $cb eq "ARRAY"
7755 832 26 if (ref $msgtype eq "HASH")
7758 650 182 if (ref $fldtype eq "HASH")
7766 208 650 unless defined $name
7776 541 317 if %attr
7777 116 742 if defined $tname
7788 0 858 if ($packfactor[$type] > 1)
7793 54 804 if $c > 1
7801 0 36 if ($record_header & $rechd_mask_devdata_message)
7803 0 0 unless $self->fill_buffer($devdata_min_length)
7808 0 0 unless $self->fill_buffer($len)
7813 0 0 if (ref $devdata_by_index ne "HASH")
7823 0 0 if (ref $devdata eq 'HASH') { }
7826 0 0 if (ref $fdesc_by_num eq 'HASH') { }
7835 0 0 if (ref $fdesc eq 'HASH') { }
7843 0 0 unless defined $name
7852 0 0 if %attr
7863 0 0 if ($packfactor[$type] > 1)
7868 0 0 if $c > 1
7873 0 0 if @emsg
7876 0 36 if @cvt
7877 0 36 if @pi
7905 0 0 if (@_) { }
7915 0 264 unless $self->fill_buffer($desc->{'message_length'})
7916 0 264 if ref $desc->{'endian_converter'} eq "ARRAY"
7923 0 264 if (ref $desc->{'packfilter_index'} eq "ARRAY")
7934 0 0 if $i < $i_array_t
7947 21 243 if (ref $cb eq 'ARRAY') { }
7948 0 21 if $v[0] & $rechd_mask_compressed_timestamp_header
7959 0 0 if ($drop_devdata and $desc->{'message_name'} eq 'developer_data_id' || $desc->{'message_name'} eq 'field_description') { }
7964 0 0 if (ref $desc->{'packfilter_index'} eq "ARRAY")
7972 0 0 if $i < $i_array
7982 0 0 if ($drop_devdata) { }
7983 0 0 if ($desc->{'devdata_first'} > 0) { }
8008 0 0 if (ref $sw->{'_by'} eq 'ARRAY') { }
8018 0 0 if (defined $desc->{$i_name} and ($val = $$v[$desc->{$i_name}]) != $$desc{"I_" . $key})
8021 0 0 if (defined $key_tn)
8024 0 0 if defined $t_val
8027 0 0 if (ref $sw->{$val} eq "HASH")
8051 0 0 if $$v[$i + $j] == 0
8059 0 0 if (ref $attr eq 'HASH') { }
8062 0 0 if defined $scale and $scale > 0
8063 0 0 if $offset
8065 0 0 if (defined $unit) { }
0 0 elsif (defined $scale and $scale > 0) { }
8068 0 0 if (ref $unit_tab eq "HASH")
8071 0 0 if ($scale1 > 0)
8075 0 0 if $offset1
8076 0 0 if $unit1 ne ""
8079 0 0 if ($scale > 0) { }
0 0 elsif ($self->without_unit) { }
8082 0 0 if ($self->without_unit) { }
8106 0 0 if (ref $attr eq 'HASH') { }
8110 0 0 if ($unit ne "")
8113 0 0 if (ref $unit_tab eq "HASH")
8116 0 0 if $scale1 > 0
8117 0 0 if $offset1
8118 0 0 if $unit1 ne ""
8121 0 0 if length $num >= length $unit and substr($num, -length($unit)) eq $unit
8125 0 0 if $offset
8126 0 0 if $scale > 0
8150 0 0 if ($val == $invalid) { }
8153 0 0 if (defined $tname)
8156 0 0 if defined $vname
8159 0 0 if (ref $attr eq 'HASH') { }
8170 0 0 if (not $val =~ /^[-+]?\d+$/) { }
8171 0 0 if ($tname ne "")
8174 0 0 if defined $vnum
8177 0 0 if (ref $attr eq 'HASH') { }
8191 0 0 if ($s < 0)
8201 0 0 $sign < 0 ? :
8203 0 0 unless $hms =~ s/\./s/
8209 0 0 if (@_) { }
8278 0 0 unless defined $FH
8279 0 0 if $desc->{'array_length'} == $#$v
8289 0 0 if (ref $attr->{'switch'} eq "HASH")
8292 0 0 if (ref $t_attr eq "HASH")
8306 0 0 if isnan($$v[$i + $j])
8307 0 0 if $$v[$i + $j] != $invalid
8310 0 0 if ($j < $c or not $skip_invalid)
8311 0 0 if $type == 6 and $tname eq "date_time" and $pname eq "timestamp"
8312 0 0 $type_name[$type] ne '' ? :
8313 0 0 if $name ne $pname
8314 0 0 if $j >= $c
8317 0 0 if ($type == 7) { }
8320 0 0 if $c > 1
8325 0 0 if $v->[$i] ne $pval
8327 0 0 if ($c > 1)
8333 0 0 if $v->[$j] ne $pval
8350 0 0 unless defined $FH
8351 0 0 if ($desc->{'array_length'} == $#$v)
8364 0 0 if (ref $attr->{'switch'} eq "HASH")
8367 0 0 if (ref $t_attr eq "HASH")
8381 0 0 if isnan($$v[$i + $j])
8382 0 0 if $$v[$i + $j] != $invalid
8385 0 0 if ($j < $c or not $skip_invalid)
8386 0 0 if $type == 6 and $tname eq "date_time" and $pname eq "timestamp"
8387 0 0 if $out
8390 0 0 if ($type == 7) { }
8393 0 0 if $c > 1
8397 0 0 if (&looks_like_number($pval)) { }
8403 0 0 if ($c > 1)
8409 0 0 if (&looks_like_number($pval)) { }
8440 0 0 if (@_) { }
0 0 elsif (ref $self eq '') { }
8441 0 0 if (ref $self eq '') { }
8467 0 0 if (@_) { }
8476 0 0 if (@_) { }
8497 0 0 $on ? :
8502 0 0 $on ? :
8520 0 3 if &safe_isa($cp_fit_FH, "FileHandle") and $cp_fit_FH->opened
8521 3 0 if $FH->opened