code: def test_f64_multichain_multipart(self):
      if self.use_default_momentum_distribution:
          momentum_distribution = None
      else:
          momentum_distribution = _make_composite_tensor(
              jds.JointDistributionSequential(
                  [
                      normal.Normal(
                          0.0, tf.constant(0.5, dtype=tf.float64)
                      ),
                      normal.Normal(
                          0.0, tf.constant(0.25, dtype=tf.float64)
                      ),
                  ]
              )
          )
      kernel = phmc.PreconditionedHamiltonianMonteCarlo(
          lambda x, y: -(x**2) - y**2,
          step_size=0.5,
          num_leapfrog_steps=2,
          momentum_distribution=momentum_distribution,
      )
      kernel = sssa.SimpleStepSizeAdaptation(
          kernel, num_adaptation_steps=3
      )
      nchains = 7
      self.evaluate(
          sample.sample_chain(
              1,
              kernel=kernel,
              current_state=(
                  tf.ones([nchains], tf.float64),
                  tf.ones([nchains], tf.float64),
              ),
              num_burnin_steps=5,
              trace_fn=None,
              seed=test_util.test_seed(),
          )
      )
  
imports: import collections
  from absl.testing import parameterized
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import reshape
  from tensorflow_probability.python.bijectors import scale
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import joint_distribution_sequential
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import mvn_linear_operator
  from tensorflow_probability.python.distributions import mvn_tril
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import wishart
  from tensorflow_probability.python.experimental.distributions import mvn_precision_factor_linop
  from tensorflow_probability.python.experimental.mcmc import preconditioned_hmc
  from tensorflow_probability.python.internal import auto_composite_tensor
  from tensorflow_probability.python.internal import distribute_lib
  from tensorflow_probability.python.internal import distribute_test_lib
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.internal import unnest
  from tensorflow_probability.python.mcmc import diagnostic
  from tensorflow_probability.python.mcmc import dual_averaging_step_size_adaptation
  from tensorflow_probability.python.mcmc import sample
  from tensorflow_probability.python.mcmc import simple_step_size_adaptation
  from tensorflow_probability.python.mcmc import transformed_kernel
  from tensorflow_probability.python.mcmc.internal import leapfrog_integrator
  from tensorflow_probability.python.stats import sample_stats
label_desc: Use image node_id 3 for calling the _PreconditionedHMCTest obj's underlying member method code with example usage: obj.test_f64_multichain_multipart() without return types