#!/usr/bin/perl
use strict;
use constant TEST_CASES => {
"black" => 0x000000,
"red" => 0xff0000,
"green" => 0x00ff00,
"blue" => 0x0000ff,
"white" => 0xffffff,
# some arbitrary colors added for testing the autoloaded color names
"lavenderblush" => 0xfff0f5,
"lavender_blush" => 0xfff0f5,
"LavenderBlush" => 0xfff0f5,
"LAVENDERBLUSH" => 0xfff0f5,
};
use Test::More;
use Test::Exception;
my $tests = TEST_CASES;
plan tests => 4 + (11 * (keys %$tests));
use_ok('Graphics::ColorNames', 2.1003, (qw(tuple2hex)));
my $rgb = Graphics::ColorNames->new(qw( X ));
ok(defined $rgb);
ok($rgb->isa('Graphics::ColorNames'));
{
# This causes errors
# local $TODO = "AutoLoading non-existent color method";
dies_ok {
$rgb->SomeNonExistentColor();
} "SomeNonExistentColor should have failed";
}
foreach my $name (keys %$tests) {
my $a = $rgb->hex($name, '0x');
ok( $a =~ /^0x[0-9a-f]{6}$/i );
ok( eval($a) == $tests->{$name}, "Testing color $name" );
my $b = $rgb->hex($name, '#');
ok( $b =~ /^\x23[0-9a-f]{6}$/i );
my $c = $rgb->hex($name, "");
ok( $c =~ /^[0-9a-f]{6}$/i );
$c = $rgb->hex($name);
ok( $c =~ /^[0-9a-f]{6}$/i );
ok($rgb->$name eq $c);
{
local $TODO = "Handle the can() method";
ok($rgb->can($name));
}
my $d = $rgb->rgb($name, ',');
ok( $d =~ /^\d{1,3}(\,\d{1,3}){2}$/ );
my @v = $rgb->rgb($name);
ok( @v == 3 );
ok( join(',', @v) eq $d );
ok( tuple2hex(@v) eq $c );
}