dust/tests/format.rs

58 lines
1000 B
Rust
Raw Normal View History

use dust_lang::*;
#[test]
fn format_simple_program() {
let mut interpreter = Interpreter::new(Map::new());
interpreter.run("x=1").unwrap();
2024-01-06 15:40:25 +00:00
assert_eq!(interpreter.format(), "x = 1\n");
}
const FORMATTED_BLOCK: &str = "{
1
2
3
2024-01-06 15:40:25 +00:00
}
";
#[test]
fn format_block() {
let mut interpreter = Interpreter::new(Map::new());
interpreter.run("{1 2 3}").unwrap();
assert_eq!(FORMATTED_BLOCK, interpreter.format());
}
2024-01-06 15:40:25 +00:00
const FORMATTED_MAP: &str = "{
2024-01-06 13:53:31 +00:00
{
x = 1
2024-01-06 15:40:25 +00:00
y <int> = 2
2024-01-06 13:53:31 +00:00
}
2024-01-06 15:40:25 +00:00
}
";
2024-01-06 13:53:31 +00:00
#[test]
2024-01-06 15:40:25 +00:00
fn format_map() {
2024-01-06 13:53:31 +00:00
let mut interpreter = Interpreter::new(Map::new());
2024-01-06 15:40:25 +00:00
interpreter.run("{{x=1 y <int> = 2}}").unwrap();
2024-01-06 13:53:31 +00:00
2024-01-06 15:40:25 +00:00
assert_eq!(FORMATTED_MAP, interpreter.format());
2024-01-06 13:53:31 +00:00
}
const FORMATTED_FUNCTION: &str = "(x <int>) <num> {
x / 2
2024-01-06 15:40:25 +00:00
}
";
#[test]
fn format_function() {
let mut interpreter = Interpreter::new(Map::new());
interpreter.run("( x< int > )<num>{x/2}").unwrap();
assert_eq!(FORMATTED_FUNCTION, interpreter.format());
}