code: def test_adds_jitter(self):
      with pm.Model() as pmodel:
          A = pm.Flat("A", initval="moment")
          B = pm.HalfFlat("B", initval="moment")
          C = pm.Normal("C", mu=A + B, initval="moment")
      fn = make_initial_point_fn(
          model=pmodel, jitter_rvs={B}, return_transformed=True
      )
      iv = fn(0)
      # Moment of the Flat is 0
      assert iv["A"] == 0
      # Moment of the HalfFlat is 1, but HalfFlat is log-transformed by default
      # so the transformed initial value with jitter will be zero plus a jitter between [-1, 1].
      b_transformed = iv["B_log__"]
      b_untransformed = transform_back(B, b_transformed, model=pmodel)
      assert b_transformed != 0
      assert -1 < b_transformed < 1
      # C is centered on 0 + untransformed initval of B
      assert np.isclose(
          iv["C"],
          np.array(0 + b_untransformed, dtype=pytensor.config.floatX),
      )
      # Test jitter respects seeding.
      assert fn(0) == fn(0)
      assert fn(0) != fn(1)
  
imports: import cloudpickle
  import numpy
  import pytensor
  import pytensor.tensor
  import pytest
  from pytensor.tensor.random.op import RandomVariable
  import pymc
  from pymc.distributions.distribution import moment
  from pymc.initial_point import make_initial_point_fn, make_initial_point_fns_per_chain
label_desc: Use image node_id 7 for calling the TestInitvalEvaluation obj's underlying member method code with example usage: obj.test_adds_jitter() without return types