Beispiel #1
0
def test_check_tmin_tmax():
    raw = create_fake_raw(n_channels=2, n_samples=35, sfreq=10.)
    tmin, tmax = -1., 4.
    tmin, tmax, sfreq = _check_tmin_tmax(raw, tmin, tmax)
    assert tmin == 0.
    assert tmax == 3.5
    assert sfreq == 10.
Beispiel #2
0
def test_get_dropped_epochs():
    raw = create_fake_raw(n_channels=1, n_samples=36, sfreq=10.)
    events = np.zeros((4, 3), dtype='int')
    events[:, -1] = 1
    events[:, 0] = [5, 13, 21, 29]
    annot = mne.Annotations([2.], [1.6], ['BAD_'])
    try:
        raw.set_annotations(annot)
    except AttributeError:
        raw.annotations = annot
    epochs = mne.Epochs(raw, events, event_id=1, tmin=-0.1, tmax=0.6,
                        preload=True)
    assert (np.array([2, 3]) == get_dropped_epochs(epochs)).all()

    epochs.drop([0])
    assert (np.array([0, 2, 3]) == get_dropped_epochs(epochs)).all()
Beispiel #3
0
def test_read_write_info():
    data_dir = _get_test_data_dir()
    raw = create_fake_raw(n_channels=4, n_samples=5, sfreq=25.)
    raw.set_channel_types({'a': 'eeg', 'b': 'ecog', 'c': 'eeg', 'd': 'ecog'})

    fname = op.join(data_dir, 'temp_info.hdf5')
    if op.isfile(fname):
        os.remove(op.join(data_dir, fname))

    write_info(fname, raw.info)
    info = read_info(fname)
    compare_info(info, raw.info)

    raw = mne.io.read_raw_fif(op.join(data_dir, 'rest_sample_data-raw.fif'))
    write_info(fname, raw.info, overwrite=True)
    info = read_info(fname)
    compare_info(info, raw.info)
Beispiel #4
0
def test_compute_rest_psd():
    # test on fake raw with 3 channels
    raw = create_fake_raw(n_channels=3, n_samples=26, sfreq=4.)
    events = np.array([[5, 0, 1], [10, 0, 2], [16, 0, 1], [21, 0, 2]])
    zigzag = np.array([-1, 1, -1, 1])
    raw._data[1, 5:9] = zigzag
    raw._data[1, 16:20] = zigzag
    raw._data[2, 10:14] = zigzag * 2
    raw._data[2, 21:25] = zigzag * 2

    psd, freqs = compute_rest_psd(raw, events=events, tmin=0., tmax=1.5,
                                  winlen=1., step=1.)
    assert psd[1][1, -1] > psd[1][0, -1]
    assert psd[2][2, -1] > psd[2][0, -1]
    assert psd[2][2, -1] > psd[1][1, -1]

    psd2, freqs2 = compute_rest_psd(raw, events=events, event_id=1, tmin=0.,
                                    tmax=1.5, winlen=1., step=1.)
    assert (psd2 == psd[1]).all()
    assert (freqs2 == freqs).all()
Beispiel #5
0
def test_valid_windows():
    raw = create_fake_raw(n_channels=1, n_samples=30, sfreq=10.)

    #                     0    5    10   15   20   25   30
    #                     |    |    |    |    |    |    |
    # annot coverage (x): ooooxxxxxooooooxxxooooooooooxx
    onset = np.array([0.5, 1.5, 28 / 10])
    duration = np.array([0.5, 3 / 10, 2 / 10])
    description = ['BAD segment'] * 3
    annot = mne.Annotations(onset, duration, description)
    try:
        raw.set_annotations(annot)
    except AttributeError:
        raw.annotations = annot

    T, F = True, False
    answer = valid_windows(raw, winlen=0.4, step=0.2)
    should_be = np.array([T, F, F, F, F, T, F, F, F, T, T, T, T, F])
    assert (answer == should_be).all()

    answer = valid_windows(raw, tmin=0.4, tmax=1.8, winlen=0.4, step=0.2)
    should_be = should_be[2:-6]
    assert (answer == should_be).all()
Beispiel #6
0
def test_silent_mne():
    from packaging import version
    has_new_mne = version.parse(mne.__version__) >= version.parse('0.19.0')
    raw = create_fake_raw(n_channels=2, n_samples=10, sfreq=10.)
    pos = np.random.random((2, 3))

    if has_new_mne:
        ch_pos = {'a': pos[0, :], 'b': pos[1, :]}
        mntg = mne.channels.make_dig_montage(ch_pos=ch_pos, coord_frame='head')
    else:
        mntg = mne.channels.Montage(pos, ['a', 'b'], 'eeg', 'fake')
    raw.set_montage(mntg)

    # adding new reference channel without position gives a warning:
    with pytest.warns(Warning):
        mne.add_reference_channels(raw.copy(), ['nose'])

    # ... but not when using silent_mne() context manager:
    with pytest.warns(None) as record:
        with silent_mne():
            mne.add_reference_channels(raw.copy(), ['nose'])

    # new numpy (>= 1.20) raises warnings on older mne (<= 0.20)
    mne_version = version.parse(mne.__version__)

    if mne_version >= version.parse('0.21'):
        assert len(record) == 0

    # with `full_silence` no warnings are raised
    # (irrespective of mne and numpy)
    with pytest.warns(None) as record:
        with silent_mne(full_silence=True):
            mne.add_reference_channels(raw.copy(), ['nose'])
            warn('annoying warning!', DeprecationWarning)

    assert len(record) == 0
Beispiel #7
0
def test_get_info():
    raw = create_fake_raw(n_channels=2, n_samples=5, sfreq=25.)
    assert raw.info == get_info(raw)
    assert raw.info == get_info(raw.info)