code: def test_derive_sample_params(
      self, inner_query, clip_norm, stddev, arity
  ):
      if inner_query == "central":
          query = tree_range_query.TreeRangeSumQuery.build_central_gaussian_query(
              clip_norm, stddev, arity
          )
      elif inner_query == "distributed":
          query = tree_range_query.TreeRangeSumQuery.build_distributed_discrete_gaussian_query(
              clip_norm, stddev, arity
          )
      global_state = query.initial_global_state()
      derived_arity, inner_query_state = query.derive_sample_params(
          global_state
      )
      self.assertAllClose(derived_arity, arity)
      if inner_query == "central":
          self.assertAllClose(inner_query_state, clip_norm)
      elif inner_query == "distributed":
          self.assertAllClose(
              inner_query_state.l2_norm_bound, clip_norm
          )
          self.assertAllClose(inner_query_state.local_stddev, stddev)
  
file_path: privacy/tensorflow_privacy/privacy/dp_query/tree_range_query_test.py
imports: import math
  from absl.testing import parameterized
  import tensorflow
  from tensorflow_privacy.privacy.dp_query import tree_range_query
label_desc: Use image node_id 4 for calling the TreeRangeSumQueryTest obj's underlying member method code with example usage: obj.test_derive_sample_params(inner_query, clip_norm, stddev, arity) without return types