diff --git a/src/pyscipopt/scip.pxi b/src/pyscipopt/scip.pxi index 874b2c9e3..b28f498bd 100644 --- a/src/pyscipopt/scip.pxi +++ b/src/pyscipopt/scip.pxi @@ -1071,6 +1071,11 @@ cdef class Model: def freeTransform(self): """Frees all solution process data including presolving and transformed problem, only original problem is kept""" + self._modelvars = { + var: value + for var, value in self._modelvars.items() + if value.isOriginal() + } PY_SCIP_CALL(SCIPfreeTransform(self._scip)) def version(self): diff --git a/tests/test_pricer.py b/tests/test_pricer.py index 1b8fd1184..abc5599a2 100644 --- a/tests/test_pricer.py +++ b/tests/test_pricer.py @@ -158,6 +158,11 @@ def test_cuttingstock(): assert type(s.getNSols()) == int assert s.getNSols() == s.data["nSols"] + # Testing freeTransform + s.freeTransform() + for i in range(10): + s.addVar() + def test_incomplete_pricer(): class IncompletePricer(Pricer): pass