Coverage for tests/feature_maps/test_student_t_sample.py: 100%
19 statements
« prev ^ index » next coverage.py v7.11.3, created at 2025-11-16 21:43 +0000
« prev ^ index » next coverage.py v7.11.3, created at 2025-11-16 21:43 +0000
1import numpy as np
2import pytest
3from scipy.stats import ks_2samp, multivariate_t
5from geometric_kernels.feature_maps.probability_densities import student_t_sample
8@pytest.mark.parametrize("deg_freedom, n", [(2, 3), (5, 5), (42, 10)])
9def test_student_t_sample(deg_freedom, n):
10 size = (2048,)
12 key = np.random.RandomState(0)
14 shape = 1.0 * np.eye(n)
15 loc = 1.0 * np.zeros((n,))
17 _, random_sample = student_t_sample(
18 key, loc, shape, np.array([1.0 * deg_freedom]), size
19 )
21 np_random_sample = multivariate_t.rvs(loc, shape, deg_freedom, size, key)
23 v = key.standard_normal(n)
24 v = v / np.linalg.norm(v)
26 random_proj = np.einsum("ni,i->n", random_sample, v)
27 np_random_proj = np.einsum("ni,i->n", np_random_sample, v)
29 p_value = 0.05
31 test_res = ks_2samp(random_proj, np_random_proj)
32 assert test_res.pvalue > p_value