<snapdata remixID="9685593"><project name="3.4 Lab" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAMyElEQVR4Xu1dB0xVzRIeVBQrKCLWX2PvvfceS9QYxfqs2Bsaa+xGE19i+Y2Kz2589u6LPSr2FhuWWGJDxS7YFSsv3/gOjwuXew9cDizubGLwXnb3zMz3sbsze3bWLTIyMpKkiAWSyQJuQsBksrw8li0gBBQiJKsF7BLw8uXLdPTo0d8MdXOj6LN0Sv5cqFAhat26dbIaXB5ua4FYBNy/fz8VLlw4RdgpS5YstMivKPlmTO1QXjci6rzhPr169Yrr+fj4kKenZ4rQ8U8X0oaA586do8yZM/OIZ4x0Kv/08c5G7rOrUppUzmFyG36UQsK/sF5hYWFUp04d542khuUWsCHgpEmTqF27dvzQgwcP8jSMaat37960ZcsWevfuHXl4eFCXLl1o3bp11KRJE/L396c9e/bQ7NmzadSoUTRr1iwG+MCBA4SpvEKFClSyZElKlSoVde/enTZv3kwNGzakoKAg/on6KMWKFSMvLy+6c+cOHTp0iNu1bNmS6tevT5s2baIGDRpw3cqVK3O7Tp06ka93NsoS+H8iefxjMUWsHUAeXf9FEesG2hovIIjuvvwY9V358uUtN648wLkFbAg4b948qlmzJo+AR44coSpVqtDOnTupffv2dOPGDfLz86Pnz5/zv0+fPjFBJ06cSBkzZqSPHz/SvXv3qF69epQ+fXom65kzZ6hGjRo83eXKlYunwOHDhxOIPn36dP5pFF9fX3rz5g19+/Ytqh2m2BcvXjDxJk+ezFWNdmfPnqU8OXOQZ2DdqD48ui2hiLUDKdM/Q+hb0AL6duA3uVEihx2mG6HhUSN7tWrVnFtHalhuARsCvnz5km7fvh310MRwOOrWrUvHjh3jPp31B3IWLVqUBg0aZKp+Lh9vyrmqmTkjjThOwXdD+Y8LSw2M1lKS3wKxnJBly5ZRwYIFU8QaEGSqVKkieXl6ObTkly9f6MzZs0y+W7du0eDBg5Pf8iLB70EmrkD0n7hBghFYiloWkEC0WnhoJ41dAp46dYqwHvwTRowMGTKwF543b17twE0JCsci4OnTpzlQq2rx9vamdV0KU3Fvd6ci1gi8Qc9ehXM9eNelSpVy2kYqJK0FbAiI0EuOHDlYgtDQUB41rl69SmXLlrWRCutDAJouXbo4pQWREdIxfqLi1q1bo+ojtJOQkj1bVkr/d3VK9b/lXJrKHejHhc3kXq0L/Qj+D0V+/RTVrdvwIxQSHsGfP3z4QNWrV0/II6WNhRawISBietED0evXryeEUUaPHk1r1qyhr1+/0vfv33k/9fjx45Q1a1YONg8YMIDgPSNgDQ8TdS5cuEDXr1+n0qVLc1glIiKCVq1aZaMKYoOYIhFXRH8VK1bkAHSJEiU4VILA9ZQpUzgYjv+3atWKcnhnI087wefUJRrRz5uHbU0VEER3Xnzg7/BHg/6lqGUBGwIuXbqUypUrxxJipwIj2I4dO3j3I1++fNSxY8eoQPT9+/cpTZo0TEoQA3UQiAYJf/36xfFEIxD9119/0efPn+n169c22iP4jB0SrDdPnjxJjRs35ufMmTOHd0zQ/smTJ/xHgcDz6tWrKU8uX/KKFnzOELCXvqzuQxlHHqGPk4rZ9P9r2GG6Gfp7CoZMCIpLUcsCNgR8//49XblyJWov2BDV2Bu24jO2+LA2g6Ngpn+fbF6U998tTVkxcsQJCr7ziPUJDg6mYcOGmWonlZLOArGckBMnTvCWGbbBUFR8GQEjKqZuRwVrVIzIGHkxxffr1y/prCpPMm0BiQOaNpVUtMICQkArrCp9mraAENC0qaSiFRYQAlphVenTtAWEgKZNJRWtsIAQ0AqrSp+mLSAENG0qqWiFBYSAVlhV+jRtASGgaVNJRSssIAS0wqrSp2kLCAFNm0oqWmEBIaAVVpU+TVtACGjaVFLRCgsIAa2wqvRp2gJCQNOmkopWWEAImAhWxXkTHEFICSVt2rRUq1YtZUQVAroIBV54xfkVZNvCEQXVS0hICD148ICTPalQhIAuooCThDg74+iEoIuPSPTmOHaRPXt2ypMnT6L3Hd8OhYDxtViM+iCgKqOJWVVwkAxLBhWmYiGgWdTiqBeTgGXKlIk6jnrt2rVYrXBOBcdMXS0/fvyg1KlT22SvwMk/nDKMXjZu3MinGWNmuVDlD0cI6CIT7AFpHOSqWrUqYdGPZJ8dOnSg5s2b08iRI/mA/tSpU/mo6MWLF1kC1EXB8dNGjRrx9Ihjskj8effuXdq7dy89fvyYZs6cSUijjAP/ICAO27u7u/P5a6ztWrRowenwtm/fTvnz5+d8jTjOKgR0EWhVmzsiYPHixTmL7IIFC6hr1658OB8OC7JOjB8/nlauXMkn9lC6detGPXv2pGfPnnFdkAsn+/AToxqOr7Zp04aPmOIMtvE7HOI3noHv8DskBxg6dCiTHBlm+/btKwRUlUCuymWPgP3796clS5bQwoULOUsEEm8OGTKEM0TgcD5IhRTGmTJlorFjx7IIixYtYpIMHDiQxo0bx2RDFld8h8wT6BMpUpA4Cp4sCIvfBQYG8jNGjBjBSTcxwmKUnD9/PhMQh/1r164dS02Zgl1FXpH2SQkkpmyQLjGyliWl3I6gkjWgi0R2BmR0x8Cek4DkT1jvIesX8mw/fPgw3lm87PXrTC1ncjtrn1i/FwK6aMm4gIQD0adPH+4daziMWpgqnz59ynlzsG5DCQ8Pp0ePHhGy9uMGgB49evD6DXWRfwe5cXArABI74WYAJG1HcnisF5G3B04OnBs8A5+RHB6/gxOClCe4fcBeEQK6CLwqze0BidsGihQpwuu8uXPn8g6JQUDcLoDrKKKnQEbemuXLl/MaD/1t2LCBEGZBvA73toCMK1asIPSL3I0IfGOdV6BAAZowYQL16tWL15W4rQBJnXC9BdLfIT4Jh8TelC0EVIVBLsphD0iMRsZ6DeQBAbFTAvIZZDQI2LlzZ3r79i3t27ePJYHHjBEQBITzgjtTpk2bxqEVxPQqVarEI9uMGTOobdu2POIZIRmku0OIBwFm7HQgRLN7924hoIsYK93cqpHEXqA5PobA1ItREfe7yBQcH8ulsLpWEdBqM6gitzghLiKdUCCjX9qDaXjMmDHsdCAjLEYtTOEoWBfCUzYKstNiWsXUbjg3CVEhoXIn5FmO2ggBXbSoIyAxDcKJQPphOBDwTJH1FWmPseUW3REx7tVDWmM4FwhSI7CMfI141QvrPPzLmTMnZ5Q1dkKwHkRwG99h6w3ZarGOdBYrFAK6CLwqzR0Bibv28NaJ4YiAFGvXruWttpjXlhkENBwYQz8QEHfqwanAdhwcjegEBCG3bdvGjgcukUTIBuEfIaAqDLFYDkcExPYbwiEY8UAsbKktXryYt+XgZOD/KPgeBZ+NOobYeBFh165dTCx4xNg7xhvYxtYdpm5s0+GOZ2y9IcQTEBDAoydybcdVZAS0mBhJ1b0qQEJfvDnz8+fPqP3luGyAKRtExhs0yV1kDegiApcuXeLYXsy7VFzs1tLmKr3FLQRMBKhxxQTuSIbzgK0xOB4omCpVKgiE37x5k3A9RvRbCZJTRiFgIlkfUxrAxfYXXio4f/58FBET6REud4OtOnjKzm4YcPlB8ehACBiHsbC/ihcGsJ2F+5OdFZyOA+ngreKaC+zXYjSU4tgCQkAH9mnWrBmPFljY586dm/z8/AhnPuxd5oh1FYpK01tKIL8Q0AFKeFXK398/Vg1MZbjIEYTEywHG6IfRMiUdz1SBoEJAByiEhYUxAWMGdTEq4rYmEFAuQHSNxkJAB/bDi57wbjEF461lBJURbsE6T0riWEAI6MAJadq0KR8MMuOEJA4c+vUiBNQPc6U0FgIqBYd+wggB9cNcKY2FgErBoZ8wQkD9MFdKYyGgUnDoJ4wQUD/MldJYCKgUHPoJIwTUD3OlNBYCKgWHfsIIAfXDXCmNhYBKwaGfMEJA/TBXSmMhoFJw6CeMEFA/zJXSWAioFBz6CSME1A9zpTQWAioFh37CCAH1w1wpjYWASsGhnzBCQP0wV0pjIaBScOgnjBBQP8yV0lgIqBQc+gkjBNQPc6U0FgIqBYd+wggB9cNcKY2FgErBoZ8wQkD9MFdKYyGgUnDoJ4wQUD/MldJYCKgUHPoJIwTUD3OlNBYCKgWHfsIIAfXDXCmNhYBKwaGfMEJA/TBXSmMhoFJw6CeMEFA/zJXSWAioFBz6CSME1A9zpTQWAioFh37CCAH1w1wpjYWASsGhnzBCQP0wV0pjIaBScOgnjBBQP8yV0lgIqBQc+gkjBNQPc6U0FgIqBYd+wggB9cNcKY2FgErBoZ8wQkD9MFdKYyGgUnDoJ4wQUD/MldJYCKgUHPoJIwTUD3OlNP4vItuAAkuPLmgAAAAASUVORK5CYII=</thumbnail><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" 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="61.923076923076906" y="28.00000000000003"><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="46" y="366.0000000000001"><custom-block s="min %n %n"><l>2</l><l>3</l></custom-block></script><script x="259" y="347.66666666666663"><custom-block s="is %txt at least %n letters long?"><l>happy</l><l>1</l></custom-block></script><script x="213" y="282.16666666666674"><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><script x="314" y="411.0000000000001"><custom-block s="is %n between %n and %n ?"><l>3.5</l><l>2</l><l>4</l></custom-block></script><script x="78" y="447.66666666666663"><custom-block s="distance to x: %n y: %n"><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.80000999999993" color="243,118,29" hidden="true"/><watcher var="qux" style="normal" x="10" y="240.49999799999995" color="243,118,29" hidden="true"/><watcher var="between tests" style="normal" x="23" y="260.399998" color="243,118,29" hidden="true"/><watcher var="max tests" style="normal" x="22" y="212.39999799999998" 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="doIfElse"><block s="reportLessThan"><block var="a"/><block var="b"/></block><script><block s="doReport"><block var="a"/></block></script><script><block s="doIfElse"><block s="reportLessThan"><block var="b"/><block var="a"/></block><script><block s="doReport"><block var="b"/></block></script><script><block s="doReport"><block s="reportOr"><block var="a"/><block var="b"/></block></block></script></block></script></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="doReport"><l></l></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="reportOr"><block s="reportAnd"><block s="reportLessThan"><block var="a"/><block var="c"/></block><block s="reportGreaterThan"><block var="a"/><block var="b"/></block></block><block s="reportOr"><block s="reportEquals"><block var="a"/><block var="b"/></block><block s="reportEquals"><block var="a"/><block var="c"/></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="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"><l>world</l></block><block var="length"/></block><block s="reportEquals"><block s="reportStringSize"><l>world</l></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"><l></l></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="doReport"><l></l></block></script></block-definition></blocks><variables><variable name="Number of passing tests"><l>14</l></variable><variable name="Number of failing tests"><l>17</l></variable><variable name="test results"><l>6</l></variable><variable name="tests"><list id="646"><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="647"><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="648"><item><bool>true</bool></item><item><bool>true</bool></item><item><bool>true</bool></item></list></variable><variable name="between tests"><list id="649"><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="650">bar,foo,0</list></variable></variables></project><media name="3.4 Lab" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>