code: def verify_dataset_batches(self):
      self.assertEqual(2, len(self.dataset_batches.data))
      all_images = {}
      for batch in self.dataset_batches.data.values():
          self.assertIn(batch["epsilon"], [4, 8, 12, 16])
          self.assertGreaterEqual(3, len(batch["images"]))
          self.assertTrue(
              set(all_images.keys()).isdisjoint(batch["images"].keys()),
              msg=(
                  "all_images and batch['images'] contains common keys %s"
                  % set(all_images.keys()).intersection(
                      batch["images"].keys()
                  )
              ),
          )
          all_images.update(batch["images"])
      assertCountEqual(
          self,
          [
              {
                  "dataset_image_id": "img1",
                  "image_path": "dataset/dev/img1.png",
              },
              {
                  "dataset_image_id": "img2",
                  "image_path": "dataset/dev/img2.png",
              },
              {
                  "dataset_image_id": "img3",
                  "image_path": "dataset/dev/img3.png",
              },
              {
                  "dataset_image_id": "img4",
                  "image_path": "dataset/dev/img4.png",
              },
              {
                  "dataset_image_id": "img5",
                  "image_path": "dataset/dev/img5.png",
              },
          ],
          all_images.values(),
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import itertools
  import unittest
  from six import assertCountEqual
  from eval_lib import image_batches
  from eval_lib import submissions
  from eval_lib.tests import fake_cloud_client
label_desc: Use image node_id 2 for calling the DatasetBatchesTest obj's underlying member method code with example usage: obj.verify_dataset_batches() without return types