code: def test_second_level_contrast_computation_errors(tmp_path, rng):
      func_img, mask = fake_fmri_data(file_path=tmp_path)
  
      model = SecondLevelModel(mask_img=mask)
  
      # asking for contrast before model fit gives error
      with pytest.raises(
          ValueError, match="The model has not been fit yet"
      ):
          model.compute_contrast(second_level_contrast="intercept")
  
      # fit model
      Y = [func_img] * 4
      X = pd.DataFrame([[1]] * 4, columns=["intercept"])
      model = model.fit(Y, design_matrix=X)
      ncol = len(model.design_matrix_.columns)
      c1, cnull = np.eye(ncol)[0, :], np.zeros(ncol)
  
      # formula should work (passing variable name directly)
      model.compute_contrast(second_level_contrast="intercept")
      # or simply pass nothing
      model.compute_contrast()
  
      # passing null contrast should give back a value error
      with pytest.raises(ValueError, match="Contrast is null"):
          model.compute_contrast(cnull)
  
      # passing wrong parameters
      with pytest.raises(
          ValueError, match="Allowed types are .*'t', 'F'"
      ):
          model.compute_contrast(
              second_level_contrast=c1, second_level_stat_type=""
          )
      with pytest.raises(
          ValueError, match="Allowed types are .*'t', 'F'"
      ):
          model.compute_contrast(
              second_level_contrast=c1, second_level_stat_type=[]
          )
      with pytest.raises(
          ValueError, match="output_type must be one of "
      ):
          model.compute_contrast(
              second_level_contrast=c1, output_type=""
          )
  
      # check that passing no explicit contrast when the design
      # matrix has more than one columns raises an error
      X = pd.DataFrame(rng.uniform(size=(4, 2)), columns=["r1", "r2"])
      model = model.fit(Y, design_matrix=X)
      with pytest.raises(
          ValueError, match="No second-level contrast is specified"
      ):
          model.compute_contrast(None)
  
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 43 for calling a global function with example usage: test_second_level_contrast_computation_errors(tmp_path, rng) without return types