aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/ListMergerTestCase.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
commit72231250ed81e10d66bfe70701e64fa5fe50f712 (patch)
tree2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /container-search/src/test/java/com/yahoo/vespa/streamingvisitors/ListMergerTestCase.java
Publish
Diffstat (limited to 'container-search/src/test/java/com/yahoo/vespa/streamingvisitors/ListMergerTestCase.java')
-rw-r--r--container-search/src/test/java/com/yahoo/vespa/streamingvisitors/ListMergerTestCase.java87
1 files changed, 87 insertions, 0 deletions
diff --git a/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/ListMergerTestCase.java b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/ListMergerTestCase.java
new file mode 100644
index 00000000000..55af3dd43e5
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/ListMergerTestCase.java
@@ -0,0 +1,87 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.streamingvisitors;
+
+import com.yahoo.vespa.streamingvisitors.ListMerger;
+
+import java.util.List;
+import java.util.LinkedList;
+
+/**
+ * @author <a href="mailto:ulf@yahoo-inc.com">Ulf Carlin</a>
+ */
+public class ListMergerTestCase extends junit.framework.TestCase {
+ private void initializeLists(List<String> list1, List<String> list2, int entryCount, int padding) {
+ for (int i = 0; i < entryCount; i++) {
+ if ((i % 2) == 0) {
+ list1.add("String " + String.format("%0" + padding + "d", (i+1)));
+ } else {
+ list2.add("String " + String.format("%0" + padding + "d", (i+1)));
+ }
+ }
+ }
+
+ private void verifyList(List<String> list, int entryCount, int padding) {
+ assertEquals(entryCount, list.size());
+ for (int i = 0; i < entryCount; i++) {
+ assertEquals("String " + String.format("%0" + padding + "d", (i+1)), list.get(i));
+ }
+ }
+
+ public void testMergeLists() {
+ int entryCount = 6;
+ int padding = (int)Math.log10(entryCount) + 1;
+
+ List<String> list1 = new LinkedList<>();
+ List<String> list2 = new LinkedList<>();
+ initializeLists(list1, list2, entryCount, padding);
+
+ List<String> newList = ListMerger.mergeIntoArrayList(list1, list2);
+ verifyList(newList, entryCount, padding);
+
+ newList = ListMerger.mergeIntoArrayList(list1, list2, entryCount/2);
+ verifyList(newList, entryCount/2, padding);
+
+ ListMerger.mergeLinkedLists(list1, list2, entryCount/2);
+ verifyList(list1, entryCount/2, padding);
+ }
+
+ public void testMergeListsReversed() {
+ int entryCount = 6;
+ int padding = (int)Math.log10(entryCount) + 1;
+
+ List<String> list1 = new LinkedList<>();
+ List<String> list2 = new LinkedList<>();
+ initializeLists(list2, list1, entryCount, padding);
+
+ List<String> newList = ListMerger.mergeIntoArrayList(list1, list2);
+ verifyList(newList, entryCount, padding);
+
+ newList = ListMerger.mergeIntoArrayList(list1, list2, entryCount/2);
+ verifyList(newList, entryCount/2, padding);
+
+ ListMerger.mergeLinkedLists(list1, list2, entryCount/2);
+ verifyList(list1, entryCount/2, padding);
+ }
+
+ /*
+ public void testMergeListsPerformance() {
+ int entryCount = 2000000; // 2000000
+ int padding = (int)Math.log10(entryCount) + 1;
+
+ List<String> list1 = new LinkedList<String>();
+ List<String> list2 = new LinkedList<String>();
+ initializeLists(list1, list2, entryCount, padding);
+
+ long startTime = System.currentTimeMillis();
+ //List<String> newList = ListMerger.mergeIntoArrayList(list1, list2);
+ //List<String> newList = ListMerger.mergeIntoArrayList(list1, list2, entryCount/2);
+ ListMerger.mergeLinkedLists(list1, list2, entryCount);
+ //ListMerger.mergeLinkedLists(list1, list2, entryCount/2);
+ long endTime = System.currentTimeMillis();
+ long elapsedTime = endTime - startTime;
+ double seconds = elapsedTime / 1.0E03;
+ System.out.println ("Elapsed Time = " + seconds + " seconds");
+ //assertEquals(entryCount/2, newList.size());
+ }
+ */
+}