Branch Coverage

lib/Chemistry/OpenSMILES/Parser.yp
Criterion Covered Total %
branch 112 120 93.3


line true false branch
108 0 180 if ref $class
133 161 539 if (&is_aromatic($_[1]{'last'}) and &is_aromatic($_[2]))
152 196 7 if ($_[2] ne '-') { }
183 2 376 if ($_[0]{'USER'}{'OPTIONS'}{'report_unnecessary_dot_usage'} and $_[3]{'first'}{'index'} != $_[3]{'last'}{'index'})
188 353 25 if ($_[1]{'last'}{'index'} != $_[3]{'first'}{'index'})
195 25 353 if (&is_aromatic($_[1]{'last'}) and &is_aromatic($_[3]{'first'}))
209 1 45 if ($_[0]{'USER'}{'OPTIONS'}{'report_unnecessary_dot_usage'} and $_[4]{'first'}{'index'} != $_[4]{'last'}{'index'})
214 43 3 if ($_[1]{'last'}{'index'} != $_[4]{'first'}{'index'})
219 44 2 if ($_[3] ne '-') { }
236 4 3 if ($_[0]{'USER'}{'OPTIONS'}{'report_unnecessary_dot_usage'})
268 0 10 if $self->{'USER'}{'FILEIN'}
270 1 9 if (${$self->{'TOKEN'};} eq "" and grep {$_ eq "(" if defined $_ and not ref $_;} map({$_->[1];} @{$$self{"STACK"};}))
271 2 5 if defined $_ and not ref $_
276 2 7 if (${$self->{'TOKEN'};} eq ")")
281 6 1 if ($self->YYData->{'INPUT'}) { }
295 0 321 if (not $self->YYData->{'INPUT'} and $self->{'USER'}{'FILEIN'})
301 0 3473 if ($self->YYData->{'INPUT'} =~ s/^(\s+)//)
306 2 3471 if (defined $self->{'USER'}{'OPTIONS'}{'max_hydrogen_count_digits'})
312 238 3235 if ($self->YYData->{'INPUT'} =~ s/^\[ (?[0-9]+)? (?[A-Za-z][a-z]?|\*) (?@( (TH|AL)[12] | SP [123] | (TB|OH)[0-9]{1,2} | \@? ))? (? $hcount_re)? (?--|\+\+|[-+][0-9]{0,2})? (:(?[0-9]+))? \]//x)
329 4 234 if ($atom->{'symbol'} eq '*' or $atom->{'symbol'} eq 'Db') { }
2 232 elsif ($atom->{'symbol'} eq lc $atom->{'symbol'} and not $atom->{'symbol'} =~ /^(as|se|[bcnops])$/) { }
5 227 elsif ($atom->{'symbol'} eq 'Ha' or not 'Chemistry::Elements'->new($atom->{'symbol'})) { }
339 23 208 if ($atom->{'charge'})
345 29 202 if ($atom->{'hcount'}) { }
347 13 16 $atom->{'hcount'} ? :
352 6 225 if ($atom->{'isotope'})
357 14 217 exists $atom->{'class'} ? :
363 1464 1771 if ($self->YYData->{'INPUT'} =~ s/^(Br|Cl|[BCINOPSFbcnops*])//)
373 255 1516 if ($self->YYData->{'INPUT'} =~ s/^%([0-9]{2})// or $self->YYData->{'INPUT'} =~ s/^([0-9])//)
380 1196 320 if ($char ne "")
390 185 152 unless $options
402 2 316 if (scalar keys %{$$self{"USER"}{"RINGBONDS"};})
413 742 932 if $options->{'raw'}
416 778 154 unless (exists $atom->{'hcount'})
417 2 776 unless exists $Chemistry::OpenSMILES::Parser::normal_valence{$atom->{'symbol'}}
418 919 367 $_ ne ':' && exists $Chemistry::OpenSMILES::Parser::bond_symbol_to_order{$_} ? :
419 562 724 $graph->has_edge_attribute($atom, $_, 'bond') ? :
425 4 772 unless defined $valence
434 8 901 if (&is_chiral($atom))
435 8 0 if ($atom->{'chirality_neighbours'}) { }
436 4 4 if (&any(sub { $_->{'number'} < $atom->{'number'}; } , @{$$atom{'chirality_neighbours'};})) { }
451 57 869 if (&is_chiral($atom))
452 54 3 if ($atom->{'chirality'} =~ /^\@\@?$/)
453 9 45 if ($graph->degree($atom) == 2) { }
1 44 elsif ($graph->degree($atom) == 5) { }
2 42 elsif ($graph->degree($atom) == 6) { }
474 126 129 if ($self->{'USER'}{'RINGBONDS'}{$ring_bond}) { }
478 0 12 if ($bond and $self->{'USER'}{'RINGBONDS'}{$ring_bond}{'bond'} and !($bond =~ m[^[\\/]$]) && $bond ne $self->{'USER'}{'RINGBONDS'}{$ring_bond}{'bond'} || $bond eq '\\' && $self->{'USER'}{'RINGBONDS'}{$ring_bond}{'bond'} ne '/' || $bond eq '/' && $self->{'USER'}{'RINGBONDS'}{$ring_bond}{'bond'} ne '\\')
490 2 123 if ($bond and not defined $self->{'USER'}{'RINGBONDS'}{$ring_bond}{'bond'})
497 1 124 if $atom == $ring_atom
498 36 70 if (not $bond and &is_aromatic($ring_atom) and &is_aromatic($atom))
501 51 73 if ($bond and $bond ne '-') { }
511 4 0 if (&is_chiral($ring_atom) and $ring_atom->{'chirality_neighbours'})
513 5 2 if not ref $ring_atom->{'chirality_neighbours'}[$_]
515 4 0 if defined $pos
519 17 112 $bond ? :
531 91 431 if $index1 == $index2
544 151 378 if ($attributes) { }
557 2139 344 unless &is_chiral($atom1)
564 421 7 unless &is_chiral($atom1)