@Test(enabled = true, dataProvider = "GenotypesContextProvider")
public void testRemoves(GenotypesContextProvider cfg) {
Genotype rm1 = AA;
Genotype rm2 = AC;
GenotypesContext gc = cfg.makeContext();
if (gc.size() > 1) {
Genotype rm = gc.get(0);
gc.remove(rm);
testGenotypesContextContainsExpectedSamples(gc, without(cfg.initialSamples, rm));
}
gc = cfg.makeContext();
gc.remove(rm1);
testGenotypesContextContainsExpectedSamples(gc, without(cfg.initialSamples, rm1));
gc = cfg.makeContext();
gc.remove(rm1);
gc.remove(rm2);
testGenotypesContextContainsExpectedSamples(gc, without(cfg.initialSamples, rm1, rm2));
gc = cfg.makeContext();
gc.removeAll(Arrays.asList(rm1, rm2));
testGenotypesContextContainsExpectedSamples(gc, without(cfg.initialSamples, rm1, rm2));
gc = cfg.makeContext();
HashSet<Genotype> expected = new HashSet<Genotype>();
if ( gc.contains(rm1) ) expected.add(rm1);
if ( gc.contains(rm2) ) expected.add(rm2);
gc.retainAll(Arrays.asList(rm1, rm2));
assertEqualsSet(new HashSet<Genotype>(gc.getGenotypes()), expected, "gc genotypes vs. expected");
testGenotypesContextContainsExpectedSamples(gc, gc.getGenotypes());
}