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"); }