code: def _make_multi_pca_test_data(with_activation=True):
      """Create a multi-subject dataset with or without activation."""
      shape = (6, 8, 10, 5)
      affine = _affine_eye()
      rng = _rng()
      n_sub = 4
  
      data = []
      for _ in range(n_sub):
          this_data = rng.normal(size=shape)
          if with_activation:
              this_data[2:4, 2:4, 2:4, :] += 10
          data.append(Nifti1Image(this_data, affine))
  
      mask_img = Nifti1Image(np.ones(shape[:3], dtype=np.int8), affine)
  
      return data, mask_img, shape, affine
  
imports: import numpy
  import pytest
  from nibabel import Nifti1Image
  from numpy.testing import assert_almost_equal
  from nilearn._utils.testing import write_imgs_to_path
  from nilearn.conftest import _affine_eye, _rng
  from nilearn.decomposition._multi_pca import _MultiPCA
  from nilearn.maskers import MultiNiftiMasker, NiftiMasker
label_desc: Use image node_id 2 for calling a global function with example usage: _make_multi_pca_test_data(with_activation) and returns: data,  mask_img,  shape,  affine