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