code: def testLoweringCache(self):
      ctx = frontend.Context()
  
      def my_type(args):
          return args[0]
  
      def function(x):
          return x + x
  
      ctx.batch_uncurried(function, my_type)
      sig = [instructions.TensorType(np.int64, ())]
      prog1 = ctx.program_lowered("function", sig, NP_BACKEND)
      prog2 = ctx.program_lowered("function", sig, NP_BACKEND)
      self.assertEqual(prog1, prog2)
      sig2 = [instructions.TensorType(np.int32, ())]
      prog3 = ctx.program_lowered("function", sig2, NP_BACKEND)
      self.assertNotEqual(prog1, prog3)
  
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 19 for calling the AutoGraphFrontendTest obj's underlying member method code with example usage: obj.testLoweringCache() and returns: args, unknown