code: def _test_items(
      self, salt, items, expected_order, disable_shuffling=False
  ):
      shuffler = shuffle.Shuffler(
          self.get_temp_dir(), salt, disable_shuffling
      )
      for key, item in items:
          shuffler.add(key, item)
      self.assertEqual(shuffler.size, _TOTAL_SIZE)
      if (
          not shuffler._in_memory
      ):  # Check size of temporary bucket files
          expected_size = (16 + 8) * len(items) + sum(
              len(t[1]) for t in items
          )
          size = 0
          for bucket in shuffler._buckets:
              if not bucket._fobj:
                  continue
              bucket._fobj.close()
              with open(bucket._path, "rb") as f:
                  size += len(f.read())
          self.assertEqual(size, expected_size)
      # Check records can be read as expected:
      records = list(ex for _, ex in shuffler)
      self.assertEqual(records, expected_order)
  
imports: import collections
  import contextlib
  import logging
  import resource
  import tempfile
  from absl.testing.absltest import mock
  import pytest
  from tensorflow_datasets import testing
  from tensorflow_datasets.core import shuffle
  from tensorflow_datasets.core.utils.lazy_imports_utils import tensorflow
label_desc: Use image node_id 1 for calling the ShuffleTest obj's underlying member method code with example usage: obj._test_items(salt, items, expected_order, disable_shuffling) without return types