program main fn parse_f64(text: string) -> (result f64 i32) call std.string.parse_f64_result : (result f64 i32) var text : string fn main() -> i32 local let value : unit call parse_f64 : (result f64 i32) string "-0.25" : string if : i32 std.result.is_ok : bool var value : (result f64 i32) if : i32 binary = : bool std.result.unwrap_ok : f64 var value : (result f64 i32) binary - : f64 float 0 : f64 float 0.25 : f64 int 0 : i32 int 1 : i32 std.result.unwrap_err : i32 var value : (result f64 i32) test "parse f64 decimal ok" local let value : unit call parse_f64 : (result f64 i32) string "12.5" : string if : bool std.result.is_ok : bool var value : (result f64 i32) binary = : bool std.result.unwrap_ok : f64 var value : (result f64 i32) float 12.5 : f64 bool false : bool test "parse f64 negative decimal ok" local let value : unit call parse_f64 : (result f64 i32) string "-0.25" : string if : bool std.result.is_ok : bool var value : (result f64 i32) binary = : bool std.result.unwrap_ok : f64 var value : (result f64 i32) binary - : f64 float 0 : f64 float 0.25 : f64 bool false : bool test "parse f64 text err" local let value : unit call parse_f64 : (result f64 i32) string "abc" : string if : bool std.result.is_err : bool var value : (result f64 i32) binary = : bool std.result.unwrap_err : i32 var value : (result f64 i32) int 1 : i32 bool false : bool test "parse f64 nan err" local let value : unit call parse_f64 : (result f64 i32) string "nan" : string if : bool std.result.is_err : bool var value : (result f64 i32) binary = : bool std.result.unwrap_err : i32 var value : (result f64 i32) int 1 : i32 bool false : bool