code: def test_betaln():
      _a, _b = vectors("a", "b")
      actual_fn = function([_a, _b], betaln(_a, _b))
  
      a = random_ranged(0, 5, (2,))
      b = random_ranged(0, 5, (2,))
      actual = np.exp(actual_fn(a, b))
      expected = scipy_beta(a, b)
      np.testing.assert_allclose(
          actual,
          expected,
          rtol=1e-7 if config.floatX == "float64" else 1e-5,
      )
  
imports: import numpy
  import pytest
  from scipy.special import beta
  from scipy.special import factorial
  from scipy.special import log_softmax
  from scipy.special import poch
  from scipy.special import softmax
  from pytensor.compile.function import function
  from pytensor.configdefaults import config
  from pytensor.graph.replace import vectorize_node
  from pytensor.tensor.blockwise import Blockwise
  from pytensor.tensor.special import LogSoftmax, Softmax, SoftmaxGrad, beta, betaln, factorial, log_softmax, poch, softmax
  from pytensor.tensor.type import matrix, tensor, tensor3, tensor4, vector, vectors
  from tests import unittest_tools
  from tests.tensor.utils import random_ranged
label_desc: Use image node_id 5 for calling a global function with example usage: test_betaln() without return types