class_docstr: Tests for distributed save/load with the new load algorithm.
class_docstr_tok: ["Tests","for","distributed","save\/load","with","the","new","load","algorithm","."]
docstr: Verifies `load` produces data deterministically after `save` finishes.
docstr_tok: ["Verifies","`","load","`","produces","data","deterministically","after","`","save","`","finishes","."]
code: def test_deterministic_load_order(
      self,
      num_workers: int,
      num_elements: int,
      num_repetitions: int,
      max_chunk_size_bytes: int,
  ):
      """Verifies `load` produces data deterministically after `save` finishes."""
      cluster = data_service_test_base.TestCluster(
          num_workers=num_workers,
          snapshot_max_chunk_size_bytes=max_chunk_size_bytes,
      )
      snapshot_dir = data_service_test_base.TempDir()
      dataset = dataset_ops.Dataset.range(num_elements).shuffle(
          buffer_size=num_elements
      )
      self.evaluate(
          distributed_save_op.distributed_save(
              dataset,
              snapshot_dir.full_path,
              cluster.dispatcher_address(),
          )
      )
  
      dataset = load_op._load_with_retry(snapshot_dir.full_path)
      dataset = dataset.repeat(num_repetitions)
      output = self.getDatasetOutput(dataset)
      output_per_repetition = [
          output[i : i + num_elements]
          for i in range(0, len(output), num_elements)
      ]
      self.assertLen(output_per_repetition, num_repetitions)
      for i in range(
          2, num_repetitions
      ):  # Starts from the second repetition.
          self.assertEqual(
              output_per_repetition[i], output_per_repetition[i - 1]
          )
  
imports: import multiprocessing
  import os
  import threading
  import time
  from typing import Callable, Optional
  from absl.testing import parameterized
  import numpy
  from tensorflow.python.data.experimental.kernel_tests.service import test_base
  from tensorflow.python.data.experimental.ops import data_service_ops
  from tensorflow.python.data.experimental.ops import distributed_save_op
  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.data.ops import load_op
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import errors
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import cond
  from tensorflow.python.ops import math_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 3 for calling the DistributedSaveLoadTest obj's underlying member method code with example usage: obj.test_deterministic_load_order(num_workers, num_elements, num_repetitions, max_chunk_size_bytes) without return types