def test_vol_to_surf(kind, n_scans, use_mask): img, mask_img = data_gen.generate_mni_space_img(n_scans) if not use_mask: mask_img = None if n_scans == 1: img = image.new_img_like(img, image.get_data(img).squeeze()) fsaverage = datasets.fetch_surf_fsaverage() mesh = surface.load_surf_mesh(fsaverage["pial_left"]) inner_mesh = surface.load_surf_mesh(fsaverage["white_left"]) center_mesh = np.mean([mesh[0], inner_mesh[0]], axis=0), mesh[1] proj = surface.vol_to_surf( img, mesh, kind="depth", inner_mesh=inner_mesh, mask_img=mask_img) other_proj = surface.vol_to_surf( img, center_mesh, kind=kind, mask_img=mask_img) correlation = pearsonr(proj.ravel(), other_proj.ravel())[0] assert correlation > .99 with pytest.raises(ValueError, match=".*interpolation.*"): surface.vol_to_surf(img, mesh, interpolation="bad")
def test_depth_ball_sampling(): img, *_ = data_gen.generate_mni_space_img() mesh = surface.load_surf_mesh(datasets.fetch_surf_fsaverage()["pial_left"]) with pytest.raises(ValueError, match=".*does not support.*"): surface.vol_to_surf(img, mesh, kind="ball", depth=[.5])