@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()); } }
@Test public void testEmptyResultSet() { final AssemblyResultSet subject = new AssemblyResultSet(); Assert.assertEquals(subject.getHaplotypeList().size(), 0); Assert.assertEquals(subject.getHaplotypeCount(), 0); Assert.assertEquals(subject.getReferenceHaplotype(), null); Assert.assertEquals(subject.getFullReferenceWithPadding(), null); Assert.assertEquals(subject.getPaddedReferenceLoc(), null); Assert.assertEquals(subject.getRegionForGenotyping(), null); Assert.assertEquals(subject.getUniqueReadThreadingGraph(10), null); Assert.assertFalse(subject.hasMultipleKmerSizes()); }
@Test(dataProvider = "assemblyResults") public void testAddManyHaplotypes( final java.util.List<AssemblyResult> assemblyResults, final java.util.List<java.util.List<Haplotype>> haplotypes) { final AssemblyResultSet subject = new AssemblyResultSet(); for (int i = 0; i < haplotypes.size(); i++) { final int haplotypeCountBefore = subject.getHaplotypeCount(); final java.util.List<Haplotype> haplos = haplotypes.get(i); final AssemblyResult ar = assemblyResults.get(i); for (final Haplotype h : haplos) { Assert.assertTrue(subject.add(h, ar)); Assert.assertFalse(subject.add(h, ar)); if (h.isReference()) Assert.assertEquals(subject.getReferenceHaplotype(), h); } final int haplotypeCountAfter = subject.getHaplotypeCount(); Assert.assertEquals(haplos.size(), haplotypeCountAfter - haplotypeCountBefore); Assert.assertTrue(subject.getMaximumKmerSize() >= ar.getKmerSize()); Assert.assertTrue(subject.getMinimumKmerSize() <= ar.getKmerSize()); Assert.assertEquals( subject.getUniqueReadThreadingGraph(ar.getKmerSize()), ar.getThreadingGraph()); } }
@Test public void testAddReferenceHaplotype() { final Haplotype ref = new Haplotype("ACGT".getBytes(), true); ref.setGenomeLocation(genomeLocParser.createGenomeLoc("1", 1, ref.length() + 1)); final AssemblyResultSet subject = new AssemblyResultSet(); Assert.assertTrue(subject.add(ref)); Assert.assertFalse(subject.add(ref)); Assert.assertEquals(subject.getReferenceHaplotype(), ref); Assert.assertEquals(subject.getHaplotypeCount(), 1); Assert.assertEquals(subject.getHaplotypeList().size(), 1); }