The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use Test::More tests => 15;
use GD::Chord::Piano;

my $im = GD::Chord::Piano->new;

eval { $im->chord(); };
like($@, qr/no chord/, 'no chord');

eval { $im->chord('H'); };
like($@, qr/undefined chord/, 'undefined chord H');

eval { $im->chord('C#b9'); }; # maybe C#-9
like($@, qr/undefined kind of chord/, 'undefined kind of chord C#b9');


is(
    $im->generate('C', (0,4,7))->png,
    $im->chord('C')->png,
    "C"
);
is(
    $im->generate('Cm', (0,3,7))->png,
    $im->chord('Cm')->png,
    "Cm"
);
is(
    $im->generate('C7', (0,4,7,10))->png,
    $im->chord('C7')->png,
    "C7"
);
is(
    $im->generate('C7(9,13)', (0,4,7,10,14,21))->png,
    $im->chord('C7(9,13)')->png,
    "C7(9,13)"
);
is(
    $im->generate('Cadd4', (0,4,5,7))->png,
    $im->chord('Cadd4')->png,
    "Cadd4"
);
is(
    $im->generate('C#add4', (1,5,6,8))->png,
    $im->chord('C#add4')->png,
    "C#add4"
);
is(
    $im->generate('Dadd4', (2,6,7,9))->png,
    $im->chord('Dadd4')->png,
    "Dadd4"
);

is(
    $im->generate('C#', (1,5,8))->png,
    $im->chord('C#')->png,
    "C"
);

is(
    $im->gen('D7', (2,6,9,12))->png,
    $im->chord('D7')->png,
    "D7"
);


is(
    $im->generate('B7(9,13)', (11,15,18,21,13,20))->png,
    $im->chord('B7(9,13)')->png,
    "B7(9,13)"
);


$im->interlaced(0);
is(
    $im->generate('C', (0,4,7))->png,
    $im->chord('C')->png,
    "C"
);


is(66, scalar(@{$im->all_chords}), "all_chord");