diff --git a/unmaintained/random-tester/random-tester.factor b/unmaintained/random-tester/random-tester.factor index 2b2559e02a..cbf9f52fa6 100755 --- a/unmaintained/random-tester/random-tester.factor +++ b/unmaintained/random-tester/random-tester.factor @@ -1,7 +1,8 @@ USING: compiler continuations io kernel math namespaces prettyprint quotations random sequences vectors compiler.units ; -USING: random-tester.databank random-tester.safe-words ; +USING: random-tester.databank random-tester.safe-words +random-tester.random ; IN: random-tester SYMBOL: errored @@ -13,6 +14,8 @@ ERROR: random-tester-error ; : setup-test ( #data #code -- data... quot ) #! Variable stack effect >r [ databank random ] times r> + ! 200 300 random-cond ; + ! random-if ; [ drop \ safe-words get random ] map >quotation ; : test-compiler ! ( data... quot -- ... ) diff --git a/unmaintained/random-tester/random/random.factor b/unmaintained/random-tester/random/random.factor index 11f2e60d1a..7bedcb8cec 100755 --- a/unmaintained/random-tester/random/random.factor +++ b/unmaintained/random-tester/random/random.factor @@ -1,6 +1,7 @@ USING: kernel math sequences namespaces hashtables words -arrays parser compiler syntax io prettyprint optimizer -random math.constants math.functions layouts random-tester.utils ; +arrays parser compiler syntax io prettyprint random +math.constants math.functions layouts random-tester.utils +random-tester.safe-words quotations fry combinators ; IN: random-tester ! Tweak me @@ -72,3 +73,14 @@ IN: random-tester : random-complex ( -- C ) random-number random-number rect> ; +: random-quot ( n -- quot ) + [ \ safe-words get random ] replicate >quotation ; + +: random-if ( n -- quot ) + [ random-quot ] [ random-quot ] bi + '[ , , if ] ; + +: random-cond ( m n -- quot ) + [ '[ , [ random-quot ] [ random-quot ] bi 2array ] replicate ] + [ random-quot ] bi suffix + '[ , cond ] ; diff --git a/unmaintained/random-tester/safe-words/safe-words.factor b/unmaintained/random-tester/safe-words/safe-words.factor index 7d8adcbc2a..77e5562f4d 100755 --- a/unmaintained/random-tester/safe-words/safe-words.factor +++ b/unmaintained/random-tester/safe-words/safe-words.factor @@ -6,8 +6,6 @@ IN: random-tester.safe-words : ?-words { - delegate - /f bits>float bits>double