Skip to content

Commit 41ea5c1

Browse files
committed
test: PatternSearchUsingRabinKarpAlgoTest
1 parent e563fb4 commit 41ea5c1

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.thealgorithms.strings;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertFalse;
5+
import static org.junit.jupiter.api.Assertions.assertTrue;
6+
7+
import java.util.List;
8+
import org.junit.jupiter.api.Test;
9+
10+
public class PatternSearchUsingRabinKarpAlgoTest {
11+
12+
@Test
13+
public void testPatternFoundInMiddle() {
14+
String text = "ABCCDDAEFG";
15+
String pattern = "CDD";
16+
List<String> result = PatternSearchUsingRabinKarpAlgo.search(text.toLowerCase(), pattern.toLowerCase());
17+
assertFalse(result.isEmpty(), "Pattern should be found");
18+
assertEquals("Start: 3, End: 5, Substring: cdd", result.get(0));
19+
}
20+
21+
@Test
22+
public void testPatternAtStart() {
23+
String text = "ABCCDDAEFG";
24+
String pattern = "AB";
25+
List<String> result = PatternSearchUsingRabinKarpAlgo.search(text.toLowerCase(), pattern.toLowerCase());
26+
assertFalse(result.isEmpty(), "Pattern should be found");
27+
assertEquals("Start: 0, End: 1, Substring: ab", result.get(0));
28+
}
29+
30+
@Test
31+
public void testPatternAtEnd() {
32+
String text = "ABCCDDAEFG";
33+
String pattern = "EFG";
34+
List<String> result = PatternSearchUsingRabinKarpAlgo.search(text.toLowerCase(), pattern.toLowerCase());
35+
assertFalse(result.isEmpty(), "Pattern should be found");
36+
assertEquals("Start: 7, End: 9, Substring: efg", result.get(0));
37+
}
38+
39+
@Test
40+
public void testPatternNotFound() {
41+
String text = "ABCCDDAEFG";
42+
String pattern = "XYZ";
43+
List<String> result = PatternSearchUsingRabinKarpAlgo.search(text.toLowerCase(), pattern.toLowerCase());
44+
assertTrue(result.isEmpty(), "Pattern should not be found");
45+
}
46+
47+
@Test
48+
public void testPatternEqualsText() {
49+
String text = "ABCCDDAEFG";
50+
String pattern = "ABCCDDAEFG";
51+
List<String> result = PatternSearchUsingRabinKarpAlgo.search(text.toLowerCase(), pattern.toLowerCase());
52+
assertFalse(result.isEmpty(), "Pattern should match entire text");
53+
assertEquals("Start: 0, End: 9, Substring: abccddaefg", result.get(0));
54+
}
55+
56+
@Test
57+
public void testMultipleMatches() {
58+
String text = "AAAAAA";
59+
String pattern = "AA";
60+
List<String> result = PatternSearchUsingRabinKarpAlgo.search(text.toLowerCase(), pattern.toLowerCase());
61+
assertEquals(5, result.size(), "Pattern should appear multiple times");
62+
}
63+
64+
@Test
65+
public void testCaseInsensitiveSearch() {
66+
String text = "HelloWorld";
67+
String pattern = "helloworld";
68+
List<String> result = PatternSearchUsingRabinKarpAlgo.search(text.toLowerCase(), pattern.toLowerCase());
69+
assertFalse(result.isEmpty(), "Pattern should match regardless of case");
70+
assertEquals("Start: 0, End: 9, Substring: helloworld", result.get(0));
71+
}
72+
}

0 commit comments

Comments
 (0)