def test_cosmo_dataset(fn): skip_if_no_external('scipy', min_version='0.8') mat = _create_small_mat_dataset_dict() ds_mat = cosmo.from_any(mat) savemat(fn, mat) # test Dataset, filename, dict in matlab form, and input from loadmat for input in (ds_mat, fn, mat, loadmat(fn)): # check dataset creation ds = cosmo.from_any(mat) # ensure dataset has expected vlaues assert_array_equal(ds.samples, mat['samples']) _assert_set_equal(ds.sa.keys(), ['chunks', 'labels', 'targets']) _assert_set_equal(ds.sa.keys(), ['chunks', 'labels', 'targets']) _assert_set_equal(ds.a.keys(), ['name']) assert_array_equal(ds.a.name, 'input') assert_array_equal(ds.sa.chunks, [2, 2]) assert_array_equal(ds.sa.targets, [1, 2]) assert_array_equal(ds.sa.labels, ['yin', 'yan']) assert_array_equal(ds.fa.i, [3, 2, 1]) assert_array_equal(ds.fa.j, [1, 2, 2]) # check mapping to matlab format mat_mapped = cosmo.map2cosmo(ds) for m in (mat, mat_mapped): assert_array_equal(ds_mat.samples, m['samples']) _assert_ds_mat_attributes_equal(ds_mat, m)
def test_cosmo_repr_and_str(): # simple smoke test for __repr__ and __str__ creators = (_create_small_mat_nbrhood_dict, _create_small_mat_dataset_dict) for creator in creators: obj = cosmo.from_any(creator()) for fmt in 'rs': obj_str = (("%%%s" % fmt) % obj) assert_true(obj.__class__.__name__ in obj_str)
def test_cosmo_io_h5py(fn): skip_if_no_external('h5py') from mvpa2.base.hdf5 import h5save, h5load # Dataset from cosmo ds = cosmo.from_any(_create_small_mat_dataset_dict()) h5save(fn, ds) ds_loaded = h5load(fn) _assert_ds_equal(ds, ds_loaded) # Queryengine qe = cosmo.from_any(_create_small_mat_nbrhood_dict()) h5save(fn, qe) qe_loaded = h5load(fn) assert_array_equal(qe.ids, qe_loaded.ids) _assert_array_collectable_equal(qe.a, qe_loaded.a) _assert_array_collectable_equal(qe.fa, qe_loaded.fa)
def test_cosmo_searchlight(): ds = cosmo.from_any(_create_small_mat_dataset_dict()) sl = cosmo.CosmoSearchlight(mean_feature(), _create_small_mat_nbrhood_dict()) ds_count = sl(ds) dict_count = Dataset(samples=ds_count.samples, fa=dict(k=arr([4, 3, 2, 1])), sa=dict((k, ds.sa[k].value) for k in ds.sa.keys()), a=dict(name=['output'])) _assert_ds_less_or_equal(dict_count, ds_count)
def test_cosmo_dataset(fn): skip_if_no_external('scipy', min_version='0.8') mat = _create_small_mat_dataset_dict() ds_mat = cosmo.from_any(mat) savemat(fn, mat) # test Dataset, filename, dict in matlab form, and input from loadmat for input in (ds_mat, fn, mat, loadmat(fn)): # check dataset creation ds = cosmo.from_any(mat) # ensure dataset has expected vlaues assert_array_equal(ds.samples, mat['samples']) _assert_set_equal(ds.sa.keys(), ['chunks', 'labels', 'targets']) _assert_set_equal(ds.sa.keys(), ['chunks', 'labels', 'targets']) _assert_set_equal(ds.a.keys(), ['name', 'size']) assert_array_equal(ds.a.name, 'input') assert_array_equal(ds.a.size, [3, 2, 1]) assert_array_equal(ds.sa.chunks, [2, 2]) assert_array_equal(ds.sa.targets, [1, 2]) assert_array_equal(ds.sa.labels, ['yin', 'yan']) assert_array_equal(ds.fa.i, [3, 2, 1]) assert_array_equal(ds.fa.j, [1, 2, 2]) for convert_tuples in (True, False): ds_copy = ds.copy(deep=True) if convert_tuples: # use dataset with tuple data ds_copy.a.size = tuple(ds_copy.a.size) # check mapping to matlab format mat_mapped = cosmo.map2cosmo(ds_copy) for m in (mat, mat_mapped): assert_array_equal(ds_mat.samples, m['samples']) _assert_ds_mat_attributes_equal(ds_mat, m)
def test_cosmo_queryengine(fn): skip_if_no_external('scipy', min_version='0.8') nbrhood_mat = _create_small_mat_nbrhood_dict() neighbors = nbrhood_mat['neighbors'] savemat(fn, nbrhood_mat) # test dict in matlab form, filename, and through QueryEngine loader for input in (nbrhood_mat, fn, cosmo.CosmoQueryEngine.from_mat(neighbors)): qe = cosmo.from_any(input) assert_array_equal(qe.ids, [0, 1, 2, 3]) for i in qe.ids: nbr_fids_base0 = neighbors[0, i][0] - 1 assert_array_equal(qe.query_byid(i), nbr_fids_base0) _assert_ds_mat_attributes_equal(qe, nbrhood_mat, ('fa', 'a'))