code: def testShapes(self):
      fdef = self._build_function_def()
      g, _ = function_def_to_graph.function_def_to_graph_def(
          fdef,
          input_shapes=[
              tensor_shape.TensorShape([]),
              tensor_shape.TensorShape([5]),
              None,
          ],
      )
      self.assertEqual("shape" in g.node[0].attr, True)
      self.assertSequenceEqual(
          tensor_shape.TensorShape(
              g.node[0].attr["shape"].shape
          ).as_list(),
          [],
      )
      self.assertEqual(
          g.node[0].attr["shape"].shape.unknown_rank, False
      )
      self.assertEqual("shape" in g.node[1].attr, True)
      self.assertSequenceEqual(
          tensor_shape.TensorShape(
              g.node[1].attr["shape"].shape
          ).as_list(),
          [5],
      )
      self.assertEqual(
          g.node[0].attr["shape"].shape.unknown_rank, False
      )
      self.assertFalse("shape" in g.node[2].attr)
  
imports: from tensorflow.python.eager import def_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import function_def_to_graph
  from tensorflow.python.framework import graph_to_function_def
  from tensorflow.python.framework import op_def_library
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.framework import test_ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
label_desc: Use image node_id 3 for calling the FunctionDefToGraphDefTest obj's underlying member method code with example usage: obj.testShapes() without return types