The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#
#===============================================================================
#         FILE:  random.t
#      CREATED:  07/05/2009 10:27:19 PM
#===============================================================================

use strict;
use warnings;

use Test::More;
use lib qw( ./lib ../lib  );
use Scalar::Util qw(looks_like_number);
require_ok('Tie::Hash::Random');

my %hash;
tie %hash, 'Tie::Hash::Random';

my $a_random_number           = $hash{foo};

ok (looks_like_number($a_random_number), "$a_random_number is a number");

my $an_other_random_number    = $hash{bar};
ok (looks_like_number($an_other_random_number), "$an_other_random_number is a number");

ok ( $a_random_number == $hash{foo}, "random numbers seems to be stored");

$hash{pepe} = 1234;
ok ( $hash{pepe} == 1234, "given numbers seems to be stored");


my %hash2;
tie %hash2, 'Tie::Hash::Random', {set => 'alpha'};

my $a_random_alpha = $hash2{foo};

ok(!looks_like_number($a_random_alpha), "$a_random_alpha is not a number");

my %hash3;
tie %hash3, 'Tie::Hash::Random', {set => 'alpha', min=>10, max=>20};

my $a_random_alpha2 = $hash3{foo};

ok(!looks_like_number($a_random_alpha2) && length($a_random_alpha2) >= 10,
                "$a_random_alpha2 is a big alpha");



done_testing;