Algorithm-Evolutionary-Fitness

 view release on metacpan or  search on metacpan

t/02-trap.t  view on Meta::CPAN

#-*-cperl-*-

use Test::More;

use warnings;
use strict;

use lib qw( ../../lib ../lib lib ); #Just in case we are testing it in-place

use Algorithm::Evolutionary::Utils qw(random_bitstring);

use_ok( "Algorithm::Evolutionary::Fitness::Trap", "using Fitness::Trap OK" );

my $number_of_bits = 5;

my $trap = new Algorithm::Evolutionary::Fitness::Trap( $number_of_bits );
isa_ok( $trap,  "Algorithm::Evolutionary::Fitness::Trap" );

my $string = random_bitstring(100);
ok( $trap->trap( $string ) > 0, "Seems to work" );
ok( $trap->trap( $string ) > 0, "From cache" );

#All fields
my $new_trap = new Algorithm::Evolutionary::Fitness::Trap( 4, 2, 3, 2 ); 
ok( $new_trap->trap( $string ) > 0, "Seems to work" );
ok( $new_trap->trap( $string ) > 0, "From cache" );

for ( my $i = 0; $i < 16; $i++ ) {
  my $binary = sprintf "%04b", $i;
  my $resultado = $new_trap->trap( $binary );
  ok( $resultado >= 0, "Result for $binary is $resultado" );
}

done_testing();



( run in 1.696 second using v1.01-cache-2.11-cpan-39bf76dae61 )