Branch Coverage

blib/lib/Data/iRealPro/Output/MMA.pm
Criterion Covered Total %
branch 120 182 65.9


line true false branch
45 0 6 if exists $options->{$_}
48 2 0 unless ($self->{'split'})
52 0 2 if ($u->{'transpose'})
58 0 0 if ($song->{'actual_key'} ne '')
63 0 0 if $song->{'dataxp'}
67 2 0 if (ref $self->{'output'}) { }
72 0 0 unless open my $fd, '>:utf8', $self->{'output'}
80 0 0 if $outdir and not $outdir =~ m[/$]
81 0 0 unless -d $outdir
87 0 0 if ($song->{'transpose'})
89 0 0 if ($song->{'actual_key'} ne '')
94 0 0 if $song->{'dataxp'}
109 0 0 unless open my $fd, '>:utf8', $out
114 0 0 if $self->{'verbose'}
123 0 2 if ($pl->{'name'}) { }
129 0 2 $regtest ? :
138 26 1 unless m[time (\d/\d)]
145 2 0 if @t == 2
171 3 1 unless $_->{'hasjumps'}
177 1 1 if $has_jumps
181 0 5 unless @{$section->{'content'};}
183 0 5 if $type eq 'hspace'
185 3 2 if ($mma)
190 2 3 if ($in_intro and $type ne 'i') { }
0 5 elsif ($type eq 'coda' and not $has_jumps) { }
204 1 4 if $has_jumps and $type eq 'coda'
209 39 13 if ($item->{'type'} eq 'measure') { }
5 8 elsif ($item->{'type'} eq 'repeat start') { }
8 0 elsif ($item->{'type'} =~ /repeat end(.*)/) { }
216 40 44 if ($j =~ /^chord\s+(\S+)/) { }
41 3 elsif ($j =~ /^advance /) { }
1 2 elsif ($j =~ /^time\s+(\S+)/) { }
1 1 elsif ($j eq 'segno') { }
223 0 1 unless $1 eq $time
235 38 1 if (@chords < $time_d)
236 0 38 if (@chords == 1) { }
37 1 elsif (@chords == 2) { }
248 1 38 if $item->{'jump'}
264 2 0 if $mma
273 2 0 if ($n =~ /^\$/) { }
0 0 elsif ($n and $n ne '2') { }
291 0 2 if ($self->{'debug'})
311 0 2 unless ($tokens->[0] =~ /^start (?:repeat|section)/)
321 5 6 if $section and @{$section->{'tokens'};}
337 1 3 if ($t eq 'start repeat' and $$tokens[$tp + 1] =~ /^mark/ and @{$section->{'tokens'};})
344 3 139 if ($t eq 'start section')
349 1 138 if ($t =~ /^hspace\s+(\d+)$/)
352 0 138 if ($t eq 'small' or $t eq 'large')
356 3 135 if ($t =~ /^mark\s+(.+)$/)
361 3 132 if ($t eq 'end section')
366 0 132 if ($t =~ /^chord (\(.+\))/)
372 1 131 if ($t eq 'end')
399 4 3 if /$pat/
400 1 2 if /^chord|advance|end|start/
409 3 129 if ($t eq 'start repeat')
413 0 3 if defined $lastalternative
421 11 118 if ($t eq 'end repeat' or $t =~ /^alternative /)
422 1 10 unless ($in_repeat)
432 6 123 if ($t eq 'end repeat')
433 4 2 if (&$peek(qr/^alternative/))
434 3 1 if ($alternatives)
444 0 3 if $repeatpending != 2
450 0 123 if ($t =~ /^text\s+\d+\s+(\d+)x$/)
455 5 118 if ($t =~ /^alternative\s+(\d+)$/)
456 1 4 if ($1 > $alternatives + 1 and defined $lastalternative)
466 2 3 if defined $lastalternative
487 39 15 if $measure and @{$measure->{'content'};}
508 0 131 if ($t =~ /^chord (\(.+\))/)
514 1 130 if ($t =~ /^coda/)
515 1 0 if (@{$section->{'content'};} == 0 and @{$measure->{'content'};} == 0) { }
525 0 130 if ($barskip)
526 0 0 if ($t =~ /^(?:bar|end.*|start.*|repeat*)$/) { }
534 44 86 if ($t eq 'bar' or $t =~ /^repeat/)
536 31 13 if $t eq 'bar'
541 81 5 if ($t =~ /^(chord\s+(.*)|advance\s+\d+)$/)
548 0 5 if ($t eq 'measure repeat single')
554 0 5 if ($t =~ /^measure repeat double$/)
561 1 4 if ($t =~ /^text \d+ (.*)/)
562 1 0 if (my $jump = isjump($1))
569 0 4 if ($t eq 'small' or $t eq 'large')
684 4 36 if ($chord =~ m[^(.+)/(.+)$])
688 0 40 if ($chord eq 'W') { }
695 0 40 if ($chord =~ /^N\.?C\.?/)
699 0 40 unless ($chord =~ /^([ABCDEFGWz][b\#]?)(.*)/)
705 40 0 if (defined $chordqual{$mod}) { }
712 4 36 if $bass
719 0 2 unless ($key =~ /^([ABCDEFGW][b#]?)([-m])?$/)
724 0 2 $min ? :
739 0 1 unless $code =~ / ^ D\. ([CS]) \. \s+ al \s+ ( Coda | Fine | (?:1st|2nd|3rd) \s+ End ) $ /iox
746 0 1 if $al =~ /^(\d)/
747 0 1 $1 eq 'C' ? :