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); + } +}