Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/py-polars/tests/unit/series/test_item.py
8431 views
1
from __future__ import annotations
2
3
import datetime
4
import sys
5
6
import pytest
7
8
import polars as pl
9
10
11
def test_series_item() -> None:
12
s = pl.Series("a", [1])
13
assert s.item() == 1
14
15
16
def test_series_item_empty() -> None:
17
s = pl.Series("a", [])
18
with pytest.raises(ValueError):
19
s.item()
20
21
22
def test_series_item_incorrect_shape() -> None:
23
s = pl.Series("a", [1, 2])
24
with pytest.raises(ValueError):
25
s.item()
26
27
28
@pytest.fixture(scope="module")
29
def s() -> pl.Series:
30
return pl.Series("a", [1, 2])
31
32
33
@pytest.mark.parametrize(("index", "expected"), [(0, 1), (1, 2), (-1, 2), (-2, 1)])
34
def test_series_item_with_index(index: int, expected: int, s: pl.Series) -> None:
35
assert s.item(index) == expected
36
37
38
@pytest.mark.parametrize("index", [-10, 10])
39
def test_df_item_out_of_bounds(index: int, s: pl.Series) -> None:
40
with pytest.raises(IndexError, match="out of bounds"):
41
s.item(index)
42
43
44
@pytest.mark.skipif(sys.version_info < (3, 14, 0), reason="Version specific error")
45
def test_series_item_out_of_range_date() -> None:
46
s = pl.Series([datetime.date(9999, 12, 31)]).dt.offset_by("1d")
47
with pytest.raises(ValueError, match="year must be in"):
48
s.item()
49
50