root/lang/perl/Data-Lotter/trunk/t/03_precision.t @ 17774

Revision 17774, 0.6 kB (checked in by miki, 5 years ago)

import Data::Lotter

Line 
1use strict;
2use Data::Dumper;
3use Data::Lotter;
4use Test::More tests => 5;
5
6my %candidates = (
7    red   => 1,
8    green => 10,
9    blue  => 25,
10    yellow => 30,
11    white => 34,
12);
13
14my $num = 100000;
15my $count;
16for ( 1 .. $num ) {
17    my $lotter = Data::Lotter->new(%candidates);
18    my @ret = $lotter->pickup( 1, "REMOVE" );
19    $count->{ $ret[0] }++;
20}
21while ( my ( $item, $weight ) = each %candidates ) {
22    my $result = $count->{$item} / $num * 100;
23    my $error  = abs( $result - $weight );
24    ok( $error < 1,
25        "$item has $error% error (weight:$weight, result:$result)" );
26}
Note: See TracBrowser for help on using the browser.