rpn/test/060-string.md
2022-02-17 19:04:40 +01:00

307 lines
2.8 KiB
Markdown

# STRING
`default del`
## string entry
`"test string"`
-> stack size should be 1
-> stack should be "test string"
`del`
## string entry (2)
`"test string`
-> stack size should be 1
-> stack should be "test string"
`del`
## string entry (3)
`"`
-> stack size should be 1
-> stack should be ""
`del`
## ->str on real (1)
`1 ->str`
-> stack should be "1"
`del`
## ->str on real (2)
`1.234 ->str`
-> stack should be "1.234"
`del`
## ->str on real (3)
`1.234 20 fix ->str`
-> stack should be "1.23400000000000000000"
`del`
## ->str on symbol (1)
`toto ->str`
-> stack should be "'toto'"
`del`
## ->str on symbol (2)
`'toto' ->str`
-> stack should be "'toto'"
`del default`
## str-> on real (1)
`"1" str->`
-> stack should be 1
`del`
## str-> on real (2)
`"1 2.345 3 4.9" str->`
-> stack should be 1, 2.345, 3, 4.9
`del`
## str-> on real (3)
`4 fix "1 2.345 3 4.9" str->`
-> stack should be 1.0000, 2.3450, 3.0000, 4.9000
`del default`
## str-> on constant (1)
`"pi" str->`
-> stack should be 3.1415926535897932384626433832795028842
`del`
## str-> on constant (2)
`"'pi' 'e'" str->`
-> stack should be 'pi', 'e'
`del`
## str-> on command (1)
`"2 dup" str->`
-> stack should be 2, 2
`del`
## str-> on command (2)
`"3.14 my_pi sto" str->`
-> stack size should be 0
`my_pi`
-> stack should be 3.14
`del`
## str-> on program
`"<< -> n << n >> >>" str->`
-> stack should be «-> n << n >
`del`
## add (1)
`12 34 "one" "two" +`
-> stack should be 12, 34, "onetwo"
`del`
## add (2)
`"" "one" + "two" "" +`
-> stack should be "one", "two"
`del`
## add (3)
`"one" +`
-> stack size should be 1
-> error should be 2
`del`
## chr (1)
`"" 33 40 for i i chr + next`
-> stack should be "!"#$%&'("
`del`
## chr (2)
`-223 chr 0 chr`
-> stack should be "!", "."
`del`
## num (1)
`"!wait" num`
-> stack should be 33
`del`
## num (2)
`"" num`
-> stack should be 0
`del`
## size (1)
`"hello" size`
-> stack should be 5
`del`
## size (2)
`"" size`
-> stack should be 0
`del`
## size, str->, ->str
`"hello" str-> ->str size`
-> stack should be 7
`del`
## pos (1)
`"my big string" "big" pos`
-> stack should be 4
`del`
## pos (2)
`"my big string" "bOg" pos`
-> stack should be 0
`del`
## pos (3)
`"my big string" pos`
-> error should be 2
-> stack size should be 1
`del`
## pos (4)
`pos`
-> error should be 2
`del`
## sub (1)
`"my string to sub" 4 6`
`sub`
-> stack should be "str"
`del`
## sub (2)
`"my string to sub" -1 -2 sub`
-> stack should be ""
`del`
## sub (3)
`"my string to sub" 0 0 sub`
-> stack should be ""
`del`
## sub (4)
`"my string to sub" 6 5 sub`
-> stack should be ""
`del`
## sub (5)
`"my string to sub" 100 101 sub`
-> stack should be ""
`del`
## sub (6)
`"my string to sub" 14 100 sub`
-> stack should be "sub"
`del`