Algorithm-MinPerfHashTwoLevel

 view release on metacpan or  search on metacpan

t/Algo_fail.t  view on Meta::CPAN

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

use strict;
use warnings;

use Test::More tests => 3;
use Data::Dumper; $Data::Dumper::Sortkeys=1; $Data::Dumper::Useqq=1;
BEGIN { use_ok('Algorithm::MinPerfHashTwoLevel') };

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

my $class= "Algorithm::MinPerfHashTwoLevel";
my $o= $class->new("seed"=>"1234567812345678",debug=>$ENV{TEST_VERBOSE});
my (%bad,$data);

%bad= ("x"=>"whatever","y"=>"z","p"=>"q");

for my $bad_tuple (
    [ [],               "value too long",   qr/Error: Not expecting a reference value/  ],
    [ "x" x 0x10000,    "ref value",        qr/Error: String in source hash is too long to store/  ]
) {
    my ($val,$name,$like)= @$bad_tuple;
    my $ok= eval {
        $bad{x}= $val;
        $data= $o->compute(\%bad);
        1;
    };
    my $msg= $ok ? "ok" : $@ || "Zombie Error";
    like($msg, $like, $name);
}



( run in 1.428 second using v1.01-cache-2.11-cpan-0bd6704ced7 )