docstr: Test determine_ready_tensors_and_table_initializers.
  
  Args:
    create_graph_fn: A function that adds ops to a graph and returns a dict
        mapping tensor names to `Tensor` or `SparseTensor`s.
    feeds: A list of keys in the dict returned by create_graph_fn that are fed
        in the main run (but not table initialization run).
    replaced_tensors_ready: A dict whose keys are keys in the dict returned by
        create_graph_fn and values are a bools indicating whether that tensor
        is ready to be replaced in this phase.
    should_be_ready: A dict whose keys are keys in the dict returned by
        create_graph_fn and value are bools indicating whether a tensor can be
        calculated in this phase.
    num_ready_table_initializers: The number of table initializers that are
        ready to run in the table initialization run of this phase.
code: def testDetermineReadyTensorsAndTableInitializers(
      self,
      create_graph_fn,
      feeds,
      replaced_tensors_ready,
      should_be_ready,
      num_ready_table_initializers,
  ):
      """Test determine_ready_tensors_and_table_initializers.
  
      Args:
        create_graph_fn: A function that adds ops to a graph and returns a dict
            mapping tensor names to `Tensor` or `SparseTensor`s.
        feeds: A list of keys in the dict returned by create_graph_fn that are fed
            in the main run (but not table initialization run).
        replaced_tensors_ready: A dict whose keys are keys in the dict returned by
            create_graph_fn and values are a bools indicating whether that tensor
            is ready to be replaced in this phase.
        should_be_ready: A dict whose keys are keys in the dict returned by
            create_graph_fn and value are bools indicating whether a tensor can be
            calculated in this phase.
        num_ready_table_initializers: The number of table initializers that are
            ready to run in the table initialization run of this phase.
      """
      with tf.compat.v1.Graph().as_default() as graph:
          tensors = create_graph_fn()
      replaced_tensors_ready = [
          (tensors[name], ready)
          for name, ready in replaced_tensors_ready.items()
      ]
  
      graph_analyzer = graph_tools.InitializableGraphAnalyzer(
          graph, {x: tensors[x] for x in feeds}, replaced_tensors_ready
      )
      self.assertEqual(
          len(graph_analyzer.ready_table_initializers),
          num_ready_table_initializers,
      )
  
      for name, ready in should_be_ready.items():
          tensor = tensors[name]
          self.assertEqual(
              graph_analyzer.ready_to_run(tensor),
              ready,
              msg="Expected tensor {} to be ready={}".format(
                  name, ready
              ),
          )
  
imports: import abc
  import os
  import tempfile
  import tensorflow
  from tensorflow_transform import graph_tools
  from tensorflow_transform import test_case
  from tfx_bsl.types import tfx_namedtuple
  from tensorflow.python.ops import control_flow_ops
label_desc: Use image node_id 1 for calling the GraphToolsTest obj's underlying member method code with example usage: obj.testDetermineReadyTensorsAndTableInitializers(create_graph_fn, feeds, replaced_tensors_ready, should_be_ready, num_ready_table_initializers) without return types