aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-12-29 02:31:33 +0100
committerYann Herklotz <ymherklotz@gmail.com>2018-12-29 02:31:33 +0100
commit96d9932a71facce2b31c78fa00fe1adc35169ecb (patch)
tree0c6e5aa7b3f96a919749dd11bd69cbfb60a219ef
parentf9b387e371df9c3f91de9da7dd6ac3c4efb58ea0 (diff)
downloadverismith-96d9932a71facce2b31c78fa00fe1adc35169ecb.tar.gz
verismith-96d9932a71facce2b31c78fa00fe1adc35169ecb.zip
Make generation more controlled
-rw-r--r--app/Main.hs12
-rw-r--r--src/Test/VeriFuzz/Verilog/AST.hs6
2 files changed, 10 insertions, 8 deletions
diff --git a/app/Main.hs b/app/Main.hs
index 321b536..de3f870 100644
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -12,12 +12,12 @@ instance Gviz.Labellable Gate where
toLabelValue gate = Gviz.StrLabel . T.pack $ show gate
main :: IO ()
---main = sample (arbitrary :: Gen (Circuit Input))
+ --main = sample (arbitrary :: Gen (Circuit Input))
main = do
- --gr <- genRandomDAG 100 :: IO (G.Gr Gate ())
--- _ <- runGraphviz (graphToDot quickParams $ emap (const "") gr) Png "output.png",
--- T.putStrLn $ generate gr
- g <- QC.generate (QC.arbitrary :: QC.Gen VerilogSrc)
- --render . genVerilogSrc . addTestBench . nestUpTo 20 . generateAST $ Circuit gr
+ --gr <- genRandomDAG 100 :: IO (G.Gr Gate ())
+ -- _ <- runGraphviz (graphToDot quickParams $ emap (const "") gr) Png "output.png",
+ -- T.putStrLn $ generate gr
+ g <- QC.generate (QC.resize 5 (QC.arbitrary :: QC.Gen VerilogSrc))
+ --render . genVerilogSrc . addTestBench . nestUpTo 20 . generateAST $ Circuit gr
render . genVerilogSrc . addTestBench $ g
diff --git a/src/Test/VeriFuzz/Verilog/AST.hs b/src/Test/VeriFuzz/Verilog/AST.hs
index f0178cf..4c3649d 100644
--- a/src/Test/VeriFuzz/Verilog/AST.hs
+++ b/src/Test/VeriFuzz/Verilog/AST.hs
@@ -15,6 +15,7 @@ Defines the types to build a Verilog AST.
module Test.VeriFuzz.Verilog.AST where
import Control.Lens
+import Control.Monad (replicateM)
import qualified Data.Graph.Inductive as G
import Data.String
import Data.Text (Text)
@@ -257,8 +258,9 @@ instance QC.Arbitrary Text where
arbitrary = T.pack <$> QC.arbitrary
instance QC.Arbitrary Identifier where
- arbitrary = Identifier . T.pack <$>
- (QC.shuffle (['a'..'z'] <> ['A'..'Z']) >>= QC.sublistOf)
+ arbitrary = do
+ l <- QC.choose (2, 10)
+ Identifier . T.pack <$> replicateM l (QC.elements ['a'..'z'])
instance QC.Arbitrary Number where
arbitrary = Number <$> QC.suchThat QC.arbitrary (>0) <*> QC.arbitrary