code: def test_normal_model(self):
      data = st.norm(10, 0.5).rvs(
          1000, random_state=np.random.RandomState(20160911)
      )
  
      initial_rng_state = np.random.get_state()
      with pm.Model() as m:
          mu = pm.Normal("mu", 0, 3)
          sigma = pm.HalfNormal("sigma", 1)
          y = pm.Normal("y", mu, sigma, observed=data)
          idata = pm.sample_smc(
              draws=2000, kernel=pm.smc.MH, progressbar=not _IS_WINDOWS
          )
      assert_random_state_equal(
          initial_rng_state, np.random.get_state()
      )
  
      post = idata.posterior.stack(sample=("chain", "draw"))
      assert np.abs(post["mu"].mean() - 10) < 0.1
      assert np.abs(post["sigma"].mean() - 0.5) < 0.05
  
imports: import logging
  import platform
  import warnings
  import numpy
  import pytensor.tensor
  import pytest
  import scipy.stats
  from arviz.data.inference_data import InferenceData
  import pymc
  from pymc.backends.base import MultiTrace
  from pymc.pytensorf import floatX
  from pymc.smc.kernels import IMH, systematic_resampling
  from tests.helpers import assert_random_state_equal
label_desc: Use image node_id 1 for calling the TestMHKernel obj's underlying member method code with example usage: obj.test_normal_model() without return types