<xml xmlns="http://www.w3.org/1999/xhtml">
  <block type="unittest_main" x="1" y="-198">
    <statement name="DO">
      <block type="procedures_callnoreturn">
        <mutation name="test arithmetic"></mutation>
        <next>
          <block type="procedures_callnoreturn">
            <mutation name="test operations on single"></mutation>
            <next>
              <block type="procedures_callnoreturn">
                <mutation name="test trig"></mutation>
                <next>
                  <block type="procedures_callnoreturn">
                    <mutation name="test constant"></mutation>
                    <next>
                      <block type="procedures_callnoreturn">
                        <mutation name="test change"></mutation>
                        <next>
                          <block type="procedures_callnoreturn">
                            <mutation name="test number properties"></mutation>
                            <next>
                              <block type="procedures_callnoreturn">
                                <mutation name="test round"></mutation>
                                <next>
                                  <block type="procedures_callnoreturn">
                                    <mutation name="test operations on list"></mutation>
                                    <next>
                                      <block type="procedures_callnoreturn">
                                        <mutation name="test constraint"></mutation>
                                        <next>
                                          <block type="procedures_callnoreturn">
                                            <mutation name="test mod"></mutation>
                                            <next>
                                              <block type="procedures_callnoreturn">
                                                <mutation name="test random integer"></mutation>
                                                <next>
                                                  <block type="procedures_callnoreturn">
                                                    <mutation name="test random fraction"></mutation>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="395" y="125">
    <mutation></mutation>
    <field name="NAME">test operations on single</field>
    <statement name="STACK">
      <block type="unittest_assertequals" inline="false">
        <field name="MESSAGE">sqrt</field>
        <value name="ACTUAL">
          <block type="math_single" inline="false">
            <field name="OP">ROOT</field>
            <value name="NUM">
              <block type="math_number">
                <field name="NUM">25</field>
              </block>
            </value>
          </block>
        </value>
        <value name="EXPECTED">
          <block type="math_number">
            <field name="NUM">5</field>
          </block>
        </value>
        <next>
          <block type="unittest_assertequals" inline="false">
            <field name="MESSAGE">abs</field>
            <value name="ACTUAL">
              <block type="math_single" inline="false">
                <field name="OP">ABS</field>
                <value name="NUM">
                  <block type="math_number">
                    <field name="NUM">-25</field>
                  </block>
                </value>
              </block>
            </value>
            <value name="EXPECTED">
              <block type="math_number">
                <field name="NUM">25</field>
              </block>
            </value>
            <next>
              <block type="unittest_assertequals" inline="false">
                <field name="MESSAGE">negate</field>
                <value name="ACTUAL">
                  <block type="math_single" inline="false">
                    <field name="OP">NEG</field>
                    <value name="NUM">
                      <block type="math_number">
                        <field name="NUM">-25</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="EXPECTED">
                  <block type="math_number">
                    <field name="NUM">25</field>
                  </block>
                </value>
                <next>
                  <block type="unittest_assertequals" inline="false">
                    <field name="MESSAGE">ln</field>
                    <value name="ACTUAL">
                      <block type="math_single" inline="false">
                        <field name="OP">LN</field>
                        <value name="NUM">
                          <block type="math_number">
                            <field name="NUM">1</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="EXPECTED">
                      <block type="math_number">
                        <field name="NUM">0</field>
                      </block>
                    </value>
                    <next>
                      <block type="unittest_assertequals" inline="false">
                        <field name="MESSAGE">log10</field>
                        <value name="ACTUAL">
                          <block type="math_single" inline="false">
                            <field name="OP">LOG10</field>
                            <value name="NUM">
                              <block type="math_number">
                                <field name="NUM">100</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="EXPECTED">
                          <block type="math_number">
                            <field name="NUM">2</field>
                          </block>
                        </value>
                        <next>
                          <block type="unittest_assertequals" inline="false">
                            <field name="MESSAGE">exp</field>
                            <value name="ACTUAL">
                              <block type="math_single" inline="false">
                                <field name="OP">EXP</field>
                                <value name="NUM">
                                  <block type="math_number">
                                    <field name="NUM">2</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <value name="EXPECTED">
                              <block type="math_number">
                                <field name="NUM">7.38905609893065</field>
                              </block>
                            </value>
                            <next>
                              <block type="unittest_assertequals" inline="false">
                                <field name="MESSAGE">power10</field>
                                <value name="ACTUAL">
                                  <block type="math_single" inline="false">
                                    <field name="OP">POW10</field>
                                    <value name="NUM">
                                      <block type="math_number">
                                        <field name="NUM">2</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="EXPECTED">
                                  <block type="math_number">
                                    <field name="NUM">100</field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="23" y="194">
    <mutation></mutation>
    <field name="NAME">test arithmetic</field>
    <statement name="STACK">
      <block type="unittest_assertequals" inline="false">
        <field name="MESSAGE">add</field>
        <value name="ACTUAL">
          <block type="math_arithmetic" inline="true">
            <field name="OP">ADD</field>
            <value name="A">
              <block type="math_number">
                <field name="NUM">1</field>
              </block>
            </value>
            <value name="B">
              <block type="math_number">
                <field name="NUM">2</field>
              </block>
            </value>
          </block>
        </value>
        <value name="EXPECTED">
          <block type="math_number">
            <field name="NUM">3</field>
          </block>
        </value>
        <next>
          <block type="unittest_assertequals" inline="false">
            <field name="MESSAGE">subtract</field>
            <value name="ACTUAL">
              <block type="math_arithmetic" inline="true">
                <field name="OP">MINUS</field>
                <value name="A">
                  <block type="math_number">
                    <field name="NUM">1</field>
                  </block>
                </value>
                <value name="B">
                  <block type="math_number">
                    <field name="NUM">2</field>
                  </block>
                </value>
              </block>
            </value>
            <value name="EXPECTED">
              <block type="math_number">
                <field name="NUM">-1</field>
              </block>
            </value>
            <next>
              <block type="unittest_assertequals" inline="false">
                <field name="MESSAGE">multiply</field>
                <value name="ACTUAL">
                  <block type="math_arithmetic" inline="true">
                    <field name="OP">MULTIPLY</field>
                    <value name="A">
                      <block type="math_number">
                        <field name="NUM">4</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number">
                        <field name="NUM">2.5</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="EXPECTED">
                  <block type="math_number">
                    <field name="NUM">10</field>
                  </block>
                </value>
                <next>
                  <block type="unittest_assertequals" inline="false">
                    <field name="MESSAGE">divide</field>
                    <value name="ACTUAL">
                      <block type="math_arithmetic" inline="true">
                        <field name="OP">DIVIDE</field>
                        <value name="A">
                          <block type="math_number">
                            <field name="NUM">8.2</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number">
                            <field name="NUM">-5</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="EXPECTED">
                      <block type="math_number">
                        <field name="NUM">-1.64</field>
                      </block>
                    </value>
                    <next>
                      <block type="unittest_assertequals" inline="false">
                        <field name="MESSAGE">power</field>
                        <value name="ACTUAL">
                          <block type="math_arithmetic" inline="true">
                            <field name="OP">POWER</field>
                            <value name="A">
                              <block type="math_number">
                                <field name="NUM">10</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number">
                                <field name="NUM">4</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="EXPECTED">
                          <block type="math_number">
                            <field name="NUM">10000</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="16" y="727">
    <mutation></mutation>
    <field name="NAME">test trig</field>
    <statement name="STACK">
      <block type="unittest_assertequals" inline="false">
        <field name="MESSAGE">sin</field>
        <value name="ACTUAL">
          <block type="math_trig" inline="false">
            <field name="OP">SIN</field>
            <value name="NUM">
              <block type="math_number">
                <field name="NUM">90</field>
              </block>
            </value>
          </block>
        </value>
        <value name="EXPECTED">
          <block type="math_number">
            <field name="NUM">1</field>
          </block>
        </value>
        <next>
          <block type="unittest_assertequals" inline="false">
            <field name="MESSAGE">cos</field>
            <value name="ACTUAL">
              <block type="math_trig" inline="false">
                <field name="OP">COS</field>
                <value name="NUM">
                  <block type="math_number">
                    <field name="NUM">180</field>
                  </block>
                </value>
              </block>
            </value>
            <value name="EXPECTED">
              <block type="math_number">
                <field name="NUM">-1</field>
              </block>
            </value>
            <next>
              <block type="unittest_assertequals" inline="false">
                <field name="MESSAGE">tan</field>
                <value name="ACTUAL">
                  <block type="math_trig" inline="false">
                    <field name="OP">TAN</field>
                    <value name="NUM">
                      <block type="math_number">
                        <field name="NUM">0</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="EXPECTED">
                  <block type="math_number">
                    <field name="NUM">0</field>
                  </block>
                </value>
                <next>
                  <block type="unittest_assertequals" inline="false">
                    <field name="MESSAGE">asin</field>
                    <value name="ACTUAL">
                      <block type="math_trig" inline="false">
                        <field name="OP">ASIN</field>
                        <value name="NUM">
                          <block type="math_number">
                            <field name="NUM">-1</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="EXPECTED">
                      <block type="math_number">
                        <field name="NUM">-90</field>
                      </block>
                    </value>
                    <next>
                      <block type="unittest_assertequals" inline="false">
                        <field name="MESSAGE">acos</field>
                        <value name="ACTUAL">
                          <block type="math_trig" inline="false">
                            <field name="OP">ACOS</field>
                            <value name="NUM">
                              <block type="math_number">
                                <field name="NUM">1</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="EXPECTED">
                          <block type="math_number">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                        <next>
                          <block type="unittest_assertequals" inline="false">
                            <field name="MESSAGE">atan</field>
                            <value name="ACTUAL">
                              <block type="math_trig" inline="false">
                                <field name="OP">ATAN</field>
                                <value name="NUM">
                                  <block type="math_number">
                                    <field name="NUM">1</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <value name="EXPECTED">
                              <block type="math_number">
                                <field name="NUM">45</field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="311" y="733">
    <mutation></mutation>
    <field name="NAME">test constant</field>
    <statement name="STACK">
      <block type="unittest_assertequals" inline="false">
        <field name="MESSAGE">const pi</field>
        <value name="ACTUAL">
          <block type="math_round" inline="false">
            <field name="OP">ROUNDDOWN</field>
            <value name="NUM">
              <block type="math_arithmetic" inline="true">
                <field name="OP">MULTIPLY</field>
                <value name="A">
                  <block type="math_constant">
                    <field name="CONSTANT">PI</field>
                  </block>
                </value>
                <value name="B">
                  <block type="math_number">
                    <field name="NUM">1000</field>
                  </block>
                </value>
              </block>
            </value>
          </block>
        </value>
        <value name="EXPECTED">
          <block type="math_number">
            <field name="NUM">3141</field>
          </block>
        </value>
        <next>
          <block type="unittest_assertequals" inline="false">
            <field name="MESSAGE">const e</field>
            <value name="ACTUAL">
              <block type="math_round" inline="false">
                <field name="OP">ROUNDDOWN</field>
                <value name="NUM">
                  <block type="math_arithmetic" inline="true">
                    <field name="OP">MULTIPLY</field>
                    <value name="A">
                      <block type="math_constant">
                        <field name="CONSTANT">E</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number">
                        <field name="NUM">1000</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <value name="EXPECTED">
              <block type="math_number">
                <field name="NUM">2718</field>
              </block>
            </value>
            <next>
              <block type="unittest_assertequals" inline="false">
                <field name="MESSAGE">const golden</field>
                <value name="ACTUAL">
                  <block type="math_round" inline="false">
                    <field name="OP">ROUNDDOWN</field>
                    <value name="NUM">
                      <block type="math_arithmetic" inline="true">
                        <field name="OP">MULTIPLY</field>
                        <value name="A">
                          <block type="math_constant">
                            <field name="CONSTANT">GOLDEN_RATIO</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number">
                            <field name="NUM">1000</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="EXPECTED">
                  <block type="math_number">
                    <field name="NUM">1618</field>
                  </block>
                </value>
                <next>
                  <block type="unittest_assertequals" inline="false">
                    <field name="MESSAGE">const sqrt 2</field>
                    <value name="ACTUAL">
                      <block type="math_round" inline="false">
                        <field name="OP">ROUNDDOWN</field>
                        <value name="NUM">
                          <block type="math_arithmetic" inline="true">
                            <field name="OP">MULTIPLY</field>
                            <value name="A">
                              <block type="math_constant">
                                <field name="CONSTANT">SQRT2</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number">
                                <field name="NUM">1000</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="EXPECTED">
                      <block type="math_number">
                        <field name="NUM">1414</field>
                      </block>
                    </value>
                    <next>
                      <block type="unittest_assertequals" inline="false">
                        <field name="MESSAGE">const sqrt 0.5</field>
                        <value name="ACTUAL">
                          <block type="math_round" inline="false">
                            <field name="OP">ROUNDDOWN</field>
                            <value name="NUM">
                              <block type="math_arithmetic" inline="true">
                                <field name="OP">MULTIPLY</field>
                                <value name="A">
                                  <block type="math_constant">
                                    <field name="CONSTANT">SQRT1_2</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="math_number">
                                    <field name="NUM">1000</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="EXPECTED">
                          <block type="math_number">
                            <field name="NUM">707</field>
                          </block>
                        </value>
                        <next>
                          <block type="unittest_assertvalue" inline="false">
                            <field name="MESSAGE">const infinity</field>
                            <field name="EXPECTED">TRUE</field>
                            <value name="ACTUAL">
                              <block type="logic_compare" inline="true">
                                <field name="OP">LT</field>
                                <value name="A">
                                  <block type="math_number">
                                    <field name="NUM">9999</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="math_constant">
                                    <field name="CONSTANT">INFINITY</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="18" y="1279">
    <mutation></mutation>
    <field name="NAME">test number properties</field>
    <statement name="STACK">
      <block type="unittest_assertvalue" inline="false">
        <field name="MESSAGE">even</field>
        <field name="EXPECTED">TRUE</field>
        <value name="ACTUAL">
          <block type="math_number_property" inline="true">
            <mutation divisor_input="false"></mutation>
            <field name="PROPERTY">EVEN</field>
            <value name="NUMBER_TO_CHECK">
              <block type="math_number">
                <field name="NUM">42</field>
              </block>
            </value>
          </block>
        </value>
        <next>
          <block type="unittest_assertvalue" inline="false">
            <field name="MESSAGE">odd</field>
            <field name="EXPECTED">FALSE</field>
            <value name="ACTUAL">
              <block type="math_number_property" inline="true">
                <mutation divisor_input="false"></mutation>
                <field name="PROPERTY">ODD</field>
                <value name="NUMBER_TO_CHECK">
                  <block type="math_number">
                    <field name="NUM">42.1</field>
                  </block>
                </value>
              </block>
            </value>
            <next>
              <block type="unittest_assertvalue" inline="false">
                <field name="MESSAGE">prime 5</field>
                <field name="EXPECTED">TRUE</field>
                <value name="ACTUAL">
                  <block type="math_number_property" inline="true">
                    <mutation divisor_input="false"></mutation>
                    <field name="PROPERTY">PRIME</field>
                    <value name="NUMBER_TO_CHECK">
                      <block type="math_number">
                        <field name="NUM">5</field>
                      </block>
                    </value>
                  </block>
                </value>
                <next>
                  <block type="unittest_assertvalue" inline="false">
                    <field name="MESSAGE">prime 25</field>
                    <field name="EXPECTED">FALSE</field>
                    <value name="ACTUAL">
                      <block type="math_number_property" inline="true">
                        <mutation divisor_input="false"></mutation>
                        <field name="PROPERTY">PRIME</field>
                        <value name="NUMBER_TO_CHECK">
                          <block type="math_number">
                            <field name="NUM">25</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <next>
                      <block type="unittest_assertvalue" inline="false">
                        <field name="MESSAGE">prime negative</field>
                        <field name="EXPECTED">FALSE</field>
                        <value name="ACTUAL">
                          <block type="math_number_property" inline="true">
                            <mutation divisor_input="false"></mutation>
                            <field name="PROPERTY">PRIME</field>
                            <value name="NUMBER_TO_CHECK">
                              <block type="math_number">
                                <field name="NUM">-31.1</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="unittest_assertvalue" inline="false">
                            <field name="MESSAGE">whole</field>
                            <field name="EXPECTED">FALSE</field>
                            <value name="ACTUAL">
                              <block type="math_number_property" inline="true">
                                <mutation divisor_input="false"></mutation>
                                <field name="PROPERTY">WHOLE</field>
                                <value name="NUMBER_TO_CHECK">
                                  <block type="math_constant">
                                    <field name="CONSTANT">PI</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="unittest_assertvalue" inline="false">
                                <field name="MESSAGE">positive</field>
                                <field name="EXPECTED">TRUE</field>
                                <value name="ACTUAL">
                                  <block type="math_number_property" inline="true">
                                    <mutation divisor_input="false"></mutation>
                                    <field name="PROPERTY">POSITIVE</field>
                                    <value name="NUMBER_TO_CHECK">
                                      <block type="math_constant">
                                        <field name="CONSTANT">INFINITY</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <next>
                                  <block type="unittest_assertvalue" inline="false">
                                    <field name="MESSAGE">negative</field>
                                    <field name="EXPECTED">TRUE</field>
                                    <value name="ACTUAL">
                                      <block type="math_number_property" inline="true">
                                        <mutation divisor_input="false"></mutation>
                                        <field name="PROPERTY">NEGATIVE</field>
                                        <value name="NUMBER_TO_CHECK">
                                          <block type="math_number">
                                            <field name="NUM">-42</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="unittest_assertvalue" inline="false">
                                        <field name="MESSAGE">divisible</field>
                                        <field name="EXPECTED">TRUE</field>
                                        <value name="ACTUAL">
                                          <block type="math_number_property" inline="true">
                                            <mutation divisor_input="true"></mutation>
                                            <field name="PROPERTY">DIVISIBLE_BY</field>
                                            <value name="NUMBER_TO_CHECK">
                                              <block type="math_number">
                                                <field name="NUM">42</field>
                                              </block>
                                            </value>
                                            <value name="DIVISOR">
                                              <block type="math_number">
                                                <field name="NUM">2</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="387" y="1282">
    <mutation></mutation>
    <field name="NAME">test round</field>
    <statement name="STACK">
      <block type="unittest_assertequals" inline="false">
        <field name="MESSAGE">round</field>
        <value name="ACTUAL">
          <block type="math_round" inline="false">
            <field name="OP">ROUND</field>
            <value name="NUM">
              <block type="math_number">
                <field name="NUM">42.42</field>
              </block>
            </value>
          </block>
        </value>
        <value name="EXPECTED">
          <block type="math_number">
            <field name="NUM">42</field>
          </block>
        </value>
        <next>
          <block type="unittest_assertequals" inline="false">
            <field name="MESSAGE">round up</field>
            <value name="ACTUAL">
              <block type="math_round" inline="false">
                <field name="OP">ROUNDUP</field>
                <value name="NUM">
                  <block type="math_number">
                    <field name="NUM">-42.42</field>
                  </block>
                </value>
              </block>
            </value>
            <value name="EXPECTED">
              <block type="math_number">
                <field name="NUM">-42</field>
              </block>
            </value>
            <next>
              <block type="unittest_assertequals" inline="false">
                <field name="MESSAGE">round down</field>
                <value name="ACTUAL">
                  <block type="math_round" inline="false">
                    <field name="OP">ROUNDDOWN</field>
                    <value name="NUM">
                      <block type="math_number">
                        <field name="NUM">42.42</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="EXPECTED">
                  <block type="math_number">
                    <field name="NUM">42</field>
                  </block>
                </value>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="394" y="1819">
    <mutation></mutation>
    <field name="NAME">test change</field>
    <statement name="STACK">
      <block type="variables_set" inline="false">
        <field name="VAR">varToChange</field>
        <value name="VALUE">
          <block type="math_number">
            <field name="NUM">100</field>
          </block>
        </value>
        <next>
          <block type="math_change" inline="false">
            <field name="VAR">varToChange</field>
            <value name="DELTA">
              <block type="math_number">
                <field name="NUM">42</field>
              </block>
            </value>
            <next>
              <block type="unittest_assertequals" inline="false">
                <field name="MESSAGE">change</field>
                <value name="ACTUAL">
                  <block type="variables_get">
                    <field name="VAR">varToChange</field>
                  </block>
                </value>
                <value name="EXPECTED">
                  <block type="math_number">
                    <field name="NUM">142</field>
                  </block>
                </value>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defreturn" inline="false" x="30" y="2074">
    <mutation>
      <arg name="a"></arg>
      <arg name="b"></arg>
    </mutation>
    <field name="NAME">assert list equal</field>
    <statement name="STACK">
      <block type="variables_set" inline="false">
        <field name="VAR">equal</field>
        <value name="VALUE">
          <block type="logic_boolean">
            <field name="BOOL">TRUE</field>
          </block>
        </value>
        <next>
          <block type="controls_if" inline="false">
            <mutation else="1"></mutation>
            <value name="IF0">
              <block type="logic_compare" inline="true">
                <field name="OP">NEQ</field>
                <value name="A">
                  <block type="lists_length" inline="false">
                    <value name="VALUE">
                      <block type="variables_get">
                        <field name="VAR">a</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="B">
                  <block type="lists_length" inline="false">
                    <value name="VALUE">
                      <block type="variables_get">
                        <field name="VAR">b</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="variables_set" inline="false">
                <field name="VAR">equal</field>
                <value name="VALUE">
                  <block type="logic_boolean">
                    <field name="BOOL">FALSE</field>
                  </block>
                </value>
              </block>
            </statement>
            <statement name="ELSE">
              <block type="controls_for" inline="true">
                <field name="VAR">x</field>
                <value name="FROM">
                  <block type="math_number">
                    <field name="NUM">1</field>
                  </block>
                </value>
                <value name="TO">
                  <block type="lists_length" inline="false">
                    <value name="VALUE">
                      <block type="variables_get">
                        <field name="VAR">a</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO">
                  <block type="controls_if" inline="false">
                    <value name="IF0">
                      <block type="logic_compare" inline="false">
                        <field name="OP">NEQ</field>
                        <value name="A">
                          <block type="lists_getIndex" inline="true">
                            <mutation statement="false" at="true"></mutation>
                            <field name="MODE">GET</field>
                            <field name="WHERE">FROM_START</field>
                            <value name="AT">
                              <block type="variables_get">
                                <field name="VAR">x</field>
                              </block>
                            </value>
                            <value name="VALUE">
                              <block type="variables_get">
                                <field name="VAR">a</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="B">
                          <block type="lists_getIndex" inline="true">
                            <mutation statement="false" at="true"></mutation>
                            <field name="MODE">GET</field>
                            <field name="WHERE">FROM_START</field>
                            <value name="AT">
                              <block type="variables_get">
                                <field name="VAR">x</field>
                              </block>
                            </value>
                            <value name="VALUE">
                              <block type="variables_get">
                                <field name="VAR">b</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="variables_set" inline="false">
                        <field name="VAR">equal</field>
                        <value name="VALUE">
                          <block type="logic_boolean">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                        <next>
                          <block type="controls_flow_statements">
                            <field name="FLOW">BREAK</field>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
            </statement>
            <next>
              <block type="controls_if" inline="false">
                <value name="IF0">
                  <block type="logic_negate" inline="false">
                    <value name="BOOL">
                      <block type="variables_get">
                        <field name="VAR">equal</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="unittest_assertequals" inline="false">
                    <field name="MESSAGE">list equality</field>
                    <value name="ACTUAL">
                      <block type="variables_get">
                        <field name="VAR">a</field>
                      </block>
                    </value>
                    <value name="EXPECTED">
                      <block type="variables_get">
                        <field name="VAR">b</field>
                      </block>
                    </value>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
    <value name="RETURN">
      <block type="variables_get">
        <field name="VAR">equal</field>
      </block>
    </value>
  </block>
  <block type="procedures_defnoreturn" x="24" y="2568">
    <mutation></mutation>
    <field name="NAME">test operations on list</field>
    <statement name="STACK">
      <block type="unittest_assertequals" inline="false">
        <field name="MESSAGE">sum</field>
        <value name="ACTUAL">
          <block type="math_on_list" inline="false">
            <field name="OP">SUM</field>
            <value name="LIST">
              <block type="lists_create_with" inline="true">
                <mutation items="3"></mutation>
                <value name="ADD0">
                  <block type="math_number">
                    <field name="NUM">3</field>
                  </block>
                </value>
                <value name="ADD1">
                  <block type="math_number">
                    <field name="NUM">4</field>
                  </block>
                </value>
                <value name="ADD2">
                  <block type="math_number">
                    <field name="NUM">5</field>
                  </block>
                </value>
              </block>
            </value>
          </block>
        </value>
        <value name="EXPECTED">
          <block type="math_number">
            <field name="NUM">12</field>
          </block>
        </value>
        <next>
          <block type="unittest_assertequals" inline="false">
            <field name="MESSAGE">min</field>
            <value name="ACTUAL">
              <block type="math_on_list" inline="false">
                <field name="OP">MIN</field>
                <value name="LIST">
                  <block type="lists_create_with" inline="true">
                    <mutation items="3"></mutation>
                    <value name="ADD0">
                      <block type="math_number">
                        <field name="NUM">3</field>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="math_number">
                        <field name="NUM">4</field>
                      </block>
                    </value>
                    <value name="ADD2">
                      <block type="math_number">
                        <field name="NUM">5</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <value name="EXPECTED">
              <block type="math_number">
                <field name="NUM">3</field>
              </block>
            </value>
            <next>
              <block type="unittest_assertequals" inline="false">
                <field name="MESSAGE">max</field>
                <value name="ACTUAL">
                  <block type="math_on_list" inline="false">
                    <field name="OP">MAX</field>
                    <value name="LIST">
                      <block type="lists_create_with" inline="true">
                        <mutation items="3"></mutation>
                        <value name="ADD0">
                          <block type="math_number">
                            <field name="NUM">3</field>
                          </block>
                        </value>
                        <value name="ADD1">
                          <block type="math_number">
                            <field name="NUM">4</field>
                          </block>
                        </value>
                        <value name="ADD2">
                          <block type="math_number">
                            <field name="NUM">5</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="EXPECTED">
                  <block type="math_number">
                    <field name="NUM">5</field>
                  </block>
                </value>
                <next>
                  <block type="unittest_assertequals" inline="false">
                    <field name="MESSAGE">average</field>
                    <value name="ACTUAL">
                      <block type="math_on_list" inline="false">
                        <field name="OP">AVERAGE</field>
                        <value name="LIST">
                          <block type="lists_create_with" inline="true">
                            <mutation items="3"></mutation>
                            <value name="ADD0">
                              <block type="math_number">
                                <field name="NUM">3</field>
                              </block>
                            </value>
                            <value name="ADD1">
                              <block type="math_number">
                                <field name="NUM">4</field>
                              </block>
                            </value>
                            <value name="ADD2">
                              <block type="math_number">
                                <field name="NUM">5</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="EXPECTED">
                      <block type="math_number">
                        <field name="NUM">4</field>
                      </block>
                    </value>
                    <next>
                      <block type="unittest_assertequals" inline="false">
                        <field name="MESSAGE">median</field>
                        <value name="ACTUAL">
                          <block type="math_on_list" inline="false">
                            <field name="OP">MEDIAN</field>
                            <value name="LIST">
                              <block type="lists_create_with" inline="true">
                                <mutation items="4"></mutation>
                                <value name="ADD0">
                                  <block type="math_number">
                                    <field name="NUM">3</field>
                                  </block>
                                </value>
                                <value name="ADD1">
                                  <block type="math_number">
                                    <field name="NUM">4</field>
                                  </block>
                                </value>
                                <value name="ADD2">
                                  <block type="math_number">
                                    <field name="NUM">5</field>
                                  </block>
                                </value>
                                <value name="ADD3">
                                  <block type="math_number">
                                    <field name="NUM">1</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="EXPECTED">
                          <block type="math_number">
                            <field name="NUM">3.5</field>
                          </block>
                        </value>
                        <next>
                          <block type="unittest_assertvalue" inline="false">
                            <field name="MESSAGE">modes</field>
                            <field name="EXPECTED">TRUE</field>
                            <value name="ACTUAL">
                              <block type="procedures_callreturn" inline="false">
                                <mutation name="assert list equal">
                                  <arg name="a"></arg>
                                  <arg name="b"></arg>
                                </mutation>
                                <value name="ARG0">
                                  <block type="math_on_list" inline="false">
                                    <field name="OP">MODE</field>
                                    <value name="LIST">
                                      <block type="lists_create_with" inline="true">
                                        <mutation items="3"></mutation>
                                        <value name="ADD0">
                                          <block type="math_number">
                                            <field name="NUM">3</field>
                                          </block>
                                        </value>
                                        <value name="ADD1">
                                          <block type="math_number">
                                            <field name="NUM">4</field>
                                          </block>
                                        </value>
                                        <value name="ADD2">
                                          <block type="math_number">
                                            <field name="NUM">3</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="ARG1">
                                  <block type="lists_create_with" inline="true">
                                    <mutation items="1"></mutation>
                                    <value name="ADD0">
                                      <block type="math_number">
                                        <field name="NUM">3</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="unittest_assertequals" inline="false">
                                <field name="MESSAGE">standard dev</field>
                                <value name="ACTUAL">
                                  <block type="math_on_list" inline="false">
                                    <field name="OP">STD_DEV</field>
                                    <value name="LIST">
                                      <block type="lists_create_with" inline="true">
                                        <mutation items="3"></mutation>
                                        <value name="ADD0">
                                          <block type="math_number">
                                            <field name="NUM">3</field>
                                          </block>
                                        </value>
                                        <value name="ADD1">
                                          <block type="math_number">
                                            <field name="NUM">3</field>
                                          </block>
                                        </value>
                                        <value name="ADD2">
                                          <block type="math_number">
                                            <field name="NUM">3</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="EXPECTED">
                                  <block type="math_number">
                                    <field name="NUM">0</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="unittest_assertvalue" inline="false">
                                    <field name="MESSAGE">random</field>
                                    <field name="EXPECTED">TRUE</field>
                                    <value name="ACTUAL">
                                      <block type="logic_compare" inline="false">
                                        <field name="OP">GT</field>
                                        <value name="A">
                                          <block type="lists_indexOf" inline="false">
                                            <field name="END">FIRST</field>
                                            <value name="FIND">
                                              <block type="math_on_list" inline="false">
                                                <field name="OP">RANDOM</field>
                                                <value name="LIST">
                                                  <block type="lists_create_with" inline="false">
                                                    <mutation items="3"></mutation>
                                                    <value name="ADD0">
                                                      <block type="math_number">
                                                        <field name="NUM">3</field>
                                                      </block>
                                                    </value>
                                                    <value name="ADD1">
                                                      <block type="math_number">
                                                        <field name="NUM">4</field>
                                                      </block>
                                                    </value>
                                                    <value name="ADD2">
                                                      <block type="math_number">
                                                        <field name="NUM">5</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <value name="VALUE">
                                              <block type="lists_create_with" inline="true">
                                                <mutation items="3"></mutation>
                                                <value name="ADD0">
                                                  <block type="math_number">
                                                    <field name="NUM">3</field>
                                                  </block>
                                                </value>
                                                <value name="ADD1">
                                                  <block type="math_number">
                                                    <field name="NUM">4</field>
                                                  </block>
                                                </value>
                                                <value name="ADD2">
                                                  <block type="math_number">
                                                    <field name="NUM">5</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="math_number">
                                            <field name="NUM">0</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="15" y="3494">
    <mutation></mutation>
    <field name="NAME">test mod</field>
    <statement name="STACK">
      <block type="unittest_assertequals" inline="false">
        <field name="MESSAGE">mod</field>
        <value name="ACTUAL">
          <block type="math_modulo" inline="true">
            <value name="DIVIDEND">
              <block type="math_number">
                <field name="NUM">42</field>
              </block>
            </value>
            <value name="DIVISOR">
              <block type="math_number">
                <field name="NUM">5</field>
              </block>
            </value>
          </block>
        </value>
        <value name="EXPECTED">
          <block type="math_number">
            <field name="NUM">2</field>
          </block>
        </value>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="373" y="3499">
    <mutation></mutation>
    <field name="NAME">test constraint</field>
    <statement name="STACK">
      <block type="unittest_assertequals" inline="false">
        <field name="MESSAGE">constraint</field>
        <value name="ACTUAL">
          <block type="math_constrain" inline="true">
            <value name="VALUE">
              <block type="math_number">
                <field name="NUM">100</field>
              </block>
            </value>
            <value name="LOW">
              <block type="math_number">
                <field name="NUM">0</field>
              </block>
            </value>
            <value name="HIGH">
              <block type="math_number">
                <field name="NUM">42</field>
              </block>
            </value>
          </block>
        </value>
        <value name="EXPECTED">
          <block type="math_number">
            <field name="NUM">42</field>
          </block>
        </value>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="15" y="3664">
    <mutation></mutation>
    <field name="NAME">test random integer</field>
    <statement name="STACK">
      <block type="variables_set" inline="false">
        <field name="VAR">rand</field>
        <value name="VALUE">
          <block type="math_random_int" inline="true">
            <value name="FROM">
              <block type="math_number">
                <field name="NUM">5</field>
              </block>
            </value>
            <value name="TO">
              <block type="math_number">
                <field name="NUM">10</field>
              </block>
            </value>
          </block>
        </value>
        <next>
          <block type="unittest_assertvalue" inline="false">
            <field name="MESSAGE">randRange</field>
            <field name="EXPECTED">TRUE</field>
            <value name="ACTUAL">
              <block type="logic_operation" inline="true">
                <field name="OP">AND</field>
                <value name="A">
                  <block type="logic_compare" inline="true">
                    <field name="OP">GTE</field>
                    <value name="A">
                      <block type="variables_get">
                        <field name="VAR">rand</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number">
                        <field name="NUM">5</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_compare" inline="true">
                    <field name="OP">LTE</field>
                    <value name="A">
                      <block type="variables_get">
                        <field name="VAR">rand</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number">
                        <field name="NUM">10</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <next>
              <block type="unittest_assertvalue" inline="false">
                <field name="MESSAGE">randInteger</field>
                <field name="EXPECTED">TRUE</field>
                <value name="ACTUAL">
                  <block type="math_number_property" inline="true">
                    <mutation divisor_input="false"></mutation>
                    <field name="PROPERTY">WHOLE</field>
                    <value name="NUMBER_TO_CHECK">
                      <block type="variables_get">
                        <field name="VAR">rand</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" x="15" y="3931">
    <mutation></mutation>
    <field name="NAME">test random fraction</field>
    <statement name="STACK">
      <block type="variables_set" inline="false">
        <field name="VAR">rand</field>
        <value name="VALUE">
          <block type="math_random_float"></block>
        </value>
        <next>
          <block type="unittest_assertvalue" inline="false">
            <field name="MESSAGE">randFloat</field>
            <field name="EXPECTED">TRUE</field>
            <value name="ACTUAL">
              <block type="logic_operation" inline="true">
                <field name="OP">AND</field>
                <value name="A">
                  <block type="logic_compare" inline="true">
                    <field name="OP">GTE</field>
                    <value name="A">
                      <block type="variables_get">
                        <field name="VAR">rand</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number">
                        <field name="NUM">0</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_compare" inline="true">
                    <field name="OP">LTE</field>
                    <value name="A">
                      <block type="variables_get">
                        <field name="VAR">rand</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number">
                        <field name="NUM">1</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
          </block>
        </next>
      </block>
    </statement>
  </block>
</xml>
