/** * Generates a new array of {@link DoubleLinkedList}s of the given length. The array will be filled with new {@link DoubleLinkedList} objects. * * @param length * Length of the resulting array. * @return */ public static <T extends DoubleLinkedListItem<T>> DoubleLinkedList<T>[] getArray(final int length) { @SuppressWarnings("unchecked") DoubleLinkedList<T>[] array = new DoubleLinkedList[length]; for (int i = 0; i < length; i++) { array[i] = new DoubleLinkedList<>(); } return array; }
@Test public void testMerge() { DoubleLinkedList<DoubleLinkedIntListItem> list2 = new DoubleLinkedList<>(); for (int i = 0; i < TEST_NUMBERS; i++) { list.pushEnd(new DoubleLinkedIntListItem(i)); list2.pushEnd(new DoubleLinkedIntListItem(i)); } list2.mergeInto(list); assertEquals(0, list2.size()); assertEquals(TEST_NUMBERS * 2, list.size()); assertEquals(list2.head, ((DoubleLinkedListItem<DoubleLinkedIntListItem>) list2.head).next); assertEquals(list2.head, ((DoubleLinkedListItem<DoubleLinkedIntListItem>) list2.head).prev); int i = 0; for (DoubleLinkedIntListItem curr : list) { assertEquals(i % TEST_NUMBERS, curr.value); i++; } }