code: def test_parquet_string_cache() -> None:
      f = io.BytesIO()
  
      df = pl.DataFrame({"a": ["a", "b", "c", "d"]}).with_columns(
          pl.col("a").cast(pl.Categorical)
      )
  
      df.write_parquet(f, row_group_size=2)
  
      # this file has 2 row groups and a categorical column
      # so polars should automatically set string cache
      f.seek(0)
      assert_series_equal(
          pl.read_parquet(f)["a"].cast(str), df["a"].cast(str)
      )
  
imports: from __future__ import annotations
  import io
  from datetime import datetime, time, timezone
  from decimal import Decimal
  from typing import TYPE_CHECKING
  import numpy
  import pandas
  import pyarrow
  import pyarrow.dataset
  import pyarrow.parquet
  import pytest
  import polars
  from polars.testing import assert_frame_equal, assert_series_equal
label_desc: Use image node_id 27 for calling a global function with example usage: test_parquet_string_cache() without return types