2018-06-13 10:56:29 +02:00
|
|
|
use rhai::Engine;
|
2017-11-03 17:58:51 +01:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_not() {
|
2019-09-18 12:21:07 +02:00
|
|
|
let mut engine = Engine::new();
|
2017-11-03 17:58:51 +01:00
|
|
|
|
2019-09-18 12:21:07 +02:00
|
|
|
assert_eq!(
|
2019-10-09 13:06:32 +02:00
|
|
|
engine.eval::<bool>("let not_true = !true; not_true"),
|
|
|
|
Ok(false)
|
2019-09-18 12:21:07 +02:00
|
|
|
);
|
2017-11-03 17:58:51 +01:00
|
|
|
|
2019-10-09 13:06:32 +02:00
|
|
|
assert_eq!(engine.eval::<bool>("fn not(x) { !x } not(false)"), Ok(true));
|
2017-11-03 17:58:51 +01:00
|
|
|
|
2019-09-18 12:21:07 +02:00
|
|
|
// TODO - do we allow stacking unary operators directly? e.g '!!!!!!!true'
|
2019-10-09 13:06:32 +02:00
|
|
|
assert_eq!(engine.eval::<bool>("!(!(!(!(true))))"), Ok(true));
|
2017-11-03 17:58:51 +01:00
|
|
|
}
|