factor/unmaintained/random-tester/random-tester.factor

50 lines
1.2 KiB
Factor
Raw Normal View History

2007-12-04 00:56:30 -05:00
USING: compiler continuations io kernel math namespaces
2008-02-25 16:33:04 -05:00
prettyprint quotations random sequences vectors
2008-02-25 16:34:42 -05:00
compiler.units ;
2008-09-04 19:02:05 -04:00
USING: random-tester.databank random-tester.safe-words
random-tester.random ;
2007-12-04 00:56:30 -05:00
IN: random-tester
SYMBOL: errored
SYMBOL: before
SYMBOL: after
SYMBOL: quot
2008-07-30 16:08:04 -04:00
ERROR: random-tester-error ;
2007-12-04 00:56:30 -05:00
: setup-test ( #data #code -- data... quot )
#! Variable stack effect
>r [ databank random ] times r>
2008-09-04 19:02:05 -04:00
! 200 300 random-cond ;
! random-if ;
2007-12-04 00:56:30 -05:00
[ drop \ safe-words get random ] map >quotation ;
: test-compiler ! ( data... quot -- ... )
errored off
dup quot set
2008-02-06 20:23:39 -05:00
datastack 1 head* before set
[ call ] [ drop ] recover
datastack after set
2007-12-04 00:56:30 -05:00
clear
before get [ ] each
2008-01-13 00:49:36 -05:00
quot get [ compile-call ] [ errored on ] recover ;
2007-12-04 00:56:30 -05:00
: do-test ! ( data... quot -- )
.s flush test-compiler
errored get [
datastack after get 2dup = [
2drop
] [
[ . ] each
"--" print
[ . ] each
quot get .
2008-07-30 16:08:04 -04:00
random-tester-error
2007-12-04 00:56:30 -05:00
] if
] unless clear ;
: random-test1 ( #data #code -- )
setup-test do-test ;
: random-test2 ( -- )
3 2 setup-test do-test ;