Quellcode durchsuchen

Added new tests

jos.itemis@gmail.com vor 14 Jahren
Ursprung
Commit
9bd483782c

+ 2 - 1
TestScenarios/.settings/org.eclipse.core.resources.prefs

@@ -1,7 +1,8 @@
-#Tue Nov 08 14:00:31 CET 2011
+#Thu Nov 10 11:42:58 CET 2011
 eclipse.preferences.version=1
 encoding//TestModels/InterfaceTest.sct=UTF-8
 encoding//TestModels/Test_DeepHistory.sct=UTF-8
+encoding//TestModels/Test_Expression.sct=UTF-8
 encoding//TestModels/Test_Hierarchy.sct=UTF-8
 encoding//TestModels/Test_LocalActions.sct=UTF-8
 encoding//TestModels/Test_ParallelRegions.sct=UTF-8

+ 65 - 65
TestScenarios/TestModels/InterfaceTest.sct

@@ -1,71 +1,71 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/2.0.0" xmlns:stext="http://www.yakindu.org/sct/statechart/SText">
-  <sgraph:Statechart xmi:id="_p-KfMAn1EeGuZq6TN7cDtg" name="InterfaceTest" expression="interface:&#xA;&#xA;in event event1&#xA;out event event2 : integer&#xA;&#xA;var var1 : boolean&#xA;var var2 : real = 2.3&#xA;var var3 : integer = 1&#xA;&#xA;interface other:&#xA;&#xA;in event event3&#xA;out event event4&#xA;&#xA;var v1 : integer&#xA;&#xA;interface third:&#xA;&#xA;in event event5&#xA;out event event6 : boolean&#xA;&#xA;var v1 : real&#xA;">
-    <scopes xsi:type="stext:InterfaceScope" xmi:id="_6nzkYArZEeGz3Ki5JUYy2w">
-      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LcArZEeGz3Ki5JUYy2w" name="event1" direction="in"/>
-      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LcQrZEeGz3Ki5JUYy2w" name="event2" direction="out" type="integer"/>
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LcgrZEeGz3Ki5JUYy2w" name="var1" type="boolean"/>
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LcwrZEeGz3Ki5JUYy2w" name="var2" type="real" initialValue="2.3"/>
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LdArZEeGz3Ki5JUYy2w" name="var3" type="integer" initialValue="1"/>
+  <sgraph:Statechart xmi:id="_p-KfMAn1EeGuZq6TN7cDtg" name="InterfaceTest" expression="interface:&#xA;&#xA;in event event1&#xA;out event event2 : integer&#xA;&#xA;var var1 : boolean&#xA;var var2 : real = 2.3&#xA;var var3 : integer = 1&#xA;&#xA;interface other:&#xA;&#xA;in event event3&#xA;out event event4&#xA;&#xA;var v1 : integer = 5&#xA;&#xA;interface third:&#xA;&#xA;in event event5&#xA;out event event6 : boolean&#xA;&#xA;var v1 : real&#xA;">
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_pkRsgAuKEeGVgpgRVT1uXw">
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_pkRsgQuKEeGVgpgRVT1uXw" name="event1" direction="in"/>
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_pkRsgguKEeGVgpgRVT1uXw" name="event2" direction="out" type="integer"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_pkRsgwuKEeGVgpgRVT1uXw" name="var1" type="boolean"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_pkRshAuKEeGVgpgRVT1uXw" name="var2" type="real" initialValue="2.3"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_pkRshQuKEeGVgpgRVT1uXw" name="var3" type="integer" initialValue="1"/>
     </scopes>
-    <scopes xsi:type="stext:InterfaceScope" xmi:id="_6n0LdQrZEeGz3Ki5JUYy2w" name="other">
-      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LdgrZEeGz3Ki5JUYy2w" name="event3" direction="in"/>
-      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LdwrZEeGz3Ki5JUYy2w" name="event4" direction="out"/>
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LeArZEeGz3Ki5JUYy2w" name="v1" type="integer"/>
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_pkRshguKEeGVgpgRVT1uXw" name="other">
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_pkRshwuKEeGVgpgRVT1uXw" name="event3" direction="in"/>
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_pkRsiAuKEeGVgpgRVT1uXw" name="event4" direction="out"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_pkRsiQuKEeGVgpgRVT1uXw" name="v1" type="integer" initialValue="5"/>
     </scopes>
-    <scopes xsi:type="stext:InterfaceScope" xmi:id="_6n0LeQrZEeGz3Ki5JUYy2w" name="third">
-      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LegrZEeGz3Ki5JUYy2w" name="event5" direction="in"/>
-      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LewrZEeGz3Ki5JUYy2w" name="event6" direction="out" type="boolean"/>
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LfArZEeGz3Ki5JUYy2w" name="v1" type="real"/>
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_pkRsiguKEeGVgpgRVT1uXw" name="third">
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_pkRsiwuKEeGVgpgRVT1uXw" name="event5" direction="in"/>
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_pkRsjAuKEeGVgpgRVT1uXw" name="event6" direction="out" type="boolean"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_pkRsjQuKEeGVgpgRVT1uXw" name="v1" type="real"/>
     </scopes>
     <regions xmi:id="_p-LtUgn1EeGuZq6TN7cDtg" name="main region">
       <vertices xsi:type="sgraph:Entry" xmi:id="_p-RM4Qn1EeGuZq6TN7cDtg">
         <outgoingTransitions xmi:id="_p-TpIwn1EeGuZq6TN7cDtg" target="_p-Rz9wn1EeGuZq6TN7cDtg"/>
       </vertices>
-      <vertices xsi:type="sgraph:State" xmi:id="_p-Rz9wn1EeGuZq6TN7cDtg" name="state1" incomingTransitions="_p-TpIwn1EeGuZq6TN7cDtg _IduY8An2EeGuZq6TN7cDtg _aUmT4An2EeGuZq6TN7cDtg _ezdE0An2EeGuZq6TN7cDtg">
+      <vertices xsi:type="sgraph:State" xmi:id="_p-Rz9wn1EeGuZq6TN7cDtg" name="state1" incomingTransitions="_p-TpIwn1EeGuZq6TN7cDtg _IduY8An2EeGuZq6TN7cDtg _aUmT4An2EeGuZq6TN7cDtg _ezdE0An2EeGuZq6TN7cDtg" expression="">
         <outgoingTransitions xmi:id="_Fp0t8An2EeGuZq6TN7cDtg" expression="event1[var2 > 0]" target="_DQwk0An2EeGuZq6TN7cDtg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n1ZkArZEeGz3Ki5JUYy2w">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n1ZkQrZEeGz3Ki5JUYy2w" event="_6n0LcArZEeGz3Ki5JUYy2w"/>
-            <guardExpression xsi:type="stext:LogicalRelationExpression" xmi:id="_6n1ZkgrZEeGz3Ki5JUYy2w" operator=">">
-              <leftOperand xsi:type="stext:ElementReferenceExpression" xmi:id="_6n1ZkwrZEeGz3Ki5JUYy2w" value="_6n0LcwrZEeGz3Ki5JUYy2w"/>
-              <rightOperand xsi:type="stext:PrimitiveValueExpression" xmi:id="_6n1ZlArZEeGz3Ki5JUYy2w" value="0"/>
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_pkSTkAuKEeGVgpgRVT1uXw">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_pkSTkQuKEeGVgpgRVT1uXw" event="_pkRsgQuKEeGVgpgRVT1uXw"/>
+            <guardExpression xsi:type="stext:LogicalRelationExpression" xmi:id="_pkSTkguKEeGVgpgRVT1uXw" operator=">">
+              <leftOperand xsi:type="stext:ElementReferenceExpression" xmi:id="_pkSTkwuKEeGVgpgRVT1uXw" value="_pkRshAuKEeGVgpgRVT1uXw"/>
+              <rightOperand xsi:type="stext:PrimitiveValueExpression" xmi:id="_pkSTlAuKEeGVgpgRVT1uXw" value="0"/>
             </guardExpression>
           </trigger>
         </outgoingTransitions>
         <outgoingTransitions xmi:id="_Wx7eYAn2EeGuZq6TN7cDtg" expression="other.event3[var3 == 1]" target="_N8IiYAn2EeGuZq6TN7cDtg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n3OwArZEeGz3Ki5JUYy2w">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n3OwQrZEeGz3Ki5JUYy2w" event="_6n0LdgrZEeGz3Ki5JUYy2w"/>
-            <guardExpression xsi:type="stext:LogicalRelationExpression" xmi:id="_6n3OwgrZEeGz3Ki5JUYy2w" operator="==">
-              <leftOperand xsi:type="stext:ElementReferenceExpression" xmi:id="_6n3OwwrZEeGz3Ki5JUYy2w" value="_6n0LdArZEeGz3Ki5JUYy2w"/>
-              <rightOperand xsi:type="stext:PrimitiveValueExpression" xmi:id="_6n3OxArZEeGz3Ki5JUYy2w" value="1"/>
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_pkUv0AuKEeGVgpgRVT1uXw">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_pkUv0QuKEeGVgpgRVT1uXw" event="_pkRshwuKEeGVgpgRVT1uXw"/>
+            <guardExpression xsi:type="stext:LogicalRelationExpression" xmi:id="_pkUv0guKEeGVgpgRVT1uXw" operator="==">
+              <leftOperand xsi:type="stext:ElementReferenceExpression" xmi:id="_pkUv0wuKEeGVgpgRVT1uXw" value="_pkRshQuKEeGVgpgRVT1uXw"/>
+              <rightOperand xsi:type="stext:PrimitiveValueExpression" xmi:id="_pkUv1AuKEeGVgpgRVT1uXw" value="1"/>
             </guardExpression>
           </trigger>
         </outgoingTransitions>
         <outgoingTransitions xmi:id="_dQp1UAn2EeGuZq6TN7cDtg" expression="third.event5[var1 == true]" target="_b6-b0An2EeGuZq6TN7cDtg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n5rAArZEeGz3Ki5JUYy2w">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n5rAQrZEeGz3Ki5JUYy2w" event="_6n0LegrZEeGz3Ki5JUYy2w"/>
-            <guardExpression xsi:type="stext:LogicalRelationExpression" xmi:id="_6n5rAgrZEeGz3Ki5JUYy2w" operator="==">
-              <leftOperand xsi:type="stext:ElementReferenceExpression" xmi:id="_6n5rAwrZEeGz3Ki5JUYy2w" value="_6n0LcgrZEeGz3Ki5JUYy2w"/>
-              <rightOperand xsi:type="stext:PrimitiveValueExpression" xmi:id="_6n5rBArZEeGz3Ki5JUYy2w" value="true"/>
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_pkWlAAuKEeGVgpgRVT1uXw">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_pkWlAQuKEeGVgpgRVT1uXw" event="_pkRsiwuKEeGVgpgRVT1uXw"/>
+            <guardExpression xsi:type="stext:LogicalRelationExpression" xmi:id="_pkWlAguKEeGVgpgRVT1uXw" operator="==">
+              <leftOperand xsi:type="stext:ElementReferenceExpression" xmi:id="_pkWlAwuKEeGVgpgRVT1uXw" value="_pkRsgwuKEeGVgpgRVT1uXw"/>
+              <rightOperand xsi:type="stext:PrimitiveValueExpression" xmi:id="_pkWlBAuKEeGVgpgRVT1uXw" value="true"/>
             </guardExpression>
           </trigger>
         </outgoingTransitions>
-        <scopes xmi:id="_6n0ygArZEeGz3Ki5JUYy2w"/>
+        <scopes xmi:id="_pkRsjguKEeGVgpgRVT1uXw"/>
       </vertices>
       <vertices xsi:type="sgraph:State" xmi:id="_DQwk0An2EeGuZq6TN7cDtg" name="state2" incomingTransitions="_Fp0t8An2EeGuZq6TN7cDtg" expression="entry / raise event2 : 22;">
         <outgoingTransitions xmi:id="_IduY8An2EeGuZq6TN7cDtg" expression="event1" target="_p-Rz9wn1EeGuZq6TN7cDtg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n9VYArZEeGz3Ki5JUYy2w">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n9VYQrZEeGz3Ki5JUYy2w" event="_6n0LcArZEeGz3Ki5JUYy2w"/>
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_pkaPYAuKEeGVgpgRVT1uXw">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_pkaPYQuKEeGVgpgRVT1uXw" event="_pkRsgQuKEeGVgpgRVT1uXw"/>
           </trigger>
         </outgoingTransitions>
-        <scopes xmi:id="_6n7gMArZEeGz3Ki5JUYy2w">
-          <declarations xsi:type="stext:LocalReaction" xmi:id="_6n7gMQrZEeGz3Ki5JUYy2w">
-            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n7gMgrZEeGz3Ki5JUYy2w">
-              <triggers xsi:type="stext:EntryEvent" xmi:id="_6n7gMwrZEeGz3Ki5JUYy2w"/>
+        <scopes xmi:id="_pkYaMAuKEeGVgpgRVT1uXw">
+          <declarations xsi:type="stext:LocalReaction" xmi:id="_pkYaMQuKEeGVgpgRVT1uXw">
+            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_pkYaMguKEeGVgpgRVT1uXw">
+              <triggers xsi:type="stext:EntryEvent" xmi:id="_pkYaMwuKEeGVgpgRVT1uXw"/>
             </trigger>
-            <effect xsi:type="stext:ReactionEffect" xmi:id="_6n7gNArZEeGz3Ki5JUYy2w">
-              <actions xsi:type="stext:EventRaising" xmi:id="_6n7gNQrZEeGz3Ki5JUYy2w" event="_6n0LcQrZEeGz3Ki5JUYy2w">
-                <value xsi:type="stext:PrimitiveValueExpression" xmi:id="_6n7gNgrZEeGz3Ki5JUYy2w" value="22"/>
+            <effect xsi:type="stext:ReactionEffect" xmi:id="_pkYaNAuKEeGVgpgRVT1uXw">
+              <actions xsi:type="stext:EventRaising" xmi:id="_pkYaNQuKEeGVgpgRVT1uXw" event="_pkRsgguKEeGVgpgRVT1uXw">
+                <value xsi:type="stext:PrimitiveValueExpression" xmi:id="_pkYaNguKEeGVgpgRVT1uXw" value="22"/>
               </actions>
             </effect>
           </declarations>
@@ -73,35 +73,35 @@
       </vertices>
       <vertices xsi:type="sgraph:State" xmi:id="_N8IiYAn2EeGuZq6TN7cDtg" name="state3" incomingTransitions="_Wx7eYAn2EeGuZq6TN7cDtg" expression="entry / raise other.event4;">
         <outgoingTransitions xmi:id="_aUmT4An2EeGuZq6TN7cDtg" expression="other.event3" target="_p-Rz9wn1EeGuZq6TN7cDtg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n_xoArZEeGz3Ki5JUYy2w">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n_xoQrZEeGz3Ki5JUYy2w" event="_6n0LdgrZEeGz3Ki5JUYy2w"/>
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_pkgWAAuKEeGVgpgRVT1uXw">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_pkgWAQuKEeGVgpgRVT1uXw" event="_pkRshwuKEeGVgpgRVT1uXw"/>
           </trigger>
         </outgoingTransitions>
-        <scopes xmi:id="_6n-jgArZEeGz3Ki5JUYy2w">
-          <declarations xsi:type="stext:LocalReaction" xmi:id="_6n-jgQrZEeGz3Ki5JUYy2w">
-            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n-jggrZEeGz3Ki5JUYy2w">
-              <triggers xsi:type="stext:EntryEvent" xmi:id="_6n-jgwrZEeGz3Ki5JUYy2w"/>
+        <scopes xmi:id="_pkbdgAuKEeGVgpgRVT1uXw">
+          <declarations xsi:type="stext:LocalReaction" xmi:id="_pkbdgQuKEeGVgpgRVT1uXw">
+            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_pkbdgguKEeGVgpgRVT1uXw">
+              <triggers xsi:type="stext:EntryEvent" xmi:id="_pkbdgwuKEeGVgpgRVT1uXw"/>
             </trigger>
-            <effect xsi:type="stext:ReactionEffect" xmi:id="_6n-jhArZEeGz3Ki5JUYy2w">
-              <actions xsi:type="stext:EventRaising" xmi:id="_6n-jhQrZEeGz3Ki5JUYy2w" event="_6n0LdwrZEeGz3Ki5JUYy2w"/>
+            <effect xsi:type="stext:ReactionEffect" xmi:id="_pkbdhAuKEeGVgpgRVT1uXw">
+              <actions xsi:type="stext:EventRaising" xmi:id="_pkbdhQuKEeGVgpgRVT1uXw" event="_pkRsiAuKEeGVgpgRVT1uXw"/>
             </effect>
           </declarations>
         </scopes>
       </vertices>
       <vertices xsi:type="sgraph:State" xmi:id="_b6-b0An2EeGuZq6TN7cDtg" name="state4" incomingTransitions="_dQp1UAn2EeGuZq6TN7cDtg" expression="entry / raise third.event6 : true;">
         <outgoingTransitions xmi:id="_ezdE0An2EeGuZq6TN7cDtg" expression="third.event5" target="_p-Rz9wn1EeGuZq6TN7cDtg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6oC08ArZEeGz3Ki5JUYy2w">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6oC08QrZEeGz3Ki5JUYy2w" event="_6n0LegrZEeGz3Ki5JUYy2w"/>
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_pkiyQAuKEeGVgpgRVT1uXw">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_pkiyQQuKEeGVgpgRVT1uXw" event="_pkRsiwuKEeGVgpgRVT1uXw"/>
           </trigger>
         </outgoingTransitions>
-        <scopes xmi:id="_6oA_wArZEeGz3Ki5JUYy2w">
-          <declarations xsi:type="stext:LocalReaction" xmi:id="_6oA_wQrZEeGz3Ki5JUYy2w">
-            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6oA_wgrZEeGz3Ki5JUYy2w">
-              <triggers xsi:type="stext:EntryEvent" xmi:id="_6oA_wwrZEeGz3Ki5JUYy2w"/>
+        <scopes xmi:id="_pkhkIAuKEeGVgpgRVT1uXw">
+          <declarations xsi:type="stext:LocalReaction" xmi:id="_pkhkIQuKEeGVgpgRVT1uXw">
+            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_pkhkIguKEeGVgpgRVT1uXw">
+              <triggers xsi:type="stext:EntryEvent" xmi:id="_pkhkIwuKEeGVgpgRVT1uXw"/>
             </trigger>
-            <effect xsi:type="stext:ReactionEffect" xmi:id="_6oA_xArZEeGz3Ki5JUYy2w">
-              <actions xsi:type="stext:EventRaising" xmi:id="_6oA_xQrZEeGz3Ki5JUYy2w" event="_6n0LewrZEeGz3Ki5JUYy2w">
-                <value xsi:type="stext:PrimitiveValueExpression" xmi:id="_6oA_xgrZEeGz3Ki5JUYy2w" value="true"/>
+            <effect xsi:type="stext:ReactionEffect" xmi:id="_pkhkJAuKEeGVgpgRVT1uXw">
+              <actions xsi:type="stext:EventRaising" xmi:id="_pkhkJQuKEeGVgpgRVT1uXw" event="_pkRsjAuKEeGVgpgRVT1uXw">
+                <value xsi:type="stext:PrimitiveValueExpression" xmi:id="_pkhkJguKEeGVgpgRVT1uXw" value="true"/>
               </actions>
             </effect>
           </declarations>
@@ -133,7 +133,7 @@
             <styles xsi:type="notation:ShapeStyle" xmi:id="_p-TCEQn1EeGuZq6TN7cDtg"/>
             <layoutConstraint xsi:type="notation:Location" xmi:id="_p-TCEgn1EeGuZq6TN7cDtg"/>
           </children>
-          <children xsi:type="notation:Compartment" xmi:id="_p-TCEwn1EeGuZq6TN7cDtg" type="StateTextCompartment" collapsed="true">
+          <children xsi:type="notation:Compartment" xmi:id="_p-TCEwn1EeGuZq6TN7cDtg" type="StateTextCompartment">
             <children xsi:type="notation:Shape" xmi:id="_p-TCFAn1EeGuZq6TN7cDtg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
               <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-TCFQn1EeGuZq6TN7cDtg"/>
             </children>
@@ -142,7 +142,7 @@
           <styles xsi:type="notation:ShapeStyle" xmi:id="_p-SbAgn1EeGuZq6TN7cDtg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
           <styles xsi:type="notation:FontStyle" xmi:id="_p-SbAwn1EeGuZq6TN7cDtg"/>
           <styles xsi:type="notation:BooleanValueStyle" xmi:id="_p-TpIQn1EeGuZq6TN7cDtg"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-TpIgn1EeGuZq6TN7cDtg" x="64" y="73"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-TpIgn1EeGuZq6TN7cDtg" x="116" y="63"/>
         </children>
         <children xmi:id="_DQ-AMAn2EeGuZq6TN7cDtg" type="State" element="_DQwk0An2EeGuZq6TN7cDtg">
           <children xsi:type="notation:DecorationNode" xmi:id="_DQ-nQAn2EeGuZq6TN7cDtg" type="StateName">
@@ -158,7 +158,7 @@
           <styles xsi:type="notation:ShapeStyle" xmi:id="_DQ-AMQn2EeGuZq6TN7cDtg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
           <styles xsi:type="notation:FontStyle" xmi:id="_DQ-AMgn2EeGuZq6TN7cDtg"/>
           <styles xsi:type="notation:BooleanValueStyle" xmi:id="_DQ_OUQn2EeGuZq6TN7cDtg"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_DQ-AMwn2EeGuZq6TN7cDtg" x="251" y="28" width="192"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_DQ-AMwn2EeGuZq6TN7cDtg" x="329" y="34" width="192"/>
         </children>
         <children xmi:id="_N8RsUAn2EeGuZq6TN7cDtg" type="State" element="_N8IiYAn2EeGuZq6TN7cDtg">
           <children xsi:type="notation:DecorationNode" xmi:id="_N8STYAn2EeGuZq6TN7cDtg" type="StateName">
@@ -174,7 +174,7 @@
           <styles xsi:type="notation:ShapeStyle" xmi:id="_N8RsUQn2EeGuZq6TN7cDtg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
           <styles xsi:type="notation:FontStyle" xmi:id="_N8RsUgn2EeGuZq6TN7cDtg"/>
           <styles xsi:type="notation:BooleanValueStyle" xmi:id="_N8ThgAn2EeGuZq6TN7cDtg"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_N8RsUwn2EeGuZq6TN7cDtg" x="266" y="153"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_N8RsUwn2EeGuZq6TN7cDtg" x="336" y="183"/>
         </children>
         <children xmi:id="_b7G-sAn2EeGuZq6TN7cDtg" type="State" element="_b6-b0An2EeGuZq6TN7cDtg">
           <children xsi:type="notation:DecorationNode" xmi:id="_b7HlwAn2EeGuZq6TN7cDtg" type="StateName">
@@ -190,7 +190,7 @@
           <styles xsi:type="notation:ShapeStyle" xmi:id="_b7G-sQn2EeGuZq6TN7cDtg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
           <styles xsi:type="notation:FontStyle" xmi:id="_b7G-sgn2EeGuZq6TN7cDtg"/>
           <styles xsi:type="notation:BooleanValueStyle" xmi:id="_b7IM0An2EeGuZq6TN7cDtg"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_b7G-swn2EeGuZq6TN7cDtg" x="54" y="273"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_b7G-swn2EeGuZq6TN7cDtg" x="34" y="268"/>
         </children>
         <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-Ql0Qn1EeGuZq6TN7cDtg"/>
       </children>
@@ -241,7 +241,7 @@
     <edges xmi:id="_Wx-hsAn2EeGuZq6TN7cDtg" type="Transition" element="_Wx7eYAn2EeGuZq6TN7cDtg" source="_p-SbAQn1EeGuZq6TN7cDtg" target="_N8RsUAn2EeGuZq6TN7cDtg">
       <children xsi:type="notation:DecorationNode" xmi:id="_Wx_IwAn2EeGuZq6TN7cDtg" type="TransitionExpression">
         <styles xsi:type="notation:ShapeStyle" xmi:id="_Wx_IwQn2EeGuZq6TN7cDtg"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_Wx_Iwgn2EeGuZq6TN7cDtg" x="47" y="-17"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Wx_Iwgn2EeGuZq6TN7cDtg" x="73" y="-34"/>
       </children>
       <styles xsi:type="notation:ConnectorStyle" xmi:id="_Wx-hsQn2EeGuZq6TN7cDtg" lineColor="4210752"/>
       <styles xsi:type="notation:FontStyle" xmi:id="_Wx-hswn2EeGuZq6TN7cDtg" fontName="Verdana"/>
@@ -262,7 +262,7 @@
     <edges xmi:id="_dQs4oAn2EeGuZq6TN7cDtg" type="Transition" element="_dQp1UAn2EeGuZq6TN7cDtg" source="_p-SbAQn1EeGuZq6TN7cDtg" target="_b7G-sAn2EeGuZq6TN7cDtg">
       <children xsi:type="notation:DecorationNode" xmi:id="_dQtfsQn2EeGuZq6TN7cDtg" type="TransitionExpression">
         <styles xsi:type="notation:ShapeStyle" xmi:id="_dQtfsgn2EeGuZq6TN7cDtg"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_dQtfswn2EeGuZq6TN7cDtg" x="82" y="-83"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_dQtfswn2EeGuZq6TN7cDtg" x="76" y="-83"/>
       </children>
       <styles xsi:type="notation:ConnectorStyle" xmi:id="_dQs4oQn2EeGuZq6TN7cDtg" lineColor="4210752"/>
       <styles xsi:type="notation:FontStyle" xmi:id="_dQtfsAn2EeGuZq6TN7cDtg" fontName="Verdana"/>

+ 131 - 0
TestScenarios/TestModels/Test_Expression.sct

@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/2.0.0" xmlns:stext="http://www.yakindu.org/sct/statechart/SText">
+  <sgraph:Statechart xmi:id="_wXk3MAuIEeGVgpgRVT1uXw" name="Test_Expression" expression="interface:&#xA;in event event1 : integer&#xA;out event event2 : real&#xA;var var1 : integer = 6&#xA;var var2 : integer = -123&#xA;var var3 : real = 19.4&#xA;var var4 : real = -43.3&#xA;">
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_63TeEAuLEeGVgpgRVT1uXw">
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_63TeEQuLEeGVgpgRVT1uXw" name="event1" direction="in" type="integer"/>
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_63TeEguLEeGVgpgRVT1uXw" name="event2" direction="out" type="real"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_63UFIAuLEeGVgpgRVT1uXw" name="var1" type="integer" initialValue="6"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_63UFIQuLEeGVgpgRVT1uXw" name="var2" type="integer"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_63UFIguLEeGVgpgRVT1uXw" name="var3" type="real" initialValue="19.4"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_63UFIwuLEeGVgpgRVT1uXw" name="var4" type="real"/>
+    </scopes>
+    <regions xmi:id="_wXmFUguIEeGVgpgRVT1uXw" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_wXpIoQuIEeGVgpgRVT1uXw">
+        <outgoingTransitions xmi:id="_wXrk4wuIEeGVgpgRVT1uXw" target="_wXqWwAuIEeGVgpgRVT1uXw"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_wXqWwAuIEeGVgpgRVT1uXw" name="state1" incomingTransitions="_wXrk4wuIEeGVgpgRVT1uXw _foN2kAuLEeGVgpgRVT1uXw">
+        <outgoingTransitions xmi:id="_ep-FoAuLEeGVgpgRVT1uXw" expression="event1" target="_dUv_IAuLEeGVgpgRVT1uXw">
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_63UsMAuLEeGVgpgRVT1uXw">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_63UsMQuLEeGVgpgRVT1uXw" event="_63TeEQuLEeGVgpgRVT1uXw"/>
+          </trigger>
+        </outgoingTransitions>
+        <scopes xmi:id="_63UFJAuLEeGVgpgRVT1uXw"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_dUv_IAuLEeGVgpgRVT1uXw" name="state2" incomingTransitions="_ep-FoAuLEeGVgpgRVT1uXw">
+        <outgoingTransitions xmi:id="_foN2kAuLEeGVgpgRVT1uXw" expression="event1" target="_wXqWwAuIEeGVgpgRVT1uXw">
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_63V6UQuLEeGVgpgRVT1uXw">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_63V6UguLEeGVgpgRVT1uXw" event="_63TeEQuLEeGVgpgRVT1uXw"/>
+          </trigger>
+        </outgoingTransitions>
+        <scopes xmi:id="_63V6UAuLEeGVgpgRVT1uXw"/>
+      </vertices>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_wXmFUAuIEeGVgpgRVT1uXw" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_wXk3MAuIEeGVgpgRVT1uXw" measurementUnit="Pixel">
+    <children xmi:id="_wXnTcAuIEeGVgpgRVT1uXw" type="Region" element="_wXmFUguIEeGVgpgRVT1uXw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_wXohkAuIEeGVgpgRVT1uXw" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_wXohkQuIEeGVgpgRVT1uXw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_wXohkguIEeGVgpgRVT1uXw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_wXohkwuIEeGVgpgRVT1uXw" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_wXpIoguIEeGVgpgRVT1uXw" type="Entry" element="_wXpIoQuIEeGVgpgRVT1uXw">
+          <children xmi:id="_wXpvsAuIEeGVgpgRVT1uXw" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_wXpvswuIEeGVgpgRVT1uXw" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_wXpvtAuIEeGVgpgRVT1uXw"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_wXpvtQuIEeGVgpgRVT1uXw"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_wXpvsQuIEeGVgpgRVT1uXw" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wXpvsguIEeGVgpgRVT1uXw"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_wXpIowuIEeGVgpgRVT1uXw" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wXpvtguIEeGVgpgRVT1uXw" x="70" y="20"/>
+        </children>
+        <children xmi:id="_wXqWwguIEeGVgpgRVT1uXw" type="State" element="_wXqWwAuIEeGVgpgRVT1uXw">
+          <children xsi:type="notation:DecorationNode" xmi:id="_wXq90AuIEeGVgpgRVT1uXw" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_wXq90QuIEeGVgpgRVT1uXw"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_wXq90guIEeGVgpgRVT1uXw"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_wXq90wuIEeGVgpgRVT1uXw" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_wXq91AuIEeGVgpgRVT1uXw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wXq91QuIEeGVgpgRVT1uXw"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_wXrk4AuIEeGVgpgRVT1uXw" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_wXqWwwuIEeGVgpgRVT1uXw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_wXqWxAuIEeGVgpgRVT1uXw"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_wXrk4QuIEeGVgpgRVT1uXw"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wXrk4guIEeGVgpgRVT1uXw" x="40" y="80"/>
+        </children>
+        <children xmi:id="_dU-ooAuLEeGVgpgRVT1uXw" type="State" element="_dUv_IAuLEeGVgpgRVT1uXw">
+          <children xsi:type="notation:DecorationNode" xmi:id="_dU_PsAuLEeGVgpgRVT1uXw" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_dU_PsQuLEeGVgpgRVT1uXw"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_dU_PsguLEeGVgpgRVT1uXw"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_dU_PswuLEeGVgpgRVT1uXw" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_dU_PtAuLEeGVgpgRVT1uXw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_dU_PtQuLEeGVgpgRVT1uXw"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_dU_PtguLEeGVgpgRVT1uXw" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_dU-ooQuLEeGVgpgRVT1uXw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_dU-ooguLEeGVgpgRVT1uXw"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_dU_2wAuLEeGVgpgRVT1uXw"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_dU-oowuLEeGVgpgRVT1uXw" x="69" y="228"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wXohlAuIEeGVgpgRVT1uXw"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_wXnTcQuIEeGVgpgRVT1uXw" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wXpIoAuIEeGVgpgRVT1uXw" x="220" y="10" width="400" height="400"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_wXtaEwuIEeGVgpgRVT1uXw" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_wXuBIAuIEeGVgpgRVT1uXw" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_wXuBIQuIEeGVgpgRVT1uXw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_wXuBIguIEeGVgpgRVT1uXw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_wXuBIwuIEeGVgpgRVT1uXw" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wXuBJAuIEeGVgpgRVT1uXw"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wXuBJQuIEeGVgpgRVT1uXw" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_wXmFUQuIEeGVgpgRVT1uXw"/>
+    <edges xmi:id="_wXszAAuIEeGVgpgRVT1uXw" type="Transition" element="_wXrk4wuIEeGVgpgRVT1uXw" source="_wXpIoguIEeGVgpgRVT1uXw" target="_wXqWwguIEeGVgpgRVT1uXw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_wXtaEAuIEeGVgpgRVT1uXw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_wXtaEQuIEeGVgpgRVT1uXw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_wXtaEguIEeGVgpgRVT1uXw" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_wXszAQuIEeGVgpgRVT1uXw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_wXszAwuIEeGVgpgRVT1uXw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_wXszAguIEeGVgpgRVT1uXw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_eqGogAuLEeGVgpgRVT1uXw" type="Transition" element="_ep-FoAuLEeGVgpgRVT1uXw" source="_wXqWwguIEeGVgpgRVT1uXw" target="_dU-ooAuLEeGVgpgRVT1uXw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_eqHPkAuLEeGVgpgRVT1uXw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_eqHPkQuLEeGVgpgRVT1uXw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_eqHPkguLEeGVgpgRVT1uXw" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_eqGogQuLEeGVgpgRVT1uXw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_eqGogwuLEeGVgpgRVT1uXw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_eqGogguLEeGVgpgRVT1uXw" points="[3, 32, -13, -123]$[5, 160, -11, 5]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_erE44AuLEeGVgpgRVT1uXw" id="(0.22448979591836735,0.6031746031746031)"/>
+    </edges>
+    <edges xmi:id="_foWZcAuLEeGVgpgRVT1uXw" type="Transition" element="_foN2kAuLEeGVgpgRVT1uXw" source="_dU-ooAuLEeGVgpgRVT1uXw" target="_wXqWwguIEeGVgpgRVT1uXw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_foXAgAuLEeGVgpgRVT1uXw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_foXAgQuLEeGVgpgRVT1uXw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_foXAgguLEeGVgpgRVT1uXw" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_foWZcQuLEeGVgpgRVT1uXw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_foWZcwuLEeGVgpgRVT1uXw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_foWZcguLEeGVgpgRVT1uXw" points="[-3, -31, 15, 143]$[-17, -179, 1, -5]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_fpTbsAuLEeGVgpgRVT1uXw" id="(0.7142857142857143,0.07936507936507936)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 5 - 0
TestScenarios/test-c/InterfaceTest/CMakeLists.txt

@@ -7,3 +7,8 @@ target_link_libraries(InterfaceTestStatemachineMain InterfaceTestStatemachine)
 
 add_test(test_default_interface_good InterfaceTestStatemachineMain "1")
 add_test(test_default_interface_bad InterfaceTestStatemachineMain "2")
+add_test(test_other_interface_good InterfaceTestStatemachineMain "3")
+add_test(test_other_interface_bad InterfaceTestStatemachineMain "4")
+add_test(test_third_interface_good InterfaceTestStatemachineMain "5")
+add_test(test_third_interface_bad InterfaceTestStatemachineMain "6")
+add_test(test_namespaces InterfaceTestStatemachineMain "7")

+ 290 - 31
TestScenarios/test-c/InterfaceTest/main.c

@@ -41,14 +41,14 @@ int test_default_interface_good()
 
 	integer retval;
 
+	/*@Desc: setup initial statemachine */
 	setupStatemachine(&machine, &dummyTimer, &eventPool);
 
-
 	/*@Desc: check the initial state */
 	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
 	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
 
-	/*@Desc: raise event1 */
+	/*@Desc: raise event1 on default interface */
 	interfaceTest_if_raise_event1(&machine.interface);
 
 	/*@DescInfo: Initial value for the guard is 2.3, which is bigger than 0, so the transition should be taken */
@@ -66,7 +66,7 @@ int test_default_interface_good()
 	/*@Desc: check if the return value of event2 is set to 22 */
 	assert( retval == 22 );
 
-	/*@Desc: raise event1 */
+	/*@Desc: raise event1 on default interface */
 	interfaceTest_if_raise_event1(&machine.interface);
 
 	/*@Desc: run an explicit cycle */
@@ -79,6 +79,7 @@ int test_default_interface_good()
 	/*@Desc: check whether event2 is not raised any more */
 	assert( interfaceTest_if_is_event2_raised(&machine.interface, &retval) == bool_false );
 
+	/*@Desc: teardown statemachine */
 	teardownStatemachine(&machine, &dummyTimer, &eventPool);
 
 	return 0;
@@ -93,6 +94,7 @@ int test_default_interface_bad()
 
 	integer retval = 55;
 
+	/*@Desc: setup initial statemachine */
 	setupStatemachine(&machine, &dummyTimer, &eventPool);
 
 	/*@Desc: check the initial state */
@@ -102,7 +104,7 @@ int test_default_interface_bad()
 	/*@Desc: set variable var2 to -12.6 */
 	interfaceTest_if_set_var2(&machine.interface, -12.6);
 
-	/*@Desc: raise event1 */
+	/*@Desc: raise event1 on default interface */
 	interfaceTest_if_raise_event1(&machine.interface);
 
 	/*@DescInfo: Transition should not be taken, as guard with var2 is less than 0 */
@@ -110,7 +112,7 @@ int test_default_interface_bad()
 	/*@Desc: run an explicit cycle */
 	interfaceTestStatemachine_runCycle(&machine);
 
-	/*@Desc: check whether the state is set to "State2" */
+	/*@Desc: check whether the state is still set to "State1" */
 	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
 	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
 
@@ -120,7 +122,7 @@ int test_default_interface_bad()
 	/*@Desc: check if the original retval has not been changed */
 	assert( retval == 55 );
 
-	/*@Desc: raise event1 */
+	/*@Desc: raise event1 on default interface */
 	interfaceTest_if_raise_event1(&machine.interface);
 
 	/*@Desc: set variable var2 to 213.55 (>0) */
@@ -136,77 +138,334 @@ int test_default_interface_bad()
 	/*@Desc: check whether event2 is raised */
 	assert( interfaceTest_if_is_event2_raised(&machine.interface, &retval) == bool_true );
 
+	/*@Desc: teardown statemachine */
 	teardownStatemachine(&machine, &dummyTimer, &eventPool);
 
 	return 0;
 }
 
-
-int main(int argc, char** argv)
+/*@Test: test_other_interface good case, guard matches */
+int test_other_interface_good()
 {
-	if (argc != 2)
-		return -1;
-
-	switch (atoi(argv[1])) {
-	case 1:
-		return test_default_interface_good();
-	case 2:
-		return test_default_interface_bad();
-	}
-
-	return 0;
-
-	/*
 	InterfaceTestStatemachine machine;
 	Timer dummyTimer;
 	EventPool eventPool;
 
-	integer retval1;
-	boolean retval2;
-//	real retval3;
+	/*@Desc: setup initial statemachine */
+	setupStatemachine(&machine, &dummyTimer, &eventPool);
 
+	/*@Desc: check the initial state */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
 
+	/*@Desc: raise event3 on other interface */
+	interfaceTest_if_other_raise_event3(&machine.interfaceOther);
+
+	/*@DescInfo: Initial value for the guard is var3 == 1, which is the initial value, so the transition should be taken */
 
+	/*@Desc: run an explicit cycle */
 	interfaceTestStatemachine_runCycle(&machine);
 
+	/*@Desc: check whether the state is set to "State3" */
 	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
 	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State3") == 0);
+
+	/*@Desc: check if the entry event4 is raised */
 	assert( interfaceTest_if_other_is_event4_raised(&machine.interfaceOther) == bool_true );
 
+	/*@Desc: raise event3 on other interface */
 	interfaceTest_if_other_raise_event3(&machine.interfaceOther);
 
-	assert( interfaceTestStatemachine_eventWaiting(&machine) == bool_true );
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: check whether state has changed back to "State1" */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: check whether event4 is not raised any more */
+	assert( interfaceTest_if_other_is_event4_raised(&machine.interfaceOther) == bool_false );
+
+	/*@Desc: teardown statemachine */
+	teardownStatemachine(&machine, &dummyTimer, &eventPool);
+
+	return 0;
+}
+
+
+/*@Test: test_default_interface good case, guard matches */
+int test_other_interface_bad()
+{
+	InterfaceTestStatemachine machine;
+	Timer dummyTimer;
+	EventPool eventPool;
+
+	/*@Desc: setup initial statemachine */
+	setupStatemachine(&machine, &dummyTimer, &eventPool);
+
+	/*@Desc: check the initial state */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: set variable var3 to 2 in default interface */
+	interfaceTest_if_set_var3(&machine.interface, 2);
 
+	/*@Desc: raise event1 on other interface */
+	interfaceTest_if_other_raise_event3(&machine.interfaceOther);
+
+	/*@DescInfo: Transition should not be taken, as guard with var3 is not equal 1 */
+
+	/*@Desc: run an explicit cycle */
 	interfaceTestStatemachine_runCycle(&machine);
 
+	/*@Desc: check whether the state is still set to "State1" */
 	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
 	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: check if the entry event2 is NOT raised */
 	assert( interfaceTest_if_other_is_event4_raised(&machine.interfaceOther) == bool_false );
 
+	/*@Desc: raise event1 on other interface */
+	interfaceTest_if_other_raise_event3(&machine.interfaceOther);
+
+	/*@Desc: set variable var3 to 1 */
+	interfaceTest_if_set_var3(&machine.interface, 1);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: check whether state has changed back to "State2" */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State3") == 0);
+
+	/*@Desc: check whether event2 is raised */
+	assert( interfaceTest_if_other_is_event4_raised(&machine.interfaceOther) == bool_true );
+
+	/*@Desc: teardown statemachine */
+	teardownStatemachine(&machine, &dummyTimer, &eventPool);
+
+	return 0;
+}
+
+/*@Test: test_third_interface good case, guard matches */
+int test_third_interface_good()
+{
+	InterfaceTestStatemachine machine;
+	Timer dummyTimer;
+	EventPool eventPool;
+	boolean retVal = bool_false;
+
+	/*@Desc: setup initial statemachine */
+	setupStatemachine(&machine, &dummyTimer, &eventPool);
 
+	/*@Desc: check the initial state */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: raise event5 on other interface */
 	interfaceTest_if_third_raise_event5(&machine.interfaceThird);
+
+	/*@Desc: set var1 to true */
 	interfaceTest_if_set_var1(&machine.interface, bool_true);
 
+	/*@Desc: run an explicit cycle */
 	interfaceTestStatemachine_runCycle(&machine);
 
+	/*@Desc: check whether the state is set to "State4" */
 	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
 	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State4") == 0);
-	assert( interfaceTest_if_third_is_event6_raised(&machine.interfaceThird, &retval2) == bool_true );
 
+	/*@Desc: check if the entry event4 is raised */
+	assert( interfaceTest_if_third_is_event6_raised(&machine.interfaceThird, &retVal) == bool_true );
+
+	/*@Desc: check whether returned event6 value is set to true */
+	assert( retVal == bool_true );
+
+	/*@Desc: raise event5 on other interface */
+	interfaceTest_if_third_raise_event5(&machine.interfaceThird);
+
+	/*@Desc: set retValue to false */
+	retVal = bool_false;
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: check whether state has changed back to "State1" */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: check whether event4 is not raised any more */
+	assert( interfaceTest_if_third_is_event6_raised(&machine.interfaceThird, &retVal) == bool_false );
+
+	/*@Desc: check whether returned event6 value is set to false */
+	assert( retVal == bool_false );
+
+	/*@Desc: teardown statemachine */
+	teardownStatemachine(&machine, &dummyTimer, &eventPool);
+
+	return 0;
+}
+
+/*@Test: test_default_interface good case, guard matches */
+int test_third_interface_bad()
+{
+	InterfaceTestStatemachine machine;
+	Timer dummyTimer;
+	EventPool eventPool;
+
+	boolean retVal = bool_false;
+
+	/*@Desc: setup initial statemachine */
+	setupStatemachine(&machine, &dummyTimer, &eventPool);
 
+	/*@Desc: check the initial state */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: set variable var1 to false in default interface */
+	interfaceTest_if_set_var1(&machine.interface, bool_false);
+
+	/*@Desc: raise event1 on third interface */
 	interfaceTest_if_third_raise_event5(&machine.interfaceThird);
 
+	/*@DescInfo: Transition should not be taken, as guard with var3 is not equal 1 */
+
+	/*@Desc: run an explicit cycle */
 	interfaceTestStatemachine_runCycle(&machine);
 
+	/*@Desc: check whether the state is still set to "State1" */
 	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
 	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
 
+	/*@Desc: check if the entry event2 is NOT raised */
+	assert( interfaceTest_if_third_is_event6_raised(&machine.interfaceThird, &retVal) == bool_false );
+
+	/*@Desc: raise event5 on third interface */
+	interfaceTest_if_third_raise_event5(&machine.interfaceThird);
+
+	/*@Desc: set variable var1 to true on default interface */
+	interfaceTest_if_set_var1(&machine.interface, bool_true);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: check whether state has changed back to "State2" */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State4") == 0);
+
+	/*@Desc: check whether event2 is raised */
+	assert( interfaceTest_if_third_is_event6_raised(&machine.interfaceThird, &retVal) == bool_true );
+
+	/*@Desc: check whether returned event6 value is set to true */
+	assert( retVal == bool_true );
+
+	/*@Desc: teardown statemachine */
+	teardownStatemachine(&machine, &dummyTimer, &eventPool);
+
+	return 0;
+}
+
+int test_namespaces()
+{
+	InterfaceTestStatemachine machine;
+	Timer dummyTimer;
+	EventPool eventPool;
+
+	/*@Desc: setup initial statemachine */
+	setupStatemachine(&machine, &dummyTimer, &eventPool);
+
+	/*@Desc: check the initial state */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
 
-	interfaceTestStatemachine_exit(&machine);
-	timer_exit(&dummyTimer);
-	eventPool_exit(&eventPool);
+	/*@Desc: check correct initialization of variable v1 */
+	assert( interfaceTest_if_other_get_v1(&machine.interfaceOther) == 5 );
+
+	/*@Desc: set third interface variable v1 to 52.83 */
+	interfaceTest_if_third_set_v1( &machine.interfaceThird, 52.83 );
+
+	/*@Desc: set other interface variable to 8877 */
+	interfaceTest_if_other_set_v1( &machine.interfaceOther, 8877 );
+
+	/*@DescInfo: toogle through all states */
+
+	/*@Desc: raise event1 on default event */
+	interfaceTest_if_raise_event1( &machine.interface);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: raise event1 on default event */
+	interfaceTest_if_raise_event1( &machine.interface);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: raise event3 on default event */
+	interfaceTest_if_other_raise_event3( &machine.interfaceOther);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: raise event3 on default event */
+	interfaceTest_if_other_raise_event3( &machine.interfaceOther);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: set var1 of default interface to true */
+	interfaceTest_if_set_var1( &machine.interface, bool_true);
+
+	/*@Desc: raise event5 on default event */
+	interfaceTest_if_third_raise_event5( &machine.interfaceThird);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: raise event5 on default event */
+	interfaceTest_if_third_raise_event5( &machine.interfaceThird);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	printf ("%f", interfaceTest_if_third_get_v1(&machine.interfaceThird));
+
+	/*@Desc: check if v1 of third interface is still 52.83 */
+	assert( interfaceTest_if_third_get_v1(&machine.interfaceThird) > 52.82 &&
+			interfaceTest_if_third_get_v1(&machine.interfaceThird) < 52.84 );
+
+	/*@Desc: check if v1 of other interface is still 8877 */
+	assert( interfaceTest_if_other_get_v1(&machine.interfaceOther) == 8877 );
+
+	/*@Desc: teardown statemachine */
+	teardownStatemachine(&machine, &dummyTimer, &eventPool);
+
+	return 0;
+}
+
+int main(int argc, char** argv)
+{
+	if (argc != 2)
+		return -1;
+
+	switch (atoi(argv[1])) {
+	case 1:
+		return test_default_interface_good();
+	case 2:
+		return test_default_interface_bad();
+	case 3:
+		return test_other_interface_good();
+	case 4:
+		return test_other_interface_bad();
+	case 5:
+		return test_third_interface_good();
+	case 6:
+		return test_third_interface_bad();
+	case 7:
+		return test_namespaces();
+	}
+
+	return 0;
 
-	return(0);
-	*/
 }