module Lava.Test where
import Lava.Signal
import Lava.Sequential
import Lava.Generic
import Lava.LavaRandom
( newRnd
)
test :: (Constructive a, Show b, Generic b) => (a -> b) -> IO [b]
test :: (a -> b) -> IO [b]
test circ :: a -> b
circ =
do StdGen
rnd <- IO StdGen
newRnd
let res :: [b]
res = (() -> b) -> [()] -> [b]
forall a b. (Generic a, Generic b) => (a -> b) -> [a] -> [b]
simulateSeq (\_ -> a -> b
circ (StdGen -> a
forall a. Constructive a => StdGen -> a
random StdGen
rnd)) (Int -> () -> [()]
forall a. Int -> a -> [a]
replicate 100 ())
[b] -> IO ()
forall a. Show a => a -> IO ()
print [b]
res
[b] -> IO [b]
forall (m :: * -> *) a. Monad m => a -> m a
return [b]
res