Пример #1
0
 def test_associativity(self):
     x = parameter()
     y = parameter()
     pyomo.kernel.pprint(
         y + x*data_expression(data_expression(x*y)))
     pyomo.kernel.pprint(
         y + data_expression(data_expression(x*y))*x)
Пример #2
0
 def test_build_linking_constraints(self):
     c = _build_linking_constraints([], [])
     self.assertIs(type(c), constraint_tuple)
     self.assertEqual(len(c), 0)
     v = [1, data_expression(), variable(), expression(expr=1.0)]
     vaux = [variable(), variable(), variable(), variable()]
     c = _build_linking_constraints(v, vaux)
     self.assertIs(type(c), constraint_tuple)
     self.assertEqual(len(c), 4)
     self.assertIs(type(c[0]), linear_constraint)
     self.assertEqual(c[0].rhs, 1)
     self.assertEqual(len(list(c[0].terms)), 1)
     self.assertIs(list(c[0].terms)[0][0], vaux[0])
     self.assertEqual(list(c[0].terms)[0][1], 1)
     self.assertIs(type(c[1]), linear_constraint)
     self.assertIs(c[1].rhs, v[1])
     self.assertEqual(len(list(c[1].terms)), 1)
     self.assertIs(list(c[1].terms)[0][0], vaux[1])
     self.assertEqual(list(c[1].terms)[0][1], 1)
     self.assertIs(type(c[2]), linear_constraint)
     self.assertEqual(c[2].rhs, 0)
     self.assertEqual(len(list(c[2].terms)), 2)
     self.assertIs(list(c[2].terms)[0][0], vaux[2])
     self.assertEqual(list(c[2].terms)[0][1], 1)
     self.assertIs(list(c[2].terms)[1][0], v[2])
     self.assertEqual(list(c[2].terms)[1][1], -1)
     self.assertIs(type(c[3]), constraint)
     self.assertEqual(c[3].rhs, 0)
     from pyomo.repn import generate_standard_repn
     repn = generate_standard_repn(c[3].body)
     self.assertEqual(len(repn.linear_vars), 1)
     self.assertIs(repn.linear_vars[0], vaux[3])
     self.assertEqual(repn.linear_coefs[0], 1)
     self.assertEqual(repn.constant, -1)
Пример #3
0
 def test_bad_alpha_type(self):
     c = dual_power(
         r1=variable(lb=0),
         r2=variable(lb=0),
         x=[variable(),
            variable()],
         alpha=parameter())
     c = dual_power(
         r1=variable(lb=0),
         r2=variable(lb=0),
         x=[variable(),
            variable()],
         alpha=data_expression())
     with self.assertRaises(TypeError):
         c = dual_power(
             r1=variable(lb=0),
             r2=variable(lb=0),
             x=[variable(),
                variable()],
             alpha=variable())
     with self.assertRaises(TypeError):
         c = dual_power(
             r1=variable(lb=0),
             r2=variable(lb=0),
             x=[variable(),
                variable()],
             alpha=expression())
Пример #4
0
 def test_bad_alpha_type(self):
     c = dual_power(
         r1=variable(lb=0),
         r2=variable(lb=0),
         x=[variable(),
            variable()],
         alpha=parameter())
     c = dual_power(
         r1=variable(lb=0),
         r2=variable(lb=0),
         x=[variable(),
            variable()],
         alpha=data_expression())
     with self.assertRaises(TypeError):
         c = dual_power(
             r1=variable(lb=0),
             r2=variable(lb=0),
             x=[variable(),
                variable()],
             alpha=variable())
     with self.assertRaises(TypeError):
         c = dual_power(
             r1=variable(lb=0),
             r2=variable(lb=0),
             x=[variable(),
                variable()],
             alpha=expression())
Пример #5
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)
Пример #6
0
 def testis_potentially_variable(self):
     e = noclone(variable())
     self.assertEqual(e.is_potentially_variable(), True)
     self.assertEqual(is_potentially_variable(e), True)
     e = noclone(parameter())
     self.assertEqual(e.is_potentially_variable(), False)
     self.assertEqual(is_potentially_variable(e), False)
     e = noclone(expression())
     self.assertEqual(e.is_potentially_variable(), True)
     self.assertEqual(is_potentially_variable(e), True)
     e = noclone(data_expression())
     self.assertEqual(e.is_potentially_variable(), False)
     self.assertEqual(is_potentially_variable(e), False)
Пример #7
0
 def testis_potentially_variable(self):
     e = noclone(variable())
     self.assertEqual(e.is_potentially_variable(), True)
     self.assertEqual(is_potentially_variable(e), True)
     e = noclone(parameter())
     self.assertEqual(e.is_potentially_variable(), False)
     self.assertEqual(is_potentially_variable(e), False)
     e = noclone(expression())
     self.assertEqual(e.is_potentially_variable(), True)
     self.assertEqual(is_potentially_variable(e), True)
     e = noclone(data_expression())
     self.assertEqual(e.is_potentially_variable(), False)
     self.assertEqual(is_potentially_variable(e), False)
Пример #8
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)
Пример #9
0
    def test_bad_weights(self):
        v = variable()
        with self.assertRaises(ValueError):
            s = sos([v], weights=[v])

        v.fix(1.0)
        with self.assertRaises(ValueError):
            s = sos([v], weights=[v])

        e = expression()
        with self.assertRaises(ValueError):
            s = sos([v], weights=[e])

        de = data_expression()
        s = sos([v], weights=[de])

        p = parameter()
        s = sos([v], weights=[p])
Пример #10
0
    def test_bad_weights(self):
        v = variable()
        with self.assertRaises(ValueError):
            s = sos([v], weights=[v])

        v.fix(1.0)
        with self.assertRaises(ValueError):
            s = sos([v], weights=[v])

        e = expression()
        with self.assertRaises(ValueError):
            s = sos([v], weights=[e])

        de = data_expression()
        s = sos([v], weights=[de])

        p = parameter()
        s = sos([v], weights=[p])
Пример #11
0
 def test_build_linking_constraints(self):
     c = _build_linking_constraints([],[])
     self.assertIs(type(c), constraint_tuple)
     self.assertEqual(len(c), 0)
     c = _build_linking_constraints([None],[variable()])
     self.assertIs(type(c), constraint_tuple)
     self.assertEqual(len(c), 0)
     v = [1,
          data_expression(),
          variable(),
          expression(expr=1.0)]
     vaux = [variable(),
             variable(),
             variable(),
             variable()]
     c = _build_linking_constraints(v, vaux)
     self.assertIs(type(c), constraint_tuple)
     self.assertEqual(len(c), 4)
     self.assertIs(type(c[0]), linear_constraint)
     self.assertEqual(c[0].rhs, 1)
     self.assertEqual(len(list(c[0].terms)), 1)
     self.assertIs(list(c[0].terms)[0][0], vaux[0])
     self.assertEqual(list(c[0].terms)[0][1], 1)
     self.assertIs(type(c[1]), linear_constraint)
     self.assertIs(c[1].rhs, v[1])
     self.assertEqual(len(list(c[1].terms)), 1)
     self.assertIs(list(c[1].terms)[0][0], vaux[1])
     self.assertEqual(list(c[1].terms)[0][1], 1)
     self.assertIs(type(c[2]), linear_constraint)
     self.assertEqual(c[2].rhs, 0)
     self.assertEqual(len(list(c[2].terms)), 2)
     self.assertIs(list(c[2].terms)[0][0], vaux[2])
     self.assertEqual(list(c[2].terms)[0][1], 1)
     self.assertIs(list(c[2].terms)[1][0], v[2])
     self.assertEqual(list(c[2].terms)[1][1], -1)
     self.assertIs(type(c[3]), constraint)
     self.assertEqual(c[3].rhs, 0)
     from pyomo.repn import generate_standard_repn
     repn = generate_standard_repn(c[3].body)
     self.assertEqual(len(repn.linear_vars), 1)
     self.assertIs(repn.linear_vars[0], vaux[3])
     self.assertEqual(repn.linear_coefs[0], 1)
     self.assertEqual(repn.constant, -1)
Пример #12
0
 def test_ctype(self):
     e = data_expression()
     self.assertIs(e.ctype, IExpression)
     self.assertIs(type(e), data_expression)
     self.assertIs(type(e)._ctype, IExpression)
Пример #13
0
 def test_is_parameter_type(self):
     for obj in (variable(), parameter(), objective(), expression(),
                 data_expression()):
         self.assertEqual(noclone(obj).is_parameter_type(), False)
Пример #14
0
 def test_ctype(self):
     e = data_expression()
     self.assertIs(e.ctype, IExpression)
     self.assertIs(type(e), data_expression)
     self.assertIs(type(e)._ctype, IExpression)
Пример #15
0
 def test_is_parameter_type(self):
     for obj in (variable(), parameter(), objective(),
                 expression(), data_expression()):
         self.assertEqual(noclone(obj).is_parameter_type(), False)