## deleting sandboxes scenario deleting-sandboxes [ local-scope trace-until 100/app # trace too long assume-screen 100/width, 15/height assume-resources [ ] env:&:environment <- new-programming-environment resources, screen, [] render-all screen, env, render # run a few commands assume-console [ left-click 1, 75 type [divide-with-remainder 11, 3] press F4 type [add 2, 2] press F4 ] event-loop screen, console, env, resources screen-should-contain [ . run (F4) . . ┊ . .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊─────────────────────────────────────────────────. . ┊0 edit copy to recipe delete . . ┊add 2, 2 . . ┊4 . . ┊─────────────────────────────────────────────────. . ┊1 edit copy to recipe delete . . ┊divide-with-remainder 11, 3 . . ┊3 . . ┊2 . . ┊─────────────────────────────────────────────────. . ┊ . ] # delete second sandbox by clicking on left edge of 'delete' button assume-console [ left-click 7, 90 ] run [ event-loop screen, console, env, resources ] screen-should-contain [ . run (F4) . . ┊ . .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊─────────────────────────────────────────────────. . ┊0 edit copy to recipe delete . . ┊add 2, 2 . . ┊4 . . ┊
import morder_depb

proc Foo*(x: int): Foo = discard
box screen-should-contain [ . run (F4) . . ┊─────────────────────────────────────────────────. .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0 edit copy to recipe delete . . ┊add 1, 1 . . ┊2 . . ┊─────────────────────────────────────────────────. . ┊ . ] ] scenario deleting-top-sandbox-after-scroll [ local-scope trace-until 100/app # trace too long assume-screen 100/width, 10/height # initialize environment assume-resources [ ] env:&:environment <- new-programming-environment resources, screen, [] render-all screen, env, render # create 2 sandboxes and scroll to second assume-console [ press ctrl-n type [add 2, 2] press F4 type [add 1, 1] press F4 press page-down ] event-loop screen, console, env, resources screen-should-contain [ . run (F4) . . ┊─────────────────────────────────────────────────. .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0 edit copy to recipe delete . . ┊add 1, 1 . . ┊2 . . ┊─────────────────────────────────────────────────. . ┊1 edit copy to recipe delete . ] # delete the second sandbox assume-console [ left-click 2, 99 ] run [ event-loop screen, console, env, resources ] # second sandbox shows in editor; scroll resets to display first sandbox screen-should-contain [ . run (F4) . . ┊─────────────────────────────────────────────────. .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0 edit copy to recipe delete . . ┊add 2, 2 . . ┊4 . . ┊─────────────────────────────────────────────────. . ┊ . ] ] scenario deleting-final-sandbox-after-scroll [ local-scope trace-until 100/app # trace too long assume-screen 100/width, 10/height # initialize environment assume-resources [ ] env:&:environment <- new-programming-environment resources, screen, [] render-all screen, env, render # create 2 sandboxes and scroll to second assume-console [ press ctrl-n type [add 2, 2] press F4 type [add 1, 1] press F4 press page-down press page-down ] event-loop screen, console, env, resources screen-should-contain [ . run (F4) . . ┊─────────────────────────────────────────────────. .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊1 edit copy to recipe delete . . ┊add 2, 2 . . ┊4 . . ┊─────────────────────────────────────────────────. . ┊ . ] # delete the second sandbox assume-console [ left-click 2, 99 ] run [ event-loop screen, console, env, resources ] # implicitly scroll up to first sandbox screen-should-contain [ . run (F4) . . ┊ . .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊─────────────────────────────────────────────────. . ┊0 edit copy to recipe delete . . ┊add 1, 1 . . ┊2 . . ┊─────────────────────────────────────────────────. . ┊ . ] ] scenario deleting-updates-sandbox-count [ local-scope trace-until 100/app # trace too long assume-screen 100/width, 10/height # initialize environment assume-resources [ ] env:&:environment <- new-programming-environment resources, screen, [] render-all screen, env, render # create 2 sandboxes assume-console [ press ctrl-n type [add 2, 2] press F4 type [add 1, 1] press F4 ] event-loop screen, console, env, resources screen-should-contain [ . run (F4) . . ┊ . .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊─────────────────────────────────────────────────. . ┊0 edit copy to recipe delete . . ┊add 1, 1 . . ┊2 . . ┊─────────────────────────────────────────────────. . ┊1 edit copy to recipe delete . . ┊add 2, 2 . . ┊4 . ] # delete the second sandbox, then try to scroll down twice assume-console [ left-click 3, 99 press page-down press page-down ] run [ event-loop screen, console, env, resources ] # shouldn't go past last sandbox screen-should-contain [ . run (F4) . . ┊─────────────────────────────────────────────────. .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0 edit copy to recipe delete . . ┊add 2, 2 . . ┊4 . . ┊─────────────────────────────────────────────────. . ┊ . ] ]