code: def testMakeProtoPlaceholder_ScalarFieldTypes(self):
      def _resolve_and_parse(
          p: ph.Placeholder,
      ) -> metadata_store_pb2.Value:
          return parse_text_proto(resolve(p), metadata_store_pb2.Value)
  
      # Can't do them all at once due to oneof.
      self.assertProtoEquals(
          "int_value: 42",
          _resolve_and_parse(_MetadataStoreValue(int_value=42)),
      )
      self.assertProtoEquals(
          "double_value: 42.42",
          _resolve_and_parse(_MetadataStoreValue(double_value=42.42)),
      )
      self.assertProtoEquals(
          'string_value: "foo42"',
          _resolve_and_parse(_MetadataStoreValue(string_value="foo42")),
      )
      self.assertProtoEquals(
          "bool_value: true",
          _resolve_and_parse(_MetadataStoreValue(bool_value=True)),
      )
  
imports: import base64
  import functools
  from typing import Any, Dict, Optional, Type, TypeVar
  import tensorflow
  from tfx.dsl.compiler import placeholder_utils
  from tfx.dsl.placeholder import placeholder
  from tfx.dsl.placeholder import proto_placeholder
  from tfx.orchestration.portable import data_types
  from tfx.proto.orchestration import execution_invocation_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from google.protobuf import message
  from google.protobuf import text_format
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 4 for calling the ProtoPlaceholderTest obj's underlying member method code with example usage: obj.testMakeProtoPlaceholder_ScalarFieldTypes() and returns: parse_text_proto