code: def test_chpi_adjust():
      """Test cHPI logging and adjustment."""
      raw = read_raw_fif(chpi_fif_fname, allow_maxshield="yes")
      with catch_logging() as log:
          _get_hpi_initial_fit(raw.info, adjust=True, verbose="debug")
          get_chpi_info(raw.info, on_missing="raise", verbose="debug")
      # Ran MaxFilter (with -list, -v, -movecomp, etc.), and got:
      msg = [
          "HPIFIT: 5 coils digitized in order 5 1 4 3 2",
          "HPIFIT: 3 coils accepted: 1 2 4",
          "Hpi coil moments (3 5):",
          "2.08542e-15 -1.52486e-15 -1.53484e-15",
          "2.14516e-15 2.09608e-15 7.30303e-16",
          "-3.2318e-16 -4.25666e-16 2.69997e-15",
          "5.21717e-16 1.28406e-15 1.95335e-15",
          "1.21199e-15 -1.25801e-19 1.18321e-15",
          "HPIFIT errors:  0.3, 0.3, 5.3, 0.4, 3.2 mm.",
          "HPI consistency of isotrak and hpifit is OK.",
          "HP fitting limits: err = 5.0 mm, gval = 0.980.",
          "Using 5 HPI coils: 83 143 203 263 323 Hz",  # actually came earlier
      ]
  
      log = log.getvalue().splitlines()
      assert set(log) == set(msg), "\n" + "\n".join(set(msg) - set(log))
  
      # Then took the raw file, did this:
      raw.info["dig"][5]["r"][2] += 1.0
      # And checked the result in MaxFilter, which changed the logging as:
      msg = (
          msg[:8]
          + [
              "HPIFIT errors:  0.3, 0.3, 5.3, 999.7, 3.2 mm.",
              "Note: HPI coil 3 isotrak is adjusted by 5.3 mm!",
              "Note: HPI coil 5 isotrak is adjusted by 3.2 mm!",
          ]
          + msg[-2:]
      )
      with catch_logging() as log:
          _get_hpi_initial_fit(raw.info, adjust=True, verbose="debug")
          get_chpi_info(raw.info, on_missing="raise", verbose="debug")
      log = log.getvalue().splitlines()
      assert set(log) == set(msg), "\n" + "\n".join(set(msg) - set(log))
  
imports: from pathlib import Path
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_equal, assert_array_less
  from scipy.interpolate import interp1d
  from scipy.spatial.distance import cdist
  from mne import pick_info, pick_types
  from mne._fiff.constants import FIFF
  from mne.chpi import _chpi_locs_to_times_dig, _compute_good_distances, _get_hpi_initial_fit, _setup_ext_proj, compute_chpi_amplitudes, compute_chpi_locs, compute_chpi_snr, compute_head_pos, extract_chpi_locs_ctf, extract_chpi_locs_kit, filter_chpi, get_active_chpi, get_chpi_info, head_pos_to_trans_rot_t, read_head_pos, write_head_pos
  from mne.datasets import testing
  from mne.forward._compute_forward import _MAG_FACTOR
  from mne.io import RawArray, read_info, read_raw_artemis123, read_raw_ctf, read_raw_fif, read_raw_kit
  from mne.simulation import add_chpi
  from mne.transforms import _angle_between_quats, rot_to_quat
  from mne.utils import assert_meg_snr, catch_logging, object_diff, verbose
  from mne.viz import plot_head_positions
label_desc: Use image node_id 1 for calling a global function with example usage: test_chpi_adjust() without return types