docstr: Assert the empirical distribution of two set of samples is similar.
  
  Args:
    sample_a: Flat numpy array of samples from dist a.
    sample_b: Flat numpy array of samples from dist b.
    rtol: Relative tolerances in the histogram comparison.
    atol: Absolute tolerances in the histogram comparison.
code: def assertEmpiricalDistributionsEqual(
      self, sample_a, sample_b, rtol=1e-6, atol=1e-6
  ):
      """Assert the empirical distribution of two set of samples is similar.
  
      Args:
        sample_a: Flat numpy array of samples from dist a.
        sample_b: Flat numpy array of samples from dist b.
        rtol: Relative tolerances in the histogram comparison.
        atol: Absolute tolerances in the histogram comparison.
      """
      self.assertAllFinite(sample_a)
      self.assertAllFinite(sample_b)
  
      lb = np.min([sample_a, sample_b])
      ub = np.max([sample_a, sample_b])
  
      hist_a = np.histogram(
          sample_a, range=(lb, ub), bins=30, density=True
      )[0]
      hist_b = np.histogram(
          sample_b, range=(lb, ub), bins=30, density=True
      )[0]
  
      self.assertAllClose(hist_a, hist_b, rtol=rtol, atol=atol)
  
imports: import itertools
  import unittest
  from absl.testing import parameterized
  import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import truncated_normal
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 4 for calling the _TruncatedNormalTestCase obj's underlying member method code with example usage: obj.assertEmpiricalDistributionsEqual(sample_a, sample_b, rtol, atol) without return types