public void TestNestedFormula() { Conjunction conj1 = new Conjunction(A, BooleanExpression.FALSE); //simplifies to A Disjunction disj = new Disjunction(conj1, A, A); // simplifies to A | A | A = A Conjunction conj2 = new Conjunction(disj, new Negation(new Negation(BooleanExpression.TRUE))); // simplifies to A & !!TRUE = A BooleanExpression actual = conj2.Simplify(); BooleanExpression expected = A; Assert.Equal(expected, actual); }