Branch Coverage

blib/lib/Bio/Phylo/Parsers/Nexus.pm
Criterion Covered Total %
branch 195 282 69.1


line true false branch
126 180 810 if (&looks_like_instance($defaults{$key}, 'ARRAY')) { }
45 765 elsif (&looks_like_instance($defaults{$key}, 'HASH')) { }
167 265 48 if (not $self->{'_linemode'}) { }
48 0 elsif ($self->{'_linemode'}) { }
169 10 1050 if ($raw_token =~ qr/^\[/)
176 415 635 if (exists $self->{$lower_case_token} and not $private_block) { }
634 2 elsif ($self->{'_current'} and not $private_block) { }
178 415 0 if (ref $self->{$lower_case_token} eq 'CODE')
199 0 0 if ($self->{'_begin'} and not exists $self->{$lower_case_token} and not $private_block)
208 0 1 if ($private_block and $token_queue->[-2] eq 'end' and $token_queue->[-1] eq ';') { }
333 332 76 if (not $line =~ /$QUOTES_OR_BRACKETS/mx || $INSIDE_QUOTE) { }
20 56 elsif ($line =~ /$OPENING_QUOTE_OR_BRACKET/mx and not $INSIDE_QUOTE) { }
30 26 elsif (not $line =~ /$CONTEXT_CLOSER/ and $INSIDE_QUOTE) { }
20 6 elsif ($line =~ /$CONTEXT_QB_AT_START/ and $INSIDE_QUOTE) { }
6 0 elsif ($line =~ /$CONTEXT_CLOSER/ and $INSIDE_QUOTE) { }
334 20 312 if ($continue) { }
377 9 11 if ($q eq '"' or $q eq q[']) { }
11 0 elsif ($q eq '[') { }
378 9 0 if ($remainder =~ /^(${q}[^$q]*?$q)(.*)$/) { }
0 0 elsif ($remainder =~ /^${q}[^$q]*$/) { }
395 3 827 if substr($line, $i, 1) eq '['
396 8 822 if ($i and not $INSIDE_QUOTE)
405 11 811 if substr($line, $i, 1) eq ']'
416 6 0 if $continue
417 0 6 if ($q eq '"' or $q eq q[']) { }
6 0 elsif ($q eq ']') { }
424 3 411 if substr($line, $i, 1) eq '['
425 3 411 if ($i and not $INSIDE_QUOTE)
427 3 0 if ($continue) { }
436 6 405 if substr($line, $i, 1) eq ']'
438 3 0 if ($continue) { }
455 0 15 if ($INSIDE_QUOTE)
467 352 20 if (not $word =~ /$QUOTES_OR_BRACKETS/mx) { }
485 13 13 if ($block->_type == $TAXA) { }
13 0 elsif ($block->_type != $TAXA and $block->can('set_taxa')) { }
489 0 13 if ($taxa->[-1] and $taxa->[-1]->can('_type') == $TAXA and not $block->get_taxa)
503 156 702 if (&looks_like_instance($defaults{$key}, 'ARRAY')) { }
39 663 elsif (&looks_like_instance($defaults{$key}, 'HASH')) { }
527 14 0 if (uc $_[0] eq '#NEXUS')
539 13 5 if ($self->{'_begin'}) { }
555 2 15 if (not $token =~ /CHARSET/i || $self->{'_charset'}{'name'}) { }
1 14 elsif ($token =~ /^\(/) { }
1 13 elsif (defined $self->{'_charset'}{'matrix'} and not $self->{'_charset'}{'matrix'} and not $token =~ /(?:\(?CHARACTERS|=)/i) { }
8 5 elsif ($token =~ /(?:\d+|-)/) { }
580 2 17 if (not $token =~ /TAXSET/i || $self->{'_taxset'}{'name'}) { }
1 16 elsif ($token =~ /^\(/) { }
1 15 elsif (defined $self->{'_taxset'}{'taxa'} and not $self->{'_taxset'}{'taxa'} and not $token =~ /(?:\(?TAXA|=)/) { }
10 5 elsif ($token =~ /(?:\d+|-)/) { }
604 0 0 if (defined $token and uc $token eq 'NO')
612 11 14 if (defined $token and uc $token ne 'TITLE')
614 11 0 if (not $self->_current->get_name)
624 0 2 if (defined $token and not $token =~ /^(?:LINK|TAXA|=)$/i)
626 0 0 if (not $self->_current->get_taxa)
628 0 0 if ($block->get_name and $block->get_name eq $link)
646 13 26 if (defined $_[0] and $_[0] =~ /^\d+$/)
655 59 13 if (defined $_[0] and uc $_[0] ne 'TAXLABELS') { }
13 0 elsif (defined $_[0] and uc $_[0] eq 'TAXLABELS') { }
670 0 0 if (defined $_[0] and uc $_[0] ne 'BLOCKID')
679 0 0 if ($self->{'_begin'})
688 9 0 if ($self->{'_begin'})
697 9 18 if (defined $_[0] and $_[0] =~ /^\d+$/)
711 9 18 if (defined $_[0] and not $_[0] =~ /^(?:DATATYPE|=)/i)
720 0 0 if (defined $_[0] and not $_[0] =~ /^(?:MATCHCHAR|=)/i)
734 9 18 if (not $_[0] =~ /^(?:GAP|=)/i || $self->{'_gap'})
745 9 18 if (not $_[0] =~ /^(?:MISSING|=)/i || $self->{'_missing'})
756 5 10 if (not $_[0] =~ /^(?:SYMBOLS|=)$/i and $_[0] =~ /^"?(.+)"?$/)
767 0 0 if (defined $_[0] and uc $_[0] ne 'CHARLABELS')
776 16 2 if (defined $token and uc $token ne 'CHARSTATELABELS')
784 0 0 if (defined $token and uc $token ne 'STATELABELS')
785 0 0 if ($token eq ',') { }
801 9 48 unless (defined $self->{'_matrixtype'})
803 0 9 if (@{$self->{'_charlabels'};})
807 0 9 if (@{$self->{'_statelabels'};})
811 0 9 if (my(@symbols) = @{$self->{'_symbols'};})
815 0 0 if ($lookup)
817 0 0 unless (exists $lookup->{$sym})
832 9 81 if $token eq ';'
836 39 42 if (not defined $rowname || $token =~ /$COMMENT/) { }
42 0 elsif (defined $rowname and not $token =~ /$COMMENT/) { }
838 0 39 if ($taxa = $self->_current->get_taxa) { }
39 0 elsif ($taxa = $self->_find_last_seen_taxa_block) { }
839 0 0 if (my $taxon = $taxa->get_by_name($token)) { }
847 39 0 if (my $taxon = $taxa->get_by_name($token)) { }
857 39 0 unless (exists $self->{'_matrix'}{$rowname})
864 6 36 if ($self->{'_matrixtype'} =~ /^continuous$/i) { }
878 84 96 if ($self->{'_context'}[$i]->_type == $TAXA)
879 2 82 if ($name) { }
880 1 1 if ($self->{'_context'}[$i]->get_name eq $name)
896 5 0 if ($self->{'_context'}[$i]->_type == $MATRIX)
897 2 3 if ($name) { }
898 1 1 if ($self->{'_context'}[$i]->get_name eq $name)
914 74 0 if (my $taxon = $taxa->get_by_name($obj->get_name)) { }
934 88 44 if (my $taxon = $obj->get_taxon)
940 30 14 if (my $taxa = $container->get_taxa)
946 42 2 if (my $taxa = $self->_find_last_seen_taxa_block) { }
973 228 0 if (not $in_set || exists $brackets{$c}) { }
0 0 elsif (not $in_set and exists $brackets{$c}) { }
0 0 elsif ($in_set and $c ne $close) { }
0 0 elsif ($in_set and $c eq $close) { }
974 228 0 if defined $c
996 0 0 if ($self->{'_begin'})
1012 9 48 if (not &looks_like_instance($token, 'ARRAY') and uc $token eq 'MATRIX') { }
39 9 elsif (&looks_like_instance($token, 'ARRAY') and not grep({/^;$/;} @{$token;})) { }
9 0 elsif (&looks_like_instance($token, 'ARRAY') and grep {/^;$/;} @{$token;}) { }
1059 1 8 if ($self->_current->get_nchar != $self->{'_nchar'}) { }
0 16 elsif (defined $self->{'_ntax'} and $self->_current->get_ntax != $self->{'_ntax'}) { }
1091 5 0 if ($self->{'_begin'})
1103 5 166 if ($i and $i == 1)
1107 57 114 if (not defined $i and $_[0] =~ /^\d+$/) { }
57 57 elsif (defined $i and exists $self->{'_translate'}[$i] and not defined $self->{'_translate'}[$i] and $_[0] ne ';') { }
1124 13 13 unless ($self->{'_treename'} or $_[0] =~ /^(U?TREE|\*)$/i)
1127 13 199 if ($_[0] eq '=' and not $self->{'_treestart'})
1130 173 26 if ($_[0] ne '=' and $self->{'_treestart'})
1136 13 173 if ($self->{'_treestart'} and $self->{'_tree'} and $self->{'_tree'} =~ tr/(// == $self->{'_tree'} =~ tr/)//)
1142 1 12 exists $translate->[0] ? :
1165 5 20 if (uc $self->{'_previous'} eq ';' and $self->{'_trees'})
1196 0 189 if (uc $self->{'_previous'} eq 'MATRIX') { }
2 187 elsif (uc $self->{'_previous'} eq 'CHARSET') { }
2 185 elsif (uc $self->{'_previous'} eq 'CHARSTATELABELS') { }
2 183 elsif (uc $self->{'_previous'} eq 'TAXSET') { }
13 170 elsif (uc $self->{'_previous'} eq 'TAXLABELS') { }
5 165 elsif (uc $self->{'_previous'} eq 'SYMBOLS') { }
0 165 elsif (uc $self->{'_previous'} eq 'CHARLABELS') { }
0 165 elsif (uc $self->{'_previous'} eq 'STATELABELS') { }
1202 0 0 if (not $self->_current->get_ntax)
1219 2 0 if (ref $range eq 'ARRAY')
1222 2 2 if ($range->[0] and $range->[0] eq '-') { }
1233 6 0 if ($character) { }
1248 1 1 if ($matrix->get_type =~ /continuous/i) { }
1255 0 2 if $index != $charnum
1261 1 1 if (@labels)
1262 1 0 $labels[0] eq ',' ? :
1276 0 2 if $index != $charnum
1283 0 2 if $slash ne '/'
1291 1 1 if (@labels)
1292 1 0 $labels[0] eq ',' ? :
1311 2 4 if ($range->[0] and $range->[0] eq '-') { }
1322 8 0 if ($taxon) { }
1338 1 12 if ($self->_current->get_ntax != $self->{'_ntax'})
1361 0 0 if (@{$self->{'_charlabels'};})
1369 0 0 if (@{$self->{'_statelabels'};})