Branch Coverage

lib/ChordPro/Output/ChordPro.pm
Criterion Covered Total %
branch 127 230 55.2


line true false branch
24 0 23 unless eval { do { $sb->{'songs'}[0]{'body'} } }
38 3 23 if (@book)
39 0 3 if $main::options->{'backend-option'}{'tidy'}
72 0 26 if ($s->{'preamble'})
77 26 0 if defined $s->{'meta'}{'title'}
78 6 20 if (defined $s->{'subtitle'})
82 26 0 if ($s->{'meta'})
83 0 26 if ($msp)
85 0 0 if defined $seq
90 32 98 if $k =~ /^(?:title|subtitle)$/u
91 11 87 if ($k =~ /$re_meta/u)
98 11 119 if $used{$k}
99 119 0 if $k =~ /^(?:title|subtitle|songindex|key_.*|chords|numchords)$/u
100 0 0 if $k =~ /^_/u
105 26 0 if ($s->{'settings'})
107 3 13 if ($_ eq 'diagrams') { }
1 12 elsif ($_ eq 'diagrampos') { }
108 1 2 if $s->{'settings'}{'diagrampos'}
110 0 2 if (is_ttrue($v)) { }
0 2 elsif (is_true($v)) { }
130 0 26 if $tidy
134 0 26 if (@{$s->{'body'};} and $s->{'body'}[-1]{'type'} eq "diagrams" and $s->{'body'}[-1]{'origin'} ne "__CLI__")
140 9 17 if ($s->{'define'})
144 0 9 if $tidy
153 30 280 if ($elt->{'context'} ne $ctx)
154 12 18 if $ctx
156 18 12 if ($ctx)
160 4 14 if ($elt->{'type'} eq "set")
161 2 2 if ($elt->{'name'} eq 'gridparams') { }
2 0 elsif ($elt->{'name'} eq 'label') { }
164 0 2 if $gridparams[2]
166 2 0 if $gridparams[1]
167 2 0 if $gridparams[3]
168 0 2 if ($gridparams[4])
170 0 0 if $tag ne ""
175 2 0 if $tag ne ""
184 61 249 if ($elt->{'type'} eq "empty")
185 0 61 if $structured
191 3 246 if ($elt->{'type'} eq "colb")
192 0 3 if $msp
197 3 243 if ($elt->{'type'} eq "newpage")
198 0 3 if $msp
203 119 124 if ($elt->{'type'} eq "songline")
208 24 100 if ($elt->{'type'} eq "tabline")
213 4 96 if ($elt->{'type'} eq "gridline")
218 0 96 if ($elt->{'type'} eq "verse")
219 0 0 if $tidy
221 0 0 if ($e->{'type'} eq "empty")
222 0 0 if $structured
225 0 0 if ($e->{'type'} eq "song")
230 0 0 if $tidy
234 0 96 if ($elt->{'type'} eq "chorus")
235 0 0 if $tidy
238 0 0 if ($e->{'type'} eq "empty")
242 0 0 if ($e->{'type'} eq "songline")
248 0 0 if $tidy
252 0 96 if ($elt->{'type'} eq "rechorus")
253 0 0 if ($msp) { }
0 0 elsif ($rechorus->{'quote'}) { }
0 0 elsif ($rechorus->{'type'} and $rechorus->{'tag'}) { }
268 0 96 if ($elt->{'type'} eq "tab")
269 0 0 if $tidy
273 0 0 if $tidy
277 25 71 if ($elt->{'type'} =~ /^comment(?:_italic|_box)?$/u)
279 10 15 $expand ? :
280 0 25 if ($msp)
281 0 0 $type eq 'comment_italic' ? :
0 0 $type eq 'comment' ? :
288 0 25 if ($elt->{'chords'})
292 0 0 if $elt->{'chords'}[$_] ne ""
296 0 25 if $msp
297 0 25 if $tidy
299 0 25 if $tidy
303 0 71 if ($elt->{'type'} eq "image")
305 0 0 if ($msp and not $uri =~ /^id=/u)
314 0 0 unless /\s/u
321 2 69 if ($elt->{'type'} eq "diagrams")
327 30 41 if ($elt->{'type'} eq "set")
328 0 30 if ($elt->{'name'} eq 'lyrics-only') { }
0 30 elsif ($elt->{'name'} eq 'transpose') { }
0 30 elsif ($elt->{'name'} =~ /^(chordpro\..+)/u) { }
330 0 0 unless $lyrics_only > 1
349 39 2 if ($elt->{'type'} eq "ignore")
356 6 20 if $ctx
359 23 1 if ($s->{'chords'} and @{$s->{'chords'}{'chords'};} and $variant ne "msp")
361 4 67 unless $s->{'chordsinfo'}{$_}->parser->has_diagrams
362 19 48 unless $did++
372 0 0 if $url =~ /\.(\w+)$/u
378 0 0 unless (open $fd, "<:raw", $url)
387 0 0 if ($info->{'error'})
412 40 79 if ($lyrics_only or not exists $elt->{'chords'})
428 40 4 if $line
429 10 34 if ($_->{'class'} eq 'chord') { }
437 0 4 if ($elt->{'comment'})
438 0 0 if $line
441 0 0 if ($t->{'chords'}) { }
457 60 176 unless length $c
461 176 0 if ($variant ne "msp")
464 2 174 if $c->info->is_annotation
470 69 27 $is_diag ? :
472 27 69 unless ($is_diag)
473 0 27 if ($info->{'copyall'}) { }
0 27 elsif ($info->{'copy'}) { }
480 25 2 unless defined $info->{$_}
484 18 9 unless defined $info->{$_}
491 0 96 if ($main::config->{'instrument'}{'type'} eq 'keyboard') { }
494 0 0 if $info->{'keys'} and @{$info->{'keys'};}
499 80 496 $_ < 0 ? :
500 96 0 if $info->{'frets'}
502 0 36 $_ < 0 ? :
503 6 90 if $info->{'fingers'} and @{$info->{'fingers'};}
505 27 69 unless ($is_diag)
507 24 3 unless defined $info->{$_}
509 0 3 if (is_true($v)) { }
510 0 0 if (is_ttrue($v))