[rt #59532] allow negative_bg to be a fill for vertical charts
[imager-graph.git] / t / t12column.t
1 #!perl -w
2 use strict;
3 use Imager::Graph::Column;
4 use lib 't/lib';
5 use Imager::Font::Test;
6 use Test::More;
7
8 -d 'testout' 
9   or mkdir "testout", 0700 
10   or die "Could not create output directory: $!";
11
12 ++$|;
13
14 use Imager qw(:handy);
15
16 plan tests => 7;
17
18 my @warned;
19 local $SIG{__WARN__} =
20   sub {
21     print STDERR $_[0];
22     push @warned, $_[0]
23   };
24
25
26 #my $fontfile = 'ImUgly.ttf';
27 #my $font = Imager::Font->new(file=>$fontfile, type => 'ft2', aa=>1)
28 #  or plan skip_all => "Cannot create font object: ",Imager->errstr,"\n";
29 my $font = Imager::Font::Test->new();
30
31 my @data = ( 100, 180, 80, 20, 2, 1, 0.5 );
32 my @labels = qw(alpha beta gamma delta epsilon phi gi);
33
34 {
35   my $column = Imager::Graph::Column->new();
36   ok($column, "creating column chart object");
37
38   $column->add_data_series(\@data);
39   $column->set_labels(\@labels);
40
41   my $img1 = $column->draw();
42   ok($img1, "drawing column chart");
43
44   $img1->write(file=>'testout/t12_column.ppm') or die "Can't save img1: ".$img1->errstr."\n";
45 }
46
47 {
48   my $column = Imager::Graph::Column->new();
49   ok($column, "creating column chart object");
50
51   $column->add_data_series(\@data);
52   $column->add_data_series([ -50, -30, 20, 10, -10, 25, 10 ]);
53   $column->set_labels(\@labels);
54
55   my $img1 = $column->draw(features => "outline");
56   ok($img1, "drawing column chart");
57
58   $img1->write(file=>'testout/t12_column2.ppm') or die "Can't save img1: ".$img1->errstr."\n";
59 }
60
61 {
62   my $column = Imager::Graph::Column->new();
63   ok($column, "creating column chart object");
64
65   $column->add_data_series(\@data);
66   $column->add_data_series([ -50, -30, 20, 10, -10, 25, 10 ]);
67   $column->set_labels(\@labels);
68
69   my $fountain = Imager::Fountain->simple(colors => [ "#C0C0FF", "#E0E0FF" ],
70                                           positions => [ 0, 1 ]);
71
72   my %fill =
73     (
74      fountain => "linear",
75      segments => $fountain,
76      xa_ratio => -0.1,
77      ya_ratio => 0.5,
78      xb_ratio => 1.1,
79      yb_ratio => 0.55,
80     );
81
82   my $img1 = $column->draw
83     (
84      features => "outline",
85      negative_bg => \%fill,
86     );
87   ok($img1, "drawing column chart - negative_bg is a fill");
88
89   $img1->write(file=>'testout/t12_column3.ppm') or die "Can't save img1: ".$img1->errstr."\n";
90 }
91
92 unless (is(@warned, 0, "should be no warnings")) {
93   diag($_) for @warned;
94 }