Пример #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
     })
Пример #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})
Пример #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
     })
Пример #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'))
Пример #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
     })
Пример #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
     })
Пример #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})
Пример #8
0
 def test_create_expression_with_offset(self):
     e = lp.Expression(offset=42)
     self.assertEqual(e.offset, 42)
     self.assertEqual(dict(e.values()), {})
Пример #9
0
 def test_create_expression(self):
     e = lp.Expression()
     self.assertEqual(e.offset, 0)
     self.assertEqual(dict(e.values()), {})
Пример #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')
Пример #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)
Пример #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'))
Пример #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})
Пример #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})
Пример #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')
Пример #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))
Пример #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})
Пример #18
0
 def test_multiply_expression_and_infinity(self):
     e = lp.Expression({'x1': -5})
     e1 = float('-inf') * e
     self.assertTrue(math.isnan(e1.offset))
Пример #19
0
 def test_expression_variables(self):
     e = lp.Expression(variables={'x1': -1, 'x2': 1}, offset=100)
     self.assertEqual(set(e.variables()), {'x1', 'x2'})
Пример #20
0
 def test_chained_relation(self):
     e = lp.Expression({'x1': 1})
     with self.assertRaises(ValueError):
         self.assertFalse(4 <= e <= 10)
Пример #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})
Пример #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})
Пример #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")
Пример #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)
Пример #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})
Пример #26
0
 def test_expression_contains(self):
     e = lp.Expression({'x1': 10, 'x2': -5})
     self.assertIn('x1', e)
     self.assertNotIn('x3', e)
Пример #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'))
Пример #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)
Пример #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})
Пример #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')