test the methods with Unit test

This commit is contained in:
mherbaghinyan 2019-01-16 13:18:04 +04:00
parent aa125c6c6b
commit 9f798d483d
2 changed files with 65 additions and 21 deletions

View File

@ -12,22 +12,7 @@ import java.util.stream.Stream;
public class MatchWords { public class MatchWords {
public static void main(String[] args) { public static boolean containsWordsIndexOf(String inputString, String[] words) {
String[] words = {"hello", "Baeldung"};
String inputString = "hello there, Baeldung";
containsWords(inputString, words);
containsWordsJava8(inputString, words);
containsWordsPatternMatch(inputString, words);
containsWordsAhoCorasick(inputString, words);
containsWordsIndexOf(inputString, words);
}
private static boolean containsWordsIndexOf(String inputString, String[] words) {
boolean found = true; boolean found = true;
for (String word : words) { for (String word : words) {
int index = inputString.indexOf(word); int index = inputString.indexOf(word);
@ -39,7 +24,7 @@ public class MatchWords {
return found; return found;
} }
private static boolean containsWords(String inputString, String[] items) { public static boolean containsWords(String inputString, String[] items) {
boolean found = true; boolean found = true;
for (String item : items) { for (String item : items) {
if (!inputString.contains(item)) { if (!inputString.contains(item)) {
@ -50,7 +35,7 @@ public class MatchWords {
return found; return found;
} }
private static boolean containsWordsAhoCorasick(String inputString, String[] words) { public static boolean containsWordsAhoCorasick(String inputString, String[] words) {
Trie trie = Trie.builder() Trie trie = Trie.builder()
.onlyWholeWords() .onlyWholeWords()
.addKeywords(words) .addKeywords(words)
@ -71,7 +56,7 @@ public class MatchWords {
return found; return found;
} }
private static boolean containsWordsPatternMatch(String inputString, String[] words) { public static boolean containsWordsPatternMatch(String inputString, String[] words) {
StringBuilder regexp = new StringBuilder(); StringBuilder regexp = new StringBuilder();
for (String word : words) { for (String word : words) {
@ -85,14 +70,14 @@ public class MatchWords {
return false; return false;
} }
private static boolean containsWordsJava8(String inputString, String[] words) { public static boolean containsWordsJava8(String inputString, String[] words) {
ArrayList inputStringList = new ArrayList<>(Arrays.asList(inputString.split(" "))); ArrayList inputStringList = new ArrayList<>(Arrays.asList(inputString.split(" ")));
ArrayList<String> wordsList = new ArrayList<>(Arrays.asList(words)); ArrayList<String> wordsList = new ArrayList<>(Arrays.asList(words));
return wordsList.stream().allMatch(inputStringList::contains); return wordsList.stream().allMatch(inputStringList::contains);
} }
private static boolean containsWordsArray(String inputString, String[] words) { public static boolean containsWordsArray(String inputString, String[] words) {
ArrayList inputStringList = new ArrayList<>(Arrays.asList(inputString.split(" "))); ArrayList inputStringList = new ArrayList<>(Arrays.asList(inputString.split(" ")));
ArrayList<String> wordsList = new ArrayList<>(Arrays.asList(words)); ArrayList<String> wordsList = new ArrayList<>(Arrays.asList(words));

View File

@ -0,0 +1,59 @@
package com.baeldung.string;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class MatchWordsUnitTest {
private final String[] words = {"hello", "Baeldung"};
private final String inputString = "hello there, Baeldung";
@Test
public void givenText_whenCallingStringContains_shouldMatchWords() {
final boolean result = MatchWords.containsWords(inputString, words);
assertThat(result).isEqualTo(true);
}
@Test
public void givenText_whenCallingJava8_shouldMatchWords() {
final boolean result = MatchWords.containsWordsJava8(inputString, words);
assertThat(result).isEqualTo(true);
}
@Test
public void givenText_whenCallingPattern_shouldMatchWords() {
final boolean result = MatchWords.containsWordsPatternMatch(inputString, words);
assertThat(result).isEqualTo(true);
}
@Test
public void givenText_whenCallingAhoCorasick_shouldMatchWords() {
final boolean result = MatchWords.containsWordsAhoCorasick(inputString, words);
assertThat(result).isEqualTo(true);
}
@Test
public void givenText_whenCallingIndexOf_shouldMatchWords() {
final boolean result = MatchWords.containsWordsIndexOf(inputString, words);
assertThat(result).isEqualTo(true);
}
@Test
public void givenText_whenCallingArrayList_shouldMatchWords() {
final boolean result = MatchWords.containsWordsArray(inputString, words);
assertThat(result).isEqualTo(true);
}
}