code: def test_with_globbing_patterns_with_multi_subjects(
      canica_data, mask_img, tmp_path
  ):
      # Multi subjects
      n_components = 3
      canica = CanICA(n_components=n_components, mask=mask_img)
  
      img = write_imgs_to_path(
          *canica_data,
          file_path=tmp_path,
          create_files=True,
          use_wildcards=True,
      )
      canica.fit(img)
      components_img = canica.components_img_
  
      assert isinstance(components_img, Nifti1Image)
  
      # n_components = 3
      check_shape = canica_data[0].shape[:3] + (3,)
  
      assert components_img.shape, check_shape
  
imports: import numpy
  import pytest
  from nibabel import Nifti1Image
  from numpy.testing import assert_array_almost_equal
  from nilearn._utils.testing import write_imgs_to_path
  from nilearn.conftest import _affine_eye, _rng
  from nilearn.decomposition.canica import CanICA
  from nilearn.image import get_data, iter_img
  from nilearn.maskers import MultiNiftiMasker
label_desc: Use image node_id 16 for calling a global function with example usage: test_with_globbing_patterns_with_multi_subjects(canica_data, mask_img, tmp_path) without return types