def test_multi_dim_replacement(self): m = self.model() # One two-dimen set index_set = m.b0d2.index_set() index = ('a', 1) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet() pred_index = ('a', 1) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) sets = ComponentSet((m.d_2, )) pred_index = (slice(None), slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) # One two-dimen, one one-dimen index_set = m.b1d2.index_set() index = (1, 'a', 1) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet() pred_index = (1, 'a', 1) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) sets = ComponentSet((m.d_2, )) pred_index = (1, slice(None), slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) # One two-dimen, two one-dimen index_set = m.b2d2.index_set() index = (1, 'a', 1, 2) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet((m.d_2, m.time)) pred_index = (slice(None), slice(None), slice(None), 2) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) sets = ComponentSet((m.space, )) pred_index = (1, 'a', 1, slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) # One two-dimen, three one-dimen index_set = m.b3d2.index_set() index = (1, 'a', 1, 2, 1) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet((m.time, )) pred_index = (slice(None), 'a', 1, 2, slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index)
def test_replacement_normalize_flatten_false(self): m = self.model() # index of m.b2d2 index = (1, 0, ('a', 1)) location_set_map = { 0: m.time, 1: m.space, 2: m.d_2, } sets = ComponentSet((m.d_2, )) pred_index = (1, 0, slice(None)) # If you can assemble the proper location_set_map # (get_location_set_map will not work), this function # should work when normalize_index.flatten is False. normalize_index.flatten = False new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) normalize_index.flatten = True
def test_1d_replacement(self): m = self.model() # Unindexed index_set = m.b0.index_set() index = None location_set_map = get_location_set_map(index, index_set) sets = ComponentSet() pred_index = (None, ) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(pred_index, new_index) # One one-d set index_set = m.b1.index_set() index = 1 location_set_map = get_location_set_map(index, index_set) sets = ComponentSet() pred_index = (1, ) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(pred_index, new_index) sets = ComponentSet((m.time, )) pred_index = (slice(None), ) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(pred_index, new_index) # Two one-d sets index_set = m.b2.index_set() index = (1, 2) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet() pred_index = (1, 2) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(pred_index, new_index) sets = ComponentSet((m.space, )) pred_index = (1, slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(pred_index, new_index) sets = ComponentSet((m.space, m.time)) pred_index = (slice(None), slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(pred_index, new_index)
def test_dimen_none_replacement(self): m = self.model() # Single set of dimen None index_set = m.b0dn.index_set() index = ('c', 1, 10) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet((m.d_none, )) pred_index = (Ellipsis, ) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) sets = ComponentSet() pred_index = ('c', 1, 10) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) # One None-dimen, one one-dimen index_set = m.b1dn.index_set() index = (1, 'c', 1, 10) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet((m.d_none, )) pred_index = (1, Ellipsis) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) sets = ComponentSet((m.d_none, m.time)) pred_index = (slice(None), Ellipsis) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) # One None-dimen, one one-dimen, one two-dimen index_set = m.b1dnd2.index_set() index = (1, 'c', 1, 10, 'a', 1) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet((m.d_none, m.time, m.d_2)) pred_index = (slice(None), Ellipsis, slice(None), slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) sets = ComponentSet((m.time, m.d_2)) pred_index = (slice(None), 'c', 1, 10, slice(None), slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) sets = ComponentSet((m.d_2, )) pred_index = (1, 'c', 1, 10, slice(None), slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) # One None-dimen, one two-dimen index_set = m.b2dn.index_set() index = (1, 0, 'd', 3) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet() pred_index = (1, 0, 'd', 3) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) sets = ComponentSet((m.d_none, )) pred_index = (1, 0, Ellipsis) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) # One None-dimen, one two-dimen, two one-dimen index_set = m.b2dnd2.index_set() index = (1, 'c', 1, 10, 'b', 2, 0) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet((m.d_none, m.space)) pred_index = (1, Ellipsis, 'b', 2, slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) # None-dimen set comes first index_set = m.dnd2b1.index_set() index = ('d', 3, 'b', 2, 1) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet((m.d_none, m.time)) pred_index = (Ellipsis, 'b', 2, slice(None)) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index) # None-dimen, plus 2-d set shows up twice index_set = m.b3dn.index_set() index = (1, 'a', 1, 'd', 3, 0, 'b', 2) location_set_map = get_location_set_map(index, index_set) sets = ComponentSet((m.d_none, m.d_2)) pred_index = ( 1, slice(None), slice(None), Ellipsis, 0, slice(None), slice(None), ) new_index = replace_indices(index, location_set_map, sets) self.assertEqual(new_index, pred_index)