54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
import numpy as np
|
|
import pytest
|
|
|
|
from pandas import (
|
|
DatetimeIndex,
|
|
NaT,
|
|
PeriodIndex,
|
|
TimedeltaIndex,
|
|
)
|
|
import pandas._testing as tm
|
|
|
|
|
|
class NATests:
|
|
def test_nat(self, index_without_na):
|
|
empty_index = index_without_na[:0]
|
|
|
|
index_with_na = index_without_na.copy(deep=True)
|
|
index_with_na._data[1] = NaT
|
|
|
|
assert empty_index._na_value is NaT
|
|
assert index_with_na._na_value is NaT
|
|
assert index_without_na._na_value is NaT
|
|
|
|
idx = index_without_na
|
|
assert idx._can_hold_na
|
|
|
|
tm.assert_numpy_array_equal(idx._isnan, np.array([False, False]))
|
|
assert idx.hasnans is False
|
|
|
|
idx = index_with_na
|
|
assert idx._can_hold_na
|
|
|
|
tm.assert_numpy_array_equal(idx._isnan, np.array([False, True]))
|
|
assert idx.hasnans is True
|
|
|
|
|
|
class TestDatetimeIndexNA(NATests):
|
|
@pytest.fixture
|
|
def index_without_na(self, tz_naive_fixture):
|
|
tz = tz_naive_fixture
|
|
return DatetimeIndex(["2011-01-01", "2011-01-02"], tz=tz)
|
|
|
|
|
|
class TestTimedeltaIndexNA(NATests):
|
|
@pytest.fixture
|
|
def index_without_na(self):
|
|
return TimedeltaIndex(["1 days", "2 days"])
|
|
|
|
|
|
class TestPeriodIndexNA(NATests):
|
|
@pytest.fixture
|
|
def index_without_na(self):
|
|
return PeriodIndex(["2011-01-01", "2011-01-02"], freq="D")
|