def test_init(self):
        v = variable()
        self.assertTrue(v.parent is None)
        self.assertEqual(v.ctype, Var)
        self.assertEqual(v.domain_type, RealSet)
        self.assertEqual(v.lb, None)
        self.assertEqual(v.ub, None)
        self.assertEqual(v.fixed, False)
        self.assertEqual(v.value, None)
        self.assertEqual(v.stale, True)
        b = block()
        b.v = v
        self.assertTrue(v.parent is b)
        del b.v
        self.assertTrue(v.parent is None)

        v = variable(domain_type=IntegerSet, value=1, lb=0, ub=2, fixed=True)
        self.assertTrue(v.parent is None)
        self.assertEqual(v.ctype, Var)
        self.assertEqual(v.domain_type, IntegerSet)
        self.assertEqual(v.lb, 0)
        self.assertEqual(v.ub, 2)
        self.assertEqual(v.fixed, True)
        self.assertEqual(v.value, 1)
        self.assertEqual(v.stale, True)
Exemple #2
0
    def test_pickle(self):
        v = variable()
        e = noclone(v)
        self.assertEqual(type(e), noclone)
        self.assertIs(type(e.expr), variable)
        eup = pickle.loads(pickle.dumps(e))
        self.assertEqual(type(eup), noclone)
        self.assertTrue(e is not eup)
        self.assertIs(type(eup.expr), variable)
        self.assertIs(type(e.expr), variable)
        self.assertTrue(eup.expr is not e.expr)

        del e
        del v

        v = variable(value=1)
        b = block()
        b.v = v
        eraw = b.v + 1
        b.e = 1 + noclone(eraw)
        bup = pickle.loads(pickle.dumps(b))
        self.assertTrue(isinstance(bup.e, NumericValue))
        self.assertEqual(value(bup.e), 3.0)
        b.v.value = 2
        self.assertEqual(value(b.e), 4.0)
        self.assertEqual(value(bup.e), 3.0)
        bup.v.value = -1
        self.assertEqual(value(b.e), 4.0)
        self.assertEqual(value(bup.e), 1.0)

        self.assertIs(b.v.parent, b)
        self.assertIs(bup.v.parent, bup)

        del b.v
    def test_bad_repn(self):
        repn = list(transforms.registered_transforms.keys())[0]
        self.assertTrue(repn in transforms.registered_transforms)
        transforms.piecewise([1,2,3],
                             [1,2,1],
                             validate=False,
                             repn=repn)

        repn = '_bad_repn_'
        self.assertFalse(repn in transforms.registered_transforms)
        with self.assertRaises(ValueError):
            transforms.piecewise([1,2,3],
                                 [1,2,1],
                                 validate=False,
                                 repn=repn)
        with self.assertRaises(ValueError):
            transforms.piecewise([1,2,3],
                                 [1,2,1],
                                 input=variable(lb=1,ub=3),
                                 validate=True,
                                 simplify=False,
                                 repn=repn)
        with self.assertRaises(ValueError):
            transforms.piecewise([1,2,3],
                                 [1,2,1],
                                 input=variable(lb=1,ub=3),
                                 validate=True,
                                 simplify=True,
                                 repn=repn)
    def test_init(self):
        s = sos([])
        self.assertTrue(s.parent is None)
        self.assertEqual(s.ctype, SOSConstraint)
        self.assertEqual(len(s), 0)
        self.assertEqual(s.variables, ())
        self.assertEqual(s.weights, ())
        self.assertEqual(s.level, 1)

        vlist = tuple([variable(), variable()])
        s = sos(vlist)
        self.assertTrue(s.parent is None)
        self.assertEqual(s.ctype, SOSConstraint)
        self.assertEqual(len(s), 2)
        self.assertEqual(len(s.variables), 2)
        for v in vlist:
            self.assertTrue(v in s)
        self.assertEqual(s.weights, tuple([1, 2]))
        self.assertEqual(s.level, 1)

        vlist = tuple([variable(), variable()])
        s = sos(vlist, weights=[3.5, 4.5], level=2)
        self.assertTrue(s.parent is None)
        self.assertEqual(s.ctype, SOSConstraint)
        self.assertEqual(len(s), 2)
        self.assertEqual(len(s.variables), 2)
        for v in vlist:
            self.assertTrue(v in s)
        self.assertEqual(s.weights, tuple([3.5, 4.5]))
        self.assertEqual(s.level, 2)
        for i, (v, w) in enumerate(s.items()):
            self.assertIs(v, vlist[i])
            self.assertEqual(w, s.weights[i])
    def test_generate_delaunay(self):
        vlist = variable_list()
        vlist.append(variable(lb=0, ub=1))
        vlist.append(variable(lb=1, ub=2))
        vlist.append(variable(lb=2, ub=3))
        if not (util.numpy_available and util.scipy_available):
            with self.assertRaises(ImportError):
                util.generate_delaunay(vlist)
        else:
            tri = util.generate_delaunay(vlist, num=2)
            self.assertTrue(
                isinstance(tri, util.scipy.spatial.Delaunay))
            self.assertEqual(len(tri.simplices), 6)
            self.assertEqual(len(tri.points), 8)

            tri = util.generate_delaunay(vlist, num=3)
            self.assertTrue(
                isinstance(tri, util.scipy.spatial.Delaunay))
            self.assertEqual(len(tri.simplices), 62)
            self.assertEqual(len(tri.points), 27)

        #
        # Check cases where not all variables are bounded
        #
        vlist = variable_list()
        vlist.append(variable(lb=0))
        with self.assertRaises(ValueError):
            util.generate_delaunay(vlist)

        vlist = variable_list()
        vlist.append(variable(ub=0))
        with self.assertRaises(ValueError):
            util.generate_delaunay(vlist)
Exemple #6
0
    def __init__(self, *args, **kwds):
        super(piecewise_dcc, self).__init__(*args, **kwds)

        # create index sets
        polytopes = range(len(self.breakpoints) - 1)
        vertices = range(len(self.breakpoints))

        def polytope_verts(p):
            return xrange(p, p + 2)

        # create vars
        self.v = variable_dict()
        lmbda = self.v['lambda'] = variable_dict(
            ((p, v), variable(lb=0)) for p in polytopes for v in vertices)
        y = self.v['y'] = variable_tuple(
            variable(domain=Binary) for p in polytopes)

        # create piecewise constraints
        self.c = constraint_list()

        self.c.append(linear_constraint(
            variables=tuple(lmbda[p,v]
                            for p in polytopes
                            for v in polytope_verts(p)) + \
                      (self.input,),
            coefficients=tuple(self.breakpoints[v]
                               for p in polytopes
                               for v in polytope_verts(p)) + \
                      (-1,),
            rhs=0))

        self.c.append(linear_constraint(
            variables=tuple(lmbda[p,v]
                            for p in polytopes
                            for v in polytope_verts(p)) + \
                      (self.output,),
            coefficients=tuple(self.values[v]
                               for p in polytopes
                               for v in polytope_verts(p)) + (-1,)))
        if self.bound == 'ub':
            self.c[-1].lb = 0
        elif self.bound == 'lb':
            self.c[-1].ub = 0
        else:
            assert self.bound == 'eq'
            self.c[-1].rhs = 0

        clist = []
        for p in polytopes:
            variables = tuple(lmbda[p, v] for v in polytope_verts(p))
            clist.append(
                linear_constraint(variables=variables + (y[p], ),
                                  coefficients=(1, ) * len(variables) + (-1, ),
                                  rhs=0))
        self.c.append(constraint_tuple(clist))

        self.c.append(
            linear_constraint(variables=tuple(y),
                              coefficients=(1, ) * len(y),
                              rhs=1))
Exemple #7
0
    def test_clear(self):
        x = variable()
        y = variable()

        s = suffix()
        s[x] = 1.0
        s[y] = None

        self.assertEqual(len(s), 2)
        s.clear()
        self.assertEqual(len(s), 0)
    def test_domain_type(self):
        v = variable()
        self.assertEqual(v.domain_type, RealSet)
        self.assertEqual(v.is_continuous(), True)
        self.assertEqual(v.is_discrete(), False)
        self.assertEqual(v.is_binary(), False)
        self.assertEqual(v.is_integer(), False)
        self.assertEqual(v.lb, None)
        self.assertEqual(v.ub, None)
        self.assertEqual(v.bounds, (None, None))

        v.domain_type = IntegerSet
        self.assertEqual(v.domain_type, IntegerSet)
        self.assertEqual(v.is_continuous(), False)
        self.assertEqual(v.is_discrete(), True)
        self.assertEqual(v.is_binary(), False)
        self.assertEqual(v.is_integer(), True)
        self.assertEqual(v.lb, None)
        self.assertEqual(v.ub, None)
        self.assertEqual(v.bounds, (None, None))

        v = variable(domain_type=IntegerSet, lb=0)
        self.assertEqual(v.domain_type, IntegerSet)
        self.assertEqual(v.is_continuous(), False)
        self.assertEqual(v.is_discrete(), True)
        self.assertEqual(v.is_binary(), False)
        self.assertEqual(v.is_integer(), True)
        self.assertEqual(v.lb, 0)
        self.assertEqual(v.ub, None)
        self.assertEqual(v.bounds, (0, None))

        v = variable(domain_type=IntegerSet, ub=0)
        self.assertEqual(v.domain_type, IntegerSet)
        self.assertEqual(v.is_continuous(), False)
        self.assertEqual(v.is_discrete(), True)
        self.assertEqual(v.is_binary(), False)
        self.assertEqual(v.is_integer(), True)
        self.assertEqual(v.lb, None)
        self.assertEqual(v.ub, 0)
        self.assertEqual(v.bounds, (None, 0))

        v.domain_type = RealSet
        self.assertEqual(v.domain_type, RealSet)
        self.assertEqual(v.is_continuous(), True)
        self.assertEqual(v.is_discrete(), False)
        self.assertEqual(v.is_binary(), False)
        self.assertEqual(v.is_integer(), False)
        self.assertEqual(v.lb, None)
        self.assertEqual(v.ub, 0)
        self.assertEqual(v.bounds, (None, 0))

        with self.assertRaises(ValueError):
            v.domain_type = BooleanSet
Exemple #9
0
    def __init__(self, *args, **kwds):
        super(piecewise_inc, self).__init__(*args, **kwds)

        # create indexers
        polytopes = range(len(self.breakpoints)-1)

        # create vars
        self.v = variable_dict()
        delta = self.v['delta'] = variable_tuple(
            variable() for p in polytopes)
        delta[0].ub = 1
        delta[-1].lb = 0
        delta_tuple = tuple(delta)
        y = self.v['y'] = variable_tuple(
            variable(domain=Binary) for p in polytopes[:-1])

        # create piecewise constraints
        self.c = constraint_list()

        self.c.append(linear_constraint(
            variables=(self.input,) + delta_tuple,
            coefficients=(-1,) + tuple(self.breakpoints[p+1] - \
                                       self.breakpoints[p]
                                       for p in polytopes),
            rhs=-self.breakpoints[0]))

        self.c.append(linear_constraint(
            variables=(self.output,) + delta_tuple,
            coefficients=(-1,) + tuple(self.values[p+1] - \
                                       self.values[p]
                                       for p in polytopes)))
        if self.bound == 'ub':
            self.c[-1].lb = -self.values[0]
        elif self.bound == 'lb':
            self.c[-1].ub = -self.values[0]
        else:
            assert self.bound == 'eq'
            self.c[-1].rhs = -self.values[0]

        clist1 = []
        clist2 = []
        for p in polytopes[:-1]:
            clist1.append(linear_constraint(
                variables=(delta[p+1], y[p]),
                coefficients=(1, -1),
                ub=0))
            clist2.append(linear_constraint(
                variables=(y[p], delta[p]),
                coefficients=(1, -1),
                ub=0))
        self.c.append(constraint_tuple(clist1))
        self.c.append(constraint_tuple(clist2))
Exemple #10
0
    def test_set_all_values(self):
        x = variable()
        y = variable()

        s = suffix()
        s[x] = 1.0
        s[y] = None

        self.assertEqual(s[x], 1.0)
        self.assertEqual(s[y], None)
        s.set_all_values(0)
        self.assertEqual(s[x], 0)
        self.assertEqual(s[y], 0)
Exemple #11
0
 def test_existing_alias(self):
     s = SymbolMap()
     v1 = variable()
     s.alias(v1, "v")
     self.assertIs(s.aliases["v"](), v1)
     v2 = variable()
     with self.assertRaises(RuntimeError):
         s.alias(v2, "v")
     s.alias(v1, "A")
     self.assertIs(s.aliases["v"](), v1)
     self.assertIs(s.aliases["A"](), v1)
     s.alias(v1, "A")
     self.assertIs(s.aliases["v"](), v1)
     self.assertIs(s.aliases["A"](), v1)
Exemple #12
0
 def test_misc_set_ops(self):
     v1 = variable()
     cset1 = ComponentSet([v1])
     v2 = variable()
     cset2 = ComponentSet([v2])
     cset3 = ComponentSet([v1, v2])
     empty = ComponentSet([])
     self.assertEqual(cset1 | cset2, cset3)
     self.assertEqual((cset1 | cset2) - cset3, empty)
     self.assertEqual(cset1 ^ cset2, cset3)
     self.assertEqual(cset1 ^ cset3, cset2)
     self.assertEqual(cset2 ^ cset3, cset1)
     self.assertEqual(cset1 & cset2, empty)
     self.assertEqual(cset1 & cset3, cset1)
     self.assertEqual(cset2 & cset3, cset2)
 def test_pprint(self):
     # Not really testing what the output is, just that
     # an error does not occur. The pprint functionality
     # is still in the early stages.
     vlist = variable_list([variable(), variable()])
     s = sos(vlist)
     pyomo.core.kernel.pprint(s)
     b = block()
     b.s = s
     pyomo.core.kernel.pprint(s)
     pyomo.core.kernel.pprint(b)
     m = block()
     m.b = b
     pyomo.core.kernel.pprint(s)
     pyomo.core.kernel.pprint(b)
     pyomo.core.kernel.pprint(m)
    def test_fix_free(self):
        v = variable()
        self.assertEqual(v.value, None)
        self.assertEqual(v.fixed, False)

        v.fix(1)
        self.assertEqual(v.value, 1)
        self.assertEqual(v.fixed, True)

        v.free()
        self.assertEqual(v.value, 1)
        self.assertEqual(v.fixed, False)

        v.value = 0
        self.assertEqual(v.value, 0)
        self.assertEqual(v.fixed, False)

        v.fix()
        self.assertEqual(v.value, 0)
        self.assertEqual(v.fixed, True)

        with self.assertRaises(TypeError):
            v.fix(1, 2)
        self.assertEqual(v.value, 0)
        self.assertEqual(v.fixed, True)

        v.free()
        with self.assertRaises(TypeError):
            v.fix(1, 2)
        self.assertEqual(v.value, 0)
        self.assertEqual(v.fixed, False)
 def test_is_fixed(self):
     v = variable()
     self.assertEqual(v.is_fixed(), False)
     self.assertEqual(is_fixed(v), False)
     self.assertEqual(v.fixed, False)
     self.assertEqual(v.value, None)
     v.value = 1.0
     self.assertEqual(v.is_fixed(), False)
     self.assertEqual(is_fixed(v), False)
     self.assertEqual(v.fixed, False)
     self.assertEqual(v.value, 1.0)
     v.fix()
     self.assertEqual(v.is_fixed(), True)
     self.assertEqual(is_fixed(v), True)
     self.assertEqual(v.fixed, True)
     self.assertEqual(v.value, 1.0)
     v.value = None
     self.assertEqual(v.is_fixed(), True)
     self.assertEqual(is_fixed(v), True)
     self.assertEqual(v.fixed, True)
     self.assertEqual(v.value, None)
     v.free()
     self.assertEqual(v.is_fixed(), False)
     self.assertEqual(is_fixed(v), False)
     self.assertEqual(v.fixed, False)
     self.assertEqual(v.value, None)
 def test_polynomial_degree(self):
     v = variable()
     self.assertEqual(v.polynomial_degree(), 1)
     v.fix(0)
     self.assertEqual(v.polynomial_degree(), 0)
     v.free()
     self.assertEqual(v.polynomial_degree(), 1)
Exemple #17
0
 def test_getname_relativeto(self):
     m = block()
     m.b = block()
     m.b.v = variable()
     self.assertEqual(m.b.v.getname(fully_qualified=True), 'b.v')
     self.assertEqual(m.b.v.getname(fully_qualified=True, relative_to=m.b),
                      'v')
 def test_pickle(self):
     v = variable(lb=1,
                  ub=2,
                  domain_type=IntegerSet,
                  fixed=True)
     self.assertEqual(v.lb, 1)
     self.assertEqual(type(v.lb), int)
     self.assertEqual(v.ub, 2)
     self.assertEqual(type(v.ub), int)
     self.assertEqual(v.domain_type, IntegerSet)
     self.assertEqual(v.fixed, True)
     self.assertEqual(v.parent, None)
     vup = pickle.loads(
         pickle.dumps(v))
     self.assertEqual(vup.lb, 1)
     self.assertEqual(type(vup.lb), int)
     self.assertEqual(vup.ub, 2)
     self.assertEqual(type(vup.ub), int)
     self.assertEqual(vup.domain_type, IntegerSet)
     self.assertEqual(vup.fixed, True)
     self.assertEqual(vup.parent, None)
     b = block()
     b.v = v
     self.assertIs(v.parent, b)
     bup = pickle.loads(
         pickle.dumps(b))
     vup = bup.v
     self.assertEqual(vup.lb, 1)
     self.assertEqual(vup.ub, 2)
     self.assertEqual(vup.domain_type, IntegerSet)
     self.assertEqual(vup.fixed, True)
     self.assertIs(vup.parent, bup)
 def test_pickle(self):
     for key in transforms.registered_transforms:
         v = variable(lb=1,ub=3)
         p = transforms.piecewise([1,2,3],
                                  [1,2,1],
                                  input=v,
                                  validate=False,
                                  repn=key)
         self.assertEqual(p.parent, None)
         self.assertEqual(p.input.expr.parent, None)
         self.assertIs(p.input.expr, v)
         pup = pickle.loads(
             pickle.dumps(p))
         self.assertEqual(pup.parent, None)
         self.assertEqual(pup.input.expr.parent, None)
         self.assertIsNot(pup.input.expr, v)
         b = block()
         b.v = v
         b.p = p
         self.assertIs(p.parent, b)
         self.assertEqual(p.input.expr.parent, b)
         bup = pickle.loads(
             pickle.dumps(b))
         pup = bup.p
         self.assertIs(pup.parent, bup)
         self.assertEqual(pup.input.expr.parent, bup)
         self.assertIs(pup.input.expr, bup.v)
         self.assertIsNot(pup.input.expr, b.v)
 def test_potentially_variable(self):
     v = variable()
     self.assertEqual(v._potentially_variable(), True)
     self.assertEqual(potentially_variable(v), True)
     self.assertEqual(v.fixed, False)
     self.assertEqual(v.value, None)
     v.value = 1.0
     self.assertEqual(v._potentially_variable(), True)
     self.assertEqual(potentially_variable(v), True)
     self.assertEqual(v.fixed, False)
     self.assertEqual(v.value, 1.0)
     v.fix()
     self.assertEqual(v._potentially_variable(), True)
     self.assertEqual(potentially_variable(v), True)
     self.assertEqual(v.fixed, True)
     self.assertEqual(v.value, 1.0)
     v.value = None
     self.assertEqual(v._potentially_variable(), True)
     self.assertEqual(potentially_variable(v), True)
     self.assertEqual(v.fixed, True)
     self.assertEqual(v.value, None)
     v.free()
     self.assertEqual(v._potentially_variable(), True)
     self.assertEqual(potentially_variable(v), True)
     self.assertEqual(v.fixed, False)
     self.assertEqual(v.value, None)
Exemple #21
0
    def __init__(self, *args, **kwds):
        super(piecewise_sos2, self).__init__(*args, **kwds)

        # create vars
        y = self.v = variable_tuple(
            variable(lb=0) for i in xrange(len(self.breakpoints)))
        y_tuple = tuple(y)

        # create piecewise constraints
        self.c = constraint_list()

        self.c.append(linear_constraint(
            variables=y_tuple + (self.input,),
            coefficients=self.breakpoints + (-1,),
            rhs=0))

        self.c.append(linear_constraint(
            variables=y_tuple + (self.output,),
            coefficients=self.values + (-1,)))
        if self.bound == 'ub':
            self.c[-1].lb = 0
        elif self.bound == 'lb':
            self.c[-1].ub = 0
        else:
            assert self.bound == 'eq'
            self.c[-1].rhs = 0

        self.c.append(linear_constraint(variables=y_tuple,
                                        coefficients=(1,)*len(y),
                                        rhs=1))

        self.s = sos2(y)
Exemple #22
0
    def test_bad_assignment(self):
        e = self._ctype_factory(expr=1.0)
        self.assertEqual(e.expr, 1.0)

        v = variable()
        with self.assertRaises(ValueError):
            e.expr = v + 1
    def test_pickle(self):
        v = variable()
        s = sos([v], weights=[1])
        self.assertEqual(len(s), 1)
        self.assertIs(s.variables[0], v)
        self.assertTrue(v in s)
        self.assertEqual(s.weights[0], 1)
        self.assertEqual(s.level, 1)
        self.assertEqual(s.parent, None)
        sup = pickle.loads(pickle.dumps(s))
        self.assertEqual(len(sup), 1)
        self.assertIsNot(sup.variables[0], v)
        self.assertFalse(v in sup)
        self.assertEqual(sup.weights[0], 1)
        self.assertEqual(sup.level, 1)
        self.assertEqual(sup.parent, None)

        b = block()
        b.v = v
        self.assertIs(v.parent, b)
        b.s = s
        self.assertIs(s.parent, b)
        bup = pickle.loads(pickle.dumps(b))
        sup = bup.s
        self.assertEqual(len(sup), 1)
        self.assertIs(sup.variables[0], bup.v)
        self.assertTrue(bup.v in sup)
        self.assertEqual(sup.weights[0], 1)
        self.assertEqual(sup.level, 1)
        self.assertIs(sup.parent, bup)
Exemple #24
0
 def test_pickle(self):
     s = suffix(direction=suffix.EXPORT,
                datatype=suffix.FLOAT)
     self.assertEqual(s.direction, suffix.EXPORT)
     self.assertEqual(s.datatype, suffix.FLOAT)
     self.assertEqual(s.parent, None)
     sup = pickle.loads(
         pickle.dumps(s))
     self.assertEqual(sup.direction, suffix.EXPORT)
     self.assertEqual(sup.datatype, suffix.FLOAT)
     self.assertEqual(sup.parent, None)
     b = block()
     b.s = s
     self.assertIs(s.parent, b)
     bup = pickle.loads(
         pickle.dumps(b))
     sup = bup.s
     self.assertEqual(sup.direction, suffix.EXPORT)
     self.assertEqual(sup.datatype, suffix.FLOAT)
     self.assertIs(sup.parent, bup)
     b.v = variable(lb=1)
     b.s[b.v] = 1.0
     bup = pickle.loads(
         pickle.dumps(b))
     sup = bup.s
     vup = bup.v
     self.assertEqual(sup[vup], 1.0)
Exemple #25
0
    def test_clear_value(self):
        x = variable()

        s = suffix()
        s[x] = 1.0

        self.assertEqual(len(s), 1)
        s.clear_value(x)
        self.assertEqual(len(s), 0)
        s.clear_value(x)
 def test_active(self):
     v = variable()
     b = block()
     self.assertEqual(b.active, True)
     b.deactivate()
     self.assertEqual(b.active, False)
     b.v = v
     self.assertEqual(b.active, False)
     b.activate()
     self.assertEqual(b.active, True)
def setUpModule():
    global _test_v
    global _test_tri
    global _test_values
    if util.numpy_available and util.scipy_available:
        _test_v = variable_list(variable(lb=i, ub=i + 1) for i in range(3))
        _test_tri = util.generate_delaunay(_test_v, num=4)
        _test_values = []
        for _xi in _test_tri.points:
            _test_values.append(sum(_xi))
        _test_values = util.numpy.array(_test_values)
Exemple #28
0
    def test_del(self):
        x = variable()

        s = suffix()
        s[x] = 1.0

        self.assertEqual(len(s), 1)
        del s[x]
        self.assertEqual(len(s), 0)
        with self.assertRaises(KeyError):
            del s[x]
Exemple #29
0
 def test_init_NumericValue(self):
     v = variable()
     p = parameter()
     e = expression()
     d = data_expression()
     o = objective()
     for obj in (v, v + 1, v**2, p, p + 1, p**2, e, e + 1, e**2, d, d + 1,
                 d**2, o, o + 1, o**2):
         self.assertTrue(isinstance(noclone(obj), NumericValue))
         self.assertTrue(isinstance(noclone(obj), IIdentityExpression))
         self.assertTrue(isinstance(noclone(obj), noclone))
         self.assertIs(noclone(obj).expr, obj)
Exemple #30
0
    def test_is_fixed(self):
        v = variable()
        e = noclone(v + 1)
        self.assertEqual(e.is_fixed(), False)
        self.assertEqual(is_fixed(e), False)
        v.fix()
        self.assertEqual(e.is_fixed(), True)
        self.assertEqual(is_fixed(e), True)

        e = noclone(parameter())
        self.assertEqual(e.is_fixed(), True)
        self.assertEqual(is_fixed(e), True)