### Question:
CollisionFunctionLinear implements CollisionFunction { @Override public boolean equals(Object object) { if (this == object) { return true; } if (object == null || object.getClass() != getClass()) { return false; } final CollisionFunctionLinear other = (CollisionFunctionLinear) object; return Double.doubleToLongBits(a) == Double.doubleToLongBits(other.a) && Double.doubleToLongBits(b) == Double.doubleToLongBits(other.b); } CollisionFunctionLinear(double a, double b); double getA(); double getB(); @Override double compute(double input); @Override int getRenderX(double input); @Override int getRenderY(double input); @Override CollisionFunctionType getType(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString();  }### Answer:
@Test void testEquals() { assertEquals(function, function); assertEquals(function, new CollisionFunctionLinear(2.0, 3.0)); assertNotEquals(function, null); assertNotEquals(function, new Object()); assertNotEquals(function, new CollisionFunctionLinear(1.5, 3.0)); assertNotEquals(function, new CollisionFunctionLinear(2.0, 3.5)); }