class_docstr: Tests for recognizable export signatures from concrete functions.
class_docstr_tok: ["Tests","for","recognizable","export","signatures","from","concrete","functions","."]
code: def testBasic(self):
      @polymorphic_function.function
      def fn(a, b):
          return a + b, a * b
  
      # Call the function to make def_function happy
      fn(array_ops.ones([]), array_ops.ones([]))
  
      fn_op = fn.get_concrete_function(
          tensor_spec.TensorSpec(shape=(None,), dtype=dtypes.float32),
          tensor_spec.TensorSpec(shape=(), dtype=dtypes.float32),
      )
      self.assertEqual(
          ["a", "b"], [inp.op.name for inp in fn_op.inputs]
      )
      self.assertEqual(
          [b"a", b"b"],
          [
              inp.op.get_attr("_user_specified_name")
              for inp in fn_op.inputs
          ],
      )
      self.assertLen(fn_op.graph.structured_outputs, 2)
      self.assertAllClose(
          [3.0, 2.0],
          fn_op(constant_op.constant(1.0), constant_op.constant(2.0)),
      )
      self.assertAllClose(
          [3.0, 2.0],
          fn_op(
              a=constant_op.constant(1.0), b=constant_op.constant(2.0)
          ),
      )
  
imports: from absl.testing import parameterized
  from tensorflow.core.protobuf import config_pb2
  from tensorflow.python.eager.polymorphic_function import polymorphic_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_spec
  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 1 for calling the ArgumentNamingTests obj's underlying member method code with example usage: obj.testBasic() and returns: unknown,  unknown