code: def test_magnetic_dipole():
      """Test basic magnetic dipole forward calculation."""
      info = read_info(fname_raw)
      picks = pick_types(info, meg=True, eeg=False, exclude=[])
      info = pick_info(info, picks[:12])
      coils = _create_meg_coils(info["chs"], "normal", None)
      # magnetic dipole far (meters!) from device origin
      r0 = np.array([0.0, 13.0, -6.0])
      for ch, coil in zip(info["chs"], coils):
          rr = (ch["loc"][:3] + r0) / 2.0  # get halfway closer
          far_fwd = _magnetic_dipole_field_vec(
              r0[np.newaxis, :], [coil]
          )
          near_fwd = _magnetic_dipole_field_vec(
              rr[np.newaxis, :], [coil]
          )
          ratio = (
              8.0 if ch["ch_name"][-1] == "1" else 16.0
          )  # grad vs mag
          assert_allclose(
              np.median(near_fwd / far_fwd), ratio, atol=1e-1
          )
      # degenerate case
      r0 = coils[0]["rmag"][[0]]
      with pytest.raises(RuntimeError, match="Coil too close"):
          _magnetic_dipole_field_vec(r0, coils[:1])
      with pytest.warns(RuntimeWarning, match="Coil too close"):
          fwd = _magnetic_dipole_field_vec(
              r0, coils[:1], too_close="warning"
          )
      assert not np.isfinite(fwd).any()
      with np.errstate(invalid="ignore"):
          fwd = _magnetic_dipole_field_vec(
              r0, coils[:1], too_close="info"
          )
      assert not np.isfinite(fwd).any()
  
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 4 for calling a global function with example usage: test_magnetic_dipole() without return types