示例#1
0
 def test_add_lowercase_tuple(self):
     """add_lowercase should deal with tuples correctly"""
     d = {("A", "B"): "C", ("D", "e"): "F", ("b", "c"): "H"}
     add_lowercase(d)
     self.assertEqual(
         d,
         {
             ("A", "B"): "C",
             ("a", "b"): "c",
             ("D", "e"): "F",
             ("d", "e"): "f",
             ("b", "c"): "H",
         },
     )
示例#2
0
    def test_add_lowercase(self):
        """add_lowercase should add lowercase version of each key w/ same val"""
        d = {
            "a": 1,
            "b": "test",
            "A": 5,
            "C": 123,
            "D": [],
            "AbC": "XyZ",
            None: "3",
            "$": "abc",
            145: "5",
        }
        add_lowercase(d)
        assert d["d"] is d["D"]
        d["D"].append(3)
        self.assertEqual(d["D"], [3])
        self.assertEqual(d["d"], [3])
        self.assertNotEqual(d["a"], d["A"])
        self.assertEqual(
            d,
            {
                "a": 1,
                "b": "test",
                "A": 5,
                "C": 123,
                "c": 123,
                "D": [3],
                "d": [3],
                "AbC": "XyZ",
                "abc": "xyz",
                None: "3",
                "$": "abc",
                145: "5",
            },
        )

        # should work with strings
        d = "ABC"
        self.assertEqual(add_lowercase(d), "ABCabc")
        # should work with tuples
        d = tuple("ABC")
        self.assertEqual(add_lowercase(d), tuple("ABCabc"))
        # should work with lists
        d = list("ABC")
        self.assertEqual(add_lowercase(d), list("ABCabc"))
        # should work with sets
        d = set("ABC")
        self.assertEqual(add_lowercase(d), set("ABCabc"))
        # ...even frozensets
        d = frozenset("ABC")
        self.assertEqual(add_lowercase(d), frozenset("ABCabc"))
示例#3
0
文件: moltype.py 项目: mr-c/cogent3
 def _add_lowercase(self):
     """Adds lowercase versions of keys and vals to each internal dict."""
     for name in [
             "alphabet",
             "degenerates",
             "gaps",
             "complements",
             "pairs",
             "matches",
     ]:
         curr = getattr(self, name)
         # temp hack to get around re-ordering
         if isinstance(curr, Alphabet):
             curr = tuple(curr)
         new = add_lowercase(curr)
         setattr(self, name, new)