don't draw line markers for area charts by default
[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
62bf080f 32plan 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();
79 $area->use_automatic_axis();
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
98END {
99 unless ($ENV{IMAGER_GRAPH_KEEP_FILES}) {
100 unlink "testout/t40area1.ppm";
523a1013 101 unlink "testout/t40area2.ppm";
f94f373e 102 }
103}
104
105sub 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}