### Question:
BooleanBuilder implements Predicate, Cloneable { @Override public boolean equals(Object o) { if (o == this) { return true; } else if (o instanceof BooleanBuilder) { return Objects.equal(((BooleanBuilder) o).getValue(), predicate); } else { return false; } } BooleanBuilder();  BooleanBuilder(Predicate initial); @Override R accept(Visitor<R,C> v, C context); BooleanBuilder and(@Nullable Predicate right); BooleanBuilder andAnyOf(Predicate... args); BooleanBuilder andNot(Predicate right); @Override BooleanBuilder clone(); @Override boolean equals(Object o); @Nullable Predicate getValue(); @Override int hashCode(); boolean hasValue(); @Override BooleanBuilder not(); BooleanBuilder or(@Nullable Predicate right); BooleanBuilder orAllOf(Predicate... args); BooleanBuilder orNot(Predicate right); @Override Class<? extends Boolean> getType(); @Override String toString();  }### Answer:
@Test public void constant_equals_booleanBuilder() { assertFalse(first.equals(new BooleanBuilder(first))); }
@Test public void booleanBuilder_equals_constant() { assertFalse(new BooleanBuilder(first).equals(first)); }