def test_init_monomers(self): """make_matches with only monomers should produce {(i,i):True}""" m = make_matches('') self.assertEqual(m, {}) m = make_matches('qaz') self.assertEqual(m, { ('q', 'q'): True, ('a', 'a'): True, ('z', 'z'): True })
def test_init_degen(self): """make_matches with only degen should work as expected""" m = make_matches(None, None, { 'x': 'ab', 'y': 'bc', 'z': 'cd', 'n': 'bcd' }) self.assertEqual( m, { ('x', 'x'): False, ('x', 'y'): False, ('x', 'n'): False, ('y', 'x'): False, ('y', 'y'): False, ('y', 'z'): False, ('y', 'n'): False, ('z', 'y'): False, ('z', 'z'): False, ('z', 'n'): False, ('n', 'x'): False, ('n', 'y'): False, ('n', 'z'): False, ('n', 'n'): False }) self.assertNotContains(m, ('x', 'z'))
def test_init_degen(self): """make_matches with only degen should work as expected""" m = make_matches(None, None, {'x':'ab','y':'bc','z':'cd', 'n':'bcd'}) self.assertEqual(m, {('x','x'):False, ('x','y'):False, ('x','n'):False, ('y','x'):False, ('y','y'):False, ('y','z'):False, ('y','n'):False, ('z','y'):False, ('z','z'):False, ('z','n'):False, ('n','x'):False, ('n','y'):False, ('n','z'):False, ('n','n'):False}) self.assertNotContains(m, ('x','z'))
def test_init_gaps(self): """make_matches with only gaps should match all gaps to each other""" m = make_matches('', '~!') self.assertEqual(m, { ('~', '~'): True, ('!', '!'): True, ('!', '~'): True, ('~', '!'): True })
def test_init_all(self): """make_matches with everything should produce correct dict""" m = make_matches('ABC', ('-', '~'), { 'X': 'AB', 'Y': ('B', 'C'), 'N': list('ABC') }) exp = { ('-', '-'): True, ('~', '~'): True, ('-', '~'): True, ('~', '-'): True, ('A', 'A'): True, ('B', 'B'): True, ('C', 'C'): True, ('A', 'X'): False, ('X', 'A'): False, ('B', 'X'): False, ('X', 'B'): False, ('B', 'Y'): False, ('Y', 'B'): False, ('C', 'Y'): False, ('Y', 'C'): False, ('A', 'N'): False, ('N', 'A'): False, ('B', 'N'): False, ('N', 'B'): False, ('C', 'N'): False, ('N', 'C'): False, ('X', 'X'): False, ('Y', 'Y'): False, ('N', 'N'): False, ('X', 'Y'): False, ('Y', 'X'): False, ('X', 'N'): False, ('N', 'X'): False, ('Y', 'N'): False, ('N', 'Y'): False, } self.assertEqual(m, exp)
def test_init_all(self): """make_matches with everything should produce correct dict""" m = make_matches('ABC',('-','~'),{'X':'AB','Y':('B','C'),'N':list('ABC')}) exp = { ('-','-'):True, ('~','~'):True, ('-','~'):True, ('~','-'):True, ('A','A'):True, ('B','B'):True, ('C','C'):True, ('A','X'):False, ('X','A'):False, ('B','X'):False, ('X','B'):False, ('B','Y'):False, ('Y','B'):False, ('C','Y'):False, ('Y','C'):False, ('A','N'):False, ('N','A'):False, ('B','N'):False, ('N','B'):False, ('C','N'):False, ('N','C'):False, ('X','X'):False, ('Y','Y'):False, ('N','N'):False, ('X','Y'):False, ('Y','X'):False, ('X','N'):False, ('N','X'):False, ('Y','N'):False, ('N','Y'):False, } self.assertEqual(m, exp)
def test_init_empty(self): """make_matches should init ok with no parameters""" self.assertEqual(make_matches(), {})
def test_init_gaps(self): """make_matches with only gaps should match all gaps to each other""" m = make_matches('', '~!') self.assertEqual(m, {('~','~'):True,('!','!'):True,('!','~'):True, ('~','!'):True})
def test_init_monomers(self): """make_matches with only monomers should produce {(i,i):True}""" m = make_matches('') self.assertEqual(m, {}) m = make_matches('qaz') self.assertEqual(m, {('q','q'):True,('a','a'):True,('z','z'):True})