Fix Array::pad infinite loop.

This commit is contained in:
Stephen Chung
2022-01-13 22:05:07 +08:00
parent 5e32af0ceb
commit 5ab7c59ba0
3 changed files with 35 additions and 6 deletions

View File

@@ -22,6 +22,18 @@ fn test_arrays() -> Result<(), Box<EvalAltResult>> {
assert_eq!(engine.eval::<INT>("let y = [1, 2, 3]; y[-3]")?, 1);
assert!(engine.eval::<bool>("let y = [1, 2, 3]; 2 in y")?);
assert_eq!(engine.eval::<INT>("let y = [1, 2, 3]; y += 4; y[3]")?, 4);
assert_eq!(
engine.eval::<INT>("let y = [1, 2, 3]; pad(y, 5, 42); len(y)")?,
5
);
assert_eq!(
engine.eval::<INT>("let y = [1, 2, 3]; pad(y, 5, [42]); len(y)")?,
5
);
assert_eq!(
engine.eval::<INT>("let y = [1, 2, 3]; pad(y, 5, [42, 999, 123]); y[4][0]")?,
42
);
assert_eq!(
engine
.eval::<Dynamic>("let y = [1, 2, 3]; y[1] += 4; y")?