File Coverage

blib/lib/Algorithm/SkipList/Node.pm
Criterion Covered Total %
statement 26 26 100.0
branch 2 2 100.0
condition 2 2 100.0
subroutine 10 10 100.0
pod 6 6 100.0
total 46 46 100.0


line stmt bran cond sub pod time code
1             package Algorithm::SkipList::Node;
2            
3 13     13   1650 use 5.006;
  13         42  
  13         485  
4 13     13   64 use strict;
  13         24  
  13         368  
5 13     13   77 use warnings;
  13         30  
  13         774  
6            
7             our $VERSION = '1.02';
8            
9             # $VERSION = eval $VERSION;
10            
11 13     13   10329 use enum qw( HEADER=0 KEY VALUE );
  13         16348  
  13         79  
12            
13             sub new {
14 25070     25070 1 46836 my ($class, $key, $value, $hdr) = @_;
15 25070   100     80390 my $self = [ ($hdr || [ ]), $key, $value ];
16 25070         92788 bless $self, $class;
17             }
18            
19             sub header {
20 413018     413018 1 479757 my ($self, $hdr) = @_;
21 413018         1758934 $self->[HEADER];
22             }
23            
24             # sub prev {
25             # my ($self, $prev) = @_;
26             # return (@_ > 1) ? ( $self->[PREV] = $prev ) : $self->[PREV];
27             # }
28            
29             sub level {
30 26051     26051 1 33982 my ($self) = @_;
31 26051         28426 scalar( @{$self->[HEADER]} );
  26051         75693  
32             }
33            
34            
35             sub key {
36 2306     2306 1 36408 my ($self, $key) = @_;
37            
38 2306         9549 $self->[KEY];
39             }
40            
41             sub key_cmp {
42 357526     357526 1 441387 my ($self, $right) = @_;
43             # OPT: It would be nice to use $self->key instead of $self->[KEY],
44             # but we gain a nearly 25% speed improvement!
45            
46 357526         1693845 ($self->[KEY] cmp $right);
47             }
48            
49            
50             sub value {
51 740     740 1 4430 my ($self, $value) = @_;
52            
53 740 100       3979 (@_ > 1) ? ( $self->[VALUE] = $value ) : $self->[VALUE];
54             }
55            
56            
57             1;
58            
59             __END__