Skip to content

Commit 9e7456a

Browse files
authored
Add tests for merge sort (TheAlgorithms#3715)
1 parent 3542f1c commit 9e7456a

File tree

3 files changed

+136
-0
lines changed

3 files changed

+136
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.thealgorithms.strings;
2+
3+
/**
4+
* Reverse String using Recursion
5+
*/
6+
7+
public class ReverseStringRecursive {
8+
/**
9+
* @param str string to be reversed
10+
* @return reversed string
11+
*/
12+
public static String reverse(String str)
13+
{
14+
if(str.isEmpty()){
15+
return str;
16+
} else {
17+
return reverse(str.substring(1))+str.charAt(0);
18+
}
19+
}
20+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package com.thealgorithms.sorts;
2+
3+
import org.junit.jupiter.api.BeforeAll;
4+
import org.junit.jupiter.api.Test;
5+
6+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
7+
8+
public class MergeSortTest {
9+
10+
private static MergeSort mergeSort= new MergeSort();
11+
12+
@Test
13+
void shouldAcceptWhenEmptyArrayIsPassed() {
14+
Integer [] array = new Integer[]{};
15+
Integer [] expected = new Integer[]{};
16+
17+
Integer []sorted = mergeSort.sort(array);
18+
19+
assertArrayEquals(expected, sorted);
20+
}
21+
22+
@Test
23+
void shouldAcceptWhenSingleValuedArrayIsPassed() {
24+
Integer [] array = new Integer[]{2};
25+
Integer [] expected = new Integer[]{2};
26+
27+
Integer [] sorted = mergeSort.sort(array);
28+
29+
assertArrayEquals(expected, sorted);
30+
}
31+
32+
@Test
33+
void shouldAcceptWhenArrayWithAllPositiveValuesIsPassed() {
34+
Integer [] array = new Integer[]{60, 7, 55, 9, 999, 3};
35+
Integer [] expected = new Integer[]{3, 7, 9, 55, 60, 999};
36+
37+
Integer [] sorted = mergeSort.sort(array);
38+
39+
assertArrayEquals(expected, sorted);
40+
}
41+
42+
@Test
43+
void shouldAcceptWhenArrayWithAllNegativeValuesIsPassed() {
44+
Integer [] array = new Integer[]{-60, -7, -55, -9, -999, -3};
45+
Integer [] expected = new Integer[]{-999, -60, -55, -9, -7, -3};
46+
47+
Integer [] sorted = mergeSort.sort(array);
48+
49+
assertArrayEquals(expected, sorted);
50+
}
51+
52+
@Test
53+
void shouldAcceptWhenArrayWithRealNumberValuesIsPassed() {
54+
Integer [] array = new Integer[]{60, -7, 55, 9, -999, -3};
55+
Integer [] expected = new Integer[]{-999, -7, -3, 9, 55, 60};
56+
57+
Integer [] sorted = mergeSort.sort(array);
58+
59+
assertArrayEquals(expected, sorted);
60+
}
61+
62+
@Test
63+
void shouldAcceptWhenArrayWithDuplicateValueIsPassed() {
64+
Integer [] array = new Integer[]{60, 7, 55, 55, 999, 3};
65+
Integer [] expected = new Integer[]{3, 7, 55, 55, 60, 999};
66+
67+
Integer [] sorted = mergeSort.sort(array);
68+
69+
assertArrayEquals(expected, sorted);
70+
}
71+
72+
@Test
73+
void shouldAcceptWhenStringValueArrayIsPassed() {
74+
String[] array = {"z", "a", "x", "b", "y"};
75+
String[] expected = {"a", "b", "x", "y", "z"};
76+
77+
String[] sorted = mergeSort.sort(array);
78+
79+
assertArrayEquals(expected, sorted);
80+
}
81+
82+
83+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.thealgorithms.strings;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.junit.jupiter.api.Assertions.assertEquals;
6+
7+
public class ReverseStringRecursiveTest {
8+
ReverseStringRecursive stringRecursive = new ReverseStringRecursive();
9+
10+
@Test
11+
void shouldAcceptWhenEmptyStringIsPassed() {
12+
String expected = "";
13+
String reversed = stringRecursive.reverse("");
14+
15+
assertEquals(expected,reversed);
16+
}
17+
18+
@Test
19+
void shouldAcceptNotWhenWhenSingleCharacterIsPassed() {
20+
String expected = "a";
21+
String reversed = stringRecursive.reverse("a");
22+
23+
assertEquals(expected,reversed);
24+
}
25+
26+
@Test
27+
void shouldAcceptWhenStringIsPassed() {
28+
String expected = "dlroWolleH";
29+
String reversed = stringRecursive.reverse("HelloWorld");
30+
31+
assertEquals(expected,reversed);
32+
}
33+
}

0 commit comments

Comments
 (0)