Space extends Dimension { @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; Space other = (Space) obj; if (parent == null) { if (other.parent != null) return false; } else if (!parent.equals(other.parent)) return false; if (remainder == null) { if (other.remainder != null) return false; } else if (!remainder.equals(other.remainder)) return false; if (x != other.x) return false; if (y != other.y) return false; if (z != other.z) return false; return true; } Space();  Space(Space clone);  Space(Space parent, String name, int w, int d, int h, int x, int y, int z);  Space(int w, int d, int h, int x, int y, int z); int getX(); void setX(final int x); int getY(); void setY(final int y); int getZ(); void setZ(final int z); void setParent(Space parent); void setRemainder(Space dual); Space getRemainder(); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object obj); void copyFrom(Space space); void copyFrom(int w, int d, int h, int x, int y, int z); boolean intersects(Space space); boolean intersectsY(Space space); boolean intersectsY(int startY, int endY); boolean intersectsX(Space space); boolean intersectsX(int startX, int endX); boolean intersectsZ(Space space); boolean intersectsZ(int startZ, int endZ); boolean intersects(Placement placement); boolean intersectsY(Placement placement); boolean intersectsX(Placement placement); boolean intersectsZ(Placement placement); void subtractX(Placement placement); void subtractY(Placement placement); void subtractZ(Placement placement); Space getParent();  }
@Test void testEquals() { assertEquals(new Space(1, 2, 3, 4, 5, 6), new Space(1, 2, 3, 4, 5, 6)); }