Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 24f4090

Browse files
alxkmDenizAltunkapan
andauthored
testing: improve MergeKSortedLinkedListTes (#6445)
testing: improve MergeKSortedLinkedListTest Co-authored-by: Deniz Altunkapan <93663085+DenizAltunkapan@users.noreply.github.com>
1 parent 0081d5c commit 24f4090

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

‎src/test/java/com/thealgorithms/datastructures/lists/MergeKSortedLinkedListTest.java

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,88 @@ private int[] getListValues(Node head) {
9090
}
9191
return Arrays.copyOf(values, i); // return only filled part
9292
}
93+
94+
@Test
95+
void testMergeWithNullListsInArray() {
96+
Node list1 = new Node(1, new Node(3));
97+
Node list2 = null;
98+
Node list3 = new Node(2, new Node(4));
99+
Node[] lists = {list1, list2, list3};
100+
101+
MergeKSortedLinkedList merger = new MergeKSortedLinkedList();
102+
Node mergedHead = merger.mergeKList(lists, lists.length);
103+
104+
int[] expectedValues = {1, 2, 3, 4};
105+
int[] actualValues = getListValues(mergedHead);
106+
assertArrayEquals(expectedValues, actualValues, "Should handle null lists mixed with valid lists");
107+
}
108+
109+
@Test
110+
void testMergeWithDuplicateValues() {
111+
Node list1 = new Node(1, new Node(1, new Node(3)));
112+
Node list2 = new Node(1, new Node(2, new Node(3)));
113+
Node list3 = new Node(3, new Node(3));
114+
Node[] lists = {list1, list2, list3};
115+
116+
MergeKSortedLinkedList merger = new MergeKSortedLinkedList();
117+
Node mergedHead = merger.mergeKList(lists, lists.length);
118+
119+
int[] expectedValues = {1, 1, 1, 2, 3, 3, 3, 3};
120+
int[] actualValues = getListValues(mergedHead);
121+
assertArrayEquals(expectedValues, actualValues, "Should handle duplicate values correctly");
122+
}
123+
124+
@Test
125+
void testMergeWithZeroLength() {
126+
Node[] lists = {};
127+
128+
MergeKSortedLinkedList merger = new MergeKSortedLinkedList();
129+
Node mergedHead = merger.mergeKList(lists, 0);
130+
131+
assertNull(mergedHead, "Should return null for zero-length array");
132+
}
133+
134+
@Test
135+
void testMergeWithNegativeNumbers() {
136+
Node list1 = new Node(-5, new Node(-1, new Node(3)));
137+
Node list2 = new Node(-3, new Node(0, new Node(2)));
138+
Node[] lists = {list1, list2};
139+
140+
MergeKSortedLinkedList merger = new MergeKSortedLinkedList();
141+
Node mergedHead = merger.mergeKList(lists, lists.length);
142+
143+
int[] expectedValues = {-5, -3, -1, 0, 2, 3};
144+
int[] actualValues = getListValues(mergedHead);
145+
assertArrayEquals(expectedValues, actualValues, "Should handle negative numbers correctly");
146+
}
147+
148+
@Test
149+
void testMergeIdenticalLists() {
150+
Node list1 = new Node(1, new Node(2, new Node(3)));
151+
Node list2 = new Node(1, new Node(2, new Node(3)));
152+
Node list3 = new Node(1, new Node(2, new Node(3)));
153+
Node[] lists = {list1, list2, list3};
154+
155+
MergeKSortedLinkedList merger = new MergeKSortedLinkedList();
156+
Node mergedHead = merger.mergeKList(lists, lists.length);
157+
158+
int[] expectedValues = {1, 1, 1, 2, 2, 2, 3, 3, 3};
159+
int[] actualValues = getListValues(mergedHead);
160+
assertArrayEquals(expectedValues, actualValues, "Should merge identical lists correctly");
161+
}
162+
163+
@Test
164+
void testMergeAlreadySortedSequence() {
165+
Node list1 = new Node(1, new Node(2));
166+
Node list2 = new Node(3, new Node(4));
167+
Node list3 = new Node(5, new Node(6));
168+
Node[] lists = {list1, list2, list3};
169+
170+
MergeKSortedLinkedList merger = new MergeKSortedLinkedList();
171+
Node mergedHead = merger.mergeKList(lists, lists.length);
172+
173+
int[] expectedValues = {1, 2, 3, 4, 5, 6};
174+
int[] actualValues = getListValues(mergedHead);
175+
assertArrayEquals(expectedValues, actualValues, "Should handle already sorted sequence");
176+
}
93177
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /