### Question:
PredicateOperation extends OperationImpl<Boolean> implements Predicate { @Override public Predicate not() { if (not == null) { not = ExpressionUtils.predicate(Ops.NOT, this); } return not; } protected  PredicateOperation(Operator operator, ImmutableList<Expression<?>> args); @Override Predicate not();  }### Answer:
@SuppressWarnings("unchecked") @Test public void not() { Path<?> o1 = ExpressionUtils.path(Object.class, "o1"); Path<?> o2 = ExpressionUtils.path(Object.class, "o2"); PredicateOperation template = ExpressionUtils.predicate(Ops.EQ, o1, o2); assertEquals("!(o1 = o2)", template.not().toString()); }