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
+}