From 910d5f056b5ba68c24f599cd3bb1712b79514bf7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorsten=20Wi=C3=9Fmann?= <edu@thorsten-wissmann.de>
Date: Mon, 21 Jul 2014 10:55:11 +0200
Subject: [PATCH] Remove redundancy from testsuite file

---
 src/testsuite/cool-testsuite.ml | 50 ++++++++++++++++++++-------------
 1 file changed, 30 insertions(+), 20 deletions(-)

diff --git a/src/testsuite/cool-testsuite.ml b/src/testsuite/cool-testsuite.ml
index 5d852c5..868fed5 100644
--- a/src/testsuite/cool-testsuite.ml
+++ b/src/testsuite/cool-testsuite.ml
@@ -7,11 +7,23 @@ module CM = CoAlgMisc
 module L = List
 module FP = FunctorParsing
 
+
 let k   = [| (CM.MultiModalK,  [0]) |]
 let kd  = [| (CM.MultiModalKD, [0]) |]
 let cl  = [| (CM.CoalitionLogic, [0]) |]
 let gml = [| (CM.GML, [0]) |]
 
+type testcase_section = string * satCheck list
+
+let sat x = (Sat,x)
+let unsat x = (Unsat,x)
+let parseerror x = (ParseError,x)
+
+let use_functor (functors_: string) (cases: (testResult*string) list): testcase_section =
+    let sortTable = FP.sortTableFromString functors_ in
+    let satchecks : satCheck list = List.map (fun (a,b) -> (a,sortTable,b)) cases in
+    (functors_, satchecks)
+
 let k_testcases: satCheck list =
     let c a b = (a,k,b) in
     [ c Sat   "True"
@@ -55,26 +67,24 @@ let kd_testcases =
     ; c Unsat "C |- [R] ~C"
     ]
 
-let cl_testcases : satCheck list =
-    let c a b = (a,cl,b) in
-    [ c Unsat "[{1}] C & [{ 2 }] ~C"
-    ; c Sat   "[{1}] C & <{ 2 }> ~C"
-    ; c Unsat "[{1}] C & <{ 1 2 }> ~C"
-    ; c Sat   "<{ 1 2 }> C & <{ 1 2 }> ~C"
-    ; c Unsat "<{ 1 2 }> C & [{ 1 2 }] ~C"
-    ; c Sat   "([{1 3}] C) & ([{ 2 3 }] ~C )"
+let cl_testcases : testcase_section =
+    use_functor "CL"
+    [ unsat "[{1}] C & [{ 2 }] ~C"
+    ; sat   "[{1}] C & <{ 2 }> ~C"
+    ; unsat "[{1}] C & <{ 1 2 }> ~C"
+    ; sat   "<{ 1 2 }> C & <{ 1 2 }> ~C"
+    ; unsat "<{ 1 2 }> C & [{ 1 2 }] ~C"
+    ; sat   "([{1 3}] C) & ([{ 2 3 }] ~C )"
     ]
 
-let kAndKd = FunctorParsing.sortTableFromString "K * KD"
-
-let kAndKd_testcases : satCheck list =
-    let c a b = (a,kAndKd,b) in
-    [ c Sat   "[pi1]True"
-    ; c Sat   "[pi1][R]False"
-    ; c Unsat "[pi2][R]False"
-    ; c Sat   "i' => [pi1][R] i'"
-    ; c Sat   "i' & [pi1][R] i'"
-    ; c Unsat "i' => [pi2][R] (~i') |- i' & [pi2] [R] i'"
+let kAndKd_testcases : testcase_section =
+    use_functor "K * KD"
+    [ sat   "[pi1]True"
+    ; sat   "[pi1][R]False"
+    ; unsat "[pi2][R]False"
+    ; sat   "i' => [pi1][R] i'"
+    ; sat   "i' & [pi1][R] i'"
+    ; unsat "i' => [pi2][R] (~i') |- i' & [pi2] [R] i'"
     ]
 
 let kOrKd = [| (CoAlgMisc.Choice, [1; 2]);
@@ -95,8 +105,8 @@ let testcases =
     ; c "K"  k_testcases
     ; c "Nominals" nominal_testcases
     ; c "KD" kd_testcases
-    ; c "CL" cl_testcases
-    ; c "K*KD" kAndKd_testcases
+    ; cl_testcases
+    ; kAndKd_testcases
     ; c "K+KD" kOrKd_testcases
     ]
 
-- 
GitLab