f94f373e |
1 | #!perl -w |
2 | use strict; |
3 | use Imager::Graph::Area; |
4 | use lib 't/lib'; |
5 | use Imager::Font::Test; |
6 | use Test::More; |
7 | use Imager::Test qw(is_image_similar); |
8 | |
9 | -d 'testout' |
10 | or mkdir "testout", 0700 |
11 | or die "Could not create output directory: $!"; |
12 | |
13 | ++$|; |
14 | |
15 | use Imager qw(:handy); |
16 | |
17 | #my $fontfile = 'ImUgly.ttf'; |
18 | #my $font = Imager::Font->new(file=>$fontfile, type => 'ft2', aa=>1) |
19 | # or plan skip_all => "Cannot create font object: ",Imager->errstr,"\n"; |
20 | my $font = Imager::Font::Test->new(); |
21 | |
22 | my @data1 = |
23 | ( |
24 | 100, 180, 80, 20, 2, 1, 0.5 , |
25 | ); |
26 | my @data2 = |
27 | ( |
28 | 10, 20, 40, 200, 150, 10, 50, |
29 | ); |
30 | my @labels = qw(alpha beta gamma delta epsilon phi gi); |
31 | |
32 | plan tests => 4; |
33 | |
34 | my $area = Imager::Graph::Area->new; |
35 | ok($area, "creating area chart object"); |
36 | |
37 | # this may change output quality too |
38 | |
39 | print "# Imager version: $Imager::VERSION\n"; |
40 | print "# Font type: ",ref $font,"\n"; |
41 | |
42 | $area->add_data_series(\@data1, "Test Area"); |
43 | $area->add_data_series(\@data2, "Test Area 2"); |
44 | |
45 | my $img1 = $area->draw |
46 | ( |
47 | #data => \@data, |
48 | labels => \@labels, |
49 | font => $font, |
50 | title => "Test", |
51 | features => { legend => 1 }, |
52 | legend => |
53 | { |
54 | valign => "bottom", |
55 | halign => "center", |
56 | orientation => "horizontal", |
57 | }, |
58 | area => |
59 | { |
60 | opacity => 0.8, |
61 | }, |
62 | #outline => { line => '404040' }, |
63 | ) |
64 | or print "# ", $area->error, "\n"; |
65 | |
66 | ok($img1, "made the image"); |
67 | |
68 | ok($img1->write(file => "testout/t40area1.ppm"), |
69 | "save to testout"); |
70 | |
71 | cmpimg($img1, "testimg/t40area1.png"); |
72 | |
73 | END { |
74 | unless ($ENV{IMAGER_GRAPH_KEEP_FILES}) { |
75 | unlink "testout/t40area1.ppm"; |
76 | } |
77 | } |
78 | |
79 | sub cmpimg { |
80 | my ($img, $file, $limit) = @_; |
81 | |
82 | $limit ||= 10000; |
83 | |
84 | SKIP: |
85 | { |
86 | $Imager::formats{png} |
87 | or skip("No PNG support", 1); |
88 | |
89 | my $cmpimg = Imager->new; |
90 | $cmpimg->read(file=>$file) |
91 | or return ok(0, "Cannot read $file: ".$cmpimg->errstr); |
92 | my $diff = Imager::i_img_diff($img->{IMG}, $cmpimg->{IMG}); |
93 | is_image_similar($img, $cmpimg, $limit, "Comparison to $file ($diff)"); |
94 | } |
95 | } |