Branch Coverage

lib/XML/Parser/Lite/Tree/XPath/Token.pm
Criterion Covered Total %
branch 236 344 68.6


line true false branch
17 48153 7371 unless $$self{'type'} eq $type
19 2985 4386 if defined $content and $$self{'content'} ne $content
27 6 6 if $$self{'type'} eq 'Number'
28 1 5 if $$self{'type'} eq 'Literal'
29 4 1 if $$self{'type'} eq 'Operator'
40 39 240 if $$self{'absolute'}
41 138 141 if defined $$self{'content'}
42 17 262 if defined $$self{'axis'}
55 1 1695 if $context->is_error
58 154 1541 if ($$self{'type'} eq 'LocationPath') { }
279 1262 elsif ($$self{'type'} eq 'Step') { }
221 1041 elsif ($$self{'type'} eq 'NameTest') { }
58 983 elsif ($$self{'type'} eq 'NodeTypeTest') { }
31 952 elsif ($$self{'type'} eq 'Predicate') { }
173 779 elsif ($$self{'type'} eq 'Number') { }
280 499 elsif ($$self{'type'} eq 'FunctionCall') { }
196 303 elsif ($$self{'type'} eq 'FunctionArg') { }
120 183 elsif ($$self{'type'} eq 'EqualityExpr' or $$self{'type'} eq 'RelationalExpr') { }
93 90 elsif ($$self{'type'} eq 'Literal') { }
9 81 elsif ($$self{'type'} eq 'UnionExpr') { }
36 45 elsif ($$self{'type'} eq 'MultiplicativeExpr') { }
11 34 elsif ($$self{'type'} eq 'OrExpr' or $$self{'type'} eq 'AndExpr') { }
27 7 elsif ($$self{'type'} eq 'AdditiveExpr') { }
6 1 elsif ($$self{'type'} eq 'UnaryExpr') { }
64 92 62 if ($$self{'absolute'}) { }
68 0 62 if $ret->is_error
74 0 279 unless ($step->match('Step'))
80 0 279 if $ret->is_error
98 0 89 unless ($step->match('AxisSpecifier') or $step->match('NameTest') or $step->match('Predicate') or $step->match('NodeTypeTest'))
105 0 310 if $ret->is_error
113 87 134 if $$self{'content'} eq '*'
115 0 134 if ($$self{'content'} =~ /\:\*$/)
119 134 0 if ($$context{'type'} eq 'nodeset')
124 188 420 if ($$tag{'type'} eq 'element' and $$tag{'name'} eq $$self{'content'})
128 12 596 if ($$tag{'type'} eq 'attribute' and $$tag{'name'} eq $$self{'content'})
141 58 0 if ($$self{'content'} eq 'node')
142 58 0 if ($$context{'type'} eq 'nodeset') { }
168 133 38 if ($$ret{'type'} eq 'boolean') { }
26 12 elsif ($$ret{'type'} eq 'number') { }
12 0 elsif ($$ret{'type'} eq 'nodeset') { }
0 0 elsif ($$ret{'type'} eq 'Error') { }
170 45 88 if ($$ret{'value'})
176 8 18 if ($$ret{'value'} == $$child{'proximity_position'})
182 6 6 if (scalar @{$$ret{'value'};})
208 0 280 unless (defined $handler and defined $$handler[0])
220 0 196 if $out->is_error
241 5 256 if ($sig =~ /\+$/)
242 107 154 if ($sig =~ /\?$/)
249 5 256 if ($repeat) { }
256 5 5 unless (defined $in_args[$position])
257 1 4 if ($count == 1)
265 5 0 if (defined $value) { }
266 0 5 if $value->is_error
270 0 0 if ($count == 1)
279 65 191 unless (defined $in_args[$position])
280 65 0 if ($optional) { }
290 191 0 if (defined $value) { }
292 0 191 if $value->is_error
306 0 196 unless 1 == scalar @{$$self{'tokens'};}
316 0 120 if $v1->is_error
317 0 120 if $v2->is_error
319 0 120 if ($$v1{'type'} gt $$v2{'type'})
324 6 114 if ($t eq 'nodeset/string')
329 0 5 if $v1_s->is_error
332 0 5 if $ok->is_error
334 2 3 if $$ok{'value'}
340 22 92 if ($t eq 'string/string')
345 92 0 if ($t eq 'number/number')
362 0 9 if $a1->is_error
363 0 9 if $a2->is_error
379 0 36 if $a1->is_error
380 0 36 if $a2->is_error
383 1 35 if $$self{'content'} eq '*'
384 12 24 if $$self{'content'} eq 'mod'
385 23 13 if $$self{'content'} eq 'div'
394 0 11 if $a1->is_error
395 0 11 if $a2->is_error
397 11 0 if $$self{'type'} eq 'OrExpr'
398 0 0 if $$self{'type'} eq 'AndExpr'
405 0 27 if $a1->is_error
406 0 27 if $a2->is_error
409 26 1 if $$self{'content'} eq '+'
410 1 26 if $$self{'content'} eq '-'
418 0 6 if $a1->is_error
434 110 86 if $type eq 'string'
435 22 174 if $type eq 'number'
436 47 149 if $type eq 'nodeset'
437 4 192 if $type eq 'boolean'
438 13 183 if $type eq 'any'
447 0 172 unless defined $token
450 0 172 if $out->is_error
498 280 0 if defined $$function_map{$function}
523 0 3 unless (defined $value)
525 0 0 if $value->get_error
541 38 0 if $$subject{'type'} eq 'nodeset'
569 0 21 unless (defined $value)
571 0 0 if $value->is_error
581 0 33 if $node->is_error
584 0 33 unless defined $node
595 0 11 if $val < 0
606 0 11 if $val < 0
614 0 4 unless ($$self{'context'}{'type'} eq 'node' or $$self{'context'}{'type'} eq 'nodeset')
622 2 2 if ($$obj{'type'} eq 'nodeset') { }
634 0 4 unless length $ids
646 4 0 if ($$self{'context'}{'type'} eq 'nodeset')
649 0 4 if ($$self{'context'}{'type'} eq 'node')
669 12 20 if ($$node{'type'} eq 'element' and length $$node{'uid'})
672 6 16 if ($id eq $$node{'uid'})
684 24 8 if ($$node{'type'} eq 'element' or $$node{'type'} eq 'root')
705 0 9 if $$node{'type'} eq 'Error'
706 0 9 unless defined $node
710 8 1 if defined $name
719 0 7 if $$node{'type'} eq 'Error'
720 0 7 unless defined $node
724 7 0 if defined $name
733 0 57 if $$node{'type'} eq 'Error'
734 0 57 unless defined $node
738 56 1 if defined $name
750 64 11 unless (defined $$args[0])
752 62 2 if $$self{'context'}{'type'} eq 'node'
753 2 0 if $$self{'context'}{'type'} eq 'nodeset'
763 0 11 if $$args[0]{'type'} eq 'node'
765 11 0 if ($$args[0]{'type'} eq 'nodeset')
772 11 4 if ($$node{'order'} < $min)
793 1 9 unless (defined $$args[0])
795 0 1 if $$self{'context'}{'type'} eq 'node'
796 1 0 if $$self{'context'}{'type'} eq 'nodeset'
801 4 5 if ($$args[0]{'type'} eq 'number')
806 1 4 if ($$args[0]{'type'} eq 'string')
811 2 2 if ($$args[0]{'type'} eq 'node' or $$args[0]{'type'} eq 'nodeset')
814 0 2 if $$node{'type'} eq 'Error'
816 2 0 if ($$node{'type'} eq 'element') { }
823 2 0 if ($$args[0]{'type'} eq 'boolean')
825 1 1 $$args[0]{'value'} ? :
845 1 2 if ($idx == -1)
857 1 2 if ($idx == -1)
872 3 8 if $t == $value
879 27 92 if ($$a1{'type'} eq 'string')
880 13 14 $$a1{'value'} eq $$a2{'value'} ? :
27 0 if ($op eq '=')
881 0 0 $$a1{'value'} ne $$a2{'value'} ? :
0 0 if ($op eq '!=')
882 0 0 $$a1{'value'} ge $$a2{'value'} ? :
0 0 if ($op eq '>=')
883 0 0 $$a1{'value'} le $$a2{'value'} ? :
0 0 if ($op eq '<=')
884 0 0 $$a1{'value'} gt $$a2{'value'} ? :
0 0 if ($op eq '>')
885 0 0 $$a1{'value'} lt $$a2{'value'} ? :
0 0 if ($op eq '<')
888 92 0 if ($$a1{'type'} eq 'number')
889 18 59 $$a1{'value'} == $$a2{'value'} ? :
77 15 if ($op eq '=')
890 0 1 $$a1{'value'} != $$a2{'value'} ? :
1 14 if ($op eq '!=')
891 0 0 $$a1{'value'} >= $$a2{'value'} ? :
0 14 if ($op eq '>=')
892 0 0 $$a1{'value'} <= $$a2{'value'} ? :
0 14 if ($op eq '<=')
893 3 4 $$a1{'value'} > $$a2{'value'} ? :
7 7 if ($op eq '>')
894 2 5 $$a1{'value'} < $$a2{'value'} ? :
7 0 if ($op eq '<')
917 20 12 if ($$node{'type'} eq 'element' or $$node{'type'} eq 'root')
926 11 10 if ($$child{'type'} eq 'element')
929 10 11 if ($$child{'type'} eq 'text')
936 0 12 if ($$node{'type'} eq 'attribute')
946 0 12 if ($$node{'type'} eq 'namespace')
966 12 0 if ($$node{'type'} eq 'text')
985 71 2 if ($$node{'type'} eq 'element')
988 71 0 defined $$node{'local_name'} ? :
994 2 0 if ($$node{'type'} eq 'root')