### Question:
Position implements Reflectable<PositionClassInformation>, Distributable { @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Position position = (Position) o; return ((int) x) == (int) position.x && ((int) y) == (int) position.y; } Position();  Position(float aX, float aY);  Position(double aX, double aY); @Override boolean equals(Object o); @Override int hashCode(); @Override PositionClassInformation getClassInformation(); @ReflectiveMethod Position add(Position aOffset); @ReflectiveMethod Position changeX(Float aNewX); @ReflectiveMethod Position changeY(Float aNewY); @ReflectiveMethod Position snapToGrid(int aGridWidth, int aGridHeight); @Override Map<String, Object> serialize(); static Position deserialize(Map<String, Object> aSerializedStructure); Position translate(Angle aAngle, double aDistance); @ReflectiveField
    final float x; @ReflectiveField
    final float y; }### Answer:
@Test public void testEquals() { Position thePosition = new Position(6, 7); Position thePosition2 = new Position(6, 7); Position thePosition3 = new Position(6, 9); Position thePosition4 = new Position(9, 7); assertEquals(thePosition, thePosition); assertEquals(thePosition, thePosition2); assertNotEquals(thePosition, thePosition3); assertNotEquals(thePosition, thePosition4); assertNotEquals(thePosition, "lala"); assertNotEquals(thePosition, null); }