code: def test_pandas_multi_dim_pandas(
      cast_tensor_columns, use_tensor_extension_for_input
  ):
      input_tensor = np.arange(12).reshape((3, 2, 2))
      input_data = pd.DataFrame(
          {
              "x": TensorArray(input_tensor)
              if use_tensor_extension_for_input
              else list(input_tensor)
          }
      )
      expected_output = pd.DataFrame(
          {
              "x": (
                  list(input_tensor)
                  if cast_tensor_columns
                  or not use_tensor_extension_for_input
                  else TensorArray(input_tensor)
              )
          }
      )
      actual_output = _convert_batch_type_to_pandas(
          input_data, cast_tensor_columns
      )
      pd.testing.assert_frame_equal(expected_output, actual_output)
  
      actual_output = _convert_pandas_to_batch_type(
          actual_output,
          type=BatchFormat.PANDAS,
          cast_tensor_columns=cast_tensor_columns,
      )
      pd.testing.assert_frame_equal(actual_output, input_data)
  
imports: import pytest
  import warnings
  import pandas
  import numpy
  import pyarrow
  from ray.air._internal.torch_utils import convert_ndarray_to_torch_tensor
  from ray.air.constants import TENSOR_COLUMN_NAME
  from ray.air.util.data_batch_conversion import _convert_batch_type_to_pandas, _convert_pandas_to_batch_type, _convert_batch_type_to_numpy, _cast_ndarray_columns_to_tensor_extension, _cast_tensor_columns_to_ndarrays
  from ray.air.util.data_batch_conversion import BatchFormat
  from ray.air.util.tensor_extensions.pandas import TensorArray
  from ray.air.util.tensor_extensions.arrow import ArrowTensorArray
label_desc: Use image node_id 5 for calling a global function with example usage: test_pandas_multi_dim_pandas(cast_tensor_columns, use_tensor_extension_for_input) without return types