예제 #1
0
    def setUp(self):
        # pylint: disable=invalid-name

        self.model = TestEquation.MockModel()
        self.model.variables['x'] = Variable('x')
        self.model.variables['y'] = Variable('y')
        self.model.variables['z'] = Variable('z')
        self.x = self.model.variables['x']
        self.x.model = self.model
        self.y = self.model.variables['y']
        self.y.model = self.model
        self.z = self.model.variables['z']
        self.z.model = self.model

        self.model.parameters['a'] = Parameter('a')
        self.model.parameters['b'] = Parameter('b')
        self.a = self.model.parameters['a']
        self.a.model = self.model
        self.b = self.model.parameters['b']
        self.b.model = self.model

        for var in self.model.variables.values():
            _add_var_to_context(self.model._local_context, var)
        for param in self.model.parameters.values():
            _add_param_to_context(self.model._local_context, param)
        _add_functions(self.model._local_context)
예제 #2
0
    def param(self, name, desc=None, default=None):
        """ Creates a parameter for use within the model.

            Returns: a Parameter
        """
        if default is None:
            default = self._param_default
        if name in self.variables or name in self.parameters:
            raise DuplicateNameError('Name already in use: ' + name)
        param = Parameter(name, desc=desc, default=default)
        param.model = self
        self.parameters[name] = param
        _add_param_to_context(self._local_context, param)
        self._need_function_update = True
        return param
예제 #3
0
파일: model.py 프로젝트: lowks/pylinsolve
    def param(self, name, desc=None, default=None):
        """ Creates a parameter for use within the model.

            Returns: a Parameter
        """
        if default is None:
            default = self._param_default
        if name in self.variables or name in self.parameters:
            raise DuplicateNameError('Name already in use: ' + name)
        param = Parameter(name, desc=desc, default=default)
        param.model = self
        self.parameters[name] = param
        _add_param_to_context(self._local_context, param)
        self._need_function_update = True
        return param
예제 #4
0
    def test_equation_rewrite(self):
        """ Test the equation rewriting function """
        variables = dict()
        variables['x'] = Variable('x')
        variables['y'] = Variable('y')
        self.assertEquals('x - y', _rewrite(variables, {}, 'x - y'))
        self.assertEquals('xx - y', _rewrite(variables, {}, 'xx - y'))
        self.assertEquals('xx - yx', _rewrite(variables, {}, 'xx - yx'))
        self.assertEquals('xx(0) - yx', _rewrite(variables, {}, 'xx(0) - yx'))
        self.assertEquals('_series_acc(x,-1)',
                          _rewrite(variables, {}, 'x(-1)'))
        self.assertEquals('_series_acc(x,-t)',
                          _rewrite(variables, {}, 'x(-t)'))

        parameters = dict()
        parameters['a'] = Parameter('a')
        parameters['b'] = Parameter('b')
        self.assertEquals('_series_acc(a,-1)', _rewrite({}, parameters,
                                                        'a(-1)'))
예제 #5
0
 def test_parameter_access(self):
     """ Test access to get/set of value attribute """
     param = Parameter('a')
     param.value = 1.2
     self.assertEquals(1.2, param.value)