code: def test_allow_mixed_source_spaces(mixed_fwd_cov_evoked):
      """Test mixed surf+discrete source spaces w/fixed ori."""
      fwd, cov, evoked = mixed_fwd_cov_evoked
      assert fwd["src"].kind == "mixed"
      assert len(fwd["src"]) == 4  # 2 surf + 2 vol
      with pytest.raises(
          ValueError, match="loose param"
      ):  # no fixed with vol
          inv_op = make_inverse_operator(
              evoked.info, fwd, cov, loose=0.0
          )
      for ii, type_ in enumerate(("surf", "surf", "vol", "vol")):
          assert fwd["src"][ii]["type"] == type_
          if type_ == "vol":
              fwd["src"][ii]["type"] = "discrete"
      assert fwd["src"].kind == "mixed"
      inv_op = make_inverse_operator(evoked.info, fwd, cov)
      stc = apply_inverse(
          evoked, inv_op, lambda2=1.0 / 9.0
      )  # magnitude
      assert (stc.data >= 0).all()
      inv_op = make_inverse_operator(evoked.info, fwd, cov, loose=0.0)
      stc = apply_inverse(evoked, inv_op, lambda2=1.0 / 9.0)  # normal
      assert (stc.data < 0).any()
  
imports: import copy
  import re
  from pathlib import Path
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_almost_equal, assert_array_equal, assert_array_less, assert_equal
  from scipy import sparse
  import mne
  from mne import Covariance, EvokedArray, SourceEstimate, combine_evoked, compute_raw_covariance, convert_forward_solution, make_ad_hoc_cov, make_forward_solution, make_sphere_model, pick_channels_forward, pick_types, pick_types_forward, read_cov, read_evokeds, read_forward_solution
  from mne.datasets import testing
  from mne.epochs import Epochs, EpochsArray, make_fixed_length_epochs
  from mne.event import read_events
  from mne.forward import apply_forward, is_fixed_orient, restrict_forward_to_stc
  from mne.io import read_info, read_raw_fif
  from mne.label import label_sign_flip, read_label
  from mne.minimum_norm import INVERSE_METHODS, apply_inverse, apply_inverse_cov, apply_inverse_epochs, apply_inverse_raw, apply_inverse_tfr_epochs, compute_rank_inverse, make_inverse_operator, prepare_inverse_operator, read_inverse_operator, write_inverse_operator
  from mne.source_estimate import VolSourceEstimate, read_source_estimate
  from mne.source_space._source_space import _get_src_nn
  from mne.surface import _normal_orth
  from mne.time_frequency import EpochsTFR
  from mne.utils import _record_warnings, catch_logging
label_desc: Use image node_id 38 for calling a global function with example usage: test_allow_mixed_source_spaces(mixed_fwd_cov_evoked) without return types