def test_oneLineage_returnsOnlyElement(self): l1 = Lineage(major="4", minor="1.3.4") classifier = Classifier() sample_idx = 0 actual = classifier.call_sample_lineage([l1], sample_idx) expected = str(l1) assert actual == expected
def test_emptyList_returnsNone(self): lineages = [] classifier = Classifier() sample_idx = 0 expected = "unknown" actual = classifier.call_sample_lineage(lineages, sample_idx, default=expected) assert actual == expected
def test_twoLineagesDiffMajor_returnsMixedDisregardMaxAlt(self): l1 = Lineage(major="4", minor="1.3.4") l2 = Lineage(major="5", minor="8.3") classifier = Classifier(max_alt_lineages=5) sample_idx = 0 actual = classifier.call_sample_lineage([l1, l2], sample_idx) expected = "mixed" assert actual == expected
def test_twoLineagesSameMajor_returnsLowestOnTree(self): l1 = Lineage(major="4", minor="1.3.4") l2 = Lineage(major="4", minor="8.3") classifier = Classifier() sample_idx = 0 actual = classifier.call_sample_lineage([l1, l2], sample_idx) expected = str(l1) assert actual == expected
def test_oneLineageTooManyHets_returnsTooManyHets(self): l1 = Lineage(major="4", minor="1.3.4") classifier = Classifier(max_het=1) sample_idx = 0 classifier.het_counts[sample_idx] = 5 actual = classifier.call_sample_lineage([l1], sample_idx) expected = "too_many_hets" assert actual == expected
def test_mixedLineagesBelowThreshold_returnsMostCommon(self): l1 = Lineage(major="4", minor="1.3.4") l2 = Lineage(major="4", minor="1.3") l3 = Lineage(major="5", minor="8.3") classifier = Classifier(max_alt_lineages=1) sample_idx = 0 actual = classifier.call_sample_lineage([l1, l2, l3], sample_idx) expected = str(l1) assert actual == expected