Пример #1
0
class TestComponentDictionary:

    def setup_method(self, method):
        self.parameter_names = ['par1', 'par2']
        self.comp = Component(self.parameter_names)
        self.comp.name = 'newname!'
        self.comp._id_name = 'dummy names yay!'
        self.comp._axes_manager = DummyAxesManager()
        self.comp._create_arrays()
        self.comp.par1.value = 2.
        self.comp.par2.value = 5.
        self.comp.par1.std = 0.2
        self.comp.par2.std = 0.5
        self.comp.store_current_parameters_in_map()

    def test_to_dictionary(self):
        d = self.comp.as_dictionary()
        c = self.comp

        assert c.name == d['name']
        assert c._id_name == d['_id_name']
        assert not d['active_is_multidimensional']
        assert d['active']
        assert d['_active_array'] is None
        for ip, p in enumerate(c.parameters):
            assert p.as_dictionary() == d['parameters'][ip]

        c.active_is_multidimensional = True
        d1 = c.as_dictionary()
        assert d1['active_is_multidimensional']
        np.testing.assert_array_equal(d1['_active_array'], c._active_array)

    def test_load_dictionary(self):
        c = self.comp
        c.par1.twin_function_expr = "x + 2"
        c.par2.twin_function_expr = "x - 2"
        d = c.as_dictionary(True)
        n = Component(self.parameter_names)

        n._id_name = 'dummy names yay!'
        _ = n._load_dictionary(d)
        assert c.name == n.name
        assert c.active == n.active
        assert (
            c.active_is_multidimensional ==
            n.active_is_multidimensional)

        for pn, pc in zip(n.parameters, c.parameters):
            rn = np.random.random()
            assert pn.twin_function(rn) == pc.twin_function(rn)
            assert (
                pn.twin_inverse_function(rn) ==
                pc.twin_inverse_function(rn))
            dn = pn.as_dictionary()
            del dn['self']
            dc = pc.as_dictionary()
            del dc['self']
            print(list(dn.keys()))
            print(list(dc.keys()))
            assert dn == dc

    def test_invalid_component_name(self):
        c = self.comp
        d = c.as_dictionary()
        n = Component(self.parameter_names)
        with pytest.raises(ValueError):
            _ = n._load_dictionary(d)

    def test_invalid_parameter_name(self):
        c = self.comp
        d = c.as_dictionary()
        n = Component([a + 's' for a in self.parameter_names])
        n._id_name = 'dummy names yay!'
        with pytest.raises(ValueError):
            _ = n._load_dictionary(d)
Пример #2
0
class TestComponentDictionary:

    def setUp(self):
        self.parameter_names = ['par1', 'par2']
        self.comp = Component(self.parameter_names)
        self.comp.name = 'newname!'
        self.comp._id_name = 'dummy names yay!'
        self.comp._axes_manager = DummyAxesManager()
        self.comp._create_arrays()
        self.comp.par1.value = 2.
        self.comp.par2.value = 5.
        self.comp.par1.std = 0.2
        self.comp.par2.std = 0.5
        self.comp.store_current_parameters_in_map()

    def test_to_dictionary(self):
        d = self.comp.as_dictionary()
        c = self.comp

        nt.assert_equal(c.name, d['name'])
        nt.assert_equal(c._id_name, d['_id_name'])
        nt.assert_false(d['active_is_multidimensional'])
        nt.assert_true(d['active'])
        nt.assert_is_none(d['_active_array'])
        for ip, p in enumerate(c.parameters):
            nt.assert_equal(p.as_dictionary(), d['parameters'][ip])

        c.active_is_multidimensional = True
        d1 = c.as_dictionary()
        nt.assert_true(d1['active_is_multidimensional'])
        nt.assert_true(np.all(d1['_active_array'] == c._active_array))

    def test_load_dictionary(self):
        c = self.comp
        d = c.as_dictionary(True)
        n = Component(self.parameter_names)

        n._id_name = 'dummy names yay!'
        _ = n._load_dictionary(d)
        nt.assert_equal(c.name, n.name)
        nt.assert_equal(c.active, n.active)
        nt.assert_equal(
            c.active_is_multidimensional,
            n.active_is_multidimensional)

        for pn, pc in zip(n.parameters, c.parameters):
            rn = np.random.random()
            nt.assert_equal(pn.twin_function(rn), pc.twin_function(rn))
            nt.assert_equal(
                pn.twin_inverse_function(rn),
                pc.twin_inverse_function(rn))
            dn = pn.as_dictionary()
            del dn['self']
            del dn['twin_function']
            del dn['twin_inverse_function']
            dc = pc.as_dictionary()
            del dc['self']
            del dc['twin_function']
            del dc['twin_inverse_function']
            print dn.keys()
            print dc.keys()
            nt.assert_dict_equal(dn, dc)

    @nt.raises(ValueError)
    def test_invalid_component_name(self):
        c = self.comp
        d = c.as_dictionary()
        n = Component(self.parameter_names)
        id_dict = n._load_dictionary(d)

    @nt.raises(ValueError)
    def test_invalid_parameter_name(self):
        c = self.comp
        d = c.as_dictionary()
        n = Component([a + 's' for a in self.parameter_names])
        n._id_name = 'dummy names yay!'
        id_dict = n._load_dictionary(d)
Пример #3
0
class TestComponentDictionary:

    def setUp(self):
        self.parameter_names = ['par1', 'par2']
        self.comp = Component(self.parameter_names)
        self.comp.name = 'newname!'
        self.comp._id_name = 'dummy names yay!'
        self.comp._axes_manager = DummyAxesManager()
        self.comp._create_arrays()
        self.comp.par1.value = 2.
        self.comp.par2.value = 5.
        self.comp.par1.std = 0.2
        self.comp.par2.std = 0.5
        self.comp.store_current_parameters_in_map()

    def test_to_dictionary(self):
        d = self.comp.as_dictionary()
        c = self.comp

        nt.assert_equal(c.name, d['name'])
        nt.assert_equal(c._id_name, d['_id_name'])
        nt.assert_false(d['active_is_multidimensional'])
        nt.assert_true(d['active'])
        nt.assert_is_none(d['_active_array'])
        for ip, p in enumerate(c.parameters):
            nt.assert_equal(p.as_dictionary(), d['parameters'][ip])

        c.active_is_multidimensional = True
        d1 = c.as_dictionary()
        nt.assert_true(d1['active_is_multidimensional'])
        np.testing.assert_array_equal(d1['_active_array'], c._active_array)

    def test_load_dictionary(self):
        c = self.comp
        d = c.as_dictionary(True)
        n = Component(self.parameter_names)

        n._id_name = 'dummy names yay!'
        _ = n._load_dictionary(d)
        nt.assert_equal(c.name, n.name)
        nt.assert_equal(c.active, n.active)
        nt.assert_equal(
            c.active_is_multidimensional,
            n.active_is_multidimensional)

        for pn, pc in zip(n.parameters, c.parameters):
            rn = np.random.random()
            nt.assert_equal(pn.twin_function(rn), pc.twin_function(rn))
            nt.assert_equal(
                pn.twin_inverse_function(rn),
                pc.twin_inverse_function(rn))
            dn = pn.as_dictionary()
            del dn['self']
            del dn['twin_function']
            del dn['twin_inverse_function']
            dc = pc.as_dictionary()
            del dc['self']
            del dc['twin_function']
            del dc['twin_inverse_function']
            print(list(dn.keys()))
            print(list(dc.keys()))
            nt.assert_dict_equal(dn, dc)

    @nt.raises(ValueError)
    def test_invalid_component_name(self):
        c = self.comp
        d = c.as_dictionary()
        n = Component(self.parameter_names)
        id_dict = n._load_dictionary(d)

    @nt.raises(ValueError)
    def test_invalid_parameter_name(self):
        c = self.comp
        d = c.as_dictionary()
        n = Component([a + 's' for a in self.parameter_names])
        n._id_name = 'dummy names yay!'
        id_dict = n._load_dictionary(d)
Пример #4
0
class TestComponentDictionary:

    def setup_method(self, method):
        self.parameter_names = ['par1', 'par2']
        self.comp = Component(self.parameter_names)
        self.comp.name = 'newname!'
        self.comp._id_name = 'dummy names yay!'
        self.comp._axes_manager = DummyAxesManager()
        self.comp._create_arrays()
        self.comp.par1.value = 2.
        self.comp.par2.value = 5.
        self.comp.par1.std = 0.2
        self.comp.par2.std = 0.5
        self.comp.store_current_parameters_in_map()

    def test_to_dictionary(self):
        d = self.comp.as_dictionary()
        c = self.comp

        assert c.name == d['name']
        assert c._id_name == d['_id_name']
        assert not d['active_is_multidimensional']
        assert d['active']
        assert d['_active_array'] is None
        for ip, p in enumerate(c.parameters):
            assert p.as_dictionary() == d['parameters'][ip]

        c.active_is_multidimensional = True
        d1 = c.as_dictionary()
        assert d1['active_is_multidimensional']
        np.testing.assert_array_equal(d1['_active_array'], c._active_array)

    def test_load_dictionary(self):
        c = self.comp
        c.par1.twin_function_expr = "x + 2"
        c.par2.twin_function_expr = "x - 2"
        d = c.as_dictionary(True)
        n = Component(self.parameter_names)

        n._id_name = 'dummy names yay!'
        _ = n._load_dictionary(d)
        assert c.name == n.name
        assert c.active == n.active
        assert (
            c.active_is_multidimensional ==
            n.active_is_multidimensional)

        for pn, pc in zip(n.parameters, c.parameters):
            rn = np.random.random()
            assert pn.twin_function(rn) == pc.twin_function(rn)
            assert (
                pn.twin_inverse_function(rn) ==
                pc.twin_inverse_function(rn))
            dn = pn.as_dictionary()
            del dn['self']
            dc = pc.as_dictionary()
            del dc['self']
            print(list(dn.keys()))
            print(list(dc.keys()))
            assert dn == dc

    def test_invalid_component_name(self):
        c = self.comp
        d = c.as_dictionary()
        n = Component(self.parameter_names)
        with pytest.raises(ValueError):
            id_dict = n._load_dictionary(d)

    def test_invalid_parameter_name(self):
        c = self.comp
        d = c.as_dictionary()
        n = Component([a + 's' for a in self.parameter_names])
        n._id_name = 'dummy names yay!'
        with pytest.raises(ValueError):
            id_dict = n._load_dictionary(d)