示例#1
0
    def var(self, name, desc=None, default=None):
        """ Creates a variable for use within the model.

            Arguments:
                name: The name of the variable.  This is the symbol
                    used in the equations.
                desc: A longer description of the variable.
                default: The default value of the variable, if the
                    value is not set.

            Returns: a Variable

            Raises:
                DuplicateNameError:
        """
        if default is None:
            default = self._var_default
        if name in self.variables or name in self.parameters:
            raise DuplicateNameError('Name already in use: ' + name)
        var = Variable(name, desc=desc, default=default)
        self.variables[name] = var
        var.model = self

        _add_var_to_context(self._local_context, var)
        self._need_function_update = True
        return var
示例#2
0
文件: model.py 项目: lowks/pylinsolve
    def var(self, name, desc=None, default=None):
        """ Creates a variable for use within the model.

            Arguments:
                name: The name of the variable.  This is the symbol
                    used in the equations.
                desc: A longer description of the variable.
                default: The default value of the variable, if the
                    value is not set.

            Returns: a Variable

            Raises:
                DuplicateNameError:
        """
        if default is None:
            default = self._var_default
        if name in self.variables or name in self.parameters:
            raise DuplicateNameError('Name already in use: ' + name)
        var = Variable(name, desc=desc, default=default)
        self.variables[name] = var
        var.model = self

        _add_var_to_context(self._local_context, var)
        self._need_function_update = True
        return var
示例#3
0
    def test_seriesparameter_access(self):
        """ Test get/set access of value attribute """
        model = TestSeriesParameter.MockModel()

        varx = Variable('x', default=-1)
        varx.model = model

        param = SeriesParameter('a', variable=varx, iteration=-1)
        self.assertEquals(-1, param.value)
        self.assertEquals(model.last_variable, varx)
        self.assertEquals(model.last_iteration, -1)

        param = SeriesParameter('a', variable=varx, iteration=2)
        self.assertEquals(2, param.value)
        self.assertEquals(model.last_variable, varx)
        self.assertEquals(model.last_iteration, 2)

        with self.assertRaises(AttributeError):
            param.value = 4