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
6939 views
1
from __future__ import annotations
2
3
import datetime
4
5
import pytest
6
7
import polars as pl
8
9
10
def test_series_item() -> None:
11
s = pl.Series("a", [1])
12
assert s.item() == 1
13
14
15
def test_series_item_empty() -> None:
16
s = pl.Series("a", [])
17
with pytest.raises(ValueError):
18
s.item()
19
20
21
def test_series_item_incorrect_shape() -> None:
22
s = pl.Series("a", [1, 2])
23
with pytest.raises(ValueError):
24
s.item()
25
26
27
@pytest.fixture(scope="module")
28
def s() -> pl.Series:
29
return pl.Series("a", [1, 2])
30
31
32
@pytest.mark.parametrize(("index", "expected"), [(0, 1), (1, 2), (-1, 2), (-2, 1)])
33
def test_series_item_with_index(index: int, expected: int, s: pl.Series) -> None:
34
assert s.item(index) == expected
35
36
37
@pytest.mark.parametrize("index", [-10, 10])
38
def test_df_item_out_of_bounds(index: int, s: pl.Series) -> None:
39
with pytest.raises(IndexError, match="out of bounds"):
40
s.item(index)
41
42
43
def test_series_item_out_of_range_date() -> None:
44
s = pl.Series([datetime.date(9999, 12, 31)]).dt.offset_by("1d")
45
with pytest.raises(ValueError, match="out of range"):
46
s.item()
47
48