code: def testInspectAllWithNestedLogdirs(self):
      data = [
          {"tag": "c", "simple_value": 2, "step": 10},
          {"tag": "c", "simple_value": 2, "step": 11},
          {"tag": "c", "simple_value": 2, "step": 9},
          {"tag": "b", "simple_value": 2, "step": 20},
          {"tag": "b", "simple_value": 2, "step": 15},
          {"tag": "a", "simple_value": 2, "step": 3},
      ]
  
      subdirs = ["eval", "train"]
      self._WriteScalarSummaries(data, subdirs=subdirs)
      units = efi.get_inspection_units(self.logdir)
      self.assertEqual(2, len(units))
      directory_names = [
          os.path.join(self.logdir, name) for name in subdirs
      ]
      self.assertEqual(
          directory_names, sorted([unit.name for unit in units])
      )
  
      for unit in units:
          printable = efi.get_dict_to_print(unit.field_to_obs)[
              "scalars"
          ]
          self.assertEqual(printable["max_step"], 20)
          self.assertEqual(printable["min_step"], 3)
          self.assertEqual(printable["num_steps"], 6)
          self.assertEqual(printable["last_step"], 3)
          self.assertEqual(printable["first_step"], 10)
          self.assertEqual(
              printable["outoforder_steps"],
              [(11, 9), (20, 15), (15, 3)],
          )
  
file_path: tensorboard/tensorboard/backend/event_processing/event_file_inspector_test.py
imports: import os
  import shutil
  import tensorflow
  from tensorboard.backend.event_processing import event_file_inspector
  from tensorboard.compat.proto import event_pb2
  from tensorboard.compat.proto import summary_pb2
  from tensorboard.util import test_util
label_desc: Use image node_id 10 for calling the EventFileInspectorTest obj's underlying member method code with example usage: obj.testInspectAllWithNestedLogdirs() without return types