Branch Coverage

blib/lib/Attean/API/QueryPlanner.pm
Criterion Covered Total %
branch 70 102 68.6


line true false branch
134 0 26 unless shift()
138 26 0 $self->keep ? :
145 0 2082 unless &blessed($model) and $model->does("Attean::API::Model")
147 1283 799 if ($plan->has_cost) { }
150 799 0 if ($model->does("Attean::API::CostPlanner"))
151 27 772 if (defined(my $cost = $model->cost_for_plan($plan, $self)))
160 0 772 if ($plan->isa('Attean::Plan::Quad')) { }
0 772 elsif ($plan->isa('Attean::Plan::Table')) { }
408 364 elsif ($plan->isa('Attean::Plan::NestedLoopJoin')) { }
356 8 elsif ($plan->isa('Attean::Plan::HashJoin')) { }
3 5 elsif ($plan->isa('Attean::Plan::Service')) { }
0 5 elsif ($plan->isa('Attean::Plan::Unique')) { }
161 0 0 if &blessed($_)
169 26 382 if ($lcost == 0) { }
0 382 elsif ($rcost == 0) { }
180 52 356 unless $plan->children_are_variable_connected
187 0 356 unless $plan->children_are_variable_connected
206 0 772 if ($self->log->is_trace) { }
255 0 13 $k < scalar @todo ? :
261 16 52 if scalar @$o == 0
262 16 36 if scalar @$o == scalar @$s
287 51 9 if ($cost == $min)
300 51 0 if (not defined $min_key or $min_key eq $v_key)
336 0 125 unless shift()
339 0 125 if ($self->log->is_trace)
355 0 1075 unless &blessed($model) and $model->does("Attean::API::Model")
357 796 279 if ($plan->has_cost) { }
360 279 0 if ($model->does("Attean::API::CostPlanner"))
361 29 250 if (defined(my $cost = $model->cost_for_plan($plan, $self)))
370 4 246 if ($plan->isa('Attean::Plan::Quad')) { }
0 246 elsif ($plan->isa('Attean::Plan::Table')) { }
124 122 elsif ($plan->isa('Attean::Plan::NestedLoopJoin')) { }
104 18 elsif ($plan->isa('Attean::Plan::HashJoin')) { }
1 17 elsif ($plan->isa('Attean::Plan::Service')) { }
0 17 elsif ($plan->isa('Attean::Plan::Unique')) { }
371 12 4 if &blessed($_)
380 2 122 if ($lcost == 0) { }
2 120 elsif ($rcost == 0) { }
392 0 104 if ($lcost == 0) { }
0 104 elsif ($rcost == 0) { }
465 0 4 if ($t->subject->does('Attean::API::Variable')) { }
470 0 4 if ($t->predicate->does('Attean::API::Variable')) { }
473 0 4 if ($t->predicate->equals(iri('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'))) { }
479 4 0 if ($t->object->does('Attean::API::Variable')) { }
0 0 elsif ($t->object->does('Attean::API::Literal')) { }
496 208 16 if (scalar @$jv) { }
497 64 144 if (&all(sub {
504 64 0 if ($lnodes[$i]->does("Attean::API::Variable") and $lnodes[$i]->value eq $var)
507 64 0 if ($rnodes[$i]->does("Attean::API::Variable") and $rnodes[$i]->value eq $var)
510 64 0 if scalar keys %joinpos >= 2
519 64 0 if (exists $costs{$joinpos})