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   63754 use strict;
  3         10  
  3         117  
4 3     3   20 use warnings;
  3         4  
  3         113  
5              
6 3     3   1346 use AI::NeuralNet::FastSOM;
  3         10  
  3         1114  
7             our @ISA = qw/AI::NeuralNet::FastSOM/;
8              
9             our $VERSION = '0.18';
10              
11 2     2 1 2153 sub radius { shift->{_R} }
12 16     16 1 2240 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 12900 my $self = shift;
19 11         25 my @data = @_;
20              
21 11         13 our $i = 0;
22             my $get_from_stream = sub {
23 52 100   52   94 $i = 0 if $i > $#data;
24 52         41 return [ @{ $data[$i++] } ]; # cloning !
  52         365  
25 11 100       53 } if @data;
26             $get_from_stream ||= sub {
27 17     17   56 return [ map { rand( 1 ) - 0.5 } 1..$self->{_Z} ];
  51         245  
28 11   100     57 };
29              
30 11         81 for my $x (0 .. $self->{_X}-1) {
31 27         91 for my $y (0 .. $self->{_X}-1) {
32 69         79 $self->{map}->[$x]->[$y] = &$get_from_stream;
33             }
34             }
35             }
36              
37             1;
38              
39             __END__