<snapdata remixID="8814732"><project name="Lab 3.4 unit tests (fornite default dances)" app="Snap! 5.1, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" volume="100" pan="0" lines="round" ternary="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="56.923076923076906" y="47"><block s="receiveGo"></block><block s="doSetVar"><l>Number of passing tests</l><l>0</l></block><block s="doSetVar"><l>Number of failing tests</l><l>0</l></block><custom-block s="test min block"></custom-block><custom-block s="test max block"></custom-block><custom-block s="test between block"></custom-block><custom-block s="test min letter count block"></custom-block><custom-block s="test distance to block"></custom-block><custom-block s="test contains letter block"></custom-block><block s="bubble"><block s="reportJoinWords"><list><l>Tests completed with </l><block var="Number of passing tests"/><l> passing and </l><block var="Number of failing tests"/><l> failing.</l></list></block></block></script><script x="242" y="342"><custom-block s="%txt contains letter %s ?"><l></l><l></l></custom-block></script></scripts></sprite><watcher var="Number of passing tests" style="normal" x="10" y="10" color="243,118,29"/><watcher var="Number of failing tests" style="normal" x="10" y="36.60000199999999" color="243,118,29"/><watcher var="tests" style="normal" x="10" y="209.30000800000005" color="243,118,29" hidden="true"/><watcher var="min tests" style="normal" x="10" y="328.80001" color="243,118,29" hidden="true"/><watcher var="qux" style="normal" x="10" y="240.499998" color="243,118,29" hidden="true"/><watcher var="between tests" style="normal" x="23" y="260.39999800000004" color="243,118,29" hidden="true"/><watcher var="max tests" style="normal" x="22" y="212.39999800000007" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="expect equals %&apos;expected&apos; %&apos;actual&apos; %&apos;message&apos;" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="expected"/><block var="actual"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doAsk"><block s="reportJoinWords"><list><l>FAILURE:</l><block var="message"/><l>. Expected: </l><block var="expected"/><l> actual: </l><block var="actual"/><l>. Press enter to continue.</l></list></block></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="count %&apos;list&apos; matching %&apos;criterion&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doDeclareVariables"><list><l>item</l><l>num matching</l></list></block><block s="doSetVar"><l>num matching</l><l>0</l></block><block s="doUntil"><block s="reportEquals"><block s="reportListLength"><block var="list"/></block><l>0</l></block><script><block s="doIf"><block s="evaluate"><block var="criterion"/><list><block s="reportListItem"><l>1</l><block var="list"/></block></list></block><script><block s="doChangeVar"><l>num matching</l><l>1</l></block></script></block><block s="doSetVar"><l>list</l><block s="reportCDR"><block var="list"/></block></block></script></block><block s="doReport"><block var="num matching"/></block></script></block-definition><block-definition s="accumulate test results %&apos;test results&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doChangeVar"><l>Number of passing tests</l><custom-block s="count True in %l"><block var="test results"/></custom-block></block><block s="doChangeVar"><l>Number of failing tests</l><custom-block s="count False in %l"><block var="test results"/></custom-block></block></script></block-definition><block-definition s="count True in %&apos;list&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="count %l matching %predRing"><block var="list"/><block s="reifyPredicate"><autolambda><block s="reportEquals"><block var="#1"/><block s="reportBoolean"><l><bool>true</bool></l></block></block></autolambda><list><l>#1</l></list></block></custom-block></block></script></block-definition><block-definition s="count False in %&apos;list&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="count %l matching %predRing"><block var="list"/><block s="reifyPredicate"><autolambda><block s="reportEquals"><block var="#1"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></autolambda><list><l>#1</l></list></block></custom-block></block></script></block-definition><block-definition s="test min block" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="accumulate test results %l"><block s="reportNewList"><list><custom-block s="expect equals %s %s %s"><l>7</l><custom-block s="min %n %n"><l>10</l><l>7</l></custom-block><l>min of two positives, left bigger</l></custom-block><custom-block s="expect equals %s %s %s"><l>7</l><custom-block s="min %n %n"><l>7</l><l>10</l></custom-block><l>min of two positives, right bigger</l></custom-block><custom-block s="expect equals %s %s %s"><l>-10</l><custom-block s="min %n %n"><l>-7</l><l>-10</l></custom-block><l>min of two negatives, left bigger</l></custom-block><custom-block s="expect equals %s %s %s"><l>-10</l><custom-block s="min %n %n"><l>-7</l><l>-10</l></custom-block><l>min of two negatives, right bigger</l></custom-block><custom-block s="expect equals %s %s %s"><l>-1</l><custom-block s="min %n %n"><l>6</l><l>-1</l></custom-block><l>min of left positive, right negative</l></custom-block><custom-block s="expect equals %s %s %s"><l>-1</l><custom-block s="min %n %n"><l>-1</l><l>6</l></custom-block><l>min of right positive, left negative</l></custom-block><custom-block s="expect equals %s %s %s"><l>4</l><custom-block s="min %n %n"><l>4</l><l>4</l></custom-block><l>min of equals</l></custom-block></list></block></custom-block></script></block-definition><block-definition s="test max block" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="accumulate test results %l"><block s="reportNewList"><list><custom-block s="expect equals %s %s %s"><custom-block s="max %n %n"><l>3</l><l>7</l></custom-block><l>7</l><l>max, left bigger</l></custom-block><custom-block s="expect equals %s %s %s"><custom-block s="max %n %n"><l>7</l><l>3</l></custom-block><l>7</l><l>max, right bigger</l></custom-block><custom-block s="expect equals %s %s %s"><custom-block s="max %n %n"><l>4</l><l>4</l></custom-block><l>4</l><l>max of equals</l></custom-block></list></block></custom-block></script></block-definition><block-definition s="test between block" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="accumulate test results %l"><block s="reportNewList"><list><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>true</bool></l></block><custom-block s="is %n between %n and %n ?"><l>5</l><l>0</l><l>10</l></custom-block><l>mid between low and high</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>true</bool></l></block><custom-block s="is %n between %n and %n ?"><l>5</l><l>10</l><l>0</l></custom-block><l>mid between high and low</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="is %n between %n and %n ?"><l>0</l><l>5</l><l>10</l></custom-block><l>low between mid and high</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="is %n between %n and %n ?"><l>0</l><l>10</l><l>5</l></custom-block><l>low between high and mid</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="is %n between %n and %n ?"><l>10</l><l>0</l><l>5</l></custom-block><l>high between low and mid</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="is %n between %n and %n ?"><l>10</l><l>5</l><l>0</l></custom-block><l>high between low and mid</l></custom-block></list></block></custom-block></script></block-definition><block-definition s="test min letter count block" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="accumulate test results %l"><block s="reportNewList"><list><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="is %txt at least %n letters long?"><l>brookline</l><l>20</l></custom-block><l>text too short</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>true</bool></l></block><custom-block s="is %txt at least %n letters long?"><l>high</l><l>4</l></custom-block><l>text equal length</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>true</bool></l></block><custom-block s="is %txt at least %n letters long?"><l>school</l><l>-1</l></custom-block><l>text longer</l></custom-block></list></block></custom-block></script></block-definition><block-definition s="test distance to block" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>tests</l></list></block><block s="doSetVar"><l>tests</l><block s="reportNewList"><list><l></l></list></block></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doAddToList"><custom-block s="expect equals %s %s %s"><l>0</l><custom-block s="distance to x: %n y: %n"><l>0</l><l>0</l></custom-block><l>distance (on top of)</l></custom-block><block var="tests"/></block><block s="doAddToList"><custom-block s="expect equals %s %s %s"><l>50</l><custom-block s="distance to x: %n y: %n"><l>30</l><l>40</l></custom-block><l>distance (quadrant 1)</l></custom-block><block var="tests"/></block><block s="doAddToList"><custom-block s="expect equals %s %s %s"><l>130</l><custom-block s="distance to x: %n y: %n"><l>-50</l><l>120</l></custom-block><l>distance (quadrant 2)</l></custom-block><block var="tests"/></block><block s="doAddToList"><custom-block s="expect equals %s %s %s"><l>25</l><custom-block s="distance to x: %n y: %n"><l>-7</l><l>-24</l></custom-block><l>distance (quadrant 3)</l></custom-block><block var="tests"/></block><block s="doAddToList"><custom-block s="expect equals %s %s %s"><l>41</l><custom-block s="distance to x: %n y: %n"><l>40</l><l>-9</l></custom-block><l>distance (quadrant 4)</l></custom-block><block var="tests"/></block><block s="gotoXY"><l>30</l><l>40</l><comment w="174.6153846153846" collapsed="false">We already tested above distance to 30,40 when the sprite was at 0,0. Now we turn that around and have the sprite at 30,40 and compute the distance to 0,0.</comment></block><block s="doAddToList"><custom-block s="expect equals %s %s %s"><l>50</l><custom-block s="distance to x: %n y: %n"><l>0</l><l>0</l></custom-block><l>distance (symmetric)</l></custom-block><block var="tests"/></block><block s="gotoXY"><l>0</l><l>0</l></block><custom-block s="accumulate test results %l"><block var="tests"/></custom-block></script></block-definition><block-definition s="test contains letter block" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="accumulate test results %l"><block s="reportNewList"><list><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="%txt contains letter %s ?"><l>brookline</l><l>x</l></custom-block><l>letter missing</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>true</bool></l></block><custom-block s="%txt contains letter %s ?"><l>high</l><l>g</l></custom-block><l>letter present</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="%txt contains letter %s ?"><l>school</l><l> </l></custom-block><l>space missing</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>true</bool></l></block><custom-block s="%txt contains letter %s ?"><l>is awesome</l><l> </l></custom-block><l>space missing</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="%txt contains letter %s ?"><l>WHEE!</l><l>h</l></custom-block><l>upper contains lower</l></custom-block><custom-block s="expect equals %s %s %s"><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="%txt contains letter %s ?"><l>All right, settle down.</l><l>S</l></custom-block><l>lower contains upper</l></custom-block></list></block></custom-block></script></block-definition><block-definition s="min %&apos;a&apos; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><script><block s="doReport"><block var="b"/></block></script></block><block s="doIf"><block s="reportLessThan"><block var="a"/><block var="b"/></block><script><block s="doReport"><block var="a"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="a"/><block var="b"/></block><script><block s="doReport"><block var="a"/></block></script></block></script><scripts><script x="292.6416025625" y="160.000001"><block s="reportLessThan"><l></l><l></l></block></script></scripts></block-definition><block-definition s="max %&apos;a&apos; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><script><block s="doReport"><block var="a"/></block></script></block><block s="doIf"><block s="reportLessThan"><block var="a"/><block var="b"/></block><script><block s="doReport"><block var="b"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="b"/><block var="a"/></block><script><block s="doReport"><block var="b"/></block></script></block></script></block-definition><block-definition s="is %&apos;a&apos; between %&apos;b&apos; and %&apos;c&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="a"/><block var="b"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="b"/><block var="c"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doIf"><block s="reportOr"><block s="reportAnd"><block s="reportLessThan"><block var="c"/><block var="a"/></block><block s="reportLessThan"><block var="a"/><block var="b"/></block></block><block s="reportAnd"><block s="reportLessThan"><block var="b"/><block var="a"/></block><block s="reportLessThan"><block var="a"/><block var="c"/></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><scripts><script x="392.8359375" y="122.20000200000158"><block s="reportOr"><l/><l/></block></script></scripts></block-definition><block-definition s="is %&apos;text&apos; at least %&apos;length&apos; letters long?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportOr"><block s="reportGreaterThan"><block s="reportStringSize"><block var="text"/></block><block var="length"/></block><block s="reportEquals"><block var="length"/><block s="reportStringSize"><block var="text"/></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="distance to x: %&apos;x&apos; y: %&apos;y&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportSum"><block s="reportProduct"><block s="reportDifference"><block s="xPosition"></block><block var="x"/></block><block s="reportDifference"><block s="xPosition"></block><block var="x"/></block></block><block s="reportProduct"><block s="reportDifference"><block s="yPosition"></block><block var="y"/></block><block s="reportDifference"><block s="yPosition"></block><block var="y"/></block></block></block></block></block></script><scripts><script x="81.000002" y="265.200004"><block s="yPosition"></block></script><script x="196.671877" y="242.20000399999998"><block var="y"/></script><script x="220.671877" y="251.20000399999998"><block s="yPosition"></block></script><script x="231.343752" y="294.200004"><block var="y"/></script></scripts></block-definition><block-definition s="%&apos;text&apos; contains letter %&apos;letter&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%s"></input></inputs><script><block s="doFor"><l>i</l><l>0</l><block s="reportStringSize"><block var="text"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="i"/><block var="text"/></block><block var="letter"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition></blocks><variables><variable name="Number of passing tests"><l>25</l></variable><variable name="Number of failing tests"><l>0</l></variable><variable name="test results"><l>6</l></variable><variable name="tests"><list id="736"><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item><item><l></l></item><item><l></l></item><item><l></l></item></list></variable><variable name="min tests"><list id="737"><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item></list></variable><variable name="max tests"><list id="738"><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item></list></variable><variable name="between tests"><list id="739"><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>false</bool></item><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item></list></variable><variable name="qux"><list struct="atomic" id="740">bar,foo,0</list></variable></variables></project><media name="Lab 3.4 unit tests (fornite default dances)" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>