code: def test_match_exact_sampler(
      self, scale, num_samples, mean_std_atol, percentile_atol
  ):
      true_samples = exact_sampler(scale, num_samples)
      drawn_samples = discrete_gaussian_utils.sample_discrete_gaussian(
          scale=scale, shape=(num_samples,)
      )
      drawn_samples = self.evaluate(drawn_samples)
  
      # Check mean, std, and percentiles.
      self.assertAllClose(
          np.mean(true_samples),
          np.mean(drawn_samples),
          atol=mean_std_atol,
      )
      self.assertAllClose(
          np.std(true_samples),
          np.std(drawn_samples),
          atol=mean_std_atol,
      )
      self.assertAllClose(
          np.percentile(true_samples, [10, 30, 50, 70, 90]),
          np.percentile(drawn_samples, [10, 30, 50, 70, 90]),
          atol=percentile_atol,
      )
  
imports: import collections
  import fractions
  import math
  import random
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_privacy.privacy.dp_query import discrete_gaussian_utils
label_desc: Use image node_id 7 for calling the DiscreteGaussianUtilsTest obj's underlying member method code with example usage: obj.test_match_exact_sampler(scale, num_samples, mean_std_atol, percentile_atol) without return types