mirror of
https://github.com/google/blockly.git
synced 2026-01-07 00:50:27 +01:00
736 lines
40 KiB
XML
736 lines
40 KiB
XML
<xml xmlns="https://developers.google.com/blockly/xml">
|
|
<block type="unittest_main" x="19" y="106">
|
|
<field name="SUITE_NAME">Loops 3</field>
|
|
<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>
|