code: def test_thinning(self):
      fake_inner_kernel = test_fixtures.TestTransitionKernel()
      discarder = sample_discarding_kernel.SampleDiscardingKernel(
          fake_inner_kernel,
          num_steps_between_results=1,
      )
      seed1, seed2 = samplers.split_seed(
          test_util.test_seed(sampler_type="stateless")
      )
      first_state, kernel_results = discarder.one_step(
          0.0, discarder.bootstrap_results(0.0), seed=seed1
      )
      second_state, kernel_results = discarder.one_step(
          first_state, kernel_results, seed=seed2
      )
      first_state, second_state, kernel_results = self.evaluate(
          [first_state, second_state, kernel_results]
      )
      self.assertEqual(2, first_state)
      self.assertEqual(4, second_state)
      self.assertEqual(2, kernel_results.call_counter)
      self.assertEqual(4, kernel_results.inner_results.counter_1)
      self.assertEqual(8, kernel_results.inner_results.counter_2)
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.experimental.mcmc import covariance_reducer
  from tensorflow_probability.python.experimental.mcmc import sample_discarding_kernel
  from tensorflow_probability.python.experimental.mcmc import with_reductions
  from tensorflow_probability.python.experimental.mcmc.internal import test_fixtures
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 1 for calling the SampleDiscardingTest obj's underlying member method code with example usage: obj.test_thinning() without return types