示例#1
0
    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])
示例#2
0
 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))
示例#3
0
 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))
示例#4
0
    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))