code: def testJitNoUnnecessaryTracing(self):
      def num_traces(f):
          return len(
              f.tf_function._list_all_concrete_functions_for_serialization()
          )
  
      def check_trace_only_once(arg1, arg2):
          @extensions.jit
          def f(a):
              return a + 1
  
          self.assertAllEqual(0, num_traces(f))
          f(arg1)
          self.assertAllEqual(1, num_traces(f))
          f(arg2)
          self.assertAllEqual(1, num_traces(f))
  
      check_trace_only_once(1, 2)
      check_trace_only_once(1.1, 2.1)
      check_trace_only_once(tf_np.asarray(1), tf_np.asarray(2))
      check_trace_only_once(
          tf.convert_to_tensor(value=1), tf.convert_to_tensor(value=2)
      )
  
imports: import functools
  import itertools
  from absl import flags
  from absl.testing import parameterized
  from jax import lax
  import numpy
  import tensorflow.compat.v2
  from trax.tf_numpy import extensions
  import trax.tf_numpy.numpy
label_desc: Use image node_id 10 for calling the ExtensionsTest obj's underlying member method code with example usage: obj.testJitNoUnnecessaryTracing() and returns: len, unknown