Skip to content

Commit 9b300e5

Browse files
authored
Merge branch 'master' into testing/QueueByTwoStacksTest
2 parents 92b3db1 + 5c6d3c3 commit 9b300e5

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

DIRECTORY.md

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Project Structure
22

3+
## src
4+
35
- 📁 **main**
46
- 📁 **java**
57
- 📁 **com**
@@ -165,12 +167,10 @@
165167
- 📄 [Kruskal](src/main/java/com/thealgorithms/datastructures/graphs/Kruskal.java)
166168
- 📄 [MatrixGraphs](src/main/java/com/thealgorithms/datastructures/graphs/MatrixGraphs.java)
167169
- 📄 [PrimMST](src/main/java/com/thealgorithms/datastructures/graphs/PrimMST.java)
168-
- 📄 [README](src/main/java/com/thealgorithms/datastructures/graphs/README.md)
169170
- 📄 [TarjansAlgorithm](src/main/java/com/thealgorithms/datastructures/graphs/TarjansAlgorithm.java)
170171
- 📄 [UndirectedAdjacencyListGraph](src/main/java/com/thealgorithms/datastructures/graphs/UndirectedAdjacencyListGraph.java)
171172
- 📄 [WelshPowell](src/main/java/com/thealgorithms/datastructures/graphs/WelshPowell.java)
172173
- 📁 **hashmap**
173-
- 📄 [Readme](src/main/java/com/thealgorithms/datastructures/hashmap/Readme.md)
174174
- 📁 **hashing**
175175
- 📄 [GenericHashMapUsingArray](src/main/java/com/thealgorithms/datastructures/hashmap/hashing/GenericHashMapUsingArray.java)
176176
- 📄 [GenericHashMapUsingArrayList](src/main/java/com/thealgorithms/datastructures/hashmap/hashing/GenericHashMapUsingArrayList.java)
@@ -194,7 +194,6 @@
194194
- 📄 [MergeKSortedArrays](src/main/java/com/thealgorithms/datastructures/heaps/MergeKSortedArrays.java)
195195
- 📄 [MinHeap](src/main/java/com/thealgorithms/datastructures/heaps/MinHeap.java)
196196
- 📄 [MinPriorityQueue](src/main/java/com/thealgorithms/datastructures/heaps/MinPriorityQueue.java)
197-
- 📄 [Readme](src/main/java/com/thealgorithms/datastructures/heaps/Readme.md)
198197
- 📁 **lists**
199198
- 📄 [CircleLinkedList](src/main/java/com/thealgorithms/datastructures/lists/CircleLinkedList.java)
200199
- 📄 [CountSinglyLinkedListRecursion](src/main/java/com/thealgorithms/datastructures/lists/CountSinglyLinkedListRecursion.java)
@@ -205,7 +204,6 @@
205204
- 📄 [MergeSortedArrayList](src/main/java/com/thealgorithms/datastructures/lists/MergeSortedArrayList.java)
206205
- 📄 [MergeSortedSinglyLinkedList](src/main/java/com/thealgorithms/datastructures/lists/MergeSortedSinglyLinkedList.java)
207206
- 📄 [QuickSortLinkedList](src/main/java/com/thealgorithms/datastructures/lists/QuickSortLinkedList.java)
208-
- 📄 [README](src/main/java/com/thealgorithms/datastructures/lists/README.md)
209207
- 📄 [RandomNode](src/main/java/com/thealgorithms/datastructures/lists/RandomNode.java)
210208
- 📄 [ReverseKGroup](src/main/java/com/thealgorithms/datastructures/lists/ReverseKGroup.java)
211209
- 📄 [RotateSinglyLinkedLists](src/main/java/com/thealgorithms/datastructures/lists/RotateSinglyLinkedLists.java)
@@ -222,12 +220,10 @@
222220
- 📄 [PriorityQueues](src/main/java/com/thealgorithms/datastructures/queues/PriorityQueues.java)
223221
- 📄 [Queue](src/main/java/com/thealgorithms/datastructures/queues/Queue.java)
224222
- 📄 [QueueByTwoStacks](src/main/java/com/thealgorithms/datastructures/queues/QueueByTwoStacks.java)
225-
- 📄 [README](src/main/java/com/thealgorithms/datastructures/queues/README.md)
226223
- 📄 [SlidingWindowMaximum](src/main/java/com/thealgorithms/datastructures/queues/SlidingWindowMaximum.java)
227224
- 📄 [TokenBucket](src/main/java/com/thealgorithms/datastructures/queues/TokenBucket.java)
228225
- 📁 **stacks**
229226
- 📄 [NodeStack](src/main/java/com/thealgorithms/datastructures/stacks/NodeStack.java)
230-
- 📄 [README](src/main/java/com/thealgorithms/datastructures/stacks/README.md)
231227
- 📄 [ReverseStack](src/main/java/com/thealgorithms/datastructures/stacks/ReverseStack.java)
232228
- 📄 [Stack](src/main/java/com/thealgorithms/datastructures/stacks/Stack.java)
233229
- 📄 [StackArray](src/main/java/com/thealgorithms/datastructures/stacks/StackArray.java)
@@ -259,7 +255,6 @@
259255
- 📄 [PreOrderTraversal](src/main/java/com/thealgorithms/datastructures/trees/PreOrderTraversal.java)
260256
- 📄 [PrintTopViewofTree](src/main/java/com/thealgorithms/datastructures/trees/PrintTopViewofTree.java)
261257
- 📄 [QuadTree](src/main/java/com/thealgorithms/datastructures/trees/QuadTree.java)
262-
- 📄 [README](src/main/java/com/thealgorithms/datastructures/trees/README.md)
263258
- 📄 [RedBlackBST](src/main/java/com/thealgorithms/datastructures/trees/RedBlackBST.java)
264259
- 📄 [SameTreesCheck](src/main/java/com/thealgorithms/datastructures/trees/SameTreesCheck.java)
265260
- 📄 [SegmentTree](src/main/java/com/thealgorithms/datastructures/trees/SegmentTree.java)
@@ -749,7 +744,6 @@
749744
- 📄 [ValidParentheses](src/main/java/com/thealgorithms/strings/ValidParentheses.java)
750745
- 📄 [WordLadder](src/main/java/com/thealgorithms/strings/WordLadder.java)
751746
- 📁 **zigZagPattern**
752-
- 📄 [README](src/main/java/com/thealgorithms/strings/zigZagPattern/README.md)
753747
- 📄 [ZigZagPattern](src/main/java/com/thealgorithms/strings/zigZagPattern/ZigZagPattern.java)
754748
- 📁 **tree**
755749
- 📄 [HeavyLightDecomposition](src/main/java/com/thealgorithms/tree/HeavyLightDecomposition.java)
@@ -1416,4 +1410,4 @@
14161410
- 📁 **zigZagPattern**
14171411
- 📄 [ZigZagPatternTest](src/test/java/com/thealgorithms/strings/zigZagPattern/ZigZagPatternTest.java)
14181412
- 📁 **tree**
1419-
- 📄 [HeavyLightDecompositionTest](src/test/java/com/thealgorithms/tree/HeavyLightDecompositionTest.java)
1413+
- 📄 [HeavyLightDecompositionTest](src/test/java/com/thealgorithms/tree/HeavyLightDecompositionTest.java)

src/test/java/com/thealgorithms/misc/RangeInSortedArrayTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,26 @@ private static Stream<Arguments> provideGetCountLessThanTestCases() {
3232
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"),
3333
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"));
3434
}
35+
36+
@ParameterizedTest(name = "Edge case {index}: {3}")
37+
@MethodSource("provideEdgeCasesForSortedRange")
38+
void testSortedRangeEdgeCases(int[] nums, int key, int[] expectedRange, String description) {
39+
assertArrayEquals(expectedRange, RangeInSortedArray.sortedRange(nums, key), description);
40+
}
41+
42+
private static Stream<Arguments> provideEdgeCasesForSortedRange() {
43+
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"),
44+
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"),
45+
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"));
46+
}
47+
48+
@ParameterizedTest(name = "Edge case {index}: {3}")
49+
@MethodSource("provideEdgeCasesForGetCountLessThan")
50+
void testGetCountLessThanEdgeCases(int[] nums, int key, int expectedCount, String description) {
51+
assertEquals(expectedCount, RangeInSortedArray.getCountLessThan(nums, key), description);
52+
}
53+
54+
private static Stream<Arguments> provideEdgeCasesForGetCountLessThan() {
55+
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"));
56+
}
3557
}

0 commit comments

Comments
 (0)