File Coverage

blib/lib/AI/Pathfinding/AStar/AStarNode.pm
Criterion Covered Total %
statement 26 26 100.0
branch 2 2 100.0
condition 1 3 33.3
subroutine 5 5 100.0
pod 3 3 100.0
total 37 39 94.8


line stmt bran cond sub pod time code
1             package AI::Pathfinding::AStar::AStarNode;
2 1     1   8 use base 'Heap::Elem';
  1         2  
  1         1561  
3              
4 1     1   583 use strict;
  1         2  
  1         218  
5              
6             sub new {
7 47     47 1 64 my $proto = shift;
8 47   33     187 my $class = ref($proto) || $proto;
9              
10 47         79 my ($id,$g,$h) = @_;
11              
12 47         76 my $self = {};
13 47         110 $self->{id} = $id;
14 47         81 $self->{g} = $g;
15 47         138 $self->{h} = $h;
16 47         91 $self->{f} = $g+$h;
17 47         68 $self->{parent} = undef;
18 47         68 $self->{cost} = 0;
19 47         66 $self->{inopen} = 0;
20 47         99 $self->{heap} = undef;
21              
22 47         125 bless ($self, $class);
23 47         157 return $self;
24             }
25              
26             sub heap {
27 146     146 1 2023 my ($self, $val) = @_;
28 146 100       351 $self->{heap} = $val if (defined $val);
29 146         341 return $self->{heap};
30             }
31              
32             sub cmp {
33 181     181 1 2938 my $self = shift;
34 181         212 my $other = shift;
35 181         490 return ($self->{f} <=> $other->{f});
36             }
37              
38             1;
39