diff --git a/pyomo/contrib/pynumero/algorithms/solvers/tests/test_cyipopt_interfaces.py b/pyomo/contrib/pynumero/algorithms/solvers/tests/test_cyipopt_interfaces.py index 88d4df1e17d..9d2c961a69d 100644 --- a/pyomo/contrib/pynumero/algorithms/solvers/tests/test_cyipopt_interfaces.py +++ b/pyomo/contrib/pynumero/algorithms/solvers/tests/test_cyipopt_interfaces.py @@ -156,9 +156,9 @@ def test_model1_CyIpoptNLP_scaling(self): cynlp = CyIpoptNLP(PyomoNLP(m)) obj_scaling, x_scaling, g_scaling = cynlp.scaling_factors() - self.assertTrue(obj_scaling is None) - self.assertTrue(x_scaling is None) - self.assertTrue(g_scaling is None) + self.assertTrue(obj_scaling == 1.0) + self.assertTrue((x_scaling == 1.0).all()) + self.assertTrue((g_scaling == 1.0).all()) def _check_model1(self, nlp, cynlp): # test x_init diff --git a/pyomo/contrib/pynumero/interfaces/tests/test_external_grey_box_model.py b/pyomo/contrib/pynumero/interfaces/tests/test_external_grey_box_model.py index 0fc342c4e40..c1006068055 100644 --- a/pyomo/contrib/pynumero/interfaces/tests/test_external_grey_box_model.py +++ b/pyomo/contrib/pynumero/interfaces/tests/test_external_grey_box_model.py @@ -1827,18 +1827,47 @@ def create_model_two_equalities_two_outputs(self, external_model): m.egb.outputs['Pout'].setub(70) return m - def test_scaling_all_missing(self): + def test_scaling_all_one(self): m = self.create_model_two_equalities_two_outputs( ex_models.PressureDropTwoEqualitiesTwoOutputs() ) m.obj = pyo.Objective(expr=(m.egb.outputs['Pout'] - 20) ** 2) pyomo_nlp = PyomoGreyBoxNLP(m) fs = pyomo_nlp.get_obj_scaling() + self.assertEqual(fs, 1.0) + + comparison_x_order = [ + 'egb.inputs[Pin]', + 'egb.inputs[c]', + 'egb.inputs[F]', + 'egb.inputs[P1]', + 'egb.inputs[P3]', + 'egb.outputs[P2]', + 'egb.outputs[Pout]', + 'hin', + 'hout', + ] + x_order = pyomo_nlp.variable_names() xs = pyomo_nlp.get_primals_scaling() + comparison_xs = np.asarray([1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=np.float64) + check_vectors_specific_order( + self, xs, x_order, comparison_xs, comparison_x_order + ) + + comparison_c_order = [ + 'egb.pdrop1', + 'egb.pdrop3', + 'egb.P2_con', + 'egb.Pout_con', + 'incon', + 'outcon', + ] + c_order = pyomo_nlp.constraint_names() cs = pyomo_nlp.get_constraints_scaling() - self.assertIsNone(fs) - self.assertIsNone(xs) - self.assertIsNone(cs) + comparison_cs = np.asarray([1, 1, 1, 1, 1, 1], dtype=np.float64) + check_vectors_specific_order( + self, cs, c_order, comparison_cs, comparison_c_order + ) def test_scaling_pyomo_model_only(self): m = self.create_model_two_equalities_two_outputs( diff --git a/pyomo/contrib/pynumero/interfaces/tests/test_pyomo_grey_box_nlp.py b/pyomo/contrib/pynumero/interfaces/tests/test_pyomo_grey_box_nlp.py index ecadf40e5cf..684bf06f19a 100644 --- a/pyomo/contrib/pynumero/interfaces/tests/test_pyomo_grey_box_nlp.py +++ b/pyomo/contrib/pynumero/interfaces/tests/test_pyomo_grey_box_nlp.py @@ -2248,18 +2248,49 @@ def create_model_two_equalities_two_outputs(self, external_model): m.egb.outputs['Pout'].setub(70) return m - def test_scaling_all_missing(self): + def test_scaling_all_one(self): m = self.create_model_two_equalities_two_outputs( ex_models.PressureDropTwoEqualitiesTwoOutputs() ) m.obj = pyo.Objective(expr=(m.egb.outputs['Pout'] - 20) ** 2) pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m) + + comparison_x_order = [ + 'egb.inputs[Pin]', + 'egb.inputs[c]', + 'egb.inputs[F]', + 'egb.inputs[P1]', + 'egb.inputs[P3]', + 'egb.outputs[P2]', + 'egb.outputs[Pout]', + 'hin', + 'hout', + ] + x_order = pyomo_nlp.primals_names() + comparison_c_order = [ + 'egb.pdrop1', + 'egb.pdrop3', + 'egb.output_constraints[P2]', + 'egb.output_constraints[Pout]', + 'incon', + 'outcon', + ] + c_order = pyomo_nlp.constraint_names() + fs = pyomo_nlp.get_obj_scaling() + self.assertEqual(fs, 1.0) + xs = pyomo_nlp.get_primals_scaling() + comparison_xs = np.asarray([1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=np.float64) + check_vectors_specific_order( + self, xs, x_order, comparison_xs, comparison_x_order + ) + cs = pyomo_nlp.get_constraints_scaling() - self.assertIsNone(fs) - self.assertIsNone(xs) - self.assertIsNone(cs) + comparison_cs = np.asarray([1, 1, 1, 1, 1, 1], dtype=np.float64) + check_vectors_specific_order( + self, cs, c_order, comparison_cs, comparison_c_order + ) def test_scaling_pyomo_model_only(self): m = self.create_model_two_equalities_two_outputs(