code: def testAutoBatchingFibonacciNumpy(self):
      for inputs, outputs in ([5], [8]), (
          [5, 6, 8, 9],
          [8, 13, 34, 55],
      ):
          # This test doesn't pass with int32 input types, because (apparently)
          # numpy can't tell the difference between an ndarray of shape () and known
          # dtype, and a scalar (literal) whose dtype needs to be inferred.
          # To wit:
          #   (np.zeros((), dtype=np.int32) - 1).dtype == np.int64
          # because that's somehow the best numpy can do, even though
          #   (np.zeros([6], dtype=np.int32) - 1).dtype == np.int32
          # Needless to say, this messes up type inference for programs like
          # Fibonacci whose unbatched input shape is scalar.
          inputs = np.array(inputs, dtype=np.int64)
          outputs = np.array(outputs, dtype=np.int64)
          prog = fibonacci_program()
          # print(prog)
          typed = type_inference.infer_types(prog, [inputs], NP_BACKEND)
          # print(typed)
          alloc = allocation_strategy.optimize(typed)
          lowered = lowering.lower_function_calls(alloc)
          # print(lowered)
          self.assertAllEqual(
              outputs, _execute(lowered, inputs, 15, NP_BACKEND)
          )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.experimental.auto_batching import allocation_strategy
  from tensorflow_probability.python.experimental.auto_batching import dsl
  from tensorflow_probability.python.experimental.auto_batching import instructions
  from tensorflow_probability.python.experimental.auto_batching import lowering
  from tensorflow_probability.python.experimental.auto_batching import numpy_backend
  from tensorflow_probability.python.experimental.auto_batching import tf_backend
  from tensorflow_probability.python.experimental.auto_batching import type_inference
  from tensorflow_probability.python.experimental.auto_batching import virtual_machine
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 1 for calling the AutoBatchingTest obj's underlying member method code with example usage: obj.testAutoBatchingFibonacciNumpy() without return types