code: def test_adaptation_target_zero_geometric(self, reset):
      record1 = tf.constant([5.0])
      record2 = tf.constant([-2.5])
  
      query = quantile_adaptive_clip_tree_query.QAdaClipTreeResSumQuery(
          initial_l2_norm_clip=16.0,
          noise_multiplier=0.0,
          record_specs=tf.TensorSpec([]),
          target_unclipped_quantile=0.0,
          learning_rate=np.log(2.0),  # Geometric steps in powers of 2.
          clipped_count_stddev=0.0,
          expected_num_records=2.0,
          geometric_update=True,
      )
  
      global_state = query.initial_global_state()
  
      initial_clip = global_state.sum_state.clip_value
      self.assertAllClose(initial_clip, 16.0)
  
      # For two iterations, nothing is clipped, so the clip is cut in half.
      # Then one record is clipped, so the clip goes down by only sqrt(2.0) to
      # 4 / sqrt(2.0). Still only one record is clipped, so it reduces to 2.0.
      # Now both records are clipped, and the clip norm stays there (at 2.0).
  
      four_div_root_two = 4 / np.sqrt(2.0)  # approx 2.828
  
      expected_sums = [2.5, 2.5, 1.5, four_div_root_two - 2.5, 0.0]
      expected_clips = [8.0, 4.0, four_div_root_two, 2.0, 2.0]
      self._test_estimate_clip_expected_sum(
          query,
          global_state,
          [record1, record2],
          expected_sums,
          expected_clips,
          reset=reset,
      )
  
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 6 for calling the QAdaClipTreeResSumQueryTest obj's underlying member method code with example usage: obj.test_adaptation_target_zero_geometric(reset) without return types