//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.resources.utils;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
import org.junit.Test;
public class StopwordUtilsTest {
@Test
public void testIsStopword(){
List<String> stopwords = Arrays.asList("stop", "word");
assertTrue(StopwordUtils.isStopWord("stop", stopwords, false));
assertTrue(StopwordUtils.isStopWord("STOP", stopwords, false));
assertFalse(StopwordUtils.isStopWord("STOP", stopwords, true));
assertTrue(StopwordUtils.isStopWord("stop", stopwords, true));
assertFalse(StopwordUtils.isStopWord("hello", stopwords, false));
assertFalse(StopwordUtils.isStopWord("hello", stopwords, true));
}
@Test
public void testBuildStopwordPattern(){
List<String> stopwords = Arrays.asList("stop", "word");
assertEquals("\\b(\\Qstop\\E|\\Qword\\E)\\b", StopwordUtils.buildStopwordPattern(stopwords, false).pattern());
assertEquals("\\b(\\Qstop\\E|\\Qword\\E)\\b", StopwordUtils.buildStopwordPattern(stopwords, true).pattern());
assertEquals("\\b(\\Qstop\\E|\\Qword\\E|hello|world)\\b", StopwordUtils.buildStopwordPattern(stopwords, true, "hello", "world").pattern());
assertEquals(Pattern.CASE_INSENSITIVE, (StopwordUtils.buildStopwordPattern(stopwords, false).flags() & Pattern.CASE_INSENSITIVE));
assertEquals(0, (StopwordUtils.buildStopwordPattern(stopwords, true).flags() & Pattern.CASE_INSENSITIVE));
}
}