import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.*;
public class SampleOfflineDataTest {
private int k;
private List<Integer> input;
@Test
public void randomSampling1() {
k = 3;
input = Arrays.asList(1, 2, 3, 4, 5);
test(k, input);
}
@Test
public void randomSampling2() {
k = 3;
input = Arrays.asList(1, 2, 2, 3, 3, 3, 4, 4, 4, 4);
test(k, input);
}
@Test
public void randomSampling3() {
k = 5;
input = Arrays.asList(1, 1, 2, 2, 3, 3, 4, 4, 5, 5);
test(k, input);
}
private void test(int k, List<Integer> input) {
final int end = input.size();
final List<Integer> original = input.subList(end - k,end);
SampleOfflineData.randomSampling(k, input);
final List<Integer> result = input.subList(end - k,end);
assertNotEquals(original, result);
assertEquals(end, input.size());
for (Integer i : result) {
assertTrue(input.contains(i));
input.remove(i);
}
}
}