]> gitweb.factorcode.org Git - factor.git/blob - basis/random/random-tests.factor
core: Rename iota to <iota> so we can have TUPLE: iota ... ; instead of TUPLE: iota...
[factor.git] / basis / random / random-tests.factor
1 USING: random sequences tools.test kernel math math.constants
2 math.functions sets grouping random.private math.statistics ;
3 IN: random.tests
4
5 { 4 } [ 4 random-bytes length ] unit-test
6 { 7 } [ 7 random-bytes length ] unit-test
7
8 { 4 } [ [ 4 random-bytes length ] with-secure-random ] unit-test
9 { 7 } [ [ 7 random-bytes length ] with-secure-random ] unit-test
10
11 { 2 } [ V{ 10 20 30 } [ delete-random drop ] keep length ] unit-test
12 [ V{ } [ delete-random drop ] keep length ] must-fail
13
14 { t } [ 10000 [ <iota> 0 [ drop 187 random + ] reduce ] keep / 2 * 187 10 ~ ] unit-test
15 { t } [ 10000 [ <iota> 0 [ drop 400 random + ] reduce ] keep / 2 * 400 10 ~ ] unit-test
16
17 { t } [ 1000 [ 400 random ] replicate members length 256 > ] unit-test
18
19 { f } [ 0 random ] unit-test
20
21 { { } } [ { } randomize ] unit-test
22 { { 1 } } [ { 1 } randomize ] unit-test
23
24 { f }
25 [ 100 [ { 0 1 } random ] replicate all-equal? ] unit-test
26
27 { 49 } [ 50 random-bits* log2 ] unit-test
28
29 [ { 1 2 } 3 sample ] [ too-many-samples?  ] must-fail-with
30
31 { 3 } [ { 1 2 3 4 } 3 sample members length ] unit-test
32 { 99 } [ 100 <iota> 99 sample members length ] unit-test
33
34 { }
35 [ [ 100 random-bytes ] with-system-random drop ] unit-test
36
37 { t t }
38 [ 500000 [ 0 1 normal-random-float ] replicate [ mean 0 .2 ~ ] [ std 1 .2 ~ ] bi ] unit-test
39
40 { t }
41 [ 500000 [ .15 exponential-random-float ] replicate [ mean ] [ std ] bi .2 ~ ] unit-test
42
43 { t }
44 [ 500000 [ 1 exponential-random-float ] replicate [ mean ] [ std ] bi .2 ~ ] unit-test
45
46 { t t }
47 [
48     500000 [ 1 3 pareto-random-float ] replicate [ mean ] [ std ] bi
49     [ 1.5 .5 ~ ] [ 3 sqrt 2 / .5 ~ ] bi*
50 ] unit-test
51
52 { t t }
53 [
54     500000 [ 2 3 gamma-random-float ] replicate
55     [ mean 6 .2 ~ ] [ std 2 sqrt 3 * .2 ~ ] bi
56 ] unit-test
57
58 { t t }
59 [
60     500000 [ 2 3 beta-random-float ] replicate
61     [ mean 2 2 3 + / .2 ~ ]
62     [ std 2 sqrt 3 sqrt + 2 3 + dup 1 + sqrt * / .2 ~ ] bi
63 ] unit-test
64
65 { t }
66 [ 500000 [ 3 4 von-mises-random-float ] replicate mean 3 .2 ~ ] unit-test
67
68 { t t }
69 [
70     500000 [ 2 7 triangular-random-float ] replicate
71     [ mean 2 7 + 2 / .2 ~ ] [ std 7 2 - 2 6 sqrt * / .2 ~ ] bi
72 ] unit-test
73
74 { t t }
75 [
76     500000 [ 2 3 laplace-random-float ] replicate
77     [ mean 2 .2 ~ ] [ std 2 sqrt 3 * .2 ~ ] bi
78 ] unit-test
79
80 { t t }
81 [
82     500000 [ 12 rayleigh-random-float ] replicate
83     [ mean pi 2 / sqrt 12 * .2 ~ ]
84     [ std 2 pi 2 / - sqrt 12 * .2 ~ ] bi
85 ] unit-test
86
87 { t t }
88 [
89     500000 [ 3 4 logistic-random-float ] replicate
90     [ mean 3 .2 ~ ] [ std pi 4 * 3 sqrt / .2 ~ ] bi
91 ] unit-test