73 lines
2.1 KiB
Plaintext
73 lines
2.1 KiB
Plaintext
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
|