## 1 ## ENTRY and STACK # test entry 1 1 -> stack size should be 1 # test entry 2 2 3 -> stack size should be 3 -> stack should be 3, 2, 1 # test drop drop -> stack size should be 2 # test drop2 drop2 -> stack size should be 0 # test symbol entry 1 1 '2' -> stack size should be 2 -> stack should be '2', 1 drop2 # test symbol entry 2 1 '2 -> stack size should be 2 -> stack should be '2', 1 drop2 # test symbol entry 3 '2 3' -> stack should be '2 3' drop # test symbol entry 4 '2 3 -> stack should be '2 3' drop # test symbol entry 5 '' -> stack should be '' drop # test symbol entry 6 ' -> stack should be '' drop # test dup 1 dup -> stack size should be 2 -> stack should be 1, 1 # test dup2 drop 2 dup2 -> stack size should be 4 -> stack should be 2, 1, 2, 1 drop2 drop2 # test rot 1 2 3 rot -> stack size should be 3 -> stack should be 1, 3, 2 # test depth depth -> stack size should be 4 -> stack should be 3, 1, 3, 2 drop2 drop2 # test pick 1 2 3 4 2 pick -> stack size should be 5 -> stack should be 3, 4, 3, 2, 1 # test erase erase -> stack size should be 0 ## 2 ## BRANCH # if-then-else-end test 1 1 if then 'ok' end -> stack size should be 1 -> stack should be 'ok' drop # if-then-else-end test 2 0 if then 'ok' end -> stack size should be 0 # if-then-else-end test 3 1 if 0 1 then 'ok' end -> stack size should be 3 -> stack should be 'ok', 1, 0 drop2 drop # if-then-else-end test 4 1 if then 'ok' else 0 end -> stack size should be 1 -> stack should be 'ok' drop # if-then-else-end test 5 0 if then 'ok' else 0 end -> stack size should be 1 -> stack should be 0 drop # if-then-else-end test 6 1 if then 1 if then 'ok' else 0 end end -> stack size should be 1 -> stack should be 'ok' drop # if-then-else-end test 7 1 if then 0 if then 'ok' else 0 end end -> stack size should be 1 -> stack should be 0 drop # if-then-else-end test 8 0 if then 0 if then 'ok' else 0 end else 'OK !' end -> stack size should be 1 -> stack should be 'OK !' drop # start-next-step test 1 1 3 start 'ok' next -> stack size should be 3 -> stack should be 'ok', 'ok', 'ok' drop drop2 # start-next-step test 2 3 1 start 'ok' next -> stack size should be 1 -> stack should be 'ok' drop # start-next-step test 3 -1 0 start 'ok' next -> stack size should be 2 -> stack should be 'ok', 'ok' drop2 # start-next-step test 4 0 4 start 'ok' 2 step -> stack size should be 3 -> stack should be 'ok', 'ok', 'ok' drop2 drop # start-next-step test 5 0 -2 start 'ok' -1 step -> stack size should be 3 -> stack should be 'ok', 'ok', 'ok' drop2 drop # start-next-step test 6 0 0.2 start 'ok' 0.1 step -> stack size should be 3 -> stack should be 'ok', 'ok', 'ok' drop2 drop # for-next-step test 1 1 3 for i i next -> stack size should be 3 -> stack should be 3, 2, 1 drop drop2 # for-next-step test 2 3 1 for i i next -> stack size should be 1 -> stack should be 3 drop # for-next-step test 3 -1 0 for i i next -> stack size should be 2 -> stack should be 0, -1 drop2 # for-next-step test 4 0 4 for i i 2 step -> stack size should be 3 -> stack should be 4, 2, 0 drop2 drop # for-next-step test 5 0 -2 for i i -1 step -> stack size should be 3 -> stack should be -2, -1, 0 drop2 drop # for-next-step test 6 0 0.2 for i i 0.1 step -> stack size should be 3 -> stack should be 0.2, 0.1, 0 drop2 drop # for-next-step test 7 1 2 for i 10 20 for j i j + 10 step next -> stack size should be 4 -> stack should be 22, 12, 21, 11 drop2 drop2 ## 3 ## STORE # sto test 1 1 'a' sto -> stack size should be 0 # rcl test 1 'a' rcl -> stack size should be 1 -> stack should be 1 drop # sto test 2 'toto' 'b' sto -> stack size should be 0 # rcl test 2 'b' rcl -> stack size should be 1 -> stack should be 'toto' drop # sto/rcl test 1 'b' rcl 'a' sto 'a' rcl -> stack size should be 1 -> stack should be 'toto' drop # purge test 1 'a' purge 'b' purge -> stack size should be 0 # auto-eval test 1 1 'a' sto 1 3 start 1 a + 'a' sto next a -> stack size should be 1 -> stack should be 4 drop