code: def test_qa_metrics(self):
      with self.assertRaisesRegex(
          ValueError, "Number of targets and predictions must match."
      ):
          qa_utils.qa_metrics([["answer"]] * 6, ["answer"] * 5)
  
      self.assertDictEqual(
          qa_utils.qa_metrics([["answer"]] * 5, ["answer"] * 5),
          {"em": 100.0, "f1": 100.0},
      )
  
      self.assertDictEqual(
          qa_utils.qa_metrics(
              [
                  ["big moose", "hippo"],
                  ["correct1"],
                  ["correct2.1", "correct2.2"],
                  ["a", "b"],
              ],
              [
                  "a big moose‘",
                  "wrong",
                  "correct2.2",
                  "c",
              ],
          ),
          {"em": 25.0, "f1": 35.0},
      )
  
imports: from absl.testing import absltest
  from t5.evaluation import qa_utils
label_desc: Use image node_id 3 for calling the QaUtilsTest obj's underlying member method code with example usage: obj.test_qa_metrics() without return types