Exemplo n.º 1
0
 def test_multiply_expression_and_expression_in_place(self):
     e = lp.Expression({'x1': -5, 'x2': 3}, offset=10)
     e *= lp.Expression({'x1': 1})
     self.assertEqual(e.offset, 0)
     self.assertEqual(dict(e.values()), {
         lp.Product(['x1', 'x1']): -5,
         lp.Product(['x1', 'x2']): 3,
         'x1': 10
     })
Exemplo n.º 2
0
    def test_add_expression_and_expression_in_place(self):
        e1 = lp.Expression({'x1': -5, 'x2': 42}, -1000)
        e2 = lp.Expression({'x2': -42, 'x3': -50}, 2)
        e1 += e2

        self.assertEqual(e1.offset, -998)
        self.assertEqual(dict(e1.values()), {'x1': -5, 'x2': 0, 'x3': -50})

        self.assertEqual(e2.offset, 2)
        self.assertEqual(dict(e2.values()), {'x2': -42, 'x3': -50})
Exemplo n.º 3
0
 def test_multiply_expression_and_simple_expression(self):
     e1 = lp.Expression({'x1': -5, 'x2': 3}, offset=10)
     e2 = lp.Expression({'x1': 1})
     e = e1 * e2
     self.assertEqual(e.offset, 0)
     self.assertEqual(dict(e.values()), {
         lp.Product(['x1', 'x1']): -5,
         lp.Product(['x1', 'x2']): 3,
         'x1': 10
     })
Exemplo n.º 4
0
    def test_add_expression_and_infinity(self):
        e = lp.Expression({'x1': -5}, 100)
        e1 = e + float('inf')
        self.assertEqual(e1.offset, float('inf'))

        e2 = e - float('inf')
        self.assertEqual(e2.offset, -float('inf'))
Exemplo n.º 5
0
 def test_multiply_expression_and_expression(self):
     e1 = lp.Expression({'x1': 1, 'x2': 2, 'x3': 3}, offset=4)
     e2 = lp.Expression({'x2': 4, 'x4': 5}, offset=-5)
     e = e1 * e2
     self.assertEqual(e.offset, -20)
     self.assertEqual(dict(e.values()), {
         lp.Product(['x1', 'x2']): 4,
         lp.Product(['x2', 'x2']): 8,
         lp.Product(['x2', 'x3']): 12,
         lp.Product(['x1', 'x4']): 5,
         lp.Product(['x2', 'x4']): 10,
         lp.Product(['x3', 'x4']): 15,
         'x1': -5,
         'x2': 6,
         'x3': -15,
         'x4': 20
     })
Exemplo n.º 6
0
 def test_expression_pow_two_in_place(self):
     e = lp.Expression({'x1': -5, 'x2': 3}, offset=10)
     e **= 2
     self.assertEqual(e.offset, 100)
     self.assertEqual(dict(e.values()), {
         lp.Product(['x1', 'x1']): 25,
         lp.Product(['x1', 'x2']): -30,
         lp.Product(['x2', 'x2']): 9,
         'x1': -100,
         'x2': 60
     })
Exemplo n.º 7
0
 def test_create_expression_with_variables(self):
     e = lp.Expression(variables={'x1': -5, 'x2': 100})
     self.assertEqual(e.offset, 0)
     self.assertEqual(dict(e.values()), {'x1': -5, 'x2': 100})
Exemplo n.º 8
0
 def test_create_expression_with_offset(self):
     e = lp.Expression(offset=42)
     self.assertEqual(e.offset, 42)
     self.assertEqual(dict(e.values()), {})
Exemplo n.º 9
0
 def test_create_expression(self):
     e = lp.Expression()
     self.assertEqual(e.offset, 0)
     self.assertEqual(dict(e.values()), {})
Exemplo n.º 10
0
 def test_relation_without_offset_to_string(self):
     e = lp.Expression({'x1': 1})
     r = lp.Relation(lp.Relation.Equals, e)
     self.assertEqual(str(r), 'x1 == 0')
Exemplo n.º 11
0
 def test_result_get_expression_product_value(self):
     result = MockResult({'x1': 2, 'x2': 3, 'x3': 4})
     expr = lp.Expression({lp.Product(['x1', 'x2']): 3, 'x3': -1}, offset=4)
     self.assertEqual(result.get_value(expr), 18)
Exemplo n.º 12
0
 def test_add_expression_and_infinity_expression(self):
     e = lp.Expression({'x1': -5}, float('inf'))
     e1 = e + lp.Expression({'x2': 4}, 100)
     self.assertEqual(e1.offset, float('inf'))
Exemplo n.º 13
0
 def test_add_expression_and_expression(self):
     e1 = lp.Expression({'x1': -5, 'x2': 42}, -1000)
     e2 = lp.Expression({'x2': -42, 'x3': -50}, 2)
     e3 = e1 + e2
     self.assertEqual(e3.offset, -998)
     self.assertEqual(dict(e3.values()), {'x1': -5, 'x2': 0, 'x3': -50})
Exemplo n.º 14
0
 def test_negate_expression(self):
     e = lp.Expression({'x1': 52}, -32)
     e1 = -e
     self.assertEqual(e1.offset, 32)
     self.assertEqual(dict(e1.values()), {'x1': -52})
Exemplo n.º 15
0
 def test_expression_to_string(self):
     e = lp.Expression({'x1': -4, 'x2': 100, 'x3': 1}, 42)
     self.assertEqual(str(e), '-4*x1 + 100*x2 + x3 + 42')
Exemplo n.º 16
0
 def test_multiply_expression_and_infinity_in_place(self):
     e = lp.Expression({'x1': -5})
     e *= float('inf')
     self.assertTrue(math.isnan(e.offset))
Exemplo n.º 17
0
 def test_multiply_expression_and_number_in_place(self):
     e = lp.Expression({'x1': -5}, 100)
     e *= 2
     self.assertEqual(e.offset, 200)
     self.assertEqual(dict(e.values()), {'x1': -10})
Exemplo n.º 18
0
 def test_multiply_expression_and_infinity(self):
     e = lp.Expression({'x1': -5})
     e1 = float('-inf') * e
     self.assertTrue(math.isnan(e1.offset))
Exemplo n.º 19
0
 def test_expression_variables(self):
     e = lp.Expression(variables={'x1': -1, 'x2': 1}, offset=100)
     self.assertEqual(set(e.variables()), {'x1', 'x2'})
Exemplo n.º 20
0
 def test_chained_relation(self):
     e = lp.Expression({'x1': 1})
     with self.assertRaises(ValueError):
         self.assertFalse(4 <= e <= 10)
Exemplo n.º 21
0
 def test_add_expression_and_number(self):
     e = lp.Expression({'x1': -5}, 100)
     e1 = e + 45
     self.assertEqual(e1.offset, 145)
     self.assertEqual(dict(e1.values()), {'x1': -5})
Exemplo n.º 22
0
 def test_subtract_expressions_in_place(self):
     e = lp.Expression({'x1': 40}, 22)
     e -= lp.Expression({'x1': 5, 'x2': -20}, -2)
     self.assertEqual(e.offset, 24)
     self.assertEqual(dict(e.values()), {'x1': 35, 'x2': 20})
Exemplo n.º 23
0
 def test_expression_with_tuple_vars_to_string(self):
     e = lp.Expression({('v', 1): 1}, -1)
     self.assertEqual(str(e), "('v', 1) - 1")
Exemplo n.º 24
0
 def test_result_get_expression_value(self):
     result = MockResult({'x': 3, 'y': 4})
     expr = lp.Expression({'x': 2, 'y': -6}, offset=3)
     self.assertEqual(result.get_value(expr), -15)
Exemplo n.º 25
0
 def test_add_expression_and_number_in_place(self):
     e = lp.Expression({'x1': -5}, 100)
     e += 45
     self.assertEqual(e.offset, 145)
     self.assertEqual(dict(e.values()), {'x1': -5})
Exemplo n.º 26
0
 def test_expression_contains(self):
     e = lp.Expression({'x1': 10, 'x2': -5})
     self.assertIn('x1', e)
     self.assertNotIn('x3', e)
Exemplo n.º 27
0
 def test_add_expression_and_infinity_in_place(self):
     e = lp.Expression({'x1': -5}, 100)
     e += float('inf')
     self.assertEqual(e.offset, float('inf'))
Exemplo n.º 28
0
 def test_create_relation(self):
     e = lp.Expression({'x1': 4})
     r = lp.Relation(lp.Relation.Greater, e)
     self.assertEqual(r.expression, e)
     self.assertEqual(r.sense, lp.Relation.Greater)
Exemplo n.º 29
0
 def test_multiply_expression_and_number(self):
     e = lp.Expression({'x1': -5}, 100)
     e1 = 2 * e
     self.assertEqual(e1.offset, 200)
     self.assertEqual(dict(e1.values()), {'x1': -10})
Exemplo n.º 30
0
 def test_relation_with_offset_to_string(self):
     e = lp.Expression({'x1': 4}, -20)
     r = lp.Relation(lp.Relation.Less, e)
     self.assertEqual(str(r), '4*x1 <= 20')