51 lines
818 B
Rust
51 lines
818 B
Rust
use dust_lang::*;
|
|
|
|
#[test]
|
|
fn match_value() {
|
|
let test = interpret(
|
|
"
|
|
match 1 {
|
|
3 -> false
|
|
2 -> { false }
|
|
1 -> true
|
|
}
|
|
",
|
|
)
|
|
.unwrap();
|
|
|
|
assert_eq!(Value::Boolean(true), test);
|
|
}
|
|
|
|
#[test]
|
|
fn match_assignment() {
|
|
let test = interpret(
|
|
"
|
|
x = match 1 {
|
|
3 -> false
|
|
2 -> { false }
|
|
1 -> true
|
|
}
|
|
x
|
|
",
|
|
)
|
|
.unwrap();
|
|
|
|
assert_eq!(Value::Boolean(true), test);
|
|
}
|
|
|
|
#[test]
|
|
fn match_enum() {
|
|
let result = interpret(
|
|
"
|
|
foobar = Option::Some(true)
|
|
|
|
match foobar {
|
|
Option::None -> false,
|
|
Option::Some(content) -> content,
|
|
}
|
|
",
|
|
);
|
|
|
|
assert_eq!(result, Ok(Value::Boolean(true)));
|
|
}
|