ignore more build detritus
[imager-graph.git] / t / t21style_api.t
CommitLineData
2eac77fc 1#!perl -w
2use strict;
3use Imager::Graph::Pie;
4use lib 't/lib';
5use Imager::Font::Test;
6use Test::More;
7
8++$|;
9
10use Imager qw(:handy);
11
12plan tests => 3;
13
14my $font = Imager::Font::Test->new();
15
16my @data;
17
18for (0 .. 10) {
19 push @data, $_;
20}
21
22my $api_graph = Imager::Graph::Pie->new();
23$api_graph->add_data_series(\@data, 'Positive Slope');
24$api_graph->set_style('ocean');
25$api_graph->set_labels([0 .. 10]);
26
27$api_graph->set_image_width(800);
28$api_graph->set_image_height(600);
29$api_graph->set_graph_size(500);
30$api_graph->set_font($font);
31$api_graph->set_image_background('FF00FF');
32$api_graph->set_channels(3);
33$api_graph->set_line_color('00FF00');
34$api_graph->set_title('Tester Title');
35$api_graph->set_title_font_size(14);
36$api_graph->set_title_font_color('444444');
37$api_graph->set_title_horizontal_align('left');
38$api_graph->set_title_vertical_align('bottom');
39$api_graph->set_text_font_size(18);
40$api_graph->set_text_font_color('FFFFFF');
41$api_graph->set_graph_background_color('00FF00');
42$api_graph->set_graph_foreground_color('FF00FF');
43$api_graph->set_legend_font_color('0000FF');
44$api_graph->set_legend_font($font);
45$api_graph->set_legend_font_size(17);
46$api_graph->set_legend_patch_size(30);
47$api_graph->set_legend_patch_gap(20);
48$api_graph->set_legend_horizontal_align('left');
49$api_graph->set_legend_vertical_align('top');
50$api_graph->set_legend_padding(5);
51$api_graph->set_legend_outside_padding(12);
52$api_graph->set_legend_fill('000000');
53$api_graph->set_legend_border('222222');
54$api_graph->set_legend_orientation('horizontal');
55$api_graph->set_callout_font_color('FF0000');
56$api_graph->set_callout_font($font);
57$api_graph->set_callout_font_size(45);
58$api_graph->set_callout_line_color('FF2211');
59$api_graph->set_callout_leader_inside_length(10);
60$api_graph->set_callout_leader_outside_length(20);
61$api_graph->set_callout_leader_length(30);
62$api_graph->set_callout_gap(5);
63$api_graph->set_label_font_color('55FFFF');
64$api_graph->set_label_font($font);
65$api_graph->set_label_font_size(16);
66$api_graph->set_drop_shadow_fill_color('113333');
67$api_graph->set_drop_shadow_offset(25);
68$api_graph->set_drop_shadowXOffset(30);
69$api_graph->set_drop_shadowYOffset(5);
70$api_graph->set_drop_shadow_filter({ type=>'mosaic', size => 20 });
71$api_graph->set_outline_color('FF00FF');
72$api_graph->set_data_area_fills([qw(FF0000 00FF00 0000FF)]);
73$api_graph->set_data_line_colors([qw(FF0000 00FF00 0000FF)]);
74
75my $api_img = $api_graph->draw(
76 features => [qw(legend outline labels)],
77) || die $api_graph->error;
78
79ok($api_img);
80
81my $style_graph = Imager::Graph::Pie->new();
82
83$style_graph->add_data_series(\@data, 'Positive Slope');
84$style_graph->set_style('ocean');
85$style_graph->set_labels([0 .. 10]);
86
87my $style_img = $style_graph->draw(
88 features => [qw(legend outline labels)],
89 font => $font, # base font * set_font()
90 back => 'FF00FF', # Background color/fill - set_image_background()
91 size => 500, # Size of the graph * set_size()
92 width => 800, # width of the image * set_width()
93 height => 600, # height of the image * set_height()
94 channels => 3, # # of channels in the image - set_channels()
95 line => '00FF00', # color of lines - set_line_color()
96 title => {
97 text => 'Tester Title', # title for the chart * set_title()
98 size => '14', # size of the title font - set_title_font_size()
99 color => '444444', # color of the title - set_title_font_color()
100 halign => 'left', # horizontal alignment of the title - set_title_horizontal_align()
101 valign => 'bottom', # vertical alignment of the title - set_title_vertical_align()
102 },
103 text => {
104 color => 'FFFFFF', # default color of text - set_text_font_color()
105 size => '18', # default size of text - set_text_font_size()
106 },
107 bg => '00FF00', # background color of the graph - set_graph_background_color()
108 fg => 'FF00FF', # foreground color of the graph - set_graph_foreground_color()
109 legend => {
110 color => '0000FF', # text color for the legend - set_legend_font_color()
111 font => $font, # font to be used for the legend - set_legend_font()
112 size => 17, # font size to be used for labels
113 # in the legend - set_legend_font_size()
114 patchsize => 30, # the size in pixels? percent? - set_legend_patch_size()
115 # of the color patches in
116 # the legend.
117 patchgap => 20, # gap between the color patches. - set_legend_patch_gap()
118 # in pixels? percent?
119 halign => 'left', # horizontal alignment of the - set_legend_horizontal_align()
120 # legend within the graph
121 valign => 'top', # vertical alignment of the - set_legend_vertical_align()
122 # legend within the graph
123 padding => '5', # the space between the patches - set_legend_padding()
124 # of color and the outside of
125 # the legend box
126 outsidepadding => '12', # the space between the - set_legend_outside_padding()
127 # border of the legend,
128 # and the outside edge of the
129 # legend
130 fill => '000000', # A fill for the background - set_legend_fill()
131 # of the legend.
132 border => '222222', # The color of the border of - set_legend_border()
133 # the legend.
134 orientation => 'horizontal', # the orientation of the - set_legend_orientation()
135 # legend
136 },
137 callout => {
138 color => 'FF0000', # the color of the callout text - set_callout_font_color()
139 font => $font, # the font to use for callouts - set_callout_font()
140 size => 45, # the font size for callout text - set_callout_font_size()
141 line => 'FF2211', # the color of the line from the - set_callout_line_color()
142 # callout to the graph
143 inside => '10', # the length in pixels? of the - set_callout_leader_inside_length()
144 # leader...
145 outside => '20', # the other side of the leader? - set_callout_leader_outside_length()
146 leadlen => '30', # the length of the horizontal - set_callout_leader_length()
147 # part of the leader
148 gap => '5', # the space between the callout - set_callout_gap()
149 # leader and the callout text
150 },
151 label => {
152 color => '55FFFF', # the color of the label text - set_label_font_color()
153 font => $font, # font used for labels - set_label_font()
154 size => 16, # the font size used for labels - set_label_font_size()
155 },
156 dropshadow => {
157 fill => '113333', # the color used for drop shadows - set_drop_shadow_fill_color()
158 off => 25, # the offset of the dropshadow... - set_drop_shadow_offset()
159 # in percent? pixels?
160 offx => 30, # horizontal offset of the - set_drop_shadowXOffset()
161 # dropshadow
162 offy => 5, # vertical offset of the dropshadow - set_drop_shadowYOffset()
163 filter => { type=>'mosaic', size => 20 },
164
165 # the filter description passed to - set_drop_shadow_filter()
166 # Imager's filter method to blur
167 # the drop shadow. Default: an 11
168 # element convolution filter.
169 },
170 outline => {
171 line => 'FF00FF', # the color of the outline - set_outline_color()
172 # around data areas
173 },
174 fills => [
175 qw(FF0000 00FF00 0000FF)
176 # An array ref describing how to fill data areas - set_data_area_fills()
177 # in the graph. used by pie, column, stacked
178 # column graphs
179 ],
180 colors => [
181 qw(FF0000 00FF00 0000FF)
182 # An array ref of colors, used by line graphs. - set_data_line_colors()
183 ],
184
185) || die $style_graph->error;
186
187ok($api_img);
188
189my ($api_content, $style_content);
190
191$style_img->write(data => \$style_content, type=>'raw') or die "Err: ".$style_img->errstr;
192$api_img->write(data => \$api_content, type=>'raw') or die "Err: ".$api_img->errstr;
193
2eac77fc 194ok($style_content eq $api_content);
195
196
197