@Override public A alleleAt(final int index) { return alleles.get(index); } }
@Override public String sampleAt(int sampleIndex) { return samples.get(sampleIndex); } }
@Test(dataProvider = "elementCountMaxElementData", dependsOnMethods = {"testCompositionByCollectionConstructor"}) public void testLookupByIndex(final int elementCount, final int maxElement) { final List<Integer> elementList = generateElementCollection(elementCount, maxElement); final IndexedSet<Integer> subject = new IndexedSet<>(elementList); final Set<Integer> elementSet = new LinkedHashSet<>(elementList); final Integer[] elementArray = elementSet.toArray(new Integer[elementSet.size()]); final List<Integer> subjectList = subject.asList(); for (int i = 0; i < subject.size(); i++) { final int element = elementArray[i]; final int subjectElement = subject.get(i); final int subjectListElement = subjectList.get(i); Assert.assertEquals(subjectElement,element); Assert.assertEquals(subjectListElement,element); } }
@Test(dataProvider = "elementCountMaxElementData", dependsOnMethods = {"testCompositionByCollectionConstructor","testIndexOf"}) public void testRemoveHalf(final int elementCount, final int maxElement) { final List<Integer> elementList = generateElementCollection(elementCount, maxElement); final IndexedSet<Integer> subject = new IndexedSet<>(elementList); final Set<Integer> elementSet = new LinkedHashSet<>(elementList); final int removeCount = (subject.size() + 1) / 2; final Random rnd = Utils.getRandomGenerator(); for (int i = 0; i < removeCount; i++) { final int removeIndex = rnd.nextInt(subject.size()); final int removeElement = subject.get(removeIndex); subject.remove(removeElement); elementSet.remove(removeElement); } assertEquals(subject,elementSet); }
@Test(dataProvider = "elementCountMaxElementData", dependsOnMethods = {"testCompositionByCollectionConstructor","testIndexOf"}) public void testRemoveAndAdd(final int elementCount, final int maxElement) { final List<Integer> elementList = generateElementCollection(elementCount, maxElement); final IndexedSet<Integer> subject = new IndexedSet<>(elementList); final Set<Integer> elementSet = new LinkedHashSet<>(elementList); final int removeCount = subject.size(); final Random rnd = Utils.getRandomGenerator(); for (int i = 0; i < removeCount; i++) { final int removeIndex = rnd.nextInt(subject.size()); final int removeElement = subject.get(removeIndex); subject.remove(removeElement); elementSet.remove(removeElement); } subject.addAll(elementList); elementSet.addAll(elementList); assertEquals(subject, elementSet); }
@Test(dataProvider = "elementCountMaxElementData", dependsOnMethods = {"testCompositionByCollectionConstructor","testIndexOf"}) public void testRemoveAll(final int elementCount, final int maxElement) { final List<Integer> elementList = generateElementCollection(elementCount, maxElement); final IndexedSet<Integer> subject = new IndexedSet<>(elementList); final Set<Integer> elementSet = new LinkedHashSet<>(elementList); final int removeCount = subject.size(); final Random rnd = Utils.getRandomGenerator(); for (int i = 0; i < removeCount; i++) { final int removeIndex = rnd.nextInt(subject.size()); final int removeElement = subject.get(removeIndex); subject.remove(removeElement); elementSet.remove(removeElement); } assertEquals(subject,elementSet); }