code: def test_summaries(self):
      # FEATURES.MD
      self.start_tests()
  
      learning_rate = dict(
          type="linear",
          unit="updates",
          num_steps=10,
          initial_value=1e-3,
          final_value=1e-4,
      )
      horizon = dict(
          type="linear",
          unit="episodes",
          num_steps=2,
          initial_value=2,
          final_value=4,
      )
      exploration = dict(
          type="exponential",
          unit="timesteps",
          num_steps=5,
          initial_value=0.1,
          decay_rate=0.5,
      )
  
      with TemporaryDirectory() as directory:
          agent, environment = self.prepare(
              optimizer=dict(
                  optimizer="adam", learning_rate=learning_rate
              ),
              reward_estimation=dict(
                  horizon=horizon,
                  estimate_advantage=True,
                  predict_horizon_values="late",
                  reward_processing=dict(
                      type="clipping", lower=-1.0, upper=1.0
                  ),
                  return_processing=dict(
                      type="clipping", lower=-1.0, upper=1.0
                  ),
                  advantage_processing="batch_normalization",
              ),
              exploration=exploration,
              config=dict(
                  device="CPU",
                  eager_mode=False,
                  create_debug_assertions=True,
                  tf_log_level=20,
              ),
              summarizer=dict(directory=directory, summaries="all"),
          )
  
          updates = 0
          episodes = 0
          while episodes < 3 or updates < 3:
              states = environment.reset()
              terminal = False
              while not terminal:
                  actions = agent.act(states=states)
                  states, terminal, reward = environment.execute(
                      actions=actions
                  )
                  updates += int(
                      agent.observe(terminal=terminal, reward=reward)
                  )
                  tracked = set(agent.tracked_tensors())
                  self.assertEqual(
                      tracked,
                      self.__class__.tracked_tensors,
                      msg=(
                          tracked - self.__class__.tracked_tensors,
                          self.__class__.tracked_tensors - tracked,
                      ),
                  )
              episodes += 1
  
          # print(set(agent.tracked_tensors()) - self.__class__.tracked_tensors)
  
          agent.close()
          environment.close()
  
          directories = os.listdir(path=directory)
          self.assertEqual(len(directories), 1)
          files = os.listdir(
              path=os.path.join(directory, directories[0])
          )
          self.assertEqual(len(files), 1)
          self.assertTrue(files[0].startswith("events.out.tfevents."))
  
      self.finished_test()
  
imports: import os
  from tempfile import TemporaryDirectory
  import unittest
  from test.unittest_base import UnittestBase
label_desc: Use image node_id 1 for calling the TestSummaries obj's underlying member method code with example usage: obj.test_summaries() without return types