code: def test_chandrupatla_non_static_shape(self):
      if tf.executing_eagerly():
          self.skipTest("Test uses dynamic shapes.")
  
      f = lambda x: (x - 1.0) * (x + 1)
      low = tf1.placeholder_with_default(
          [-100.0, -100.0, -100.0], shape=None
      )
      high = tf1.placeholder_with_default(
          [100.0, 100.0, 100.0], shape=None
      )
      self.assertAllClose(
          root_search.find_root_chandrupatla(
              f, low=low, high=high
          ).objective_at_estimated_root,
          [0.0, 0.0, 0.0],
      )
  
imports: import numpy
  import scipy.optimize
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import special_math
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import root_search
label_desc: Use image node_id 8 for calling the ChandrupatlaRootSearchTest obj's underlying member method code with example usage: obj.test_chandrupatla_non_static_shape() without return types