2020-03-02 22:11:56 +08:00
|
|
|
use rhai::{Engine, EvalAltResult};
|
2017-11-03 09:58:51 -07:00
|
|
|
|
|
|
|
#[test]
|
2020-04-21 23:25:12 +08:00
|
|
|
fn test_chars() -> Result<(), Box<EvalAltResult>> {
|
2020-04-07 13:23:06 +08:00
|
|
|
let engine = Engine::new();
|
2017-11-03 09:58:51 -07:00
|
|
|
|
2020-03-02 22:11:56 +08:00
|
|
|
assert_eq!(engine.eval::<char>("'y'")?, 'y');
|
2020-04-11 12:46:10 +08:00
|
|
|
assert_eq!(engine.eval::<char>(r"'\''")?, '\'');
|
|
|
|
assert_eq!(engine.eval::<char>(r#"'"'"#)?, '"');
|
2021-04-20 12:01:35 +08:00
|
|
|
assert_eq!(engine.eval::<char>(r"'\u2764'")?, '❤');
|
2020-03-10 19:48:47 +08:00
|
|
|
|
|
|
|
#[cfg(not(feature = "no_index"))]
|
|
|
|
{
|
|
|
|
assert_eq!(engine.eval::<char>(r#"let x="hello"; x[2]"#)?, 'l');
|
|
|
|
assert_eq!(
|
2020-03-13 18:12:41 +08:00
|
|
|
engine.eval::<String>(r#"let y="hello"; y[2]='$'; y"#)?,
|
2020-03-31 10:00:17 +08:00
|
|
|
"he$lo"
|
2020-03-10 19:48:47 +08:00
|
|
|
);
|
|
|
|
}
|
2020-03-01 13:30:22 +08:00
|
|
|
|
2020-03-13 18:12:41 +08:00
|
|
|
assert!(engine.eval::<char>(r"'\uhello'").is_err());
|
2020-03-02 22:11:56 +08:00
|
|
|
assert!(engine.eval::<char>("''").is_err());
|
2017-11-03 09:58:51 -07:00
|
|
|
|
2020-03-02 22:11:56 +08:00
|
|
|
Ok(())
|
2018-06-13 10:56:29 +02:00
|
|
|
}
|