code: def test_parse_events_files(self):
      tb_summary_dir = self.create_tempdir()
      with tf.Graph().as_default():
          summary_writer = tf.summary.FileWriter(
              tb_summary_dir.full_path
          )
          tags = [
              "eval/foo_task/accuracy",
              "eval/foo_task/accuracy",
              "loss",
          ]
          values = [1.0, 2.0, 3.0]
          steps = [20, 30, 40]
          for tag, value, step in zip(tags, values, steps):
              summary = tf.Summary()
              summary.value.add(tag=tag, simple_value=value)
              summary_writer.add_summary(summary, step)
          summary_writer.flush()
      events = eval_utils.parse_events_files(tb_summary_dir.full_path)
      self.assertDictEqual(
          events,
          {
              "eval/foo_task/accuracy": [(20, 1.0), (30, 2.0)],
              "loss": [(40, 3.0)],
          },
      )
  
file_path: text-to-text-transfer-transformer/t5/evaluation/eval_utils_test.py
imports: import collections
  import os
  from absl.testing import absltest
  import numpy
  import pandas
  import seqio
  from t5.evaluation import eval_utils
  import tensorflow.compat.v1
label_desc: Use image node_id 1 for calling the EvalUtilsTest obj's underlying member method code with example usage: obj.test_parse_events_files() without return types