package com.github.jparkie.pdd.impl; import com.github.jparkie.pdd.ProbabilisticDeDuplicatorSerializer; import org.junit.Ignore; import org.junit.Test; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class BSBFDeDuplicatorSerializerTest { // TODO: Consider how to write regression tests for version comparability. @Ignore @Test public void testWriteToReadFromVersion1() throws IOException { final ProbabilisticDeDuplicatorSerializer<BSBFDeDuplicator> serializer = BSBFDeDuplicatorSerializers.VERSION_1; final BSBFDeDuplicator deDuplicator = new BSBFDeDuplicator(64L, 1); final ByteBuffer byteBuffer = ByteBuffer.allocate(64); byteBuffer.putLong(1L); assertTrue(deDuplicator.classifyDistinct(byteBuffer.array())); byteBuffer.clear(); final ByteArrayOutputStream out = new ByteArrayOutputStream(); serializer.writeTo(deDuplicator, out); out.close(); final ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); final BSBFDeDuplicator serialized = serializer.readFrom(in); in.close(); assertEquals(deDuplicator, serialized); } @Test public void testWriteToReadFromVersion2() throws IOException { final ProbabilisticDeDuplicatorSerializer<BSBFDeDuplicator> serializer = BSBFDeDuplicatorSerializers.VERSION_2; final BSBFDeDuplicator deDuplicator = new BSBFDeDuplicator(64L, 1); final ByteBuffer byteBuffer = ByteBuffer.allocate(64); byteBuffer.putLong(1L); assertTrue(deDuplicator.classifyDistinct(byteBuffer.array())); byteBuffer.clear(); final ByteArrayOutputStream out = new ByteArrayOutputStream(); serializer.writeTo(deDuplicator, out); out.close(); final ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); final BSBFDeDuplicator serialized = serializer.readFrom(in); in.close(); assertEquals(deDuplicator, serialized); } }