USING: random sequences tools.test kernel math math.functions
-sets grouping random.private ;
+sets grouping random.private math.statistics ;
IN: random.tests
[ 4 ] [ 4 random-bytes length ] unit-test
[ ]
[ [ 100 random-bytes ] with-system-random drop ] unit-test
+
+{ t }
+[ 50000 [ .15 exponential-random-float ] replicate [ mean ] [ std ] bi .2 ~ ] unit-test
+
+{ t }
+[ 50000 [ 1 exponential-random-float ] replicate [ mean ] [ std ] bi .2 ~ ] unit-test
+
+{ t t }
+[
+ 50000 [ 1 3 pareto-random-float ] replicate [ mean ] [ std ] bi
+ [ 1.5 .3 ~ ] [ 3 sqrt 2 / .3 ~ ] bi*
+] unit-test
1. swap / ^
] dip * ;
-: pareto-random-float ( alpha -- n )
- [ random-unit ] dip [ 1. swap / ] bi@ ^ ;
+: pareto-random-float ( k alpha -- n )
+ [ random-unit ] dip recip ^ /f ;
:: (gamma-random-float>1) ( alpha beta -- n )
! Uses R.C.H. Cheng, "The generation of Gamma