def test_fake_dataset(self): """this test will insure the basedataset works""" n_subjects = 3 n_sessions = 2 n_runs = 2 for paradigm in ['imagery', 'p300']: ds = FakeDataset(n_sessions=n_sessions, n_runs=n_runs, n_subjects=n_subjects, paradigm=paradigm) data = ds.get_data() # we should get a dict self.assertTrue(isinstance(data, dict)) # we get the right number of subject self.assertEqual(len(data), n_subjects) # right number of session self.assertEqual(len(data[1]), n_sessions) # right number of run self.assertEqual(len(data[1]['session_0']), n_runs) # We should get a raw array at the end self.assertEqual(type(data[1]['session_0']['run_0']), mne.io.RawArray) # bad subject id must raise error self.assertRaises(ValueError, ds.get_data, [1000])
def test_baseImagery_wrongevent(self): # test process_raw return empty list if raw does not contain any # selected event. cetain runs in dataset are event specific. paradigm = SimpleMotorImagery(filters=[[7, 12], [12, 24]]) dataset = FakeDataset(paradigm="imagery") raw = dataset.get_data([1])[1]["session_0"]["run_0"] # add something on the event channel raw._data[-1] *= 10 self.assertIsNone(paradigm.process_raw(raw, dataset)) # zeros it out raw._data[-1] *= 0 self.assertIsNone(paradigm.process_raw(raw, dataset))
def test_BaseP300_wrongevent(self): # test process_raw return empty list if raw does not contain any # selected event. cetain runs in dataset are event specific. paradigm = SimpleP300(filters=[[1, 12], [12, 24]]) dataset = FakeDataset(paradigm="p300", event_list=["Target", "NonTarget"]) raw = dataset.get_data([1])[1]["session_0"]["run_0"] # add something on the event channel raw._data[-1] *= 10 self.assertIsNone(paradigm.process_raw(raw, dataset)) # zeros it out raw._data[-1] *= 0 self.assertIsNone(paradigm.process_raw(raw, dataset))
def test_BaseImagery_paradigm(self): class SimpleMotorImagery(BaseMotorImagery): def used_events(self, dataset): return dataset.event_id self.assertRaises(ValueError, SimpleMotorImagery, tmin=1, tmax=0) paradigm = SimpleMotorImagery() dataset = FakeDataset() X, labels, metadata = paradigm.get_data(dataset, subjects=[1]) # we should have all the same lenght self.assertEquals(len(X), len(labels), len(metadata)) # X must be a 3D Array self.assertEquals(len(X.shape), 3) # labels must contain 3 values self.assertEquals(len(np.unique(labels)), 3) # metadata must have subjets, sessions, runs self.assertTrue('subject' in metadata.columns) self.assertTrue('session' in metadata.columns) self.assertTrue('run' in metadata.columns) # we should have only one subject in the metadata self.assertEquals(np.unique(metadata.subject), 1) # we should have two sessions in the metadata self.assertEquals(len(np.unique(metadata.session)), 2) # can work with filter bank paradigm = SimpleMotorImagery(filters=[[7, 12], [12, 24]]) dataset = FakeDataset() X, labels, metadata = paradigm.get_data(dataset, subjects=[1]) # X must be a 3D Array self.assertEquals(len(X.shape), 4) self.assertEquals(X.shape[-1], 2) # test process_raw return empty list if raw does not contain any # selected event. cetain runs in dataset are event specific. dataset = FakeDataset() raw = dataset.get_data([1])[1]['session_0']['run_0'] # add something on the event channel raw._data[-1] *= 10 self.assertIsNone(paradigm.process_raw(raw, dataset)) # zeros it out raw._data[-1] *= 0 self.assertIsNone(paradigm.process_raw(raw, dataset))