xref: /openbsd/gnu/usr.bin/perl/t/op/rand.t (revision 07ea8d15)
1#!./perl
2
3# From: kgb@ast.cam.ac.uk (Karl Glazebrook)
4
5print "1..4\n";
6
7srand;
8
9$m=0;
10for(1..1000){
11   $n = rand(1);
12   if ($n<0 || $n>=1) {
13       print "not ok 1\n# The value of randbits is likely too low in config.sh\n";
14       exit
15   }
16   $m += $n;
17
18}
19$m=$m/1000;
20print "ok 1\n";
21
22if ($m<0.4) {
23    print "not ok 2\n# The value of randbits is likely too high in config.sh\n";
24}
25elsif ($m>0.6) {
26    print "not ok 2\n# Something's really weird about rand()'s distribution.\n";
27}else{
28    print "ok 2\n";
29}
30
31srand;
32
33$m=0;
34for(1..1000){
35   $n = rand(100);
36   if ($n<0 || $n>=100) {
37       print "not ok 3\n";
38       exit
39   }
40   $m += $n;
41
42}
43$m=$m/1000;
44print "ok 3\n";
45
46if ($m<40 || $m>60) {
47    print "not ok 4\n";
48}else{
49    print "ok 4\n";
50}
51
52
53