module AERN2.Utils.Bench
(
listFromGen
)
where
import Test.QuickCheck.Random (mkQCGen)
import Test.QuickCheck.Gen (Gen(..))
import MixedTypesNumPrelude
listFromGen :: Gen a -> [a]
listFromGen :: Gen a -> [a]
listFromGen Gen a
gen =
[a]
list
where
list :: [a]
list =
[[a]] -> [a]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat ([[a]] -> [a]) -> [[a]] -> [a]
forall a b. (a -> b) -> a -> b
$ (Integer -> [a]) -> [Integer] -> [[a]]
forall a b. (a -> b) -> [a] -> [b]
map Integer -> [a]
genSome [Integer
1..]
where
genSome :: Integer -> [a]
genSome Integer
size =
Gen [a] -> QCGen -> Int -> [a]
forall a. Gen a -> QCGen -> Int -> a
unGen ([Gen a] -> Gen [a]
forall (t :: * -> *) (m :: * -> *) a.
(Traversable t, Monad m) =>
t (m a) -> m (t a)
sequence ([Gen a] -> Gen [a]) -> [Gen a] -> Gen [a]
forall a b. (a -> b) -> a -> b
$ Integer -> Gen a -> [Gen a]
forall n a. CanBeInteger n => n -> a -> [a]
replicate Integer
10 Gen a
gen) QCGen
qcGen (Integer -> Int
forall t. CanBeInt t => t -> Int
int Integer
size)
qcGen :: QCGen
qcGen = Int -> QCGen
mkQCGen (Integer -> Int
forall t. CanBeInt t => t -> Int
int Integer
148548830)