code: def testResolveUnionChannels_Deduplication(self):
      p = self.put_context("pipeline", "my-pipeline")
      e1 = self.put_artifact("Examples")
      self.put_execution(
          "ExampleGen",
          inputs={},
          outputs={"examples": [e1]},
          contexts=[p],
      )
  
      ch = self.make_channel_spec(
          """
        context_queries {
          type {
            name: "pipeline"
          }
          name {
            field_value {
              string_value: "my-pipeline"
            }
          }
        }
        artifact_query {
          type {
            name: "Examples"
          }
        }
        output_key: "examples"
      """
      )
      resolved = channel_resolver.resolve_union_channels(
          self.mlmd_handle, [ch, ch]
      )
      self.assertLen(resolved, 1)
      self.assertEqual(resolved[0].id, e1.id)
  
file_path: tfx/tfx/orchestration/portable/input_resolution/channel_resolver_test.py
imports: import tensorflow
  from tfx.orchestration.portable.input_resolution import channel_resolver
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.utils import test_case_utils
  from google.protobuf import text_format
label_desc: Use image node_id 10 for calling the ChannelResolverTest obj's underlying member method code with example usage: obj.testResolveUnionChannels_Deduplication() without return types