def test_csp_init(nfilter, metric, log, get_covmats, get_labels): n_classes, n_matrices, n_channels = 2, 6, 3 covmats = get_covmats(n_matrices, n_channels) labels = get_labels(n_matrices, n_classes) csp = CSP(nfilter=nfilter, metric=metric, log=log) csp.fit(covmats, labels) Xtr = csp.transform(covmats) if log: assert Xtr.shape == (n_matrices, n_channels) else: assert Xtr.shape == (n_matrices, n_channels, n_channels) assert csp.filters_.shape == (n_channels, n_channels) assert csp.patterns_.shape == (n_channels, n_channels)
def test_CSP(): """Test CSP""" n_trials = 90 X = generate_cov(n_trials, 3) labels = np.array([0, 1, 2]).repeat(n_trials // 3) # Test Init csp = CSP() assert_true(csp.nfilter == 4) assert_true(csp.metric == 'euclid') assert_true(csp.log) csp = CSP(3, 'riemann', False) assert_true(csp.nfilter == 3) assert_true(csp.metric == 'riemann') assert_true(not csp.log) assert_raises(TypeError, CSP, 'foo') assert_raises(ValueError, CSP, metric='foo') assert_raises(TypeError, CSP, log='foo') # Test fit csp = CSP() csp.fit(X, labels % 2) # two classes csp.fit(X, labels) # 3 classes assert_raises(ValueError, csp.fit, X, labels * 0.) # 1 class assert_raises(ValueError, csp.fit, X, labels[:1]) # unequal # of samples assert_raises(TypeError, csp.fit, X, 'foo') # y must be an array assert_raises(TypeError, csp.fit, 'foo', labels) # X must be an array assert_raises(ValueError, csp.fit, X[:, 0], labels) assert_raises(ValueError, csp.fit, X, X) assert_array_equal(csp.filters_.shape, [X.shape[1], X.shape[1]]) assert_array_equal(csp.patterns_.shape, [X.shape[1], X.shape[1]]) # Test transform Xt = csp.transform(X) assert_array_equal(Xt.shape, [len(X), X.shape[1]]) assert_raises(TypeError, csp.transform, 'foo') assert_raises(ValueError, csp.transform, X[:, 1:, :]) # unequal # of chans csp.log = False Xt = csp.transform(X)
def test_CSP(): """Test CSP""" n_trials = 90 X = generate_cov(n_trials, 3) labels = np.array([0, 1, 2]).repeat(n_trials // 3) # Test Init csp = CSP() assert csp.nfilter == 4 assert csp.metric == 'euclid' assert csp.log csp = CSP(3, 'riemann', False) assert csp.nfilter == 3 assert csp.metric == 'riemann' assert not csp.log with pytest.raises(TypeError): CSP('foo') with pytest.raises(ValueError): CSP(metric='foo') with pytest.raises(TypeError): CSP(log='foo') # Test fit csp = CSP() csp.fit(X, labels % 2) # two classes csp.fit(X, labels) # 3 classes with pytest.raises(ValueError): csp.fit(X, labels * 0.) # 1 class with pytest.raises(ValueError): csp.fit(X, labels[:1]) # unequal # of samples with pytest.raises(TypeError): csp.fit(X, 'foo') # y must be an array with pytest.raises(TypeError): csp.fit('foo', labels) # X must be an array with pytest.raises(ValueError): csp.fit(X[:, 0], labels) with pytest.raises(ValueError): csp.fit(X, X) assert_array_equal(csp.filters_.shape, [X.shape[1], X.shape[1]]) assert_array_equal(csp.patterns_.shape, [X.shape[1], X.shape[1]]) # Test transform Xt = csp.transform(X) assert_array_equal(Xt.shape, [len(X), X.shape[1]]) with pytest.raises(TypeError): csp.transform('foo') with pytest.raises(ValueError): csp.transform(X[:, 1:, :]) # unequal # of chans csp.log = False Xt = csp.transform(X)