code: def test_non_full_rank_data():
      """Test that the method works with non-full rank data."""
      n_channels = 10
      X, _, _ = simulate_data(
          SNR=0.9, freqs_sig=[4, 13], n_channels=n_channels
      )
      info = create_info(ch_names=n_channels, sfreq=250, ch_types="eeg")
  
      filt_params_signal = dict(
          l_freq=freqs_sig[0],
          h_freq=freqs_sig[1],
          l_trans_bandwidth=1,
          h_trans_bandwidth=1,
      )
      filt_params_noise = dict(
          l_freq=freqs_noise[0],
          h_freq=freqs_noise[1],
          l_trans_bandwidth=1,
          h_trans_bandwidth=1,
      )
  
      # Make data non-full rank
      rank = 5
      X[rank:] = X[:rank]  # an extreme example, but a valid one
      assert np.linalg.matrix_rank(X) == rank
  
      ssd = SSD(info, filt_params_signal, filt_params_noise)
      ssd.fit(X)
  
file_path: mne-python/mne/decoding/tests/test_ssd.py
imports: import numpy
  import pytest
  from numpy.testing import assert_array_almost_equal, assert_array_equal
  from mne import create_info, io
  from mne.decoding import CSP
  from mne.decoding.ssd import SSD
  from mne.filter import filter_data
  from mne.time_frequency import psd_array_welch
label_desc: Use image node_id 7 for calling a global function with example usage: test_non_full_rank_data() without return types