code: def testApplyOperationWithTupleOutput(self):
      a = nodes.apply_operation(
          _Constant, value="a", label="Constant[a]"
      )
      b = nodes.apply_operation(
          _Constant, value="b", label="Constant[b]"
      )
      b_copy, a_copy = nodes.apply_multi_output_operation(
          _Swap, a, b, label="Swap"
      )
      op = b_copy.parent_operation
      self.assertEqual(b_copy.value_index, 0)
      self.assertEqual(a_copy.parent_operation, op)
      self.assertEqual(a_copy.value_index, 1)
      self.assertEqual(op.operation_def, _Swap("Swap"))
      self.assertEqual(op.inputs, (a, b))
      self.assertEqual(op.outputs, (b_copy, a_copy))
  
imports: import tensorflow
  from tensorflow_transform import nodes
  from tensorflow_transform import test_case
  from tfx_bsl.types import tfx_namedtuple
label_desc: Use image node_id 2 for calling the NodesTest obj's underlying member method code with example usage: obj.testApplyOperationWithTupleOutput() without return types