code: def test_sum_multiple_shapes(self, sample_size):
      with self.cached_session() as sess:
          t1 = tf.constant([2, 0], dtype=tf.int32)
          t2 = tf.constant([-1, 1, 3], dtype=tf.int32)
          t3 = tf.constant([-2], dtype=tf.int32)
          record = [t1, t2, t3]
          sample = [record] * sample_size
  
          query = dg_sum_query(l2_norm_bound=10, stddev=0.0)
          query_result, _ = test_utils.run_query(query, sample)
          expected = [
              sample_size * t1,
              sample_size * t2,
              sample_size * t3,
          ]
          result, expected = sess.run([query_result, expected])
          # Use `assertAllClose` for nested structures equality (with tolerance=0).
          self.assertAllClose(result, expected, atol=0)
  
file_path: privacy/tensorflow_privacy/privacy/dp_query/discrete_gaussian_query_test.py
imports: from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_privacy.privacy.dp_query import discrete_gaussian_query
  from tensorflow_privacy.privacy.dp_query import discrete_gaussian_utils
  from tensorflow_privacy.privacy.dp_query import test_utils
label_desc: Use image node_id 2 for calling the DiscreteGaussianQueryTest obj's underlying member method code with example usage: obj.test_sum_multiple_shapes(sample_size) without return types