intergrate Patrick's area chart work in progress
[imager-graph.git] / t / t40area.t
CommitLineData
f94f373e 1#!perl -w
2use strict;
3use Imager::Graph::Area;
4use lib 't/lib';
5use Imager::Font::Test;
6use Test::More;
7use 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
15use 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";
20my $font = Imager::Font::Test->new();
21
22my @data1 =
23 (
24 100, 180, 80, 20, 2, 1, 0.5 ,
25 );
26my @data2 =
27 (
28 10, 20, 40, 200, 150, 10, 50,
29 );
30my @labels = qw(alpha beta gamma delta epsilon phi gi);
31
32plan tests => 4;
33
34my $area = Imager::Graph::Area->new;
35ok($area, "creating area chart object");
36
37# this may change output quality too
38
39print "# Imager version: $Imager::VERSION\n";
40print "# Font type: ",ref $font,"\n";
41
42$area->add_data_series(\@data1, "Test Area");
43$area->add_data_series(\@data2, "Test Area 2");
44
45my $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
66ok($img1, "made the image");
67
68ok($img1->write(file => "testout/t40area1.ppm"),
69 "save to testout");
70
71cmpimg($img1, "testimg/t40area1.png");
72
73END {
74 unless ($ENV{IMAGER_GRAPH_KEEP_FILES}) {
75 unlink "testout/t40area1.ppm";
76 }
77}
78
79sub 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}