slovo/docs/language/examples/supported/integer-to-string.slo
2026-05-22 08:38:43 +02:00

55 lines
1.3 KiB
Plaintext

(module main)
(fn i32_zero_text () -> string
(std.num.i32_to_string 0))
(fn i32_negative_text () -> string
(std.num.i32_to_string -7))
(fn i32_high_text () -> string
(std.num.i32_to_string 2147483647))
(fn i64_low_text () -> string
(std.num.i64_to_string -9223372036854775808i64))
(fn i64_high_text () -> string
(std.num.i64_to_string 9223372036854775807i64))
(fn i64_beyond_i32_text () -> string
(std.num.i64_to_string 2147483648i64))
(test "i32 zero to string"
(= (i32_zero_text) "0"))
(test "i32 negative to string"
(= (i32_negative_text) "-7"))
(test "i32 high to string"
(= (i32_high_text) "2147483647"))
(test "i32 negative string length"
(= (std.string.len (i32_negative_text)) 2))
(test "i64 low to string"
(= (i64_low_text) "-9223372036854775808"))
(test "i64 high to string"
(= (i64_high_text) "9223372036854775807"))
(test "i64 beyond i32 to string"
(= (i64_beyond_i32_text) "2147483648"))
(test "i64 low string length"
(= (std.string.len (i64_low_text)) 20))
(fn main () -> i32
(std.io.print_string (i32_zero_text))
(std.io.print_string (i32_negative_text))
(std.io.print_string (i32_high_text))
(std.io.print_string (i64_low_text))
(std.io.print_string (i64_high_text))
(std.io.print_string (i64_beyond_i32_text))
(if (= (std.string.len (i64_high_text)) 19)
0
1))