Path: blob/main/py-polars/tests/unit/series/test_item.py
6939 views
from __future__ import annotations12import datetime34import pytest56import polars as pl789def test_series_item() -> None:10s = pl.Series("a", [1])11assert s.item() == 1121314def test_series_item_empty() -> None:15s = pl.Series("a", [])16with pytest.raises(ValueError):17s.item()181920def test_series_item_incorrect_shape() -> None:21s = pl.Series("a", [1, 2])22with pytest.raises(ValueError):23s.item()242526@pytest.fixture(scope="module")27def s() -> pl.Series:28return pl.Series("a", [1, 2])293031@pytest.mark.parametrize(("index", "expected"), [(0, 1), (1, 2), (-1, 2), (-2, 1)])32def test_series_item_with_index(index: int, expected: int, s: pl.Series) -> None:33assert s.item(index) == expected343536@pytest.mark.parametrize("index", [-10, 10])37def test_df_item_out_of_bounds(index: int, s: pl.Series) -> None:38with pytest.raises(IndexError, match="out of bounds"):39s.item(index)404142def test_series_item_out_of_range_date() -> None:43s = pl.Series([datetime.date(9999, 12, 31)]).dt.offset_by("1d")44with pytest.raises(ValueError, match="out of range"):45s.item()464748