The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

BEGIN {
use strict;
use Test::More 'no_plan';
use_ok('POE::Framework::MIDI');
use_ok('POE::Framework::MIDI::Interval');
use_ok('FindBin');
}

ok(my $i = POE::Framework::MIDI::Interval->new( duration => 'qn' , notes => [ 'C3','E3','G3' ]));
isa_ok($i,'POE::Framework::MIDI::Interval');
is($i->duration, 'qn');
is(ref($i->notes), 'ARRAY');


my @musicians = (
	{
		name => 'Frank',
		package => 'MyTest',
		patch => 1,
		channel => 1,
	},

);

# what else do we want here?
my %data = (
	bars => 15,
	debug => 0,
	verbose => 1,
	filename => 'intervaltest.mid',
);

ok(my $midi = POE::Framework::MIDI->new( musicians => \@musicians, data => \%data ));
isa_ok($midi,'POE::Framework::MIDI');
ok($midi->run);

ok(unlink('intervaltest.mid'));

package MyTest;
use base 'POE::Framework::MIDI::Musician';
use POE::Framework::MIDI::Bar;
use POE::Framework::MIDI::Note;
use POE::Framework::MIDI::Rest;
use POE::Framework::MIDI::Interval;


sub make_bar {
	my $self = shift;
	my $barnum = shift;
	
	# make a bar
	my $bar = new POE::Framework::MIDI::Bar(  number => $barnum  );
	# add some notes & rests 
	
	my $int1 = POE::Framework::MIDI::Interval->new( 
		duration => 'wn', notes => ['C2','G2','C3','G3','C4','G4','C5' ]);
	$bar->add_event($int1);
 
	
	return $bar;
}

1;