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