Files
blockly/tests/generators/math.xml

1596 lines
68 KiB
XML

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