From fc03d4b5af34755e892b05db58047010f1cd40d9 Mon Sep 17 00:00:00 2001
From: Chris <Christopher.Happe@uni-duesseldorf.de>
Date: Sat, 27 Feb 2021 10:41:44 +0100
Subject: [PATCH] Add tests for lustre in python

---
 .../lustre/M_AssertionClockAddition.stpy      |  4 ++
 .../lustre/M_AssertionExampleAddition.stpy    |  4 ++
 .../codegenerator/lustre/M_COUNTAddition.stpy |  9 ++++
 .../lustre/M_Clock12Addition.stpy             | 10 ++++
 .../lustre/M_Clock4Addition.stpy              | 10 ++++
 .../lustre/M_Clock6Addition.stpy              | 10 ++++
 .../lustre/M_Clock7Addition.stpy              | 10 ++++
 .../lustre/M_Clock8Addition.stpy              | 10 ++++
 .../lustre/M_Current2Addition.stpy            | 34 ++++++++++++
 .../lustre/M_Current3Addition.stpy            | 18 +++++++
 .../lustre/M_CurrentAddition.stpy             | 14 +++++
 .../lustre/M_DivisionAddition.stpy            |  8 +++
 .../codegenerator/lustre/M_Fby2Addition.stpy  |  6 +++
 .../codegenerator/lustre/M_Fby3Addition.stpy  | 12 +++++
 .../codegenerator/lustre/M_FbyAddition.stpy   |  8 +++
 .../lustre/M_If_Then_Else2Addition.stpy       | 10 ++++
 .../lustre/M_If_Then_ElseAddition.stpy        |  8 +++
 .../codegenerator/lustre/M_LiftAddition.stpy  | 16 ++++++
 .../lustre/M_MachineAddition.stpy             | 14 +++++
 .../lustre/M_ModuloAddition.stpy              | 10 ++++
 .../lustre/M_MovingItem_mainAddition.stpy     | 34 ++++++++++++
 .../codegenerator/lustre/M_Nil3Addition.stpy  |  8 +++
 .../codegenerator/lustre/M_NilAddition.stpy   |  8 +++
 .../lustre/M_NilChecking2Addition.stpy        |  6 +++
 .../lustre/M_NilChecking5Addition.stpy        | 12 +++++
 .../lustre/M_NilChecking6Addition.stpy        | 12 +++++
 .../lustre/M_NilCheckingAddition.stpy         | 10 ++++
 .../lustre/M_NodeCallAddition.stpy            | 12 +++++
 .../lustre/M_NodeCall_Clock2Addition.stpy     | 10 ++++
 .../lustre/M_NodeCall_Clock3Addition.stpy     | 10 ++++
 .../lustre/M_NodeCall_ClockAddition.stpy      | 10 ++++
 .../codegenerator/lustre/M_Pre2Addition.stpy  | 18 +++++++
 .../codegenerator/lustre/M_Pre3Addition.stpy  |  6 +++
 .../codegenerator/lustre/M_Pre4Addition.stpy  | 14 +++++
 .../codegenerator/lustre/M_Pre5Addition.stpy  | 20 +++++++
 .../codegenerator/lustre/M_Pre6Addition.stpy  | 20 +++++++
 .../codegenerator/lustre/M_Pre7Addition.stpy  | 14 +++++
 .../codegenerator/lustre/M_PreAddition.stpy   | 10 ++++
 .../lustre/M_SLOW_TIME_STABLEAddition.stpy    | 14 +++++
 .../lustre/M_SubmodeExampleAddition.stpy      | 26 +++++++++
 .../lustre/M_TIME_STABLEAddition.stpy         | 14 +++++
 .../lustre/M_UMS_mainAddition.stpy            | 32 +++++++++++
 .../lustre/M_UMS_verifAddition.stpy           | 14 +++++
 .../lustre/M_UnequalAddition.stpy             |  6 +++
 .../lustre/M_VerifyMovingItemAddition.stpy    | 18 +++++++
 .../lustre/M_When10Addition.stpy              | 10 ++++
 .../lustre/M_When11Addition.stpy              | 12 +++++
 .../codegenerator/lustre/M_When2Addition.stpy | 11 ++++
 .../codegenerator/lustre/M_When3Addition.stpy | 12 +++++
 .../codegenerator/lustre/M_When4Addition.stpy |  8 +++
 .../codegenerator/lustre/M_When5Addition.stpy | 14 +++++
 .../codegenerator/lustre/M_When6Addition.stpy | 14 +++++
 .../codegenerator/lustre/M_When7Addition.stpy | 14 +++++
 .../codegenerator/lustre/M_When8Addition.stpy | 18 +++++++
 .../codegenerator/lustre/M_When9Addition.stpy | 10 ++++
 .../codegenerator/lustre/M_WhenAddition.stpy  |  8 +++
 .../lustre/M_carlights2_v4Addition.stpy       | 20 +++++++
 .../lustre/M_expr_list2Addition.stpy          | 11 ++++
 .../lustre/M_expr_list3Addition.stpy          | 11 ++++
 .../lustre/M_expr_list4Addition.stpy          | 11 ++++
 .../lustre/M_expr_list5Addition.stpy          |  8 +++
 .../lustre/M_expr_list6Addition.stpy          | 10 ++++
 .../lustre/M_expr_list9Addition.stpy          | 14 +++++
 .../lustre/M_expr_listAddition.stpy           |  5 ++
 .../lustre/M_pilot_flyingAddition.stpy        | 47 ++++++++++++++++
 .../lustre/M_speed_mainAddition.stpy          | 53 +++++++++++++++++++
 .../lustre/M_speed_verifAddition.stpy         | 36 +++++++++++++
 67 files changed, 940 insertions(+)
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_AssertionClockAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_AssertionExampleAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_COUNTAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock12Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock4Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock6Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock7Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock8Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Current2Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Current3Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_CurrentAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_DivisionAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Fby2Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Fby3Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_FbyAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_If_Then_Else2Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_If_Then_ElseAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_LiftAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_MachineAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_ModuloAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_MovingItem_mainAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Nil3Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking2Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking5Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking6Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilCheckingAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCallAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_Clock2Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_Clock3Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_ClockAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre2Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre3Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre4Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre5Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre6Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre7Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_PreAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_SLOW_TIME_STABLEAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_SubmodeExampleAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_TIME_STABLEAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_UMS_mainAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_UMS_verifAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_UnequalAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_VerifyMovingItemAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When10Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When11Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When2Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When3Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When4Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When5Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When6Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When7Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When8Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_When9Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_WhenAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_carlights2_v4Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list2Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list3Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list4Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list5Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list6Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list9Addition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_listAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_pilot_flyingAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_speed_mainAddition.stpy
 create mode 100644 src/test/resources/de/hhu/stups/codegenerator/lustre/M_speed_verifAddition.stpy

diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_AssertionClockAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_AssertionClockAddition.stpy
new file mode 100644
index 000000000..bae4c22c8
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_AssertionClockAddition.stpy
@@ -0,0 +1,4 @@
+if __name__ == '__main__':
+    program = M_AssertionClock()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_AssertionExampleAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_AssertionExampleAddition.stpy
new file mode 100644
index 000000000..688f9b1f3
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_AssertionExampleAddition.stpy
@@ -0,0 +1,4 @@
+if __name__ == '__main__':
+    program = M_AssertionExample()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))))
+    print(program.getR())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_COUNTAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_COUNTAddition.stpy
new file mode 100644
index 000000000..2b60ed6d7
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_COUNTAddition.stpy
@@ -0,0 +1,9 @@
+if __name__ == '__main__':
+    counter = M_COUNT()
+    counter.clock_step(BRelation(BTuple(REF.ref, BInteger(1))))
+    print(counter.getRes())
+    counter.clock_step(BRelation(BTuple(REF.ref, BInteger(2))))
+    print(counter.getRes())
+    for i in range(100):
+        counter.clock_step(BRelation(BTuple(REF.ref, BInteger(1))))
+    print(counter.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock12Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock12Addition.stpy
new file mode 100644
index 000000000..06f55eddf
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock12Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    clock = M_Clock12()
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(1))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(clock.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock4Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock4Addition.stpy
new file mode 100644
index 000000000..f0a5a4226
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock4Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    clock = M_Clock4()
+    clock.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(clock.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock6Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock6Addition.stpy
new file mode 100644
index 000000000..3b3b3165c
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock6Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    clock = M_Clock6()
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(1))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(clock.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock7Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock7Addition.stpy
new file mode 100644
index 000000000..63cbe0491
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock7Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    clock = M_Clock7()
+    clock.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(clock.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock8Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock8Addition.stpy
new file mode 100644
index 000000000..022675759
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Clock8Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    clock = M_Clock8()
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(1))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(clock.getRes())
+    clock.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(clock.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Current2Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Current2Addition.stpy
new file mode 100644
index 000000000..5acbb319c
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Current2Addition.stpy
@@ -0,0 +1,34 @@
+if __name__ == '__main__':
+    current = M_Current2()
+    current.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(current.getRes())
+    print(current.getRes1())
+    print(current.getRes2())
+    current.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(current.getRes())
+    print(current.getRes1())
+    print(current.getRes2())
+    current.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(current.getRes())
+    print(current.getRes1())
+    print(current.getRes2())
+    current.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(current.getRes())
+    print(current.getRes1())
+    print(current.getRes2())
+    current.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(current.getRes())
+    print(current.getRes1())
+    print(current.getRes2())
+    current.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(current.getRes())
+    print(current.getRes1())
+    print(current.getRes2())
+    current.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(current.getRes())
+    print(current.getRes1())
+    print(current.getRes2())
+    current.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(current.getRes())
+    print(current.getRes1())
+    print(current.getRes2())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Current3Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Current3Addition.stpy
new file mode 100644
index 000000000..720a4eeb1
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Current3Addition.stpy
@@ -0,0 +1,18 @@
+if __name__ == '__main__':
+    program = M_Current3()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_CurrentAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_CurrentAddition.stpy
new file mode 100644
index 000000000..e5766488d
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_CurrentAddition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    program = M_Current()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getRes1())
+    print(program.getRes2())
+    print(program.getRes3())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getRes1())
+    print(program.getRes2())
+    print(program.getRes3())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BInteger(5))))
+    print(program.getRes1())
+    print(program.getRes2())
+    print(program.getRes3())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_DivisionAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_DivisionAddition.stpy
new file mode 100644
index 000000000..078d1c796
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_DivisionAddition.stpy
@@ -0,0 +1,8 @@
+if __name__ == '__main__':
+    program = M_Division()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(0))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Fby2Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Fby2Addition.stpy
new file mode 100644
index 000000000..d39180d4c
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Fby2Addition.stpy
@@ -0,0 +1,6 @@
+if __name__ == '__main__':
+    program = M_Fby2()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getZ())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Fby3Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Fby3Addition.stpy
new file mode 100644
index 000000000..294351abf
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Fby3Addition.stpy
@@ -0,0 +1,12 @@
+if __name__ == '__main__':
+    program = M_Fby3()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getZ())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_FbyAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_FbyAddition.stpy
new file mode 100644
index 000000000..52a4ec826
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_FbyAddition.stpy
@@ -0,0 +1,8 @@
+if __name__ == '__main__':
+    program = M_Fby()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(5))))
+    print(program.getZ())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_If_Then_Else2Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_If_Then_Else2Addition.stpy
new file mode 100644
index 000000000..6c434059d
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_If_Then_Else2Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    program = M_If_Then_Else2()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getZ())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_If_Then_ElseAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_If_Then_ElseAddition.stpy
new file mode 100644
index 000000000..068237085
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_If_Then_ElseAddition.stpy
@@ -0,0 +1,8 @@
+if __name__ == '__main__':
+    program = M_If_Then_Else()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getZ())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getZ())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_LiftAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_LiftAddition.stpy
new file mode 100644
index 000000000..dc5a3d1ea
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_LiftAddition.stpy
@@ -0,0 +1,16 @@
+if __name__ == '__main__':
+    lift = M_Lift()
+    lift.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(lift.getFloor())
+    lift.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(lift.getFloor())
+    for i in range(100):
+        lift.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(lift.getFloor())
+    lift.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(lift.getFloor())
+    for i in range(100):
+        lift.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(lift.getFloor())
+    lift.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(lift.getFloor())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_MachineAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_MachineAddition.stpy
new file mode 100644
index 000000000..e35ad99c3
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_MachineAddition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    program = M_Machine()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
+    print(program.getRes1())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    print(program.getRes1())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
+    print(program.getRes1())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
+    print(program.getRes1())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_ModuloAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_ModuloAddition.stpy
new file mode 100644
index 000000000..e151b3c85
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_ModuloAddition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    program = M_Modulo()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(-1))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(-3))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(5))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(-3))), BRelation(BTuple(REF.ref, BInteger(-2))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_MovingItem_mainAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_MovingItem_mainAddition.stpy
new file mode 100644
index 000000000..94e805349
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_MovingItem_mainAddition.stpy
@@ -0,0 +1,34 @@
+if __name__ == '__main__':
+    program = M_MovingItem_main()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getStart1())
+    print(program.getStart2())
+    print(program.getStop())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getStart1())
+    print(program.getStart2())
+    print(program.getStop())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getStart1())
+    print(program.getStart2())
+    print(program.getStop())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getStart1())
+    print(program.getStart2())
+    print(program.getStop())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getStart1())
+    print(program.getStart2())
+    print(program.getStop())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getStart1())
+    print(program.getStart2())
+    print(program.getStop())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getStart1())
+    print(program.getStart2())
+    print(program.getStop())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getStart1())
+    print(program.getStart2())
+    print(program.getStop())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Nil3Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Nil3Addition.stpy
new file mode 100644
index 000000000..ac7028f10
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Nil3Addition.stpy
@@ -0,0 +1,8 @@
+if __name__ == '__main__':
+    program = M_Nil3()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilAddition.stpy
new file mode 100644
index 000000000..1a68fc9aa
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilAddition.stpy
@@ -0,0 +1,8 @@
+if __name__ == '__main__':
+    program = M_Nil()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking2Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking2Addition.stpy
new file mode 100644
index 000000000..5e129617c
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking2Addition.stpy
@@ -0,0 +1,6 @@
+if __name__ == '__main__':
+    program = M_NilChecking2()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(1))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking5Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking5Addition.stpy
new file mode 100644
index 000000000..28d1b8d47
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking5Addition.stpy
@@ -0,0 +1,12 @@
+if __name__ == '__main__':
+    program = M_NilChecking5()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(5))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking6Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking6Addition.stpy
new file mode 100644
index 000000000..712929083
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilChecking6Addition.stpy
@@ -0,0 +1,12 @@
+if __name__ == '__main__':
+    program = M_NilChecking6()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(5))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilCheckingAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilCheckingAddition.stpy
new file mode 100644
index 000000000..97af8c7bf
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NilCheckingAddition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    program = M_NilChecking()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(1))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCallAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCallAddition.stpy
new file mode 100644
index 000000000..64f671e4b
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCallAddition.stpy
@@ -0,0 +1,12 @@
+if __name__ == '__main__':
+    program = M_NodeCall()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(5))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_Clock2Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_Clock2Addition.stpy
new file mode 100644
index 000000000..ffc6d96f3
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_Clock2Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    program = M_NodeCall_Clock2()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_Clock3Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_Clock3Addition.stpy
new file mode 100644
index 000000000..fc78b84bb
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_Clock3Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    program = M_NodeCall_Clock3()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_ClockAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_ClockAddition.stpy
new file mode 100644
index 000000000..deba224ca
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_NodeCall_ClockAddition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    program = M_NodeCall_Clock()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre2Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre2Addition.stpy
new file mode 100644
index 000000000..2ef68819b
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre2Addition.stpy
@@ -0,0 +1,18 @@
+if __name__ == '__main__':
+    pre = M_Pre2()
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getRes())
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getRes())
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getRes())
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getRes())
+    print(pre.getRes1())
+    print(pre.getRes2())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre3Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre3Addition.stpy
new file mode 100644
index 000000000..819ed56b2
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre3Addition.stpy
@@ -0,0 +1,6 @@
+if __name__ == '__main__':
+    pre = M_Pre3()
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getA())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getA())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre4Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre4Addition.stpy
new file mode 100644
index 000000000..90487c920
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre4Addition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    pre = M_Pre4()
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(1))))
+    print(pre.getZ())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(2))))
+    print(pre.getZ())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(pre.getZ())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(4))))
+    print(pre.getZ())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(0))))
+    print(pre.getZ())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(-1))))
+    print(pre.getZ())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre5Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre5Addition.stpy
new file mode 100644
index 000000000..f86f7b0ad
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre5Addition.stpy
@@ -0,0 +1,20 @@
+if __name__ == '__main__':
+    pre = M_Pre5()
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getRes1())
+    print(pre.getRes2())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre6Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre6Addition.stpy
new file mode 100644
index 000000000..15ebefc0c
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre6Addition.stpy
@@ -0,0 +1,20 @@
+if __name__ == '__main__':
+    pre = M_Pre6()
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getRes1())
+    print(pre.getRes2())
+    pre.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getRes1())
+    print(pre.getRes2())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre7Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre7Addition.stpy
new file mode 100644
index 000000000..41c2d53dc
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_Pre7Addition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    pre = M_Pre7()
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getY())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getY())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getY())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getY())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(5))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(pre.getY())
+    pre.clock_step(BRelation(BTuple(REF.ref, BInteger(6))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(pre.getY())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_PreAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_PreAddition.stpy
new file mode 100644
index 000000000..66a7ed663
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_PreAddition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    program = M_Pre()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(0))))
+    print(program.getD())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(0))))
+    print(program.getD())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(0))))
+    print(program.getD())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BInteger(0))))
+    print(program.getD())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_SLOW_TIME_STABLEAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_SLOW_TIME_STABLEAddition.stpy
new file mode 100644
index 000000000..0c70fcd1f
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_SLOW_TIME_STABLEAddition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    program = M_SLOW_TIME_STABLE()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_SubmodeExampleAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_SubmodeExampleAddition.stpy
new file mode 100644
index 000000000..94ce755e0
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_SubmodeExampleAddition.stpy
@@ -0,0 +1,26 @@
+if __name__ == '__main__':
+    program = M_SubmodeExample()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getSelected())
+    print(program.getActive())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getSelected())
+    print(program.getActive())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getSelected())
+    print(program.getActive())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getSelected())
+    print(program.getActive())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getSelected())
+    print(program.getActive())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getSelected())
+    print(program.getActive())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getSelected())
+    print(program.getActive())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getSelected())
+    print(program.getActive())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_TIME_STABLEAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_TIME_STABLEAddition.stpy
new file mode 100644
index 000000000..344eff346
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_TIME_STABLEAddition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    program = M_TIME_STABLE()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getLevel())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_UMS_mainAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_UMS_mainAddition.stpy
new file mode 100644
index 000000000..d5d79aeff
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_UMS_mainAddition.stpy
@@ -0,0 +1,32 @@
+if __name__ == '__main__':
+    ums = M_UMS_main()
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(ums.getGrant_Access())
+    print(ums.getGrant_Exit())
+    print(ums.getDo_AB())
+    print(ums.getDo_BC())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(ums.getGrant_Access())
+    print(ums.getGrant_Exit())
+    print(ums.getDo_AB())
+    print(ums.getDo_BC())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(ums.getGrant_Access())
+    print(ums.getGrant_Exit())
+    print(ums.getDo_AB())
+    print(ums.getDo_BC())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(ums.getGrant_Access())
+    print(ums.getGrant_Exit())
+    print(ums.getDo_AB())
+    print(ums.getDo_BC())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(ums.getGrant_Access())
+    print(ums.getGrant_Exit())
+    print(ums.getDo_AB())
+    print(ums.getDo_BC())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(ums.getGrant_Access())
+    print(ums.getGrant_Exit())
+    print(ums.getDo_AB())
+    print(ums.getDo_BC())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_UMS_verifAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_UMS_verifAddition.stpy
new file mode 100644
index 000000000..ecedecef4
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_UMS_verifAddition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    ums = M_UMS_verif()
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(ums.getProperty())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(ums.getProperty())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(ums.getProperty())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(ums.getProperty())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(ums.getProperty())
+    ums.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(ums.getProperty())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_UnequalAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_UnequalAddition.stpy
new file mode 100644
index 000000000..deba4867b
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_UnequalAddition.stpy
@@ -0,0 +1,6 @@
+if __name__ == '__main__':
+    program = M_Unequal()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(-1))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_VerifyMovingItemAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_VerifyMovingItemAddition.stpy
new file mode 100644
index 000000000..81262937a
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_VerifyMovingItemAddition.stpy
@@ -0,0 +1,18 @@
+if __name__ == '__main__':
+    program = M_VerifyMovingItem()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getOK())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When10Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When10Addition.stpy
new file mode 100644
index 000000000..6e633b6a1
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When10Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    when = M_When10()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(1))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(when.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When11Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When11Addition.stpy
new file mode 100644
index 000000000..61bce9765
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When11Addition.stpy
@@ -0,0 +1,12 @@
+if __name__ == '__main__':
+    when = M_When11()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When2Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When2Addition.stpy
new file mode 100644
index 000000000..ec237778d
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When2Addition.stpy
@@ -0,0 +1,11 @@
+if __name__ == '__main__':
+    when = M_When2()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BInteger(5))))
+    print(when.getRes1())
+    print(when.getRes2())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When3Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When3Addition.stpy
new file mode 100644
index 000000000..7e442298b
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When3Addition.stpy
@@ -0,0 +1,12 @@
+if __name__ == '__main__':
+    when = M_When3()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When4Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When4Addition.stpy
new file mode 100644
index 000000000..a9f1906c0
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When4Addition.stpy
@@ -0,0 +1,8 @@
+if __name__ == '__main__':
+    when = M_When4()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When5Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When5Addition.stpy
new file mode 100644
index 000000000..d54062280
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When5Addition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    when = M_When5()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes1())
+    print(when.getRes2())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When6Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When6Addition.stpy
new file mode 100644
index 000000000..107703493
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When6Addition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    when = M_When6()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes1())
+    print(when.getRes2())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When7Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When7Addition.stpy
new file mode 100644
index 000000000..777619e35
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When7Addition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    when = M_When7()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes1())
+    print(when.getRes2())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When8Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When8Addition.stpy
new file mode 100644
index 000000000..7320f8558
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When8Addition.stpy
@@ -0,0 +1,18 @@
+if __name__ == '__main__':
+    when = M_When8()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
+    print(when.getRes1())
+    print(when.getRes2())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    print(when.getRes1())
+    print(when.getRes2())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When9Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When9Addition.stpy
new file mode 100644
index 000000000..39405c377
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_When9Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    when = M_When9()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_WhenAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_WhenAddition.stpy
new file mode 100644
index 000000000..8c94d49fe
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_WhenAddition.stpy
@@ -0,0 +1,8 @@
+if __name__ == '__main__':
+    when = M_When()
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(when.getRes())
+    when.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(when.getRes())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_carlights2_v4Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_carlights2_v4Addition.stpy
new file mode 100644
index 000000000..adf58b967
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_carlights2_v4Addition.stpy
@@ -0,0 +1,20 @@
+if __name__ == '__main__':
+    program = M_carlights2_v4()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(0))), BRelation(BTuple(REF.ref, BInteger(10))))
+    print(program.getIsOn())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(0))), BRelation(BTuple(REF.ref, BInteger(9))))
+    print(program.getIsOn())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(0))), BRelation(BTuple(REF.ref, BInteger(8))))
+    print(program.getIsOn())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(7))))
+    print(program.getIsOn())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(6))))
+    print(program.getIsOn())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(5))))
+    print(program.getIsOn())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getIsOn())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(5))))
+    print(program.getIsOn())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BInteger(6))))
+    print(program.getIsOn())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list2Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list2Addition.stpy
new file mode 100644
index 000000000..56594f7f5
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list2Addition.stpy
@@ -0,0 +1,11 @@
+if __name__ == '__main__':
+    program = M_expr_list2()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(0))), BRelation(BTuple(REF.ref, BInteger(-1))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getA())
+    print(program.getB())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list3Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list3Addition.stpy
new file mode 100644
index 000000000..7e3944123
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list3Addition.stpy
@@ -0,0 +1,11 @@
+if __name__ == '__main__':
+    program = M_expr_list3()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(2))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(0))), BRelation(BTuple(REF.ref, BInteger(-1))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getA())
+    print(program.getB())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list4Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list4Addition.stpy
new file mode 100644
index 000000000..a1a91548c
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list4Addition.stpy
@@ -0,0 +1,11 @@
+if __name__ == '__main__':
+    program = M_expr_list4()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(0))), BRelation(BTuple(REF.ref, BInteger(0))))
+    print(program.getA())
+    print(program.getB())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list5Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list5Addition.stpy
new file mode 100644
index 000000000..69fcb6d37
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list5Addition.stpy
@@ -0,0 +1,8 @@
+if __name__ == '__main__':
+    program = M_expr_list5()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getA())
+    print(program.getB())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list6Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list6Addition.stpy
new file mode 100644
index 000000000..d5c277f20
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list6Addition.stpy
@@ -0,0 +1,10 @@
+if __name__ == '__main__':
+    program = M_expr_list6()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))))
+    print(program.getA())
+    print(program.getB())
+    print(program.getC())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getA())
+    print(program.getB())
+    print(program.getC())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list9Addition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list9Addition.stpy
new file mode 100644
index 000000000..367d34514
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_list9Addition.stpy
@@ -0,0 +1,14 @@
+if __name__ == '__main__':
+    program = M_expr_list9()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(3))), BRelation(BTuple(REF.ref, BInteger(4))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(5))), BRelation(BTuple(REF.ref, BInteger(6))))
+    print(program.getA())
+    print(program.getB())
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(7))), BRelation(BTuple(REF.ref, BInteger(8))))
+    print(program.getA())
+    print(program.getB())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_listAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_listAddition.stpy
new file mode 100644
index 000000000..26e36d8a4
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_expr_listAddition.stpy
@@ -0,0 +1,5 @@
+if __name__ == '__main__':
+    program = M_expr_list()
+    program.clock_step(BRelation(BTuple(REF.ref, BInteger(1))), BRelation(BTuple(REF.ref, BInteger(2))))
+    print(program.getA())
+    print(program.getB())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_pilot_flyingAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_pilot_flyingAddition.stpy
new file mode 100644
index 000000000..00d07695b
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_pilot_flyingAddition.stpy
@@ -0,0 +1,47 @@
+if __name__ == '__main__':
+    program = M_pilot_flying()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLPFS())
+    print(program.getRPFS())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLPFS())
+    print(program.getRPFS())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_speed_mainAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_speed_mainAddition.stpy
new file mode 100644
index 000000000..a9f9a2d49
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_speed_mainAddition.stpy
@@ -0,0 +1,53 @@
+if __name__ == '__main__':
+    program = M_speed_main()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getLate())
+    print(program.getEarly())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getLate())
+    print(program.getEarly())
\ No newline at end of file
diff --git a/src/test/resources/de/hhu/stups/codegenerator/lustre/M_speed_verifAddition.stpy b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_speed_verifAddition.stpy
new file mode 100644
index 000000000..b8cb535bf
--- /dev/null
+++ b/src/test/resources/de/hhu/stups/codegenerator/lustre/M_speed_verifAddition.stpy
@@ -0,0 +1,36 @@
+if __name__ == '__main__':
+    program = M_speed_verif()
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(True))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(True))))
+    print(program.getOK())
+    program.clock_step(BRelation(BTuple(REF.ref, BBoolean(False))), BRelation(BTuple(REF.ref, BBoolean(False))))
+    print(program.getOK())
\ No newline at end of file
-- 
GitLab