### Question:
Position implements Reflectable<PositionClassInformation>, Distributable { @ReflectiveMethod public Position changeY(Float aNewY) { if (aNewY != y) { return new Position(x, aNewY); } return this; } 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 testChangeY() throws Exception { Position thePosition = new Position(10, 20); Position theMutated = thePosition.changeY(25f); assertNotSame(thePosition, theMutated); assertEquals(10f, theMutated.x, 0); assertEquals(25f, theMutated.y, 0); }