forked from TheAlgorithms/Java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBinarySearchStringsTest.java
More file actions
56 lines (45 loc) · 1.68 KB
/
BinarySearchStringsTest.java
File metadata and controls
56 lines (45 loc) · 1.68 KB
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.thealgorithms.searches;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
/**
* Test cases for BinarySearchStrings algorithm
*
* @author Jeevan Yewale (https://github.com/JeevanYewale)
*/
class BinarySearchStringsTest {
@Test
void testBasicSearch() {
String[] array = {"apple", "banana", "cherry", "date", "elderberry"};
assertEquals(0, BinarySearchStrings.search(array, "apple"));
assertEquals(2, BinarySearchStrings.search(array, "cherry"));
assertEquals(4, BinarySearchStrings.search(array, "elderberry"));
assertEquals(-1, BinarySearchStrings.search(array, "grape"));
}
@Test
void testEmptyArray() {
String[] array = {};
assertEquals(-1, BinarySearchStrings.search(array, "test"));
}
@Test
void testNullArray() {
assertEquals(-1, BinarySearchStrings.search(null, "test"));
}
@Test
void testNullTarget() {
String[] array = {"apple", "banana"};
assertEquals(-1, BinarySearchStrings.search(array, null));
}
@Test
void testSingleElement() {
String[] array = {"single"};
assertEquals(0, BinarySearchStrings.search(array, "single"));
assertEquals(-1, BinarySearchStrings.search(array, "other"));
}
@Test
void testCaseInsensitiveSearch() {
String[] array = {"apple", "banana", "cherry", "date", "elderberry"};
assertEquals(0, BinarySearchStrings.searchIgnoreCase(array, "APPLE"));
assertEquals(2, BinarySearchStrings.searchIgnoreCase(array, "Cherry"));
assertEquals(-1, BinarySearchStrings.searchIgnoreCase(array, "GRAPE"));
}
}