code: def test_infer_shape(self):
      x = dmatrix("x")
      x.tag.test_value = np.zeros((2, 2))
      y = dvector("y")
      y.tag.test_value = [0, 0, 0, 0]
  
      def infer_shape(fgraph, node, shapes):
          x, y = shapes
          return [y]
  
      @as_op([dmatrix, dvector], dvector, infer_shape)
      def cumprod_plus(x, y):
          return np.cumprod(x) + y
  
      self._compile_and_check(
          [x, y],
          [cumprod_plus(x, y)],
          [[[1.5, 5], [2, 2]], [1, 100, 2, 200]],
          cumprod_plus.__class__,
          warn=False,
      )
  
file_path: pytensor/tests/compile/test_ops.py
imports: import pickle
  import numpy
  from pytensor import function
  from pytensor.compile.ops import as_op
  from pytensor.tensor.type import dmatrix, dvector
  from tests import unittest_tools
label_desc: Use image node_id 3 for calling the TestOpDecorator obj's underlying member method code with example usage: obj.test_infer_shape() and returns: list, unknown