<xml xmlns="http://www.w3.org/1999/xhtml">
  <block type="unittest_main" x="33" y="140">
    <statement name="DO">
      <block type="procedures_callnoreturn">
        <mutation name="test repeat"></mutation>
        <next>
          <block type="procedures_callnoreturn">
            <mutation name="test while"></mutation>
            <next>
              <block type="procedures_callnoreturn">
                <mutation name="test foreach"></mutation>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="31" y="296">
    <mutation></mutation>
    <field name="NAME">test foreach</field>
    <statement name="STACK">
      <block type="variables_set" inline="false">
        <field name="VAR">log</field>
        <value name="VALUE">
          <block type="text">
            <field name="TEXT"></field>
          </block>
        </value>
        <next>
          <block type="controls_forEach" inline="false">
            <field name="VAR">x</field>
            <value name="LIST">
              <block type="lists_create_with" inline="false">
                <mutation items="3"></mutation>
                <value name="ADD0">
                  <block type="text">
                    <field name="TEXT">a</field>
                  </block>
                </value>
                <value name="ADD1">
                  <block type="text">
                    <field name="TEXT">b</field>
                  </block>
                </value>
                <value name="ADD2">
                  <block type="text">
                    <field name="TEXT">c</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO">
              <block type="text_append" inline="false">
                <field name="VAR">log</field>
                <value name="TEXT">
                  <block type="variables_get">
                    <field name="VAR">x</field>
                  </block>
                </value>
              </block>
            </statement>
            <next>
              <block type="unittest_assertequals" inline="false">
                <value name="MESSAGE">
                   <block type="text">
                     <field name="TEXT">for loop</field>
                   </block>
                 </value>
                <value name="ACTUAL">
                  <block type="variables_get">
                    <field name="VAR">log</field>
                  </block>
                </value>
                <value name="EXPECTED">
                  <block type="text">
                    <field name="TEXT">abc</field>
                  </block>
                </value>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="30" y="624">
    <mutation></mutation>
    <field name="NAME">test while</field>
    <statement name="STACK">
      <block type="controls_whileUntil" inline="false">
        <field name="MODE">WHILE</field>
        <value name="BOOL">
          <block type="logic_boolean">
            <field name="BOOL">FALSE</field>
          </block>
        </value>
        <statement name="DO">
          <block type="unittest_fail">
             <field name="MESSAGE">while 0</field>
          </block>
        </statement>
        <next>
          <block type="controls_whileUntil" inline="false">
            <field name="MODE">UNTIL</field>
            <value name="BOOL">
              <block type="logic_boolean">
                <field name="BOOL">TRUE</field>
              </block>
            </value>
            <statement name="DO">
              <block type="unittest_fail">
                 <field name="MESSAGE">until 0</field>
              </block>
            </statement>
            <next>
              <block type="variables_set" inline="false">
                <field name="VAR">count</field>
                <value name="VALUE">
                  <block type="math_number">
                    <field name="NUM">1</field>
                  </block>
                </value>
                <next>
                  <block type="controls_whileUntil" inline="false">
                    <field name="MODE">WHILE</field>
                    <value name="BOOL">
                      <block type="logic_compare">
                        <field name="OP">NEQ</field>
                        <value name="A">
                          <block type="variables_get">
                            <field name="VAR">count</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number">
                            <field name="NUM">10</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO">
                      <block type="math_change" inline="false">
                        <field name="VAR">count</field>
                        <value name="DELTA">
                          <block type="math_number">
                            <field name="NUM">1</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                    <next>
                      <block type="unittest_assertequals" inline="false">
                        <value name="MESSAGE">
                           <block type="text">
                             <field name="TEXT">while 10</field>
                           </block>
                         </value>
                        <value name="ACTUAL">
                          <block type="variables_get">
                            <field name="VAR">count</field>
                          </block>
                        </value>
                        <value name="EXPECTED">
                          <block type="math_number">
                            <field name="NUM">10</field>
                          </block>
                        </value>
                        <next>
                          <block type="variables_set" inline="false">
                            <field name="VAR">count</field>
                            <value name="VALUE">
                              <block type="math_number">
                                <field name="NUM">1</field>
                              </block>
                            </value>
                            <next>
                              <block type="controls_whileUntil" inline="false">
                                <field name="MODE">UNTIL</field>
                                <value name="BOOL">
                                  <block type="logic_compare">
                                    <field name="OP">EQ</field>
                                    <value name="A">
                                      <block type="variables_get">
                                        <field name="VAR">count</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="math_number">
                                        <field name="NUM">10</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <statement name="DO">
                                  <block type="math_change" inline="false">
                                    <field name="VAR">count</field>
                                    <value name="DELTA">
                                      <block type="math_number">
                                        <field name="NUM">1</field>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                                <next>
                                  <block type="unittest_assertequals" inline="false">
                                    <value name="MESSAGE">
                                       <block type="text">
                                         <field name="TEXT">until 10</field>
                                       </block>
                                     </value>
                                    <value name="ACTUAL">
                                      <block type="variables_get">
                                        <field name="VAR">count</field>
                                      </block>
                                    </value>
                                    <value name="EXPECTED">
                                      <block type="math_number">
                                        <field name="NUM">10</field>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="397" y="628">
    <mutation></mutation>
    <field name="NAME">test repeat</field>
    <statement name="STACK">
      <block type="variables_set" inline="false">
        <field name="VAR">count</field>
        <value name="VALUE">
          <block type="math_number">
            <field name="NUM">0</field>
          </block>
        </value>
        <next>
          <block type="controls_repeat_ext" inline="true">
            <value name="TIMES">
              <block type="math_number">
                <field name="NUM">10</field>
              </block>
            </value>
            <statement name="DO">
              <block type="math_change" inline="false">
                <field name="VAR">count</field>
                <value name="DELTA">
                  <block type="math_number">
                    <field name="NUM">1</field>
                  </block>
                </value>
              </block>
            </statement>
            <next>
              <block type="unittest_assertequals" inline="false">
                <value name="MESSAGE">
                   <block type="text">
                     <field name="TEXT">repeat 10</field>
                   </block>
                 </value>
                <value name="ACTUAL">
                  <block type="variables_get">
                    <field name="VAR">count</field>
                  </block>
                </value>
                <value name="EXPECTED">
                  <block type="math_number">
                    <field name="NUM">10</field>
                  </block>
                </value>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
</xml>
