def test_sample_gaussian_spd(): """Test Riemannian Gaussian sampling.""" n_matrices, n_dim, sigma = 50, 16, 2. mean = np.eye(n_dim) X = sample_gaussian_spd(n_matrices, mean, sigma, random_state=42) assert X.shape == (n_matrices, n_dim, n_dim) # X shape mismatch assert is_spd(X) # X is an array of SPD matrices
def test_hankel_covariances_delays(rndstate): n_matrices, n_channels, n_times = 2, 3, 100 x = rndstate.randn(n_matrices, n_channels, n_times) cov = HankelCovariances(delays=[1, 2]) cov.fit(x) covmats = cov.fit_transform(x) assert covmats.shape == (n_matrices, 3 * n_channels, 3 * n_channels) assert is_spd(covmats)
def test_hankel_covariances(rndstate): """Test Hankel Covariances""" n_matrices, n_channels, n_times = 2, 3, 100 x = rndstate.randn(n_matrices, n_channels, n_times) cov = HankelCovariances() cov.fit(x) covmats = cov.fit_transform(x) assert cov.get_params() == dict(estimator="scm", delays=4) assert covmats.shape == (n_matrices, 4 * n_channels, 4 * n_channels) assert is_spd(covmats)
def test_shrinkage(shrinkage, rndstate): """Test Shrinkage""" n_matrices, n_channels, n_times = 2, 3, 100 x = rndstate.randn(n_matrices, n_channels, n_times) covmats = Covariances().fit_transform(x) sh = Shrinkage(shrinkage=shrinkage) covmats = sh.fit(covmats).transform(covmats) assert sh.get_params() == dict(shrinkage=shrinkage) assert covmats.shape == (n_matrices, n_channels, n_channels) assert is_spd(covmats)
def test_block_covariances_blocks(block_size, rndstate): """Test BlockCovariances fit""" n_matrices, n_channels, n_times = 2, 12, 100 x = rndstate.randn(n_matrices, n_channels, n_times) cov = BlockCovariances(block_size=block_size) cov.fit(x) covmats = cov.fit_transform(x) assert cov.get_params() == dict(block_size=block_size, estimator='scm') assert covmats.shape == (n_matrices, n_channels, n_channels) assert is_spd(covmats)
def test_covariances(estimator, rndstate): """Test Covariances""" n_matrices, n_channels, n_times = 2, 3, 100 x = rndstate.randn(n_matrices, n_channels, n_times) cov = Covariances(estimator=estimator) cov.fit(x) covmats = cov.fit_transform(x) assert cov.get_params() == dict(estimator=estimator) assert covmats.shape == (n_matrices, n_channels, n_channels) assert is_spd(covmats)
def test_generate_random_spd_matrix(): """Test function for sampling outliers""" n_matrices, n_dim, sigma = 100, 8, 1. mean = generate_random_spd_matrix(n_dim) X = make_outliers(n_matrices=n_matrices, mean=mean, sigma=sigma, outlier_coeff=10, random_state=None) assert X.shape == (n_matrices, n_dim, n_dim) # X shape mismatch assert is_spd(X) # X is an array of SPD matrices
def test_gaussian_blobs(): """Test function for sampling Gaussian blobs.""" n_matrices, n_dim = 50, 8 X, y = make_gaussian_blobs(n_matrices=n_matrices, n_dim=n_dim, class_sep=2.0, class_disp=1.0, return_centers=False, random_state=None) assert X.shape == (2 * n_matrices, n_dim, n_dim) # X shape mismatch assert is_spd(X) # X is an array of SPD matrices assert y.shape == (2 * n_matrices, ) # y shape mismatch assert np.unique(y).shape == (2, ) # Unexpected number of classes assert sum(y == 0) == n_matrices # Unexpected number of samples in class 0 assert sum(y == 1) == n_matrices # Unexpected number of samples in class 1 _, _, centers = make_gaussian_blobs(n_matrices=1, n_dim=n_dim, class_sep=2.0, class_disp=1.0, return_centers=True, random_state=None) assert centers.shape == (2, n_dim, n_dim) # centers shape mismatch
def test_generate_random_spd_matrix(): """Test generating random SPD matrix""" n_dim = 16 X = generate_random_spd_matrix(n_dim, random_state=None) assert X.shape == (n_dim, n_dim) # X shape mismatch assert is_spd(X) # X is a SPD matrix