rewrote as parameterized tests (#4458)

* rewrote as parameterized tests

* formatting issue resolved

* added test with different prime number q

* style: run `clang-format`

* tests: add missing test case

---------

Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com>
This commit is contained in:
Arin
2023-10-01 21:35:27 +05:30
committed by GitHub
parent edb0489440
commit f72b80b116

View File

@ -1,56 +1,18 @@
package com.thealgorithms.searches; package com.thealgorithms.searches;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
class RabinKarpAlgorithmTest { class RabinKarpAlgorithmTest {
RabinKarpAlgorithm RKA = new RabinKarpAlgorithm(); RabinKarpAlgorithm RKA = new RabinKarpAlgorithm();
int q = 101;
@Test @ParameterizedTest
// valid test case @CsvSource({"This is an example for rabin karp algorithmn, algorithmn, 101", "AAABBDDG, AAA, 137", "AAABBCCBB, BBCC, 101", "AAABBCCBB, BBCC, 131", "AAAABBBBCCC, CCC, 41", "ABCBCBCAAB, AADB, 293", "Algorithm The Algorithm, Algorithm, 101"})
public void RabinKarpAlgorithmTestExample() { void RabinKarpAlgorithmTestExample(String txt, String pat, int q) {
String txt = "This is an example for rabin karp algorithmn"; int indexFromOurAlgorithm = RKA.search(pat, txt, q);
String pat = "algorithmn"; int indexFromLinearSearch = txt.indexOf(pat);
int value = RKA.search(pat, txt, q); assertEquals(indexFromOurAlgorithm, indexFromLinearSearch);
assertEquals(value, 34);
}
@Test
// valid test case
public void RabinKarpAlgorithmTestFront() {
String txt = "AAABBDDG";
String pat = "AAA";
int value = RKA.search(pat, txt, q);
assertEquals(value, 0);
}
@Test
// valid test case
public void RabinKarpAlgorithmTestMiddle() {
String txt = "AAABBCCBB";
String pat = "BBCC";
int value = RKA.search(pat, txt, q);
assertEquals(value, 3);
}
@Test
// valid test case
public void RabinKarpAlgorithmTestLast() {
String txt = "AAAABBBBCCC";
String pat = "CCC";
int value = RKA.search(pat, txt, q);
assertEquals(value, 8);
}
@Test
// valid test case
public void RabinKarpAlgorithmTestNotFound() {
String txt = "ABCBCBCAAB";
String pat = "AADB";
int value = RKA.search(pat, txt, q);
assertEquals(value, -1);
} }
} }