code: def assert_true_mean_equal_by_dkwm_two_sample(
      samples1,
      low1,
      high1,
      samples2,
      low2,
      high2,
      false_fail_rate=1e-6,
      name=None,
  ):
      """Asserts the means of the given distributions are equal.
  
      More precisely, fails if there is enough evidence (using the
      [Dvoretzky-Kiefer-Wolfowitz-Massart inequality]
      (https://en.wikipedia.org/wiki/CDF-based_nonparametric_confidence_interval))
      that the means of the distributions from which the given samples are
      drawn are _not_ equal with statistical significance `false_fail_rate`
      or stronger, otherwise passes.  If you also want to check that you
      are gathering enough evidence that a pass is not spurious, see
      `min_num_samples_for_dkwm_mean_two_sample_test` and
      `min_discrepancy_of_true_means_detectable_by_dkwm_two_sample`.
  
      Note that `false_fail_rate` is a total false failure rate for all
      the assertions in the batch.  As such, if the batch is nontrivial,
      the assertion will insist on stronger evidence to fail any one member.
  
      Args:
        samples1: Floating-point `Tensor` of samples from the
          distribution(s) A.  Entries are assumed IID across the 0th
          dimension.  The other dimensions must broadcast with `low1`,
          `high1`, `low2`, and `high2`.
          The support is bounded: `low1 <= samples1 <= high1`.
        low1: Floating-point `Tensor` of lower bounds on the supports of the
          distributions A.
        high1: Floating-point `Tensor` of upper bounds on the supports of
          the distributions A.
        samples2: Floating-point `Tensor` of samples from the
          distribution(s) B.  Entries are assumed IID across the 0th
          dimension.  The other dimensions must broadcast with `low1`,
          `high1`, `low2`, and `high2`.
          The support is bounded: `low2 <= samples2 <= high2`.
        low2: Floating-point `Tensor` of lower bounds on the supports of the
          distributions B.
        high2: Floating-point `Tensor` of upper bounds on the supports of
          the distributions B.
        false_fail_rate: *Scalar* floating-point `Tensor` admissible total
          rate of mistakes.
        name: A name for this operation (optional).
  
      Returns:
        check: Op that raises `InvalidArgumentError` if any pair of confidence
          intervals true for corresponding true means do not overlap.
      """
      args_list = [
          samples1,
          low1,
          high1,
          samples2,
          low2,
          high2,
          false_fail_rate,
      ]
      with tf.name_scope(
          name or "assert_true_mean_equal_by_dkwm_two_sample"
      ):
          dtype = dtype_util.common_dtype(args_list, tf.float32)
          samples1 = tf.convert_to_tensor(
              value=samples1, name="samples1", dtype=dtype
          )
          low1 = tf.convert_to_tensor(
              value=low1, name="low1", dtype=dtype
          )
          high1 = tf.convert_to_tensor(
              value=high1, name="high1", dtype=dtype
          )
          samples2 = tf.convert_to_tensor(
              value=samples2, name="samples2", dtype=dtype
          )
          low2 = tf.convert_to_tensor(
              value=low2, name="low2", dtype=dtype
          )
          high2 = tf.convert_to_tensor(
              value=high2, name="high2", dtype=dtype
          )
          false_fail_rate = tf.convert_to_tensor(
              value=false_fail_rate, name="false_fail_rate", dtype=dtype
          )
          samples1 = _check_shape_dominates(samples1, [low1, high1])
          samples2 = _check_shape_dominates(samples2, [low2, high2])
          compatible_samples = tf.debugging.assert_equal(
              tf.shape(samples1)[1:], tf.shape(samples2)[1:]
          )
          with tf.control_dependencies([compatible_samples]):
              # Could in principle play games with cleverly allocating
              # significance instead of the even split below.  It may be possible
              # to get tighter intervals, in order to obtain a higher power test.
              # Any allocation strategy that depends only on the support bounds
              # and sample counts should be valid; however, because the intervals
              # scale as O(-log(false_fail_rate)), there doesn't seem to be much
              # room to win.
              (
                  min_mean_2,
                  max_mean_2,
              ) = true_mean_confidence_interval_by_dkwm(
                  samples2, low2, high2, false_fail_rate / 2.0
              )
              return assert_true_mean_in_interval_by_dkwm(
                  samples1,
                  low1,
                  high1,
                  min_mean_2,
                  max_mean_2,
                  false_fail_rate / 2.0,
              )
  
imports: import functools
  import itertools
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import distribution_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.util.seed_stream import SeedStream
label_desc: Use image node_id 23 for calling a global function with example usage: assert_true_mean_equal_by_dkwm_two_sample(samples1, low1, high1, samples2, low2, high2, false_fail_rate, name) and returns: assert_true_mean_in_interval_by_dkwm