From c9ae184eb836416376c35276f54a327fef02c02a Mon Sep 17 00:00:00 2001
From: Cookiebowser <lucas.doering@live.de>
Date: Thu, 11 Aug 2022 15:45:10 +0200
Subject: [PATCH] added more Others-benchmarks and fixed a small thing

---
 .../hhu/stups/codegenerator/RustTemplate.stg  |  2 +-
 .../stups/codegenerator/rust/TestOthers.java  | 38 ++++++++++++++++++-
 .../hhu/stups/codegenerator/rust/TestRS.java  |  3 +-
 .../stups/codegenerator/ArithmeticLaws_MC.out |  3 ++
 .../hhu/stups/codegenerator/BoolLaws_MC.out   |  3 ++
 .../codegenerator/BoolLaws_SetCompr_MC.out    |  3 ++
 .../codegenerator/BoolWithArithLaws_MC.out    |  3 ++
 .../de/hhu/stups/codegenerator/CSM_MC.out     |  3 ++
 .../codegenerator/CardinalityLaws_MC.out      |  3 ++
 .../de/hhu/stups/codegenerator/Doors_MC.out   |  3 ++
 10 files changed, 61 insertions(+), 3 deletions(-)
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/ArithmeticLaws_MC.out
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/BoolLaws_MC.out
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/BoolLaws_SetCompr_MC.out
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/BoolWithArithLaws_MC.out
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/CSM_MC.out
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/CardinalityLaws_MC.out
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/Doors_MC.out

diff --git a/src/main/resources/de/hhu/stups/codegenerator/RustTemplate.stg b/src/main/resources/de/hhu/stups/codegenerator/RustTemplate.stg
index 402081bee..91ba5312e 100644
--- a/src/main/resources/de/hhu/stups/codegenerator/RustTemplate.stg
+++ b/src/main/resources/de/hhu/stups/codegenerator/RustTemplate.stg
@@ -43,7 +43,7 @@ pub struct <machine> {
     <if(constants_declarations)><constants_declarations; separator="\n"><endif>
     <sets; separator="\n">
     <if(forModelChecking)>
-    #[derivative(Hash="ignore", PartialEq="ignore")]
+    <if(transitionCachesDeclaration)>#[derivative(Hash="ignore", PartialEq="ignore")]<endif>
     <transitionCachesDeclaration; separator="\n#[derivative(Hash=\"ignore\", PartialEq=\"ignore\")]\n"><endif>
 }
 
diff --git a/src/test/java/de/hhu/stups/codegenerator/rust/TestOthers.java b/src/test/java/de/hhu/stups/codegenerator/rust/TestOthers.java
index 6806690f4..64d1ee9cc 100644
--- a/src/test/java/de/hhu/stups/codegenerator/rust/TestOthers.java
+++ b/src/test/java/de/hhu/stups/codegenerator/rust/TestOthers.java
@@ -3,6 +3,7 @@ package de.hhu.stups.codegenerator.rust;
 import org.junit.Test;
 
 public class TestOthers extends TestRS{
+    private final String PROB_OTHER_PATH = "../../../../benchmarks/model_checking/ProB/Other";
     @Test
     public void test_SetRelationConstructs() throws Exception {
         testRSMC("SetRelationConstructs", true);
@@ -10,6 +11,41 @@ public class TestOthers extends TestRS{
 
     @Test
     public void test_ArithmeticExpLaws() throws Exception {
-        testRSMC("ArithmeticExpLaws", "../../../../benchmarks/model_checking/ProB/Other", true, true);
+        testRSMC("ArithmeticExpLaws", PROB_OTHER_PATH, true, true);
+    }
+
+    @Test
+    public void test_ArithmeticLaws() throws Exception {
+        testRSMC("ArithmeticLaws", PROB_OTHER_PATH, true);
+    }
+
+    @Test
+    public void test_BoolLaws() throws Exception {
+        testRSMC("BoolLaws", PROB_OTHER_PATH, true);
+    }
+
+    @Test
+    public void test_BoolLaws_SetCompr() throws Exception {
+        testRSMC("BoolLaws_SetCompr", PROB_OTHER_PATH, true, true);
+    }
+
+    @Test
+    public void test_BoolWithArithLaws() throws Exception {
+        testRSMC("BoolWithArithLaws", PROB_OTHER_PATH, true, true);
+    }
+
+    @Test
+    public void test_CardinalityLaws() throws Exception {
+        testRSMC("CardinalityLaws", PROB_OTHER_PATH, true, true);
+    }
+
+    @Test
+    public void test_CSM() throws Exception {
+        testRSMC("CSM", PROB_OTHER_PATH, true);
+    }
+
+    @Test
+    public void test_Doors() throws Exception {
+        testRSMC("Doors", PROB_OTHER_PATH, true);
     }
 }
diff --git a/src/test/java/de/hhu/stups/codegenerator/rust/TestRS.java b/src/test/java/de/hhu/stups/codegenerator/rust/TestRS.java
index b329e0e2b..a21b97cac 100644
--- a/src/test/java/de/hhu/stups/codegenerator/rust/TestRS.java
+++ b/src/test/java/de/hhu/stups/codegenerator/rust/TestRS.java
@@ -130,7 +130,8 @@ public class TestRS {
             assertEquals(expectedOutput, result);
         } else {
             System.out.println("Asserting Success: ");
-            System.out.println(result);
+            System.out.println("Expected: " + expectedOutput);
+            System.out.println("Gotten  : " + result);
             assertTrue(result.contains(expectedOutput));
         }
         cleanUp(newMainFile);
diff --git a/src/test/resources/de/hhu/stups/codegenerator/ArithmeticLaws_MC.out b/src/test/resources/de/hhu/stups/codegenerator/ArithmeticLaws_MC.out
new file mode 100644
index 000000000..3d03db052
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/ArithmeticLaws_MC.out
@@ -0,0 +1,3 @@
+MODEL CHECKING SUCCESSFUL
+Number of States: 5616
+Number of Transitions: 21226
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/BoolLaws_MC.out b/src/test/resources/de/hhu/stups/codegenerator/BoolLaws_MC.out
new file mode 100644
index 000000000..8e1d3a738
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/BoolLaws_MC.out
@@ -0,0 +1,3 @@
+MODEL CHECKING SUCCESSFUL
+Number of States: 8
+Number of Transitions: 24
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/BoolLaws_SetCompr_MC.out b/src/test/resources/de/hhu/stups/codegenerator/BoolLaws_SetCompr_MC.out
new file mode 100644
index 000000000..26fada1f3
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/BoolLaws_SetCompr_MC.out
@@ -0,0 +1,3 @@
+MODEL CHECKING SUCCESSFUL
+Number of States: 1
+Number of Transitions: 0
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/BoolWithArithLaws_MC.out b/src/test/resources/de/hhu/stups/codegenerator/BoolWithArithLaws_MC.out
new file mode 100644
index 000000000..379ffc711
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/BoolWithArithLaws_MC.out
@@ -0,0 +1,3 @@
+MODEL CHECKING SUCCESSFUL
+Number of States: 64
+Number of Transitions: 144
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/CSM_MC.out b/src/test/resources/de/hhu/stups/codegenerator/CSM_MC.out
new file mode 100644
index 000000000..950c266fe
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/CSM_MC.out
@@ -0,0 +1,3 @@
+MODEL CHECKING SUCCESSFUL
+Number of States: 340
+Number of Transitions: 1228
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/CardinalityLaws_MC.out b/src/test/resources/de/hhu/stups/codegenerator/CardinalityLaws_MC.out
new file mode 100644
index 000000000..5cbb7c264
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/CardinalityLaws_MC.out
@@ -0,0 +1,3 @@
+MODEL CHECKING SUCCESSFUL
+Number of States: 16
+Number of Transitions: 21
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/Doors_MC.out b/src/test/resources/de/hhu/stups/codegenerator/Doors_MC.out
new file mode 100644
index 000000000..e735a9dd0
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/Doors_MC.out
@@ -0,0 +1,3 @@
+MODEL CHECKING SUCCESSFUL
+Number of States: 7
+Number of Transitions: 49
\ No newline at end of file
-- 
GitLab