Branch Coverage

blib/lib/Fortran/Format.pm
Criterion Covered Total %
branch 242 292 82.8


line true false branch
197 0 153 if ($@)
231 0 153 if $DEBUG
236 0 153 if $DEBUG
292 0 1021 if (@data and @data == $data_count)
305 4 28 if (ref $item eq 'ARRAY') { }
318 7 1409 if (ref $item eq 'ARRAY') { }
329 28 11 unless (@dims)
416 0 37 unless (wantarray)
422 0 37 if (ref $input) { }
433 0 47 unless ($self->writer->read_something)
456 652 315 if ($state == 0) { }
53 262 elsif ($state == 1) { }
10 252 elsif ($state == 2) { }
209 43 elsif ($state == 3) { }
29 14 elsif ($state == 4) { }
14 0 elsif ($state == 5) { }
459 10 642 if $char eq q[']
460 287 355 if $char =~ /\d/
461 7 348 if $char =~ /[+-]/
462 9 339 if $char eq ' '
463 16 323 if $char eq ','
467 11 42 if $char eq q[']
469 1 9 if $char eq q[']
473 3 206 if uc $char eq 'H'
475 58 148 if $char =~ /\d/
476 6 142 if $char eq ' '
480 3 26 if ($len-- == 0)
488 7 7 if $char =~ /\d/
489 0 7 if $char eq ' '
494 143 10 if ($state == 2 or $state == 3 or $state == 5) { }
0 10 elsif ($state == 1 or $state == 4) { }
502 2 625 if ($$_{'tok'} eq '/') { }
1 624 elsif ($$_{'tok'} eq ':') { }
507 0 153 if $DEBUG
514 780 160 if (not defined $patt or defined $self->peek_tok($patt))
517 474 306 if $pos
519 0 780 if $DEBUG and defined $tok
530 364 160 defined $tok && $tok =~ /$patt/ ? :
540 35 2 unless ref $dims
549 3 34 if ($last_dim =~ /^\d+A(\d+)$/)
564 3 55 if ($$self{'string_length'})
565 0 3 if (length $val > $$self{'string_length'}) { }
577 21 37 if @$data < $$self{'size'}
580 30 7 if (@$data == 1) { }
591 28 11 unless (@dims)
619 37 116 if ($pars{'input_list'})
651 61 1517 if ($pos > length $line)
665 0 58 if $DEBUG
673 0 58 if $DEBUG
677 37 21 if (defined $ret) { }
678 0 37 if $DEBUG
682 0 21 if $DEBUG
704 0 223 unless @_ == 3
705 212 11 if ($relative eq 'relative') { }
710 0 223 if $$self{'position'} < 0
715 256 845 if (@_) { }
720 159 46 if (@_) { }
725 283 575 if (@_) { }
730 1221 1068 if (@_) { }
759 77 3098 unless defined $ret
760 1578 1520 if (length $ret)
770 4 118 unless defined $ret
800 0 107 unless my $tok = $tokenizer->get_tok('^\\d+$')
802 2 105 if ($tokenizer->get_tok('\\.'))
804 0 2 unless defined $tok
811 32 816 unless @$data
814 19 797 if ($$self{'min'} and $$self{'min'} > length $s)
818 373 443 if ($i < 0) { }
823 1 41 if (defined $$self{'min'} and $$self{'min'} == 0 and $s == 0)
827 12 804 if (length $s > $$self{'width'})
835 2 39 unless $self->writer->want_more
837 39 0 if ($s =~ /^ *-?[\d ]+$/) { }
839 7 32 if ($self->writer->bz) { }
860 0 21 unless my $tok = $tokenizer->get_tok('^\\d+$')
862 0 21 unless $tokenizer->get_tok('^\\.$')
864 0 21 unless defined $tok
870 0 224 unless @$data
874 40 184 if ($f < 0 and $s =~ /[1-9]/) { }
880 50 174 if ($$self{'precision'} == 0)
886 38 186 if length $s == $$self{'width'} + 1
887 81 143 if (length $s > $$self{'width'})
896 0 8 unless $self->writer->want_more
900 7 1 if ($s =~ /^ *-?(?:[\d ]*\.?[\d ]*)$/ and $s =~ /\d/) { }
1 0 elsif ($s =~ /^[ .]*$/) { }
902 0 7 if ($self->writer->bz) { }
907 3 4 unless ($s =~ /\./)
929 0 28 unless $$self{'width'} = $tokenizer->get_tok('^\\d+$')
931 0 28 unless $tokenizer->get_tok('\\.')
933 0 28 unless defined $tok
939 0 312 unless @$data
958 296 16 if ($scale <= 0 and -$precision < $scale or $scale > 0 and $precision + 2 > $scale)
962 261 35 if $d != 0
963 48 248 if $scale > 0
965 192 104 unless ($exp_width)
966 24 168 abs $exp > 99 ? :
971 272 24 if ($$self{'exp_width'} or $exp_width != 3)
976 288 8 if (length $exp_s <= $exp_width + 2)
981 70 218 if ($d < 0 and $s =~ /[1-9]/) { }
989 0 288 unless $s =~ /\./
995 48 240 if length $s == $width + 1
998 8 280 if length $s > $width
1001 32 280 unless $s
1014 7 19 if ($tokenizer->get_tok('^E$'))
1015 0 7 unless $$self{'exp_width'} = $tokenizer->get_tok('^\\d+$')
1029 0 32 unless @$data
1044 16 16 if ($exp < -1 or $exp >= $precision) { }
1048 8 8 $exp_width ? :
1057 0 32 unless $s
1066 0 25 unless $$self{'width'} = $tokenizer->get_tok('^\\d+$')
1072 1 32 unless @$data
1074 22 10 $l ? :
1079 0 8 unless $self->writer->want_more
1083 6 2 if ($s =~ /^ *\.?[tT]/) { }
2 0 elsif ($s =~ /^ *\.?[fF]/) { }
1120 1 10 unless @$data
1136 2 53 unless @$data
1139 33 20 if (defined $$self{'width'}) { }
1140 10 23 if (length $datum > $$self{'width'}) { }
1153 0 3 unless $self->writer->want_more
1167 7 1 if (my $tok = $tokenizer->get_tok('^[SP]$'))
1168 6 1 if $tok eq 'P'
1184 0 6 unless my $tok = $tokenizer->get_tok('^[NZ]$')
1186 4 2 $tok eq 'Z' ? :
1215 1 2 if ($tokenizer->get_tok('^R$')) { }
1 1 elsif ($tokenizer->get_tok('^L$')) { }
1 0 elsif (my $tok = $tokenizer->get_tok('^\\d+$')) { }
1216 0 1 unless my $tok = $tokenizer->get_tok('^\\d+$')
1220 0 1 unless my $tok = $tokenizer->get_tok('^\\d+$')
1232 11 22 if ($$self{'position'}) { }
22 0 elsif ($$self{'delta'}) { }
1256 40 253 if ($tok =~ /^[+-]?\d+$/) { }
11 242 elsif ($tok eq '(') { }
11 231 elsif ($tok eq ')') { }
13 218 elsif ($tok =~ /^'/) { }
198 20 elsif ($tok =~ /^[IFEDGLAX]$/i) { }
20 0 elsif ($tok =~ /^([STB]|SLASH|COLON)$/) { }
1258 10 30 if ($tokenizer->get_tok('P')) { }
30 0 elsif ($tokenizer->peek_tok('^[IFEDGLAX(]$')) { }
1262 0 30 if ($tok =~ /^[+-]/ or $tok == 0) { }
1308 11 49 if $start and not $started and $node != $start
1312 41 1923 unless defined $ret
1313 0 1923 if (length $ret)
1325 4 3 if $start and not $started and $node != $start
1329 2 61 unless defined $ret
1340 43 978 if ($self->writer->reuse and $$self{'last_list'}) { }
1351 3 44 if ($self->writer->reuse and $$self{'last_list'}) { }