From dcb82f007fc2ddc33852be50aba3890146a5203f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20Wi=C3=9Fmann?= <edu@thorsten-wissmann.de> Date: Fri, 16 May 2014 21:04:53 +0200 Subject: [PATCH] Add statistics to testsuite output --- src/testsuite/Testsuite.ml | 6 +++--- src/testsuite/Testsuite.mli | 2 +- src/testsuite/cool-testsuite.ml | 21 +++++++++++++++++---- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/testsuite/Testsuite.ml b/src/testsuite/Testsuite.ml index 2b1dc92..0204bd9 100644 --- a/src/testsuite/Testsuite.ml +++ b/src/testsuite/Testsuite.ml @@ -50,11 +50,11 @@ let runSatCheckVerbose (sc:satCheck) = PF.printf "Is %-50s " (cs "1" title); PF.printf "%s?… " (sotr expectation); let res = runSatCheck sc in - if (res = expectation) + (if (res = expectation) then PF.printf "%s\n" (cs "1;32" "Yes") else PF.printf "%s, it is %s\n" (cs "1;31" "No") - (sotr res) - + (sotr res)); + res diff --git a/src/testsuite/Testsuite.mli b/src/testsuite/Testsuite.mli index 2276f95..3b645f3 100644 --- a/src/testsuite/Testsuite.mli +++ b/src/testsuite/Testsuite.mli @@ -12,5 +12,5 @@ type testResult = | Sat type satCheck = testResult * (CoAlgMisc.sortTable) * string (* expected * functors * formula *) val runSatCheck : satCheck -> testResult -val runSatCheckVerbose : satCheck -> unit +val runSatCheckVerbose : satCheck -> testResult diff --git a/src/testsuite/cool-testsuite.ml b/src/testsuite/cool-testsuite.ml index 649a26b..a093b05 100644 --- a/src/testsuite/cool-testsuite.ml +++ b/src/testsuite/cool-testsuite.ml @@ -10,7 +10,6 @@ let kd = [| (CM.MultiModalKD, [0]) |] let cl = [| (CM.CoalitionLogic, [0]) |] let gml = [| (CM.GML, [0]) |] -(* ============ multi modal K ============ *) let k_testcases: satCheck list = let c a b = (a,k,b) in [ c Sat "True" @@ -50,10 +49,24 @@ let testcases = ] let main = + let success = ref 0 in + let failed = ref 0 in foreach_l testcases (fun (name,table) -> - Printf.printf "\n==== Testing %s ====\n" name; - foreach_l table runSatCheckVerbose - ) + Printf.printf "==== Testing %s ====\n" name; + foreach_l table (fun sc -> + let (expected,_,_) = sc in + let actual = runSatCheckVerbose sc in + (* compare the expected and the actual result *) + if actual = expected + then success := !success + 1 + else failed := !failed + 1 + ); + Printf.printf "\n" + ); + let s n = if n = 1 then "testcase" else "testcases" in + Printf.printf "=> %d %s succeeded, %d %s failed.\n" + !success (s !success) + !failed (s !failed) let _ = main -- GitLab