code: def test_custom_arrow_data_serializer_parquet_roundtrip(
      ray_start_regular_shared, tmp_path
  ):
      ray._private.worker.global_worker.get_serialization_context()
      t = pa.table({"a": list(range(10000000))})
      pq.write_table(t, f"{tmp_path}/test.parquet")
      t2 = pq.read_table(f"{tmp_path}/test.parquet")
      s_t = pickle.dumps(t)
      s_t2 = pickle.dumps(t2)
      # Check that the post-Parquet slice view chunks don't cause a serialization blow-up.
      assert len(s_t2) < 1.1 * len(s_t)
      # Check for round-trip equality.
      assert t2.equals(pickle.loads(s_t2))
  
imports: import logging
  import os
  import sys
  from unittest import mock
  import numpy
  import pyarrow
  import pyarrow.parquet
  import pytest
  from packaging.version import parse
  from pytest_lazyfixture import lazy_fixture
  import ray
  import ray.cloudpickle
  from ray._private.arrow_serialization import _align_bit_offset, _bytes_for_bits, _copy_bitpacked_buffer_if_needed, _copy_buffer_if_needed, _copy_normal_buffer_if_needed, _copy_offsets_buffer_if_needed
  from ray._private.utils import _get_pyarrow_version
  from ray.data.extensions.tensor_extension import ArrowTensorArray, ArrowVariableShapedTensorArray
  from ray.tests.conftest import *
label_desc: Use image node_id 36 for calling a global function with example usage: test_custom_arrow_data_serializer_parquet_roundtrip(ray_start_regular_shared, tmp_path) without return types