2020-03-14 13:06:40 +01:00
|
|
|
use rhai::{Engine, EvalAltResult, INT};
|
|
|
|
|
|
|
|
#[cfg(not(feature = "no_float"))]
|
|
|
|
use rhai::FLOAT;
|
2017-11-24 08:56:22 +01:00
|
|
|
|
|
|
|
#[test]
|
2020-03-02 15:11:56 +01:00
|
|
|
fn test_power_of() -> Result<(), EvalAltResult> {
|
2017-11-24 08:56:22 +01:00
|
|
|
let mut engine = Engine::new();
|
|
|
|
|
2020-03-10 16:06:20 +01:00
|
|
|
assert_eq!(engine.eval::<INT>("2 ~ 3")?, 8);
|
|
|
|
assert_eq!(engine.eval::<INT>("(-2 ~ 3)")?, -8);
|
2020-03-10 12:48:47 +01:00
|
|
|
|
|
|
|
#[cfg(not(feature = "no_float"))]
|
|
|
|
{
|
2020-03-10 16:06:20 +01:00
|
|
|
assert_eq!(
|
|
|
|
engine.eval::<FLOAT>("2.2 ~ 3.3")?,
|
2020-03-16 05:40:55 +01:00
|
|
|
13.489468760533388 as FLOAT
|
2020-03-10 16:06:20 +01:00
|
|
|
);
|
|
|
|
assert_eq!(engine.eval::<FLOAT>("2.0~-2.0")?, 0.25 as FLOAT);
|
|
|
|
assert_eq!(engine.eval::<FLOAT>("(-2.0~-2.0)")?, 0.25 as FLOAT);
|
|
|
|
assert_eq!(engine.eval::<FLOAT>("(-2.0~-2)")?, 0.25 as FLOAT);
|
|
|
|
assert_eq!(engine.eval::<INT>("4~3")?, 64);
|
2020-03-10 12:48:47 +01:00
|
|
|
}
|
2020-03-02 15:11:56 +01:00
|
|
|
|
|
|
|
Ok(())
|
2017-11-24 08:56:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2020-03-02 15:11:56 +01:00
|
|
|
fn test_power_of_equals() -> Result<(), EvalAltResult> {
|
2017-11-24 08:56:22 +01:00
|
|
|
let mut engine = Engine::new();
|
|
|
|
|
2020-03-10 16:06:20 +01:00
|
|
|
assert_eq!(engine.eval::<INT>("let x = 2; x ~= 3; x")?, 8);
|
|
|
|
assert_eq!(engine.eval::<INT>("let x = -2; x ~= 3; x")?, -8);
|
2020-03-10 12:48:47 +01:00
|
|
|
|
|
|
|
#[cfg(not(feature = "no_float"))]
|
|
|
|
{
|
|
|
|
assert_eq!(
|
2020-03-10 16:06:20 +01:00
|
|
|
engine.eval::<FLOAT>("let x = 2.2; x ~= 3.3; x")?,
|
2020-03-16 05:40:55 +01:00
|
|
|
13.489468760533388 as FLOAT
|
2020-03-10 16:06:20 +01:00
|
|
|
);
|
|
|
|
assert_eq!(
|
|
|
|
engine.eval::<FLOAT>("let x = 2.0; x ~= -2.0; x")?,
|
|
|
|
0.25 as FLOAT
|
|
|
|
);
|
|
|
|
assert_eq!(
|
|
|
|
engine.eval::<FLOAT>("let x = -2.0; x ~= -2.0; x")?,
|
|
|
|
0.25 as FLOAT
|
|
|
|
);
|
|
|
|
assert_eq!(
|
|
|
|
engine.eval::<FLOAT>("let x = -2.0; x ~= -2; x")?,
|
|
|
|
0.25 as FLOAT
|
2020-03-10 12:48:47 +01:00
|
|
|
);
|
2020-03-10 16:06:20 +01:00
|
|
|
assert_eq!(engine.eval::<INT>("let x =4; x ~= 3; x")?, 64);
|
2020-03-10 12:48:47 +01:00
|
|
|
}
|
2020-03-02 15:11:56 +01:00
|
|
|
|
|
|
|
Ok(())
|
2017-11-24 08:56:22 +01:00
|
|
|
}
|