@Test
public void testSerializeIndividually() throws IOException {
EitherTypeInfo<LongValue, DoubleValue> eitherTypeInfo = new EitherTypeInfo<>(
ValueTypeInfo.LONG_VALUE_TYPE_INFO, ValueTypeInfo.DOUBLE_VALUE_TYPE_INFO);
EitherSerializer<LongValue, DoubleValue> eitherSerializer =
(EitherSerializer<LongValue, DoubleValue>) eitherTypeInfo.createSerializer(new ExecutionConfig());
LongValue lv = new LongValue();
DoubleValue dv = new DoubleValue();
Either<LongValue, DoubleValue> left = Left(lv);
Either<LongValue, DoubleValue> right = Right(dv);
TestOutputView out = new TestOutputView();
eitherSerializer.serialize(left, out);
eitherSerializer.serialize(right, out);
eitherSerializer.serialize(left, out);
TestInputView in = out.getInputView();
Either<LongValue, DoubleValue> copy0 = eitherSerializer.deserialize(right, in);
Either<LongValue, DoubleValue> copy1 = eitherSerializer.deserialize(copy0, in);
Either<LongValue, DoubleValue> copy2 = eitherSerializer.deserialize(copy1, in);
assertSame(right, copy1);
assertSame(copy0, copy2);
assertSame(right.right(), copy1.right());
assertSame(copy0.left(), copy2.left());
}