def testInit(self): config1 = OptimizationConfig( objective=self.objective, outcome_constraints=self.outcome_constraints) self.assertEqual(str(config1), CONFIG_STR) with self.assertRaises(ValueError): config1.objective = self.m2_objective # updating constraints is fine. config1.outcome_constraints = [self.outcome_constraint] self.assertEqual(len(config1.metrics), 2) # objective without outcome_constraints is also supported config2 = OptimizationConfig(objective=self.objective) self.assertEqual(config2.outcome_constraints, []) # setting objective is fine too, if it's compatible with constraints.. config2.objective = self.m2_objective # setting incompatible constraints is not fine. with self.assertRaises(ValueError): config2.outcome_constraints = self.outcome_constraints
def testInit(self): config1 = OptimizationConfig( objective=self.objective, outcome_constraints=self.outcome_constraints) self.assertEqual(str(config1), OC_STR) with self.assertRaises(ValueError): config1.objective = self.alt_objective # constrained Objective. # updating constraints is fine. config1.outcome_constraints = [self.outcome_constraint] self.assertEqual(len(config1.metrics), 2) # objective without outcome_constraints is also supported config2 = OptimizationConfig(objective=self.objective) self.assertEqual(config2.outcome_constraints, []) # setting objective is fine too, if it's compatible with constraints.. config2.objective = self.m2_objective # setting constraints on objectives is fine for MultiObjective components. config2.outcome_constraints = self.outcome_constraints self.assertEqual(config2.outcome_constraints, self.outcome_constraints)