code: def testConsumeEmitMultipleValuesNested(self):
      def dup_type(args):
          return args[0]
  
      ctx = frontend.Context()
  
      @ctx.batch(type_inference=dup_type)
      def function(inp):
          x, y = inp
          return x + 1, y + 2
  
      @ctx.batch(type_inference=dup_type)
      def caller(inp):
          ans1, ans2 = function(inp)
          return ans1, ans2
  
      inputs = (
          np.array([12, -13, 14], dtype=np.int32),
          np.array([[4, 8], [3, 6], [2, 4]], dtype=np.int32),
      )
      expected_outputs = ([13, -12, 15], [[6, 10], [5, 8], [4, 6]])
      # pylint: disable=unexpected-keyword-arg
      # The `max_stack_depth` and `backend` keyword arguments to `caller`
      # are introduced by the `@ctx.batch` decorator, confusing pylint.
      got_outputs = self.evaluate(
          caller(inputs, max_stack_depth=15, backend=TF_BACKEND)
      )
      self.assertEqual(len(expected_outputs), len(got_outputs))
      for exp, got in zip(expected_outputs, got_outputs):
          self.assertAllEqual(exp, got)
  
imports: import collections
  from absl import logging
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.experimental.auto_batching import frontend
  from tensorflow_probability.python.experimental.auto_batching import instructions
  from tensorflow_probability.python.experimental.auto_batching import numpy_backend
  from tensorflow_probability.python.experimental.auto_batching import tf_backend
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 12 for calling the AutoGraphFrontendTest obj's underlying member method code with example usage: obj.testConsumeEmitMultipleValuesNested() and returns: args, unknown,  unknown, ans1,  ans2