File Coverage

blib/lib/Algorithm/SpatialIndex/Strategy/MedianQuadTree.pm
Criterion Covered Total %
statement 27 28 96.4
branch 1 2 50.0
condition n/a
subroutine 8 8 100.0
pod n/a
total 36 38 94.7


line stmt bran cond sub pod time code
1             package Algorithm::SpatialIndex::Strategy::MedianQuadTree;
2 3     3   126897 use 5.008005;
  3         12  
  3         106  
3 3     3   16 use strict;
  3         6  
  3         119  
4 3     3   24 use warnings;
  3         5  
  3         85  
5 3     3   14 use Carp qw(croak);
  3         4  
  3         245  
6              
7             our $VERSION = '0.02';
8              
9 3     3   17656 use Algorithm::SpatialIndex::Strategy::QuadTree qw(:all);
  3         41551  
  3         974  
10 3     3   33 use parent 'Algorithm::SpatialIndex::Strategy::QuadTree';
  3         5  
  3         19  
11              
12 3     3   3309 use Statistics::CaseResampling qw(median);
  3         2858  
  3         647  
13              
14             sub _node_split_coords {
15 1     1   22168 my ($self, $node, $bucket, $coords) = @_;
16 1         7 my $items = $bucket->items;
17 1 50       9 if (@$items == 0) {
18             # degrade to a quad tree
19 0         0 return $self->SUPER::_node_split_coords($node, $bucket, $coords);
20             }
21              
22 1         42 my $xmedian = median([map $_->[XI()], @$items]);
23 1         8 my $ymedian = median([map $_->[YI()], @$items]);
24              
25 1         5 return($xmedian, $ymedian);
26             }
27              
28             1;
29             __END__