code: def test_metric_group_max(self):
      df = pd.DataFrame(
          collections.OrderedDict(
              [
                  ("ABC Accuracy", [1.0, 2.0, 3.0, 4.0]),
                  ("DEF Exact Match", [0.0, 10.0, 3.0, 0.0]),
                  ("DEF Accuracy", [4.0, 7.0, 8.0, 0.0]),
              ]
          ),
          index=[10, 20, 30, 40],
      )
      metric_names = collections.OrderedDict(
          [
              ("metric1", eval_utils.Metric("ABC Accuracy")),
              ("metric2", eval_utils.Metric("DEF Accuracy", "DEF")),
              ("metric3", eval_utils.Metric("DEF Exact Match", "DEF")),
          ]
      )
      metric_max, metric_max_step = eval_utils.metric_group_max(
          df, metric_names
      )
      self.assertTrue(metric_max.keys().equals(df.columns))
      self.assertListEqual(list(metric_max.values), [4.0, 10.0, 7.0])
      self.assertTrue(metric_max_step.keys().equals(df.columns))
      self.assertSequenceEqual(
          list(metric_max_step.values), [40, 20, 20]
      )
  
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 6 for calling the EvalUtilsTest obj's underlying member method code with example usage: obj.test_metric_group_max() without return types