class_docstr: Tests for the default SMC kernel
class_docstr_tok: ["Tests","for","the","default","SMC","kernel"]
code: def test_return_datatype(self, chains):
      draws = 10
  
      with self.fast_model:
          with warnings.catch_warnings():
              warnings.filterwarnings(
                  "ignore", ".*number of samples.*", UserWarning
              )
              warnings.filterwarnings(
                  "ignore", "More chains .* than draws .*", UserWarning
              )
              idata = pm.sample_smc(
                  chains=chains,
                  draws=draws,
                  progressbar=not (chains > 1 and _IS_WINDOWS),
              )
              mt = pm.sample_smc(
                  chains=chains,
                  draws=draws,
                  return_inferencedata=False,
                  progressbar=not (chains > 1 and _IS_WINDOWS),
              )
  
      assert isinstance(idata, InferenceData)
      assert "sample_stats" in idata
      assert idata.posterior.sizes["chain"] == chains
      assert idata.posterior.sizes["draw"] == draws
  
      assert isinstance(mt, MultiTrace)
      assert mt.nchains == chains
      assert mt["x"].size == chains * draws
  
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 9 for calling the TestSMC obj's underlying member method code with example usage: obj.test_return_datatype(chains) without return types