class_docstr: Base class to test Blockwise works for specific Ops
class_docstr_tok: ["Base","class","to","test","Blockwise","works","for","specific","Ops"]
code: def test_perform(self):
      base_inputs = [
          tensor(shape=(None,) * len(param_sig))
          for param_sig in self.params_sig
      ]
      core_func = pytensor.function(
          base_inputs, self.core_op(*base_inputs)
      )
      np_func = np.vectorize(core_func, signature=self.signature)
  
      for (
          vec_inputs,
          vec_inputs_testvals,
      ) in self.create_batched_inputs():
          pt_func = pytensor.function(
              vec_inputs, self.block_op(*vec_inputs)
          )
          if len(self.outputs_sig) != 1:
              raise NotImplementedError(
                  "Did not implement test for multi-output Ops"
              )
          np.testing.assert_allclose(
              pt_func(*vec_inputs_testvals),
              np_func(*vec_inputs_testvals),
              rtol=1e-7 if config.floatX == "float64" else 1e-5,
              atol=1e-7 if config.floatX == "float64" else 1e-5,
          )
  
imports: import re
  from itertools import product
  from typing import Optional, Union
  import numpy
  import pytest
  import pytensor
  from pytensor import config, function
  from pytensor.compile import get_mode
  from pytensor.gradient import grad
  from pytensor.graph import Apply, Op
  from pytensor.graph.replace import vectorize_node
  from pytensor.raise_op import assert_op
  from pytensor.tensor import diagonal, log, tensor
  from pytensor.tensor.blockwise import Blockwise, vectorize_node_fallback
  from pytensor.tensor.nlinalg import MatrixInverse
  from pytensor.tensor.rewriting.blas import specialize_matmul_to_batched_dot
  from pytensor.tensor.slinalg import Cholesky, Solve, cholesky, solve_triangular
  from pytensor.tensor.utils import _parse_gufunc_signature
label_desc: Use image node_id 5 for calling the BlockwiseOpTester obj's underlying member method code with example usage: obj.test_perform() without return types