module Lava.Test where

import Lava.Signal
import Lava.Sequential
import Lava.Generic

import Lava.LavaRandom
  ( newRnd
  )

----------------------------------------------------------------
-- test

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

----------------------------------------------------------------
-- the end.