def test_composite_adapter_forward_emtpy(self, trials): """Test :meth:`orion.core.evc.adapters.CompositeAdapter.forward` and :meth:`orion.core.evc.adapters.CompositeAdapter.backward` with no adapters """ composite_adapter = CompositeAdapter() assert len(composite_adapter.forward(trials)) == len(trials) assert len(composite_adapter.backward(trials)) == len(trials)
def create_adapters(self): """Return a list of adapters for every resolution""" adapters = [] for resolution in self.conflicts.get_resolutions(): adapters += resolution.get_adapters() return CompositeAdapter(*adapters)
def test_composite_adapter_init_with_bad_adapters(self): """Test initialization of :class:`orion.core.evc.adapters.CompositeAdapter` with invalid adapters """ with pytest.raises(TypeError) as exc_info: CompositeAdapter("bad", "adapters") assert "Provided adapters must be adapter objects, not '<class 'str'>" in str( exc_info.value)
def test_composite_adapter_init_with_adapters(self, dummy_param): """Test initialization of :class:`orion.core.evc.adapters.CompositeAdapter` with valid adapters """ dimension_addition = DimensionAddition(dummy_param) dimension_deletion = DimensionDeletion(dummy_param) composite_adapter = CompositeAdapter(dimension_addition, dimension_deletion) assert len(composite_adapter.adapters) == 2 assert isinstance(composite_adapter.adapters[0], DimensionAddition) assert isinstance(composite_adapter.adapters[1], DimensionDeletion)
def test_composite_adapter_backward(self, dummy_param, trials): """Test :meth:`orion.core.evc.adapters.CompositeAdapter.backward` with two adapters""" new_param = Trial.Param(name="second_normal_prior", type="integer", value=1) dimension_addition_adapter = DimensionAddition(new_param) dimension_deletion_adapter = DimensionDeletion(new_param) composite_adapter = CompositeAdapter(dimension_deletion_adapter) adapted_trials = composite_adapter.backward(trials) assert adapted_trials[0]._params[-1] == new_param assert adapted_trials[4]._params[-1] == new_param assert adapted_trials[-1]._params[-1] == new_param composite_adapter = CompositeAdapter(dimension_addition_adapter, dimension_deletion_adapter) adapted_trials = composite_adapter.backward(trials) assert len(adapted_trials) == len(trials) assert new_param not in (adapted_trials[0]._params) assert new_param not in (adapted_trials[4]._params) assert new_param not in (adapted_trials[-1]._params)
def test_composite_configuration(dummy_param): """Test :meth:`orion.core.evc.adapters.CompositeAdapter.configuration`""" new_param = Trial.Param(name="second_normal_prior", type="integer", value=1) dimension_addition_adapter = DimensionAddition(dummy_param) dimension_deletion_adapter = DimensionDeletion(new_param) composite_adapter = CompositeAdapter(dimension_addition_adapter, dimension_deletion_adapter) configuration = composite_adapter.configuration assert configuration[0] == dimension_addition_adapter.configuration[0] assert configuration[1] == dimension_deletion_adapter.configuration[0] assert (BaseAdapter.build(configuration).adapters[0].configuration[0] == configuration[0]) assert (BaseAdapter.build(configuration).adapters[1].configuration[0] == configuration[1])
def test_composite_adapter_init_emtpy(self): """Test initialization of :class:`orion.core.evc.adapters.CompositeAdapter` with no adapters """ composite_adapter = CompositeAdapter() assert len(composite_adapter.adapters) == 0