Extract index calculataion into functions.
This commit is contained in:
@@ -28,6 +28,30 @@ fn test_arrays() -> Result<(), Box<EvalAltResult>> {
|
||||
.into_typed_array::<INT>()?,
|
||||
[1, 6, 3]
|
||||
);
|
||||
assert_eq!(
|
||||
engine
|
||||
.eval::<Dynamic>("let y = [1, 2, 3]; extract(y, 1, 10)")?
|
||||
.into_typed_array::<INT>()?,
|
||||
vec![2, 3]
|
||||
);
|
||||
assert_eq!(
|
||||
engine
|
||||
.eval::<Dynamic>("let y = [1, 2, 3]; extract(y, -3, 1)")?
|
||||
.into_typed_array::<INT>()?,
|
||||
vec![1]
|
||||
);
|
||||
assert_eq!(
|
||||
engine
|
||||
.eval::<Dynamic>("let y = [1, 2, 3]; extract(y, -99, 2)")?
|
||||
.into_typed_array::<INT>()?,
|
||||
vec![1, 2]
|
||||
);
|
||||
assert_eq!(
|
||||
engine
|
||||
.eval::<Dynamic>("let y = [1, 2, 3]; extract(y, 99, 1)")?
|
||||
.into_typed_array::<INT>()?,
|
||||
vec![] as Vec<INT>
|
||||
);
|
||||
|
||||
#[cfg(not(feature = "no_object"))]
|
||||
{
|
||||
|
@@ -27,10 +27,24 @@ fn test_bit_fields() -> Result<(), Box<EvalAltResult>> {
|
||||
);
|
||||
assert_eq!(engine.eval::<INT>("let x = 10; get_bits(x, 1, 3)")?, 5);
|
||||
assert_eq!(engine.eval::<INT>("let x = 10; x[1..=3]")?, 5);
|
||||
assert!(engine.eval::<INT>("let x = 10; x[1..99]").is_err());
|
||||
assert!(engine.eval::<INT>("let x = 10; x[-1..3]").is_err());
|
||||
assert_eq!(
|
||||
engine.eval::<INT>("let x = 10; set_bits(x, 1, 3, 7); x")?,
|
||||
14
|
||||
);
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
{
|
||||
assert_eq!(engine.eval::<INT>("let x = 255; get_bits(x, -60, 2)")?, 3);
|
||||
assert_eq!(
|
||||
engine.eval::<INT>("let x = 0; set_bits(x, -64, 1, 15); x")?,
|
||||
1
|
||||
);
|
||||
assert_eq!(
|
||||
engine.eval::<INT>("let x = 0; set_bits(x, -60, 2, 15); x")?,
|
||||
0b00110000
|
||||
);
|
||||
}
|
||||
assert_eq!(engine.eval::<INT>("let x = 10; x[1..4] = 7; x")?, 14);
|
||||
assert_eq!(
|
||||
engine.eval::<INT>(
|
Reference in New Issue
Block a user