code: def test_add_evaluation_metrics_manually():
      evaluation_job = EvaluationJob(name=EVALUATION_JOB_NAME)
  
      metric_group = evaluation_job.add_metric_group("test_metric")
      assert len(evaluation_job.metric_groups) == 1
      evaluation_job.get_metric_group("test_metric").add_metric(
          metric_example
      )
      assert len(metric_group.metric_data) == 1
  
      with pytest.raises(
          TypeError,
          match=re.escape(
              "Provided item type is <class 'dict'> and Expected the item type is <class 'sagemaker.model_card.model_card.Metric'>"  # noqa E501  # pylint: disable=c0301
          ),
      ):
          metric_group.add_metric(
              {"name": "metric1", "type": "number", "value": 123}
          )
  
imports: from __future__ import absolute_import
  import io
  import os
  import json
  import datetime
  import re
  import logging
  import pytest
  from mock import patch, Mock
  from botocore.exceptions import ClientError
  import botocore.response
  from sagemaker.model_card import schema_constraints
  from sagemaker.model_card import Environment, ModelOverview, IntendedUses, BusinessDetails, ObjectiveFunction, TrainingMetric, HyperParameter, Metric, TrainingDetails, MetricGroup, EvaluationJob, AdditionalInformation, ModelCard, Function, TrainingJobDetails, ModelPackage
  from sagemaker.model_card.model_card import ModelCardExportJob, ModelPackageCreator, SourceAlgorithm, Container, InferenceSpecification
  from sagemaker.model_card.helpers import _MaxSizeArray, _IsList, _OneOf, _IsModelCardObject, _JSONEncoder, _hash_content_str, _DefaultToRequestDict, _SkipEncodingDecoding
  from sagemaker.model_card.evaluation_metric_parsers import EvaluationMetricTypeEnum, EVALUATION_METRIC_PARSERS
label_desc: Use image node_id 37 for calling a global function with example usage: test_add_evaluation_metrics_manually() without return types