code: def test_do_self_reference():
      """Check we can replace a variable by an expression that refers to the same variable."""
      with pm.Model() as m:
          x = pm.Normal("x", 0, 1)
  
      with pytest.warns(
          UserWarning,
          match="Intervention expression references the variable that is being intervened",
      ):
          new_m = do(m, {x: x + 100})
  
      x = new_m["x"]
      do_x = new_m["do_x"]
      draw_x, draw_do_x = pm.draw([x, do_x], draws=5)
      np.testing.assert_allclose(draw_x + 100, draw_do_x)
  
imports: import arviz
  import numpy
  import pytest
  from pytensor import config
  import pymc
  from pymc.distributions.transforms import logodds
  from pymc.model.transform.conditioning import change_value_transforms, do, observe, remove_value_transforms
  from pymc.variational.minibatch_rv import create_minibatch_rv
label_desc: Use image node_id 11 for calling a global function with example usage: test_do_self_reference() without return types