Просмотр исходного кода

Add 'Syntactic' big step maximality tests

Joeri Exelmans 5 лет назад
Родитель
Сommit
bc16f53e48

+ 80 - 0
test/test_files/semantics/big_step_maximality/test_flat_syntactic.svg

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="114pt" height="305pt"
+ viewBox="0.00 0.00 114.00 305.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 301)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-301 110,-301 110,4 -4,4"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="53" cy="-291.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _a -->
+<g id="node5" class="node">
+<title>_a</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="81,-258 25,-258 25,-222 81,-222 81,-258"/>
+<text text-anchor="start" x="49.6646" y="-236.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M37.3333,-223C37.3333,-223 68.6667,-223 68.6667,-223 74.3333,-223 80,-228.6667 80,-234.3333 80,-234.3333 80,-245.6667 80,-245.6667 80,-251.3333 74.3333,-257 68.6667,-257 68.6667,-257 37.3333,-257 37.3333,-257 31.6667,-257 26,-251.3333 26,-245.6667 26,-245.6667 26,-234.3333 26,-234.3333 26,-228.6667 31.6667,-223 37.3333,-223"/>
+</g>
+<!-- __initial&#45;&gt;_a -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_a</title>
+<path fill="none" stroke="#000000" d="M53,-285.9886C53,-281.6293 53,-275.1793 53,-268.4801"/>
+<polygon fill="#000000" stroke="#000000" points="56.5001,-268.0122 53,-258.0122 49.5001,-268.0122 56.5001,-268.0122"/>
+<text text-anchor="middle" x="54.3895" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _d -->
+<g id="node2" class="node">
+<title>_d</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="106,-46 0,-46 0,0 106,0 106,-46"/>
+<text text-anchor="start" x="42.995" y="-29.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">d ✓</text>
+<text text-anchor="start" x="5.5022" y="-9.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">onentry/ ^out.in_d</text>
+<polygon fill="#000000" stroke="#000000" points="0,-23 0,-23 106,-23 106,-23 0,-23"/>
+<path fill="none" stroke="#000000" stroke-width="2" d="M13,-1C13,-1 93,-1 93,-1 99,-1 105,-7 105,-13 105,-13 105,-33 105,-33 105,-39 99,-45 93,-45 93,-45 13,-45 13,-45 7,-45 1,-39 1,-33 1,-33 1,-13 1,-13 1,-7 7,-1 13,-1"/>
+</g>
+<!-- _c -->
+<g id="node3" class="node">
+<title>_c</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="106,-120 0,-120 0,-74 106,-74 106,-120"/>
+<text text-anchor="start" x="50" y="-103.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
+<text text-anchor="start" x="5.8376" y="-83.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">onentry/ ^out.in_c</text>
+<polygon fill="#000000" stroke="#000000" points="0,-97 0,-97 106,-97 106,-97 0,-97"/>
+<path fill="none" stroke="#000000" stroke-width="2" d="M13,-75C13,-75 93,-75 93,-75 99,-75 105,-81 105,-87 105,-87 105,-107 105,-107 105,-113 99,-119 93,-119 93,-119 13,-119 13,-119 7,-119 1,-113 1,-107 1,-107 1,-87 1,-87 1,-81 7,-75 13,-75"/>
+</g>
+<!-- _c&#45;&gt;_d -->
+<g id="edge2" class="edge">
+<title>_c&#45;&gt;_d</title>
+<path fill="none" stroke="#000000" d="M53,-73.9916C53,-68.476 53,-62.474 53,-56.5881"/>
+<polygon fill="#000000" stroke="#000000" points="56.5001,-56.249 53,-46.2491 49.5001,-56.2491 56.5001,-56.249"/>
+<text text-anchor="start" x="53" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+<!-- _b -->
+<g id="node4" class="node">
+<title>_b</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="106,-194 0,-194 0,-148 106,-148 106,-194"/>
+<text text-anchor="start" x="42.995" y="-177.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b ✓</text>
+<text text-anchor="start" x="5.5022" y="-157.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">onentry/ ^out.in_b</text>
+<polygon fill="#000000" stroke="#000000" points="0,-171 0,-171 106,-171 106,-171 0,-171"/>
+<path fill="none" stroke="#000000" stroke-width="2" d="M13,-149C13,-149 93,-149 93,-149 99,-149 105,-155 105,-161 105,-161 105,-181 105,-181 105,-187 99,-193 93,-193 93,-193 13,-193 13,-193 7,-193 1,-187 1,-181 1,-181 1,-161 1,-161 1,-155 7,-149 13,-149"/>
+</g>
+<!-- _b&#45;&gt;_c -->
+<g id="edge3" class="edge">
+<title>_b&#45;&gt;_c</title>
+<path fill="none" stroke="#000000" d="M53,-147.9916C53,-142.476 53,-136.474 53,-130.5881"/>
+<polygon fill="#000000" stroke="#000000" points="56.5001,-130.249 53,-120.2491 49.5001,-130.2491 56.5001,-130.249"/>
+<text text-anchor="start" x="53" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+<!-- _a&#45;&gt;_b -->
+<g id="edge4" class="edge">
+<title>_a&#45;&gt;_b</title>
+<path fill="none" stroke="#000000" d="M53,-221.8711C53,-216.4482 53,-210.3229 53,-204.2494"/>
+<polygon fill="#000000" stroke="#000000" points="56.5001,-204.21 53,-194.21 49.5001,-204.21 56.5001,-204.21"/>
+<text text-anchor="start" x="53" y="-205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 48 - 0
test/test_files/semantics/big_step_maximality/test_flat_syntactic.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" ?>
+<test>
+  <statechart>
+    <semantics
+      big_step_maximality="syntactic"
+      input_event_lifeline="whole"/>
+    <datamodel/>
+    <tree>
+      <state initial="a">
+        <state id="a">
+          <transition port="in" event="e" target="/b"/>
+        </state>
+        <state id="b" stable="true">
+          <onentry>
+            <raise event="in_b" port="out"/>
+          </onentry>
+          <transition port="in" event="e" target="/c"/>
+        </state>
+        <state id="c">
+          <onentry>
+            <raise event="in_c" port="out"/>
+          </onentry>
+          <transition port="in" event="e" target="/d"/>
+        </state>
+        <state id="d" stable="true">
+          <onentry>
+            <raise event="in_d" port="out"/>
+          </onentry>
+        </state>
+      </state>
+    </tree>
+  </statechart>
+
+  <input>
+    <input_event port="in" name="e" time="0 d"/>
+    <input_event port="in" name="e" time="0 d"/>
+  </input>
+
+  <output>
+    <big_step>
+      <event port="out" name="in_b"/>
+    </big_step>
+    <big_step>
+      <event port="out" name="in_c"/>
+      <event port="out" name="in_d"/>
+    </big_step>
+  </output>
+</test>

+ 177 - 0
test/test_files/semantics/big_step_maximality/test_ortho_syntactic.svg

@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="300pt" height="660pt"
+ viewBox="0.00 0.00 300.00 660.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 656)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-656 296,-656 296,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__p</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 272,-8 272,-8 278,-8 284,-14 284,-20 284,-20 284,-601 284,-601 284,-607 278,-613 272,-613 272,-613 20,-613 20,-613 14,-613 8,-607 8,-601 8,-601 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="142.6646" y="-594.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__p_ortho1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="154,-16 154,-575 276,-575 276,-16 154,-16"/>
+<text text-anchor="start" x="197.9936" y="-556.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ortho1</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__p_ortho0</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-575 146,-575 146,-16 24,-16"/>
+<text text-anchor="start" x="67.9936" y="-556.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">ortho0</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-646.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p -->
+<!-- __initial&#45;&gt;_p -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_p</title>
+<path fill="none" stroke="#000000" d="M16,-640.9533C16,-636.7779 16,-630.5043 16,-623.0332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-622.9971 16,-612.9971 12.5001,-622.9972 19.5001,-622.9971"/>
+<text text-anchor="middle" x="17.3895" y="-624" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _p_ortho1 -->
+<!-- _p_ortho1_initial -->
+<g id="node4" class="node">
+<title>_p_ortho1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="215" cy="-531.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_ortho1_e -->
+<g id="node8" class="node">
+<title>_p_ortho1_e</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="243,-444 187,-444 187,-408 243,-408 243,-444"/>
+<text text-anchor="start" x="211.6646" y="-422.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">e</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M199.3333,-409C199.3333,-409 230.6667,-409 230.6667,-409 236.3333,-409 242,-414.6667 242,-420.3333 242,-420.3333 242,-431.6667 242,-431.6667 242,-437.3333 236.3333,-443 230.6667,-443 230.6667,-443 199.3333,-443 199.3333,-443 193.6667,-443 188,-437.3333 188,-431.6667 188,-431.6667 188,-420.3333 188,-420.3333 188,-414.6667 193.6667,-409 199.3333,-409"/>
+</g>
+<!-- _p_ortho1_initial&#45;&gt;_p_ortho1_e -->
+<g id="edge2" class="edge">
+<title>_p_ortho1_initial&#45;&gt;_p_ortho1_e</title>
+<path fill="none" stroke="#000000" d="M215,-525.8288C215,-521.1736 215,-514.4097 215,-508.5 215,-508.5 215,-508.5 215,-461.5 215,-459.1079 215,-456.6252 215,-454.1342"/>
+<polygon fill="#000000" stroke="#000000" points="218.5001,-454.0597 215,-444.0598 211.5001,-454.0598 218.5001,-454.0597"/>
+<text text-anchor="middle" x="216.3895" y="-482" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _p_ortho1_h -->
+<g id="node5" class="node">
+<title>_p_ortho1_h</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="268,-70 162,-70 162,-24 268,-24 268,-70"/>
+<text text-anchor="start" x="204.995" y="-53.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">h ✓</text>
+<text text-anchor="start" x="167.5022" y="-33.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">onentry/ ^out.in_d</text>
+<polygon fill="#000000" stroke="#000000" points="162,-47 162,-47 268,-47 268,-47 162,-47"/>
+<path fill="none" stroke="#000000" stroke-width="2" d="M175,-25C175,-25 255,-25 255,-25 261,-25 267,-31 267,-37 267,-37 267,-57 267,-57 267,-63 261,-69 255,-69 255,-69 175,-69 175,-69 169,-69 163,-63 163,-57 163,-57 163,-37 163,-37 163,-31 169,-25 175,-25"/>
+</g>
+<!-- _p_ortho1_g -->
+<g id="node6" class="node">
+<title>_p_ortho1_g</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="268,-198 162,-198 162,-152 268,-152 268,-198"/>
+<text text-anchor="start" x="204.995" y="-181.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">g ✓</text>
+<text text-anchor="start" x="167.8376" y="-161.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">onentry/ ^out.in_c</text>
+<polygon fill="#000000" stroke="#000000" points="162,-175 162,-175 268,-175 268,-175 162,-175"/>
+<path fill="none" stroke="#000000" stroke-width="2" d="M175,-153C175,-153 255,-153 255,-153 261,-153 267,-159 267,-165 267,-165 267,-185 267,-185 267,-191 261,-197 255,-197 255,-197 175,-197 175,-197 169,-197 163,-191 163,-185 163,-185 163,-165 163,-165 163,-159 169,-153 175,-153"/>
+</g>
+<!-- _p_ortho1_g&#45;&gt;_p_ortho1_h -->
+<g id="edge3" class="edge">
+<title>_p_ortho1_g&#45;&gt;_p_ortho1_h</title>
+<path fill="none" stroke="#000000" d="M215,-151.8694C215,-146.1895 215,-140.125 215,-134.5 215,-134.5 215,-134.5 215,-87.5 215,-85.127 215,-82.6757 215,-80.2081"/>
+<polygon fill="#000000" stroke="#000000" points="218.5001,-80.1306 215,-70.1306 211.5001,-80.1306 218.5001,-80.1306"/>
+<text text-anchor="start" x="215" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+<!-- _p_ortho1_f -->
+<g id="node7" class="node">
+<title>_p_ortho1_f</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="268,-326 162,-326 162,-280 268,-280 268,-326"/>
+<text text-anchor="start" x="213.3326" y="-309.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">f</text>
+<text text-anchor="start" x="167.5022" y="-289.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">onentry/ ^out.in_b</text>
+<polygon fill="#000000" stroke="#000000" points="162,-303 162,-303 268,-303 268,-303 162,-303"/>
+<path fill="none" stroke="#000000" stroke-width="2" d="M175,-281C175,-281 255,-281 255,-281 261,-281 267,-287 267,-293 267,-293 267,-313 267,-313 267,-319 261,-325 255,-325 255,-325 175,-325 175,-325 169,-325 163,-319 163,-313 163,-313 163,-293 163,-293 163,-287 169,-281 175,-281"/>
+</g>
+<!-- _p_ortho1_f&#45;&gt;_p_ortho1_g -->
+<g id="edge4" class="edge">
+<title>_p_ortho1_f&#45;&gt;_p_ortho1_g</title>
+<path fill="none" stroke="#000000" d="M215,-279.8694C215,-274.1895 215,-268.125 215,-262.5 215,-262.5 215,-262.5 215,-215.5 215,-213.127 215,-210.6757 215,-208.2081"/>
+<polygon fill="#000000" stroke="#000000" points="218.5001,-208.1306 215,-198.1306 211.5001,-208.1306 218.5001,-208.1306"/>
+<text text-anchor="start" x="215" y="-236" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+<!-- _p_ortho1_e&#45;&gt;_p_ortho1_f -->
+<g id="edge5" class="edge">
+<title>_p_ortho1_e&#45;&gt;_p_ortho1_f</title>
+<path fill="none" stroke="#000000" d="M215,-407.9402C215,-402.3497 215,-396.1701 215,-390.5 215,-390.5 215,-390.5 215,-343.5 215,-341.127 215,-338.6757 215,-336.2081"/>
+<polygon fill="#000000" stroke="#000000" points="218.5001,-336.1306 215,-326.1306 211.5001,-336.1306 218.5001,-336.1306"/>
+<text text-anchor="start" x="215" y="-364" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+<!-- _p_ortho0 -->
+<!-- _p_ortho0_initial -->
+<g id="node10" class="node">
+<title>_p_ortho0_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="85" cy="-531.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_ortho0_a -->
+<g id="node14" class="node">
+<title>_p_ortho0_a</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="113,-444 57,-444 57,-408 113,-408 113,-444"/>
+<text text-anchor="start" x="81.6646" y="-422.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M69.3333,-409C69.3333,-409 100.6667,-409 100.6667,-409 106.3333,-409 112,-414.6667 112,-420.3333 112,-420.3333 112,-431.6667 112,-431.6667 112,-437.3333 106.3333,-443 100.6667,-443 100.6667,-443 69.3333,-443 69.3333,-443 63.6667,-443 58,-437.3333 58,-431.6667 58,-431.6667 58,-420.3333 58,-420.3333 58,-414.6667 63.6667,-409 69.3333,-409"/>
+</g>
+<!-- _p_ortho0_initial&#45;&gt;_p_ortho0_a -->
+<g id="edge6" class="edge">
+<title>_p_ortho0_initial&#45;&gt;_p_ortho0_a</title>
+<path fill="none" stroke="#000000" d="M85,-525.8288C85,-521.1736 85,-514.4097 85,-508.5 85,-508.5 85,-508.5 85,-461.5 85,-459.1079 85,-456.6252 85,-454.1342"/>
+<polygon fill="#000000" stroke="#000000" points="88.5001,-454.0597 85,-444.0598 81.5001,-454.0598 88.5001,-454.0597"/>
+<text text-anchor="middle" x="86.3895" y="-482" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _p_ortho0_d -->
+<g id="node11" class="node">
+<title>_p_ortho0_d</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="138,-70 32,-70 32,-24 138,-24 138,-70"/>
+<text text-anchor="start" x="74.995" y="-53.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">d ✓</text>
+<text text-anchor="start" x="37.5022" y="-33.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">onentry/ ^out.in_d</text>
+<polygon fill="#000000" stroke="#000000" points="32,-47 32,-47 138,-47 138,-47 32,-47"/>
+<path fill="none" stroke="#000000" stroke-width="2" d="M45,-25C45,-25 125,-25 125,-25 131,-25 137,-31 137,-37 137,-37 137,-57 137,-57 137,-63 131,-69 125,-69 125,-69 45,-69 45,-69 39,-69 33,-63 33,-57 33,-57 33,-37 33,-37 33,-31 39,-25 45,-25"/>
+</g>
+<!-- _p_ortho0_c -->
+<g id="node12" class="node">
+<title>_p_ortho0_c</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="138,-198 32,-198 32,-152 138,-152 138,-198"/>
+<text text-anchor="start" x="82" y="-181.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
+<text text-anchor="start" x="37.8376" y="-161.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">onentry/ ^out.in_c</text>
+<polygon fill="#000000" stroke="#000000" points="32,-175 32,-175 138,-175 138,-175 32,-175"/>
+<path fill="none" stroke="#000000" stroke-width="2" d="M45,-153C45,-153 125,-153 125,-153 131,-153 137,-159 137,-165 137,-165 137,-185 137,-185 137,-191 131,-197 125,-197 125,-197 45,-197 45,-197 39,-197 33,-191 33,-185 33,-185 33,-165 33,-165 33,-159 39,-153 45,-153"/>
+</g>
+<!-- _p_ortho0_c&#45;&gt;_p_ortho0_d -->
+<g id="edge7" class="edge">
+<title>_p_ortho0_c&#45;&gt;_p_ortho0_d</title>
+<path fill="none" stroke="#000000" d="M85,-151.8694C85,-146.1895 85,-140.125 85,-134.5 85,-134.5 85,-134.5 85,-87.5 85,-85.127 85,-82.6757 85,-80.2081"/>
+<polygon fill="#000000" stroke="#000000" points="88.5001,-80.1306 85,-70.1306 81.5001,-80.1306 88.5001,-80.1306"/>
+<text text-anchor="start" x="85" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+<!-- _p_ortho0_b -->
+<g id="node13" class="node">
+<title>_p_ortho0_b</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="138,-326 32,-326 32,-280 138,-280 138,-326"/>
+<text text-anchor="start" x="74.995" y="-309.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b ✓</text>
+<text text-anchor="start" x="37.5022" y="-289.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">onentry/ ^out.in_b</text>
+<polygon fill="#000000" stroke="#000000" points="32,-303 32,-303 138,-303 138,-303 32,-303"/>
+<path fill="none" stroke="#000000" stroke-width="2" d="M45,-281C45,-281 125,-281 125,-281 131,-281 137,-287 137,-293 137,-293 137,-313 137,-313 137,-319 131,-325 125,-325 125,-325 45,-325 45,-325 39,-325 33,-319 33,-313 33,-313 33,-293 33,-293 33,-287 39,-281 45,-281"/>
+</g>
+<!-- _p_ortho0_b&#45;&gt;_p_ortho0_c -->
+<g id="edge8" class="edge">
+<title>_p_ortho0_b&#45;&gt;_p_ortho0_c</title>
+<path fill="none" stroke="#000000" d="M85,-279.8694C85,-274.1895 85,-268.125 85,-262.5 85,-262.5 85,-262.5 85,-215.5 85,-213.127 85,-210.6757 85,-208.2081"/>
+<polygon fill="#000000" stroke="#000000" points="88.5001,-208.1306 85,-198.1306 81.5001,-208.1306 88.5001,-208.1306"/>
+<text text-anchor="start" x="85" y="-236" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+<!-- _p_ortho0_a&#45;&gt;_p_ortho0_b -->
+<g id="edge9" class="edge">
+<title>_p_ortho0_a&#45;&gt;_p_ortho0_b</title>
+<path fill="none" stroke="#000000" d="M85,-407.9402C85,-402.3497 85,-396.1701 85,-390.5 85,-390.5 85,-390.5 85,-343.5 85,-341.127 85,-338.6757 85,-336.2081"/>
+<polygon fill="#000000" stroke="#000000" points="88.5001,-336.1306 85,-326.1306 81.5001,-336.1306 88.5001,-336.1306"/>
+<text text-anchor="start" x="85" y="-364" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 78 - 0
test/test_files/semantics/big_step_maximality/test_ortho_syntactic.xml

@@ -0,0 +1,78 @@
+<?xml version="1.0" ?>
+<test>
+  <statechart>
+    <semantics
+      big_step_maximality="syntactic"
+      input_event_lifeline="whole"/>
+    <datamodel/>
+    <tree>
+      <state>
+        <parallel id="p">
+          <state id="ortho0" initial="a">
+            <state id="a">
+              <transition port="in" event="e" target="../b"/>
+            </state>
+            <state id="b" stable="true">
+              <onentry>
+                <raise event="in_b" port="out"/>
+              </onentry>
+              <transition port="in" event="e" target="../c"/>
+            </state>
+            <state id="c">
+              <onentry>
+                <raise event="in_c" port="out"/>
+              </onentry>
+              <transition port="in" event="e" target="../d"/>
+            </state>
+            <state id="d" stable="true">
+              <onentry>
+                <raise event="in_d" port="out"/>
+              </onentry>
+            </state>
+          </state>
+
+          <state id="ortho1" initial="e">
+            <state id="e">
+              <transition port="in" event="e" target="../f"/>
+            </state>
+            <state id="f">
+              <onentry>
+                <raise event="in_f" port="out"/>
+              </onentry>
+              <transition port="in" event="e" target="../g"/>
+            </state>
+            <state id="g" stable="true">
+              <onentry>
+                <raise event="in_g" port="out"/>
+              </onentry>
+              <transition port="in" event="e" target="../h"/>
+            </state>
+            <state id="h" stable="true">
+              <onentry>
+                <raise event="in_h" port="out"/>
+              </onentry>
+            </state>
+          </state>
+        </parallel>
+      </state>
+    </tree>
+  </statechart>
+
+  <input>
+    <input_event port="in" name="e" time="0 d"/>
+    <input_event port="in" name="e" time="0 d"/>
+  </input>
+
+  <output>
+    <big_step>
+      <event port="out" name="in_b"/>
+      <event port="out" name="in_f"/>
+      <event port="out" name="in_g"/>
+    </big_step>
+    <big_step>
+      <event port="out" name="in_c"/>
+      <event port="out" name="in_h"/>
+      <event port="out" name="in_d"/>
+    </big_step>
+  </output>
+</test>