code: def testBasic(self, make_dataset, nrows, batch_size, drop_remainder):
      dataset = make_dataset(nrows)
  
      # Get the unbatched rows (so we can check expected values).
      get_next = self.getNext(dataset)
      rows = [
          nest.map_structure(_to_list, self.evaluate(get_next()))
          for _ in range(nrows)
      ]
  
      # Batch the dataset, and check that batches match slices from `rows`.
      batched_dataset = dataset.ragged_batch(batch_size, drop_remainder)
      get_next = self.getNext(batched_dataset)
      for start_row in range(0, nrows, batch_size):
          end_row = start_row + batch_size
          if end_row > nrows and drop_remainder:
              break
          end_row = min(end_row, nrows)
          result = self.evaluate(get_next())
  
          # Use nest for potentially nested datasets.
          nest.map_structure_up_to(
              result,
              lambda a, *b: self.assertAllEqual(a, list(b)),
              result,
              *rows[start_row:end_row],
          )
  
      with self.assertRaises(errors.OutOfRangeError):
          self.evaluate(get_next())
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.data.kernel_tests import test_base
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.data.util import nest
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import array_ops_stack
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops.ragged import ragged_concat_ops
  from tensorflow.python.ops.ragged import ragged_factory_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 1 for calling the RaggedBatchTest obj's underlying member method code with example usage: obj.testBasic(make_dataset, nrows, batch_size, drop_remainder) without return types