The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl Transform-Canvas.t'

#########################

use Test::More tests => 32;
BEGIN { 
	use_ok('Transform::Canvas'); 
	use_ok('SVG'); 
	use_ok('Data::Dumper'); 

};

#########################

# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.

ok(my $t = Transform::Canvas->new(canvas=>[0,0,10,10],data=>[0,0,10,10]),'constructor');


my $r_x = [0,1,2,3,4,5,6,7,8,9,10];
my $r_y = [0,1,2,3,4,5,6,7,8,9,10];

ok(my ($pr_x,$pr_y) = $t->map($r_x,$r_y),'transform a line');
my @px = @$pr_x;
my @py = @$pr_y;
while (@$r_x) {
	my $p_x = shift @$pr_x;
	my $p_y = shift @$pr_y;
	#20 test inside while loop
	my $d_x = shift @$r_x;
	my $d_y = shift @$r_y;
	ok(($d_x + $p_x) == 2*$d_x,'x xform line check');
	ok(($d_y + $p_y) == 10,'y xform line check');
}

ok(my $a = SVG->new(),'load svg module');
my $points = $a->get_path(x=>\@px, y=>\@py, -type=>'polygon');
my $c = $a->polygon(
	%$points,
	id=>'polygon one',
	fill=>'red',
	stroke=>'yellow',
);

open OUT,"> t/data/out.svg" || die("Unable to open file t/data/out.svg : $!");
ok($t->Max([0,1,2,3,4,5,6,7,8,9,10]) == 10, 'Max: Find max of an array');
ok($t->Min([0,1,2,3,4,5]) == 0, 'Min: Find min of an array');
ok(print OUT $a->xmlify(),'serialize to disk');
ok(close OUT,'close output file');