summaryrefslogtreecommitdiff
path: root/blockly/tests/generators/lists.xml
diff options
context:
space:
mode:
Diffstat (limited to 'blockly/tests/generators/lists.xml')
-rw-r--r--blockly/tests/generators/lists.xml8134
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