code: def test_plot_surf(engine, tmp_path, rng):
      if not is_plotly_installed() and engine == "plotly":
          pytest.skip(
              "Plotly is not installed; required for this test."
          )
      mesh = generate_surf()
      bg = rng.standard_normal(size=mesh[0].shape[0])
  
      # Plot mesh only
      plot_surf(mesh, engine=engine)
  
      # Plot mesh with background
      plot_surf(mesh, bg_map=bg, engine=engine)
      plot_surf(mesh, bg_map=bg, darkness=0.5, engine=engine)
      plot_surf(
          mesh,
          bg_map=bg,
          alpha=0.5,
          output_file=tmp_path / "tmp.png",
          engine=engine,
      )
  
      # Plot different views
      plot_surf(mesh, bg_map=bg, hemi="right", engine=engine)
      plot_surf(mesh, bg_map=bg, view="medial", engine=engine)
      plot_surf(
          mesh, bg_map=bg, hemi="right", view="medial", engine=engine
      )
  
      # Plot with colorbar
      plot_surf(mesh, bg_map=bg, colorbar=True, engine=engine)
      plot_surf(
          mesh,
          bg_map=bg,
          colorbar=True,
          cbar_vmin=0,
          cbar_vmax=150,
          cbar_tick_format="%i",
          engine=engine,
      )
      # Save execution time and memory
      plt.close()
  
      # Plot with title
      display = plot_surf(
          mesh, bg_map=bg, title="Test title", engine=engine
      )
      if engine == "matplotlib":
          assert len(display.axes) == 1
          assert display.axes[0].title._text == "Test title"
  
imports: import re
  import tempfile
  import unittest.mock
  import matplotlib.pyplot
  import numpy
  import pytest
  from matplotlib.figure import Figure
  from numpy.testing import assert_array_equal
  from nilearn._utils.helpers import is_kaleido_installed, is_plotly_installed
  from nilearn.conftest import _rng
  from nilearn.datasets import fetch_surf_fsaverage
  from nilearn.plotting.displays import PlotlySurfaceFigure
  from nilearn.plotting.surf_plotting import VALID_HEMISPHERES, VALID_VIEWS, _compute_facecolors_matplotlib, _get_ticks_matplotlib, _get_view_plot_surf_matplotlib, _get_view_plot_surf_plotly, plot_img_on_surf, plot_surf, plot_surf_contours, plot_surf_roi, plot_surf_stat_map
  from nilearn.surface import load_surf_data, load_surf_mesh
  from nilearn.surface.tests._testing import generate_surf
label_desc: Use image node_id 18 for calling a global function with example usage: test_plot_surf(engine, tmp_path, rng) without return types