code: def test_plot_topomap_cnorm():
      """Test colormap normalization."""
      from matplotlib.colors import PowerNorm, TwoSlopeNorm
  
      rng = np.random.default_rng(42)
      v = rng.uniform(low=-1, high=2.5, size=64)
      v[:3] = [-1, 0, 2.5]
  
      montage = make_standard_montage("biosemi64")
      info = create_info(montage.ch_names, 256, "eeg").set_montage(
          "biosemi64"
      )
      cnorm = TwoSlopeNorm(vmin=-1, vcenter=0, vmax=2.5)
  
      # pass only cnorm, no vmin/vmax
      plot_topomap(v, info, cnorm=cnorm)
  
      # pass cnorm and vmin
      with pytest.warns(
          RuntimeWarning, match="implicitly defines vmin=-1"
      ):
          plot_topomap(v, info, vlim=(-10, None), cnorm=cnorm)
  
      # pass cnorm and vmax
      with pytest.warns(
          RuntimeWarning, match="implicitly defines .* vmax=2.5"
      ):
          plot_topomap(v, info, vlim=(None, 10), cnorm=cnorm)
  
      # try another subclass of mpl.colors.Normalize
      plot_topomap(v, info, cnorm=PowerNorm(0.5))
  
imports: from functools import partial
  from pathlib import Path
  import matplotlib
  import matplotlib.pyplot
  import numpy
  import pytest
  from matplotlib.patches import Circle
  from numpy.testing import assert_almost_equal, assert_array_equal, assert_equal
  from mne import Epochs, EvokedArray, Projection, compute_proj_evoked, compute_proj_raw, create_info, find_layout, make_fixed_length_events, pick_types, read_cov, read_evokeds, read_proj
  from mne._fiff.compensator import get_current_comp
  from mne._fiff.constants import FIFF
  from mne._fiff.pick import _picks_to_idx, channel_indices_by_type, pick_info
  from mne._fiff.proj import make_eeg_average_ref_proj
  from mne.channels import find_ch_adjacency, make_dig_montage, make_standard_montage, read_layout
  from mne.datasets import testing
  from mne.io import RawArray, read_info, read_raw_fif
  from mne.preprocessing import compute_bridged_electrodes
  from mne.time_frequency.tfr import AverageTFR
  from mne.viz import plot_evoked_topomap, plot_projs_topomap, topomap
  from mne.viz.tests.test_raw import _proj_status
  from mne.viz.topomap import _get_pos_outlines, _onselect, plot_arrowmap, plot_bridged_electrodes, plot_ch_adjacency, plot_psds_topomap, plot_topomap
  from mne.viz.utils import _fake_click, _fake_keypress, _fake_scroll, _find_peaks
label_desc: Use image node_id 21 for calling a global function with example usage: test_plot_topomap_cnorm() without return types