code: def test_ica_simple(method):
      """Test that ICA recovers the unmixing matrix in a simple case."""
      _skip_check_picard(method)
      n_components = 3
      n_samples = 1000
      rng = np.random.RandomState(0)
      S = rng.laplace(size=(n_components, n_samples))
      A = rng.randn(n_components, n_components)
      data = np.dot(A, S)
      info = create_info(data.shape[-2], 1000.0, "eeg")
      cov = make_ad_hoc_cov(info)
      ica = ICA(
          n_components=n_components,
          method=method,
          random_state=0,
          noise_cov=cov,
      )
      with pytest.warns(RuntimeWarning, match="No average EEG.*"):
          ica.fit(RawArray(data, info))
      transform = ica.unmixing_matrix_ @ ica.pca_components_ @ A
      amari_distance = np.mean(
          np.sum(np.abs(transform), axis=1)
          / np.max(np.abs(transform), axis=1)
          - 1.0
      )
      assert amari_distance < 0.1
  
imports: import os
  import shutil
  from contextlib import nullcontext
  from pathlib import Path
  import matplotlib.pyplot
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_almost_equal, assert_array_equal, assert_equal
  from scipy import linalg, stats
  from scipy.io import loadmat, savemat
  from mne import Annotations, Epochs, EpochsArray, EvokedArray, Info, create_info, make_ad_hoc_cov, pick_channels_regexp, pick_types, read_events
  from mne._fiff.pick import _DATA_CH_TYPES_SPLIT, get_channel_type_constants
  from mne.cov import read_cov
  from mne.datasets import testing
  from mne.event import make_fixed_length_events
  from mne.io import RawArray, read_raw_ctf, read_raw_eeglab, read_raw_fif
  from mne.io.eeglab.eeglab import _check_load_mat
  from mne.preprocessing import ICA
  from mne.preprocessing import ica_find_ecg_events, ica_find_eog_events, read_ica
  from mne.preprocessing.ica import _ica_explained_variance, _sort_components, corrmap, get_score_funcs, read_ica_eeglab
  from mne.rank import _compute_rank_int
  from mne.utils import _record_warnings, catch_logging, check_version
label_desc: Use image node_id 4 for calling a global function with example usage: test_ica_simple(method) without return types