From 822420a9d534a0e7a8ab8cef0236151c30ad86a9 Mon Sep 17 00:00:00 2001 From: greg Date: Sat, 12 May 2018 02:18:34 -0700 Subject: [PATCH] Add an eval test --- schala-lang/src/eval.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/schala-lang/src/eval.rs b/schala-lang/src/eval.rs index 3fbe7b0..737e145 100644 --- a/schala-lang/src/eval.rs +++ b/schala-lang/src/eval.rs @@ -430,3 +430,24 @@ impl<'a> State<'a> { } } } + +#[cfg(test)] +mod eval_tests { + use tokenizing::tokenize; + use parsing::parse; + use eval::State; + + macro_rules! fresh_env { + ($string:expr, $correct:expr) => { + let mut state = State::new(); + let all_output = state.evaluate_new(parse(tokenize($string)).0.unwrap().reduce(), true); + let ref output = all_output[0]; + assert_eq!(*output, Ok($correct.to_string())); + } + } + + #[test] + fn test_basic_eval() { + fresh_env!("1 + 2", "3"); + } +}