Condition Coverage

blib/lib/ChordPro/Output/PDF.pm
Criterion Covered Total %
condition 92 411 22.3


and 3 conditions

line !l l&&!r l&&r condition
55 0 24 8 defined $v and $v ne ""
75 2 6 0 $ps->{'even-odd-pages'} and not $page % 2
85 6 8 10 $ps->{'pagealign-songs'} and not $page % 2
155 4 0 12 $ps->{'even-odd-pages'} and $page % 2
4 0 12 $ps->{'even-odd-pages'} and $page % 2 and not $first_song_aligned
176 0 0 3 $ps->{'even-odd-pages'} and not $page % 2
188 0 3 0 $ps->{'even-odd-pages'} and $page % 2
242 0 0 328 defined $v and defined $v->[0]
348 0 0 0 $s->{'meta'}{'title'}[0] eq $s->{'source'}{'file'} and $p->{'Title'}
436 40 0 0 $s->{'labels'} and @{$s->{'labels'};}
473 0 0 40 defined $st and not $ps->{'titles-directive-ignore'}
615 0 0 0 $ps->{'even-odd-pages'} and not $rightpage
627 42 0 0 $ps->{'head-first-only'} and $class == 2
647 0 0 144 $vsp >= 0 and $y - $vsp >= $ps->{'_bottommargin'}
662 0 16 24 not defined $chords and $s->{'chords'}
687 24 0 0 $show eq "right" and $class <= 1
24 0 0 $show eq "top" and $class <= 1
0 0 24 $show eq "bottom" and $class <= 1
0 0 24 $show eq "bottom" and $class <= 1 and $col == 0
805 160 0 0 $elt->{'type'} eq "image" and $elt->{'opts'}{'spread'}
160 0 0 $elt->{'type'} eq "delegate" and $elt->{'subtype'} eq "image"
160 0 0 $elt->{'type'} eq "delegate" and $elt->{'subtype'} eq "image" and $elt->{'data'}[0] =~ /\bspread=\d+\b$/
846 16 24 0 $source->{'file'} and $main::options->{'debug'}
869 0 120 40 $elt->{'type'} ne "set" and not $did++
915 0 0 72 $elt->{'type'} eq "songline" and not $elt->{'indent'}
936 0 0 0 $style->{'bar'}{'offset'} and $style->{'bar'}{'width'}
949 72 0 0 $elt->{'type'} =~ /^comment/ and not $elt->{'indent'}
1220 0 0 0 $t->{'quote'} and $elt->{'chorus'}
0 0 0 $elt->{'chorus'} and $elt->{'chorus'}[0]{'type'} eq "set"
0 0 0 $elt->{'chorus'} and $elt->{'chorus'}[0]{'type'} eq "set" and $elt->{'chorus'}[0]{'name'} eq "label"
0 0 0 $t->{'tag'} and $t->{'type'} =~ /^comment(?:_(?:box|italic))?/
1358 0 0 0 $ps->{'labels'}{'comment'} and $v[4] ne ""
1368 0 0 0 $ps->{'labels'}{'comment'} and $elt->{'value'} ne ""
1410 35 0 5 $ps->{'pagealign-songs'} > 1 and $pages % 2
35 3 2 $ps->{'pagealign-songs'} > 1 and $pages % 2 and $opts->{'songindex'} < $opts->{'numsongs'}
1680 0 72 0 $suppress_empty_chordsline and not has_visible_chords($elt)
1733 144 0 0 $chordscol and $chord ne ""
1800 0 0 0 $i < $n and not demarkup($phrase) =~ /\s$/
0 0 0 $i < $n and not demarkup($phrase) =~ /\s$/ and not demarkup($phrases[$i + 1]) =~ /^\s/
0 0 0 $i < $n and not demarkup($phrase) =~ /\s$/ and not demarkup($phrases[$i + 1]) =~ /^\s/ and my $marker = $ps->{'split-marker'}
1912 0 0 0 $prevvoltastart and @tokens
0 0 0 $prevvoltastart and @tokens and $tokens[0]{'class'} eq "bar"
0 0 0 $prevvoltastart and @tokens and $tokens[0]{'class'} eq "bar" and $tokens[0]{'align'}
1990 0 0 0 $k <= $#tokens and not is_bar($tokens[$k])
2035 0 0 0 $k <= $#tokens and not is_bar($tokens[$k])
2050 0 0 0 $margin->[1] and $elt->{'comment'}
2177 0 0 0 $a->{'src'} and not $a->{'data'}
2236 0 0 0 $opts->{'width'} and $opts->{'width'} =~ /^(\d+(?:\.\d+)?)\%$/
2239 0 0 0 $opts->{'height'} and $opts->{'height'} =~ /^(\d+(?:\.\d+)?)\%$/
2467 0 72 0 $suppress_empty_chordsline and not has_visible_chords($elt)
2470 0 72 0 $suppress_empty_lyricsline and not join("", @{$elt->{'phrases'};}) =~ /\S/
2807 0 0 126 @$fmt == 3 and ref $fmt->[0] ne "ARRAY"
2902 144 0 0 $w > $m - $x and @rchords > 1
2914 0 0 0 $rphrases[-1] =~ /[[:alpha:]]$/ and $ex =~ /^[[:alpha:]]/
0 0 0 $rphrases[-1] =~ /[[:alpha:]]$/ and $ex =~ /^[[:alpha:]]/ and $chord ne ""

or 2 conditions

line l !l condition
48 0 0 $main::options->{'output'} || '__new__.pdf'
73 0 8 $main::options->{'start-page-number'} ||= 1
88 10 0 $first_song_aligned //= 1
90 16 8 $first_song_aligned //= 0
112 8 0 $main::config->{'contents'} //= [{$main::config->{'toc'}{'order'} eq "alpha" ? ("fields", ["title"]) : ("fields", ["songindex"]), "label", $main::config->{'toc'}{'title'}, "line", $main::config->{'toc'}{'line'}}]
211 8 0 $main::options->{'output'} || '__new__.pdf'
236 8 0 $ctl->{'separator'} // ";"
237 8 0 $ctl->{'vseparator'} // "|"
301 24 0 $main::options->{'start-page-number'} || 1
358 0 40 $s->{'assets'} || {}
376 0 40 $main::options->{'backend-option'}{'structure'} // ""
543 40 0 $opts->{'startpage'} || 1
829 0 0 $pkg->can($elt->{'handler'}) // die("PDF: Missing delegate handler ${pkg}::$elt->{'handler'}\n")
1109 0 0 $pkg->can($elt->{'handler'}) // die("PDF: Missing delegate handler ${pkg}::$elt->{'handler'}\n")
1183 0 0 $elt->{'opts'}{'scale'} || 1
1190 0 0 $elt->{'opts'}{'scale'} || 1
0 0 $elt->{'opts'}{'center'} // 0
1234 0 0 $t->{'type'} // "comment"
1248 0 0 $t->{'type'} // "comment"
1632 0 72 $i_tag // ""
1710 72 0 $elt->{'chords'} //= [""]
1750 0 0 $word // " "
1864 0 0 $i_tag // ""
1877 0 0 $elt->{'tokens'} //= [{}]
2006 0 0 $token->{'chords'} // [$token->{'chord'}]
2191 0 0 $assets //= {}
2247 0 0 $opts->{'scale'} || 1
2273 0 0 $opts->{'anchor'} //= "float"
2279 0 0 $ox // 0
2280 0 0 $oy // 0
2319 0 0 $ox // 0
0 0 $oy // 0
2329 0 0 $ox // 0
0 0 $oy // 0
2331 0 0 $opts->{'border'} || 0
2336 0 0 $oy // 0
2370 0 0 $opts->{'scale'} || 1
2396 0 0 $opts->{'border'} || 0
2529 0 0 $ps->{'columns'} ||= 1
2532 40 0 $cols ||= 1
2852 42 84 $ps->{'spacing'}{$type} || 1
2862 72 0 $elt->{'chords'} // []
2863 72 0 $elt->{'phrases'} // []
2871 144 0 shift @phrases // ""
2992 0 0 eval { do { $ps->{'fonts'}{$f}{'description'} } } || eval { do { $ps->{'fonts'}{$f}{'file'} } } || eval { do { '[' . $ps->{'fonts'}{$f}{'name'} . ']' } } || '[]'

or 3 conditions

line l !l&&r !l&&!r condition
43 0 0 8 $verbose ||= $main::options->{'verbose'}
115 0 24 0 $main::options->{'toc'} // @book > 1
232 0 0 8 $main::config->{'debug'}{'csv'} or $main::options->{'verbose'}
265 0 264 0 $_->{'value'} // "%{" . $_->{'meta'} . "}"
317 0 0 8 $main::config->{'debug'}{'csv'} or $main::options->{'verbose'}
355 24 16 0 $s->{'config'} // $main::config
401 0 40 0 $s->{'settings'}{'columns'} || $main::config->{'settings'}{'columns'}
438 0 0 0 $fonts->{'label'} || $fonts->{'text'}
472 0 40 0 $s->{'settings'}{'titles'} || $main::config->{'settings'}{'titles'}
508 0 0 0 $fonts->{$tag}{'_size'} //= $main::config->{'pdf'}{'fonts'}{$tag}{'size'}
601 0 0 24 $ps->{'formats'}{'first'}{'background'} || $ps->{'formats'}{'title'}{'background'} || $bgpdf
606 0 0 16 $ps->{'formats'}{'title'}{'background'} || $bgpdf
659 0 0 40 $lyrics_only or not $dctl->{'show'}
663 0 40 0 $show //= $dctl->{'show'}
703 0 0 0 $s->{'settings'}{'columns'} || $main::config->{'settings'}{'columns'}
812 0 0 0 $spreadimage //= $elt
872 0 0 40 $ps->{'showlayout'} or $main::config->{'debug'}{'spacing'}
891 72 0 48 $elt->{'type'} eq "songline" or $elt->{'type'} eq "tabline"
72 0 48 $elt->{'type'} eq "songline" or $elt->{'type'} eq "tabline" or $elt->{'type'} =~ /^comment(?:_box|_italic)?$/
907 0 0 0 $fonts->{$type} || $fonts->{'comment'}
1047 0 0 0 $lyrics_only or not $ps->{'grids'}{'show'}
1105 0 0 0 $1 // $elt->{'delegate'}
1165 0 0 0 $main::config->{'debug'}{'images'} or not @$o
1297 0 0 0 $fn //= $elt->{'value'}
1298 0 0 0 $fn =~ m[/] or $fn =~ /\.(ttf|otf)$/i
1506 144 0 0 $label eq "" or $ps->{'_indent'} == 0
1508 0 0 0 $ps->{'fonts'}{'label'} || $ps->{'fonts'}{'text'}
0 0 0 $font ||= $ps->{'fonts'}{'label'} || $ps->{'fonts'}{'text'}
1509 0 0 0 $font->{'size'} ||= $font->{'fd'}{'size'}
1638 0 0 0 $elt->{'font'} || $fonts->{$type} || $fonts->{'comment'}
1680 0 0 72 $lyrics_only or $suppress_empty_chordsline and not has_visible_chords($elt)
1694 0 0 72 $chordscol or $inlinechords
1819 0 0 0 $marker->[0] || $marker->[1]
1884 0 0 0 $firstbar //= $i
1954 0 0 0 $prevvoltastart ||= $x
2005 0 0 0 $token->{'class'} eq "chord" or $token->{'class'} eq "chords"
2218 0 0 0 $img //= eval { do { $pr->get_image($elt) } }
2245 0 0 0 $opts->{'width'} || $img->width
0 0 0 $opts->{'height'} || $img->height
2266 0 0 0 $i_tag // $opts->{'label'}
2368 0 0 0 $opts->{'width'} || $img->width
0 0 0 $opts->{'height'} || $img->height
2388 0 0 0 $i_tag // $opts->{'label'}
2452 0 0 0 $$fonts{$elt->{'type'}} || $fonts->{'comment'}
2465 0 0 72 $lyrics_only or $chordscol
2484 72 112 0 $sptype ||= $eltype
2543 0 0 0 not $_ or $_ eq "*"
2556 0 0 0 not $_ or $_ eq "*"
2696 0 8 0 $pdfapi //= config_pdfapi($pdf->{'library'})
2766 128 160 0 $fonts->{$font}{$_} //= $fonts->{$def}{$_}
2782 0 8 0 $fonts->{'footer'}{'size'} //= "0.6" * $fonts->{'subtitle'}{'size'}
2938 0 0 0 $font ||= $pr->{'font'}