From 57bc0fdbf87a73159a50c305af6aa0984f1e8cbc Mon Sep 17 00:00:00 2001 From: UbuntuWS Date: Mon, 18 Dec 2017 14:11:57 -0800 Subject: [PATCH 1/2] Fix. Set by deep copy. --- mpcpy/optimization.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpcpy/optimization.py b/mpcpy/optimization.py index 6115a6b..194047d 100755 --- a/mpcpy/optimization.py +++ b/mpcpy/optimization.py @@ -765,7 +765,7 @@ def _set_optimization_options(self, opt_options, init = False): if opt_options[key] != self.opt_options[key]: self._step_from_meas = False; # Set options - self.opt_options = opt_options; + self.opt_options = copy.deepcopy(opt_options); def _get_optimization_statistics(self): '''Get the JModelica optimization result statistics. From a3d58b7c4891d4320e9a81cf7ecd6d6cbfa27434 Mon Sep 17 00:00:00 2001 From: UbuntuWS Date: Mon, 18 Dec 2017 14:12:47 -0800 Subject: [PATCH 2/2] Fix unittests. --- unittests/test_optimization.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/unittests/test_optimization.py b/unittests/test_optimization.py index 4e8da3b..b5f2070 100755 --- a/unittests/test_optimization.py +++ b/unittests/test_optimization.py @@ -220,17 +220,13 @@ def test_set_options_error(self): optimization.JModelica, \ 'q_flow', \ constraint_data = self.constraints.data); - # Get initial options - opt_options = opt_problem.get_optimization_options(); - # Set new options - opt_options['n_e'] = 2; - self.assertRaises(KeyError, opt_problem.set_optimization_options(opt_options)); - opt_options['external_data'] = 2; - self.assertRaises(KeyError, opt_problem.set_optimization_options(opt_options)); - opt_options['init_traj'] = 2; - self.assertRaises(KeyError, opt_problem.set_optimization_options(opt_options)); - opt_options['nominal_traj'] = 2; - self.assertRaises(KeyError, opt_problem.set_optimization_options(opt_options)); + for key in ['external_data', 'init_traj', 'nominal_traj']: + # Get initial options + opt_options = opt_problem.get_optimization_options(); + # Set new options and check KeyError raised + with self.assertRaises(KeyError): + opt_options[key] = 2; + opt_problem.set_optimization_options(opt_options); def test_get_statistics(self): '''Test the getting of optimization result statistics.