1use strict;
2
3use Test::More;
4
5use SVG;
6use SVG::Graph;
7use SVG::Graph::Data::Datum;
8
9ok(my $svg = SVG->new( width => 800, height => 800 ));
10
11my $graph_summer = SVG::Graph->new(
12    svg     => $svg,
13    width   => 400,
14    height  => 400,
15    xoffset => 0,
16    yoffset => 0,
17    margin  => 30
18);
19my $graph_winter = SVG::Graph->new(
20    svg     => $svg,
21    width   => 400,
22    height  => 400,
23    xoffset => 400,
24    yoffset => 0,
25    margin  => 30
26);
27my $graph_autumn = SVG::Graph->new(
28    svg     => $svg,
29    width   => 400,
30    height  => 400,
31    xoffset => 0,
32    yoffset => 400,
33    margin  => 30
34);
35my $graph_spring = SVG::Graph->new(
36    svg     => $svg,
37    width   => 400,
38    height  => 400,
39    xoffset => 400,
40    yoffset => 400,
41    margin  => 30
42);
43
44my $group_summer = $graph_summer->add_frame();
45my $group_winter = $graph_winter->add_frame();
46my $group_autumn = $graph_autumn->add_frame();
47my $group_spring = $graph_spring->add_frame();
48
49my @d_summer = ();
50my @d_winter = ();
51my @d_autumn = ();
52my @d_spring = ();
53
54my $xval = 1;
55my $yval = 1;
56my $zval = 1;
57
58for ( 1 .. 20 ) {
59    push @d_summer,
60        SVG::Graph::Data::Datum->new(
61        x => $xval++,
62        y => $yval++,
63        z => $zval++
64        );
65    $xval = $xval % 2;
66    $yval = $yval % 3;
67    $zval = $zval % 4;
68}
69for ( 1 .. 20 ) {
70    push @d_winter,
71        SVG::Graph::Data::Datum->new(
72        x => $xval++,
73        y => $yval++,
74        z => $zval++
75        );
76    $xval = $xval % 2;
77    $yval = $yval % 3;
78    $zval = $zval % 4;
79
80}
81for ( 1 .. 20 ) {
82    push @d_autumn,
83        SVG::Graph::Data::Datum->new(
84        x => $xval++,
85        y => $yval++,
86        z => $zval++
87        );
88    $xval = $xval % 2;
89    $yval = $yval % 3;
90    $zval = $zval % 4;
91}
92for ( 1 .. 20 ) {
93    push @d_spring,
94        SVG::Graph::Data::Datum->new(
95        x => $xval++,
96        y => $yval++,
97        z => $zval++
98        );
99    $xval = $xval % 2;
100    $yval = $yval % 3;
101    $zval = $zval % 4;
102}
103
104my $data_summer = SVG::Graph::Data->new( data => \@d_summer );
105my $data_winter = SVG::Graph::Data->new( data => \@d_winter );
106my $data_autumn = SVG::Graph::Data->new( data => \@d_autumn );
107my $data_spring = SVG::Graph::Data->new( data => \@d_spring );
108
109$group_summer->add_data($data_summer);
110$group_winter->add_data($data_winter);
111$group_autumn->add_data($data_autumn);
112$group_spring->add_data($data_spring);
113
114$group_summer->add_glyph(
115    'bubble',
116    'fill'         => 'orange',
117    'fill-opacity' => 0.5
118);
119$group_winter->add_glyph( 'bubble', 'fill' => 'cyan', 'fill-opacity' => 0.5 );
120$group_autumn->add_glyph( 'bubble', 'fill' => 'red',  'fill-opacity' => 0.5 );
121$group_spring->add_glyph(
122    'bubble',
123    'fill'         => 'green',
124    'fill-opacity' => 0.5
125);
126$group_summer->add_glyph('axis');
127$group_winter->add_glyph('axis');
128$group_autumn->add_glyph('axis');
129$group_spring->add_glyph('axis');
130
131$graph_summer->draw();
132$graph_winter->draw();
133$graph_autumn->draw();
134$graph_spring->draw();
135
136ok($svg->xmlify);
137
138done_testing();
139