@Test(dataProvider = "trimmingData") public void testTrimTo( final Map<Haplotype, AssemblyResult> haplotypesAndResultSets, final AssemblyRegion original) { final AssemblyResultSet subject = new AssemblyResultSet(); for (final Map.Entry<Haplotype, AssemblyResult> entry : haplotypesAndResultSets.entrySet()) subject.add(entry.getKey(), entry.getValue()); subject.setRegionForGenotyping(original); final GenomeLoc originalLocation = original.getExtendedSpan(); final int length = originalLocation.size(); final GenomeLoc newLocation = originalLocation.setStop( originalLocation.setStart(originalLocation, originalLocation.getStart() + length / 2), originalLocation.getStop() - length / 2); final AssemblyRegion newRegion = original.trim(newLocation); final Map<Haplotype, Haplotype> originalHaplotypesByTrimmed = new HashMap<>(haplotypesAndResultSets.size()); for (final Haplotype h : haplotypesAndResultSets.keySet()) originalHaplotypesByTrimmed.put(h.trim(newRegion.getExtendedSpan()), h); final AssemblyResultSet trimmed = subject.trimTo(newRegion); Assert.assertFalse(subject.wasTrimmed()); Assert.assertTrue(trimmed.wasTrimmed()); for (final Haplotype h : trimmed.getHaplotypeList()) { Assert.assertEquals(h.getGenomeLocation(), newLocation); Assert.assertEquals(h.getBases().length, newLocation.size()); } }