code: def testFunctionType(self):
      original = function_type.FunctionType(
          [
              function_type.Parameter(
                  "a",
                  function_type.Parameter.POSITIONAL_ONLY,
                  False,
                  None,
              ),
          ],
          collections.OrderedDict([("b", trace_type.from_value(1))]),
      )
      expected = function_type_pb2.FunctionType(
          parameters=[
              function_type_pb2.Parameter(
                  name="a",
                  kind=function_type_pb2.Parameter.Kind.POSITIONAL_ONLY,
                  is_optional=False,
              )
          ],
          captures=[
              function_type_pb2.Capture(
                  name="b",
                  type_constraint=serialization.serialize(
                      trace_type.from_value(1)
                  ),
              )
          ],
      )
      self.assertEqual(original.to_proto(), expected)
      self.assertEqual(
          function_type.FunctionType.from_proto(expected), original
      )
  
imports: import collections
  import pickle
  import platform
  from absl.testing import parameterized
  from tensorflow.core.function import trace_type
  from tensorflow.core.function.polymorphism import function_type
  from tensorflow.core.function.polymorphism import function_type_pb2
  from tensorflow.core.function.trace_type import serialization
  from tensorflow.python.framework import func_graph
  from tensorflow.python.platform import test
  from tensorflow.python.types import trace
label_desc: Use image node_id 2 for calling the SerializationTest obj's underlying member method code with example usage: obj.testFunctionType() without return types