Branch Coverage

blib/lib/XML/Smart.pm
Criterion Covered Total %
branch 200 334 59.8


line true false branch
210 0 0 $_[0] ? :
0 0 !@_ ? :
221 144 129 $_[0] && !($_[0] =~ /^(?:uper|low|arg|on|no|use)\w+$/i) ? :
237 88 185 if (not $file or $file eq '') { }
241 0 185 if $@
261 147 1355 if ($#_ == 0 and not ref $_[0]) { }
269 3 144 if ($key =~ m(^/\[\d+\]$))
290 90 1412 unless ($saver->is_saver)
292 1265 237 unless ($back)
293 0 1265 if (not $pointer) { }
297 0 1277 unless ($array or $pointer)
301 1223 279 if (defined $key) { }
279 0 elsif (defined $i) { }
304 279 1223 unless (defined $key)
305 992 510 unless (defined $i)
307 0 1502 unless ($pointer)
320 1502 0 if (@keyprev)
321 1078 424 $$saver{'keyprev'} ? :
325 309 1193 if (defined $_[0])
327 147 1355 if ($null_clone or $$saver{'null'})
332 0 1502 if $$saver{'XPATH'}
346 204 3635 if ($this->null) { }
362 164 4058 if ($$$this{'null'})
366 52 4006 if (keys %{$$$this{'tree'};} < 1)
409 98 73 if ($$$this{'keyprev'})
413 73 98 unless (@tree)
419 12 86 if ($last =~ /^\[(\d+)\]$/)
427 21 123 if ($tree_i =~ /^\[(\d+)\]$/) { }
435 11 87 if (wantarray)
455 54 24 unless $tree_i =~ /^\[\d+\]$/
475 15 27 if ($tree_i =~ /^\[(\d+)\]$/) { }
487 6 3 unless ($this->is_node)
517 12 66 if ($k =~ /^\[(\d+)\]$/)
549 5 73 if ($$$this{'keyprev'})
558 5 73 if ($key ne '')
560 0 5 if $i
577 0 0 if (ref $ref eq 'HASH') { }
0 0 elsif (ref $ref eq 'ARRAY') { }
0 0 elsif (ref $ref eq 'SCALAR') { }
580 0 0 if (ref $$ref{$Key}) { }
589 0 0 if (ref $i) { }
635 0 0 if (ref $ref eq 'HASH') { }
0 0 elsif (ref $ref eq 'ARRAY') { }
0 0 elsif (ref $ref eq 'SCALAR') { }
638 0 0 if $Key eq '/order' or $Key eq '/nodes' or $Key =~ m[/\.CONTENT/]
639 0 0 if (ref $$ref{$Key}) { }
648 0 0 if (ref $i) { }
731 9 106 if ($${$_[0];}{'content'}) { }
750 0 6 if ($#nodes > 0)
767 0 21 if $this->null
772 9 12 if $$back{'/nodes'}{$key} or $$back{$key}->nodes_keys
785 0 0 if $this->null
794 0 0 if $$nodes{$Key}
796 0 0 if (not ref $$pointer{$Key} or ref $$pointer{$Key} eq 'HASH' or ref $$pointer{$Key} eq 'ARRAY' and $#{$$pointer{$Key};} == 0)
818 0 0 if $this->null
840 0 3 if $this->null
849 0 6 if ($$nodes{$Key} or ref $$pointer{$Key} eq 'HASH' or ref $$pointer{$Key} eq 'ARRAY' and $#{$$pointer{$Key};} > 0)
855 0 3 if (ref $$pointer{$Key} eq 'ARRAY') { }
878 0 25 if $this->null
886 0 6 if ($$nodes{$Key} or ref $$pointer{$Key} eq 'HASH' or ref $$pointer{$Key} eq 'ARRAY' and $#{$$pointer{$Key};} > 0)
907 3 15 unless (@_)
914 6 12 if $$back{'/nodes'}->null
917 12 6 if ($bool) { }
919 3 9 if ($$nodes{$key} and $$nodes{$key} =~ /^(\w+,\d+),(\d*)/) { }
925 9 3 if (not $$this{'CONTENT'})
927 9 0 if $content ne ''
934 6 0 if ($#keys == 0 and $keys[0] eq 'CONTENT')
935 6 0 !$$this{'CONTENT'}->null ? :
963 6 0 if defined $$pointer{'/order'} and ref $$pointer{'/order'} eq 'ARRAY'
976 0 33 if ($#_ < 1)
983 0 33 if $$back{'/nodes'}->null
986 15 18 if ($bool) { }
988 9 6 if ($$nodes{$key} and $$nodes{$key} =~ /^\w+,\d+,(\d*)/) { }
992 0 6 $$nodes{$key} ? :
996 11 4 if (not $$this{'CONTENT'})
998 11 0 if $content ne ''
1003 7 11 if (not $$nodes{$key}) { }
5 6 elsif ($$nodes{$key} eq '1') { }
6 0 elsif ($$nodes{$key} =~ /^\w+,\d+,1/) { }
0 0 elsif ($$nodes{$key} =~ /^\w+,\d+,0?$/) { }
1005 7 0 if ($tp > 2)
1015 0 0 if ($#keys == 0 and $keys[0] eq 'CONTENT')
1054 0 3 if $$back{'/nodes'}->null
1057 0 3 if (not $$nodes{$key} or $$nodes{$key} eq '1') { }
3 0 elsif ($$nodes{$key} =~ /^\w+,\d+,1/) { }
0 0 elsif ($$nodes{$key} =~ /^\w+,\d+,0?$/) { }
1066 0 0 if ($#keys == 0 and $keys[0] eq 'CONTENT')
1086 0 3 if $$back{'/nodes'}->null
1091 3 0 if ($#keys == 0 and $keys[0] eq 'CONTENT')
1126 161 1039 if $data and $data =~ m<[^\w\d\s!"#\$\%&'\(\)\*\+,\-\./:;<=>\?\@\[\\\]\^\`\{\|}~~$bin_string]>s || $data =~ /(\240|\351|\361|\363|\341|\374|\340|\350|\366|\343|\355|\366|\344|\372|\364|\324|\301|\342)/s
1132 22 1048 if $data and $data =~ /<.*?>/s
1133 29 1019 if $data and $data =~ /[\r\n\t]/s
1146 0 27 if ($type =~ /^\s*\s*$/is)
1153 6 21 if ($type =~ /^
1158 0 6 if ($type =~ /\$$/) { }
6 0 elsif ($type =~ /\@$/) { }
0 0 elsif ($type =~ /\%$/) { }
1173 3 18 if ($this->null)
1177 0 18 if ($type =~ /\$$/) { }
6 12 elsif ($type =~ /\@$/) { }
0 12 elsif ($type =~ /\%$/) { }
9 3 elsif ($type =~ /\.$/) { }
3 0 elsif ($type =~ /[\@\%]k$/) { }
1187 0 9 if ($n > 0) { }
1198 0 24 if ($type =~ /^\$./)
1200 0 0 if (ref $ret_i eq 'XML::Smart')
1207 15 9 if (wantarray)
1229 27 75 if ($#_ == 0 and ref $_[0] ne 'ARRAY')
1233 3 72 if ($#_ == 1 and $_[0] eq '[@]')
1241 6 69 if (ref $_[$i] eq 'ARRAY') { }
69 0 elsif (ref $_[$i] ne 'ARRAY' and ref $_[$i + 1] ne 'ARRAY' and ref $_[$i + 2] ne 'ARRAY') { }
1252 0 72 unless (@search)
1260 69 3 if (ref $$$this{'array'}) { }
1266 3 0 if (ref $$$this{'point'} eq 'HASH')
1268 12 3 if ref $$$this{'point'}{$k} eq 'HASH'
1286 12 210 if (ref $hash_i eq 'ARRAY') { }
1290 0 222 if ($name =~ /^content$/i)
1291 222 0 ref $hash eq 'HASH' ? :
1292 3 219 if ref $data eq 'HASH'
1295 63 159 if ($type eq 'eq' and $data eq $value) { }
0 159 elsif ($type eq 'ne' and $data ne $value) { }
0 159 elsif ($type eq '==' and $data == $value) { }
0 159 elsif ($type eq '!=' and $data != $value) { }
0 159 elsif ($type eq '<=' and $data <= $value) { }
21 138 elsif ($type eq '>=' and $data >= $value) { }
0 138 elsif ($type eq '<' and $data < $value) { }
0 138 elsif ($type eq '>' and $data > $value) { }
6 132 elsif ($type eq '=~' and $data =~ /$value/s) { }
0 132 elsif ($type eq '=~i' and $data =~ /$value/is) { }
0 132 elsif ($type eq '!~' and not $data =~ /$value/s) { }
0 264 elsif ($type eq '!~i' and not $data =~ /$value/is) { }
1310 63 156 if ($notwant and @hash)
1319 72 0 if (@hash)
1320 63 9 if ($notwant) { }
1322 0 63 if (ref $hash[0] eq 'ARRAY') { }
1331 6 21 if (ref $hash_i eq 'ARRAY') { }
1339 0 0 if (wantarray)
1349 3 247 $#_ > 0 ? :
1351 3 247 if ($this->null)
1358 153 97 if (defined $$$this{'content'} and not defined $content_to_return)
1359 0 153 if (@_)
1366 0 250 if (ref $$$this{'point'} eq 'ARRAY' and not defined $content_to_return)
1370 0 250 if (ref $$$this{'point'} ne 'HASH' and not defined $content_to_return)
1374 3 153 unless (exists $$$this{'point'}{$key} or defined $content_to_return)
1375 3 0 if (@_) { }
1382 156 94 if (defined $content_to_return)
1387 0 94 if (ref $$$this{'point'}{$key} eq 'ARRAY' and not defined $content_to_return) { }
94 0 elsif (exists $$$this{'point'}{$key} and not defined $content_to_return) { }
1389 0 0 if ($i eq '')
1393 0 0 if (@_)
1401 9 85 if (@_)
1402 3 6 if (my $tie = tied $$$this{'point'}{$key}) { }
1409 3 91 if (wantarray and my $tie = tied $$$this{'point'}{$key}) { }
1418 0 94 unless (defined $content_to_return)
1422 3 91 if (wantarray) { }
1439 0 0 if (-d $file or -e $file and not -w $file)
1447 0 0 if $unicode
1462 0 0 if ($this->null)
1468 0 0 if (exists $$$this{'content'}) { }
1492 0 1873 if ($$$this{'DEV_DEBUG'})
1507 0 0 if ($circ_ref)
1517 1793 80 if $this and $$this
1527 0 0 if (ref $$$this{'point'} eq 'HASH') { }
1534 0 0 if (ref $$$this{'tree'} eq 'HASH') { }
1542 0 0 if (ref $$$this{'back'} eq 'HASH') { }
1549 0 0 if ($$$this{'XPATH'})
1554 0 0 if ($context_ref =~ /XML\:\:XPath\:\:Node\:\:/)