GurobiSolver: Implement relax/enforce constraint

This commit is contained in:
2021-04-15 15:22:12 -05:00
parent 4dd4ef52bd
commit 0ba8cc16fd
7 changed files with 96 additions and 16 deletions

View File

@@ -35,3 +35,23 @@ def test_gurobi_pyomo_solver() -> None:
def test_gurobi_solver() -> None:
run_internal_solver_tests(GurobiSolver())
def test_redundancy() -> None:
solver = GurobiSolver()
instance = solver.build_test_instance_redundancy()
solver.set_instance(instance)
stats = solver.solve_lp()
assert stats.lp_value == 1.0
constraints = solver.get_constraints()
assert constraints.names[0] == "c1"
assert constraints.slacks[0] == 0.0
solver.relax_constraints(["c1"])
stats = solver.solve_lp()
assert stats.lp_value == 2.0
assert solver.is_constraint_satisfied(["c1"]) == [False]
solver.enforce_constraints(["c1"])
stats = solver.solve_lp()
assert stats.lp_value == 1.0