use rhai::{Engine, EvalAltResult}; #[test] fn test_not() -> Result<(), EvalAltResult> { let mut engine = Engine::new(); assert_eq!( engine.eval::("let not_true = !true; not_true")?, false ); #[cfg(not(feature = "no_function"))] assert_eq!(engine.eval::("fn not(x) { !x } not(false)")?, true); // TODO - do we allow stacking unary operators directly? e.g '!!!!!!!true' assert_eq!(engine.eval::("!(!(!(!(true))))")?, true); Ok(()) }