import org.junit.Test;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import static org.junit.Assert.assertEquals;
public class SmallestSequentialSubarrayTest {
private Tuple expected;
private List<String> paragraph;
private Set<String> keywords;
@Test
public void findSubarray1() throws Exception {
expected = new Tuple(0,8);
paragraph = Arrays.asList(
"Mark",
"Steve",
"Mason",
"Joan",
"Jordan",
"Greg",
"Daisy",
"Garth",
"Marcus",
"Daisy",
"Joan",
"Mark"
);
keywords = new LinkedHashSet<>(Arrays.asList(
"Mark",
"Marcus"
));
test(expected, paragraph, keywords);
}
@Test
public void findSubarray2() throws Exception {
expected = new Tuple(4,9);
paragraph = Arrays.asList(
"Mark",
"Steve",
"Mason",
"Joan",
"Jordan",
"Greg",
"Garth",
"Mark",
"Jordan",
"Garth",
"Joan",
"Marcus"
);
keywords = new LinkedHashSet<>(Arrays.asList(
"Jordan",
"Mark",
"Garth"
));
test(expected, paragraph, keywords);
}
@Test
public void findSubarray3() throws Exception {
expected = new Tuple(3,7);
paragraph = Arrays.asList(
"Mark",
"Steve",
"Joan",
"Steven",
"Greg",
"Jordan",
"Mark",
"Kevin",
"Joan",
"Daisy",
"Greg",
"Mark"
);
keywords = new LinkedHashSet<>(Arrays.asList(
"Steven",
"Greg",
"Jordan",
"Mark",
"Kevin"
));
test(expected, paragraph, keywords);
}
private void test(Tuple expected, List<String> paragraph, Set<String> keywords) {
assertEquals(expected, SmallestSequentialSubarray.findSubarray(paragraph,keywords));
}
}