1use Test::More tests => 9;
2
3BEGIN {
4    use_ok('Geometry::Primitive::Point');
5    use_ok('Geometry::Primitive::Polygon');
6};
7
8my $poly = Geometry::Primitive::Polygon->new;
9my $point1 = Geometry::Primitive::Point->new(x => 0, y => 0);
10$poly->add_point($point1);
11my $point2 = Geometry::Primitive::Point->new(x => 0, y => 1);
12$poly->add_point($point2);
13my $point3 = Geometry::Primitive::Point->new(x => 1, y => 1);
14$poly->add_point($point3);
15my $point4 = Geometry::Primitive::Point->new(x => 1, y => 0);
16$poly->add_point($point4);
17my $point5 = Geometry::Primitive::Point->new(x => 0, y => 0);
18$poly->add_point($point5);
19
20cmp_ok($poly->point_count, '==', 5, 'point count');
21ok($poly->get_point(0)->equal_to($point1), 'get point 1');
22ok($poly->point_start->equal_to($point1), 'start point');
23ok($poly->point_end->equal_to($point1), 'end point');
24
25cmp_ok($poly->area, '==', 1, 'area');
26
27$poly->scale(2);
28
29cmp_ok($poly->area, '==', 4, 'scaled area');
30
31$poly->clear_points;
32cmp_ok($poly->point_count, '==', 0, 'cleared points');
33