code: def assert_mvn_target_conservation(event_size, batch_size, **kwargs):
      strm = test_util.test_seed_stream()
      initialization = mvn_diag.MultivariateNormalDiag(
          loc=tf.zeros(event_size)
      ).sample(batch_size, seed=strm())
      samples, _ = run_nuts_chain(
          event_size,
          batch_size,
          num_steps=1,
          initial_state=initialization,
          **kwargs,
      )
      answer = samples[0][-1]
      check_cdf_agrees = st.assert_multivariate_true_cdf_equal_on_projections_two_sample(
          answer,
          initialization,
          num_projections=100,
          false_fail_rate=1e-6,
      )
      check_sample_shape = assert_util.assert_equal(
          tf.shape(answer)[0], batch_size
      )
      movement = tf.linalg.norm(answer - initialization, axis=-1)
      # This movement distance (0.3) was copied from the univariate case.
      check_movement = assert_util.assert_greater_equal(
          tf.reduce_mean(movement), 0.3
      )
      check_enough_power = assert_util.assert_less(
          st.min_discrepancy_of_true_cdfs_detectable_by_dkwm_two_sample(
              batch_size,
              batch_size,
              false_fail_rate=1e-8,
              false_pass_rate=1e-6,
          ),
          0.055,
      )
      return (
          check_cdf_agrees,
          check_sample_shape,
          check_movement,
          check_enough_power,
      )
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.bijectors import identity
  from tensorflow_probability.python.distributions import beta
  from tensorflow_probability.python.distributions import half_normal
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import joint_distribution_coroutine
  from tensorflow_probability.python.distributions import joint_distribution_sequential
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import mvn_tril
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import sample
  from tensorflow_probability.python.distributions import sigmoid_beta
  from tensorflow_probability.python.distributions import student_t
  from tensorflow_probability.python.distributions.internal import statistical_testing
  from tensorflow_probability.python.internal import assert_util
  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.math import generic
  from tensorflow_probability.python.mcmc import diagnostic
  from tensorflow_probability.python.mcmc import dual_averaging_step_size_adaptation
  from tensorflow_probability.python.mcmc import nuts
  from tensorflow_probability.python.mcmc import sample
  from tensorflow_probability.python.mcmc import transformed_kernel
  from tensorflow_probability.python.stats import sample_stats
label_desc: Use image node_id 3 for calling a global function with example usage: assert_mvn_target_conservation(event_size, batch_size) and returns: check_cdf_agrees,  check_sample_shape,  check_movement,  check_enough_power