use strict;
use warnings;
use Test::More;
use_ok 'Sub::Rate';
my $res = q[];
my $func = do {
my $sub = Sub::Rate->new;
$sub->add( 50, sub {
my $r = $_[0] * 1;
$res .= $r;
$r;
});
$sub->add( 50, sub {
my $r = $_[0] * 2;
$res .= $r;
$r;
});
$sub->generate;
};
my $res2 = q[];
for my $i (1 .. 100) {
my $r = $func->($i);
ok $r == $i || $r == $i*2, 'res ok';
$res2 .= $r;
}
is $res, $res2, 'output same ok';
done_testing;