code: def _gen_outputs(self, ds_fn, num_outputs, verify_exhausted=True):
      get_next = self.getNext(ds_fn())
      outputs = []
      for _ in range(num_outputs):
          outputs.append(self.evaluate(get_next()))
      if verify_exhausted:
          with self.assertRaises(errors.OutOfRangeError):
              self.evaluate(get_next())
      return outputs
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.data.experimental.ops import shuffle_ops
  from tensorflow.python.data.kernel_tests import checkpoint_test_base
  from tensorflow.python.data.kernel_tests import test_base
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import random_seed
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the ShuffleAndRepeatTest obj's underlying member method code with example usage: obj._gen_outputs(ds_fn, num_outputs, verify_exhausted) and returns: outputs