Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bknueven committed Jun 20, 2024
1 parent a7791e1 commit 5cf85d5
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
39 changes: 35 additions & 4 deletions pyomo/contrib/pynumero/interfaces/tests/test_pyomo_grey_box_nlp.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down

0 comments on commit 5cf85d5

Please sign in to comment.