code: def test_second_level_residuals():
      """Tests residuals computation for SecondLevelModel."""
      shapes = (SHAPE,)
      mask, fmri_data, _ = generate_fake_fmri_data_and_design(shapes)
      model = SecondLevelModel(mask_img=mask, minimize_memory=False)
      Y = fmri_data * 4
      X = pd.DataFrame([[1]] * 4, columns=["intercept"])
      model.fit(Y, design_matrix=X)
      model.compute_contrast()
  
      assert isinstance(model.residuals, Nifti1Image)
      assert model.residuals.shape == (7, 8, 9, 4)
      mean_residuals = model.masker_.transform(model.residuals).mean(0)
      assert_array_almost_equal(mean_residuals, 0)
  
imports: import os
  from pathlib import Path
  import numpy
  import pandas
  import pytest
  from nibabel import Nifti1Image, load
  from numpy.testing import assert_almost_equal, assert_array_almost_equal, assert_array_equal
  from scipy import stats
  from nilearn._utils import testing
  from nilearn._utils.data_gen import generate_fake_fmri_data_and_design, write_fake_bold_img, write_fake_fmri_data_and_design
  from nilearn.glm.first_level import FirstLevelModel, run_glm
  from nilearn.glm.second_level import SecondLevelModel, non_parametric_inference
  from nilearn.glm.second_level.second_level import _check_confounds, _check_design_matrix, _check_effect_maps, _check_first_level_contrast, _check_input_as_first_level_model, _check_output_type, _check_second_level_input, _infer_effect_maps, _process_second_level_input_as_dataframe, _process_second_level_input_as_firstlevelmodels, _sort_input_dataframe
  from nilearn.image import concat_imgs, get_data, new_img_like, smooth_img
  from nilearn.maskers import NiftiMasker
label_desc: Use image node_id 37 for calling a global function with example usage: test_second_level_residuals() without return types