code: def _test_adaptive_update(self, update_function, args, test_case):
      lower = tf.constant(test_case.lower, dtype=tf.float64)
      upper = tf.constant(test_case.upper, dtype=tf.float64)
      estimate = tf.constant(test_case.estimate, dtype=tf.float64)
      error = tf.constant(test_case.error, dtype=tf.float64)
      tolerance = test_case.tolerance
      expected_new_lower = tf.constant(
          test_case.new_lower, dtype=tf.float64
      )
      expected_new_upper = tf.constant(
          test_case.new_upper, dtype=tf.float64
      )
      expected_sum_goods = tf.constant(
          test_case.sum_goods, dtype=tf.float64
      )
      calc = update_function(
          lower, upper, estimate, error, tolerance, **args
      )
      (
          actual_new_lower,
          actual_new_upper,
          actual_sum_goods,
      ) = self.evaluate(calc)
      self.assertAllClose(expected_new_lower, actual_new_lower)
      self.assertAllClose(expected_new_upper, actual_new_upper)
      self.assertAllClose(expected_sum_goods, actual_sum_goods)
  
imports: import collections
  import math
  import numpy
  import tensorflow.compat.v2
  import tf_quant_finance
  from tensorflow.python.framework import test_util
  from tf_quant_finance.math.integration import adaptive_update
label_desc: Use image node_id 5 for calling the IntegrationTest obj's underlying member method code with example usage: obj._test_adaptive_update(update_function, args, test_case) without return types