def test_oneLineage_returnsSameLineage(self): lineage = Lineage(major="foo", minor="bar") actual = Lineage.call([lineage]) expected = lineage assert actual == expected
def test_twoLineagesSameMajorOneWithMinor_returnsOneWithMinor(self): l1 = Lineage(major="foo", minor="bar") l2 = Lineage(major="foo") actual = Lineage.call([l1, l2]) expected = l1 assert actual == expected
def test_threeLineagesWithDiffMinorsSameLen_returnsMajor(self): l1 = Lineage(major="4", minor="1.3.4") l2 = Lineage(major="4", minor="2.3.6") l3 = Lineage(major="4", minor="3.3.6") actual = Lineage.call([l1, l2, l3]) expected = Lineage(major="4") assert actual == expected
def test_threeLineagesWithMinorsDiffLen_returnsLongest(self): l1 = Lineage(major="4", minor="1.3.4.5.9") l2 = Lineage(major="4", minor="1.3.6") l3 = Lineage(major="4", minor="1.3.6.8") actual = Lineage.call([l1, l2, l3]) expected = Lineage(major="4", minor="1.3.4.5.9") assert actual == expected
def test_threeLineagesSameMajorSameDepthMinor_returnsMRCA(self): l1 = Lineage(major="4", minor="1.3.4.5") l2 = Lineage(major="4", minor="1.3.6.6") l3 = Lineage(major="4", minor="1.3.6.8") actual = Lineage.call([l1, l2, l3]) expected = Lineage(major="4", minor="1.3") assert actual == expected
def test_emptyInput_returnsNone(self): lineages = [] assert Lineage.call(lineages) is None