code: def test_cosh_rv_transform():
      # Something not centered around 0 is usually better
      base_rv = pt.random.normal(0.5, 1, size=(2,), name="base_rv")
      rv = pt.cosh(base_rv)
      vv = rv.clone()
      rv_logp = logp(rv, vv)
      with pytest.raises(NotImplementedError):
          logcdf(rv, vv)
      with pytest.raises(NotImplementedError):
          icdf(rv, vv)
  
      transform = CoshTransform()
      [back_neg, back_pos] = transform.backward(vv)
      expected_logp = pt.logaddexp(
          logp(base_rv, back_neg), logp(base_rv, back_pos)
      ) + transform.log_jac_det(vv)
      vv_test = np.array([0.25, 1.5])
      np.testing.assert_allclose(
          rv_logp.eval({vv: vv_test}),
          np.nan_to_num(expected_logp.eval({vv: vv_test}), nan=-np.inf),
      )
  
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 5 for calling a global function with example usage: test_cosh_rv_transform() without return types