summaryrefslogtreecommitdiff
path: root/blockly/tests/generators/loops3.xml
diff options
context:
space:
mode:
Diffstat (limited to 'blockly/tests/generators/loops3.xml')
-rw-r--r--blockly/tests/generators/loops3.xml734
1 files changed, 734 insertions, 0 deletions
diff --git a/blockly/tests/generators/loops3.xml b/blockly/tests/generators/loops3.xml
new file mode 100644
index 0000000..508b887
--- /dev/null
+++ b/blockly/tests/generators/loops3.xml
@@ -0,0 +1,734 @@
+<xml xmlns="http://www.w3.org/1999/xhtml">
+ <block type="unittest_main" x="19" y="106">
+ <statement name="DO">
+ <block type="procedures_callnoreturn">
+ <mutation name="test break"></mutation>
+ <next>
+ <block type="procedures_callnoreturn">
+ <mutation name="test continue"></mutation>
+ </block>
+ </next>
+ </block>
+ </statement>
+ </block>
+ <block type="procedures_defnoreturn" x="13" y="300">
+ <field name="NAME">test continue</field>
+ <statement name="STACK">
+ <block type="variables_set" inline="false">
+ <field name="VAR">log</field>
+ <value name="VALUE">
+ <block type="text">
+ <field name="TEXT"></field>
+ </block>
+ </value>
+ <next>
+ <block type="variables_set" inline="false">
+ <field name="VAR">count</field>
+ <value name="VALUE">
+ <block type="math_number">
+ <field name="NUM">0</field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_whileUntil" inline="false">
+ <field name="MODE">WHILE</field>
+ <value name="BOOL">
+ <block type="logic_compare">
+ <field name="OP">NEQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">8</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO">
+ <block type="math_change" inline="false">
+ <field name="VAR">count</field>
+ <value name="DELTA">
+ <block type="math_number">
+ <field name="NUM">1</field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_if" inline="false">
+ <value name="IF0">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">5</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO0">
+ <block type="controls_flow_statements">
+ <field name="FLOW">CONTINUE</field>
+ </block>
+ </statement>
+ <next>
+ <block type="text_append" inline="false">
+ <field name="VAR">log</field>
+ <value name="TEXT">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ </block>
+ </next>
+ </block>
+ </next>
+ </block>
+ </statement>
+ <next>
+ <block type="unittest_assertequals" inline="false">
+ <value name="MESSAGE">
+ <block type="text">
+ <field name="TEXT">while continue</field>
+ </block>
+ </value>
+ <value name="ACTUAL">
+ <block type="variables_get">
+ <field name="VAR">log</field>
+ </block>
+ </value>
+ <value name="EXPECTED">
+ <block type="text">
+ <field name="TEXT">1234678</field>
+ </block>
+ </value>
+ <next>
+ <block type="variables_set" inline="false">
+ <field name="VAR">log</field>
+ <value name="VALUE">
+ <block type="text">
+ <field name="TEXT"></field>
+ </block>
+ </value>
+ <next>
+ <block type="variables_set" inline="false">
+ <field name="VAR">count</field>
+ <value name="VALUE">
+ <block type="math_number">
+ <field name="NUM">0</field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_whileUntil" inline="false">
+ <field name="MODE">UNTIL</field>
+ <value name="BOOL">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">8</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO">
+ <block type="math_change" inline="false">
+ <field name="VAR">count</field>
+ <value name="DELTA">
+ <block type="math_number">
+ <field name="NUM">1</field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_if" inline="false">
+ <value name="IF0">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">5</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO0">
+ <block type="controls_flow_statements">
+ <field name="FLOW">CONTINUE</field>
+ </block>
+ </statement>
+ <next>
+ <block type="text_append" inline="false">
+ <field name="VAR">log</field>
+ <value name="TEXT">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ </block>
+ </next>
+ </block>
+ </next>
+ </block>
+ </statement>
+ <next>
+ <block type="unittest_assertequals" inline="false">
+ <value name="MESSAGE">
+ <block type="text">
+ <field name="TEXT">until continue</field>
+ </block>
+ </value>
+ <value name="ACTUAL">
+ <block type="variables_get">
+ <field name="VAR">log</field>
+ </block>
+ </value>
+ <value name="EXPECTED">
+ <block type="text">
+ <field name="TEXT">1234678</field>
+ </block>
+ </value>
+ <next>
+ <block type="variables_set" inline="false">
+ <field name="VAR">log</field>
+ <value name="VALUE">
+ <block type="text">
+ <field name="TEXT"></field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_for">
+ <field name="VAR">x</field>
+ <value name="FROM">
+ <block type="math_number">
+ <field name="NUM">1</field>
+ </block>
+ </value>
+ <value name="TO">
+ <block type="math_number">
+ <field name="NUM">8</field>
+ </block>
+ </value>
+ <statement name="DO">
+ <block type="controls_if" inline="false">
+ <value name="IF0">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">x</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">5</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO0">
+ <block type="controls_flow_statements">
+ <field name="FLOW">CONTINUE</field>
+ </block>
+ </statement>
+ <next>
+ <block type="text_append" inline="false">
+ <field name="VAR">log</field>
+ <value name="TEXT">
+ <block type="variables_get">
+ <field name="VAR">x</field>
+ </block>
+ </value>
+ </block>
+ </next>
+ </block>
+ </statement>
+ <next>
+ <block type="unittest_assertequals" inline="false">
+ <value name="MESSAGE">
+ <block type="text">
+ <field name="TEXT">count continue</field>
+ </block>
+ </value>
+ <value name="ACTUAL">
+ <block type="variables_get">
+ <field name="VAR">log</field>
+ </block>
+ </value>
+ <value name="EXPECTED">
+ <block type="text">
+ <field name="TEXT">1234678</field>
+ </block>
+ </value>
+ <next>
+ <block type="variables_set" inline="false">
+ <field name="VAR">log</field>
+ <value name="VALUE">
+ <block type="text">
+ <field name="TEXT"></field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_forEach" inline="false">
+ <field name="VAR">x</field>
+ <value name="LIST">
+ <block type="lists_create_with" inline="false">
+ <mutation items="4"></mutation>
+ <value name="ADD0">
+ <block type="text">
+ <field name="TEXT">a</field>
+ </block>
+ </value>
+ <value name="ADD1">
+ <block type="text">
+ <field name="TEXT">b</field>
+ </block>
+ </value>
+ <value name="ADD2">
+ <block type="text">
+ <field name="TEXT">c</field>
+ </block>
+ </value>
+ <value name="ADD3">
+ <block type="text">
+ <field name="TEXT">d</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO">
+ <block type="controls_if" inline="false">
+ <value name="IF0">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">x</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="text">
+ <field name="TEXT">c</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO0">
+ <block type="controls_flow_statements">
+ <field name="FLOW">CONTINUE</field>
+ </block>
+ </statement>
+ <next>
+ <block type="text_append" inline="false">
+ <field name="VAR">log</field>
+ <value name="TEXT">
+ <block type="variables_get">
+ <field name="VAR">x</field>
+ </block>
+ </value>
+ </block>
+ </next>
+ </block>
+ </statement>
+ <next>
+ <block type="unittest_assertequals" inline="false">
+ <value name="MESSAGE">
+ <block type="text">
+ <field name="TEXT">for continue</field>
+ </block>
+ </value>
+ <value name="ACTUAL">
+ <block type="variables_get">
+ <field name="VAR">log</field>
+ </block>
+ </value>
+ <value name="EXPECTED">
+ <block type="text">
+ <field name="TEXT">abd</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>
+ </statement>
+ </block>
+ <block type="procedures_defnoreturn" x="600" y="300">
+ <field name="NAME">test break</field>
+ <statement name="STACK">
+ <block type="variables_set" inline="false">
+ <field name="VAR">count</field>
+ <value name="VALUE">
+ <block type="math_number">
+ <field name="NUM">1</field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_whileUntil" inline="false">
+ <field name="MODE">WHILE</field>
+ <value name="BOOL">
+ <block type="logic_compare">
+ <field name="OP">NEQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">10</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO">
+ <block type="controls_if" inline="false">
+ <value name="IF0">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">5</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO0">
+ <block type="controls_flow_statements">
+ <field name="FLOW">BREAK</field>
+ </block>
+ </statement>
+ <next>
+ <block type="math_change" inline="false">
+ <field name="VAR">count</field>
+ <value name="DELTA">
+ <block type="math_number">
+ <field name="NUM">1</field>
+ </block>
+ </value>
+ </block>
+ </next>
+ </block>
+ </statement>
+ <next>
+ <block type="unittest_assertequals" inline="false">
+ <value name="MESSAGE">
+ <block type="text">
+ <field name="TEXT">while break</field>
+ </block>
+ </value>
+ <value name="ACTUAL">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="EXPECTED">
+ <block type="math_number">
+ <field name="NUM">5</field>
+ </block>
+ </value>
+ <next>
+ <block type="variables_set" inline="false">
+ <field name="VAR">count</field>
+ <value name="VALUE">
+ <block type="math_number">
+ <field name="NUM">1</field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_whileUntil" inline="false">
+ <field name="MODE">UNTIL</field>
+ <value name="BOOL">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">10</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO">
+ <block type="controls_if" inline="false">
+ <value name="IF0">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">5</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO0">
+ <block type="controls_flow_statements">
+ <field name="FLOW">BREAK</field>
+ </block>
+ </statement>
+ <next>
+ <block type="math_change" inline="false">
+ <field name="VAR">count</field>
+ <value name="DELTA">
+ <block type="math_number">
+ <field name="NUM">1</field>
+ </block>
+ </value>
+ </block>
+ </next>
+ </block>
+ </statement>
+ <next>
+ <block type="unittest_assertequals" inline="false">
+ <value name="MESSAGE">
+ <block type="text">
+ <field name="TEXT">until break</field>
+ </block>
+ </value>
+ <value name="ACTUAL">
+ <block type="variables_get">
+ <field name="VAR">count</field>
+ </block>
+ </value>
+ <value name="EXPECTED">
+ <block type="math_number">
+ <field name="NUM">5</field>
+ </block>
+ </value>
+ <next>
+ <block type="variables_set" inline="false">
+ <field name="VAR">log</field>
+ <value name="VALUE">
+ <block type="text">
+ <field name="TEXT"></field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_for">
+ <field name="VAR">x</field>
+ <value name="FROM">
+ <block type="math_number">
+ <field name="NUM">1</field>
+ </block>
+ </value>
+ <value name="TO">
+ <block type="math_number">
+ <field name="NUM">8</field>
+ </block>
+ </value>
+ <statement name="DO">
+ <block type="controls_if" inline="false">
+ <value name="IF0">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">x</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="math_number">
+ <field name="NUM">5</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO0">
+ <block type="controls_flow_statements">
+ <field name="FLOW">BREAK</field>
+ </block>
+ </statement>
+ <next>
+ <block type="text_append" inline="false">
+ <field name="VAR">log</field>
+ <value name="TEXT">
+ <block type="variables_get">
+ <field name="VAR">x</field>
+ </block>
+ </value>
+ </block>
+ </next>
+ </block>
+ </statement>
+ <next>
+ <block type="unittest_assertequals" inline="false">
+ <value name="MESSAGE">
+ <block type="text">
+ <field name="TEXT">count break</field>
+ </block>
+ </value>
+ <value name="ACTUAL">
+ <block type="variables_get">
+ <field name="VAR">log</field>
+ </block>
+ </value>
+ <value name="EXPECTED">
+ <block type="text">
+ <field name="TEXT">1234</field>
+ </block>
+ </value>
+ <next>
+ <block type="variables_set" inline="false">
+ <field name="VAR">log</field>
+ <value name="VALUE">
+ <block type="text">
+ <field name="TEXT"></field>
+ </block>
+ </value>
+ <next>
+ <block type="controls_forEach" inline="false">
+ <field name="VAR">x</field>
+ <value name="LIST">
+ <block type="lists_create_with" inline="false">
+ <mutation items="4"></mutation>
+ <value name="ADD0">
+ <block type="text">
+ <field name="TEXT">a</field>
+ </block>
+ </value>
+ <value name="ADD1">
+ <block type="text">
+ <field name="TEXT">b</field>
+ </block>
+ </value>
+ <value name="ADD2">
+ <block type="text">
+ <field name="TEXT">c</field>
+ </block>
+ </value>
+ <value name="ADD3">
+ <block type="text">
+ <field name="TEXT">d</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO">
+ <block type="controls_if" inline="false">
+ <value name="IF0">
+ <block type="logic_compare">
+ <field name="OP">EQ</field>
+ <value name="A">
+ <block type="variables_get">
+ <field name="VAR">x</field>
+ </block>
+ </value>
+ <value name="B">
+ <block type="text">
+ <field name="TEXT">c</field>
+ </block>
+ </value>
+ </block>
+ </value>
+ <statement name="DO0">
+ <block type="controls_flow_statements">
+ <field name="FLOW">BREAK</field>
+ </block>
+ </statement>
+ <next>
+ <block type="text_append" inline="false">
+ <field name="VAR">log</field>
+ <value name="TEXT">
+ <block type="variables_get">
+ <field name="VAR">x</field>
+ </block>
+ </value>
+ </block>
+ </next>
+ </block>
+ </statement>
+ <next>
+ <block type="unittest_assertequals" inline="false">
+ <value name="MESSAGE">
+ <block type="text">
+ <field name="TEXT">for break</field>
+ </block>
+ </value>
+ <value name="ACTUAL">
+ <block type="variables_get">
+ <field name="VAR">log</field>
+ </block>
+ </value>
+ <value name="EXPECTED">
+ <block type="text">
+ <field name="TEXT">ab</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>
+ </statement>
+ </block>
+</xml>