def test_index_level_a(self) -> None: groups = IndexGO(('A', 'B')) observations = IndexGO(('x', 'y')) targets = np.array((IndexLevelGO(index=observations), IndexLevelGO(observations, offset=2))) level0 = IndexLevelGO(index=groups, targets=ArrayGO(targets)) level1 = level0.to_index_level() groups = IndexGO(('C', 'D')) observations = IndexGO(('x', 'y', 'z')) targets = np.array((IndexLevelGO(index=observations), IndexLevelGO(observations, offset=3))) level2 = IndexLevelGO(index=groups, targets=ArrayGO(targets)) level0.extend(level2) self.assertEqual(len(level0.get_labels()), 10) self.assertEqual(len(level1.get_labels()), 4) self.assertEqual(len(level2.get_labels()), 6) assert level0.targets is not None # import ipdb; ipdb.set_trace() self.assertEqual([lvl.offset for lvl in level0.targets], [0, 2, 4, 7])
def test_index_level_a(self) -> None: groups = IndexGO(('A', 'B')) observations = IndexGO(('x', 'y')) targets = np.array( (IndexLevelGO(index=observations), IndexLevelGO(observations, offset=2))) level0 = IndexLevelGO(index=groups, targets=ArrayGO(targets)) level1 = level0.to_index_level() groups = IndexGO(('C', 'D')) observations = IndexGO(('x', 'y', 'z')) targets = np.array( (IndexLevelGO(index=observations), IndexLevelGO(observations, offset=3))) level2 = IndexLevelGO(index=groups, targets=ArrayGO(targets)) with self.assertRaises(RuntimeError): level0.extend(IndexLevelGO(index=observations)) level0.extend(level2) self.assertEqual(len(level0.values), 10) self.assertEqual(len(level1.values), 4) self.assertEqual(len(level2.values), 6) assert level0.targets is not None self.assertEqual([lvl.offset for lvl in level0.targets], [0, 2, 4, 7]) self.assertEqual(level2.depth, next(level2.depths()))