code: def test_interleave_columns(nulls, num_cols, num_rows, dtype):
      if dtype not in ["float32", "float64"] and nulls in ["some"]:
          pytest.skip(reason="nulls not supported in dtype: " + dtype)
  
      pdf = pd.DataFrame(dtype=dtype)
      for i in range(num_cols):
          colname = str(i)
          data = pd.Series(np.random.randint(0, 26, num_rows)).astype(
              dtype
          )
  
          if nulls == "some":
              idx = np.random.choice(
                  num_rows, size=int(num_rows / 2), replace=False
              )
              data[idx] = np.nan
          pdf[colname] = data
  
      gdf = cudf.from_pandas(pdf)
  
      if dtype == "category":
          with pytest.raises(ValueError):
              assert gdf.interleave_columns()
      else:
          got = gdf.interleave_columns()
  
          expect = pd.Series(
              np.vstack(pdf.to_numpy()).reshape((-1,))
          ).astype(dtype)
  
          assert_eq(expect, got)
  
imports: import re
  from itertools import chain
  import numpy
  import pandas
  import pytest
  import cudf
  from cudf import melt
  from cudf.core.buffer.spill_manager import get_global_manager
  from cudf.testing._utils import ALL_TYPES, DATETIME_TYPES, NUMERIC_TYPES, assert_eq
label_desc: Use image node_id 8 for calling a global function with example usage: test_interleave_columns(nulls, num_cols, num_rows, dtype) without return types