Branch Coverage

blib/lib/Data/Sofu.pm
Criterion Covered Total %
branch 285 482 59.1


line true false branch
41 787 173 unless ref $ref
42 101 72 if ref $ref eq 'SCALAR'
43 15 57 if ref $ref eq 'Data::Sofu::Reference'
48 2 56 unless $sofu
49 0 58 if (wantarray) { }
57 0 2 unless $sofu
61 2 33 unless $sofu
65 0 0 unless $sofu
70 1 23 unless $sofu
75 0 2 unless $sofu
80 0 0 unless $sofu
82 0 0 if ($class eq 'Data::Sofu')
90 0 0 unless $sofu
95 0 24 unless $sofu
100 0 1 unless $sofu
105 0 2 unless $sofu
110 0 44 unless $sofu
115 0 0 unless $sofu
120 0 0 unless $sofu
125 0 8 unless $sofu
130 0 2 unless $sofu
167 0 0 if $key eq '='
177 0 2 if (ref $file and ref $file ne 'GLOB')
189 2 6 if $key eq '='
197 58 0 if (@_)
219 23 12 if (not ref $file) { }
12 0 elsif (ref $file eq 'SCALAR') { }
0 0 elsif (ref $file eq 'GLOB') { }
221 0 23 unless open $fh, '<:raw', $$self{'CurFile'}
228 0 12 if utf8::is_utf8($$file)
229 12 0 unless utf8::is_utf8($$file)
243 28 7 if ($b eq 'So')
245 28 0 if ($b eq 'Sofu')
250 32 3 if ($b eq "\000\000" || $b eq "\cA\000" || $b eq "\000\cA" and $c ne "\376")
252 0 32 unless $bdriver
255 0 32 if (wantarray)
262 3 0 if ($guess)
264 3 0 if ref $enc
265 0 3 unless ref $enc
267 0 3 if substr($text, 0, 1) eq ''
268 0 3 if ref $file
286 29 24 if ($_[0])
287 29 0 if (ref $_[0] eq 'HASH') { }
294 29 24 if $data
300 0 24 if ($_[0])
301 0 0 if (ref $_[0] eq 'HASH') { }
308 0 24 if $data
343 0 801 unless $$self{'PreserveCommentary'}
345 26 775 unless $tree
346 7 794 if ($$self{'Commentary'}{$tree})
348 3 4 if $$self{'TREE'}
351 0 7 if $res and $res ne ' '
365 0 150 if ($$self{'Ref'}{$ref} and $$self{'TREE'})
376 500 100 if (not ref $r) { }
50 50 elsif (ref $r eq 'HASH') { }
50 0 elsif (ref $r eq 'ARRAY') { }
403 50 100 if ($$self{'Ref'}{$ref} and $$self{'TREE'})
410 76 24 if $deep or not $$self{'Libsofucompat'}
413 0 225 if not $wkey or $wkey =~ /[\=\"\}\{\(\)\s\n]/
415 50 175 if (not ref $$ref{$_}) { }
75 100 elsif (ref $$ref{$_} eq 'HASH') { }
100 0 elsif (ref $$ref{$_} eq 'ARRAY') { }
431 76 24 if $deep or not $$self{'Libsofucompat'}
440 1 23 if (not ref $file) { }
1 22 elsif (ref $file eq 'SCALAR') { }
22 0 elsif (ref $file eq 'GLOB') { }
442 0 1 unless open $fh, '>:raw:encoding(UTF-16)', $$self{'CurFile'}
447 0 1 unless open $fh, '>:utf8', $file
462 24 0 unless $$self{'SetIndent'}
467 0 24 if (not ref $ref) { }
24 0 elsif (ref $ref eq 'HASH') { }
0 0 elsif (ref $ref eq 'ARRAY') { }
500 48 12 if (not ref $file) { }
12 0 elsif (ref $file eq 'SCALAR') { }
0 0 elsif (ref $file eq 'GLOB') { }
502 0 48 unless open $fh, $$self{'CurFile'}
509 2 10 if utf8::is_utf8($$file)
510 12 0 unless utf8::is_utf8($$file)
524 23 37 if ($b eq 'So')
526 23 0 if ($b eq 'Sofu')
531 26 34 if ($b eq "\000\000" || $b eq "\cA\000" || $b eq "\000\cA" and $u ne "\376")
533 0 26 unless $bdriver
537 0 26 if (wantarray)
544 30 4 if ($guess)
546 28 2 if ref $enc
547 2 28 unless ref $enc
549 4 30 if ref $file
551 2 32 if substr($text, 0, 1) eq ''
554 0 34 if (wantarray)
555 0 0 unless $u
556 0 0 if ref $u eq 'HASH'
559 0 34 unless $u
560 34 0 if ref $u eq 'HASH'
575 0 1 if $$self{'SetIndent'}
577 0 1 if (not ref $ref) { }
1 0 elsif (ref $ref eq 'HASH') { }
0 0 elsif (ref $ref eq 'ARRAY') { }
607 0 39 unless defined $c
608 2 37 if ($c eq '{') { }
0 37 elsif ($c eq '(') { }
0 37 elsif ($c eq '"') { }
0 37 elsif ($c eq '<') { }
37 0 elsif (not $c =~ /[\=\"\}\{\(\)\s\n]/) { }
614 0 2 if ($c = $self->get)
625 0 0 if ($c = $self->get)
637 0 0 if ($c = $self->get)
645 0 0 if ($x eq '!' or $x eq 'S' or $x eq '?') { }
647 0 0 unless $mldriver
648 0 0 if ($$self{'OBJECT'})
661 0 0 if ($c = $self->get)
674 0 37 if ($c = $self->get)
687 98 17704 if ($$self{'Ret'})
691 0 0 if @_ and $_[0] and $_[0] != ''
692 0 17704 unless $$self{'LENGTH'}
693 138 17566 if $$self{'COUNT'} >= $$self{'LENGTH'}
695 0 17566 if $$self{'Debug'}
697 1536 16030 if ($c eq '"')
698 1536 0 unless $$self{'Escape'}
700 240 17326 if ($c eq '\\') { }
706 78 0 if ($c eq '#' and not $$self{'String'} and not $$self{'Escape'})
719 1678 15888 if ($c and $c eq "\n")
723 0 17566 if not defined $c and $$self{'Debug'}
732 47 2606 unless $tree
734 73 2580 if @{$$self{'COMMENT'};}
741 3 36 if ($$self{'OBJECT'}) { }
743 0 15 if ${$e;}->valid
745 3 12 if $target and not $target =~ /^->/
746 15 0 if $$self{'Ref'}{$target}
749 12 0 if $$self{'Ref'}{$key}
755 6 95 if $target and not $target =~ /^->/
757 101 0 if $$self{'Ref'}{$target}
775 25 582 unless defined $text
788 192 768 if ($noescape) { }
789 116 76 if ($ttext =~ /^\@(.+)$/)
791 15 101 if ($$self{'OBJECT'})
798 15 61 if ($$self{'OBJECT'})
799 3 12 if $ttext eq 'UNDEF'
802 37 24 if $ttext eq 'UNDEF'
812 240 6803 if ($char eq '\\') { }
813 0 240 if $escape
817 240 6563 if ($escape) { }
818 200 40 if (lc $char eq 'n') { }
40 0 elsif (lc $char eq 'r') { }
0 0 elsif (lc $char eq '"') { }
837 42 726 if $$self{'OBJECT'}
851 0 4584 if $$self{'Debug'}
852 2123 2461 if (not $char =~ /[\=\"\}\{\(\)\s\n]/s) { }
360 2101 elsif ($char eq '=') { }
80 2021 elsif ($char eq '{') { }
124 1897 elsif ($char eq '}') { }
77 1820 elsif ($char eq '"') { }
160 1660 elsif ($char eq '(') { }
0 1660 elsif ($char eq ')') { }
853 43 2080 if ($eq) { }
860 43 0 if refe($result{$keyu})
869 0 360 if $comp eq ''
875 0 80 unless $eq
876 0 80 if $comp eq ''
891 9 115 if $$self{'OBJECT'}
895 0 77 unless ($eq)
902 0 77 unless $eq
903 0 77 if $comp eq ''
912 0 160 unless ($eq)
915 0 160 unless $eq
916 0 160 if $comp eq ''
932 3 32 if $$self{'OBJECT'}
949 0 917 if $$self{'Debug'}
950 739 178 if ($in) { }
951 77 662 if ($char eq '"') { }
0 662 elsif ($char eq '\\') { }
952 0 77 if ($escape) { }
958 0 77 if refe($result[-1])
967 0 0 if ($escape) { }
982 13 165 if (not $char =~ /[\=\"\}\{\(\)\s\n]/s) { }
0 165 elsif ($char eq '=') { }
0 165 elsif ($char eq '"') { }
0 165 elsif ($char eq '{') { }
39 126 elsif ($char =~ /[\}\)]/) { }
0 126 elsif ($char eq '(') { }
0 126 elsif ($char eq ')') { }
984 0 13 if (@result > 1) { }
13 0 elsif (@result) { }
988 0 0 if $$self{'OBJECT'}
1018 0 39 if ($cur ne '') { }
1019 0 0 if $$self{'OBJECT'}
1020 0 0 if (@result) { }
1024 0 0 if $$self{'OBJECT'}
1037 0 39 if (@result > 1) { }
39 0 elsif (@result) { }
1041 0 0 if $$self{'OBJECT'}
1054 0 0 if $$self{'OBJECT'}
1073 0 25 if ($cur ne '') { }
1074 0 0 if $$self{'OBJECT'}
1075 0 0 if (@result) { }
1080 0 0 if $$self{'OBJECT'}
1093 0 25 if (@result > 1) { }
25 0 elsif (@result) { }
1097 0 0 if $$self{'OBJECT'}
1109 0 0 if $$self{'OBJECT'}
1119 192 0 if @_
1122 0 1417 if $$self{'Debug'}
1123 1225 192 if (not $char =~ /[\=\"\}\{\(\)\s]/) { }
0 192 elsif ($char =~ /[\=\"\{\(]/) { }
9 183 elsif ($char =~ /[\}\)]/) { }
183 0 elsif ($char =~ /\s/) { }
1154 0 10649 if $$self{'Debug'}
1155 6304 4345 if ($in) { }
1156 691 5613 if ($char eq '"') { }
240 5373 elsif ($char eq '\\') { }
1157 0 691 if ($escape) { }
1163 0 691 if refe($result[-1])
1172 0 240 if ($escape) { }
1187 149 4196 if (not $char =~ /[\=\"\}\{\(\)\s\n]/) { }
0 4196 elsif ($char eq '=') { }
691 3505 elsif ($char eq '"') { }
40 3465 elsif ($char eq '{') { }
0 3465 elsif ($char eq '}') { }
80 3385 elsif ($char eq '(') { }
240 3145 elsif ($char eq ')') { }
1191 73 76 if refe($result[-1])
1221 18 222 if $$self{'OBJECT'}
1227 0 0 if $cur ne ''
1228 0 0 if $$self{'OBJECT'}
1233 0 1341 unless defined $key
1234 0 1341 unless $key
1241 0 370 if $key eq '<>'
1242 0 370 if $key eq ''
1259 0 8 unless $bdriver
1268 1 1 unless $mldriver
1269 0 2 if (not ref $file) { }
2 0 elsif (ref $file eq 'SCALAR') { }
0 0 elsif (ref $file eq 'GLOB') { }
1270 0 0 unless open $fh, '>:encoding(UTF-8)', $file
1273 0 2 unless open $fh, '>:utf8', $file
1290 0 2 unless $mldriver
1302 1 43 unless $bdriver
1303 36 8 if (not ref $file) { }
8 0 elsif (ref $file eq 'SCALAR') { }
0 0 elsif (ref $file eq 'GLOB') { }
1304 0 36 unless open $fh, '>:raw', $file
1307 0 8 unless open $fh, '>', $file