### Question:
Piece { @Override public boolean equals(Object obj) { if (obj == null) return false; Piece other = (Piece) obj; if (other.type != this.type) return false; for (int y=-h; y<-h+size; y++) { for (int x=-h; x<-h+size; x++) { if (this.get(x,y) != other.get(x,y)) return false; } } return true; } Piece( int color, int size, String type, int rotations, int flips );  Piece( int size, String type, int rotations, int flips ); void reset(); void reset(Piece ghost); Piece clone(); Piece add(Square s); Piece add(int x, int y); int getValue(int x, int y); boolean isValue(int x, int y); Piece rotate(int dir); Piece flip(); String toLabel(); @Override String toString(); boolean touches(int x, int y); boolean crosses(int x, int y); boolean overlaps(Piece that, int X, int Y); @Override boolean equals(Object obj); List<Square> squares(); List<Square> squares(int color); List<Square> seeds(); static String serialize(Piece piece); public String type; public int size; public int color; public int rotations; public int flips; public int count; static final String tag; }### Answer:
@Test public void testEquals() { assertTrue( I3==I3); assertFalse( I3==L4); }