def measure_task(configurations_sample: list, tasks_sample: list, experiment_description: dict, search_space: Hyperparameter, measured_tasks: int, config_type: Configuration.Type, config_status: Configuration.Status): """ Test function for Repeater module. Main steps: 0. Take default tasks sample. 1. Create instances of Repeater, Experiment, Default Configuration according to test requirements. 2. Create instance of current measurement. 3. Call Repeater function. :param configurations_sample: default sample of measured configurations :param tasks_sample: default sample of measured tasks :param experiment_description: Experiment Description sample in json format :param search_space: Search Space sample :param measured_tasks: specify number of measured tasks in current measurement. :param config_type: specify current measurement configuration type. :param config_status: specify current measurement configuration status. :return: list of configuration status and number of tasks to measure. """ experiment = Experiment(experiment_description, search_space) Configuration.set_task_config(experiment.description["TaskConfiguration"]) configuration = Configuration(configurations_sample[1]["Params"], config_type, experiment.unique_id) configuration.status = config_status for i in range(0, measured_tasks): configuration.add_task(tasks_sample[i]) orchestrator = RepeaterOrchestration(experiment) if config_type == Configuration.Type.DEFAULT: orchestrator._type = orchestrator.get_repeater(True) else: orchestrator._type = orchestrator.get_repeater() default_configuration = Configuration( configurations_sample[0]["Params"], Configuration.Type.DEFAULT, experiment.unique_id) default_configuration.status = Configuration.Status.MEASURED default_configuration._task_number = configurations_sample[0]["Tasks"] default_configuration.results = configurations_sample[0]["Results"] default_configuration._standard_deviation = configurations_sample[0][ "STD"] experiment.default_configuration = default_configuration task = json.dumps({"configuration": configuration.to_json()}) dummy_channel = None dummy_method = None dummy_properties = None results_measurement = orchestrator.measure_configurations( dummy_channel, dummy_method, dummy_properties, task) return results_measurement
def test_4_write_task_record(self): # Test #4. Format and write Task record to the database # Expected result: record can be read from the database. # Task belongs to the expected configuration and has expected task ID c1 = Configuration( OrderedDict({ "frequency": "dummy", "threads": "dummy" }), Configuration.Type.DEFAULT, "DummyID") task = { 'task id': 'id', 'worker': 'worker', 'result': { 'energy': 0.9 }, 'ResultValidityCheckMark': 'OK' } c1.add_task(task) database.write_one_record("Tasks", c1.get_task_record(task)) written_record = database.get_all_records("Tasks")[0] assert c1.unique_id == written_record["Configuration_ID"] assert task['task id'] == written_record["Task_ID"] assert task == written_record["Task"]