rpn/test/06-string.txt

213 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
->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.1415926535897932384626433832795028842
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