def test_with_reverse_and_forward_link_returns_one_base_each(self, kmer): # given b = LinksBuilder() b.with_link_for_kmer('F 1 1 A', 'AAA') b.with_link_for_kmer('R 1 1 A', 'AAA') links = b.build() # when walker = LinkWalker.from_links(links).load_kmer(kmer) # then assert ['A'] == list(walker.next_junction_bases())
def test_raises_when_base_that_does_not_exist_is_chosen(self): # given b = LinksBuilder() b.with_link_for_kmer('F 1 1 A', 'AAA') links = b.build() # when walker = LinkWalker.from_links(links).load_kmer('AAA') # then with pytest.raises(KeyError): walker.choose_branch('C')
def test_with_single_link_returns_each_junctions_base(self): # given b = LinksBuilder() b.with_link_for_kmer('F 3 1 ACT', 'AAA') links = b.build() # when walker = LinkWalker.from_links(links).load_kmer('AAA') # then assert ['A'] == list(walker.next_junction_bases()) assert ['C'] == list(walker.choose_branch('A').next_junction_bases()) assert ['T'] == list(walker.choose_branch('C').next_junction_bases()) assert [] == list(walker.choose_branch('T').next_junction_bases())
def test_with_single_link_returns_one_base(self, is_lexlo): # given b = LinksBuilder() b.with_link_for_kmer('F 3 1 ACC', 'AAA') # when links = b.build() # then junctions = list( links.body['AAA'].get_link_junctions_in_kmer_orientation(is_lexlo)) if is_lexlo: assert ['ACC'] == junctions else: assert [] == junctions
def test_with_two_reverse_and_forward_links_returns_two_bases_each(self): # given b = LinksBuilder() b.with_link_for_kmer('F 1 1 A', 'AAA') b.with_link_for_kmer('F 1 1 C', 'AAA') b.with_link_for_kmer('R 1 1 G', 'AAA') b.with_link_for_kmer('R 1 1 T', 'AAA') links = b.build() # when walker = LinkWalker.from_links(links) # then assert ['A', 'C'] == list(walker.load_kmer('AAA').next_junction_bases()) assert ['G', 'T'] == list( walker.clear().load_kmer('TTT').next_junction_bases())
def test_with_single_reverse_link_returns_one_base(self, kmer): # given b = LinksBuilder() b.with_link_for_kmer('R 3 1 GTT', 'AAA') links = b.build() # when walker = LinkWalker.from_links(links).load_kmer(kmer) # then if kmer == 'TTT': assert 1 == walker.n_junctions assert ['G'] == list(walker.next_junction_bases()) walker.choose_branch('G') assert 1 == walker.n_junctions walker.choose_branch('T') assert 1 == walker.n_junctions walker.choose_branch('T') assert 0 == walker.n_junctions else: assert 0 == walker.n_junctions assert [] == list(walker.next_junction_bases())