{-# LANGUAGE FlexibleInstances, FlexibleContexts #-}
module Test.Gen where
import Test.Utils
import Test.QuickCheck
import Control.Monad
import qualified Numeric.LinearAlgebra as L
import Numeric.LinearAlgebra.Devel
import qualified Data.Vector.Storable as V
squared_real_matrices :: Int -> Gen (L.Matrix Float)
squared_real_matrices k = do
vs <- sequence (replicate (k*k) arbitrary) :: Gen [Float]
return $ L.reshape k $ V.fromList vs
small_matrices :: Gen (L.Matrix Float)
small_matrices = do
n <- choose (2,10)
squared_real_matrices n
pair :: Gen a -> Gen b -> Gen (a,b)
pair = liftM2 (,)