code: def test_tree_sum_last_step_expected_value_fn(
      self, total_steps, expected_value, node_value
  ):
      # Test no-arg function as stateless value generator.
      tree_aggregator = tree_aggregation.TreeAggregator(
          value_generator=lambda: node_value
      )
      state = tree_aggregator.init_state()
      for leaf_node_idx in range(total_steps):
          self.assertEqual(
              leaf_node_idx, tree_aggregation.get_step_idx(state)
          )
          val, state = tree_aggregator.get_cumsum_and_update(state)
      self.assertEqual(expected_value, val)
  
imports: import math
  import random
  from absl.testing import parameterized
  import tensorflow
  from tensorflow_privacy.privacy.dp_query import tree_aggregation
label_desc: Use image node_id 3 for calling the TreeAggregatorTest obj's underlying member method code with example usage: obj.test_tree_sum_last_step_expected_value_fn(total_steps, expected_value, node_value) without return types