Add tests for HorspoolSearch (#4165)

This commit is contained in:
Lieu Chi Tung
2023-04-25 18:04:15 +07:00
committed by GitHub
parent f69cd7cfa2
commit b55fc972ac
2 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,88 @@
package com.thealgorithms.strings;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class HorspoolSearchTest {
@Test
void testFindFirstMatch() {
int index = HorspoolSearch.findFirst("World", "Hello World");
assertEquals(6, index);
}
@Test
void testFindFirstNotMatch() {
int index = HorspoolSearch.findFirst("hell", "Hello World");
assertEquals(-1, index);
}
@Test
void testFindFirstPatternLongerText() {
int index = HorspoolSearch.findFirst("Hello World!!!", "Hello World");
assertEquals(-1, index);
}
@Test
void testFindFirstPatternEmpty() {
int index = HorspoolSearch.findFirst("", "Hello World");
assertEquals(-1, index);
}
@Test
void testFindFirstTextEmpty() {
int index = HorspoolSearch.findFirst("Hello", "");
assertEquals(-1, index);
}
@Test
void testFindFirstPatternAndTextEmpty() {
int index = HorspoolSearch.findFirst("", "");
assertEquals(-1, index);
}
@Test
void testFindFirstSpecialCharacter() {
int index = HorspoolSearch.findFirst("$3**", "Hello $3**$ World");
assertEquals(6, index);
}
@Test
void testFindFirstInsensitiveMatch() {
int index = HorspoolSearch.findFirstInsensitive("hello", "Hello World");
assertEquals(0, index);
}
@Test
void testFindFirstInsensitiveNotMatch() {
int index = HorspoolSearch.findFirstInsensitive("helo", "Hello World");
assertEquals(-1, index);
}
@Test
void testGetLastComparisons() {
HorspoolSearch.findFirst("World", "Hello World");
int lastSearchNumber = HorspoolSearch.getLastComparisons();
assertEquals(7, lastSearchNumber);
}
@Test
void testGetLastComparisonsNotMatch() {
HorspoolSearch.findFirst("Word", "Hello World");
int lastSearchNumber = HorspoolSearch.getLastComparisons();
assertEquals(3, lastSearchNumber);
}
@Test
void testFindFirstPatternNull() {
assertThrows(NullPointerException.class,
() -> HorspoolSearch.findFirst(null, "Hello World"));
}
@Test
void testFindFirstTextNull() {
assertThrows(NullPointerException.class,
() -> HorspoolSearch.findFirst("Hello", null));
}
}