@@ -1539,6 +1539,7 @@ def test_l2_objective_value_matches_manual_quadratic(self):
15391539
15401540 self .assertAlmostEqual (pyo .value (expr ), expected )
15411541
1542+ @unittest .skipUnless (ipopt_available , "Test requires ipopt" )
15421543 def test_l2_penalty_not_double_counted_across_scenarios (self ):
15431544 # Confirms regularization is applied once at the estimator level,
15441545 # not once per scenario.
@@ -1591,6 +1592,7 @@ def test_user_specified_unsupported_regularization_raises(self):
15911592 exp_list , obj_function = "SSE" , regularization = lambda m : m .theta0 ** 2
15921593 )
15931594
1595+ @unittest .skipUnless (ipopt_available , "Test requires ipopt" )
15941596 def test_l2_lambda_zero_matches_unregularized_objective (self ):
15951597 exp_list = [self .LinearExperiment (1.0 , 1.0 ), self .LinearExperiment (2.0 , 2.0 )]
15961598 prior_fim = pd .DataFrame (
@@ -1615,6 +1617,7 @@ def test_l2_lambda_zero_matches_unregularized_objective(self):
16151617 obj_l2_zero = self ._obj_at_theta (pest_l2_zero , theta0 , theta1 )
16161618 self .assertAlmostEqual (obj_l2_zero , obj_base )
16171619
1620+ @unittest .skipUnless (ipopt_available , "Test requires ipopt" )
16181621 def test_prior_subset_penalizes_only_selected_parameter (self ):
16191622 # Prior indexed only by theta1 should leave theta0 unpenalized.
16201623 exp_list = [self .LinearExperiment (1.0 , 1.0 )]
@@ -1976,6 +1979,7 @@ def test_l2_weighted_objective_applies_half_regularization_factor(self):
19761979
19771980 self .assertAlmostEqual (pyo .value (expr ), expected )
19781981
1982+ @unittest .skipUnless (ipopt_available , "Test requires ipopt" )
19791983 def test_indexed_unknown_parameters_regularization_uses_scalar_theta_names (self ):
19801984 exp_list = [IndexedThetaExperiment (2.0 , 5.0 )]
19811985 prior_fim = pd .DataFrame (
0 commit comments