def test_gaussian_mean_shape_1d(mean, cov): """Test that different types of one-dimensional means and covariances yield one- dimensional Gaussian measures when no dimension is given.""" measure = quad.GaussianMeasure(mean, cov) assert measure.dim == 1 assert measure.mean.size == 1 assert measure.cov.size == 1
def test_gaussian_non_diagonal_covariance(input_dim_non_diagonal): """Check that non-diagonal covariance matrices are recognised as non-diagonal.""" mean = np.full((input_dim_non_diagonal, ), 0.0) cov = np.eye(input_dim_non_diagonal) cov[0, 1] = 1.5 measure = quad.GaussianMeasure(mean, cov) assert measure.diagonal_covariance is False
def test_gaussian_param_assignment(input_dim: int): """Check that diagonal mean and covariance for higher dimensions are extended correctly.""" measure = quad.GaussianMeasure(0, 1, input_dim) if input_dim == 1: assert measure.mean == 0.0 assert measure.cov == 1.0 assert isinstance(measure.mean, np.ndarray) assert isinstance(measure.cov, np.ndarray) else: assert np.array_equal(measure.mean, np.zeros(input_dim)) assert np.array_equal(measure.cov, np.eye(input_dim))
def test_gaussian_diagonal_covariance(input_dim: int): """Check that diagonal covariance matrices are recognised as diagonal.""" mean = np.full((input_dim, ), 0.0) cov = np.eye(input_dim) measure = quad.GaussianMeasure(mean, cov) assert measure.diagonal_covariance is True
def test_gaussian_scalar(): """Check that the 1d Gaussian case works.""" measure = quad.GaussianMeasure(0.5, 1.5) assert measure.mean == 0.5 assert measure.cov == 1.5
def test_gaussian_vector_cov(cov_vector): """Check that Gaussian with diagonal covariance inputted as a vector works.""" dim = cov_vector.size mean = np.zeros(dim) measure = quad.GaussianMeasure(mean, cov_vector) assert measure.cov.shape == (dim, dim)
def test_gaussian_negative_dimension(neg_dim): """Make sure that a negative dimension raises ValueError.""" with pytest.raises(ValueError): quad.GaussianMeasure(0, 1, neg_dim)