code: def test_named_model(self, seeded_test):
      # Named models used to fail with Simulator because the arguments to the
      # random fn used to be passed by name. This is no longer true.
      # https://github.com/pymc-devs/pymc/pull/4365#issuecomment-761221146
      name = "NamedModel"
      with pm.Model(name=name):
          a = pm.Normal("a", mu=0, sigma=1)
          b = pm.HalfNormal("b", sigma=1)
          s = pm.Simulator(
              "s", self.normal_sim, a, b, observed=self.data
          )
  
          with warnings.catch_warnings():
              warnings.filterwarnings(
                  "ignore", ".*number of samples.*", UserWarning
              )
              trace = pm.sample_smc(
                  draws=10, chains=2, return_inferencedata=False
              )
          assert f"{name}::a" in trace.varnames
          assert f"{name}::b" in trace.varnames
          assert f"{name}::b_log__" in trace.varnames
  
imports: import warnings
  import cloudpickle
  import numpy
  import pytensor
  import pytest
  import scipy.stats
  from pytensor.graph import ancestors
  from pytensor.tensor.random.op import RandomVariable
  from pytensor.tensor.random.var import RandomGeneratorSharedVariable, RandomStateSharedVariable
  from pytensor.tensor.sort import SortOp
  import pymc
  from pymc import floatX
  from pymc.initial_point import make_initial_point_fn
  from pymc.pytensorf import compile_pymc
  from pymc.smc.kernels import IMH
label_desc: Use image node_id 17 for calling the TestSimulator obj's underlying member method code with example usage: obj.test_named_model(seeded_test) without return types