code: def test_supports_structured_elems_odd_base_case(self):
      pair = collections.namedtuple("pair", ("first", "second"))
      data = pair(
          first=self._maybe_static(tf.constant([0.0, 1.0, 2.0])),
          second=self._maybe_static(tf.constant([0.0, 10.0, 20.0])),
      )
  
      def fn(a, b):
          return pair(
              first=a.first + b.first, second=a.second + b.second
          )
  
      result = self.evaluate(
          scan_associative(fn, elems=data, max_num_levels=8)
      )
      self.assertAllClose(result.first, [0.0, 1.0, 3.0])
      self.assertAllClose(result.second, [0.0, 10.0, 30.0])
  
imports: import collections
  import functools
  import operator
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import uniform
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.math.scan_associative import scan_associative
label_desc: Use image node_id 7 for calling the _ScanAssociativeTest obj's underlying member method code with example usage: obj.test_supports_structured_elems_odd_base_case() and returns: pair