slovo/tests/string-parse-u32-result.checked.lower
2026-05-22 08:38:43 +02:00

85 lines
2.5 KiB
Plaintext

program main
fn parse_u32(text: string) -> (result u32 i32)
call std.string.parse_u32_result : (result u32 i32)
var text : string
fn parsed_text(text: string) -> string
call std.num.u32_to_string : string
std.result.unwrap_ok : u32
call parse_u32 : (result u32 i32)
var text : string
fn main() -> i32
local let value : unit
call parse_u32 : (result u32 i32)
string "42" : string
if : i32
std.result.is_ok : bool
var value : (result u32 i32)
if : i32
binary = : bool
call std.num.u32_to_string : string
std.result.unwrap_ok : u32
var value : (result u32 i32)
string "42" : string
int 0 : i32
int 1 : i32
std.result.unwrap_err : i32
var value : (result u32 i32)
test "parse u32 zero ok"
binary = : bool
call parsed_text : string
string "0" : string
string "0" : string
test "parse u32 high ok"
binary = : bool
call parsed_text : string
string "4294967295" : string
string "4294967295" : string
test "parse u32 empty err"
local let value : unit
call parse_u32 : (result u32 i32)
string "" : string
if : bool
std.result.is_err : bool
var value : (result u32 i32)
binary = : bool
std.result.unwrap_err : i32
var value : (result u32 i32)
int 1 : i32
bool false : bool
test "parse u32 plus err"
local let value : unit
call parse_u32 : (result u32 i32)
string "+1" : string
if : bool
std.result.is_err : bool
var value : (result u32 i32)
binary = : bool
std.result.unwrap_err : i32
var value : (result u32 i32)
int 1 : i32
bool false : bool
test "parse u32 negative err"
local let value : unit
call parse_u32 : (result u32 i32)
string "-1" : string
if : bool
std.result.is_err : bool
var value : (result u32 i32)
binary = : bool
std.result.unwrap_err : i32
var value : (result u32 i32)
int 1 : i32
bool false : bool
test "parse u32 above range err"
local let value : unit
call parse_u32 : (result u32 i32)
string "4294967296" : string
if : bool
std.result.is_err : bool
var value : (result u32 i32)
binary = : bool
std.result.unwrap_err : i32
var value : (result u32 i32)
int 1 : i32
bool false : bool