Add remove/insert to arrays and maps.

This commit is contained in:
Stephen Chung
2020-04-10 21:59:29 +08:00
parent 81894e52cb
commit c1b16b1a35
4 changed files with 127 additions and 69 deletions

View File

@@ -16,20 +16,26 @@ fn test_arrays() -> Result<(), EvalAltResult> {
assert_eq!(
engine.eval::<INT>(
r"
let x = [1, 2, 3];
let y = [4, 5];
x.append(y);
x.len()
let x = [2, 9];
x.insert(-1, 1);
x.insert(999, 3);
let r = x.remove(2);
let y = [4, 5];
x.append(y);
x.len() + r
"
)?,
5
14
);
assert_eq!(
engine.eval::<INT>(
r"
let x = [1, 2, 3];
x += [4, 5];
x.len()
let x = [1, 2, 3];
x += [4, 5];
x.len()
"
)?,
5
@@ -38,9 +44,9 @@ fn test_arrays() -> Result<(), EvalAltResult> {
engine
.eval::<Array>(
r"
let x = [1, 2, 3];
let y = [4, 5];
x + y
let x = [1, 2, 3];
let y = [4, 5];
x + y
"
)?
.len(),

View File

@@ -33,6 +33,16 @@ fn test_map_indexing() -> Result<(), EvalAltResult> {
assert!(engine.eval::<bool>("let y = #{a: 1, b: 2, c: 3}; 'b' in y")?);
assert!(!engine.eval::<bool>(r#"let y = #{a: 1, b: 2, c: 3}; "z" in y"#)?);
assert_eq!(
engine.eval::<INT>(
r#"
let x = #{a: 1, b: 2, c: 3};
let c = x.remove("c");
x.len() + c
"#
)?,
5
);
assert_eq!(
engine.eval::<INT>(
r"