#[cfg(test)] mod tests { use crate::negation_normal_form::negation_normal_form; #[test] fn double_neg_simple() { assert_eq!(negation_normal_form("A!!"), "A"); assert_eq!(negation_normal_form("B!!!!"), "B"); assert_eq!(negation_normal_form("C!!!"), "C!"); assert_eq!(negation_normal_form("D!!!!!!!!!!!!!!!!"), "D"); assert_eq!(negation_normal_form("E!!!!!!!!!!!!!!!"), "E!"); } #[test] fn double_neg() { assert_eq!(negation_normal_form("A!!A&"), "AA&"); assert_eq!(negation_normal_form("B!!B!!&"), "BB&"); assert_eq!(negation_normal_form("C!!C!&"), "CC!&"); assert_eq!(negation_normal_form("D!!D&!!!!"), "DD&"); assert_eq!(negation_normal_form("E!!E!!!!&!!"), "EE&"); assert_eq!(negation_normal_form("F!!F!&!!!!!!!!"), "FF!&"); } #[test] fn neg_and() { assert_eq!(negation_normal_form("AB&!"), "A!B!|"); } #[test] fn neg_or() { assert_eq!(negation_normal_form("AB|!"), "A!B!&"); } }