Path: blob/main/py-polars/tests/unit/series/buffers/test_from_buffer.py
6940 views
from __future__ import annotations12from datetime import date34import pytest5from hypothesis import given67import polars as pl8from polars.testing import assert_series_equal9from polars.testing.parametric import series10from tests.unit.conftest import NUMERIC_DTYPES111213@given(14s=series(15allowed_dtypes=[*NUMERIC_DTYPES, pl.Boolean],16allow_chunks=False,17allow_null=False,18)19)20def test_series_from_buffer(s: pl.Series) -> None:21buffer_info = s._get_buffer_info()22result = pl.Series._from_buffer(s.dtype, buffer_info, owner=s)23assert_series_equal(s, result)242526def test_series_from_buffer_numeric() -> None:27s = pl.Series([1, 2, 3], dtype=pl.UInt16)28buffer_info = s._get_buffer_info()29result = pl.Series._from_buffer(s.dtype, buffer_info, owner=s)30assert_series_equal(s, result)313233def test_series_from_buffer_sliced_bitmask() -> None:34s = pl.Series([True] * 9, dtype=pl.Boolean)[5:]35buffer_info = s._get_buffer_info()36result = pl.Series._from_buffer(s.dtype, buffer_info, owner=s)37assert_series_equal(s, result)383940def test_series_from_buffer_unsupported() -> None:41s = pl.Series([date(2020, 1, 1), date(2020, 2, 5)])42buffer_info = s._get_buffer_info()4344msg = "`_from_buffer` requires a physical type as input for `dtype`, got date"45with pytest.raises(TypeError, match=msg):46pl.Series._from_buffer(pl.Date, buffer_info, owner=s)474849