code: def test_select_sources():
      """Test the selection of sources for simulation."""
      pytest.importorskip("nibabel")
      subject = "sample"
      label_file = (
          subjects_dir
          / subject
          / "label"
          / "aparc"
          / "temporalpole-rh.label"
      )
  
      # Regardless of other parameters, using extent 0 should always yield a
      # a single source.
      tp_label = read_label(label_file)
      tp_label.values[:] = 1
      labels = ["lh", tp_label]
      locations = ["random", "center"]
      for label, location in product(labels, locations):
          label = select_sources(
              subject,
              label,
              location,
              extent=0,
              subjects_dir=subjects_dir,
          )
          assert len(label.vertices) == 1
  
      # As we increase the extent, the new region should contain the previous
      # one.
      label = select_sources(
          subject, "lh", 0, extent=0, subjects_dir=subjects_dir
      )
      for extent in range(1, 3):
          new_label = select_sources(
              subject,
              "lh",
              0,
              extent=extent * 2,
              subjects_dir=subjects_dir,
          )
          assert set(new_label.vertices) > set(label.vertices)
          assert new_label.hemi == "lh"
          label = new_label
  
      # With a large enough extent and not allowing growing outside the label,
      # every vertex of the label should be in the region.
      label = select_sources(
          subject,
          tp_label,
          0,
          extent=30,
          grow_outside=False,
          subjects_dir=subjects_dir,
      )
      assert set(label.vertices) == set(tp_label.vertices)
  
      # Without this restriction, we should get new vertices.
      label = select_sources(
          subject,
          tp_label,
          0,
          extent=30,
          grow_outside=True,
          subjects_dir=subjects_dir,
      )
      assert set(label.vertices) > set(tp_label.vertices)
  
      # Other parameters are taken into account.
      label = select_sources(
          subject,
          tp_label,
          0,
          extent=10,
          grow_outside=False,
          subjects_dir=subjects_dir,
          name="mne",
      )
      assert label.name == "mne"
      assert label.hemi == "rh"
  
imports: import glob
  import os
  import pickle
  import shutil
  from itertools import product
  from pathlib import Path
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_almost_equal, assert_array_equal, assert_array_less, assert_equal
  from scipy import sparse
  from mne import grow_labels, labels_to_stc, morph_labels, random_parcellation, read_label, read_labels_from_annot, read_source_estimate, read_source_spaces, read_surface, spatial_tris_adjacency, split_label, stc_to_label, write_labels_to_annot
  from mne.datasets import testing
  from mne.label import Label, _blend_colors, _load_vert_pos, _n_colors, _read_annot, _read_annot_cands, label_sign_flip, select_sources
  from mne.source_estimate import mesh_edges
  from mne.source_space import SourceSpaces
  from mne.surface import _mesh_borders
  from mne.utils import _record_warnings, get_subjects_dir
label_desc: Use image node_id 23 for calling a global function with example usage: test_select_sources() without return types