def test_initialization(self): factory = DummyMCOFactory(self.plugin) self.assertEqual(factory.id, "pid.factory.dummy_mco") self.assertEqual(factory.name, "Dummy MCO") self.assertIsInstance(factory.create_optimizer(), DummyMCO) self.assertIsInstance(factory.create_communicator(), DummyMCOCommunicator) self.assertIsInstance(factory.create_model(), DummyMCOModel)
def test_base_object_parameter_factories(self): factory = DummyMCOFactory(self.plugin) self.assertEqual(1, len(factory.parameter_factories)) for parameter_factory in factory.parameter_factories: self.assertIsInstance(parameter_factory, DummyMCOParameterFactory) self.assertRaisesRegex( KeyError, "not a valid id", factory.parameter_factory_by_id, "not a valid id", ) self.assertIs( factory.parameter_factory_by_id(factory.parameter_factories[0].id), factory.parameter_factories[0], )
def setUp(self): self.plugin = {"id": "pid", "name": "Plugin"} self.factory = DummyMCOFactory(self.plugin) workflow_file = ProbeWorkflowFile(path=fixtures.get("test_probe.json")) workflow_file.read() self.workflow = workflow_file.workflow self.parameters = [1, 1, 1, 1] self.optimizer_engine = DummyOptimizerEngine( single_point_evaluator=self.workflow)
def setUp(self): self.plugin = {"id": "pid", "name": "Plugin"} self.factory = DummyMCOFactory(self.plugin) self.parameters = [ RangedMCOParameterFactory(self.factory).create_model( { "lower_bound": 0.0, "upper_bound": 1.0 }) ] * 4 self.engine = AposterioriOptimizerEngine( single_point_evaluator=ProbeEvaluator(), optimizer=ProbeOptimizer(), parameters=self.parameters)
def setUp(self): self.plugin = {"id": "pid", "name": "Plugin"} self.factory = DummyMCOFactory(self.plugin) self.parameters = [ RangedMCOParameterFactory(self.factory).create_model({ "lower_bound": 0.0, "upper_bound": 1.0 }) for _ in range(4) ] self.kpis = [KPISpecification()] * 2 self.optimizer = DummyOptimizerEngine( kpis=self.kpis, parameters=self.parameters, single_point_evaluator=GaussProbeEvaluator()) self.scaling_values = self.optimizer.scaling_values.tolist()
def test_transfer_parameters(self): # create old model old_factory = DummyMCOFactory(plugin={'id': 'bcy356', 'name': 'old'}) old_factory.parameter_factory_classes = [ RangedVectorMCOParameterFactory, RangedMCOParameterFactory, CategoricalMCOParameterFactory ] old_model = BaseMCOModel(factory=old_factory) old_model.parameters = [ RangedMCOParameter( initial_value=1.0, factory=RangedVectorMCOParameterFactory(old_factory)), RangedVectorMCOParameter( initial_value=[1.0, 1.0], factory=RangedMCOParameterFactory(old_factory)), CategoricalMCOParameter( categories=['A', 'B', 'C'], factory=CategoricalMCOParameterFactory(old_factory)) ] old_model.kpis = [] # create new model, that we want to transfer the parameters and # kpis to. new_factory = DummyMCOFactory(plugin={'id': 'xxui1', 'name': 'new'}) new_factory.parameter_factory_classes = [ RangedVectorMCOParameterFactory, RangedMCOParameterFactory, ] new_model = BaseMCOModel(factory=new_factory) # workflow tree to work with workflow_tree = WorkflowTree( model=Workflow(), _factory_registry=self.factory_registry, system_state=self.system_state, ) # transfer the parameters and kpis workflow_tree.transfer_parameters_and_kpis(old_model, new_model) # have ONLY two parameters been transferred? # (the third categorical parameter of the old_model # should not be filtered out as it is not allowed by the new model). self.assertEqual(2, len(new_model.parameters)) for p in new_model.parameters: self.assertNotIsInstance(p, CategoricalMCOParameter) # has the correct plugin id been transferred? self.assertEqual('xxui1', new_model.parameters[0].factory.mco_factory.plugin_id)
def setUp(self): self.plugin = {"id": "pid", "name": "Plugin"} self.factory = DummyMCOFactory(self.plugin) self.kpis = [KPISpecification(), KPISpecification()] self.parameters = [1, 1, 1, 1] self.parameters = [ RangedMCOParameterFactory(self.factory).create_model({ "lower_bound": 0.0, "upper_bound": 1.0 }) for _ in self.parameters ] self.optimizer = WeightedScipyEngine(parameters=self.parameters, kpis=self.kpis) self.mocked_optimizer = DummyOptimizerEngine( parameters=self.parameters, kpis=self.kpis, single_point_evaluator=GaussProbeEvaluator())
def setUp(self): self.factory = DummyMCOFactory({"id": "pid", "name": "test"}) self.model = BaseModel(self.factory)
def _mco_factories_default(self): return [DummyMCOFactory(self.plugin)]
def setUp(self): self.optimizer = ScipyOptimizer() self.plugin = {"id": "pid", "name": "Plugin"} self.factory = DummyMCOFactory(self.plugin)