code: def test_negated_rv_transform(self):
      x_rv = -pt.random.halfnormal()
      x_rv.name = "x"
  
      x_vv = x_rv.clone()
      x_logp_fn = pytensor.function([x_vv], logp(x_rv, x_vv))
      x_logcdf_fn = pytensor.function([x_vv], logcdf(x_rv, x_vv))
      x_icdf_fn = pytensor.function([x_vv], icdf(x_rv, x_vv))
  
      np.testing.assert_allclose(
          x_logp_fn(-1.5), sp.stats.halfnorm.logpdf(1.5)
      )
      np.testing.assert_allclose(
          x_logcdf_fn(-1.5), sp.stats.halfnorm.logsf(1.5)
      )
      np.testing.assert_allclose(
          x_icdf_fn(0.3), -sp.stats.halfnorm.ppf(1 - 0.3)
      )
  
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 3 for calling the TestLocScaleRVTransform obj's underlying member method code with example usage: obj.test_negated_rv_transform() without return types