mirror of
https://github.com/louisrubet/rpn
synced 2024-12-30 10:23:32 +01:00
172 lines
2.4 KiB
Text
172 lines
2.4 KiB
Text
## STACK TEST
|
|
# entry depth (1)
|
|
1 depth
|
|
-> stack size should be 2
|
|
|
|
# entry depth (2)
|
|
erase depth
|
|
-> stack should be 0
|
|
|
|
# swap
|
|
erase
|
|
1 2 swap
|
|
-> stack size should be 2
|
|
-> stack should be 2, 1
|
|
|
|
# swap with filled stack
|
|
erase
|
|
5 6 1 2 swap
|
|
-> stack size should be 4
|
|
-> stack should be 5, 6, 2, 1
|
|
|
|
# swap error
|
|
erase
|
|
5 swap
|
|
-> stack size should be 1
|
|
-> error should 2
|
|
|
|
# drop
|
|
erase
|
|
1 2 3 drop
|
|
-> stack size should be 2
|
|
-> stack should be 1, 2
|
|
|
|
# drop2
|
|
3
|
|
drop2
|
|
-> stack size should be 1
|
|
-> stack should be 1
|
|
erase
|
|
|
|
# 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 rot with start
|
|
5 6 7 1 2 start rot next
|
|
-> stack should be 7, 5, 6
|
|
erase
|
|
|
|
# test rot with next
|
|
5 6 7 1 2 for i rot next
|
|
-> stack should be 7, 5, 6
|
|
erase
|
|
|
|
# test rot with filled stack
|
|
5 6 1 2 3 rot
|
|
-> stack size should be 5
|
|
-> stack should be 5, 6, 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 with filled stack
|
|
erase
|
|
10 11 1 2 3 4 5 4 roll
|
|
-> stack should be 10, 11, 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 rolld with filled stack
|
|
erase
|
|
80 90 10 20 30 40 50 3 rolld
|
|
-> stack should be 80, 90, 10, 20, 50, 30, 40
|
|
|
|
# test rolld error
|
|
erase
|
|
1 2 3 4 5 6 rolld
|
|
-> 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
|