code: def testBuildGraphFn_OpNode(self):
      input_graph = self.parse_input_graph(
          """
        nodes {
          key: "input_1"
          value {
            input_node {
              input_key: "x"
            }
            output_data_type: ARTIFACT_LIST
          }
        }
        nodes {
          key: "input_2"
          value {
            input_node {
              input_key: "y"
            }
            output_data_type: ARTIFACT_LIST
          }
        }
        nodes {
          key: "add_3"
          value {
            op_node {
              op_type: "Add"
              args {
                node_id: "input_1"
              }
              args {
                node_id: "input_2"
              }
            }
            output_data_type: ARTIFACT_LIST
          }
        }
        result_node: "add_3"
      """
      )
  
      graph_fn, input_keys = input_graph_resolver.build_graph_fn(
          self._mlmd_handle, input_graph
      )
  
      self.assertCountEqual(input_keys, ["x", "y"])
  
      result = graph_fn(
          {
              "x": [Integer(1)],
              "y": [Integer(2)],
          }
      )
      self.assertEqual(result, [Integer(3)])
  
imports: from unittest import mock
  from absl.testing import parameterized
  import tensorflow
  from tfx.dsl.components.common import resolver
  from tfx.dsl.input_resolution import resolver_op
  from tfx.dsl.input_resolution.ops import ops
  from tfx.orchestration.portable.input_resolution import exceptions
  from tfx.orchestration.portable.input_resolution import input_graph_resolver
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import standard_artifacts
  from google.protobuf import text_format
label_desc: Use image node_id 5 for calling the InputGraphResolverTest obj's underlying member method code with example usage: obj.testBuildGraphFn_OpNode() without return types