code: def _iter_test_indices(self, X=None, y=None, groups=None):
      ivy.seed(seed_value=self.random_state)
      y = ivy.array(y)
      y = column_or_1d(y)
      _, y_idx, y_inv, _ = ivy.unique_all(
          y, return_index=True, return_inverse=True
      )
      class_perm = ivy.unique_inverse(y_idx)
      y_encoded = class_perm[y_inv]
  
      n_classes = len(y_idx)
      y_order = ivy.sort(y_encoded)
      allocation = ivy.asarray(
          [
              ivy.bincount(
                  y_order[i :: self.n_splits], minlength=n_classes
              )
              for i in range(self.n_splits)
          ]
      )
      test_folds = ivy.empty(len(y), dtype="int64")
      for k in range(n_classes):
          folds_for_class = ivy.arange(self.n_splits).repeat(
              allocation[:, k]
          )
          if self.shuffle:
              folds_for_class = ivy.shuffle(folds_for_class)
          test_folds[y_encoded == k] = folds_for_class
      for i in range(self.n_splits):
          yield test_folds == i
  
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 StratifiedKFold obj's underlying member method code with example usage: obj._iter_test_indices(X, y, groups) without return types