code: def _make_canica_components(shape):
      # Create two images with "activated regions"
      component1 = np.zeros(shape)
      component1[:5, :10] = 1
      component1[5:10, :10] = -1
  
      component2 = np.zeros(shape)
      component2[:5, -10:] = 1
      component2[5:10, -10:] = -1
  
      component3 = np.zeros(shape)
      component3[-5:, -10:] = 1
      component3[-10:-5, -10:] = -1
  
      component4 = np.zeros(shape)
      component4[-5:, :10] = 1
      component4[-10:-5, :10] = -1
  
      return np.vstack(
          (
              component1.ravel(),
              component2.ravel(),
              component3.ravel(),
              component4.ravel(),
          )
      )
  
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 2 for calling a global function with example usage: _make_canica_components(shape) and returns: np