Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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_length(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.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.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))
Beispiel #5
0
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)
Beispiel #6
0
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.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.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))