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)
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
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)'))
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)