コード例 #1
0
 def test_invalid_name(self):
     d = self.par.as_dictionary()
     d['_id_name'] = 'otherone'
     p = Parameter()
     p._id_name = 'newone'
     with pytest.raises(ValueError):
         _id = p._load_dictionary(d)
コード例 #2
0
ファイル: test_parameter.py プロジェクト: gdonval/hyperspy
class TestParameterTwin:

    def setUp(self):
        self.p1 = Parameter()
        self.p2 = Parameter()

    def test_slave_fixed(self):
        assert_true(self.p2.free)
        self.p2.twin = self.p1
        assert_false(self.p2.free)

    def test_twin_value(self):
        self.p2.twin = self.p1
        self.p1.value = 3
        assert_equal(self.p1.value, self.p2.value)
        self.p2.twin = None
        assert_equal(self.p1.value, self.p2.value)
        self.p1.value = 2
        assert_equal(3, self.p2.value)

    def test_twin_value_bounded(self):
        self.p2.bmax = 2
        self.p2.ext_bounded = True
        self.p2.twin = self.p1
        self.p1.value = 3
        assert_equal(self.p1.value, self.p2.value)
        self.p2.twin = None
        assert_equal(self.p2.value, self.p2.bmax)

    def test_twin_function(self):
        self.p2.twin_function = lambda x: x + 2
        self.p2.twin_inverse_function = lambda x: x - 2
        self.p2.twin = self.p1
        assert_equal(self.p1.value, self.p2.value - 2)
        self.p2.value = 10
        assert_equal(self.p1.value, 8)

    def test_inherit_connections(self):
        dummy = Dummy()
        self.p2.connect(dummy.add_one)
        self.p2.twin = self.p1
        self.p1.value = 2
        assert_equal(dummy.value, 2)
        # The next line calls add_one -> value = 3
        self.p2.twin = None
        # Next one shouldn't call add_one -> value = 3
        self.p1.value = 4
        assert_equal(dummy.value, 3)
        self.p2.value = 10
        assert_equal(dummy.value, 4)
コード例 #3
0
    def test_load_dictionary(self):
        d = self.par.as_dictionary()
        p = Parameter()
        p._id_name = 'newone'
        _id = p._load_dictionary(d)

        nt.assert_equal(_id, id(self.par))
        nt.assert_true(p.name == self.par.name)
        nt.assert_true(p._id_name == self.par._id_name)
        nt.assert_true(p.map['values'][0] == 1)
        nt.assert_true(p.map['std'][0] == 0.1)
        nt.assert_true(p.map['is_set'][0])
        nt.assert_true(p.value == self.par.value)
        nt.assert_true(p.std == self.par.std)
        nt.assert_true(p.free == self.par.free)
        nt.assert_true(p._bounds == self.par._bounds)

        rn = np.random.random()
        nt.assert_equal(p.twin_function(rn), self.par.twin_function(rn))
        nt.assert_equal(
            p.twin_inverse_function(rn),
            self.par.twin_inverse_function(rn))
コード例 #4
0
 def setup_method(self, method):
     self.par = Parameter()
     self.par.name = 'asd'
     self.par._id_name = 'newone'
     self.par.twin_function_expr = "x * x"
     self.par.twin_inverse_function_expr = "x * x + 1"
     self.par._axes_manager = DummyAxesManager()
     self.par._create_array()
     self.par.value = 1
     self.par.std = 0.1
     self.par.store_current_value_in_array()
     self.par.ext_bounded = False
     self.par.ext_force_positive = False
コード例 #5
0
    def test_load_dictionary(self):
        d = self.par.as_dictionary()
        p = Parameter()
        p._id_name = 'newone'
        _id = p._load_dictionary(d)

        assert _id == id(self.par)
        assert p.name == self.par.name
        assert p._id_name == self.par._id_name
        np.testing.assert_equal(p.map['values'][0], 1)
        np.testing.assert_equal(p.map['std'][0], 0.1)
        assert p.map['is_set'][0]
        np.testing.assert_equal(p.value, self.par.value)
        np.testing.assert_equal(p.std, self.par.std)
        np.testing.assert_equal(p.free, self.par.free)
        np.testing.assert_equal(p._bounds, self.par._bounds)

        rn = np.random.random()
        np.testing.assert_equal(
            p.twin_function(rn),
            self.par.twin_function(rn))
        np.testing.assert_equal(
            p.twin_inverse_function(rn),
            self.par.twin_inverse_function(rn))
コード例 #6
0
    def setUp(self):
        self.par = Parameter()
        self.par.name = 'asd'
        self.par._id_name = 'newone'

        def ft(x):
            return x * x

        def fit(x):
            return x * x + 1
        self.par.twin_function = ft
        self.par.twin_inverse_function = fit
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        self.par.ext_bounded = False
        self.par.ext_force_positive = False
コード例 #7
0
ファイル: test_parameter.py プロジェクト: realxnl/hyperspy
class TestParameterLen1:

    def setup_method(self, method):
        self.par = Parameter()

    def test_set_value(self):
        self.par.value = 2
        assert self.par.value == 2

    def test_set_value_wrong_length(self):
        with pytest.raises(ValueError):
            self.par.value = (2, 2)

    def test_set_value_bounded(self):
        self.par.bmin = 1
        self.par.bmax = 3
        self.par.ext_bounded = True
        assert self.par.value == 1
        self.par.value = 1.5
        assert self.par.value == 1.5
        self.par.value = 0.5
        assert self.par.value == 1
        self.par.value = 4
        assert self.par.value == 3
        self.par.bmax = 2
        assert self.par.value == 2
        self.par.value = 1.5
        self.par.bmin = 1.6
        assert self.par.value == 1.6

    def test_ext_force_positive(self):
        self.par.ext_bounded = True
        self.par.ext_force_positive = True
        self.par.value = -1.5
        assert self.par.value == 1.5
        self.par.bmax = 2
        self.par.value = -3
        assert self.par.value == 2

    def test_number_of_elements(self):
        assert len(self.par) == 1

    def test_default_value(self):
        assert self.par.value == 0

    def test_connect_disconnect(self):
        dummy = Dummy()
        self.par.events.value_changed.connect(dummy.add_one, [])
        self.par.value = 1
        assert dummy.value == 2

        # Setting the same value should not call the connected functions
        self.par.value = 1
        assert dummy.value == 2

        # After disconnecting dummy.value should not change
        self.par.events.value_changed.disconnect(dummy.add_one)
        self.par.value = 2
        assert dummy.value == 2

    def test_map_size0(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        assert self.par.map['values'][0] == 1
        assert self.par.map['is_set'][0]
        assert self.par.map['std'][0] == 0.1

    def test_map_size1(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [1, ]
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        assert self.par.map['values'][0] == 1
        assert self.par.map['is_set'][0]
        assert self.par.map['std'][0] == 0.1

    def test_map_size2(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [2, ]
        self.par._axes_manager.indices = (1,)
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        assert self.par.map['values'][1] == 1
        assert self.par.map['is_set'][1]
        assert self.par.map['std'][1] == 0.1
コード例 #8
0
class TestParameterDictionary:
    def setUp(self):
        self.par = Parameter()
        self.par.name = 'asd'
        self.par._id_name = 'newone'

        def ft(x):
            return x * x

        def fit(x):
            return x * x + 1

        self.par.twin_function = ft
        self.par.twin_inverse_function = fit
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        self.par.ext_bounded = False
        self.par.ext_force_positive = False

    def test_to_dictionary(self):
        d = self.par.as_dictionary()

        nt.assert_equal(d['name'], self.par.name)
        nt.assert_equal(d['_id_name'], self.par._id_name)
        np.testing.assert_equal(d['map']['values'][0], 1)
        np.testing.assert_equal(d['map']['std'][0], 0.1)
        nt.assert_true(d['map']['is_set'][0])
        np.testing.assert_equal(d['value'], self.par.value)
        np.testing.assert_equal(d['std'], self.par.std)
        nt.assert_is(d['free'], self.par.free)
        nt.assert_equal(d['self'], id(self.par))
        np.testing.assert_equal(d['_bounds'], self.par._bounds)
        nt.assert_is(d['ext_bounded'], self.par.ext_bounded)
        nt.assert_is(d['ext_force_positive'], self.par.ext_force_positive)

    def test_load_dictionary(self):
        d = self.par.as_dictionary()
        p = Parameter()
        p._id_name = 'newone'
        _id = p._load_dictionary(d)

        nt.assert_equal(_id, id(self.par))
        nt.assert_equal(p.name, self.par.name)
        nt.assert_equal(p._id_name, self.par._id_name)
        np.testing.assert_equal(p.map['values'][0], 1)
        np.testing.assert_equal(p.map['std'][0], 0.1)
        nt.assert_true(p.map['is_set'][0])
        np.testing.assert_equal(p.value, self.par.value)
        np.testing.assert_equal(p.std, self.par.std)
        np.testing.assert_equal(p.free, self.par.free)
        np.testing.assert_equal(p._bounds, self.par._bounds)

        rn = np.random.random()
        np.testing.assert_equal(p.twin_function(rn),
                                self.par.twin_function(rn))
        np.testing.assert_equal(p.twin_inverse_function(rn),
                                self.par.twin_inverse_function(rn))

    @nt.raises(ValueError)
    def test_invalid_name(self):
        d = self.par.as_dictionary()
        d['_id_name'] = 'otherone'
        p = Parameter()
        p._id_name = 'newone'
        _id = p._load_dictionary(d)
コード例 #9
0
ファイル: test_parameter.py プロジェクト: jhemmelg/hyperspy
class TestParameterLen1:

    def setUp(self):
        self.par = Parameter()

    def test_set_value(self):
        self.par.value = 2
        assert_equal(self.par.value, 2)

    @raises(ValueError)
    def test_set_value_wrong_length(self):
        self.par.value = (2, 2)

    def test_set_value_bounded(self):
        self.par.bmin = 1
        self.par.bmax = 3
        self.par.ext_bounded = True
        assert_equal(self.par.value, 1)
        self.par.value = 1.5
        assert_equal(self.par.value, 1.5)
        self.par.value = 0.5
        assert_equal(self.par.value, 1)
        self.par.value = 4
        assert_equal(self.par.value, 3)
        self.par.bmax = 2
        assert_equal(self.par.value, 2)
        self.par.value = 1.5
        self.par.bmin = 1.6
        assert_equal(self.par.value, 1.6)

    def test_ext_force_positive(self):
        self.par.ext_bounded = True
        self.par.ext_force_positive = True
        self.par.value = -1.5
        assert_equal(self.par.value, 1.5)
        self.par.bmax = 2
        self.par.value = -3
        assert_equal(self.par.value, 2)

    def test_number_of_elements(self):
        assert_equal(len(self.par), 1)

    def test_default_value(self):
        assert_equal(self.par.value, 0)

    def test_connect_disconnect(self):
        dummy = Dummy()
        self.par.events.value_changed.connect(dummy.add_one, [])
        self.par.value = 1
        assert_equal(dummy.value, 2)

        # Setting the same value should not call the connected functions
        self.par.value = 1
        assert_equal(dummy.value, 2)

        # After disconnecting dummy.value should not change
        self.par.events.value_changed.disconnect(dummy.add_one)
        self.par.value = 2
        assert_equal(dummy.value, 2)

    def test_map_size0(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        assert_equal(self.par.map['values'][0], 1)
        assert_true(self.par.map['is_set'][0])
        assert_equal(self.par.map['std'][0], 0.1)

    def test_map_size1(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [1, ]
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        assert_equal(self.par.map['values'][0], 1)
        assert_true(self.par.map['is_set'][0])
        assert_equal(self.par.map['std'][0], 0.1)

    def test_map_size2(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [2, ]
        self.par._axes_manager.indices = (1,)
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        assert_equal(self.par.map['values'][1], 1)
        assert_true(self.par.map['is_set'][1])
        assert_equal(self.par.map['std'][1], 0.1)
コード例 #10
0
ファイル: test_parameter.py プロジェクト: jhemmelg/hyperspy
class TestParameterLen2:

    def setUp(self):
        self.par = Parameter()
        self.par._number_of_elements = 2

    def test_set_value(self):
        self.par.value = (2, 2)
        assert_equal(self.par.value, (2, 2))

    @raises(ValueError)
    def test_set_value_wrong_length(self):
        self.par.value = 2

    @raises(ValueError)
    def test_set_value_wrong_length2(self):
        self.par.value = (2, 2, 2)

    def test_set_value_bounded(self):
        self.par.bmin = 1
        self.par.bmax = 3
        self.par.ext_bounded = True
        self.par.value = (1.5, 1.5)
        assert_equal(self.par.value, (1.5, 1.5))
        self.par.value = (0.5, 0.5)
        assert_equal(self.par.value, (1, 1))
        self.par.value = (4, 4)
        assert_equal(self.par.value, (3, 3))

    def test_ext_force_positive(self):
        self.par.ext_bounded = True
        self.par.ext_force_positive = True
        self.par.value = (2, -1.5)
        assert_equal(self.par.value, (2, 1.5))

    def test_number_of_elements(self):
        assert_equal(len(self.par), 2)

    def test_default_value(self):
        assert_equal(self.par.value, (0, 0))

    def test_connect_disconnect(self):
        dummy = Dummy()
        self.par.events.value_changed.connect(dummy.add_one, [])
        self.par.value = (1, 1)
        assert_equal(dummy.value, 2)

        # Setting the same value should not call the connected functions
        self.par.value = (1, 1)
        assert_equal(dummy.value, 2)

        # After disconnecting dummy.value should not change
        self.par.events.value_changed.disconnect(dummy.add_one)
        self.par.value = (2, 2)
        assert_equal(dummy.value, 2)

    def test_map_size0(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = (1, 1)
        self.par.std = (0.1, 0.1)
        self.par.store_current_value_in_array()
        assert_equal(tuple(self.par.map['values'][0]), (1, 1))
        assert_true(self.par.map['is_set'][0])
        assert_equal(tuple(self.par.map['std'][0]), (0.1, 0.1))

    def test_map_size1(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [1, ]
        self.par._create_array()
        self.par.value = (1, 1)
        self.par.std = (0.1, 0.1)
        self.par.store_current_value_in_array()
        assert_equal(tuple(self.par.map['values'][0]), (1, 1))
        assert_true(self.par.map['is_set'][0])
        assert_equal(tuple(self.par.map['std'][0]), (0.1, 0.1))

    def test_map_size2(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [2, ]
        self.par._axes_manager.indices = (1,)
        self.par._create_array()
        self.par.value = (1, 1)
        self.par.std = (0.1, 0.1)
        self.par.store_current_value_in_array()
        assert_equal(tuple(self.par.map['values'][1]), (1, 1))
        assert_true(self.par.map['is_set'][1])
        assert_equal(tuple(self.par.map['std'][1]), (0.1, 0.1))

    def test_is_tuple(self):
        self.par.value = np.array((1, 2))
        assert_true(isinstance(self.par.value, tuple))
        self.par.value = [1, 2]
        assert_true(isinstance(self.par.value, tuple))
コード例 #11
0
class TestParameterDictionary:

    def setUp(self):
        self.par = Parameter()
        self.par.name = 'asd'
        self.par._id_name = 'newone'

        def ft(x):
            return x * x

        def fit(x):
            return x * x + 1
        self.par.twin_function = ft
        self.par.twin_inverse_function = fit
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        self.par.ext_bounded = False
        self.par.ext_force_positive = False

    def test_to_dictionary(self):
        d = self.par.as_dictionary()

        nt.assert_equal(d['name'], self.par.name)
        nt.assert_equal(d['_id_name'], self.par._id_name)
        np.testing.assert_equal(d['map']['values'][0], 1)
        np.testing.assert_equal(d['map']['std'][0], 0.1)
        nt.assert_true(d['map']['is_set'][0])
        np.testing.assert_equal(d['value'], self.par.value)
        np.testing.assert_equal(d['std'], self.par.std)
        nt.assert_is(d['free'], self.par.free)
        nt.assert_equal(d['self'], id(self.par))
        np.testing.assert_equal(d['_bounds'], self.par._bounds)
        nt.assert_is(d['ext_bounded'], self.par.ext_bounded)
        nt.assert_is(
            d['ext_force_positive'], self.par.ext_force_positive)

    def test_load_dictionary(self):
        d = self.par.as_dictionary()
        p = Parameter()
        p._id_name = 'newone'
        _id = p._load_dictionary(d)

        nt.assert_equal(_id, id(self.par))
        nt.assert_equal(p.name, self.par.name)
        nt.assert_equal(p._id_name, self.par._id_name)
        np.testing.assert_equal(p.map['values'][0], 1)
        np.testing.assert_equal(p.map['std'][0], 0.1)
        nt.assert_true(p.map['is_set'][0])
        np.testing.assert_equal(p.value, self.par.value)
        np.testing.assert_equal(p.std, self.par.std)
        np.testing.assert_equal(p.free, self.par.free)
        np.testing.assert_equal(p._bounds, self.par._bounds)

        rn = np.random.random()
        np.testing.assert_equal(
            p.twin_function(rn),
            self.par.twin_function(rn))
        np.testing.assert_equal(
            p.twin_inverse_function(rn),
            self.par.twin_inverse_function(rn))

    @nt.raises(ValueError)
    def test_invalid_name(self):
        d = self.par.as_dictionary()
        d['_id_name'] = 'otherone'
        p = Parameter()
        p._id_name = 'newone'
        _id = p._load_dictionary(d)
コード例 #12
0
ファイル: test_parameter.py プロジェクト: lu-chi/hyperspy
 def setUp(self):
     self.p1 = Parameter()
     self.p2 = Parameter()
コード例 #13
0
ファイル: test_parameter.py プロジェクト: lu-chi/hyperspy
 def setUp(self):
     self.par = Parameter()
     self.par._number_of_elements = 2
コード例 #14
0
class TestParameterDictionary:

    def setup_method(self, method):
        self.par = Parameter()
        self.par.name = 'asd'
        self.par._id_name = 'newone'
        self.par.twin_function_expr = "x * x"
        self.par.twin_inverse_function_expr = "x * x + 1"
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        self.par.ext_bounded = False
        self.par.ext_force_positive = False

    def test_to_dictionary(self):
        d = self.par.as_dictionary()

        assert d['name'] == self.par.name
        assert d['_id_name'] == self.par._id_name
        np.testing.assert_equal(d['map']['values'][0], 1)
        np.testing.assert_equal(d['map']['std'][0], 0.1)
        assert d['map']['is_set'][0]
        np.testing.assert_equal(d['value'], self.par.value)
        np.testing.assert_equal(d['std'], self.par.std)
        assert d['free'] is self.par.free
        assert d['self'] == id(self.par)
        np.testing.assert_equal(d['_bounds'], self.par._bounds)
        assert d['ext_bounded'] is self.par.ext_bounded
        assert (
            d['ext_force_positive'] is self.par.ext_force_positive)

    def test_load_dictionary(self):
        d = self.par.as_dictionary()
        p = Parameter()
        p._id_name = 'newone'
        _id = p._load_dictionary(d)

        assert _id == id(self.par)
        assert p.name == self.par.name
        assert p._id_name == self.par._id_name
        np.testing.assert_equal(p.map['values'][0], 1)
        np.testing.assert_equal(p.map['std'][0], 0.1)
        assert p.map['is_set'][0]
        np.testing.assert_equal(p.value, self.par.value)
        np.testing.assert_equal(p.std, self.par.std)
        np.testing.assert_equal(p.free, self.par.free)
        np.testing.assert_equal(p._bounds, self.par._bounds)

        rn = np.random.random()
        np.testing.assert_equal(
            p.twin_function(rn),
            self.par.twin_function(rn))
        np.testing.assert_equal(
            p.twin_inverse_function(rn),
            self.par.twin_inverse_function(rn))

    def test_invalid_name(self):
        d = self.par.as_dictionary()
        d['_id_name'] = 'otherone'
        p = Parameter()
        p._id_name = 'newone'
        with pytest.raises(ValueError):
            _id = p._load_dictionary(d)
コード例 #15
0
ファイル: test_parameter.py プロジェクト: realxnl/hyperspy
 def setup_method(self, method):
     self.par = Parameter()
コード例 #16
0
ファイル: test_parameter.py プロジェクト: temcode/hyperspy
class TestParameterLen2:

    def setUp(self):
        self.par = Parameter()
        self.par._number_of_elements = 2

    def test_set_value(self):
        self.par.value = (2, 2)
        assert_equal(self.par.value, (2, 2))

    @raises(ValueError)
    def test_set_value_wrong_length(self):
        self.par.value = 2

    @raises(ValueError)
    def test_set_value_wrong_length2(self):
        self.par.value = (2, 2, 2)

    def test_set_value_bounded(self):
        self.par.bmin = 1
        self.par.bmax = 3
        self.par.ext_bounded = True
        self.par.value = (1.5, 1.5)
        assert_equal(self.par.value, (1.5, 1.5))
        self.par.value = (0.5, 0.5)
        assert_equal(self.par.value, (1, 1))
        self.par.value = (4, 4)
        assert_equal(self.par.value, (3, 3))

    def test_ext_force_positive(self):
        self.par.ext_bounded = True
        self.par.ext_force_positive = True
        self.par.value = (2, -1.5)
        assert_equal(self.par.value, (2, 1.5))

    def test_number_of_elements(self):
        assert_equal(len(self.par), 2)

    def test_default_value(self):
        assert_equal(self.par.value, (0, 0))

    def test_connect_disconnect(self):
        dummy = Dummy()
        self.par.events.value_changed.connect(dummy.add_one, [])
        self.par.value = (1, 1)
        assert_equal(dummy.value, 2)

        # Setting the same value should not call the connected functions
        self.par.value = (1, 1)
        assert_equal(dummy.value, 2)

        # After disconnecting dummy.value should not change
        self.par.events.value_changed.disconnect(dummy.add_one)
        self.par.value = (2, 2)
        assert_equal(dummy.value, 2)

    def test_map_size0(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = (1, 1)
        self.par.std = (0.1, 0.1)
        self.par.store_current_value_in_array()
        assert_equal(tuple(self.par.map['values'][0]), (1, 1))
        assert_true(self.par.map['is_set'][0])
        assert_equal(tuple(self.par.map['std'][0]), (0.1, 0.1))

    def test_map_size1(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [1, ]
        self.par._create_array()
        self.par.value = (1, 1)
        self.par.std = (0.1, 0.1)
        self.par.store_current_value_in_array()
        assert_equal(tuple(self.par.map['values'][0]), (1, 1))
        assert_true(self.par.map['is_set'][0])
        assert_equal(tuple(self.par.map['std'][0]), (0.1, 0.1))

    def test_map_size2(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [2, ]
        self.par._axes_manager.indices = (1,)
        self.par._create_array()
        self.par.value = (1, 1)
        self.par.std = (0.1, 0.1)
        self.par.store_current_value_in_array()
        assert_equal(tuple(self.par.map['values'][1]), (1, 1))
        assert_true(self.par.map['is_set'][1])
        assert_equal(tuple(self.par.map['std'][1]), (0.1, 0.1))

    def test_is_tuple(self):
        self.par.value = np.array((1, 2))
        assert_true(isinstance(self.par.value, tuple))
        self.par.value = [1, 2]
        assert_true(isinstance(self.par.value, tuple))
コード例 #17
0
ファイル: test_parameter.py プロジェクト: lu-chi/hyperspy
class TestParameterLen1:
    def setUp(self):
        self.par = Parameter()

    def test_set_value(self):
        self.par.value = 2
        assert_equal(self.par.value, 2)

    @raises(ValueError)
    def test_set_value_wrong_length(self):
        self.par.value = (2, 2)

    def test_set_value_bounded(self):
        self.par.bmin = 1
        self.par.bmax = 3
        self.par.ext_bounded = True
        assert_equal(self.par.value, 1)
        self.par.value = 1.5
        assert_equal(self.par.value, 1.5)
        self.par.value = 0.5
        assert_equal(self.par.value, 1)
        self.par.value = 4
        assert_equal(self.par.value, 3)
        self.par.bmax = 2
        assert_equal(self.par.value, 2)
        self.par.value = 1.5
        self.par.bmin = 1.6
        assert_equal(self.par.value, 1.6)

    def test_ext_force_positive(self):
        self.par.ext_bounded = True
        self.par.ext_force_positive = True
        self.par.value = -1.5
        assert_equal(self.par.value, 1.5)
        self.par.bmax = 2
        self.par.value = -3
        assert_equal(self.par.value, 2)

    def test_number_of_elements(self):
        assert_equal(len(self.par), 1)

    def test_default_value(self):
        assert_equal(self.par.value, 0)

    def test_connect_disconnect(self):
        dummy = Dummy()
        self.par.connect(dummy.add_one)
        self.par.value = 1
        assert_equal(dummy.value, 2)

        # Setting the same value should not call the connected functions
        self.par.value = 1
        assert_equal(dummy.value, 2)

        # After disconnecting dummy.value should not change
        self.par.disconnect(dummy.add_one)
        self.par.value = 2
        assert_equal(dummy.value, 2)

    def test_map_size0(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        assert_equal(self.par.map['values'][0], 1)
        assert_true(self.par.map['is_set'][0])
        assert_equal(self.par.map['std'][0], 0.1)

    def test_map_size1(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [
            1,
        ]
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        assert_equal(self.par.map['values'][0], 1)
        assert_true(self.par.map['is_set'][0])
        assert_equal(self.par.map['std'][0], 0.1)

    def test_map_size2(self):
        self.par._axes_manager = DummyAxesManager()
        self.par._axes_manager.navigation_shape = [
            2,
        ]
        self.par._axes_manager.indices = (1, )
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        assert_equal(self.par.map['values'][1], 1)
        assert_true(self.par.map['is_set'][1])
        assert_equal(self.par.map['std'][1], 0.1)
コード例 #18
0
ファイル: test_parameter.py プロジェクト: gdonval/hyperspy
 def setUp(self):
     self.p1 = Parameter()
     self.p2 = Parameter()
コード例 #19
0
ファイル: test_parameter.py プロジェクト: lu-chi/hyperspy
 def setUp(self):
     self.par = Parameter()
コード例 #20
0
 def test_invalid_name(self):
     d = self.par.as_dictionary()
     d['_id_name'] = 'otherone'
     p = Parameter()
     p._id_name = 'newone'
     _id = p._load_dictionary(d)
コード例 #21
0
class TestParameterDictionary:
    def setup_method(self, method):
        self.par = Parameter()
        self.par.name = 'asd'
        self.par._id_name = 'newone'
        self.par.twin_function_expr = "x * x"
        self.par.twin_inverse_function_expr = "x * x + 1"
        self.par._axes_manager = DummyAxesManager()
        self.par._create_array()
        self.par.value = 1
        self.par.std = 0.1
        self.par.store_current_value_in_array()
        self.par.ext_bounded = False
        self.par.ext_force_positive = False

    def test_to_dictionary(self):
        d = self.par.as_dictionary()

        assert d['name'] == self.par.name
        assert d['_id_name'] == self.par._id_name
        np.testing.assert_equal(d['map']['values'][0], 1)
        np.testing.assert_equal(d['map']['std'][0], 0.1)
        assert d['map']['is_set'][0]
        np.testing.assert_equal(d['value'], self.par.value)
        np.testing.assert_equal(d['std'], self.par.std)
        assert d['free'] is self.par.free
        assert d['self'] == id(self.par)
        np.testing.assert_equal(d['_bounds'], self.par._bounds)
        assert d['ext_bounded'] is self.par.ext_bounded
        assert (d['ext_force_positive'] is self.par.ext_force_positive)

    def test_load_dictionary(self):
        d = self.par.as_dictionary()
        p = Parameter()
        p._id_name = 'newone'
        _id = p._load_dictionary(d)

        assert _id == id(self.par)
        assert p.name == self.par.name
        assert p._id_name == self.par._id_name
        np.testing.assert_equal(p.map['values'][0], 1)
        np.testing.assert_equal(p.map['std'][0], 0.1)
        assert p.map['is_set'][0]
        np.testing.assert_equal(p.value, self.par.value)
        np.testing.assert_equal(p.std, self.par.std)
        np.testing.assert_equal(p.free, self.par.free)
        np.testing.assert_equal(p._bounds, self.par._bounds)

        rn = np.random.random()
        np.testing.assert_equal(p.twin_function(rn),
                                self.par.twin_function(rn))
        np.testing.assert_equal(p.twin_inverse_function(rn),
                                self.par.twin_inverse_function(rn))

    def test_invalid_name(self):
        d = self.par.as_dictionary()
        d['_id_name'] = 'otherone'
        p = Parameter()
        p._id_name = 'newone'
        with pytest.raises(ValueError):
            _id = p._load_dictionary(d)
コード例 #22
0
ファイル: test_parameter.py プロジェクト: realxnl/hyperspy
 def setup_method(self, method):
     self.par = Parameter()
     self.par._number_of_elements = 2
コード例 #23
0
ファイル: test_parameter.py プロジェクト: realxnl/hyperspy
 def setup_method(self, method):
     self.p1 = Parameter()
     self.p2 = Parameter()
コード例 #24
0
ファイル: test_parameter.py プロジェクト: jhemmelg/hyperspy
 def setUp(self):
     self.par = Parameter()
     self.par._number_of_elements = 2
コード例 #25
0
ファイル: test_parameter.py プロジェクト: realxnl/hyperspy
 def setup_method(self, method):
     self.par = Parameter()
     self.par._axes_manager = mock.MagicMock()
     self.par.map = np.array(
         [(a, b, c) for a, b, c in zip([1, 3, 5], [2, 4, 6], [0, 0, 0])],
         dtype=[('values', 'float'), ('std', 'float'), ('is_set', bool)])
コード例 #26
0
ファイル: test_parameter.py プロジェクト: jhemmelg/hyperspy
 def setUp(self):
     self.par = Parameter()
コード例 #27
0
 def test_invalid_name(self):
     d = self.par.as_dictionary()
     d['_id_name'] = 'otherone'
     p = Parameter()
     p._id_name = 'newone'
     _id = p._load_dictionary(d)