Add KMP String Search Algorithm (#3200)

This commit is contained in:
Marcus
2022-08-04 01:46:44 +08:00
committed by GitHub
parent 3918d9eaee
commit 965c20381c
2 changed files with 149 additions and 0 deletions

View File

@ -0,0 +1,66 @@
package com.thealgorithms.searches;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class KMPSearchTest {
@Test
// valid test case
public void KMPSearchTestLast() {
String txt = "ABABDABACDABABCABAB";
String pat = "ABABCABAB";
KMPSearch kmpSearch = new KMPSearch();
int value = kmpSearch.KMPSearch(pat, txt);
System.out.println(value);
assertEquals(value, 10);
}
@Test
// valid test case
public void KMPSearchTestFront() {
String txt = "AAAAABAAABA";
String pat = "AAAA";
KMPSearch kmpSearch = new KMPSearch();
int value = kmpSearch.KMPSearch(pat, txt);
System.out.println(value);
assertEquals(value, 0);
}
@Test
// valid test case
public void KMPSearchTestMiddle() {
String txt = "AAACAAAAAC";
String pat = "AAAA";
KMPSearch kmpSearch = new KMPSearch();
int value = kmpSearch.KMPSearch(pat, txt);
System.out.println(value);
assertEquals(value, 4);
}
@Test
// valid test case
public void KMPSearchTestNotFound() {
String txt = "AAABAAAA";
String pat = "AAAA";
KMPSearch kmpSearch = new KMPSearch();
int value = kmpSearch.KMPSearch(pat, txt);
System.out.println(value);
assertEquals(value, 4);
}
@Test
// not valid test case
public void KMPSearchTest4() {
String txt = "AABAAA";
String pat = "AAAA";
KMPSearch kmpSearch = new KMPSearch();
int value = kmpSearch.KMPSearch(pat, txt);
System.out.println(value);
assertEquals(value, -1);
}
}