Branch Coverage

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


line true false branch
125 180 810 if (&looks_like_instance($defaults{$key}, 'ARRAY')) { }
45 765 elsif (&looks_like_instance($defaults{$key}, 'HASH')) { }
166 265 48 if (not $self->{'_linemode'}) { }
48 0 elsif ($self->{'_linemode'}) { }
168 10 1050 if ($raw_token =~ qr/^\[/)
175 415 635 if (exists $self->{$lower_case_token} and not $private_block) { }
634 2 elsif ($self->{'_current'} and not $private_block) { }
177 415 0 if (ref $self->{$lower_case_token} eq 'CODE')
198 0 0 if ($self->{'_begin'} and not exists $self->{$lower_case_token} and not $private_block)
207 0 1 if ($private_block and $token_queue->[-2] eq 'end' and $token_queue->[-1] eq ';') { }
332 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) { }
333 20 312 if ($continue) { }
376 9 11 if ($q eq '"' or $q eq q[']) { }
11 0 elsif ($q eq '[') { }
377 9 0 if ($remainder =~ /^(${q}[^$q]*?$q)(.*)$/) { }
0 0 elsif ($remainder =~ /^${q}[^$q]*$/) { }
394 3 827 if substr($line, $i, 1) eq '['
395 8 822 if ($i and not $INSIDE_QUOTE)
404 11 811 if substr($line, $i, 1) eq ']'
415 6 0 if $continue
416 0 6 if ($q eq '"' or $q eq q[']) { }
6 0 elsif ($q eq ']') { }
423 3 411 if substr($line, $i, 1) eq '['
424 3 411 if ($i and not $INSIDE_QUOTE)
426 3 0 if ($continue) { }
435 6 405 if substr($line, $i, 1) eq ']'
437 3 0 if ($continue) { }
454 0 15 if ($INSIDE_QUOTE)
466 352 20 if (not $word =~ /$QUOTES_OR_BRACKETS/mx) { }
484 13 13 if ($block->_type == $TAXA) { }
13 0 elsif ($block->_type != $TAXA and $block->can('set_taxa')) { }
488 0 13 if ($taxa->[-1] and $taxa->[-1]->can('_type') == $TAXA and not $block->get_taxa)
502 156 702 if (&looks_like_instance($defaults{$key}, 'ARRAY')) { }
39 663 elsif (&looks_like_instance($defaults{$key}, 'HASH')) { }
526 14 0 if (uc $_[0] eq '#NEXUS')
538 13 5 if ($self->{'_begin'}) { }
554 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+|-)/) { }
579 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+|-)/) { }
603 0 0 if (defined $token and uc $token eq 'NO')
611 11 14 if (defined $token and uc $token ne 'TITLE')
613 11 0 if (not $self->_current->get_name)
623 0 2 if (defined $token and not $token =~ /^(?:LINK|TAXA|=)$/i)
625 0 0 if (not $self->_current->get_taxa)
627 0 0 if ($block->get_name and $block->get_name eq $link)
645 13 26 if (defined $_[0] and $_[0] =~ /^\d+$/)
654 59 13 if (defined $_[0] and uc $_[0] ne 'TAXLABELS') { }
13 0 elsif (defined $_[0] and uc $_[0] eq 'TAXLABELS') { }
669 0 0 if (defined $_[0] and uc $_[0] ne 'BLOCKID')
678 0 0 if ($self->{'_begin'})
687 9 0 if ($self->{'_begin'})
696 9 18 if (defined $_[0] and $_[0] =~ /^\d+$/)
710 9 18 if (defined $_[0] and not $_[0] =~ /^(?:DATATYPE|=)/i)
719 0 0 if (defined $_[0] and not $_[0] =~ /^(?:MATCHCHAR|=)/i)
733 9 18 if (not $_[0] =~ /^(?:GAP|=)/i || $self->{'_gap'})
744 9 18 if (not $_[0] =~ /^(?:MISSING|=)/i || $self->{'_missing'})
755 5 10 if (not $_[0] =~ /^(?:SYMBOLS|=)$/i and $_[0] =~ /^"?(.+)"?$/)
766 0 0 if (defined $_[0] and uc $_[0] ne 'CHARLABELS')
775 16 2 if (defined $token and uc $token ne 'CHARSTATELABELS')
783 0 0 if (defined $token and uc $token ne 'STATELABELS')
784 0 0 if ($token eq ',') { }
800 9 48 unless (defined $self->{'_matrixtype'})
802 0 9 if (@{$self->{'_charlabels'};})
806 0 9 if (@{$self->{'_statelabels'};})
810 0 9 if (my(@symbols) = @{$self->{'_symbols'};})
814 0 0 if ($lookup)
816 0 0 unless (exists $lookup->{$sym})
831 9 81 if $token eq ';'
835 39 42 if (not defined $rowname || $token =~ /$COMMENT/) { }
42 0 elsif (defined $rowname and not $token =~ /$COMMENT/) { }
837 0 39 if ($taxa = $self->_current->get_taxa) { }
39 0 elsif ($taxa = $self->_find_last_seen_taxa_block) { }
838 0 0 if (my $taxon = $taxa->get_by_name($token)) { }
846 39 0 if (my $taxon = $taxa->get_by_name($token)) { }
856 39 0 unless (exists $self->{'_matrix'}{$rowname})
863 6 36 if ($self->{'_matrixtype'} =~ /^continuous$/i) { }
877 84 96 if ($self->{'_context'}[$i]->_type == $TAXA)
878 2 82 if ($name) { }
879 1 1 if ($self->{'_context'}[$i]->get_name eq $name)
895 5 0 if ($self->{'_context'}[$i]->_type == $MATRIX)
896 2 3 if ($name) { }
897 1 1 if ($self->{'_context'}[$i]->get_name eq $name)
913 74 0 if (my $taxon = $taxa->get_by_name($obj->get_name)) { }
933 88 44 if (my $taxon = $obj->get_taxon)
939 30 14 if (my $taxa = $container->get_taxa)
945 42 2 if (my $taxa = $self->_find_last_seen_taxa_block) { }
972 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) { }
973 228 0 if defined $c
995 0 0 if ($self->{'_begin'})
1011 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;}) { }
1058 1 8 if ($self->_current->get_nchar != $self->{'_nchar'}) { }
0 16 elsif (defined $self->{'_ntax'} and $self->_current->get_ntax != $self->{'_ntax'}) { }
1090 5 0 if ($self->{'_begin'})
1102 5 166 if ($i and $i == 1)
1106 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 ';') { }
1123 13 13 unless ($self->{'_treename'} or $_[0] =~ /^(U?TREE|\*)$/i)
1126 13 199 if ($_[0] eq '=' and not $self->{'_treestart'})
1129 173 26 if ($_[0] ne '=' and $self->{'_treestart'})
1135 13 173 if ($self->{'_treestart'} and $self->{'_tree'} and $self->{'_tree'} =~ tr/(// == $self->{'_tree'} =~ tr/)//)
1141 1 12 exists $translate->[0] ? :
1164 5 20 if (uc $self->{'_previous'} eq ';' and $self->{'_trees'})
1195 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') { }
1201 0 0 if (not $self->_current->get_ntax)
1218 2 0 if (ref $range eq 'ARRAY')
1221 2 2 if ($range->[0] and $range->[0] eq '-') { }
1232 6 0 if ($character) { }
1247 1 1 if ($matrix->get_type =~ /continuous/i) { }
1254 0 2 if $index != $charnum
1260 1 1 if (@labels)
1261 1 0 $labels[0] eq ',' ? :
1275 0 2 if $index != $charnum
1282 0 2 if $slash ne '/'
1290 1 1 if (@labels)
1291 1 0 $labels[0] eq ',' ? :
1310 2 4 if ($range->[0] and $range->[0] eq '-') { }
1321 8 0 if ($taxon) { }
1337 1 12 if ($self->_current->get_ntax != $self->{'_ntax'})
1360 0 0 if (@{$self->{'_charlabels'};})
1368 0 0 if (@{$self->{'_statelabels'};})