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


use strict;
use warnings;
use Test::More tests => 28;

use_ok( 'Acme::Tango' );

my @flavours = qw( orange lemon apple );

for (
	# Input,      as: orange,    lemon,     apple      description
	[ 'FF0000',       'FFAA00',  'FFFF00',  '3FFF00',  'Red' ],
	[ 'FF0000',       'FFAA00',  'FFFF00',  '3FFF00',  'Yellow' ],
	[ '00FF00',       'FFAA00',  'FFFF00',  '3FFF00',  'Green' ],
	[ '00B2EB',       'EB9C00',  'EBEB00',  '3AEB00',  'Dark Cyan' ],
	[ '000000',       '000000',  '000000',  '000000',  'Black' ],
	[ 'FFFFFF',       'FFFFFF',  'FFFFFF',  'FFFFFF',  'White' ],
	[ 'fff',          'FFFFFF',  'FFFFFF',  'FFFFFF',  'Red, three char form' ],
	[ '#0f0',         '#FFAA00', '#FFFF00', '#3FFF00', 'Green, three char form with hash' ],
	[ '#FFFF00',      '#FFAA00', '#FFFF00', '#3FFF00', 'Yellow, with hash' ],

) {
	my @reference   = @$_;
	my $input       = shift @reference;
	my $description = pop   @reference;

	for my $flavour ( @flavours ) {
		my $expected = shift @reference;
		is(
			Acme::Tango::drink( $input, $flavour ),
			$expected,
			"$flavour: $description [$input]->[$expected]" );
	}
}