mirror of
https://github.com/louisrubet/rpn
synced 2024-12-30 10:23:32 +01:00
214 lines
2.6 KiB
Text
214 lines
2.6 KiB
Text
## STRING
|
|
default erase
|
|
|
|
# string entry
|
|
"test string"
|
|
-> stack size should be 1
|
|
-> stack should be "test string"
|
|
erase
|
|
|
|
# string entry (2)
|
|
"test string
|
|
-> stack size should be 1
|
|
-> stack should be "test string"
|
|
erase
|
|
|
|
# string entry (3)
|
|
"
|
|
-> stack size should be 1
|
|
-> stack should be ""
|
|
erase
|
|
|
|
# ->str on real (1)
|
|
1
|
|
->str
|
|
-> stack should be "1"
|
|
erase
|
|
|
|
# ->str on real (2)
|
|
1.234
|
|
25 std
|
|
->str
|
|
-> stack should be "1.234"
|
|
erase
|
|
|
|
# ->str on real (3)
|
|
1.234
|
|
20 fix
|
|
->str
|
|
-> stack should be "1.23400000000000000000"
|
|
erase
|
|
|
|
# ->str on symbol (1)
|
|
toto
|
|
->str
|
|
-> stack should be "'toto'"
|
|
erase
|
|
|
|
# ->str on symbol (2)
|
|
'toto'
|
|
->str
|
|
-> stack should be "'toto'"
|
|
erase
|
|
|
|
default
|
|
|
|
# str-> on real (1)
|
|
"1"
|
|
str->
|
|
-> stack should be 1
|
|
erase
|
|
|
|
# str-> on real (2)
|
|
"1 2.345 3 4.9"
|
|
str->
|
|
-> stack should be 1, 2.345, 3, 4.9
|
|
erase
|
|
|
|
# str-> on real (3)
|
|
4 fix
|
|
"1 2.345 3 4.9"
|
|
str->
|
|
-> stack should be 1.0000, 2.3450, 3.0000, 4.9000
|
|
erase
|
|
default
|
|
|
|
# str-> on constant (1)
|
|
"pi"
|
|
str->
|
|
-> stack should be 3.1415926535897932385
|
|
erase
|
|
|
|
# str-> on constant (2)
|
|
"'pi' 'e'"
|
|
str->
|
|
-> stack should be 'pi', 'e'
|
|
erase
|
|
|
|
# str-> on command (1)
|
|
"2 dup"
|
|
str->
|
|
-> stack should be 2, 2
|
|
erase
|
|
|
|
# str-> on command (2)
|
|
"3.14 my_pi sto"
|
|
str->
|
|
-> stack size should be 0
|
|
my_pi
|
|
-> stack should be 3.14
|
|
erase
|
|
|
|
# str-> on program
|
|
"<< -> n << n >> >>"
|
|
str->
|
|
-> stack should be << -> n << n >> >>
|
|
erase
|
|
|
|
# add (1)
|
|
12 34 "one" "two" +
|
|
-> stack should be 12, 34, "onetwo"
|
|
erase
|
|
|
|
# add (2)
|
|
"" "one" + "two" "" +
|
|
-> stack should be "one", "two"
|
|
erase
|
|
|
|
# add (3)
|
|
"one" +
|
|
-> stack size should be 1
|
|
-> error should be 2
|
|
erase
|
|
|
|
# chr (1)
|
|
"" 33 40 for i i chr + next
|
|
-> stack should be "!"#$%&'("
|
|
erase
|
|
|
|
# chr (2)
|
|
-223 chr 0 chr
|
|
-> stack should be "!", "."
|
|
erase
|
|
|
|
# num (1)
|
|
"!wait" num
|
|
-> stack should be 33
|
|
erase
|
|
|
|
# num (2)
|
|
"" num
|
|
-> stack should be 0
|
|
erase
|
|
|
|
# size (1)
|
|
"hello" size
|
|
-> stack should be 5
|
|
erase
|
|
|
|
# size (2)
|
|
"" size
|
|
-> stack should be 0
|
|
erase
|
|
|
|
# size, str->, ->str
|
|
"hello" str-> ->str size
|
|
-> stack should be 7
|
|
erase
|
|
|
|
# pos (1)
|
|
"my big string" "big" pos
|
|
-> stack should be 4
|
|
erase
|
|
|
|
# pos (2)
|
|
"my big string" "bOg" pos
|
|
-> stack should be 0
|
|
erase
|
|
|
|
# pos (3)
|
|
"my big string" pos
|
|
-> error should be 2
|
|
-> stack size should be 1
|
|
erase
|
|
|
|
# pos (4)
|
|
pos
|
|
-> error should be 2
|
|
erase
|
|
|
|
# sub (1)
|
|
"my string to sub" 4 6
|
|
sub
|
|
-> stack should be "str"
|
|
erase
|
|
|
|
# sub (2)
|
|
"my string to sub" -1 -2
|
|
sub
|
|
-> stack should be "m"
|
|
erase
|
|
|
|
# sub (3)
|
|
"my string to sub" 0 0
|
|
sub
|
|
-> stack should be "m"
|
|
erase
|
|
|
|
# sub (4)
|
|
"my string to sub" 6 5
|
|
sub
|
|
-> stack should be ""
|
|
erase
|
|
|
|
# sub (5)
|
|
"my string to sub" 100 101
|
|
sub
|
|
-> stack should be ""
|
|
erase
|
|
|
|
# sub (6)
|
|
"my string to sub" 14 100
|
|
sub
|
|
-> stack should be "sub"
|
|
erase
|