code: def test_shuffle_kfold(setup):
      # Check the indices are shuffled properly
      kf = KFold(3)
      kf2 = KFold(3, shuffle=True, random_state=0)
      kf3 = KFold(3, shuffle=True, random_state=1)
  
      X = mt.ones(300)
  
      all_folds = np.zeros(300)
      for (tr1, te1), (tr2, te2), (tr3, te3) in zip(
          kf.split(X), kf2.split(X), kf3.split(X)
      ):
          for tr_a, tr_b in itertools.combinations((tr1, tr2, tr3), 2):
              # Assert that there is no complete overlap
              tr_a = tr_a.execute().fetch()
              tr_b = tr_b.execute().fetch()
              assert len(np.intersect1d(tr_a, tr_b)) != len(tr1)
  
          # Set all test indices in successive iterations of kf2 to 1
          all_folds[te2.execute().fetch()] = 1
  
      # Check that all indices are returned in the different test folds
      assert sum(all_folds) == 300
  
imports: import itertools
  import numpy
  import pandas
  import pytest
  from ....None import dataframe
  from ....None import tensor
  from ....dataframe.core import DATAFRAME_TYPE
  from ....lib.sparse import SparseNDArray
  from ...utils.validation import _num_samples
  from ..None import train_test_split, KFold
label_desc: Use image node_id 15 for calling a global function with example usage: test_shuffle_kfold(setup) without return types