code: def test_vectorize_node_default_signature():
      vec = tensor(shape=(None,))
      mat = tensor(shape=(5, None))
      node = test_op.make_node(vec, mat)
  
      vect_node = vectorize_node(node, mat, mat)
      assert isinstance(vect_node.op, Blockwise) and isinstance(
          vect_node.op.core_op, MyTestOp
      )
      assert vect_node.op.signature == (
          "(i00),(i10,i11)->(o00),(o10,o11)"
      )
  
      with pytest.raises(
          ValueError,
          match="Signature not provided nor found in core_op MyTestOp",
      ):
          Blockwise(test_op)
  
      vect_node = Blockwise(
          test_op, signature="(m),(n)->(m),(n)"
      ).make_node(vec, mat)
      assert vect_node.outputs[0].type.shape == (
          5,
          None,
      )
      assert vect_node.outputs[0].type.shape == (
          5,
          None,
      )
  
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 a global function with example usage: test_vectorize_node_default_signature() without return types