code: def test_compute_test_value(op_constructor):
      X_rv = pt.random.normal(0, 1, name="X")
      Y_rv = pt.random.gamma(0.5, scale=2.0, name="Y")
  
      p_at = pt.scalar("p")
      p_at.tag.test_value = 0.3
  
      I_rv = pt.random.bernoulli(p_at, name="I")
  
      i_vv = I_rv.clone()
      i_vv.name = "i"
  
      M_rv = op_constructor(I_rv, X_rv, Y_rv)
      M_rv.name = "M"
  
      m_vv = M_rv.clone()
      m_vv.name = "m"
  
      del M_rv.tag.test_value
  
      M_logp = conditional_logp({M_rv: m_vv, I_rv: i_vv})
      M_logp_combined = pt.add(*M_logp.values())
  
      assert isinstance(M_logp_combined.tag.test_value, np.ndarray)
  
imports: import numpy
  import pytensor
  import pytensor.tensor
  import pytest
  import scipy.stats.distributions
  from pytensor import function
  from pytensor.graph.basic import Variable
  from pytensor.ifelse import ifelse
  from pytensor.tensor.random.basic import CategoricalRV
  from pytensor.tensor.shape import shape_tuple
  from pytensor.tensor.subtensor import AdvancedSubtensor, AdvancedSubtensor1, Subtensor, as_index_constant
  from pymc.logprob.abstract import MeasurableVariable
  from pymc.logprob.basic import conditional_logp, logp
  from pymc.logprob.mixture import MeasurableSwitchMixture, expand_indices
  from pymc.logprob.rewriting import construct_ir_fgraph
  from pymc.logprob.utils import dirac_delta
  from pymc.testing import assert_no_rvs
  from tests.logprob.utils import scipy_logprob
label_desc: Use image node_id 2 for calling a global function with example usage: test_compute_test_value(op_constructor) without return types