AI-NeuralNet-FastSOM

 view release on metacpan or  search on metacpan

t/rect.t  view on Meta::CPAN

#########################

# change 'tests => 1' to 'tests => last_test_to_print';

use Test::More qw(no_plan);
BEGIN { use_ok('AI::NeuralNet::FastSOM::Rect') };

######
use AI::NeuralNet::FastSOM::Utils;
use Storable qw/store/;

{
    my $nn = AI::NeuralNet::FastSOM::Rect->new(
        output_dim => '5x6',
        input_dim  => 3
    );

    ok( $nn->isa( 'AI::NeuralNet::FastSOM::Rect' ), 'rect class' );

    my $nn2 = $nn;
    my $nn3 = $nn2;
    is( $nn, $nn3, 'rect eq' );

    my $m1 = $nn->map;
    isa_ok( $m1, 'ARRAY', 'map array' );

    my $m2 = $m1;
    my $m3 = $nn2->map;
    my $m4 = $m3;
    is( $m2, $m4, 'map eq' );

    my $a = $m1->[0];
    isa_ok( $a, 'ARRAY', 'array array' );
    ok( $a != $m1, 'array unique' );

    my $a2 = $m4->[0];
    is( $a, $a2, 'array eq' );

    my $v = $a->[0];
    isa_ok( $v, 'ARRAY', 'vector array' );
    ok( $v != $a, 'vector unique' );

    my $v2 = $nn3->map->[0]->[0];
    is( $v, $v2, 'vector eq' );

    my $v3 = $nn2->map->[0][0];
    is( $v, $v3, 'vector shorter' );

    my $m = $nn->map;
    $m->[0][0][0] = 3.245;
    is( $m->[0][0][0], 3.245, 'element set' );
    $m->[0][0][0] = 1.25;
    is( $m->[0][0][0], 1.25, 'element reset' );
    $m->[0][0][1] = 4.8;
    is( $m->[0][0][1], 4.8, 'element set z' );
    $m->[0][0][1] = 2.6;
    is( $m->[0][0][1], 2.6, 'element reset z' );
    $m->[0][1][0] = 8.9;
    is( $m->[0][1][0], 8.9, 'element set y' );
    $m->[0][1][0] = 1.2;
    is( $m->[0][1][0], 1.2, 'element reset y' );
    $m->[1][0][0] = 5.4;
    is( $m->[1][0][0], 5.4, 'element set z' );



( run in 2.192 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )