From d08ff5fbf2b40746cacc8e799f6c7b5b0b932669 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Tue, 4 Dec 2018 16:54:56 +0000 Subject: [Fix #1] Fix the negative number generation --- src/Test/VeriFuzz/CodeGen.hs | 5 ++++- src/Test/VeriFuzz/VerilogAST.hs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src/Test/VeriFuzz') diff --git a/src/Test/VeriFuzz/CodeGen.hs b/src/Test/VeriFuzz/CodeGen.hs index eb99d6b..85f1d1c 100644 --- a/src/Test/VeriFuzz/CodeGen.hs +++ b/src/Test/VeriFuzz/CodeGen.hs @@ -58,9 +58,12 @@ genExpr _ = "TODO" genPrimary :: Primary -> Text genPrimary (PrimNum num) = - sh (num ^. numSize) <> "'d" <> sh (num ^. numVal) + neg <> sh (num ^. numSize) <> "'d" <> (sh . abs) n where sh = T.pack . show + abs x = if x <= 0 then -x else x + n = num ^. numVal + neg = if n <= 0 then "-" else "" genPrimary (PrimId ident) = ident ^. getIdentifier genBinaryOperator :: BinaryOperator -> Text diff --git a/src/Test/VeriFuzz/VerilogAST.hs b/src/Test/VeriFuzz/VerilogAST.hs index 48d01a5..41c855a 100644 --- a/src/Test/VeriFuzz/VerilogAST.hs +++ b/src/Test/VeriFuzz/VerilogAST.hs @@ -77,7 +77,7 @@ instance QC.Arbitrary Identifier where (QC.shuffle (['a'..'z'] <> ['A'..'Z']) >>= QC.sublistOf) instance QC.Arbitrary Number where - arbitrary = Number <$> QC.arbitrary <*> QC.arbitrary + arbitrary = Number <$> (suchThat QC.arbitrary (>=0)) <*> QC.arbitrary instance QC.Arbitrary BinaryOperator where arbitrary = QC.elements [BinAnd, BinOr, BinXor] -- cgit