1 use crate::{
2 Literal, BoolLit,
3 test_util::assert_parse_ok_eq,
4 };
5
6 macro_rules! assert_bool_parse {
7 ($input:literal, $expected:expr) => {
8 assert_parse_ok_eq(
9 $input, Literal::parse($input), Literal::Bool($expected), "Literal::parse");
10 assert_parse_ok_eq($input, BoolLit::parse($input), $expected, "BoolLit::parse");
11 };
12 }
13
14
15
16 #[test]
parse_ok()17 fn parse_ok() {
18 assert_bool_parse!("false", BoolLit::False);
19 assert_bool_parse!("true", BoolLit::True);
20 }
21
22 #[test]
parse_err()23 fn parse_err() {
24 assert!(Literal::parse("fa").is_err());
25 assert!(Literal::parse("fal").is_err());
26 assert!(Literal::parse("fals").is_err());
27 assert!(Literal::parse(" false").is_err());
28 assert!(Literal::parse("false ").is_err());
29 assert!(Literal::parse("False").is_err());
30
31 assert!(Literal::parse("tr").is_err());
32 assert!(Literal::parse("tru").is_err());
33 assert!(Literal::parse(" true").is_err());
34 assert!(Literal::parse("true ").is_err());
35 assert!(Literal::parse("True").is_err());
36 }
37
38 #[test]
value()39 fn value() {
40 assert!(!BoolLit::False.value());
41 assert!(BoolLit::True.value());
42 }
43
44 #[test]
as_str()45 fn as_str() {
46 assert_eq!(BoolLit::False.as_str(), "false");
47 assert_eq!(BoolLit::True.as_str(), "true");
48 }
49