### Question:
TimeDatum extends Datum { @Override public int asInt4() { throw new TajoRuntimeException(new InvalidValueForCastException(TajoDataTypes.Type.TIME, TajoDataTypes.Type.INT4)); } TimeDatum(long time); @Override TimeMeta asTimeMeta(); int getHourOfDay(); int getMinuteOfHour(); int getSecondOfMinute(); int getMillisOfSecond(); String toString(); @Override int asInt4(); @Override long asInt8(); @Override float asFloat4(); @Override double asFloat8(); @Override String asChars(); @Override int size(); @Override byte [] asByteArray(); @Override Datum plus(Datum datum); @Override Datum minus(Datum datum); @Override Datum equalsTo(Datum datum); @Override int compareTo(Datum datum); @Override boolean equals(Object obj); @Override int hashCode(); static final int SIZE; }### Answer:
@Test(expected = TajoRuntimeException.class) public final void testAsInt4() { Datum d = DatumFactory.createTime(TIME); Datum copy = DatumFactory.createTime(d.asInt4()); assertEquals(d, copy); }