From 2b690485436b1d4df3c9212a928a1557562fb378 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Fri, 1 Feb 2019 20:33:47 +0000 Subject: Fix all the compile and test errors --- src/VeriFuzz/Gen.hs | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'src/VeriFuzz/Gen.hs') diff --git a/src/VeriFuzz/Gen.hs b/src/VeriFuzz/Gen.hs index 90c42a9..56d48bf 100644 --- a/src/VeriFuzz/Gen.hs +++ b/src/VeriFuzz/Gen.hs @@ -12,24 +12,35 @@ Various useful generators. module VeriFuzz.Gen where -import qualified Data.Text as T -import Test.QuickCheck (Arbitrary, Gen, arbitrary) -import qualified Test.QuickCheck as QC -import VeriFuzz.Circuit -import VeriFuzz.Verilog +import Control.Lens +import qualified Data.Text as T +import Test.QuickCheck (Gen) +import qualified Test.QuickCheck as QC +import VeriFuzz.AST +import VeriFuzz.ASTGen +import VeriFuzz.Mutate +import VeriFuzz.Random + +random :: [Identifier] -> (Expr -> ContAssign) -> Gen ModItem +random ctx fun = do + expr <- QC.sized (exprWithContext ctx) + return . ModCA $ fun expr + +randomAssigns :: [Identifier] -> [Gen ModItem] +randomAssigns ids = random ids . ContAssign <$> ids randomMod :: Gen ModDecl randomMod = do let ids = Identifier . ("w"<>) . T.pack . show <$> [1..100] - moditems <- sequence $ randomAssigns ids + _ <- sequence $ randomAssigns ids return $ ModDecl "" [] [] [] fromGraph :: Gen ModDecl fromGraph = do - gr <- QC.generate $ rDups <$> QC.resize 100 (randomCircuit) + gr <- rDupsCirc <$> QC.resize 100 randomCircuit return $ initMod . head - $ (nestUpTo 5 . generateAST $ Circuit gr) + $ nestUpTo 5 (generateAST gr) ^.. getVerilogSrc . traverse . getDescription -- cgit