Ejemplo n.º 1
0
    def test_basic_variable_type(self) -> None:
        ip = IP()
        x = ip.add_variable(True)
        y = ip.add_boolean()
        ip.add_bounds(0, x, 0.5)
        ip.add_objective(-x - y)
        self.assertTrue(Solver().solutions(ip).get())

        self.assertEqual(x.value(), 0)
        self.assertEqual(y.value(), 1)
Ejemplo n.º 2
0
    def test_basic_bounds(self) -> None:
        ip = IP()
        x = ip.add_variable()
        y = ip.add_variable()
        ip.add_bounds(0, x, 1)
        ip.add_bounds(0, y, 1)
        ip.add_constraint(x + y <= 1)
        ip.add_objective(-x)
        self.assertTrue(Solver().solutions(ip).get())

        self.assertEqual(x.value(), 1)
        self.assertEqual(y.value(), 0)
Ejemplo n.º 3
0
    def test_infeasible(self) -> None:
        ip = IP()
        x = ip.add_variable()
        y = ip.add_variable()
        ip.add_constraint(x + y <= 1)
        ip.add_constraint(x + y >= 2)
        ip.add_constraint(0 <= x)
        ip.add_constraint(x <= 3)
        ip.add_constraint(0 <= y)
        ip.add_constraint(y <= 3)
        ip.add_objective(-x)

        solver = Solver()
        self.assertFalse(solver.solutions(ip).get())
Ejemplo n.º 4
0
    def test_basic(self) -> None:
        ip = IP()
        x = ip.add_variable()
        y = ip.add_variable()
        ip.add_constraint(x + y <= 1)
        ip.add_constraint(0 <= x)
        ip.add_constraint(x <= 1)
        ip.add_constraint(0 <= y)
        ip.add_constraint(y <= 1)
        ip.add_objective(-x)

        solver = Solver()
        self.assertTrue(solver.solutions(ip).get())

        self.assertEqual(x.value(), 1)
        self.assertEqual(y.value(), 0)