BEGIN { plan
tests
=> 37 }
ok(1);
ok(1);
my
@data
= (
[
qw( Jan Feb Mar )
],
[11, 12],
[21],
[31, 32, 33, 34],
);
print
"# Test setting up of object\n"
;
my
$data
= GD::Graph::Data->new();
ok(
$data
);
ok(
$data
->isa(
"GD::Graph::Data"
));
$GD::Graph::Error::Debug
= 4;
print
"# Test that empty object is empty\n"
;
my
@l
=
$data
->get_min_max_x;
ok(
@l
, 0);
my
$err_ar_ref
=
$data
->clear_errors;
ok(@{
$err_ar_ref
}, 1);
print
"# Fill with data\n"
;
my
$rc
=
$data
->copy_from(\
@data
);
ok(
$rc
);
print
"# Check number of data sets\n"
;
my
$nd
=
$data
->num_sets;
ok(
$nd
, 3);
print
"# Get min and max\n"
;
@l
=
$data
->get_min_max_y(1);
ok(
@l
, 2);
ok(
"@l"
,
"11 12"
);
@l
=
$data
->get_min_max_y(
$nd
);
ok(
@l
, 2);
ok(
"@l"
,
"31 34"
);
print
"# Check number of points, and y value\n"
;
my
$np
=
$data
->num_points;
my
$y
=
$data
->get_y(
$nd
,
$np
-1);
ok(
$np
, 3);
ok(
$y
, 33);
print
"# Add a point and check dimensions\n"
;
$data
->add_point(
qw(X3 13 23 35)
);
$nd
=
$data
->num_sets;
$np
=
$data
->num_points;
$y
=
$data
->get_y(
$nd
,
$np
-1);
ok(
$nd
, 3);
ok(
$np
, 4);
ok(
$y
, 35);
@l
=
$data
->y_values(3) ;
ok(
@l
, 4);
ok(
"@l"
,
"31 32 33 35"
);
print
"# Check cumulate\n"
;
$data
->cumulate(
preserve_undef
=> 0) ;
@l
=
$data
->y_values(3);
ok(
@l
, 4);
ok(
"@l"
,
"63 44 33 71"
);
print
"# Check reverse\n"
;
$data
->
reverse
;
@l
=
$data
->y_values(1) ;
ok(
@l
, 4);
ok(
"@l"
,
"63 44 33 71"
);
print
"# Check min and max\n"
;
@l
=
$data
->get_min_max_y_all;
ok(
@l
, 2);
ok(
"@l"
,
"0 71"
);
print
"# Check copy()\n"
;
my
$data2
=
$data
->copy;
ok(
$data2
);
ok(
$data2
->isa(
"GD::Graph::Data"
));
ok(Dumper(
$data2
), Dumper(
$data
));
my
$file
;
print
"# Read tab-separated file\n"
;
$file
= -f
'data.tab'
?
'data.tab'
:
-f
't/data.tab'
?
't/data.tab'
:
undef
;
$data
= GD::Graph::Data->new();
$rc
=
$data
->
read
(
file
=>
$file
);
ok(
ref
$rc
,
"GD::Graph::Data"
,
"Couldn't read input data.tab input file"
);
if
(!
defined
$rc
)
{
skip(
"data.tab not read"
, 0)
for
1..2;
}
else
{
ok(
$data
->num_sets(), 5);
ok(
scalar
$data
->num_points(), 4);
}
print
"# Read comma-separated file\n"
;
$file
= -f
'data.csv'
?
'data.csv'
:
-f
't/data.csv'
?
't/data.csv'
:
undef
;
$data
= GD::Graph::Data->new();
$rc
=
$data
->
read
(
file
=>
$file
,
delimiter
=>
qr/,/
);
ok(
ref
$rc
,
"GD::Graph::Data"
,
"Couldn't read input data.csv input file"
);
if
(!
defined
$rc
)
{
skip(
"data.csv not read"
, 0)
for
1..2;
}
else
{
ok(
$data
->num_sets(), 5);
ok(
scalar
$data
->num_points(), 4);
}
print
"# Read from DATA\n"
;
<DATA>;
$data
= GD::Graph::Data->new();
$rc
=
$data
->
read
(
file
=> \
*DATA
,
delimiter
=>
qr/,/
);
ok(
ref
$rc
,
"GD::Graph::Data"
,
"Couldn't read from DATA file handle"
);
if
(!
defined
$rc
)
{
skip(
"DATA not read"
, 0)
for
1..2;
}
else
{
ok(
$data
->num_sets(), 3);
ok(
scalar
$data
->num_points(), 3);
}