### Question:
LazyTuple implements Tuple, Cloneable { @Override public int hashCode() { return Arrays.hashCode(values); } LazyTuple(Schema schema, byte[][] textBytes, long offset);  LazyTuple(Schema schema, byte[][] textBytes, long offset, byte[] nullBytes, SerializerDeserializer serde);  LazyTuple(LazyTuple tuple); @Override int size(); @Override boolean contains(int fieldid); @Override boolean isBlank(int fieldid); @Override boolean isBlankOrNull(int fieldid); @Override void insertTuple(int fieldId, Tuple tuple); @Override void clear(); @Override void put(int fieldId, Datum value); @Override void put(Datum[] values); @Override Datum asDatum(int fieldId); @Override TajoDataTypes.Type type(int fieldId); @Override int size(int fieldId); @Override void clearOffset(); Datum get(int fieldId); @Override void setOffset(long offset); @Override long getOffset(); @Override boolean getBool(int fieldId); @Override byte getByte(int fieldId); @Override char getChar(int fieldId); @Override byte [] getBytes(int fieldId); @Override byte[] getTextBytes(int fieldId); @Override short getInt2(int fieldId); @Override int getInt4(int fieldId); @Override long getInt8(int fieldId); @Override float getFloat4(int fieldId); @Override double getFloat8(int fieldId); @Override String getText(int fieldId); @Override TimeMeta getTimeDate(int fieldId); @Override ProtobufDatum getProtobufDatum(int fieldId); @Override IntervalDatum getInterval(int fieldId); @Override char[] getUnicodeChars(int fieldId); @Override String toString(); @Override int hashCode(); @Override Datum[] getValues(); @Override Tuple clone(); @Override boolean equals(Object obj);  }### Answer:
@Test public void testHashCode() { int colNum = schema.size(); LazyTuple t1 = new LazyTuple(schema, new byte[colNum][], -1); LazyTuple t2 = new LazyTuple(schema, new byte[colNum][], -1); t1.put(0, DatumFactory.createInt4(1)); t1.put(1, DatumFactory.createInt4(2)); t1.put(3, DatumFactory.createInt4(2)); t1.put(4, DatumFactory.createText("str")); t2.put(0, DatumFactory.createInt4(1)); t2.put(1, DatumFactory.createInt4(2)); t2.put(3, DatumFactory.createInt4(2)); t2.put(4, DatumFactory.createText("str")); assertEquals(t1.hashCode(), t2.hashCode()); Tuple t3 = new VTuple(colNum); t3.put(0, DatumFactory.createInt4(1)); t3.put(1, DatumFactory.createInt4(2)); t3.put(3, DatumFactory.createInt4(2)); t3.put(4, DatumFactory.createText("str")); assertEquals(t1.hashCode(), t3.hashCode()); assertEquals(t2.hashCode(), t3.hashCode()); Tuple t4 = new VTuple(5); t4.put(0, DatumFactory.createInt4(1)); t4.put(1, DatumFactory.createInt4(2)); t4.put(4, DatumFactory.createInt4(2)); assertNotSame(t1.hashCode(), t4.hashCode()); }