code: def test_serialize(
      inp, to_serialize_mem_type, from_serialize_mem_type
  ):
      with using_memory_type(to_serialize_mem_type):
          ary = CumlArray(data=inp)
          header, frames = ary.serialize()
      with using_memory_type(from_serialize_mem_type):
          ary2 = CumlArray.deserialize(header, frames)
  
          assert pickle.loads(header["type-serialized"]) is CumlArray
  
          _assert_equal(inp, ary2)
  
          assert (
              ary._array_interface["shape"]
              == ary2._array_interface["shape"]
          )
          # Restricting the strides check due to
          # https://github.com/cupy/cupy/issues/5897
          if not (
              len(ary.shape) > 1
              and (
                  (ary.order == "C" and ary.shape[0] == 1)
                  or (ary.order == "F" and ary.shape[-1] == 1)
              )
          ):
              assert (
                  ary._array_interface["strides"]
                  == ary2._array_interface["strides"]
              )
          assert (
              ary._array_interface["typestr"]
              == ary2._array_interface["typestr"]
          )
          assert ary2.mem_type is global_settings.memory_type
  
          if isinstance(inp, (cudf.Series, pd.Series)):
              assert ary.order == ary2.order
  
imports: import gc
  import operator
  import pickle
  import pytest
  from copy import deepcopy
  from cuml.internals.array import CumlArray, _order_to_strides, array_to_memory_order
  from cuml import global_settings
  from cuml.internals.mem_type import MemoryType
  from cuml.internals.memory_utils import _get_size_from_shape, determine_array_memtype, using_memory_type
  from cuml.internals.safe_imports import cpu_only_import, cpu_only_import_from, gpu_only_import, gpu_only_import_from
  from cuml.testing.strategies import UNSUPPORTED_CUDF_DTYPES, create_cuml_array_input, cuml_array_dtypes, cuml_array_input_types, cuml_array_inputs, cuml_array_orders, cuml_array_output_types, cuml_array_shapes, cuml_array_mem_types
  from cuml.testing.utils import normalized_shape, series_squeezed_shape, squeezed_shape, to_nparray
  from hypothesis import assume, given, settings
  from hypothesis import strategies
label_desc: Use image node_id 17 for calling a global function with example usage: test_serialize(inp, to_serialize_mem_type, from_serialize_mem_type) without return types