From 5b735c1afafb9b3abf64c9d72ac0a57b94ce2e03 Mon Sep 17 00:00:00 2001
From: Joris ten Tusscher <joristt@gmail.com>
Date: Tue, 9 Jan 2018 00:07:11 +0100
Subject: [PATCH] Added evalPossible checks to the test suite too.

---
 src/SimpleFormulaChecker.hs |  8 +++++---
 test/TIREval.hs             | 16 +++++++++-------
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/SimpleFormulaChecker.hs b/src/SimpleFormulaChecker.hs
index c13d930..ed0de20 100644
--- a/src/SimpleFormulaChecker.hs
+++ b/src/SimpleFormulaChecker.hs
@@ -220,12 +220,14 @@ compareSpec method1@(_, name1) method2@(_, name2) = do
     postAns <- determineFormulaEq m1 m2 "post"
     return $ preAns && postAns
 
-
-evaluate :: (FilePath, String) -> IO Bool
+evaluate :: (FilePath, String) -> IO (Bool, Maybe Bool)
 evaluate method = do
       m@(decls, mbody, env) <- parseMethod method
       let e = extractExpr (getMethodCalls m "pre")
       let lexpr = javaExpToLExpr e env decls
       putStrLn (prettyLExpr lexpr)
-      return ((prettyLExpr (LConst (LogicIR.Eval.eval lexpr))) == "true")
+      let t = CBool True
+      let possible = LogicIR.Eval.evalPossible lexpr
+      let res = if possible then Just (LogicIR.Eval.eval lexpr == t) else Nothing
+      return (possible, res)
 
diff --git a/test/TIREval.hs b/test/TIREval.hs
index 1c60a47..b42ddcd 100644
--- a/test/TIREval.hs
+++ b/test/TIREval.hs
@@ -8,13 +8,15 @@ import SimpleFormulaChecker
 
 edslSrc = "examples/javawlp_edsl/src/nl/uu/javawlp_edsl/Main.java"
 
-testEval :: Bool -> String -> Assertion
-testEval b s =
-  unsafePerformIO (silence $ evaluate (edslSrc, s)) @?= b
-(.=) = testEval True
-(.!) = testEval False
+testEval :: (Bool, Maybe Bool) -> String -> Assertion
+testEval t@(evalPoss, evals2True) s =
+  unsafePerformIO (silence $ evaluate (edslSrc, s)) @?= t
+(.==) = testEval (True, Just True)
+(.=!) = testEval (True, Just False)
+(.!)  = testEval (False, Nothing)
 
 evalTests =
-  [ (.=) "simple_eval1"
-  , (.!) "simple_eval2"
+  [ (.==) "simple_eval1"
+  , (.=!) "simple_eval2"
+  , (.!)  "simple_eval3"
   ]
-- 
GitLab