def test_label_in_src(): """Test label in src.""" src = read_source_spaces(src_fname) label = read_label(v1_label_fname) # construct label from source space vertices vert_in_src = np.intersect1d(label.vertices, src[0]['vertno'], True) where = np.in1d(label.vertices, vert_in_src) pos_in_src = label.pos[where] values_in_src = label.values[where] label_src = Label(vert_in_src, pos_in_src, values_in_src, hemi='lh').fill(src) # check label vertices vertices_status = np.in1d(src[0]['nearest'], label.vertices) vertices_in = np.nonzero(vertices_status)[0] vertices_out = np.nonzero(np.logical_not(vertices_status))[0] assert_array_equal(label_src.vertices, vertices_in) assert_array_equal(np.in1d(vertices_out, label_src.vertices), False) # check values value_idx = np.digitize(src[0]['nearest'][vertices_in], vert_in_src, True) assert_array_equal(label_src.values, values_in_src[value_idx]) # test exception vertices = np.append([-1], vert_in_src) assert_raises(ValueError, Label(vertices, hemi='lh').fill, src) # test filling empty label label = Label([], hemi='lh') label.fill(src) assert_array_equal(label.vertices, np.array([], int))
def test_label_in_src(): """Test label in src.""" src = read_source_spaces(src_fname) label = read_label(v1_label_fname) # construct label from source space vertices vert_in_src = np.intersect1d(label.vertices, src[0]['vertno'], True) where = np.in1d(label.vertices, vert_in_src) pos_in_src = label.pos[where] values_in_src = label.values[where] label_src = Label(vert_in_src, pos_in_src, values_in_src, hemi='lh').fill(src) # check label vertices vertices_status = np.in1d(src[0]['nearest'], label.vertices) vertices_in = np.nonzero(vertices_status)[0] vertices_out = np.nonzero(np.logical_not(vertices_status))[0] assert_array_equal(label_src.vertices, vertices_in) assert_array_equal(np.in1d(vertices_out, label_src.vertices), False) # check values value_idx = np.digitize(src[0]['nearest'][vertices_in], vert_in_src, True) assert_array_equal(label_src.values, values_in_src[value_idx]) # test exception vertices = np.append([-1], vert_in_src) pytest.raises(ValueError, Label(vertices, hemi='lh').fill, src) # test filling empty label label = Label([], hemi='lh') label.fill(src) assert_array_equal(label.vertices, np.array([], int))
def test_label_fill_restrict(fname): """Test label in fill and restrict.""" src = read_source_spaces(src_fname) label = read_label(fname) # construct label from source space vertices label_src = label.restrict(src) vert_in_src = label_src.vertices values_in_src = label_src.values if check_version('scipy', '1.3') and fname == real_label_fname: # Check that we can auto-fill patch info quickly for one condition for s in src: s['nearest'] = None with pytest.warns(None): label_src = label_src.fill(src) else: label_src = label_src.fill(src) assert src[0]['nearest'] is not None # check label vertices vertices_status = np.in1d(src[0]['nearest'], label.vertices) vertices_in = np.nonzero(vertices_status)[0] vertices_out = np.nonzero(np.logical_not(vertices_status))[0] assert_array_equal(label_src.vertices, vertices_in) assert_array_equal(np.in1d(vertices_out, label_src.vertices), False) # check values value_idx = np.digitize(src[0]['nearest'][vertices_in], vert_in_src, True) assert_array_equal(label_src.values, values_in_src[value_idx]) # test exception vertices = np.append([-1], vert_in_src) with pytest.raises(ValueError, match='does not contain all of the label'): Label(vertices, hemi='lh').fill(src) # test filling empty label label = Label([], hemi='lh') label.fill(src) assert_array_equal(label.vertices, np.array([], int))