code: def _iter_test_indices(self, X=None, y=None, groups=None):
      n_samples = X.shape[0]
      indices = ivy.arange(n_samples)
      if self.shuffle:
          indices = ivy.shuffle(indices, seed=self.random_state)
  
      n_splits = self.n_splits
      fold_sizes = ivy.full(
          n_splits, n_samples // n_splits, dtype=ivy.default_int_dtype()
      )
      fold_sizes[: n_samples % n_splits] += 1
      current = 0
      for fold_size in fold_sizes:
          start, stop = current, current + fold_size
          yield indices[start:stop]
          current = stop
  
file_path: ivy/ivy/functional/frontends/sklearn/model_selection/_split.py
imports: from abc import ABCMeta, abstractmethod
  import ivy
  from ivy.functional.frontends.numpy.func_wrapper import to_ivy_arrays_and_back
  from ivy.functional.frontends.sklearn.utils.validation import column_or_1d
label_desc: Use image node_id 2 for calling the KFold obj's underlying member method code with example usage: obj._iter_test_indices(X, y, groups) without return types