class_docstr: Compatibility tests that use TF.
  
  Uses tf.Graph to serialize and run the functions; expects that `func`
  contains a `jax2tf.call_tf` and uses `jax2tf.convert` to generate a
  `tf.Graph` containing a XlaCallModule with the actual MLIR module.
class_docstr_tok: ["Compatibility","tests","that","use","TF",".","Uses","tf.Graph","to","serialize","and","run","the","functions",";","expects","that","`","func","`","contains","a","`","jax2tf.call_tf","`","and","uses","`","jax2tf.convert","`","to","generate","a","`","tf.Graph","`","containing","a","XlaCallModule","with","the","actual","MLIR","module","."]
code: def test_tf_call_tf_function(self):
      # A custom call tf.call_tf_function is generated when we lower call_tf
      # with the call_tf_graph=True option.
      def func(x):
          def func_tf(x):
              return tf.math.sin(x)
  
          return jnp.cos(
              jax2tf.call_tf(
                  func_tf, output_shape_dtype=x, call_tf_graph=True
              )(x)
          )
  
      data = self.load_testdata(tf_call_tf_function.data_2023_07_29)
      self.run_one_test(func, data)
  
imports: from __future__ import annotations
  import base64
  from collections.abc import Sequence
  import io
  import os
  import tarfile
  from typing import Callable, Optional
  from absl.testing import absltest
  from jax import config
  from jax._src import test_util
  from jax._src.internal_test_util import export_back_compat_test_util
  from jax._src.lib import xla_extension
  from jax.experimental import jax2tf
  from jax.experimental.jax2tf.tests.back_compat_testdata import tf_call_tf_function
  import jax.numpy
  import tensorflow
label_desc: Use image node_id 4 for calling the CompatTensoflowTest obj's underlying member method code with example usage: obj.test_tf_call_tf_function() and returns: jnp, tf