def test_key_levels(self): """DictArray both levels have keys.""" b = DictArrayTemplate("abc", "ABC").wrap(self.a) self.assertEqual(b.keys(), ["a", "b", "c"]) self.assertEqual(b["a"].keys(), ["A", "B", "C"]) self.assertEqual(list(b["a"]), [1, 0, 0]) self.assertEqual(sum(b["a"]), 1)
def test_str_labels(self): """DictArray with str labels or numpy U dtype""" b = DictArrayTemplate(["Ab", "Bb", "Cb"], ["Db", "Eb", "Fb"]).wrap(self.a) self.assertEqual(b.keys(), ["Ab", "Bb", "Cb"]) self.assertEqual(b[0].keys(), ["Db", "Eb", "Fb"]) self.assertEqual(b["Ab", "Eb"], 0) self.assertEqual(b["Bb", "Eb"], 1) b = DictArrayTemplate( numpy.array(["Ab", "Bb", "Cb"], dtype="U"), numpy.array(["Db", "Eb", "Fb"], dtype="U"), ).wrap(self.a) self.assertEqual(b.keys(), ["Ab", "Bb", "Cb"]) self.assertEqual(b[0].keys(), ["Db", "Eb", "Fb"]) self.assertEqual(b["Ab", "Eb"], 0) self.assertEqual(b["Bb", "Eb"], 1)
def test_with_mixed_label_types(self): """DictArray constructed with mixed label types.""" b = DictArrayTemplate("ABC", 3).wrap(self.a) self.assertEqual(b.keys(), ["A", "B", "C"]) self.assertEqual(b["A"].keys(), [0, 1, 2])
def test_int_labels(self): """DictArray with no labels.""" b = DictArrayTemplate(3, 3).wrap(self.a) self.assertEqual(b.keys(), [0, 1, 2]) self.assertEqual(b[0].keys(), [0, 1, 2]) self.assertEqual(sum(b[0]), 1)