49 lines
1.2 KiB
Rust
49 lines
1.2 KiB
Rust
use crate::{
|
|
Literal, BoolLit,
|
|
test_util::assert_parse_ok_eq,
|
|
};
|
|
|
|
macro_rules! assert_bool_parse {
|
|
($input:literal, $expected:expr) => {
|
|
assert_parse_ok_eq(
|
|
$input, Literal::parse($input), Literal::Bool($expected), "Literal::parse");
|
|
assert_parse_ok_eq($input, BoolLit::parse($input), $expected, "BoolLit::parse");
|
|
};
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
fn parse_ok() {
|
|
assert_bool_parse!("false", BoolLit::False);
|
|
assert_bool_parse!("true", BoolLit::True);
|
|
}
|
|
|
|
#[test]
|
|
fn parse_err() {
|
|
assert!(Literal::parse("fa").is_err());
|
|
assert!(Literal::parse("fal").is_err());
|
|
assert!(Literal::parse("fals").is_err());
|
|
assert!(Literal::parse(" false").is_err());
|
|
assert!(Literal::parse("false ").is_err());
|
|
assert!(Literal::parse("False").is_err());
|
|
|
|
assert!(Literal::parse("tr").is_err());
|
|
assert!(Literal::parse("tru").is_err());
|
|
assert!(Literal::parse(" true").is_err());
|
|
assert!(Literal::parse("true ").is_err());
|
|
assert!(Literal::parse("True").is_err());
|
|
}
|
|
|
|
#[test]
|
|
fn value() {
|
|
assert!(!BoolLit::False.value());
|
|
assert!(BoolLit::True.value());
|
|
}
|
|
|
|
#[test]
|
|
fn as_str() {
|
|
assert_eq!(BoolLit::False.as_str(), "false");
|
|
assert_eq!(BoolLit::True.as_str(), "true");
|
|
}
|