From 1e658405a9d354eaf142ce6123a83744bc7a67b2 Mon Sep 17 00:00:00 2001 From: Stijn de Gooijer Date: Wed, 7 Feb 2024 13:07:48 +0100 Subject: [PATCH] test(python): Add test for `Series.to_numpy` with timezones --- .../interop/numpy/test_to_numpy_series.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/py-polars/tests/unit/interop/numpy/test_to_numpy_series.py b/py-polars/tests/unit/interop/numpy/test_to_numpy_series.py index 0cf505dc39a9..d7d060b1d6d2 100644 --- a/py-polars/tests/unit/interop/numpy/test_to_numpy_series.py +++ b/py-polars/tests/unit/interop/numpy/test_to_numpy_series.py @@ -112,6 +112,16 @@ def test_series_to_numpy_temporal_zero_copy( assert result.dtype == expected_dtype +def test_series_to_numpy_datetime_with_tz_zero_copy() -> None: + values = [datetime(1970, 1, 1), datetime(2024, 2, 28)] + s = pl.Series(values).dt.convert_time_zone("Europe/Amsterdam") + result = s.to_numpy(use_pyarrow=False, zero_copy_only=True) + + assert_zero_copy(s, result) + assert result.tolist() == values + assert result.dtype == np.dtype("datetime64[us]") + + def test_series_to_numpy_date() -> None: values = [date(1970, 1, 1), date(2024, 2, 28)] s = pl.Series(values) @@ -152,6 +162,16 @@ def test_series_to_numpy_temporal_with_nulls( assert_zero_copy_only_raises(s) +def test_series_to_numpy_datetime_with_tz_with_nulls() -> None: + values = [datetime(1970, 1, 1), datetime(2024, 2, 28), None] + s = pl.Series(values).dt.convert_time_zone("Europe/Amsterdam") + result = s.to_numpy(use_pyarrow=False) + + assert result.tolist() == values + assert result.dtype == np.dtype("datetime64[us]") + assert_zero_copy_only_raises(s) + + @pytest.mark.parametrize( ("dtype", "values"), [