Пример #1
0
 def test_plot_with_different_axes_manager(self):
     data0 = np.zeros((30, 40, 50, 50), dtype=np.uint16)
     data0[20, 20] = 100
     data0 = da.from_array(data0, chunks=(10, 10, 25, 25))
     s0 = _lazy_signals.LazySignal2D(data0)
     data1 = da.zeros((30, 40, 50, 50), chunks=(10, 10, 25, 25))
     s1 = _lazy_signals.LazySignal2D(data1)
     s0.plot(axes_manager=s1.axes_manager)
     s1.axes_manager.indices = (20, 20)
     assert np.all(s0._cache_dask_chunk[0, 0] == 100)
     s0._plot.close()
Пример #2
0
 def test_clear_cache_dask_data_method(self):
     s = _lazy_signals.LazySignal2D(
         da.zeros((6, 6, 8, 8), chunks=(2, 2, 4, 4)))
     s.__call__()
     s._clear_cache_dask_data()
     assert s._cache_dask_chunk is None
     assert s._cache_dask_chunk_slice is None
Пример #3
0
 def test_map_inplace_data_changing(self):
     s = _lazy_signals.LazySignal2D(
         da.zeros((6, 6, 8, 8), chunks=(2, 2, 4, 4)))
     s.__call__()
     assert len(s._cache_dask_chunk.shape) == 4
     s.map(np.sum, axis=1, ragged=False, inplace=True)
     s.__call__()
     assert len(s._cache_dask_chunk.shape) == 3
Пример #4
0
 def test_changed_data_trigger(self):
     s = _lazy_signals.LazySignal2D(
         da.zeros((6, 6, 8, 8), chunks=(2, 2, 4, 4)))
     position = s.axes_manager._getitem_tuple
     s._get_cache_dask_chunk(position)
     assert s._cache_dask_chunk is not None
     assert s._cache_dask_chunk_slice is not None
     s.events.data_changed.trigger(None)
     assert s._cache_dask_chunk is None
     assert s._cache_dask_chunk_slice is None
Пример #5
0
    def test_change_position(self):
        s = _lazy_signals.LazySignal2D(
            da.zeros((10, 10, 20, 20), chunks=(5, 5, 10, 10)))
        s._get_cache_dask_chunk((0, 0, slice(None), slice(None)))
        chunk_slice0 = s._cache_dask_chunk_slice

        s._cache_dask_chunk[:] = 2

        s._get_cache_dask_chunk((4, 4, slice(None), slice(None)))
        chunk_slice1 = s._cache_dask_chunk_slice
        assert chunk_slice0 == chunk_slice1
        assert np.all(s._cache_dask_chunk == 2)

        s._get_cache_dask_chunk((6, 4, slice(None), slice(None)))
        s._get_cache_dask_chunk((0, 0, slice(None), slice(None)))
        assert np.all(s._cache_dask_chunk == 0)
Пример #6
0
    def test_correct_value_within_chunk(self):
        data = np.zeros((10, 15, 50, 50))
        data[0, 0] = 1
        data[0, 1] = 2
        data[1, 0] = 3
        data[1, 1] = 4
        data = da.from_array(data, chunks=(2, 2, 25, 25))
        s = _lazy_signals.LazySignal2D(data)
        value = s._get_cache_dask_chunk(s.axes_manager._getitem_tuple)
        assert np.all(value == 1)

        s.axes_manager.indices = (1, 0)
        value = s._get_cache_dask_chunk(s.axes_manager._getitem_tuple)
        assert np.all(value == 2)

        s.axes_manager.indices = (0, 1)
        value = s._get_cache_dask_chunk(s.axes_manager._getitem_tuple)
        assert np.all(value == 3)

        s.axes_manager.indices = (1, 1)
        value = s._get_cache_dask_chunk(s.axes_manager._getitem_tuple)
        assert np.all(value == 4)
Пример #7
0
    def test_correct_value(self):
        chunk_slice_list = [
            np.s_[0:5, 0:5],
            np.s_[5:10, 0:5],
            np.s_[0:5, 5:10],
            np.s_[5:10, 5:10],
            np.s_[0:5, 10:15],
            np.s_[5:10, 10:15],
        ]
        value_list = [1, 2, 3, 4, 5, 6]
        data = np.zeros((10, 15, 50, 50))
        for value, chunk_slice in zip(value_list, chunk_slice_list):
            data[chunk_slice] = value

        data = da.from_array(data, chunks=(5, 5, 25, 25))
        s = _lazy_signals.LazySignal2D(data)
        for value, chunk_slice in zip(value_list, chunk_slice_list):
            s.plot()
            s.axes_manager.indices = (chunk_slice[1].start,
                                      chunk_slice[0].start)
            assert s._cache_dask_chunk.shape == (5, 5, 50, 50)
            assert np.all(s._cache_dask_chunk == value)
            assert chunk_slice == s._cache_dask_chunk_slice
            s._plot.close()
Пример #8
0
    def test_correct_values(self):
        chunk_slice_list = [
            np.s_[0:5, 0:5],
            np.s_[5:10, 0:5],
            np.s_[0:5, 5:10],
            np.s_[5:10, 5:10],
            np.s_[0:5, 10:15],
            np.s_[5:10, 10:15],
        ]
        value_list = [1, 2, 3, 4, 5, 6]
        data = np.zeros((10, 15, 50, 50))
        for value, chunk_slice in zip(value_list, chunk_slice_list):
            data[chunk_slice] = value

        data = da.from_array(data, chunks=(5, 5, 25, 25))
        s = _lazy_signals.LazySignal2D(data)
        for value, chunk_slice in zip(value_list, chunk_slice_list):
            value_output = s._get_cache_dask_chunk(
                (chunk_slice[0].start, chunk_slice[1].start, slice(None),
                 slice(None)))
            assert s._cache_dask_chunk.shape == (5, 5, 50, 50)
            assert np.all(s._cache_dask_chunk == value)
            assert chunk_slice == s._cache_dask_chunk_slice
            assert value == value_output.mean(dtype=np.uint16)
Пример #9
0
def _signal():
    ar = da.from_array(np.arange(6. * 9 * 7 * 11).reshape((6, 9, 7, 11)),
                       chunks=((2, 1, 3), (4, 5), (7, ), (11, )))
    return _lazy_signals.LazySignal2D(ar)
Пример #10
0
 def test_dimensions(self, shape):
     chunks = (2, ) * len(shape)
     s = _lazy_signals.LazySignal2D(da.zeros(shape), chunks=chunks)
     s.plot()
     s._plot.close()
Пример #11
0
 def test_dimensions(self, shape):
     chunks = (2, ) * len(shape)
     s = _lazy_signals.LazySignal2D(da.zeros(shape), chunks=chunks)
     position = s.axes_manager._getitem_tuple
     s._get_cache_dask_chunk(position)
     assert len(position) == len(shape)