diff options
Diffstat (limited to 'blockly/tests/generators/lists.xml')
-rw-r--r-- | blockly/tests/generators/lists.xml | 8134 |
1 files changed, 8134 insertions, 0 deletions
diff --git a/blockly/tests/generators/lists.xml b/blockly/tests/generators/lists.xml new file mode 100644 index 0000000..88e4946 --- /dev/null +++ b/blockly/tests/generators/lists.xml @@ -0,0 +1,8134 @@ +<xml xmlns="http://www.w3.org/1999/xhtml"> + <block type="unittest_main" x="13" y="13"> + <statement name="DO"> + <block type="procedures_callnoreturn"> + <mutation name="test create"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test empty"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test length"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test find simple"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test find complex"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test get simple"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test get complex"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test getRemove"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test remove"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test set"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test insert"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test sublist simple"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test sublist complex"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test join"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test split"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test sort alphabetic"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test sort ignoreCase"></mutation> + <next> + <block type="procedures_callnoreturn"> + <mutation name="test sort numeric"></mutation> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </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="13" y="538"> + <mutation> + <arg name="test name"></arg> + </mutation> + <field name="NAME">check number of calls</field> + <comment pinned="false" h="78" w="257">Checks that the number of calls is one in order to confirm that a function was only called once.</comment> + <statement name="STACK"> + <block type="text_append"> + <field name="VAR">test name</field> + <value name="TEXT"> + <block type="text"> + <field name="TEXT">number of calls</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="variables_get"> + <field name="VAR">test name</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">number of calls</field> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defnoreturn" x="13" y="713"> + <field name="NAME">test create</field> + <comment pinned="false" h="80" w="160">Tests the "create list with" and "create empty list" blocks.</comment> + <statement name="STACK"> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">create empty</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_create_with"> + <mutation items="0"></mutation> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_empty"></block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">create items</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">love</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">love</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">create repeated</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_repeat" inline="true"> + <value name="ITEM"> + <block type="text"> + <field name="TEXT">Eject</field> + </block> + </value> + <value name="NUM"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Eject</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Eject</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Eject</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">create repeated order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_repeat" inline="true"> + <value name="ITEM"> + <block type="text"> + <field name="TEXT">Eject</field> + </block> + </value> + <value name="NUM"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Eject</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Eject</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Eject</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defreturn" x="13" y="1163"> + <mutation statements="false"></mutation> + <field name="NAME">get empty list</field> + <comment pinned="false" h="80" w="160">Creates an empty list for use with the empty test.</comment> + <value name="RETURN"> + <block type="lists_create_empty"></block> + </value> + </block> + <block type="procedures_defnoreturn" x="13" y="1238"> + <field name="NAME">test empty</field> + <comment pinned="false" h="80" w="160">Tests the "is empty" block.</comment> + <statement name="STACK"> + <block type="unittest_assertvalue" inline="false"> + <field name="EXPECTED">FALSE</field> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">not empty</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_isEmpty" inline="true"> + <value name="VALUE"> + <block type="lists_create_with" inline="false"> + <mutation items="1"></mutation> + <value name="ADD0"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertvalue" inline="false"> + <field name="EXPECTED">TRUE</field> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">empty</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_isEmpty" inline="true"> + <value name="VALUE"> + <block type="lists_create_empty"></block> + </value> + </block> + </value> + <next> + <block type="unittest_assertvalue" inline="false"> + <field name="EXPECTED">TRUE</field> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">empty complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_isEmpty" inline="true"> + <value name="VALUE"> + <block type="procedures_callreturn"> + <mutation name="get empty list"></mutation> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertvalue" inline="false"> + <field name="EXPECTED">TRUE</field> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">empty order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_isEmpty" inline="true"> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="lists_create_empty"></block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defnoreturn" x="13" y="1563"> + <field name="NAME">test length</field> + <comment pinned="false" h="80" w="160">Tests the "length" block.</comment> + <statement name="STACK"> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">zero length</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="lists_create_empty"></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"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">one length</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="lists_create_with" inline="false"> + <mutation items="1"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">cat</field> + </block> + </value> + </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"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">three length</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">cat</field> + </block> + </value> + <value name="ADD1"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="ADD2"> + <block type="lists_create_empty"></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"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">two length order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="lists_create_with" inline="false"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">cat</field> + </block> + </value> + <value name="ADD1"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defnoreturn" x="13" y="1988"> + <field name="NAME">test find simple</field> + <comment pinned="false" h="80" w="160">Tests the "find" block with a variable.</comment> + <statement name="STACK"> + <block type="variables_set"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Alice</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Bob</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">find first simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="FIND"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">find last simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_indexOf" inline="false"> + <field name="END">LAST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="FIND"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">find none simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="FIND"> + <block type="text"> + <field name="TEXT">Dave</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defreturn" x="13" y="2438"> + <field name="NAME">get names</field> + <comment pinned="false" h="80" w="160">Creates a list for use with the find test.</comment> + <statement name="STACK"> + <block type="math_change"> + <field name="VAR">number of calls</field> + <value name="DELTA"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </statement> + <value name="RETURN"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Alice</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Bob</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + </block> + </value> + </block> + <block type="procedures_defnoreturn" x="13" y="2563"> + <field name="NAME">test find complex</field> + <comment pinned="false" h="80" w="160">Tests the "find" block with a function call.</comment> + <statement name="STACK"> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">find first complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="procedures_callreturn"> + <mutation name="get names"></mutation> + </block> + </value> + <value name="FIND"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">find first complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">find first order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get names"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="FIND"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">find first order complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">find last complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_indexOf" inline="false"> + <field name="END">LAST</field> + <value name="VALUE"> + <block type="procedures_callreturn"> + <mutation name="get names"></mutation> + </block> + </value> + <value name="FIND"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">find last complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">find last order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_indexOf" inline="false"> + <field name="END">LAST</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get names"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="FIND"> + <block type="text"> + <field name="TEXT">Eve</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">find last order complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">find none complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="procedures_callreturn"> + <mutation name="get names"></mutation> + </block> + </value> + <value name="FIND"> + <block type="text"> + <field name="TEXT">Dave</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">find none complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">find none order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get names"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="FIND"> + <block type="text"> + <field name="TEXT">Dave</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">find none order complex</field> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </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="13" y="3738"> + <field name="NAME">test get simple</field> + <comment pinned="false" h="80" w="160">Tests the "get" block with a variable.</comment> + <statement name="STACK"> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get first simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get last simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">LAST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + <next> + <block type="unittest_assertvalue" inline="false"> + <field name="EXPECTED">TRUE</field> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get random simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="logic_compare"> + <field name="OP">GT</field> + <value name="A"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="FIND"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">RANDOM</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get # simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FROM_START</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get # order simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FROM_START</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get #-end simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FROM_END</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get #-end order simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FROM_END</field> + <comment pinned="false" h="81" w="289">The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index.</comment> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defreturn" x="13" y="4538"> + <field name="NAME">get star wars</field> + <comment pinned="false" h="80" w="160">Creates a list for use with the get test.</comment> + <statement name="STACK"> + <block type="math_change"> + <field name="VAR">number of calls</field> + <value name="DELTA"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </statement> + <value name="RETURN"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + </block> + <block type="procedures_defnoreturn" x="13" y="4663"> + <field name="NAME">test get complex</field> + <comment pinned="false" h="80" w="160">Tests the "get" block with a function call.</comment> + <statement name="STACK"> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get first complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FIRST</field> + <value name="VALUE"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get first complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get first order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FIRST</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get first order complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get last complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">LAST</field> + <value name="VALUE"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get last complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get last order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">LAST</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get last order complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertvalue" inline="false"> + <field name="EXPECTED">TRUE</field> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get random complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="logic_compare"> + <field name="OP">GT</field> + <value name="A"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="FIND"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">RANDOM</field> + <value name="VALUE"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get random complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertvalue" inline="false"> + <field name="EXPECTED">TRUE</field> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get random order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="logic_compare"> + <field name="OP">GT</field> + <value name="A"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="FIND"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">RANDOM</field> + <value name="VALUE"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get random order complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get # complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FROM_START</field> + <value name="VALUE"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get # complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get # order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FROM_START</field> + <value name="VALUE"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get # order complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get #-end complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FROM_END</field> + <value name="VALUE"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get #-end complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">get #-end order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET</field> + <field name="WHERE">FROM_END</field> + <comment pinned="false" h="87" w="299">The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index.</comment> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get star wars"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">get #-end order complex</field> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </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="13" y="6488"> + <field name="NAME">test getRemove</field> + <comment pinned="false" h="80" w="160">Tests the "get and remove" block.</comment> + <statement name="STACK"> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove first</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove first list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove first order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">FIRST</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove first order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove last</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">LAST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove last list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove last order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">LAST</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove last order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertvalue" inline="false"> + <field name="EXPECTED">TRUE</field> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove random</field> + </block> + </value> + <value name="ACTUAL"> + <block type="logic_compare"> + <field name="OP">EQ</field> + <value name="A"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="FIND"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">RANDOM</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove random list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertvalue" inline="false"> + <field name="EXPECTED">TRUE</field> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove random order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="logic_compare"> + <field name="OP">EQ</field> + <value name="A"> + <block type="lists_indexOf" inline="false"> + <field name="END">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="FIND"> + <block type="lists_getIndex"> + <mutation statement="false" at="false"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">RANDOM</field> + <value name="VALUE"> + <block type="logic_ternary" inline="false"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove random order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove #</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">FROM_START</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove # list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove # order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">FROM_START</field> + <value name="VALUE"> + <block type="logic_ternary" inline="false"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove # order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove #-end</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">FROM_END</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove #-end list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove #-end order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getIndex"> + <mutation statement="false" at="true"></mutation> + <field name="MODE">GET_REMOVE</field> + <field name="WHERE">FROM_END</field> + <comment pinned="false" h="94" w="258">The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index.</comment> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">getremove #-end order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </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="13" y="8888"> + <field name="NAME">test remove</field> + <comment pinned="false" h="80" w="160">Tests the "remove" block.</comment> + <statement name="STACK"> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="false"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">FIRST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove first list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="false"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">FIRST</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove first order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="false"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">LAST</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove last list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="false"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">LAST</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove last order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="false"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">RANDOM</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove random list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="false"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">RANDOM</field> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove random order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="true"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">FROM_START</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove # list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="true"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">FROM_START</field> + <value name="VALUE"> + <block type="logic_ternary" inline="false"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove # order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="true"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">FROM_END</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove #-end list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Kirk</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="true"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">FROM_END</field> + <comment pinned="false" h="94" w="256">The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index.</comment> + <value name="VALUE"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">remove #-end order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Spock</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">McCoy</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </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="13" y="10713"> + <field name="NAME">test set</field> + <comment pinned="false" h="80" w="160">Tests the "set" block.</comment> + <statement name="STACK"> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">FIRST</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Jean-Luc</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set first list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Jean-Luc</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">FIRST</field> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Jean-Luc</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set first order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Jean-Luc</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">LAST</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Beverly</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set last list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Beverly</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">LAST</field> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Beverly</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set last order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Beverly</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">RANDOM</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set random list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">RANDOM</field> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set random order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="true"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">FROM_START</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Pulaski</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set # list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Pulaski</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="true"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">FROM_START</field> + <value name="LIST"> + <block type="logic_ternary" inline="false"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="logic_ternary" inline="false"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Pulaski</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set # order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Pulaski</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="true"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">FROM_END</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Pulaski</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set #-end list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Pulaski</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="true"></mutation> + <field name="MODE">SET</field> + <field name="WHERE">FROM_END</field> + <comment pinned="false" h="88" w="258">The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index.</comment> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Pulaski</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">set #-end order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Pulaski</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </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="13" y="12538"> + <field name="NAME">test insert</field> + <comment pinned="false" h="80" w="160">Tests the "insert" block.</comment> + <statement name="STACK"> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">FIRST</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert first list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">FIRST</field> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert first order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">LAST</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert last list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">LAST</field> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert last order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">RANDOM</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert random list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">4</field> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="false"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">RANDOM</field> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert random order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_length" inline="false"> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">4</field> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="true"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">FROM_START</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert # list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="true"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">FROM_START</field> + <value name="LIST"> + <block type="logic_ternary" inline="false"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert # order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="true"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">FROM_END</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert #-end list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_setIndex"> + <mutation at="true"></mutation> + <field name="MODE">INSERT</field> + <field name="WHERE">FROM_END</field> + <comment pinned="false" h="77" w="263">The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index.</comment> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="TO"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">insert #-end order list</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Picard</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Data</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Riker</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Crusher</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </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="13" y="14363"> + <field name="NAME">test sublist simple</field> + <comment pinned="false" h="80" w="160">Tests the "get sub-list" block with a variable.</comment> + <statement name="STACK"> + <block type="variables_set" inline="false"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="5"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Columbia</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + <value name="ADD4"> + <block type="text"> + <field name="TEXT">Endeavour</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # simple order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT2"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist #-end simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">FROM_END</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist #-end simple order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">FROM_END</field> + <comment pinned="false" h="80" w="265">The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index.</comment> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist first-last simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="false" at2="false"></mutation> + <field name="WHERE1">FIRST</field> + <field name="WHERE2">LAST</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">changing list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="5"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Columbia</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + <value name="ADD4"> + <block type="text"> + <field name="TEXT">Endeavour</field> + </block> + </value> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">list copy</field> + <value name="VALUE"> + <block type="lists_getSublist"> + <mutation at1="false" at2="false"></mutation> + <field name="WHERE1">FIRST</field> + <field name="WHERE2">LAST</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">changing list</field> + </block> + </value> + </block> + </value> + <next> + <block type="lists_getIndex"> + <mutation statement="true" at="false"></mutation> + <field name="MODE">REMOVE</field> + <field name="WHERE">RANDOM</field> + <value name="VALUE"> + <block type="variables_get"> + <field name="VAR">changing list</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist first-last simple copy check</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">list copy</field> + </block> + </value> + <value name="EXPECTED"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # #-end simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_END</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist #-end # simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist first # simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="false" at2="true"></mutation> + <field name="WHERE1">FIRST</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Columbia</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist first #-end simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="false" at2="true"></mutation> + <field name="WHERE1">FIRST</field> + <field name="WHERE2">FROM_END</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Columbia</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # last simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="false"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">LAST</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Endeavour</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist #-end last simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="false"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">LAST</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Endeavour</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist all with # #-end simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_END</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist all with #-end # simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">4</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">4</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist all with # #-end math simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_END</field> + <comment pinned="false" h="93" w="347">Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end.</comment> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="AT1"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </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_defreturn" x="13" y="16238"> + <field name="NAME">get space shuttles</field> + <comment pinned="false" h="80" w="160">Creates a list for use with the sublist test.</comment> + <statement name="STACK"> + <block type="math_change"> + <field name="VAR">number of calls</field> + <value name="DELTA"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </statement> + <value name="RETURN"> + <block type="lists_create_with" inline="true"> + <mutation items="5"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Columbia</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + <value name="ADD4"> + <block type="text"> + <field name="TEXT">Endeavour</field> + </block> + </value> + </block> + </value> + </block> + <block type="procedures_defnoreturn" x="13" y="16363"> + <field name="NAME">test sublist complex</field> + <comment pinned="false" h="80" w="160">Tests the "get sub-list" block with a function call.</comment> + <statement name="STACK"> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # start complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist # start complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # start order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT1"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT2"> + <block type="logic_ternary"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist # start order complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # end complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">FROM_END</field> + <comment pinned="false" h="78" w="267">The order for index for #-end is addition because this will catch errors in generators where most perform the operation ... - index.</comment> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # end complex number of calls</field> + </block> + </value> + <value name="ACTUAL"> + <block type="variables_get"> + <field name="VAR">number of calls</field> + </block> + </value> + <value name="EXPECTED"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # end order complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">FROM_END</field> + <value name="LIST"> + <block type="logic_ternary" inline="false"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="AT1"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist # end order complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist first-last complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="false" at2="false"></mutation> + <field name="WHERE1">FIRST</field> + <field name="WHERE2">LAST</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist first-last complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # #-end complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_END</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">1</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist # #-end complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist #-end # complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">2</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist #-end # complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist first # complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="false" at2="true"></mutation> + <field name="WHERE1">FIRST</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Columbia</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist first # complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist first #-end complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="false" at2="true"></mutation> + <field name="WHERE1">FIRST</field> + <field name="WHERE2">FROM_END</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Columbia</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist first #-end complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist # last complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="false"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">LAST</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="2"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Endeavour</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist # last complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist #-end last simple</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="false"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">LAST</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">3</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="4"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Challenger</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Discovery</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Atlantis</field> + </block> + </value> + <value name="ADD3"> + <block type="text"> + <field name="TEXT">Endeavour</field> + </block> + </value> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist #-end last simple</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist all with # #-end complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_END</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist all with # #-end complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist all with #-end # complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_END</field> + <field name="WHERE2">FROM_START</field> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT1"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">4</field> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">4</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist all with #-end # complex</field> + </block> + </value> + <next> + <block type="variables_set"> + <field name="VAR">number of calls</field> + <value name="VALUE"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sublist all with # #-end math complex</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_getSublist"> + <mutation at1="true" at2="true"></mutation> + <field name="WHERE1">FROM_START</field> + <field name="WHERE2">FROM_END</field> + <comment pinned="false" h="96" w="315">Checks that the whole list is properly retrieved even if the value for start and end is not a simple number. This is especially important in generators where sublist uses [x:length - y] for # #-end.</comment> + <value name="LIST"> + <block type="procedures_callreturn"> + <mutation name="get space shuttles"></mutation> + </block> + </value> + <value name="AT1"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="AT2"> + <block type="math_arithmetic"> + <field name="OP">ADD</field> + <value name="A"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + <value name="B"> + <block type="unittest_adjustindex"> + <value name="INDEX"> + <block type="math_number"> + <field name="NUM">0</field> + </block> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" inline="true"> + <mutation name="check number of calls"> + <arg name="test name"></arg> + </mutation> + <value name="ARG0"> + <block type="text"> + <field name="TEXT">sublist all with # #-end math complex</field> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </block> + </next> + </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="13" y="18963"> + <field name="NAME">test join</field> + <comment pinned="false" h="80" w="160">Tests the "join" block.</comment> + <statement name="STACK"> + <block type="variables_set"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Vulcan</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Klingon</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Borg</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">join</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_split"> + <mutation mode="JOIN"></mutation> + <field name="MODE">JOIN</field> + <value name="INPUT"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="DELIM"> + <block type="text"> + <field name="TEXT">,</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Vulcan,Klingon,Borg</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">join order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_split"> + <mutation mode="JOIN"></mutation> + <field name="MODE">JOIN</field> + <value name="INPUT"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="DELIM"> + <block type="text"> + <field name="TEXT">,</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="text"> + <field name="TEXT">Vulcan,Klingon,Borg</field> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defnoreturn" x="13" y="19263"> + <field name="NAME">test split</field> + <comment pinned="false" h="80" w="160">Tests the "split" block.</comment> + <statement name="STACK"> + <block type="variables_set"> + <field name="VAR">text</field> + <value name="VALUE"> + <block type="text"> + <field name="TEXT">Vulcan,Klingon,Borg</field> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">split</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_split"> + <mutation mode="SPLIT"></mutation> + <field name="MODE">SPLIT</field> + <value name="INPUT"> + <block type="variables_get"> + <field name="VAR">text</field> + </block> + </value> + <value name="DELIM"> + <block type="text"> + <field name="TEXT">,</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Vulcan</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Klingon</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Borg</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">split order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_split"> + <mutation mode="SPLIT"></mutation> + <field name="MODE">SPLIT</field> + <value name="INPUT"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">text</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + <value name="DELIM"> + <block type="text"> + <field name="TEXT">,</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Vulcan</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Klingon</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Borg</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defnoreturn" x="13" y="19563"> + <field name="NAME">test sort alphabetic</field> + <comment pinned="false" h="80" w="160">Tests the "alphabetic sort" block.</comment> + <statement name="STACK"> + <block type="variables_set"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Vulcan</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">klingon</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Borg</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sort alphabetic ascending</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_sort"> + <field name="TYPE">TEXT</field> + <field name="DIRECTION">1</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Borg</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Vulcan</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">klingon</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sort alphabetic ascending order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_sort"> + <field name="TYPE">TEXT</field> + <field name="DIRECTION">1</field> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Borg</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">Vulcan</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">klingon</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defnoreturn" x="13" y="19863"> + <field name="NAME">test sort ignoreCase</field> + <comment pinned="false" h="80" w="160">Tests the "alphabetic sort ignore case" block.</comment> + <statement name="STACK"> + <block type="variables_set"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Vulcan</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">klingon</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Borg</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sort ignore case ascending</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_sort"> + <field name="TYPE">IGNORE_CASE</field> + <field name="DIRECTION">1</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Borg</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">klingon</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Vulcan</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sort ignore case ascending order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_sort"> + <field name="TYPE">IGNORE_CASE</field> + <field name="DIRECTION">1</field> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="text"> + <field name="TEXT">Borg</field> + </block> + </value> + <value name="ADD1"> + <block type="text"> + <field name="TEXT">klingon</field> + </block> + </value> + <value name="ADD2"> + <block type="text"> + <field name="TEXT">Vulcan</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> + <block type="procedures_defnoreturn" x="13" y="20163"> + <field name="NAME">test sort numeric</field> + <comment pinned="false" h="80" w="160">Tests the "numeric sort" block.</comment> + <statement name="STACK"> + <block type="variables_set"> + <field name="VAR">list</field> + <value name="VALUE"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="math_number"> + <field name="NUM">8</field> + </block> + </value> + <value name="ADD1"> + <block type="math_number"> + <field name="NUM">18</field> + </block> + </value> + <value name="ADD2"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sort numeric descending</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_sort"> + <field name="TYPE">NUMERIC</field> + <field name="DIRECTION">-1</field> + <value name="LIST"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="math_number"> + <field name="NUM">18</field> + </block> + </value> + <value name="ADD1"> + <block type="math_number"> + <field name="NUM">8</field> + </block> + </value> + <value name="ADD2"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + <next> + <block type="unittest_assertequals" inline="false"> + <value name="MESSAGE"> + <block type="text"> + <field name="TEXT">sort numeric descending order</field> + </block> + </value> + <value name="ACTUAL"> + <block type="lists_sort"> + <field name="TYPE">NUMERIC</field> + <field name="DIRECTION">-1</field> + <value name="LIST"> + <block type="logic_ternary" inline="true"> + <value name="IF"> + <block type="logic_boolean"> + <field name="BOOL">TRUE</field> + </block> + </value> + <value name="THEN"> + <block type="variables_get"> + <field name="VAR">list</field> + </block> + </value> + <value name="ELSE"> + <block type="logic_null"></block> + </value> + </block> + </value> + </block> + </value> + <value name="EXPECTED"> + <block type="lists_create_with" inline="true"> + <mutation items="3"></mutation> + <value name="ADD0"> + <block type="math_number"> + <field name="NUM">18</field> + </block> + </value> + <value name="ADD1"> + <block type="math_number"> + <field name="NUM">8</field> + </block> + </value> + <value name="ADD2"> + <block type="math_number"> + <field name="NUM">-1</field> + </block> + </value> + </block> + </value> + </block> + </next> + </block> + </next> + </block> + </statement> + </block> +</xml>
\ No newline at end of file |