Newer
Older
from force_bdss.core.data_value import DataValue
from force_bdss.api import (
BaseMCOModel, BaseMCO, BaseMCOFactory,
BaseMCOParameter, BaseMCOParameterFactory,
BaseMCOCommunicator
)
class ProbeMCOModel(BaseMCOModel):
#: Counts how many times the edit_traits method has been called
edit_traits_call_count = Int(0)
def edit_traits(self, *args, **kwargs):
self.edit_traits_call_count += 1
run_function = Function(default_value=run_func)
run_called = Bool(False)
def run(self, model):
self.run_called = True
class ProbeParameter(BaseMCOParameter):
pass
class ProbeParameterFactory(BaseMCOParameterFactory):
def get_model_class(self):
return ProbeParameter
class ProbeMCOCommunicator(BaseMCOCommunicator):
send_called = Bool(False)
receive_called = Bool(False)
nb_output_data_values = Int(0)
def send_to_mco(self, model, kpi_results):
self.send_called = True
def receive_from_mco(self, model):
self.receive_called = True
return [
DataValue() for _ in range(self.nb_output_data_values)
]
class ProbeMCOFactory(BaseMCOFactory):
def get_identifier(self):
return "test_mco"
def get_model_class(self):
return ProbeMCOModel
def get_communicator_class(self):
return ProbeMCOCommunicator
def get_optimizer_class(self):
return ProbeMCO
return self.communicator_class(
self,
nb_output_data_values=self.nb_output_data_values)
return [ProbeParameterFactory(mco_factory=self)]