|
4 | 4 | # License: BSD Style.
|
5 | 5 |
|
6 | 6 | import os.path as op
|
7 |
| - |
8 | 7 | import numpy as np
|
9 |
| -from numpy.testing import assert_array_equal |
10 |
| - |
11 | 8 | import pytest
|
12 | 9 |
|
| 10 | +from distutils.version import LooseVersion |
| 11 | +from numpy.testing import assert_array_equal |
| 12 | + |
13 | 13 | from mne.utils import run_tests_if_main, requires_good_network
|
14 | 14 | from mne.utils import requires_pandas, requires_version
|
15 | 15 | from mne.datasets.sleep_physionet import age, temazepam
|
16 | 16 | from mne.datasets.sleep_physionet._utils import _update_sleep_temazepam_records
|
17 | 17 | from mne.datasets.sleep_physionet._utils import _update_sleep_age_records
|
18 | 18 | from mne.datasets.sleep_physionet._utils import AGE_SLEEP_RECORDS
|
19 | 19 | from mne.datasets.sleep_physionet._utils import TEMAZEPAM_SLEEP_RECORDS
|
20 |
| -# from mne.datasets.sleep_physionet._utils import BASE_URL # XXX not used |
21 | 20 |
|
22 | 21 |
|
23 | 22 | @pytest.fixture(scope='session')
|
@@ -71,7 +70,15 @@ def test_run_update_age_records(tmpdir):
|
71 | 70 | fname = op.join(str(tmpdir), "records.csv")
|
72 | 71 | _update_sleep_age_records(fname)
|
73 | 72 | data = pd.read_csv(fname)
|
74 |
| - pd.testing.assert_frame_equal(data, pd.read_csv(AGE_SLEEP_RECORDS)) |
| 73 | + |
| 74 | + if LooseVersion(pd.__version__) < LooseVersion('0.23.0'): |
| 75 | + expected = pd.read_csv(AGE_SLEEP_RECORDS) |
| 76 | + assert_array_equal( |
| 77 | + data[['subject', 'sha', 'fname']].values, |
| 78 | + expected[['subject', 'sha', 'fname']].values, |
| 79 | + ) |
| 80 | + else: |
| 81 | + pd.testing.assert_frame_equal(data, pd.read_csv(AGE_SLEEP_RECORDS)) |
75 | 82 |
|
76 | 83 |
|
77 | 84 | def test_sleep_physionet_age(physionet_tmpdir, mocker):
|
@@ -129,14 +136,22 @@ def test_sleep_physionet_age(physionet_tmpdir, mocker):
|
129 | 136 | @requires_good_network
|
130 | 137 | @requires_pandas
|
131 | 138 | @requires_version('xlrd', '0.9')
|
132 |
| -@pytest.mark.skip(reason="Broken with new pandas 0.24 and xlrd") |
133 | 139 | def test_run_update_temazepam_records(tmpdir):
|
134 | 140 | """Test Sleep Physionet URL handling."""
|
135 | 141 | import pandas as pd
|
136 | 142 | fname = op.join(str(tmpdir), "records.csv")
|
137 | 143 | _update_sleep_temazepam_records(fname)
|
138 | 144 | data = pd.read_csv(fname)
|
139 |
| - pd.testing.assert_frame_equal(data, pd.read_csv(TEMAZEPAM_SLEEP_RECORDS)) |
| 145 | + |
| 146 | + if LooseVersion(pd.__version__) < LooseVersion('0.23.0'): |
| 147 | + expected = pd.read_csv(TEMAZEPAM_SLEEP_RECORDS) |
| 148 | + assert_array_equal( |
| 149 | + data[['subject', 'sha_Hypnogram', 'sha_PSG']].values, |
| 150 | + expected[['subject', 'sha_Hypnogram', 'sha_PSG']].values, |
| 151 | + ) |
| 152 | + else: |
| 153 | + pd.testing.assert_frame_equal( |
| 154 | + data, pd.read_csv(TEMAZEPAM_SLEEP_RECORDS)) |
140 | 155 |
|
141 | 156 |
|
142 | 157 | def test_sleep_physionet_temazepam(physionet_tmpdir, mocker):
|
|
0 commit comments