HEX
Server: Apache
System: Linux srv4.garantili.com.tr 4.18.0-477.21.1.lve.1.el8.x86_64 #1 SMP Tue Sep 5 23:08:35 UTC 2023 x86_64
User: ekspardev (1006)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/local/lib64/python3.6/site-packages/pandas/tests/series/methods/test_first_and_last.py
"""
Note: includes tests for `last`
"""

import numpy as np
import pytest

from pandas import Series, date_range
import pandas._testing as tm


class TestFirst:
    def test_first_subset(self):
        rng = date_range("1/1/2000", "1/1/2010", freq="12h")
        ts = Series(np.random.randn(len(rng)), index=rng)
        result = ts.first("10d")
        assert len(result) == 20

        rng = date_range("1/1/2000", "1/1/2010", freq="D")
        ts = Series(np.random.randn(len(rng)), index=rng)
        result = ts.first("10d")
        assert len(result) == 10

        result = ts.first("3M")
        expected = ts[:"3/31/2000"]
        tm.assert_series_equal(result, expected)

        result = ts.first("21D")
        expected = ts[:21]
        tm.assert_series_equal(result, expected)

        result = ts[:0].first("3M")
        tm.assert_series_equal(result, ts[:0])

    def test_first_raises(self):
        # GH#20725
        ser = Series("a b c".split())
        msg = "'first' only supports a DatetimeIndex index"
        with pytest.raises(TypeError, match=msg):
            ser.first("1D")

    def test_last_subset(self):
        rng = date_range("1/1/2000", "1/1/2010", freq="12h")
        ts = Series(np.random.randn(len(rng)), index=rng)
        result = ts.last("10d")
        assert len(result) == 20

        rng = date_range("1/1/2000", "1/1/2010", freq="D")
        ts = Series(np.random.randn(len(rng)), index=rng)
        result = ts.last("10d")
        assert len(result) == 10

        result = ts.last("21D")
        expected = ts["12/12/2009":]
        tm.assert_series_equal(result, expected)

        result = ts.last("21D")
        expected = ts[-21:]
        tm.assert_series_equal(result, expected)

        result = ts[:0].last("3M")
        tm.assert_series_equal(result, ts[:0])

    def test_last_raises(self):
        # GH#20725
        ser = Series("a b c".split())
        msg = "'last' only supports a DatetimeIndex index"
        with pytest.raises(TypeError, match=msg):
            ser.last("1D")