code: def _assert_cov(cov, cov_desired, tol=0.005, nfree=True):
      assert_equal(cov.ch_names, cov_desired.ch_names)
      err = np.linalg.norm(
          cov.data - cov_desired.data
      ) / np.linalg.norm(cov.data)
      assert err < tol, "%s >= %s" % (err, tol)
      if nfree:
          assert_equal(cov.nfree, cov_desired.nfree)
  
imports: import itertools
  import sys
  from inspect import signature
  from pathlib import Path
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_almost_equal, assert_array_equal, assert_equal
  from mne import Epochs, compute_covariance, compute_proj_raw, compute_rank, compute_raw_covariance, create_info, find_events, make_ad_hoc_cov, make_fixed_length_events, merge_events, pick_channels_cov, pick_info, pick_types, read_cov, read_evokeds, write_cov
  from mne._fiff.pick import _DATA_CH_TYPES_SPLIT
  from mne.channels import equalize_channels
  from mne.cov import _auto_low_rank_model, _regularized_covariance, compute_whitener, prepare_noise_cov, regularize, whiten_evoked
  from mne.datasets import testing
  from mne.fixes import _safe_svd
  from mne.io import RawArray, read_info, read_raw_ctf, read_raw_fif
  from mne.preprocessing import maxwell_filter
  from mne.rank import _compute_rank_int
  from mne.utils import _record_warnings, assert_snr, catch_logging
label_desc: Use image node_id 9 for calling a global function with example usage: _assert_cov(cov, cov_desired, tol, nfree) without return types