def test_to_robust_problem(self, mocked_platypus): mocked_model = Model('test', function=mock.Mock()) mocked_model.levers = [ RealParameter('a', 0, 1), RealParameter('b', 0, 1) ] mocked_model.uncertainties = [ RealParameter('c', 0, 1), RealParameter('d', 0, 1) ] mocked_model.outcomes = [ScalarOutcome('x'), ScalarOutcome('y')] scenarios = 5 robustness_functions = [ ScalarOutcome('mean x', variable_name='x', function=mock.Mock()), ScalarOutcome('mean y', variable_name='y', function=mock.Mock()) ] problem = to_robust_problem(mocked_model, scenarios, robustness_functions) self.assertEqual('robust', problem.searchover) for entry in problem.parameters: self.assertIn(entry.name, mocked_model.levers.keys()) self.assertEqual(['a', 'b'], problem.parameter_names) self.assertEqual(['mean x', 'mean y'], problem.outcome_names)
def test_to_problem(self, mocked_platypus): mocked_model = Model('test', function=mock.Mock()) mocked_model.levers = [RealParameter('a', 0, 1), RealParameter('b', 0, 1)] mocked_model.uncertainties = [RealParameter('c', 0, 1), RealParameter('d', 0, 1)] mocked_model.outcomes = [ScalarOutcome('x', kind=1), ScalarOutcome('y', kind=1)] searchover = 'levers' problem = to_problem(mocked_model, searchover) self.assertEqual(searchover, problem.searchover) for entry in problem.parameters: self.assertIn(entry.name, mocked_model.levers.keys()) self.assertIn(entry, list(mocked_model.levers)) for entry in problem.outcome_names: self.assertIn(entry, mocked_model.outcomes.keys()) searchover = 'uncertainties' problem = to_problem(mocked_model, searchover) self.assertEqual(searchover, problem.searchover) for entry in problem.parameters: self.assertIn(entry.name, mocked_model.uncertainties.keys()) self.assertIn(entry, list(mocked_model.uncertainties)) for entry in problem.outcome_names: self.assertIn(entry, mocked_model.outcomes.keys())
def test_to_problem(self, mocked_platypus): mocked_model = Model('test', function=mock.Mock()) mocked_model.levers = [ RealParameter('a', 0, 1), RealParameter('b', 0, 1) ] mocked_model.uncertainties = [ RealParameter('c', 0, 1), RealParameter('d', 0, 1) ] mocked_model.outcomes = [ScalarOutcome('x'), ScalarOutcome('y')] mocked_model.constraints = [] searchover = 'levers' problem = to_problem(mocked_model, searchover) self.assertEqual(searchover, problem.searchover) for entry in problem.parameters: self.assertIn(entry.name, mocked_model.levers.keys()) self.assertIn(entry, list(mocked_model.levers)) for entry in problem.outcome_names: self.assertIn(entry.name, mocked_model.outcomes.keys()) searchover = 'uncertainties' problem = to_problem(mocked_model, searchover) self.assertEqual(searchover, problem.searchover) for entry in problem.parameters: self.assertIn(entry.name, mocked_model.uncertainties.keys()) self.assertIn(entry, list(mocked_model.uncertainties)) for entry in problem.outcome_names: self.assertIn(entry.name, mocked_model.outcomes.keys())
def test_to_robust_problem(self, mocked_platypus): mocked_model = Model('test', function=mock.Mock()) mocked_model.levers = [RealParameter('a', 0, 1), RealParameter('b', 0, 1)] mocked_model.uncertainties = [RealParameter('c', 0, 1), RealParameter('d', 0, 1)] mocked_model.outcomes = [ScalarOutcome('x'), ScalarOutcome('y')] scenarios = 5 robustness_functions = [ScalarOutcome('mean x', variable_name='x', function=mock.Mock()), ScalarOutcome('mean y', variable_name='y', function=mock.Mock())] problem = to_robust_problem(mocked_model, scenarios, robustness_functions) self.assertEqual('robust', problem.searchover) for entry in problem.parameters: self.assertIn(entry.name, mocked_model.levers.keys()) self.assertEqual(['mean x', 'mean y'], problem.outcome_names)