import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.*;
public class FindDuplicateAndMissingTest {
private Tuple expected;
private List<Integer> list;
@Test
public void search1() throws Exception {
expected = new Tuple(1,7);
list = Arrays.asList(5,4,3,1,6,8,9,1,2);
test(expected, list);
}
@Test
public void search2() throws Exception {
expected = new Tuple();
list = StreamUtil.shuffle(StreamUtil.sequence(100));
expected.first = list.get(25);
expected.second = list.get(75);
list.set(75,expected.first);
test(expected, list);
}
@Test
public void search3() throws Exception {
expected = new Tuple();
list = StreamUtil.shuffle(StreamUtil.sequence(1000));
expected.first = list.get(250);
expected.second = list.get(750);
list.set(750,expected.first);
test(expected, list);
}
private void test(Tuple expected, List<Integer> list) {
assertEquals(expected, FindDuplicateAndMissing.search(list));
}
}