add boolean cast function

This commit is contained in:
Ava Hahn 2023-03-09 17:28:17 -08:00
parent 001e35755d
commit ce3dba470a
Signed by untrusted user who does not match committer: affine
GPG key ID: 3A4645B8CF806069
4 changed files with 133 additions and 2 deletions

View file

@ -321,4 +321,100 @@ mod bool_lib_tests {
panic!()
}
}
#[test]
fn test_boolcast_str_t() {
let document = "(bool 'true')";
let test = lex(&document.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms).unwrap();
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(b)
} else {
panic!()
}
}
#[test]
fn test_boolcast_str_f() {
let document = "(bool 'false')";
let test = lex(&document.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms).unwrap();
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)
} else {
panic!()
}
}
#[test]
fn test_boolcast_int_t() {
let document = "(bool 0)";
let test = lex(&document.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms).unwrap();
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(b)
} else {
panic!()
}
}
#[test]
fn test_boolcast_int_f() {
let document = "(bool 12)";
let test = lex(&document.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms).unwrap();
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)
} else {
panic!()
}
}
#[test]
fn test_boolcast_float_t() {
let document = "(bool 0.0)";
let test = lex(&document.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms).unwrap();
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(b)
} else {
panic!()
}
}
#[test]
fn test_boolcast_float_f() {
let document = "(bool 1.2)";
let test = lex(&document.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms).unwrap();
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)
} else {
panic!()
}
}
}