class_docstr: Checks for tfl custom TensorList kernels.
  
  * Validate conversion through python api with
    `legalize_custom_tensor_list_ops = True`.
  * Validate python bindings for registration through
    `InterpreterWithCustomOps`.
  * Check tensorflow and tensorflow lite output the same data.
code: def _get_tfl_tf_outputs(self, tf_callable, *inp):
      interpreter = self._get_interpreter_from_c_func(tf_callable)
      get_inp_index = lambda i: interpreter.get_input_details()[i][
          "index"
      ]
      for i, arr in enumerate(inp):
          interpreter.resize_tensor_input(get_inp_index(i), arr.shape)
      interpreter.allocate_tensors()
      for i, arr in enumerate(inp):
          interpreter.set_tensor(get_inp_index(i), arr)
      interpreter.invoke()
  
      tfl_out = interpreter.get_tensor(
          interpreter.get_output_details()[0]["index"]
      )
      tf_out = tf_callable(*inp)
      return tfl_out, tf_out
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow.lite.kernels.variants.py import register_list_ops_py
  from tensorflow.lite.python import interpreter
  from tensorflow.python.ops import list_ops
  from tensorflow.python.platform import googletest
label_desc: Use image node_id 2 for calling the ListOpsTest obj's underlying member method code with example usage: obj._get_tfl_tf_outputs(tf_callable) and returns: tfl_out,  tf_out