code: def test_discrete_rv_comparison_bitwise(
      inputs, comparison_op, exp_logp_true, exp_logp_false
  ):
      cens_x_rv = comparison_op(*inputs)
  
      cens_x_vv = cens_x_rv.clone()
  
      logprob = logp(cens_x_rv, cens_x_vv)
      assert_no_rvs(logprob)
  
      logp_fn = pytensor.function([cens_x_vv], logprob)
  
      assert np.isclose(logp_fn(1), exp_logp_true(3))
      assert np.isclose(logp_fn(0), exp_logp_false(3))
  
      bitwise_rv = pt.bitwise_not(comparison_op(*inputs))
      bitwise_vv = bitwise_rv.clone()
  
      logprob_not = logp(bitwise_rv, bitwise_vv)
      assert_no_rvs(logprob_not)
  
      logp_fn_not = pytensor.function([bitwise_vv], logprob_not)
  
      assert np.isclose(logp_fn_not(1), exp_logp_false(3))
      assert np.isclose(logp_fn_not(0), exp_logp_true(3))
  
file_path: pymc/tests/logprob/test_binary.py
imports: import numpy
  import pytensor
  import pytensor.tensor
  import pytest
  import scipy.stats
  from pytensor import function
  from pymc import logp
  from pymc.logprob import conditional_logp
  from pymc.testing import assert_no_rvs
label_desc: Use image node_id 2 for calling a global function with example usage: test_discrete_rv_comparison_bitwise(inputs, comparison_op, exp_logp_true, exp_logp_false) without return types