Ejemplo n.º 1
0
 def test_rule_option3(self):
     """Test rule option"""
     model = self.create_model()
     model.y = Var(initialize=2)
     def f(model):
         yield model.y
         yield 2*model.y
         yield 2*model.y
         yield ObjectiveList.End
     model.c = ObjectiveList(rule=f)
     self.assertEqual(len(model.c), 3)
     self.assertEqual(model.c[1](), 2)
     model.d = ObjectiveList(rule=f(model))
     self.assertEqual(len(model.d), 3)
     self.assertEqual(model.d[1](), 2)
Ejemplo n.º 2
0
    def test_stats3(self):
        model = ConcreteModel()
        model.x = Var([1, 2])

        def obj_rule(model, i):
            return sum_product(model.x)

        model.obj = Objective([1, 2], rule=obj_rule)

        def c_rule(model, i):
            expr = 0
            for j in [1, 2]:
                expr += j * model.x[j]
            return expr == 0

        model.c = Constraint([1, 2], rule=c_rule)
        #
        model.B = Block()
        model.B.x = Var([1, 2])
        model.B.o = ObjectiveList()
        model.B.o.add(model.B.x[1])
        model.B.o.add(model.B.x[2])
        model.B.c = ConstraintList()
        model.B.c.add(model.x[1] == 0)
        model.B.c.add(model.x[2] == 0)
        self.assertEqual(model.nvariables(), 4)
        self.assertEqual(model.nobjectives(), 4)
        self.assertEqual(model.nconstraints(), 4)
Ejemplo n.º 3
0
 def test_rule_option4(self):
     """Test rule option"""
     model = self.create_model()
     model.y = Var(initialize=2)
     model.c = ObjectiveList(rule=((i + 1) * model.y for i in range(3)))
     self.assertEqual(len(model.c), 3)
     self.assertEqual(model.c[1](), 2)
Ejemplo n.º 4
0
 def test_conlist_skip(self):
     model = ConcreteModel()
     model.x = Var()
     model.c = ObjectiveList()
     self.assertTrue(1 not in model.c)
     self.assertEqual(len(model.c), 0)
     model.c.add(Objective.Skip)
     self.assertTrue(1 not in model.c)
     self.assertEqual(len(model.c), 0)
     model.c.add(model.x + 1)
     self.assertTrue(1 not in model.c)
     self.assertTrue(2 in model.c)
     self.assertEqual(len(model.c), 1)
Ejemplo n.º 5
0
    def test_rule_option2(self):
        """Test rule option"""
        model = self.create_model()
        model.B = RangeSet(1,4)
        def f(model, i):
            if i > 2:
                return ObjectiveList.End
            i = 2*i - 1
            ans=0
            for j in model.B:
                ans = ans + model.x[j]
            ans *= i
            return ans
        model.x = Var(model.B, initialize=2)
        model.o = ObjectiveList(rule=f)

        self.assertEqual(model.o[1](), 8)
        self.assertEqual(len(model.o), 2)
Ejemplo n.º 6
0
    def test_stats4(self):
        model = ConcreteModel()
        model.x = Var([1])

        model.B = Block()
        model.B.x = Var([1, 2, 3])
        model.B.o = ObjectiveList()
        model.B.o.add(model.B.x[1])
        model.B.c = ConstraintList()
        model.B.c.add(model.B.x[1] == 0)
        model.B.c.add(model.B.x[2] == 0)
        model.B.c.add(model.B.x[3] == 0)
        self.assertEqual(model.nvariables(), 4)
        self.assertEqual(model.nobjectives(), 1)
        self.assertEqual(model.nconstraints(), 3)
        model.clear()
        self.assertEqual(model.nvariables(), 0)
        self.assertEqual(model.nobjectives(), 0)
        self.assertEqual(model.nconstraints(), 0)
Ejemplo n.º 7
0
    def test_rule_option1a(self):
        """Test rule option"""
        model = self.create_model()
        model.B = RangeSet(1,4)
        @simple_objectivelist_rule
        def f(model, i):
            if i > 4:
                return None
            ans=0
            for j in model.B:
                ans = ans + model.x[j]
            ans *= i
            return ans
        model.x = Var(model.B, initialize=2)
        model.o = ObjectiveList(rule=f)

        self.assertEqual(model.o[1](), 8)
        self.assertEqual(model.o[2](), 16)
        self.assertEqual(len(model.o), 4)
Ejemplo n.º 8
0
    def test_len(self):
        """Test len method"""
        model = self.create_model()
        model.o = ObjectiveList()

        self.assertEqual(len(model.o), 0)
Ejemplo n.º 9
0
    def test_keys(self):
        """Test keys method"""
        model = self.create_model()
        model.o = ObjectiveList()

        self.assertEqual(len(list(model.o.keys())), 0)
Ejemplo n.º 10
0
    def test_dim(self):
        """Test dim method"""
        model = self.create_model()
        model.o = ObjectiveList()

        self.assertEqual(model.o.dim(), 1)