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_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_empty(self): """make_matches should init ok with no parameters""" self.assertEqual(make_matches(), {})