def test_to_dict_1d(self): """should successfully produce a 1D dict""" data = { "ABAYE2984": { "ABAYE2984": 0, "Atu3667": None, "Avin_42730": 0.6381173875591908, "BAA10469": None, }, "Atu3667": { "ABAYE2984": None, "Atu3667": 0, "Avin_42730": 2.3682377869318993, "BAA10469": None, }, "Avin_42730": { "ABAYE2984": 0.6381173875591908, "Atu3667": 2.3682377869318993, "Avin_42730": 0, "BAA10469": 1.8515731266342546, }, "BAA10469": { "ABAYE2984": None, "Atu3667": None, "Avin_42730": 1.8515731266342546, "BAA10469": 0, }, } darr = DictArray(data, dtype="O") expect = { (n1, n2): darr[n1, n2] for n1 in darr.template.names[0] for n2 in darr.template.names[1] } self.assertEqual(darr.to_dict(flatten=True), expect) darr = DictArrayTemplate(["s1", "s2"], ["s1", "s2"]).wrap( [[0.0, 0.25], [0.25, 0.0]] ) self.assertEqual( darr.to_dict(flatten=True), { ("s1", "s2"): 0.25, ("s2", "s1"): 0.25, ("s1", "s1"): 0.0, ("s2", "s2"): 0.0, }, )
def test_to_dict_roundtrip(self): """roundtrip of DictArray.to_dict() should produce same order.""" d1 = dict(a=dict(k=1, l=2, m=3), b=dict(k=4, l=5, m=6)) darr1 = DictArray(d1) d2 = darr1.to_dict() darr2 = DictArray(d2) self.assertEqual(d1, d2) d3 = DictArray(d2) self.assertEqual(d1, d3)