added formating functions
This commit is contained in:
68
tests/format.sl
Normal file
68
tests/format.sl
Normal file
@@ -0,0 +1,68 @@
|
||||
import stdlib/stdlib.sl
|
||||
import stdlib/io.sl
|
||||
|
||||
word main
|
||||
# --- indexof ---
|
||||
"hello" 108 indexof puti cr # 'l' at index 2
|
||||
"hello" 122 indexof puti cr # 'z' not found -> -1
|
||||
|
||||
# --- count_char_in_str ---
|
||||
"hello world" 108 count_char_in_str # 3 l's
|
||||
puti cr 2drop
|
||||
|
||||
# --- format1s (single string substitution) ---
|
||||
"world" "hello %" format1s
|
||||
2dup puts free
|
||||
|
||||
# --- format1i (single int substitution) ---
|
||||
42 "the answer is %" format1i
|
||||
2dup puts free
|
||||
|
||||
# --- formats (multi string substitution) ---
|
||||
"Bob" "Alice" "% and %" formats
|
||||
2dup puts free
|
||||
|
||||
# --- formati (multi int substitution) ---
|
||||
2 1 "a: %, b: %" formati
|
||||
2dup puts free
|
||||
|
||||
# --- edge: no '%' ---
|
||||
"no placeholders" formati
|
||||
puts
|
||||
|
||||
# --- edge: '%' at start ---
|
||||
"X" "% is first" format1s
|
||||
2dup puts free
|
||||
|
||||
# --- edge: '%' at end ---
|
||||
"Y" "last is %" format1s
|
||||
2dup puts free
|
||||
|
||||
# --- format (mixed %i and %s) ---
|
||||
"hello" 1 "a: %i, b: %s" format
|
||||
2dup puts free
|
||||
|
||||
# --- format: single %i ---
|
||||
42 "answer is %i" format
|
||||
2dup puts free
|
||||
|
||||
# --- format: single %s ---
|
||||
"world" "hello %s" format
|
||||
2dup puts free
|
||||
|
||||
# --- format: three mixed ---
|
||||
"bar" 123 "foo" "%s: %i and %s" format
|
||||
2dup puts free
|
||||
|
||||
# --- format: no placeholders ---
|
||||
"nothing here" format
|
||||
puts
|
||||
|
||||
# --- format: %s at start and end ---
|
||||
"B" "A" "%s and %s" format
|
||||
2dup puts free
|
||||
|
||||
# --- format: %i at boundaries ---
|
||||
2 1 "%i+%i" format
|
||||
2dup puts free
|
||||
end
|
||||
Reference in New Issue
Block a user