def test_optimization_result_try_get_final_models_for_successful_optimization( ) -> None: models = {"foo": _PseudoTrainableQuadratic()} result: OptimizationResult[None] = OptimizationResult( Ok(Record({"foo": empty_dataset([1], [1])}, models, None)), []) assert result.try_get_final_models() is models assert result.try_get_final_model() is models["foo"]
def test_optimization_result_try_get_final_datasets_for_successful_optimization( ) -> None: data = {"foo": empty_dataset([1], [1])} result: OptimizationResult[None] = OptimizationResult( Ok(Record(data, {"foo": _PseudoTrainableQuadratic()}, None)), []) assert result.try_get_final_datasets() is data assert result.try_get_final_dataset() is data["foo"]
def test_optimization_result_try_get_final_models_for_multiple_models() -> None: data = {"foo": empty_dataset([1], [1]), "bar": empty_dataset([2], [2])} models = {"foo": _PseudoTrainableQuadratic(), "bar": _PseudoTrainableQuadratic()} result: OptimizationResult[None] = OptimizationResult(Ok(Record(data, models, None)), []) assert result.try_get_final_models() is models with pytest.raises(ValueError): result.try_get_final_model()
def test_optimization_result_astuple() -> None: opt_result: OptimizationResult[None] = OptimizationResult( Err(_Whoops()), [Record({}, {}, None)] ) final_result, history = opt_result.astuple() assert final_result is opt_result.final_result assert history is opt_result.history
def test_ask_tell_optimizer_from_state_does_not_train_model( search_space: Box, init_dataset: Dataset, model: TrainableProbabilisticModel, acquisition_rule: AcquisitionRule[TensorType, Box], ) -> None: old_state: Record[None] = Record({OBJECTIVE: init_dataset}, {OBJECTIVE: model}, None) ask_tell = AskTellOptimizer.from_record(old_state, search_space, acquisition_rule) state_record: Record[None] = ask_tell.to_record() assert state_record.model.optimize_count == 0 # type: ignore
def test_ask_tell_optimizer_loads_from_state( search_space: Box, init_dataset: Dataset, model: TrainableProbabilisticModel, acquisition_rule: AcquisitionRule[TensorType, Box], ) -> None: old_state: Record[None] = Record({OBJECTIVE: init_dataset}, {OBJECTIVE: model}, None) ask_tell = AskTellOptimizer.from_record(old_state, search_space, acquisition_rule) new_state: Record[None] = ask_tell.to_record() assert_datasets_allclose(old_state.dataset, new_state.dataset) assert isinstance(new_state.model, type(old_state.model))