code: def test_measurable_power_exponent_with_variable_base():
      # test with RV when logp(<0) we raise error
      base_rv = pt.random.normal([2])
      x_raw_rv = pt.random.normal()
      x_rv = pt.power(base_rv, x_raw_rv)
  
      x_rv.name = "x"
      base_rv.name = "base"
      base_vv = base_rv.clone()
      x_vv = x_rv.clone()
  
      res = conditional_logp({base_rv: base_vv, x_rv: x_vv})
      x_logp = res[x_vv]
      logp_vals_fn = pytensor.function([base_vv, x_vv], x_logp)
  
      with pytest.raises(ParameterValueError, match="base >= 0"):
          logp_vals_fn(np.array([-2]), np.array([2]))
  
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 8 for calling a global function with example usage: test_measurable_power_exponent_with_variable_base() without return types