def test_variant_sequence_add_reads(): vs = VariantSequence(prefix="A", alt="C", suffix="G", reads={"1"}) # adding reads '2' and '3', sometimes multiple times vs_result = vs.add_reads("2").add_reads("1").add_reads("2").add_reads("3") expected = VariantSequence(prefix="A", alt="C", suffix="G", reads={"1", "2", "3"}) eq_(vs_result, expected)
def test_collapse_substrings(): # AAA|C|GGG vs_longer = VariantSequence(prefix="AAA", alt="C", suffix="GGG", reads={"1"}) # AAA|C|GG vs_shorter = VariantSequence(prefix="AAA", alt="C", suffix="GG", reads={"2"}) vs_unrelated = VariantSequence("TAA", alt="C", suffix="GG", reads={"3"}) results = collapse_substrings([vs_longer, vs_shorter, vs_unrelated]) eq_(len(results), 2), "Expected two sequences, got %d: %s" % (len(results), results) vs_combined = vs_longer.add_reads({"2"}) assert vs_combined in results, "Expected %s to be in %s" % (vs_combined, results) assert vs_unrelated in results, "Expected %s to be in %s" % (vs_unrelated, results)