2008-09-11 01:20:06 -04:00
|
|
|
USING: kernel math random namespaces make
|
|
|
|
random.mersenne-twister sequences tools.test math.order ;
|
2008-03-19 17:18:03 -04:00
|
|
|
IN: random.mersenne-twister.tests
|
|
|
|
|
|
|
|
: check-random ( max -- ? )
|
2010-01-14 13:48:57 -05:00
|
|
|
[ random 0 ] keep between? ;
|
2008-03-19 17:18:03 -04:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ t } [ 100 [ drop 674 check-random ] all-integers? ] unit-test
|
2008-03-19 17:18:03 -04:00
|
|
|
|
2008-10-04 12:44:12 -04:00
|
|
|
: randoms ( -- seq )
|
2010-01-14 13:48:57 -05:00
|
|
|
100 [ 100 random ] replicate ;
|
2008-03-19 17:18:03 -04:00
|
|
|
|
|
|
|
: test-rng ( seed quot -- )
|
2009-05-10 14:39:08 -04:00
|
|
|
[ <mersenne-twister> ] dip with-random ; inline
|
2008-03-19 17:18:03 -04:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ f } [ 1234 [ randoms randoms = ] test-rng ] unit-test
|
2008-03-19 17:18:03 -04:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ 1333075495 } [
|
2010-01-14 10:10:13 -05:00
|
|
|
0 [ 1000 [ drop random-generator get random-32* drop ] each-integer random-generator get random-32* ] test-rng
|
2008-03-19 17:18:03 -04:00
|
|
|
] unit-test
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ 1575309035 } [
|
2010-01-14 10:10:13 -05:00
|
|
|
0 [ 10000 [ drop random-generator get random-32* drop ] each-integer random-generator get random-32* ] test-rng
|
2008-03-19 17:18:03 -04:00
|
|
|
] unit-test
|
|
|
|
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ 3 } [ 101 [ 3 random-bytes length ] test-rng ] unit-test
|
|
|
|
{ 33 } [ 101 [ 33 random-bytes length ] test-rng ] unit-test
|
|
|
|
{ t } [ 101 [ 100 random-bits log2 90 > ] test-rng ] unit-test
|
2009-09-30 04:22:11 -04:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ t }
|
2009-09-30 04:22:11 -04:00
|
|
|
[
|
|
|
|
1234 <mersenne-twister>
|
2009-09-30 16:56:02 -04:00
|
|
|
[ random-32* ] [ 1234 seed-random random-32* ] bi =
|
2009-09-30 04:22:11 -04:00
|
|
|
] unit-test
|