code: def test_is_list_of_artifact_multimap(self):
      def yes(value: Any):
          self.assertTrue(
              typing_utils.is_list_of_artifact_multimap(value)
          )
  
      def no(value: Any):
          self.assertFalse(
              typing_utils.is_list_of_artifact_multimap(value)
          )
  
      yes([])
      yes([{}])
      yes([{}, {}])
      yes([{"model": []}])
      yes([{"model": [self._model()]}])
      yes([{"model": [self._model(), self._model()]}])
      no([self._model()])
      no([{"model": self._model()}])
  
imports: import sys
  import typing
  from typing import Any, List, Literal, TypedDict
  import unittest
  import tensorflow
  import tfx.types
  from tfx.types import standard_artifacts
  from tfx.utils import typing_utils
  import typing_extensions
  import ml_metadata
label_desc: Use image node_id 4 for calling the TypingUtilsTest obj's underlying member method code with example usage: obj.test_is_list_of_artifact_multimap() without return types