code: def test_chandrupatla_max_iterations(self):
      expected_roots = samplers.normal(
          [4, 3], seed=test_util.test_seed(sampler_type="stateless")
      )
      max_iterations = samplers.uniform(
          [4, 3],
          minval=1,
          maxval=6,
          dtype=tf.int32,
          seed=test_util.test_seed(sampler_type="stateless"),
      )
      _, _, num_iterations = root_search.find_root_chandrupatla(
          objective_fn=lambda x: (x - expected_roots) ** 3,
          low=-1000000.0,
          high=1000000.0,
          position_tolerance=1e-8,
          max_iterations=max_iterations,
      )
      self.assertAllClose(num_iterations, max_iterations)
  
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 3 for calling the ChandrupatlaRootSearchTest obj's underlying member method code with example usage: obj.test_chandrupatla_max_iterations() without return types