]>
Commit | Line | Data |
---|---|---|
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 | ||
62bf080f | 32 | plan tests => 8; |
56b495c0 TC |
33 | |
34 | { | |
35 | my $area = Imager::Graph::Area->new; | |
36 | ok($area, "creating area chart object"); | |
37 | ||
38 | # this may change output quality too | |
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 | } | |
f94f373e | 73 | |
56b495c0 TC |
74 | { |
75 | my $area = Imager::Graph::Area->new; | |
76 | ok($area, "made area chart object"); | |
77 | $area->add_data_series(\@data1, "Test area"); | |
78 | $area->show_horizontal_gridlines(); | |
f58eaa57 | 79 | $area->set_y_tics(10); |
56b495c0 TC |
80 | my $img2 = $area->draw |
81 | ( | |
62bf080f | 82 | features => [ "horizontal_gridlines", "areamarkers" ], |
56b495c0 TC |
83 | labels => \@labels, |
84 | font => $font, | |
85 | hgrid => { style => "dashed", color => "#888" }, | |
86 | graph => | |
87 | { | |
88 | outline => { color => "#F00", style => "dotted" }, | |
89 | }, | |
90 | ); | |
91 | ok($img2, "made second area chart image"); | |
92 | ok($img2->write(file => "testout/t40area2.ppm"), | |
93 | "save to file"); | |
62bf080f TC |
94 | |
95 | cmpimg($img2, "testimg/t40area2.png"); | |
56b495c0 | 96 | } |
f94f373e | 97 | |
98 | END { | |
99 | unless ($ENV{IMAGER_GRAPH_KEEP_FILES}) { | |
100 | unlink "testout/t40area1.ppm"; | |
523a1013 | 101 | unlink "testout/t40area2.ppm"; |
f94f373e | 102 | } |
103 | } | |
104 | ||
105 | sub cmpimg { | |
106 | my ($img, $file, $limit) = @_; | |
107 | ||
108 | $limit ||= 10000; | |
109 | ||
110 | SKIP: | |
111 | { | |
112 | $Imager::formats{png} | |
113 | or skip("No PNG support", 1); | |
114 | ||
115 | my $cmpimg = Imager->new; | |
116 | $cmpimg->read(file=>$file) | |
117 | or return ok(0, "Cannot read $file: ".$cmpimg->errstr); | |
118 | my $diff = Imager::i_img_diff($img->{IMG}, $cmpimg->{IMG}); | |
119 | is_image_similar($img, $cmpimg, $limit, "Comparison to $file ($diff)"); | |
120 | } | |
121 | } |