### Question:
Float8Datum extends NumericDatum { @Override public long asInt8() { return (long) val; } Float8Datum(double val);  Float8Datum(byte[] bytes); @Override char asChar(); @Override short asInt2(); @Override int asInt4(); @Override long asInt8(); @Override byte[] asByteArray(); @Override float asFloat4(); @Override double asFloat8(); @Override String asChars(); @Override byte[] asTextBytes(); @Override int size(); @Override int hashCode(); boolean equals(Object obj); @Override Datum equalsTo(Datum datum); @Override int compareTo(Datum datum); @Override Datum plus(Datum datum); @Override Datum minus(Datum datum); @Override Datum multiply(Datum datum); @Override Datum divide(Datum datum); @Override Datum modular(Datum datum); @Override NumericDatum inverseSign();  }### Answer:
@Test public final void testAsInt8() { Datum d = DatumFactory.createFloat8(5d); assertEquals(5l,d.asInt8()); }