### Question:
TileGame implements Tile { @Override public boolean equals(Object object) { if (this == object) { return true; } if (object == null || object.getClass() != getClass()) { return false; } final TileGame other = (TileGame) object; return number == other.number && tx == other.tx && ty == other.ty; } TileGame(int number, int tx, int ty, int width, int height); void set(int number); void setSheet(int sheetId); @Override int getNumber(); @Override Integer getKey(); @Override int getSheet(); @Override Integer getSheetKey(); @Override int getInTileX(); @Override int getInTileY(); @Override int getInTileWidth(); @Override int getInTileHeight(); @Override int getWidth(); @Override int getHeight(); @Override double getX(); @Override double getY(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString();  }### Answer:
@Test void testEquals() { final TileGame tile = new TileGame(1, 16, 25, 4, 5); assertEquals(tile, tile); assertEquals(tile, new TileGame(1, 16, 25, 4, 5)); assertEquals(tile, new TileGame(1, 16, 25, 10, 5)); assertEquals(tile, new TileGame(1, 16, 25, 4, 10)); assertNotEquals(tile, null); assertNotEquals(tile, new Object()); assertNotEquals(tile, new TileGame(0, 16, 25, 4, 5)); assertNotEquals(tile, new TileGame(1, 0, 25, 4, 5)); assertNotEquals(tile, new TileGame(1, 16, 0, 4, 5)); }