code: def test_fit_methods(method, tmp_path):
      """Test fit_params for ICA."""
      _skip_check_picard(method)
      fit_params = {}
      # test no side effects
      ICA(fit_params=fit_params, method=method)
      assert fit_params == {}
  
      # Test I/O roundtrip.
      # Only picard and infomax support the "extended" keyword, so limit the
      # tests to those.
      if method in ["picard", "infomax"]:
          output_fname = tmp_path / "test_ica-ica.fif"
  
          raw = read_raw_fif(raw_fname).crop(0.5, stop).load_data()
          n_components = 3
          max_iter = 1
          fit_params = dict(extended=True)
          ica = ICA(
              fit_params=fit_params,
              n_components=n_components,
              max_iter=max_iter,
              method=method,
          )
          fit_params_after_instantiation = ica.fit_params
  
          if method == "infomax":
              ica.fit(raw)
          else:
              with pytest.warns(UserWarning, match="did not converge"):
                  ica.fit(raw)
  
          ica.save(output_fname)
          ica = read_ica(output_fname)
  
          assert ica.fit_params == fit_params_after_instantiation
  
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 19 for calling a global function with example usage: test_fit_methods(method, tmp_path) without return types