From 7752d73216578d5961751b5d0535088d384b4aa6 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Sat, 25 Jan 2025 10:45:41 +0100 Subject: Move λ-calcul workshop code to subdirectory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda-calcul/rust/tests/interpret_test.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 lambda-calcul/rust/tests/interpret_test.rs (limited to 'lambda-calcul/rust/tests/interpret_test.rs') diff --git a/lambda-calcul/rust/tests/interpret_test.rs b/lambda-calcul/rust/tests/interpret_test.rs new file mode 100644 index 0000000..16e7fb7 --- /dev/null +++ b/lambda-calcul/rust/tests/interpret_test.rs @@ -0,0 +1,25 @@ +use lambda::io::{batch_eval, eval_file, repl}; + +#[test] +fn interpreter_can_read_and_interpret_file() { + assert_eq!("12 foo true (x x)", eval_file("sample/test.txt")); + assert_eq!("true", eval_file("sample/test_full.txt")); + assert_eq!("1", eval_file("sample/test_normal.txt")); + assert_eq!("13", eval_file("sample/test_let.txt")); +} + +#[test] +fn repl_can_read_and_interpret_input() { + let input = "(def id (lam x x))\n(id 12)"; + let mut output = Vec::new(); + repl(&mut input.as_bytes(), &mut output); + assert_eq!("> true\n> 12\n> ", String::from_utf8(output).unwrap()); +} + +#[test] +fn repl_can_read_and_interpret_input_in_batch_mode() { + let input = "(def id (lam x x))\n(id 12)"; + let mut output = Vec::new(); + batch_eval(&mut input.as_bytes(), &mut output); + assert_eq!("true\n12\n", String::from_utf8(output).unwrap()); +} -- cgit v1.2.3