diff --git a/enspara/ra/ra.py b/enspara/ra/ra.py index 51d21a62c..4fcbff193 100644 --- a/enspara/ra/ra.py +++ b/enspara/ra/ra.py @@ -649,8 +649,12 @@ def __setitem__(self, iis, value): value = value._array # ints, slices, lists, and numpy objects are handled by numpy if isinstance(iis, (numbers.Integral, slice, list, np.ndarray)): - self._array[iis] = value - self.__init__(self._array) + if iis == slice(None, None, None): + self._data[iis] = value + self.__init__(self._data, lengths=self.lengths) + else: + self._array[iis] = value + self.__init__(self._array) # tuples get index conversion from 2d to 1d elif isinstance(iis, tuple): first_dimension, second_dimension = iis diff --git a/enspara/test/test_ra.py b/enspara/test/test_ra.py index 159dae835..cc787c711 100644 --- a/enspara/test/test_ra.py +++ b/enspara/test/test_ra.py @@ -400,6 +400,12 @@ def test_ra_operator_not_implemented(self): with assert_raises(TypeError): a > 'asdfasdfasd' + def test_ra_null_slice(self): + a = ra.RaggedArray(np.arange(15), lengths=[2,3,15]) + a[:] = 22 + assert np.all(a._data == np.ones(15, dtype=int)*22) + + class TestParallelLoad(unittest.TestCase): @@ -663,7 +669,7 @@ def test_concat_atoms(self): trjlist = [md.load(self.top_fname)] * 10 trj = concatenate_trjs(trjlist, atoms=ATOMS) - assert_equals(len(trjlist), len(trj)) + assertEqual(len(trjlist), len(trj)) for trjframe, trjlist_item in zip(trj, trjlist): sliced_item = trjlist_item.atom_slice(