### Question:
CollisionFunctionLinear implements CollisionFunction { @Override public int hashCode() { final int prime = 31; int result = 1; long temp; temp = Double.doubleToLongBits(a); result = prime * result + (int) (temp ^ temp >>> 32); temp = Double.doubleToLongBits(b); result = prime * result + (int) (temp ^ temp >>> 32); return result; } 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 testHashCode() { assertHashEquals(function, new CollisionFunctionLinear(2.0, 3.0)); assertHashNotEquals(function, new Object()); assertHashNotEquals(function, new CollisionFunctionLinear(1.5, 3.0)); assertHashNotEquals(function, new CollisionFunctionLinear(2.0, 3.5)); }