code: def test_string_datetime_timezone() -> None:
      ccs_tz = "America/Caracas"
      stg_tz = "America/Santiago"
      utc_tz = "UTC"
      df = pl.DataFrame(
          {
              "x1": [
                  "1996-12-19T16:39:57 +00:00",
                  "2022-12-19T00:39:57 +00:00",
              ]
          }
      ).with_columns(
          **{
              "x1-datetime-ns": pl.col("x1").cast(
                  pl.Datetime(time_unit="ns", time_zone=ccs_tz)
              ),
              "x1-datetime-ms": pl.col("x1").cast(
                  pl.Datetime(time_unit="ms", time_zone=stg_tz)
              ),
              "x1-datetime-us": pl.col("x1").cast(
                  pl.Datetime(time_unit="us", time_zone=utc_tz)
              ),
          }
      )
  
      expected = pl.DataFrame(
          {
              "x1-datetime-ns": [
                  datetime(
                      year=1996,
                      month=12,
                      day=19,
                      hour=12,
                      minute=39,
                      second=57,
                  ),
                  datetime(
                      year=2022,
                      month=12,
                      day=18,
                      hour=20,
                      minute=39,
                      second=57,
                  ),
              ],
              "x1-datetime-ms": [
                  datetime(
                      year=1996,
                      month=12,
                      day=19,
                      hour=13,
                      minute=39,
                      second=57,
                  ),
                  datetime(
                      year=2022,
                      month=12,
                      day=18,
                      hour=21,
                      minute=39,
                      second=57,
                  ),
              ],
              "x1-datetime-us": [
                  datetime(
                      year=1996,
                      month=12,
                      day=19,
                      hour=16,
                      minute=39,
                      second=57,
                  ),
                  datetime(
                      year=2022,
                      month=12,
                      day=19,
                      hour=00,
                      minute=39,
                      second=57,
                  ),
              ],
          }
      ).select(
          pl.col("x1-datetime-ns")
          .dt.cast_time_unit("ns")
          .dt.replace_time_zone(ccs_tz),
          pl.col("x1-datetime-ms")
          .dt.cast_time_unit("ms")
          .dt.replace_time_zone(stg_tz),
          pl.col("x1-datetime-us")
          .dt.cast_time_unit("us")
          .dt.replace_time_zone(utc_tz),
      )
  
      out = df.select(
          pl.col("x1-datetime-ns"),
          pl.col("x1-datetime-ms"),
          pl.col("x1-datetime-us"),
      )
  
      assert_frame_equal(expected, out)
  
imports: from __future__ import annotations
  from datetime import date, datetime, time, timedelta
  from typing import Any
  import pytest
  import polars
  from polars.exceptions import ComputeError
  from polars.testing import assert_frame_equal
  from polars.testing.asserts.series import assert_series_equal
  from polars.utils.convert import MS_PER_SECOND, NS_PER_SECOND, US_PER_SECOND
label_desc: Use image node_id 5 for calling a global function with example usage: test_string_datetime_timezone() without return types