code: def _test_noise_multiplier(
      self,
      query,
      records,
      noise_multiplier,
      learning_rate=None,
      tolerance=0.15,
      total_steps=10,
  ):
      global_state = query.initial_global_state()
      for t in range(total_steps):
          if learning_rate is not None:
              learning_rate.assign((t + 1.0) ** (-0.5))
          params = query.derive_sample_params(global_state)
          sample_state = query.initial_sample_state(records[0])
          for record in records:
              sample_state = query.accumulate_record(
                  params, sample_state, record
              )
          actual_sum, global_state, _ = query.get_noised_result(
              sample_state, global_state
          )
          expected_std = (
              global_state.sum_state.clip_value * noise_multiplier
          )
          self.assertAllClose(
              expected_std,
              global_state.sum_state.tree_state.value_generator_state.stddev,
          )
          global_state = query.reset_state(actual_sum, global_state)
          self.assertAllClose(
              expected_std,
              tf.math.reduce_std(actual_sum),
              rtol=tolerance,
          )
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_privacy.privacy.dp_query import quantile_adaptive_clip_tree_query
  from tensorflow_privacy.privacy.dp_query import test_utils
label_desc: Use image node_id 12 for calling the QAdaClipTreeResSumQueryTest obj's underlying member method code with example usage: obj._test_noise_multiplier(query, records, noise_multiplier, learning_rate, tolerance, total_steps) without return types