<?xml version="1.0" ?>
<test>
  <statechart>
    <semantics big_step_maximality="take_many"/>

    <inport name="in">
      <event name="start"/>
    </inport>

    <outport name="out">
      <event name="all_good"/>
    </outport>

    <root initial="comparisons">

      <state id="comparisons" initial="s1">
        <state id="s1">
          <transition cond="1 == 1" target="../s2"/>
        </state>
        <state id="s2">
          <transition cond="1 != 2" target="../s3"/>
        </state>
        <state id="s3">
          <transition cond="1 &lt; 2" target="../s4"/>
        </state>
        <state id="s4">
          <transition cond="2 &gt; 1" target="../s5"/>
        </state>
        <state id="s5">
          <transition target="/arithmetic"/>
        </state>
      </state>

      <state id="arithmetic" initial="s1">
        <state id="s1">
          <transition cond="1 + 1 == 2" target="../s2"/>
        </state>
        <state id="s2">
          <transition cond="42 == 52 - 11 + 1" target="../s3"/>
        </state>
        <state id="s3">
          <transition cond="2 * 3 == 6" target="../s4"/>
        </state>
        <state id="s4">
          <transition cond="21 // 3 == 7" target="../s5"/>
        </state>
        <state id="s5">
          <transition cond="256 == 2 ** 2 ** 3" target="../s6"/>
        </state>
        <state id="s6">
          <transition cond="5 % 2 == 1" target="../s7"/>
        </state>
        <state id="s7">
          <transition target="/boolean_logic"/>
        </state>
      </state>

      <state id="boolean_logic" initial="s1">
        <state id="s1">
          <transition cond="True" target="../s2"/>
        </state>
        <state id="s2">
          <transition cond="False or True" target="../s3"/>
        </state>
        <state id="s3">
          <transition cond="True and not False" target="../s4"/>
        </state>
        <state id="s4">
          <transition cond="not (True and False or False)" target="../s5"/>
        </state>
        <state id="s5">
          <transition cond="not (False or False and True)" target="../s6"/>
        </state>
        <state id="s6">
          <transition target="/final"/>
        </state>
      </state>

      <state id="final">
        <onentry>
          <raise event="all_good" port="out"/>
        </onentry>
      </state>

    </root>
  </statechart>
  <input>
    <event name="start" port="in" time="0 d"/>
  </input>
  <output>
    <big_step>
      <event name="all_good" port="out"/>
    </big_step>
  </output>
</test>