mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
testing: improve test coverage RangeInSortedArrayTest (#6395)
* testing: improve test coverage RangeInSortedArrayTest * style: fix formatting checkstyle --------- Co-authored-by: Deniz Altunkapan <93663085+DenizAltunkapan@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
fc477ee8da
commit
d6a871e683
@@ -32,4 +32,26 @@ public class RangeInSortedArrayTest {
|
||||
return Stream.of(Arguments.of(new int[] {1, 2, 3, 3, 4, 5}, 3, 4, "Count of elements less than existing key"), Arguments.of(new int[] {1, 2, 3, 3, 4, 5}, 4, 5, "Count of elements less than non-existing key"), Arguments.of(new int[] {1, 2, 2, 3}, 5, 4, "Count with all smaller elements"),
|
||||
Arguments.of(new int[] {2, 3, 4, 5}, 1, 0, "Count with no smaller elements"), Arguments.of(new int[] {}, 1, 0, "Count in empty array"));
|
||||
}
|
||||
|
||||
@ParameterizedTest(name = "Edge case {index}: {3}")
|
||||
@MethodSource("provideEdgeCasesForSortedRange")
|
||||
void testSortedRangeEdgeCases(int[] nums, int key, int[] expectedRange, String description) {
|
||||
assertArrayEquals(expectedRange, RangeInSortedArray.sortedRange(nums, key), description);
|
||||
}
|
||||
|
||||
private static Stream<Arguments> provideEdgeCasesForSortedRange() {
|
||||
return Stream.of(Arguments.of(new int[] {5, 5, 5, 5, 5}, 5, new int[] {0, 4}, "All elements same as key"), Arguments.of(new int[] {1, 2, 3, 4, 5}, 1, new int[] {0, 0}, "Key is first element"), Arguments.of(new int[] {1, 2, 3, 4, 5}, 5, new int[] {4, 4}, "Key is last element"),
|
||||
Arguments.of(new int[] {1, 2, 3, 4, 5}, 0, new int[] {-1, -1}, "Key less than all elements"), Arguments.of(new int[] {1, 2, 3, 4, 5}, 6, new int[] {-1, -1}, "Key greater than all elements"),
|
||||
Arguments.of(new int[] {1, 2, 2, 2, 3, 3, 3, 4}, 3, new int[] {4, 6}, "Multiple occurrences spread"), Arguments.of(new int[] {2}, 2, new int[] {0, 0}, "Single element array key exists"), Arguments.of(new int[] {2}, 3, new int[] {-1, -1}, "Single element array key missing"));
|
||||
}
|
||||
|
||||
@ParameterizedTest(name = "Edge case {index}: {3}")
|
||||
@MethodSource("provideEdgeCasesForGetCountLessThan")
|
||||
void testGetCountLessThanEdgeCases(int[] nums, int key, int expectedCount, String description) {
|
||||
assertEquals(expectedCount, RangeInSortedArray.getCountLessThan(nums, key), description);
|
||||
}
|
||||
|
||||
private static Stream<Arguments> provideEdgeCasesForGetCountLessThan() {
|
||||
return Stream.of(Arguments.of(new int[] {1, 2, 3, 4, 5}, 0, 0, "Key less than all elements"), Arguments.of(new int[] {1, 2, 3, 4, 5}, 6, 5, "Key greater than all elements"), Arguments.of(new int[] {1}, 0, 0, "Single element greater than key"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user