Add to_string to prepare for string interpolation.

This commit is contained in:
Stephen Chung
2020-03-31 10:00:17 +08:00
parent c17dc34f86
commit dcf5eaf64d
6 changed files with 64 additions and 48 deletions

View File

@@ -12,7 +12,7 @@ fn test_chars() -> Result<(), EvalAltResult> {
assert_eq!(engine.eval::<char>(r#"let x="hello"; x[2]"#)?, 'l');
assert_eq!(
engine.eval::<String>(r#"let y="hello"; y[2]='$'; y"#)?,
"he$lo".to_string()
"he$lo"
);
}

View File

@@ -7,7 +7,7 @@ fn test_increment() -> Result<(), EvalAltResult> {
assert_eq!(engine.eval::<INT>("let x = 1; x += 2; x")?, 3);
assert_eq!(
engine.eval::<String>("let s = \"test\"; s += \"ing\"; s")?,
"testing".to_string()
"testing"
);
Ok(())

View File

@@ -6,30 +6,24 @@ fn test_string() -> Result<(), EvalAltResult> {
assert_eq!(
engine.eval::<String>(r#""Test string: \u2764""#)?,
"Test string: ❤".to_string()
"Test string: ❤"
);
assert_eq!(
engine.eval::<String>(r#""Test string: \x58""#)?,
"Test string: X".to_string()
"Test string: X"
);
assert_eq!(
engine.eval::<String>(r#""foo" + "bar""#)?,
"foobar".to_string()
);
assert_eq!(engine.eval::<String>(r#""foo" + "bar""#)?, "foobar");
#[cfg(not(feature = "no_stdlib"))]
assert_eq!(
engine.eval::<String>(r#""foo" + 123"#)?,
"foo123".to_string()
);
assert_eq!(engine.eval::<String>(r#""foo" + 123"#)?, "foo123");
#[cfg(not(feature = "no_float"))]
#[cfg(not(feature = "no_stdlib"))]
assert_eq!(
engine.eval::<String>(r#""foo" + 123.4556"#)?,
"foo123.4556".to_string()
);
assert_eq!(engine.eval::<String>(r#""foo" + 123.4556"#)?, "foo123.4556");
#[cfg(not(feature = "no_stdlib"))]
assert_eq!(engine.eval::<String>("(42).to_string()")?, "42");
Ok(())
}