code: def test_use_coil_def(tmp_path):
      """Test use_coil_def."""
      info = create_info(1, 1000.0, "mag")
      info["chs"][0]["coil_type"] = 9999
      info["chs"][0]["loc"][:] = [0, 0, 0.02, 1, 0, 0, 0, 1, 0, 0, 0, 1]
      sphere = make_sphere_model((0.0, 0.0, 0.0), 0.01)
      src = setup_volume_source_space(pos=5, sphere=sphere)
      trans = Transform("head", "mri", None)
      with pytest.raises(
          RuntimeError, match="coil definition not found"
      ):
          make_forward_solution(info, trans, src, sphere)
      coil_fname = tmp_path / "coil_def.dat"
      with open(coil_fname, "w") as fid:
          fid.write(
              """# custom cube coil def
  1   9999    2   8  3e-03  0.000e+00     "Test"
    0.1250 -0.750e-03 -0.750e-03 -0.750e-03  0.000  0.000"""
          )
      with pytest.raises(RuntimeError, match="Could not interpret"):
          with use_coil_def(coil_fname):
              make_forward_solution(info, trans, src, sphere)
      with open(coil_fname, "w") as fid:
          fid.write(
              """# custom cube coil def
  1   9999    2   8  3e-03  0.000e+00     "Test"
    0.1250 -0.750e-03 -0.750e-03 -0.750e-03  0.000  0.000  1.000
    0.1250 -0.750e-03  0.750e-03 -0.750e-03  0.000  0.000  1.000
    0.1250  0.750e-03 -0.750e-03 -0.750e-03  0.000  0.000  1.000
    0.1250  0.750e-03  0.750e-03 -0.750e-03  0.000  0.000  1.000
    0.1250 -0.750e-03 -0.750e-03  0.750e-03  0.000  0.000  1.000
    0.1250 -0.750e-03  0.750e-03  0.750e-03  0.000  0.000  1.000
    0.1250  0.750e-03 -0.750e-03  0.750e-03  0.000  0.000  1.000
    0.1250  0.750e-03  0.750e-03  0.750e-03  0.000  0.000  1.000"""
          )
      with use_coil_def(coil_fname):
          make_forward_solution(info, trans, src, sphere)
  
imports: from itertools import product
  from pathlib import Path
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_equal, assert_array_less
  from mne import convert_forward_solution, create_info, get_volume_labels_from_aseg, make_forward_solution, make_sphere_model, pick_info, pick_types, pick_types_forward, read_cov, read_dipole, read_evokeds, read_forward_solution, read_source_spaces, setup_volume_source_space, write_forward_solution
  from mne._fiff.constants import FIFF
  from mne.bem import make_bem_solution, read_bem_surfaces
  from mne.channels import make_standard_montage
  from mne.datasets import testing
  from mne.dipole import Dipole, fit_dipole
  from mne.forward import Forward, _do_forward_solution, use_coil_def
  from mne.forward._compute_forward import _magnetic_dipole_field_vec
  from mne.forward._make_forward import _create_meg_coils, make_forward_dipole
  from mne.forward.tests.test_forward import assert_forward_allclose
  from mne.io import read_info, read_raw_bti, read_raw_fif, read_raw_kit
  from mne.simulation import simulate_evoked
  from mne.source_estimate import VolSourceEstimate
  from mne.source_space._source_space import _compare_source_spaces, setup_source_space, write_source_spaces
  from mne.surface import _get_ico_surface
  from mne.transforms import Transform
  from mne.utils import catch_logging, requires_mne, requires_mne_mark, requires_openmeeg_mark, run_subprocess
label_desc: Use image node_id 17 for calling a global function with example usage: test_use_coil_def(tmp_path) without return types