### Question:
Limit implements NullaryPredicate, Predicate<Object>, BinaryPredicate<Object, Object> { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof Limit)) { return false; } Limit other = (Limit) obj; return other.max == max; } Limit(int count); boolean test(); boolean test(Object obj); boolean test(Object a, Object b); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static Limit of(int count);  }### Answer:
@Test public void testEquals() { Limit limit = new Limit(1); assertObjectsAreEqual(new Limit(1), limit); assertObjectsAreNotEqual(new Limit(2), limit); assertTrue(!limit.equals(null)); }