code: def test_special_log_exp_transforms(canonical_func, raw_func):
      base_rv = pt.random.normal(name="base_rv")
      vv = pt.scalar("vv")
  
      transformed_rv = raw_func(base_rv)
      ref_transformed_rv = canonical_func(base_rv)
  
      logp_test = logp(transformed_rv, vv)
      logp_ref = logp(ref_transformed_rv, vv)
  
      if canonical_func in (pt.log2, pt.log10):
          # in the cases of log2 and log10 floating point inprecision causes failure
          # from equal_computations so evaluate logp and check all close instead
          vv_test = np.array(0.25)
          np.testing.assert_allclose(
              logp_ref.eval({vv: vv_test}),
              logp_test.eval({vv: vv_test}),
          )
      else:
          assert equal_computations([logp_test], [logp_ref])
  
imports: import numpy
  import pytensor
  import pytensor.tensor
  import pytest
  import scipy
  import scipy.special
  from pytensor.graph.basic import equal_computations
  from pymc.distributions.continuous import Cauchy, ChiSquared
  from pymc.logprob.basic import conditional_logp, icdf, logcdf, logp
  from pymc.logprob.transforms import ArccoshTransform, ArcsinhTransform, ArctanhTransform, ChainedTransform, CoshTransform, ErfcTransform, ErfcxTransform, ErfTransform, ExpTransform, LocTransform, LogTransform, ScaleTransform, SinhTransform, TanhTransform, Transform
  from pymc.logprob.utils import ParameterValueError
  from pymc.testing import Rplusbig, Vector, assert_no_rvs
  from tests.distributions.test_transform import check_jacobian_det
label_desc: Use image node_id 6 for calling a global function with example usage: test_special_log_exp_transforms(canonical_func, raw_func) without return types