Files
blockly/tests/generators/loops3.xml

705 lines
39 KiB
XML

<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="600" y="300">
<mutation></mutation>
<title name="NAME">test break</title>
<statement name="STACK">
<block type="variables_set" inline="false">
<title name="VAR">count</title>
<value name="VALUE">
<block type="math_number">
<title name="NUM">1</title>
</block>
</value>
<next>
<block type="controls_whileUntil" inline="false">
<title name="MODE">WHILE</title>
<value name="BOOL">
<block type="logic_compare" inline="true">
<title name="OP">NEQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">10</title>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="controls_if" inline="false">
<value name="IF0">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">5</title>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_flow_statements">
<title name="FLOW">BREAK</title>
</block>
</statement>
<next>
<block type="math_change" inline="false">
<title name="VAR">count</title>
<value name="DELTA">
<block type="math_number">
<title name="NUM">1</title>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="unittest_assertequals" inline="false">
<title name="MESSAGE">while break</title>
<value name="ACTUAL">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="EXPECTED">
<block type="math_number">
<title name="NUM">5</title>
</block>
</value>
<next>
<block type="variables_set" inline="false">
<title name="VAR">count</title>
<value name="VALUE">
<block type="math_number">
<title name="NUM">1</title>
</block>
</value>
<next>
<block type="controls_whileUntil" inline="false">
<title name="MODE">UNTIL</title>
<value name="BOOL">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">10</title>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="controls_if" inline="false">
<value name="IF0">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">5</title>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_flow_statements">
<title name="FLOW">BREAK</title>
</block>
</statement>
<next>
<block type="math_change" inline="false">
<title name="VAR">count</title>
<value name="DELTA">
<block type="math_number">
<title name="NUM">1</title>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="unittest_assertequals" inline="false">
<title name="MESSAGE">until break</title>
<value name="ACTUAL">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="EXPECTED">
<block type="math_number">
<title name="NUM">5</title>
</block>
</value>
<next>
<block type="variables_set" inline="false">
<title name="VAR">log</title>
<value name="VALUE">
<block type="text">
<title name="TEXT"></title>
</block>
</value>
<next>
<block type="controls_for" inline="true">
<title name="VAR">x</title>
<value name="FROM">
<block type="math_number">
<title name="NUM">1</title>
</block>
</value>
<value name="TO">
<block type="math_number">
<title name="NUM">8</title>
</block>
</value>
<statement name="DO">
<block type="controls_if" inline="false">
<value name="IF0">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">x</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">5</title>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_flow_statements">
<title name="FLOW">BREAK</title>
</block>
</statement>
<next>
<block type="text_append" inline="false">
<title name="VAR">log</title>
<value name="TEXT">
<block type="variables_get">
<title name="VAR">x</title>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="unittest_assertequals" inline="false">
<title name="MESSAGE">count break</title>
<value name="ACTUAL">
<block type="variables_get">
<title name="VAR">log</title>
</block>
</value>
<value name="EXPECTED">
<block type="text">
<title name="TEXT">1234</title>
</block>
</value>
<next>
<block type="variables_set" inline="false">
<title name="VAR">log</title>
<value name="VALUE">
<block type="text">
<title name="TEXT"></title>
</block>
</value>
<next>
<block type="controls_forEach" inline="false">
<title name="VAR">x</title>
<value name="LIST">
<block type="lists_create_with" inline="false">
<mutation items="4"></mutation>
<value name="ADD0">
<block type="text">
<title name="TEXT">a</title>
</block>
</value>
<value name="ADD1">
<block type="text">
<title name="TEXT">b</title>
</block>
</value>
<value name="ADD2">
<block type="text">
<title name="TEXT">c</title>
</block>
</value>
<value name="ADD3">
<block type="text">
<title name="TEXT">d</title>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="controls_if" inline="false">
<value name="IF0">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">x</title>
</block>
</value>
<value name="B">
<block type="text">
<title name="TEXT">c</title>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_flow_statements">
<title name="FLOW">BREAK</title>
</block>
</statement>
<next>
<block type="text_append" inline="false">
<title name="VAR">log</title>
<value name="TEXT">
<block type="variables_get">
<title name="VAR">x</title>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="unittest_assertequals" inline="false">
<title name="MESSAGE">for break</title>
<value name="ACTUAL">
<block type="variables_get">
<title name="VAR">log</title>
</block>
</value>
<value name="EXPECTED">
<block type="text">
<title name="TEXT">ab</title>
</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>
<block type="procedures_defnoreturn" x="13" y="300">
<mutation></mutation>
<title name="NAME">test continue</title>
<statement name="STACK">
<block type="variables_set" inline="false">
<title name="VAR">log</title>
<value name="VALUE">
<block type="text">
<title name="TEXT"></title>
</block>
</value>
<next>
<block type="variables_set" inline="false">
<title name="VAR">count</title>
<value name="VALUE">
<block type="math_number">
<title name="NUM">0</title>
</block>
</value>
<next>
<block type="controls_whileUntil" inline="false">
<title name="MODE">WHILE</title>
<value name="BOOL">
<block type="logic_compare" inline="true">
<title name="OP">NEQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">8</title>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="math_change" inline="false">
<title name="VAR">count</title>
<value name="DELTA">
<block type="math_number">
<title name="NUM">1</title>
</block>
</value>
<next>
<block type="controls_if" inline="false">
<value name="IF0">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">5</title>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_flow_statements">
<title name="FLOW">CONTINUE</title>
</block>
</statement>
<next>
<block type="text_append" inline="false">
<title name="VAR">log</title>
<value name="TEXT">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="unittest_assertequals" inline="false">
<title name="MESSAGE">while continue</title>
<value name="ACTUAL">
<block type="variables_get">
<title name="VAR">log</title>
</block>
</value>
<value name="EXPECTED">
<block type="text">
<title name="TEXT">1234678</title>
</block>
</value>
<next>
<block type="variables_set" inline="false">
<title name="VAR">log</title>
<value name="VALUE">
<block type="text">
<title name="TEXT"></title>
</block>
</value>
<next>
<block type="variables_set" inline="false">
<title name="VAR">count</title>
<value name="VALUE">
<block type="math_number">
<title name="NUM">0</title>
</block>
</value>
<next>
<block type="controls_whileUntil" inline="false">
<title name="MODE">UNTIL</title>
<value name="BOOL">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">8</title>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="math_change" inline="false">
<title name="VAR">count</title>
<value name="DELTA">
<block type="math_number">
<title name="NUM">1</title>
</block>
</value>
<next>
<block type="controls_if" inline="false">
<value name="IF0">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">5</title>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_flow_statements">
<title name="FLOW">CONTINUE</title>
</block>
</statement>
<next>
<block type="text_append" inline="false">
<title name="VAR">log</title>
<value name="TEXT">
<block type="variables_get">
<title name="VAR">count</title>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="unittest_assertequals" inline="false">
<title name="MESSAGE">until continue</title>
<value name="ACTUAL">
<block type="variables_get">
<title name="VAR">log</title>
</block>
</value>
<value name="EXPECTED">
<block type="text">
<title name="TEXT">1234678</title>
</block>
</value>
<next>
<block type="variables_set" inline="false">
<title name="VAR">log</title>
<value name="VALUE">
<block type="text">
<title name="TEXT"></title>
</block>
</value>
<next>
<block type="controls_for" inline="true">
<title name="VAR">x</title>
<value name="FROM">
<block type="math_number">
<title name="NUM">1</title>
</block>
</value>
<value name="TO">
<block type="math_number">
<title name="NUM">8</title>
</block>
</value>
<statement name="DO">
<block type="controls_if" inline="false">
<value name="IF0">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">x</title>
</block>
</value>
<value name="B">
<block type="math_number">
<title name="NUM">5</title>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_flow_statements">
<title name="FLOW">CONTINUE</title>
</block>
</statement>
<next>
<block type="text_append" inline="false">
<title name="VAR">log</title>
<value name="TEXT">
<block type="variables_get">
<title name="VAR">x</title>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="unittest_assertequals" inline="false">
<title name="MESSAGE">count continue</title>
<value name="ACTUAL">
<block type="variables_get">
<title name="VAR">log</title>
</block>
</value>
<value name="EXPECTED">
<block type="text">
<title name="TEXT">1234678</title>
</block>
</value>
<next>
<block type="variables_set" inline="false">
<title name="VAR">log</title>
<value name="VALUE">
<block type="text">
<title name="TEXT"></title>
</block>
</value>
<next>
<block type="controls_forEach" inline="false">
<title name="VAR">x</title>
<value name="LIST">
<block type="lists_create_with" inline="false">
<mutation items="4"></mutation>
<value name="ADD0">
<block type="text">
<title name="TEXT">a</title>
</block>
</value>
<value name="ADD1">
<block type="text">
<title name="TEXT">b</title>
</block>
</value>
<value name="ADD2">
<block type="text">
<title name="TEXT">c</title>
</block>
</value>
<value name="ADD3">
<block type="text">
<title name="TEXT">d</title>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="controls_if" inline="false">
<value name="IF0">
<block type="logic_compare" inline="true">
<title name="OP">EQ</title>
<value name="A">
<block type="variables_get">
<title name="VAR">x</title>
</block>
</value>
<value name="B">
<block type="text">
<title name="TEXT">c</title>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_flow_statements">
<title name="FLOW">CONTINUE</title>
</block>
</statement>
<next>
<block type="text_append" inline="false">
<title name="VAR">log</title>
<value name="TEXT">
<block type="variables_get">
<title name="VAR">x</title>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="unittest_assertequals" inline="false">
<title name="MESSAGE">for continue</title>
<value name="ACTUAL">
<block type="variables_get">
<title name="VAR">log</title>
</block>
</value>
<value name="EXPECTED">
<block type="text">
<title name="TEXT">abd</title>
</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>
</xml>