code: def test_compute_whitener_rank():
      """Test risky rank options."""
      info = read_info(ave_fname)
      info = pick_info(info, pick_types(info, meg=True))
      with info._unlock():
          info["projs"] = []
      # need a square version because the diag one takes shortcuts in
      # compute_whitener (users shouldn't even need this function so it's
      # private)
      cov = make_ad_hoc_cov(info)._as_square()
      assert len(cov["names"]) == 306
      _, _, rank = compute_whitener(
          cov, info, rank=None, return_rank=True
      )
      assert rank == 306
      assert compute_rank(cov, info=info, verbose=True) == dict(
          meg=rank
      )
      cov["data"][-1] *= 1e-14  # trivially rank-deficient
      _, _, rank = compute_whitener(
          cov, info, rank=None, return_rank=True
      )
      assert rank == 305
      assert compute_rank(cov, info=info, verbose=True) == dict(
          meg=rank
      )
      # this should emit a warning
      with pytest.warns(RuntimeWarning, match="exceeds the estimated"):
          _, _, rank = compute_whitener(
              cov, info, rank=dict(meg=306), return_rank=True
          )
      assert rank == 306
  
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 23 for calling a global function with example usage: test_compute_whitener_rank() without return types