<snapdata remixID="11857658"><project name="Lab 3.4" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Lab 3.4"><notes></notes><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="reportListAttribute"><l><option>length</option></l><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="doIfElse"><block s="reportLessThan"><block var="a"/><block var="b"/></block><script><block s="doReport"><block var="a"/></block></script><script><block s="doReport"><block var="b"/></block></script></block><block s="doReport"><block var="a"/></block></script></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="doIfElse"><block s="reportLessThan"><block var="a"/><block var="b"/></block><script><block s="doReport"><block var="b"/></block></script><script><block s="doReport"><block var="a"/></block></script></block><block s="doReport"><block var="a"/></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="doIfElse"><block s="reportGreaterThan"><block var="c"/><block var="b"/></block><script><block s="doIfElse"><block s="reportAnd"><block s="reportOr"><block s="reportLessThan"><block var="b"/><block var="a"/></block><block s="reportEquals"><block var="a"/><block var="b"/></block></block><block s="reportOr"><block s="reportGreaterThan"><block var="c"/><block var="a"/></block><block s="reportEquals"><block var="c"/><block var="a"/></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><script><block s="doIfElse"><block s="reportAnd"><block s="reportOr"><block s="reportLessThan"><block var="c"/><block var="a"/></block><block s="reportEquals"><block var="a"/><block var="c"/></block></block><block s="reportOr"><block s="reportGreaterThan"><block var="b"/><block var="a"/></block><block s="reportEquals"><block var="b"/><block var="a"/></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></script></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 s="reportStringSize"><block var="text"/></block><block var="length"/></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="reportVariadicSum"><list><block s="reportPower"><block s="reportDifference"><block var="y"/><block s="yPosition"></block></block><l>2</l></block><block s="reportPower"><block s="reportDifference"><block var="x"/><block s="xPosition"></block></block><l>2</l></block></list></block></block></block></script></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="doDeclareVariables"><list><l>letter#</l></list></block><block s="doSetVar"><l>letter#</l><l>1</l></block><block s="doRepeat"><block s="reportStringSize"><block var="text"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportUnicode"><block s="reportLetter"><block var="letter#"/><block var="text"/></block></block><block s="reportUnicode"><block var="letter"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doChangeVar"><l>letter#</l><l>1</l></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="691"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="692"></list></costumes><sounds><list struct="atomic" id="693"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><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="698"><costumes><list struct="atomic" id="699"></list></costumes><sounds><list struct="atomic" id="700"></list></sounds><blocks></blocks><variables></variables><scripts><script x="61.923076923076906" y="40"><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="363" y="588.1666666666669"><custom-block s="%txt contains letter %s ?"><l>ldodgers</l><l>a</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.80001000000004" 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.39999800000004" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="Number of passing tests"><l>31</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="738"><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="739"><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="740"><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item></list></variable><variable name="between tests"><list id="741"><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="742">bar,foo,0</list></variable></variables></scene></scenes></project><media name="Lab 3.4" app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>