code: def test_surface_source_morph_round_trip(
      smooth, lower, upper, n_warn, dtype
  ):
      """Test round-trip morphing yields similar STCs."""
      kwargs = dict(smooth=smooth, warn=True, subjects_dir=subjects_dir)
      stc = mne.read_source_estimate(fname_smorph)
      if dtype is complex:
          stc.data = 1j * stc.data
          assert_array_equal(stc.data.real, 0.0)
      with _record_warnings() as w:
          morph = compute_source_morph(
              stc, "sample", "fsaverage", **kwargs
          )
      w = [ww for ww in w if "vertices not included" in str(ww.message)]
      assert len(w) == n_warn
      assert morph.morph_mat.shape == (20484, len(stc.data))
      stc_fs = morph.apply(stc)
      morph_back = compute_source_morph(
          stc_fs, "fsaverage", "sample", spacing=stc.vertices, **kwargs
      )
      assert morph_back.morph_mat.shape == (len(stc.data), 20484)
      stc_back = morph_back.apply(stc_fs)
      corr = np.corrcoef(stc.data.ravel(), stc_back.data.ravel())[0, 1]
      assert lower <= corr <= upper
      # check the round-trip power
      assert_power_preserved(stc, stc_back)
  
imports: from inspect import signature
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_equal, assert_array_less
  from scipy.sparse import csr_matrix
  from scipy.sparse import eye
  from scipy.spatial.distance import cdist
  import mne
  from mne import SourceEstimate, SourceMorph, VectorSourceEstimate, VolSourceEstimate, VolVectorSourceEstimate, compute_source_morph, get_volume_labels_from_aseg, grade_to_vertices, make_ad_hoc_cov, make_forward_solution, make_sphere_model, read_evokeds, read_forward_solution, read_freesurfer_lut, read_source_estimate, read_source_morph, setup_volume_source_space
  from mne._freesurfer import _get_atlas_values, _get_mri_info_data
  from mne.datasets import testing
  from mne.fixes import _get_img_fdata
  from mne.minimum_norm import apply_inverse, make_inverse_operator, read_inverse_operator
  from mne.source_space._source_space import _add_interpolator, _grid_interp
  from mne.transforms import quat_to_rot
  from mne.utils import _record_warnings, catch_logging
label_desc: Use image node_id 5 for calling a global function with example usage: test_surface_source_morph_round_trip(smooth, lower, upper, n_warn, dtype) without return types