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

1import numpy as np 

2import pytest 

3from scipy.stats import ks_2samp, multivariate_t 

4 

5from geometric_kernels.feature_maps.probability_densities import student_t_sample 

6 

7 

8@pytest.mark.parametrize("deg_freedom, n", [(2, 3), (5, 5), (42, 10)]) 

9def test_student_t_sample(deg_freedom, n): 

10 size = (2048,) 

11 

12 key = np.random.RandomState(0) 

13 

14 shape = 1.0 * np.eye(n) 

15 loc = 1.0 * np.zeros((n,)) 

16 

17 _, random_sample = student_t_sample( 

18 key, loc, shape, np.array([1.0 * deg_freedom]), size 

19 ) 

20 

21 np_random_sample = multivariate_t.rvs(loc, shape, deg_freedom, size, key) 

22 

23 v = key.standard_normal(n) 

24 v = v / np.linalg.norm(v) 

25 

26 random_proj = np.einsum("ni,i->n", random_sample, v) 

27 np_random_proj = np.einsum("ni,i->n", np_random_sample, v) 

28 

29 p_value = 0.05 

30 

31 test_res = ks_2samp(random_proj, np_random_proj) 

32 assert test_res.pvalue > p_value