class Test2d:

    def setUp(self):
        self.s = Signal(np.random.random((2, 3)))

    def test_as_image_T(self):
        assert_true(
            self.s.data.T.shape == self.s.as_image((0, 1)).data.shape)

    def test_as_image(self):
        assert_true(
            self.s.data.shape == self.s.as_image((1, 0)).data.shape)

    def test_as_spectrum_T(self):
        assert_true(
            self.s.data.T.shape == self.s.as_spectrum(0).data.shape)

    def test_as_spectrum(self):
        assert_true(
            self.s.data.shape == self.s.as_spectrum(1).data.shape)

    def test_s2EELS2im2s(self):
        s = self.s.as_spectrum(0)
        s.set_signal_type("EELS")
        im = s.as_image((1, 0))
        assert_equal(im.metadata.Signal.signal_type, "EELS")
        s = im.as_spectrum(0)
        assert_equal(s.metadata.Signal.signal_type, "EELS")
        assert_true(isinstance(s, signals.EELSSpectrum))
class Test2d():
    def setUp(self):    
        self.s = Signal(np.random.random((2,3)))
        
    def test_as_image_T(self):
        assert_true(
            self.s.data.T.shape == self.s.as_image((0,1)).data.shape)
    def test_as_image(self):
        assert_true(
            self.s.data.shape == self.s.as_image((1,0)).data.shape)       
    def test_as_spectrum_T(self):
        assert_true(
            self.s.data.T.shape == self.s.as_spectrum(0).data.shape)

    def test_as_spectrum(self):
        assert_true(
            self.s.data.shape == self.s.as_spectrum(1).data.shape)
    def test_s2EELS2im2s(self):
        s = self.s.as_spectrum(0)
        s.set_signal_type("EELS")
        im = s.as_image((1, 0))
        assert_equal(im.mapped_parameters.signal_type, "EELS")
        s = im.as_spectrum((0))
        assert_equal(s.mapped_parameters.signal_type, "EELS")
        assert_true(isinstance(s, signals.EELSSpectrum))
class Test3d():
    def setUp(self):
        self.s = Signal(np.random.random((2, 3, 4)))

    def test_as_image_contigous(self):
        assert_true(self.s.as_image((0, 1)).data.flags['C_CONTIGUOUS'])

    def test_as_image_1(self):
        assert_equal(self.s.as_image((0, 1)).data.shape, (4, 2, 3))

    def test_as_image_2(self):
        assert_equal(self.s.as_image((1, 0)).data.shape, (4, 3, 2))

    def test_as_image_3(self):
        assert_equal(self.s.as_image((1, 2)).data.shape, (3, 4, 2))

    def test_as_spectrum_contigous(self):
        assert_true(self.s.as_spectrum(0).data.flags['C_CONTIGUOUS'])

    def test_as_spectrum_0(self):
        assert_equal(self.s.as_spectrum(0).data.shape, (2, 4, 3))

    def test_as_spectrum_1(self):
        assert_equal(self.s.as_spectrum(1).data.shape, (3, 4, 2))

    def test_as_spectrum_2(self):
        assert_equal(self.s.as_spectrum(1).data.shape, (3, 4, 2))

    def test_as_spectrum_3(self):
        assert_equal(self.s.as_spectrum(2).data.shape, (2, 3, 4))

    def test_remove_axis(self):
        im = self.s.as_image((-2, -1))
        im._remove_axis(-1)
        assert_true(isinstance(im, signals.Spectrum))
示例#4
0
class Test3D_Navigate_1:

    def setUp(self):
        self.signal = Signal(np.arange(24).reshape((2, 3, 4)))
        self.data = self.signal.data.copy()
        self.signal.axes_manager._axes[0].navigate = False
        self.signal.axes_manager._axes[1].navigate = True
        self.signal.axes_manager._axes[2].navigate = False

    def test_1px_navigation_indexer_slice(self):
        s = self.signal.inav[1:2]
        d = self.data[:, 1:2]
        np.testing.assert_array_equal(s.data, d)
        assert_equal(s.axes_manager._axes[1].offset, 1)
        assert_equal(s.axes_manager._axes[1].size, 1)
        assert_equal(s.axes_manager._axes[1].scale,
                     self.signal.axes_manager._axes[1].scale)

    def test_1px_signal_indexer_slice(self):
        s = self.signal.isig[1:2]
        d = self.data[:, :, 1:2]
        np.testing.assert_array_equal(s.data, d)
        assert_equal(s.axes_manager.signal_axes[0].offset, 1)
        assert_equal(s.axes_manager.signal_axes[0].size, 1)
        assert_equal(s.axes_manager.signal_axes[0].scale,
                     self.signal.axes_manager.signal_axes[0].scale)

    def test_subclass_assignment(self):
        im = self.signal.as_image((-2, -1))
        assert_true(isinstance(im.isig[0], signals.Spectrum))
示例#5
0
class Test3D_Navigate_1:
    def setUp(self):
        self.signal = Signal(np.arange(24).reshape((2, 3, 4)))
        self.data = self.signal.data.copy()
        self.signal.axes_manager._axes[0].navigate = False
        self.signal.axes_manager._axes[1].navigate = True
        self.signal.axes_manager._axes[2].navigate = False

    def test_1px_navigation_indexer_slice(self):
        s = self.signal.inav[1:2]
        d = self.data[:, 1:2]
        assert_true((s.data == d).all())
        assert_equal(s.axes_manager._axes[1].offset, 1)
        assert_equal(s.axes_manager._axes[1].size, 1)
        assert_equal(s.axes_manager._axes[1].scale,
                     self.signal.axes_manager._axes[1].scale)

    def test_1px_signal_indexer_slice(self):
        s = self.signal.isig[1:2]
        d = self.data[:, :, 1:2]
        assert_true((s.data == d).all())
        assert_equal(s.axes_manager.signal_axes[0].offset, 1)
        assert_equal(s.axes_manager.signal_axes[0].size, 1)
        assert_equal(s.axes_manager.signal_axes[0].scale,
                     self.signal.axes_manager.signal_axes[0].scale)

    def test_subclass_assignment(self):
        im = self.signal.as_image((-2, -1))
        assert_true(isinstance(im.isig[0], signals.Spectrum))
class Test1d:

    def setUp(self):
        self.s = Signal(np.arange(2))

    @nt.raises(DataDimensionError)
    def test_as_image(self):
        self.s.as_image((0, 1))

    def test_as_spectrum(self):
        np.testing.assert_array_equal(self.s.data, self.s.as_spectrum(0).data)

    def test_set_EELS(self):
        s = self.s.as_spectrum(0)
        s.set_signal_type("EELS")
        nt.assert_equal(s.metadata.Signal.signal_type, "EELS")
        nt.assert_is_instance(s, signals.EELSSpectrum)
class Test3d:

    def setUp(self):
        self.s = Signal(np.random.random((2, 3, 4)))

    def test_as_image_contigous(self):
        assert_true(self.s.as_image((0, 1)).data.flags['C_CONTIGUOUS'])

    def test_as_image_1(self):
        assert_equal(
            self.s.as_image((0, 1)).data.shape, (4, 2, 3))

    def test_as_image_2(self):
        assert_equal(
            self.s.as_image((1, 0)).data.shape, (4, 3, 2))

    def test_as_image_3(self):
        assert_equal(
            self.s.as_image((1, 2)).data.shape, (3, 4, 2))

    def test_as_spectrum_contigous(self):
        assert_true(self.s.as_spectrum(0).data.flags['C_CONTIGUOUS'])

    def test_as_spectrum_0(self):
        assert_equal(
            self.s.as_spectrum(0).data.shape, (2, 4, 3))

    def test_as_spectrum_1(self):
        assert_equal(
            self.s.as_spectrum(1).data.shape, (3, 4, 2))

    def test_as_spectrum_2(self):
        assert_equal(
            self.s.as_spectrum(1).data.shape, (3, 4, 2))

    def test_as_spectrum_3(self):
        assert_equal(
            self.s.as_spectrum(2).data.shape, (2, 3, 4))

    def test_remove_axis(self):
        im = self.s.as_image((-2, -1))
        im._remove_axis(-1)
        assert_true(isinstance(im, signals.Spectrum))
class Test1d():
    def setUp(self):    
        self.s = Signal(np.arange(2))
        
    @raises(DataDimensionError)
    def test_as_image(self):
        assert_true((self.s.data == self.s.as_image((0,1)).data).all())
        
    def test_as_spectrum(self):
        assert_true((self.s.data == self.s.as_spectrum(0).data).all())
        
    def test_set_EELS(self):
        s = self.s.as_spectrum(0)
        s.set_signal_type("EELS")
        assert_equal(s.mapped_parameters.signal_type, "EELS")
        assert_true(isinstance(s, signals.EELSSpectrum))
class TestBinaryOperators:

    def setUp(self):
        self.s1 = Signal(np.ones((2, 3)))
        self.s2 = Signal(np.ones((2, 3)))
        self.s2.data *= 2

    def test_sum_same_shape_signals(self):
        s = self.s1 + self.s2
        assert_array_equal(s.data, self.s1.data * 3)

    def test_sum_in_place_same_shape_signals(self):
        s1 = self.s1
        self.s1 += self.s2
        assert_array_equal(self.s1.data, np.ones((2, 3)) * 3)
        nt.assert_is(s1, self.s1)

    def test_sum_same_shape_signals_not_aligned(self):
        s1 = self.s1
        s2 = Signal(2 * np.ones((3, 2)))
        s1.axes_manager._axes[0].navigate = False
        s1.axes_manager._axes[1].navigate = True
        s2.axes_manager._axes[1].navigate = False
        s2.axes_manager._axes[0].navigate = True
        s12 = s1 + s2
        s21 = s2 + s1
        assert_array_equal(s12.data, np.ones((3, 2)) * 3)
        assert_array_equal(s21.data, s12.data)

    def test_sum_in_place_same_shape_signals_not_aligned(self):
        s1 = self.s1
        s2 = Signal(2 * np.ones((3, 2)))
        s1c = s1
        s2c = s2
        s1.axes_manager._axes[0].navigate = False
        s1.axes_manager._axes[1].navigate = True
        s2.axes_manager._axes[1].navigate = False
        s2.axes_manager._axes[0].navigate = True
        s1 += s2
        assert_array_equal(s1.data, np.ones((3, 2)) * 3)
        s2 += s2
        assert_array_equal(s2.data, np.ones((3, 2)) * 4)
        nt.assert_is(s1, s1c)
        nt.assert_is(s2, s2c)

    @nt.raises(ValueError)
    def test_sum_wrong_shape(self):
        s1 = self.s1
        s2 = Signal(np.ones((3, 3)))
        s1 + s2

    def test_broadcast_missing_sig_and_nav(self):
        s1 = self.s1
        s2 = self.s2.as_image((1, 0))  # (|3, 2)
        s1.axes_manager.set_signal_dimension(0)  # (3, 2|)
        s = s1 + s2
        assert_array_equal(s.data, 3 * np.ones((2, 3, 2, 3)))
        nt.assert_equal(s.metadata.Signal.record_by, "image")

    def test_broadcast_missing_sig(self):
        s1 = self.s1
        s2 = self.s2
        s1.axes_manager.set_signal_dimension(0)  # (3, 2|)
        s2.axes_manager._axes[1].navigate = True
        s2.axes_manager._axes[0].navigate = False  # (3| 2)
        s12 = s1 + s2  # (3, 2| 2)
        s21 = s2 + s1
        assert_array_equal(s12.data, 3 * np.ones((2, 3, 2)))
        assert_array_equal(s21.data, 3 * np.ones((2, 3, 2)))

    @nt.raises(ValueError)
    def test_broadcast_in_place_missing_sig_wrong(self):
        s1 = self.s1
        s2 = self.s2
        s1.axes_manager.set_signal_dimension(0)  # (3, 2|)
        s2.axes_manager._axes[1].navigate = True
        s2.axes_manager._axes[0].navigate = False  # (3| 2)
        s1 += s2

    def test_broadcast_in_place(self):
        s1 = self.s1
        s1.axes_manager.set_signal_dimension(1)  # (3|2)
        s2 = Signal(np.ones((4, 2, 4, 3)))
        s2c = s2
        s2.axes_manager.set_signal_dimension(2)  # (3, 4| 2, 4)
        print(s2)
        print(s1)
        s2 += s1
        assert_array_equal(s2.data, 2 * np.ones((4, 2, 4, 3)))
        nt.assert_is(s2, s2c)

    def test_equal_naxes_diff_shape(self):
        s32 = self.s1  # (3| 2)
        s31 = Signal(np.ones((1, 3)))
        s12 = Signal(np.ones((2, 1)))
        assert_array_equal((s32 + s31).data, s32.data + 1)
        assert_array_equal((s32 + s12).data, s32.data + 1)