6411471085f242657aa64961bec4571bc024afc4
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/KadaneSerializationTest.java
| ... | ... | @@ -0,0 +1,50 @@ |
| 1 | +package com.sap.sailing.domain.common.test; |
|
| 2 | + |
|
| 3 | +import static org.junit.jupiter.api.Assertions.assertEquals; |
|
| 4 | +import static org.junit.jupiter.api.Assertions.assertNotSame; |
|
| 5 | + |
|
| 6 | +import java.io.IOException; |
|
| 7 | +import java.util.Random; |
|
| 8 | + |
|
| 9 | +import org.junit.jupiter.api.Test; |
|
| 10 | + |
|
| 11 | +import com.sap.sailing.domain.test.AbstractSerializationTest; |
|
| 12 | +import com.sap.sse.common.Util; |
|
| 13 | +import com.sap.sse.common.scalablevalue.KadaneExtremeSubsequenceFinder; |
|
| 14 | +import com.sap.sse.common.scalablevalue.ScalableDouble; |
|
| 15 | + |
|
| 16 | +public class KadaneSerializationTest extends AbstractSerializationTest { |
|
| 17 | + @Test |
|
| 18 | + public void testBasicKadaneSerialization() throws IOException, ClassNotFoundException { |
|
| 19 | + final KadaneExtremeSubsequenceFinder<Double, Double, ScalableDouble> original = new com.sap.sse.common.scalablevalue.KadaneExtremeSubsequenceFinderLinkedNodesImpl<>(); |
|
| 20 | + original.add(new ScalableDouble(17)); |
|
| 21 | + original.add(new ScalableDouble(42)); |
|
| 22 | + original.add(new ScalableDouble(-3)); |
|
| 23 | + original.add(new ScalableDouble(-99)); |
|
| 24 | + original.add(new ScalableDouble(12)); |
|
| 25 | + assertDeserializedEqualsOriginal(original); |
|
| 26 | + } |
|
| 27 | + |
|
| 28 | + @Test |
|
| 29 | + public void testLongKadaneSerialization() throws IOException, ClassNotFoundException { |
|
| 30 | + final Random random = new Random(); |
|
| 31 | + final KadaneExtremeSubsequenceFinder<Double, Double, ScalableDouble> original = new com.sap.sse.common.scalablevalue.KadaneExtremeSubsequenceFinderLinkedNodesImpl<>(); |
|
| 32 | + final int NODES = 100000; |
|
| 33 | + for (int i=0; i<NODES; i++) { |
|
| 34 | + original.add(new ScalableDouble(random.nextDouble()-0.5)); |
|
| 35 | + } |
|
| 36 | + assertDeserializedEqualsOriginal(original); |
|
| 37 | + } |
|
| 38 | + |
|
| 39 | + private void assertDeserializedEqualsOriginal( |
|
| 40 | + final KadaneExtremeSubsequenceFinder<Double, Double, ScalableDouble> original) |
|
| 41 | + throws IOException, ClassNotFoundException { |
|
| 42 | + final KadaneExtremeSubsequenceFinder<Double, Double, ScalableDouble> clone = cloneBySerialization(original, null); |
|
| 43 | + assertNotSame(clone, original); |
|
| 44 | + assertEquals(Util.asList(original), Util.asList(clone)); |
|
| 45 | + assertEquals(original.getMaxSum(), clone.getMaxSum()); |
|
| 46 | + assertEquals(original.getMinSum(), clone.getMinSum()); |
|
| 47 | + assertEquals(original.getStartIndexOfMinSumSequence(), clone.getStartIndexOfMinSumSequence()); |
|
| 48 | + assertEquals(original.getStartIndexOfMaxSumSequence(), clone.getStartIndexOfMaxSumSequence()); |
|
| 49 | + } |
|
| 50 | +} |