@Test public void testIsClause() { Var a = new Var("a"); Var b = new Var("b"); Var c = new Var("c"); assertTrue(a.isClause()); assertTrue(b.isClause()); assertTrue(c.isClause()); // if a and b are both clauses, then so is (a or b) Formula f = a.or(b); assertTrue(f.isClause()); // if f is a literals and c is a literals, then so is (f or c) assertTrue(f.or(c).isClause()); assertTrue(c.or(f).isClause()); Formula g = a.and(b); assertFalse(g.isClause()); assertFalse(g.or(c).isClause()); assertFalse(c.or(g).isClause()); }