File Coverage

blib/lib/AI/NeuralNet/FastSOM/Hexa.pm
Criterion Covered Total %
statement 24 26 92.3
branch 4 4 100.0
condition 2 2 100.0
subroutine 8 10 80.0
pod 4 5 80.0
total 42 47 89.3


line stmt bran cond sub pod time code
1             package AI::NeuralNet::FastSOM::Hexa;
2              
3 3     3   48923 use strict;
  3         5  
  3         85  
4 3     3   11 use warnings;
  3         4  
  3         127  
5              
6 3     3   1088 use AI::NeuralNet::FastSOM;
  3         6  
  3         863  
7             our @ISA = qw/AI::NeuralNet::FastSOM/;
8              
9             our $VERSION = '0.17';
10              
11 2     2 1 1789 sub radius { shift->{_R} }
12 16     16 1 2160 sub diameter { shift->{_X} }
13              
14 0     0 1 0 sub as_data { die 'not implemented' }
15 0     0 1 0 sub as_string { die 'not implemented' }
16              
17             sub initialize {
18 11     11 0 12361 my $self = shift;
19 11         23 my @data = @_;
20              
21 11         17 our $i = 0;
22             my $get_from_stream = sub {
23 52 100   52   104 $i = 0 if $i > $#data;
24 52         62 return [ @{ $data[$i++] } ]; # cloning !
  52         490  
25 11 100       93 } if @data;
26             $get_from_stream ||= sub {
27 17     17   95 return [ map { rand( 1 ) - 0.5 } 1..$self->{_Z} ];
  51         301  
28 11   100     71 };
29              
30 11         101 for my $x (0 .. $self->{_X}-1) {
31 27         133 for my $y (0 .. $self->{_X}-1) {
32 69         97 $self->{map}->[$x]->[$y] = &$get_from_stream;
33             }
34             }
35             }
36              
37             1;
38              
39             __END__