### Question:
ModifiableGeneticVariantIterator implements Iterator<E> { public static Iterable<ModifiableGeneticVariant> createModifiableGeneticVariantIterable( Iterator<GeneticVariant> originalIterator, ModifiableGenotypeData modifiableGenotypeData, HashSet<ModifiableGeneticVariant> excludeList) { return new ModifiableGeneticVariantIterable<ModifiableGeneticVariant>( new ModifiableGeneticVariantIterator<ModifiableGeneticVariant>(originalIterator, modifiableGenotypeData, excludeList)); } ModifiableGeneticVariantIterator(Iterator<GeneticVariant> originalIterator,
			ModifiableGenotypeData modifiableGenotypeData, HashSet<ModifiableGeneticVariant> excludeList); @Override boolean hasNext(); @SuppressWarnings("unchecked") @Override E next(); @Override void remove(); static Iterable<ModifiableGeneticVariant> createModifiableGeneticVariantIterable(
			Iterator<GeneticVariant> originalIterator, ModifiableGenotypeData modifiableGenotypeData,
			HashSet<ModifiableGeneticVariant> excludeList); static Iterable<GeneticVariant> createGeneticVariantIterableBackByModifiable(
			Iterator<GeneticVariant> originalIterator, ModifiableGenotypeData modifiableGenotypeData,
			HashSet<ModifiableGeneticVariant> excludeList);  }### Answer:
@Test public void createModifiableGeneticVariantIterable() { GeneticVariant variant1 = ReadOnlyGeneticVariant.createSnp(variantMeta, "Rs1", 1, "chr1", null, 'A', 'T'); GeneticVariant variant2 = ReadOnlyGeneticVariant.createSnp(variantMeta, "Rs2", 20, "chr1", null, 'G', 'C'); ArrayList<GeneticVariant> variants = new ArrayList<GeneticVariant>(2); variants.add(variant1); variants.add(variant2); HashSet<ModifiableGeneticVariant> excludeList = new HashSet<ModifiableGeneticVariant>(); Iterable<ModifiableGeneticVariant> modifiableVariants = ModifiableGeneticVariantIterator .createModifiableGeneticVariantIterable(variants.iterator(), dummyModifiableGenotypeData, excludeList); Iterator<ModifiableGeneticVariant> modifiableVariantsIterator = modifiableVariants.iterator(); assertEquals(modifiableVariantsIterator.next().getOriginalVariant(), variant1); assertEquals(modifiableVariantsIterator.next().getOriginalVariant(), variant2); assertEquals(modifiableVariantsIterator.hasNext(), false); }