]> git.imager.perl.org - imager.git/blame - t/t90cc.t
update skip messages to match Imager's new threads support
[imager.git] / t / t90cc.t
CommitLineData
eac1157d
TC
1#!perl -w
2use strict;
1136f089 3use Test::More tests => 22;
02d1d628
AMH
4
5use Imager;
02d1d628 6
40e78f96
TC
7-d "testout" or mkdir "testout";
8
02d1d628
AMH
9Imager::init('log'=>'testout/t90cc.log');
10
a60905e4
TC
11{
12 my $img=Imager->new();
13 ok($img->open(file=>'testimg/scale.ppm'), 'load test image')
14 or print "failed: ",$img->{ERRSTR},"\n";
15
16 ok(defined($img->getcolorcount(maxcolors=>10000)), 'check color count is small enough');
17 print "# color count: ".$img->getcolorcount()."\n";
18 is($img->getcolorcount(), 86, 'expected number of colors');
19 is($img->getcolorcount(maxcolors => 50), undef, 'check overflow handling');
20}
02d1d628 21
a60905e4
TC
22{
23 my $black = Imager::Color->new(0, 0, 0);
24 my $blue = Imager::Color->new(0, 0, 255);
25 my $red = Imager::Color->new(255, 0, 0);
26
27 my $im = Imager->new(xsize=>50, ysize=>50);
28
29 my $count = $im->getcolorcount();
30 is ($count, 1, "getcolorcount is 1");
31 my @colour_usage = $im->getcolorusage();
32 is_deeply (\@colour_usage, [2500], "2500 are in black");
33
34 $im->box(filled=>1, color=>$blue, xmin=>25);
35
36 $count = $im->getcolorcount();
37 is ($count, 2, "getcolorcount is 2");
38 @colour_usage = $im->getcolorusage();
39 is_deeply(\@colour_usage, [1250, 1250] , "1250, 1250: Black and blue");
40
41 $im->box(filled=>1, color=>$red, ymin=>25);
42
43 $count = $im->getcolorcount();
44 is ($count, 3, "getcolorcount is 3");
45 @colour_usage = $im->getcolorusage();
46 is_deeply(\@colour_usage, [625, 625, 1250] ,
47 "625, 625, 1250: Black blue and red");
48 @colour_usage = $im->getcolorusage(maxcolors => 2);
49 is(@colour_usage, 0, 'test overflow check');
50
51 my $colour_usage = $im->getcolorusagehash();
52 my $red_pack = pack("CCC", 255, 0, 0);
53 my $blue_pack = pack("CCC", 0, 0, 255);
54 my $black_pack = pack("CCC", 0, 0, 0);
55 is_deeply( $colour_usage,
56 { $black_pack => 625, $blue_pack => 625, $red_pack => 1250 },
57 "625, 625, 1250: Black blue and red (hash)");
58 is($im->getcolorusagehash(maxcolors => 2), undef,
59 'test overflow check');
60
61 # test with a greyscale image
62 my $im_g = $im->convert(preset => 'grey');
63 # since the grey preset scales each source channel differently
64 # each of the original colors will be converted to different colors
65 is($im_g->getcolorcount, 3, '3 colors (grey)');
66 is_deeply([ $im_g->getcolorusage ], [ 625, 625, 1250 ],
67 'color counts (grey)');
68 is_deeply({ "\x00" => 625, "\x12" => 625, "\x38" => 1250 },
69 $im_g->getcolorusagehash,
70 'color usage hash (grey)');
71}
1136f089
TC
72
73{
74 my $empty = Imager->new;
75 is($empty->getcolorcount, undef, "can't getcolorcount an empty image");
76 is($empty->errstr, "getcolorcount: empty input image",
77 "check error message");
78 is($empty->getcolorusagehash, undef, "can't getcolorusagehash an empty image");
79 is($empty->errstr, "getcolorusagehash: empty input image",
80 "check error message");
81 is($empty->getcolorusage, undef, "can't getcolorusage an empty image");
82 is($empty->errstr, "getcolorusage: empty input image",
83 "check error message");
84}