Skip to content

Commit 860a75e

Browse files
committed
Fix a bug when deleting constraint in HiGHS
1 parent c0fd4c7 commit 860a75e

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

lib/highs_model.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,8 @@ void POIHighsModel::delete_constraint(const ConstraintIndex &constraint)
302302

303303
m_linear_constraint_index.delete_index(constraint.index);
304304
m_con_names.erase(constraint.index);
305+
306+
m_n_constraints--;
305307
}
306308

307309
bool POIHighsModel::is_constraint_active(const ConstraintIndex &constraint)

tests/test_simple_opt.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ def test_simple_opt(model_interface):
1919
conexpr, poi.ConstraintSense.GreaterEqual, 10.0, name="con1"
2020
)
2121

22+
assert model.number_of_variables() == 2
23+
assert model.number_of_constraints(poi.ConstraintType.Linear) == 1
24+
2225
model.optimize()
2326
status = model.get_model_attribute(poi.ModelAttribute.TerminationStatus)
2427
assert status == poi.TerminationStatusCode.OPTIMAL
@@ -39,7 +42,9 @@ def test_simple_opt(model_interface):
3942
assert model.pprint(conexpr) == "1*x+1*y"
4043

4144
model.delete_constraint(con1)
45+
assert model.number_of_constraints(poi.ConstraintType.Linear) == 0
4246
con2 = model.add_linear_constraint(conexpr, poi.ConstraintSense.GreaterEqual, 20.0)
47+
assert model.number_of_constraints(poi.ConstraintType.Linear) == 1
4348
model.optimize()
4449
status = model.get_model_attribute(poi.ModelAttribute.TerminationStatus)
4550
assert status == poi.TerminationStatusCode.OPTIMAL

0 commit comments

Comments
 (0)