### Question:
BinaryInputArchive implements InputArchive { public double readDouble(String tag) throws IOException { return in.readDouble(); } BinaryInputArchive(DataInput in);  BinaryInputArchive(DataInput in, int maxBufferSize, int extraMaxBufferSize); static BinaryInputArchive getArchive(InputStream strm); byte readByte(String tag); boolean readBool(String tag); int readInt(String tag); long readLong(String tag); float readFloat(String tag); double readDouble(String tag); String readString(String tag); byte[] readBuffer(String tag); void readRecord(Record r, String tag); void startRecord(String tag); void endRecord(String tag); Index startVector(String tag); void endVector(String tag); Index startMap(String tag); void endMap(String tag); static final String UNREASONBLE_LENGTH; static final int maxBuffer; }### Answer:
@Test public void testDouble() { final double expected = 3.14159f; final String tag = "tag1"; final float delta = 1e-20f; checkWriterAndReader( (oa) -> oa.writeDouble(expected, tag), (ia) -> { double actual = ia.readDouble(tag); assertEquals(expected, actual, delta); } ); }