def __init__(self, covariance_function, historical_data): """Construct a GaussianProcess object that knows how to call C++ for evaluation of member functions. :param covariance_function: covariance object encoding assumptions about the GP's behavior on our data :type covariance_function: :class:`moe.optimal_learning.python.interfaces.covariance_interface.CovarianceInterface` subclass (e.g., from :mod:`moe.optimal_learning.python.cpp_wrappers.covariance`). :param historical_data: object specifying the already-sampled points, the objective value at those points, and the noise variance associated with each observation :type historical_data: :class:`moe.optimal_learning.python.data_containers.HistoricalData` object """ self._covariance = copy.deepcopy(covariance_function) self._historical_data = copy.deepcopy(historical_data) # C++ will maintain its own copy of the contents of hyperparameters and historical_data self._gaussian_process = C_GP.GaussianProcess( cpp_utils.cppify_hyperparameters(self._covariance.hyperparameters), cpp_utils.cppify(historical_data.points_sampled), cpp_utils.cppify(historical_data.points_sampled_value), cpp_utils.cppify(historical_data.points_sampled_noise_variance), self._historical_data.dim, self._historical_data.num_sampled, )
def test_exception_thrown_from_cpp(self): """Test that a C++ interface function throws the expected type.""" with pytest.raises(C_GP.BoundsException): C_GP.GaussianProcess([-1.0, [1.0]], [], [], [], 1, 0)