def test_morph_labels(): """Test morph_labels.""" # Just process the first 5 labels for speed parc_fsaverage = read_labels_from_annot('fsaverage', 'aparc', subjects_dir=subjects_dir)[:5] parc_sample = read_labels_from_annot('sample', 'aparc', subjects_dir=subjects_dir)[:5] parc_fssamp = morph_labels(parc_fsaverage, 'sample', subjects_dir=subjects_dir) for lf, ls, lfs in zip(parc_fsaverage, parc_sample, parc_fssamp): assert lf.hemi == ls.hemi == lfs.hemi assert lf.name == ls.name == lfs.name perc_1 = np.in1d(lfs.vertices, ls.vertices).mean() * 100 perc_2 = np.in1d(ls.vertices, lfs.vertices).mean() * 100 # Ideally this would be 100%, but we do not use the same algorithm # as FreeSurfer ... assert perc_1 > 92 assert perc_2 > 88 with pytest.raises(ValueError, match='wrong and fsaverage'): morph_labels(parc_fsaverage, 'sample', subjects_dir=subjects_dir, subject_from='wrong') with pytest.raises(RuntimeError, match='Number of surface vertices'): _load_vert_pos('sample', subjects_dir, 'white', 'lh', 1) for label in parc_fsaverage: label.subject = None with pytest.raises(ValueError, match='subject_from must be provided'): morph_labels(parc_fsaverage, 'sample', subjects_dir=subjects_dir)
def test_morph_labels(): """Test morph_labels.""" # Just process the first 5 labels for speed parc_fsaverage = read_labels_from_annot( 'fsaverage', 'aparc', subjects_dir=subjects_dir)[:5] parc_sample = read_labels_from_annot( 'sample', 'aparc', subjects_dir=subjects_dir)[:5] parc_fssamp = morph_labels( parc_fsaverage, 'sample', subjects_dir=subjects_dir) for lf, ls, lfs in zip(parc_fsaverage, parc_sample, parc_fssamp): assert lf.hemi == ls.hemi == lfs.hemi assert lf.name == ls.name == lfs.name perc_1 = np.in1d(lfs.vertices, ls.vertices).mean() * 100 perc_2 = np.in1d(ls.vertices, lfs.vertices).mean() * 100 # Ideally this would be 100%, but we do not use the same algorithm # as FreeSurfer ... assert perc_1 > 92 assert perc_2 > 88 with pytest.raises(ValueError, match='wrong and fsaverage'): morph_labels(parc_fsaverage, 'sample', subjects_dir=subjects_dir, subject_from='wrong') with pytest.raises(RuntimeError, match='Number of surface vertices'): _load_vert_pos('sample', subjects_dir, 'white', 'lh', 1) for label in parc_fsaverage: label.subject = None with pytest.raises(ValueError, match='subject_from must be provided'): morph_labels(parc_fsaverage, 'sample', subjects_dir=subjects_dir)