Algorithm-QuadTree-XS
view release on metacpan or search on metacpan
t/08-geometry.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Algorithm::QuadTree;
use lib 't/lib';
use QuadTreeUtils;
my $qt = Algorithm::QuadTree->new(
-xmin => 0,
-xmax => 8,
-ymin => 0,
-ymax => 8,
-depth => 2,
);
$qt->add('circle', 1, 1, 1);
$qt->add('rectangle', 6, 6, 8, 8);
# start testing
subtest 'circle vs circle check' => sub {
my $list = $qt->get(2, 2, 0.4);
check_array $list, [];
$list = $qt->get(2, 2, 0.5);
check_array $list, ['circle'];
};
subtest 'circle vs rectangle check' => sub {
my $list = $qt->get(5, 5, 1.4);
check_array $list, [];
$list = $qt->get(5, 5, 1.5);
check_array $list, ['rectangle'];
};
subtest 'rectangle vs rectangle check' => sub {
my $list = $qt->get(5, 5, 5.99, 5.99);
check_array $list, [];
$list = $qt->get(5, 5, 6, 6);
check_array $list, ['rectangle'];
};
subtest 'getApprox and getEnclosedObjects do not check geometry' => sub {
my $list = $qt->getApprox(5, 5, 5.1, 5.1);
check_array $list, ['rectangle'];
$list = $qt->getApprox(5, 5, 0.1);
check_array $list, ['rectangle'];
$list = $qt->getEnclosedObjects(5, 5, 5.1, 5.1);
check_array $list, ['rectangle'];
$list = $qt->getEnclosedObjects(5, 5, 0.1);
check_array $list, ['rectangle'];
};
done_testing;
( run in 1.344 second using v1.01-cache-2.11-cpan-2398b32b56e )