add eval test

Signed-off-by: Ava Hahn <ava@aidanis.online>
This commit is contained in:
Ava Hahn 2023-02-24 15:45:27 -08:00
parent 8e13b5b87f
commit d640c815a8
Signed by untrusted user who does not match committer: affine
GPG key ID: 3A4645B8CF806069

View file

@ -2,31 +2,6 @@ mod eval_tests {
use relish::ast::{eval, lex, SymTable}; use relish::ast::{eval, lex, SymTable};
use relish::ast::{Args, Symbol, Ctr, Seg, ValueType, UserFn}; use relish::ast::{Args, Symbol, Ctr, Seg, ValueType, UserFn};
// TODO: write generalized testing routine on top of list of inputs
#[test]
fn eval_singlet() {
let test_doc = "(1)".to_string();
let mut syms = SymTable::new();
match lex(&test_doc) {
Err(e) => {
println!("Lexing error: {}\n", e);
assert!(false)
}
Ok(ref initial_ast) => match eval(initial_ast, &mut syms) {
Err(e) => {
println!("Evaluation error: {}\n", e);
assert!(false)
}
Ok(reduced) => {
assert_eq!(reduced.to_string(), test_doc)
}
},
}
}
#[test] #[test]
fn eval_embedded_lists_no_funcs() { fn eval_embedded_lists_no_funcs() {
let test_doc = "(1 (1 2 3 4 5) 5)".to_string(); let test_doc = "(1 (1 2 3 4 5) 5)".to_string();
@ -133,16 +108,27 @@ mod eval_tests {
} }
} }
/*
#[test] #[test]
fn eval_bad_vars() { fn eval_bad_syms() {
} let test_doc = "(undefined)".to_string();
let mut syms = SymTable::new();
match lex(&test_doc) {
Err(e) => {
println!("Lexing error: {}\n", e);
assert!(false)
}
#[test] Ok(initial_ast) => match eval(&initial_ast, &mut syms) {
fn eval_bad_func() { Err(e) => {
} assert_eq!(e,"error in call to undefined: undefined symbol: undefined")
}
#[test] Ok(reduced) => {
fn eval_verify_all_elems_cloned() { println!("Eval succeeded when it shouldnt have");
}*/ println!("see: {}", reduced);
assert!(false)
}
},
}
}
} }