code: def test_accumulate_normals():
      """Test efficient normal accumulation for surfaces."""
      # set up comparison
      n_pts = int(1.6e5)  # approx number in sample source space
      n_tris = int(3.2e5)
      # use all positive to make a worst-case for cumulative summation
      # (real "nn" vectors will have both positive and negative values)
      tris = (rng.rand(n_tris, 1) * (n_pts - 2)).astype(int)
      tris = np.c_[tris, tris + 1, tris + 2]
      tri_nn = rng.rand(n_tris, 3)
      this = dict(tris=tris, np=n_pts, ntri=n_tris, tri_nn=tri_nn)
  
      # cut-and-paste from original code in surface.py:
      #    Find neighboring triangles and accumulate vertex normals
      this["nn"] = np.zeros((this["np"], 3))
      for p in range(this["ntri"]):
          # vertex normals
          verts = this["tris"][p]
          this["nn"][verts, :] += this["tri_nn"][p, :]
      nn = _accumulate_normals(this["tris"], this["tri_nn"], this["np"])
  
      # the moment of truth (or reckoning)
      assert_allclose(nn, this["nn"], rtol=1e-7, atol=1e-7)
  
imports: from pathlib import Path
  from shutil import copytree
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_equal, assert_array_less, assert_equal
  import mne
  from mne import SourceEstimate, add_source_space_distances, compute_source_morph, get_volume_labels_from_src, make_sphere_model, morph_source_spaces, pick_types, read_bem_solution, read_bem_surfaces, read_freesurfer_lut, read_source_spaces, read_trans, setup_source_space, setup_volume_source_space, write_source_spaces
  from mne._fiff.constants import FIFF
  from mne._fiff.pick import _picks_to_idx
  from mne.datasets import testing
  from mne.fixes import _get_img_fdata
  from mne.source_estimate import _get_src_type
  from mne.source_space import compute_distance_to_sensors, get_decimated_surfaces
  from mne.source_space._source_space import _compare_source_spaces
  from mne.surface import _accumulate_normals, _triangle_neighbors
  from mne.utils import _record_warnings, requires_mne, run_subprocess
label_desc: Use image node_id 11 for calling a global function with example usage: test_accumulate_normals() without return types