From 17ebeeeb89d3d553a75c6c13611e8355e76dc0b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hozda?= Date: Wed, 1 Nov 2017 23:09:30 +0100 Subject: [PATCH] add a test for unary after new binary ops --- src/tests.rs | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/tests.rs b/src/tests.rs index 9ff3fc65..aea39b64 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -791,4 +791,48 @@ fn test_binary_ops() { } else { assert!(false); } -} \ No newline at end of file +} + +#[test] +// TODO also add test case for unary after compound +// Hah, turns out unary + has a good use after all! +fn test_unary_after_binary() +{ + let mut engine = Engine::new(); + + if let Ok(result) = engine.eval::("10 % +4") { + assert_eq!(result, 2); + } else { + assert!(false); + } + + if let Ok(result) = engine.eval::("10 << +4") { + assert_eq!(result, 160); + } else { + assert!(false); + } + + if let Ok(result) = engine.eval::("10 >> +4") { + assert_eq!(result, 0); + } else { + assert!(false); + } + + if let Ok(result) = engine.eval::("10 & +4") { + assert_eq!(result, 0); + } else { + assert!(false); + } + + if let Ok(result) = engine.eval::("10 | +4") { + assert_eq!(result, 14); + } else { + assert!(false); + } + + if let Ok(result) = engine.eval::("10 ^ +4") { + assert_eq!(result, 14); + } else { + assert!(false); + } +}