@ContinuousIntegrationTest(estimatedDuration = 0.0)
@Test(timeout = 30000)
public void testSerializeToFileAndDeserialize() throws IOException
{
Random random = new Random();
KryoStreamSerializer kryoStreamSerializer = new KryoStreamSerializer(Conversions.megabytesToBytes(10));
kryoStreamSerializer.registerClasses(new IHMCCommunicationKryoNetClassList());
KryoStreamDeSerializer kryoStreamDeSerializer = new KryoStreamDeSerializer(Conversions.megabytesToBytes(10));
kryoStreamDeSerializer.registerClasses(new IHMCCommunicationKryoNetClassList());
CapturabilityBasedStatus cbs1 = RandomHumanoidMessages.nextCapturabilityBasedStatus(random);
CapturabilityBasedStatus cbs2 = RandomHumanoidMessages.nextCapturabilityBasedStatus(random);
CapturabilityBasedStatus cbs3 = RandomHumanoidMessages.nextCapturabilityBasedStatus(random);
DataOutputStream fileDataOutputStream = FileTools.newFileDataOutputStream(TEST_FILE_PATH, DefaultExceptionHandler.PRINT_STACKTRACE);
kryoStreamSerializer.write(fileDataOutputStream, cbs1);
kryoStreamSerializer.write(fileDataOutputStream, cbs2);
kryoStreamSerializer.write(fileDataOutputStream, cbs3);
fileDataOutputStream.close();
DataInputStream fileDataInputStream = FileTools.newFileDataInputStream(TEST_FILE_PATH);
CapturabilityBasedStatus cbs1Out = (CapturabilityBasedStatus) kryoStreamDeSerializer.read(fileDataInputStream);
CapturabilityBasedStatus cbs2Out = (CapturabilityBasedStatus) kryoStreamDeSerializer.read(fileDataInputStream);
CapturabilityBasedStatus cbs3Out = (CapturabilityBasedStatus) kryoStreamDeSerializer.read(fileDataInputStream);
fileDataInputStream.close();
assertPacketsEqual(cbs1, cbs1Out);
assertPacketsEqual(cbs2, cbs2Out);
assertPacketsEqual(cbs3, cbs3Out);
}