not(not(leaf(3))))).toString()); assertEquals("NO", SearchArgumentImpl.BuilderImpl.pushDownNot( not(constant(TruthValue.YES))).toString()); assertEquals("YES", SearchArgumentImpl.BuilderImpl.pushDownNot( not(constant(TruthValue.NO))).toString()); assertEquals("NULL", SearchArgumentImpl.BuilderImpl.pushDownNot( not(constant(TruthValue.NULL))).toString()); assertEquals("YES_NO", SearchArgumentImpl.BuilderImpl.pushDownNot( not(constant(TruthValue.YES_NO))).toString()); assertEquals("YES_NULL", SearchArgumentImpl.BuilderImpl.pushDownNot( not(constant(TruthValue.NO_NULL))).toString()); assertEquals("NO_NULL", SearchArgumentImpl.BuilderImpl.pushDownNot( not(constant(TruthValue.YES_NULL))).toString()); assertEquals("YES_NO_NULL", SearchArgumentImpl.BuilderImpl.pushDownNot( not(constant(TruthValue.YES_NO_NULL))).toString());
assertEquals("(and leaf-1)", SearchArgumentImpl.BuilderImpl.foldMaybe(and(leaf(1), constant(TruthValue.YES_NO_NULL))).toString()); assertEquals("(and leaf-1 leaf-2)", SearchArgumentImpl.BuilderImpl.foldMaybe(and(leaf(1), constant(TruthValue.YES_NO_NULL), leaf(2))).toString()); assertEquals("(and leaf-1 leaf-2)", SearchArgumentImpl.BuilderImpl. foldMaybe(and(constant(TruthValue.YES_NO_NULL), leaf(1), leaf(2), constant(TruthValue.YES_NO_NULL))).toString()); assertEquals("YES_NO_NULL", SearchArgumentImpl.BuilderImpl. foldMaybe(and(constant(TruthValue.YES_NO_NULL), constant(TruthValue.YES_NO_NULL))).toString()); assertEquals("YES_NO_NULL", SearchArgumentImpl.BuilderImpl. foldMaybe(or(leaf(1), constant(TruthValue.YES_NO_NULL))).toString()); assertEquals("(or leaf-1 (and leaf-2))", SearchArgumentImpl.BuilderImpl.foldMaybe(or(leaf(1), and(leaf(2), constant(TruthValue.YES_NO_NULL)))).toString()); assertEquals("(and leaf-1)", SearchArgumentImpl.BuilderImpl.foldMaybe(and(or(leaf(2), constant(TruthValue.YES_NO_NULL)), leaf(1))).toString()); assertEquals("(and leaf-100)", SearchArgumentImpl.BuilderImpl.foldMaybe( SearchArgumentImpl.BuilderImpl.convertToCNF(and(leaf(100),
assertEquals("leaf-1", SearchArgumentImpl.BuilderImpl.flatten(leaf(1)).toString()); assertEquals("NO", SearchArgumentImpl.BuilderImpl.flatten(constant(TruthValue.NO)).toString()); assertEquals("(not (not leaf-1))", SearchArgumentImpl.BuilderImpl.flatten(not(not(leaf(1)))).toString());
toString()); assertEquals("NO", SearchArgumentImpl.BuilderImpl.convertToCNF( constant(TruthValue.NO)).toString()); assertEquals("(not leaf-1)", SearchArgumentImpl.BuilderImpl.convertToCNF( not(leaf(1))).toString());