### Question:
AxisSpace implements Cloneable, PublicCloneable, Serializable { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof AxisSpace)) { return false; } AxisSpace that = (AxisSpace) obj; if (this.top != that.top) { return false; } if (this.bottom != that.bottom) { return false; } if (this.left != that.left) { return false; } if (this.right != that.right) { return false; } return true; } AxisSpace(); double getTop(); void setTop(double space); double getBottom(); void setBottom(double space); double getLeft(); void setLeft(double space); double getRight(); void setRight(double space); void add(double space, RectangleEdge edge); void ensureAtLeast(AxisSpace space); void ensureAtLeast(double space, RectangleEdge edge); Rectangle2D shrink(Rectangle2D area, Rectangle2D result); Rectangle2D expand(Rectangle2D area, Rectangle2D result); Rectangle2D reserved(Rectangle2D area, RectangleEdge edge); @Override Object clone(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testEquals() { AxisSpace a1 = new AxisSpace(); AxisSpace a2 = new AxisSpace(); assertEquals(a1, a2); a1.setTop(1.11); assertFalse(a1.equals(a2)); a2.setTop(1.11); assertEquals(a1, a2); a1.setBottom(2.22); assertFalse(a1.equals(a2)); a2.setBottom(2.22); assertEquals(a1, a2); a1.setLeft(3.33); assertFalse(a1.equals(a2)); a2.setLeft(3.33); assertEquals(a1, a2); a1.setRight(4.44); assertFalse(a1.equals(a2)); a2.setRight(4.44); assertEquals(a1, a2); }