-
Notifications
You must be signed in to change notification settings - Fork 19.9k
/
Copy pathSubsequenceTest.java
28 lines (22 loc) · 1.32 KB
/
SubsequenceTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.thealgorithms.backtracking;
import static org.junit.jupiter.api.Assertions.assertIterableEquals;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
public class SubsequenceTest {
@ParameterizedTest
@MethodSource("getSubsequenceTestData")
void testSubsequences(SubsequenceTestData testData) {
List<List<Object>> actual = SubsequenceFinder.generateAllSubsequences(testData.input());
assertIterableEquals(testData.expected(), actual);
}
static Stream<SubsequenceTestData> getSubsequenceTestData() {
return Stream.of(new SubsequenceTestData(new ArrayList<>(), List.of(List.of())), new SubsequenceTestData(List.of(1, 2), List.of(List.of(), List.of(2), List.of(1), List.of(1, 2))),
new SubsequenceTestData(List.of("A", "B", "C"), List.of(List.of(), List.of("C"), List.of("B"), List.of("B", "C"), List.of("A"), List.of("A", "C"), List.of("A", "B"), List.of("A", "B", "C"))),
new SubsequenceTestData(List.of(1, 2, 3), List.of(List.of(), List.of(3), List.of(2), List.of(2, 3), List.of(1), List.of(1, 3), List.of(1, 2), List.of(1, 2, 3))));
}
record SubsequenceTestData(List<Object> input, List<List<Object>> expected) {
}
}