rpn/test/05-stack.txt
2017-05-27 14:08:09 +02:00

124 lines
1.6 KiB
Text

## STACK TEST
# entry depth (1)
1 depth
-> stack size should be 2
# entry depth (2)
erase depth
-> stack should be 0
# drop
erase
1 2 3 drop
-> stack size should be 2
# drop2
drop2
-> stack size should be 0
# drop error
drop
-> error should be 2
# drop2 error (1)
drop2
-> error should be 2
# drop2 error (2)
1 drop2
-> error should be 2
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 1, 2, 1, 2
drop2 drop2
# test rot
1 2 3 rot
-> stack size should be 3
-> stack should be 2, 3, 1
erase
# test depth
1 2 3
depth
-> stack size should be 4
-> stack should be 1, 2, 3, 3
erase
# test pick
1 2 3 4 2 pick
-> stack size should be 5
-> stack should be 1, 2, 3, 4, 3
0 pick
-> error should be 4
7 pick
-> error should be 4
# test erase
erase
-> stack size should be 0
# test dropn
erase
1 2 2 dropn
-> stack size should be 0
# test dropn error
erase
1 2 3 dropn
-> stack size should be 3
-> error should be 2
# test dupn
erase
1 2 3 4 3 dupn
-> stack should be 1, 2, 3, 4, 2, 3, 4
# test dupn error
erase
1 2 3 4 5 dupn
-> stack size should be 5
-> error should be 2
# test roll
erase
1 2 3 4 5 4 roll
-> stack should be 1, 3, 4, 5, 2
# test roll error
erase
1 2 3 4 5 6 roll
-> stack size should be 6
-> error should be 2
# test rolld
erase
10 20 30 40 50 3 rolld
-> stack should be 10, 20, 50, 30, 40
# test roll error
erase
1 2 3 4 5 6 roll
-> stack size should be 6
-> error should be 2
# test over
erase
3.14 15.16 over
-> stack should be 3.14, 15.16, 3.14
# test over error
erase
2 over
-> stack size should be 1
-> error should be 2
erase