Path: blob/main/py-polars/tests/unit/series/buffers/test_get_buffer_info.py
6940 views
import pytest12import polars as pl3from polars.exceptions import ComputeError4from tests.unit.conftest import NUMERIC_DTYPES567@pytest.mark.parametrize("dtype", NUMERIC_DTYPES)8def test_get_buffer_info_numeric(dtype: pl.DataType) -> None:9s = pl.Series([1, 2, 3], dtype=dtype)10assert s._get_buffer_info()[0] > 0111213def test_get_buffer_info_bool() -> None:14s = pl.Series([True, False, False, True])15assert s._get_buffer_info()[0] > 016assert s[1:]._get_buffer_info()[1] == 1171819def test_get_buffer_info_after_rechunk() -> None:20s = pl.Series([1, 2, 3])21ptr = s._get_buffer_info()[0]22assert isinstance(ptr, int)2324s2 = s.append(pl.Series([1, 2]))25ptr2 = s2.rechunk()._get_buffer_info()[0]26assert ptr != ptr2272829def test_get_buffer_info_invalid_data_type() -> None:30s = pl.Series(["a", "bc"])3132msg = "`_get_buffer_info` not implemented for non-physical type str; try to select a buffer first"33with pytest.raises(TypeError, match=msg):34s._get_buffer_info()353637def test_get_buffer_info_chunked() -> None:38s1 = pl.Series([1, 2])39s2 = pl.Series([3, 4])40s = pl.concat([s1, s2], rechunk=False)4142with pytest.raises(ComputeError):43s._get_buffer_info()444546