def test_fetch_localizer_contrasts(tmp_path, request_mocker, localizer_mocker): # 2 subjects dataset = func.fetch_localizer_contrasts( ['checkerboard'], n_subjects=2, data_dir=str(tmp_path), verbose=1) assert not hasattr(dataset, 'anats') assert not hasattr(dataset, 'tmaps') assert not hasattr(dataset, 'masks') assert isinstance(dataset.cmaps[0], _basestring) assert isinstance(dataset.ext_vars, np.recarray) assert len(dataset.cmaps) == 2 assert dataset.ext_vars.size == 2 # Multiple contrasts dataset = func.fetch_localizer_contrasts( ['checkerboard', 'horizontal checkerboard'], n_subjects=2, data_dir=str(tmp_path), verbose=1) assert isinstance(dataset.ext_vars, np.recarray) assert isinstance(dataset.cmaps[0], _basestring) assert len(dataset.cmaps) == 2 * 2 # two contrasts are fetched assert dataset.ext_vars.size == 2 # all get_*=True dataset = func.fetch_localizer_contrasts( ['checkerboard'], n_subjects=1, data_dir=str(tmp_path), get_anats=True, get_masks=True, get_tmaps=True, verbose=1) assert isinstance(dataset.ext_vars, np.recarray) assert isinstance(dataset.anats[0], _basestring) assert isinstance(dataset.cmaps[0], _basestring) assert isinstance(dataset.masks[0], _basestring) assert isinstance(dataset.tmaps[0], _basestring) assert dataset.ext_vars.size == 1 assert len(dataset.anats) == 1 assert len(dataset.cmaps) == 1 assert len(dataset.masks) == 1 assert len(dataset.tmaps) == 1 assert dataset.description != '' # grab a given list of subjects dataset2 = func.fetch_localizer_contrasts( ['checkerboard'], n_subjects=[2, 3, 5], data_dir=str(tmp_path), verbose=1) assert dataset2.ext_vars.size == 3 assert len(dataset2.cmaps) == 3 assert ([row[0] for row in dataset2.ext_vars] == [b'S02', b'S03', b'S05'])
def test_fetch_localizer_contrasts(): # 2 subjects dataset = func.fetch_localizer_contrasts( ['checkerboard'], n_subjects=2, data_dir=tst.tmpdir, verbose=1) assert_false(hasattr(dataset, 'anats')) assert_false(hasattr(dataset, 'tmaps')) assert_false(hasattr(dataset, 'masks')) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_equal(len(dataset.cmaps), 2) assert_equal(dataset.ext_vars.size, 2) # Multiple contrasts dataset = func.fetch_localizer_contrasts( ['checkerboard', 'horizontal checkerboard'], n_subjects=2, data_dir=tst.tmpdir, verbose=1) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_equal(len(dataset.cmaps), 2 * 2) # two contrasts are fetched assert_equal(dataset.ext_vars.size, 2) # all get_*=True dataset = func.fetch_localizer_contrasts( ['checkerboard'], n_subjects=1, data_dir=tst.tmpdir, get_anats=True, get_masks=True, get_tmaps=True, verbose=1) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.anats[0], _basestring)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.masks[0], _basestring)) assert_true(isinstance(dataset.tmaps[0], _basestring)) assert_equal(dataset.ext_vars.size, 1) assert_equal(len(dataset.anats), 1) assert_equal(len(dataset.cmaps), 1) assert_equal(len(dataset.masks), 1) assert_equal(len(dataset.tmaps), 1) assert_not_equal(dataset.description, '') # grab a given list of subjects dataset2 = func.fetch_localizer_contrasts( ['checkerboard'], n_subjects=[2, 3, 5], data_dir=tst.tmpdir, verbose=1) assert_equal(dataset2.ext_vars.size, 3) assert_equal(len(dataset2.cmaps), 3) assert_equal([row[0] for row in dataset2.ext_vars], [b'S02', b'S03', b'S05'])
def test_fetch_localizer_contrasts(): local_url = "file://" + datadir ids = np.asarray([('S%2d' % i).encode() for i in range(94)]) ids = ids.view(dtype=[('subject_id', 'S3')]) mock_fetch_files.add_csv('cubicwebexport.csv', ids) mock_fetch_files.add_csv('cubicwebexport2.csv', ids) # Disabled: cannot be tested without actually fetching covariates CSV file # All subjects dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tmpdir, url=local_url, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.tmaps is None) assert_true(dataset.masks is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_equal(dataset.ext_vars.size, 94) assert_equal(len(dataset.cmaps), 94) # 20 subjects dataset = func.fetch_localizer_contrasts(["checkerboard"], n_subjects=20, data_dir=tmpdir, url=local_url, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.tmaps is None) assert_true(dataset.masks is None) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_equal(len(dataset.cmaps), 20) assert_equal(dataset.ext_vars.size, 20) # Multiple contrasts dataset = func.fetch_localizer_contrasts( ["checkerboard", "horizontal checkerboard"], n_subjects=20, data_dir=tmpdir, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.tmaps is None) assert_true(dataset.masks is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_equal(len(dataset.cmaps), 20 * 2) # two contrasts are fetched assert_equal(dataset.ext_vars.size, 20) # get_anats=True dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tmpdir, url=local_url, get_anats=True, verbose=0) assert_true(dataset.masks is None) assert_true(dataset.tmaps is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.anats[0], _basestring)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_equal(dataset.ext_vars.size, 94) assert_equal(len(dataset.anats), 94) assert_equal(len(dataset.cmaps), 94) # get_masks=True dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tmpdir, url=local_url, get_masks=True, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.tmaps is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.masks[0], _basestring)) assert_equal(dataset.ext_vars.size, 94) assert_equal(len(dataset.cmaps), 94) assert_equal(len(dataset.masks), 94) # get_tmaps=True dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tmpdir, url=local_url, get_tmaps=True, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.masks is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.tmaps[0], _basestring)) assert_equal(dataset.ext_vars.size, 94) assert_equal(len(dataset.cmaps), 94) assert_equal(len(dataset.tmaps), 94) # all get_*=True dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tmpdir, url=local_url, get_anats=True, get_masks=True, get_tmaps=True, verbose=0) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.anats[0], _basestring)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.masks[0], _basestring)) assert_true(isinstance(dataset.tmaps[0], _basestring)) assert_equal(dataset.ext_vars.size, 94) assert_equal(len(dataset.anats), 94) assert_equal(len(dataset.cmaps), 94) assert_equal(len(dataset.masks), 94) assert_equal(len(dataset.tmaps), 94)
def test_fetch_localizer_contrasts(tmp_path, request_mocker, localizer_mocker): # 2 subjects dataset = func.fetch_localizer_contrasts(['checkerboard'], n_subjects=2, data_dir=tmp_path, verbose=1, legacy_format=True) assert not hasattr(dataset, 'anats') assert not hasattr(dataset, 'tmaps') assert not hasattr(dataset, 'masks') assert isinstance(dataset.cmaps[0], str) assert isinstance(dataset.ext_vars, np.recarray) assert len(dataset.cmaps) == 2 assert dataset.ext_vars.size == 2 dataset = func.fetch_localizer_contrasts(['checkerboard'], n_subjects=2, data_dir=tmp_path, verbose=1, legacy_format=False) assert not hasattr(dataset, 'anats') assert not hasattr(dataset, 'tmaps') assert not hasattr(dataset, 'masks') assert isinstance(dataset.cmaps[0], str) assert isinstance(dataset.ext_vars, pd.DataFrame) assert len(dataset.cmaps) == 2 assert len(dataset['ext_vars']) == 2 # Multiple contrasts dataset = func.fetch_localizer_contrasts( ['checkerboard', 'horizontal checkerboard'], n_subjects=2, data_dir=tmp_path, verbose=1, legacy_format=False) assert isinstance(dataset.ext_vars, pd.DataFrame) assert isinstance(dataset.cmaps[0], str) assert len(dataset.cmaps) == 2 * 2 # two contrasts are fetched assert len(dataset['ext_vars']) == 2 # all get_*=True dataset = func.fetch_localizer_contrasts(['checkerboard'], n_subjects=1, data_dir=tmp_path, get_anats=True, get_masks=True, get_tmaps=True, verbose=1, legacy_format=False) assert isinstance(dataset.ext_vars, pd.DataFrame) assert isinstance(dataset.anats[0], str) assert isinstance(dataset.cmaps[0], str) assert isinstance(dataset.masks[0], str) assert isinstance(dataset.tmaps[0], str) assert len(dataset['ext_vars']) == 1 assert len(dataset.anats) == 1 assert len(dataset.cmaps) == 1 assert len(dataset.masks) == 1 assert len(dataset.tmaps) == 1 assert dataset.description != '' # grab a given list of subjects dataset2 = func.fetch_localizer_contrasts(['checkerboard'], n_subjects=[2, 3, 5], data_dir=tmp_path, verbose=1, legacy_format=False) assert len(dataset2['ext_vars']) == 3 assert len(dataset2.cmaps) == 3 assert (list(dataset2['ext_vars']['participant_id'].values) == [ 'S02', 'S03', 'S05' ])
def test_fetch_localizer_contrasts(): # All subjects n_subjects = 2 # 94 dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tst.tmpdir, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.tmaps is None) assert_true(dataset.masks is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_equal(dataset.ext_vars.size, n_subjects) assert_equal(len(dataset.cmaps), n_subjects) # 20 subjects n_subjects = 1 # 20 dataset = func.fetch_localizer_contrasts(["checkerboard"], n_subjects=n_subjects, data_dir=tst.tmpdir, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.tmaps is None) assert_true(dataset.masks is None) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_equal(len(dataset.cmaps), n_subjects) assert_equal(dataset.ext_vars.size, n_subjects) # Multiple contrasts n_subjects = 1 # 20 dataset = func.fetch_localizer_contrasts( ["checkerboard", "horizontal checkerboard"], n_subjects=n_subjects, data_dir=tst.tmpdir, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.tmaps is None) assert_true(dataset.masks is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_equal(len(dataset.cmaps), n_subjects * 2) # two contrasts are fetched assert_equal(dataset.ext_vars.size, n_subjects) # get_anats=True n_subjects = 2 # 94 dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tst.tmpdir, get_anats=True, verbose=0) assert_true(dataset.masks is None) assert_true(dataset.tmaps is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.anats[0], _basestring)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_equal(dataset.ext_vars.size, n_subjects) assert_equal(len(dataset.anats), n_subjects) assert_equal(len(dataset.cmaps), n_subjects) # get_masks=True n_subjects = 2 # 94 dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tst.tmpdir, get_masks=True, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.tmaps is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.masks[0], _basestring)) assert_equal(dataset.ext_vars.size, n_subjects) assert_equal(len(dataset.cmaps), n_subjects) assert_equal(len(dataset.masks), n_subjects) # get_tmaps=True n_subjects = 2 # 94 dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tst.tmpdir, get_tmaps=True, verbose=0) assert_true(dataset.anats is None) assert_true(dataset.masks is None) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.tmaps[0], _basestring)) assert_equal(dataset.ext_vars.size, n_subjects) assert_equal(len(dataset.cmaps), n_subjects) assert_equal(len(dataset.tmaps), n_subjects) # all get_*=True n_subjects = 2 # 94 dataset = func.fetch_localizer_contrasts(["checkerboard"], data_dir=tst.tmpdir, get_anats=True, get_masks=True, get_tmaps=True, verbose=0) assert_true(isinstance(dataset.ext_vars, np.recarray)) assert_true(isinstance(dataset.anats[0], _basestring)) assert_true(isinstance(dataset.cmaps[0], _basestring)) assert_true(isinstance(dataset.masks[0], _basestring)) assert_true(isinstance(dataset.tmaps[0], _basestring)) assert_equal(dataset.ext_vars.size, n_subjects) assert_equal(len(dataset.anats), n_subjects) assert_equal(len(dataset.cmaps), n_subjects) assert_equal(len(dataset.masks), n_subjects) assert_equal(len(dataset.tmaps), n_subjects) assert_not_equal(dataset.description, '') # grab a given list of subjects n_subjects = [2] # [2, 3, 5] positions = [1] # [1, 2, 4] dataset2 = func.fetch_localizer_contrasts(["checkerboard"], n_subjects=[2, 3, 5], data_dir=tst.tmpdir, get_anats=True, get_masks=True, get_tmaps=True, verbose=0) # Check that we are getting only 3 subjects assert_equal(dataset2.ext_vars.size, len(n_subjects)) assert_equal(len(dataset2.anats), len(n_subjects)) assert_equal(len(dataset2.cmaps), len(n_subjects)) assert_equal(len(dataset2.masks), len(n_subjects)) assert_equal(len(dataset2.tmaps), len(n_subjects)) np.testing.assert_array_equal(dataset2.ext_vars, dataset.ext_vars[positions]) np.testing.assert_array_equal(dataset2.anats, np.array(dataset.anats)[positions]) np.testing.assert_array_equal(dataset2.cmaps, np.array(dataset.cmaps)[positions]) np.testing.assert_array_equal(dataset2.masks, np.array(dataset.masks)[positions]) np.testing.assert_array_equal(dataset2.tmaps, np.array(dataset.tmaps)[positions])