code: def test_functional_variant_autogen_out_variant_two_returns(
      self,
  ) -> None:
      native_functions = [self.two_returns_func]
      add_generated_native_functions(
          native_functions, self.backend_indices
      )
      self.assertEqual(len(native_functions), 2)
      self.assertEqual(
          str(native_functions[1].func),
          "op_2.out(*, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))",
      )
      op_name = native_functions[1].func.name
      backend_metadata = self.backend_indices[
          DispatchKey.CompositeExplicitAutograd
      ][op_name]
      self.assertEqual(backend_metadata.kernel, "op_2_out")
  
imports: import dataclasses
  import typing
  import unittest
  from collections import defaultdict
  from typing import Dict, List
  import torchgen.model
  import yaml
  from tools.autograd import gen_autograd_functions, load_derivatives
  from torchgen import dest
  from torchgen.api.types import CppSignatureGroup, DispatcherSignature
  from torchgen.context import native_function_manager
  from torchgen.gen import get_native_function_declarations, get_native_function_schema_registrations, LineLoader, static_dispatch
  from torchgen.model import BackendIndex, BackendMetadata, DispatchKey, Location, NativeFunction, OperatorName
  from torchgen.native_function_generation import add_generated_native_functions
  from torchgen.selective_build.selector import SelectiveBuilder
label_desc: Use image node_id 3 for calling the TestNativeFunctionGeneratrion obj's underlying member method code with example usage: obj.test_functional_variant_autogen_out_variant_two_returns() without return types