test_ops.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from datetime import datetime
  2. import pytest
  3. from pandas import (
  4. DatetimeIndex,
  5. Index,
  6. bdate_range,
  7. date_range,
  8. )
  9. import pandas._testing as tm
  10. class TestDatetimeIndexOps:
  11. def test_infer_freq(self, freq_sample):
  12. # GH 11018
  13. idx = date_range("2011-01-01 09:00:00", freq=freq_sample, periods=10)
  14. result = DatetimeIndex(idx.asi8, freq="infer")
  15. tm.assert_index_equal(idx, result)
  16. assert result.freq == freq_sample
  17. @pytest.mark.parametrize("freq", ["B", "C"])
  18. class TestBusinessDatetimeIndex:
  19. @pytest.fixture
  20. def rng(self, freq):
  21. START, END = datetime(2009, 1, 1), datetime(2010, 1, 1)
  22. return bdate_range(START, END, freq=freq)
  23. def test_comparison(self, rng):
  24. d = rng[10]
  25. comp = rng > d
  26. assert comp[11]
  27. assert not comp[9]
  28. def test_copy(self, rng):
  29. cp = rng.copy()
  30. tm.assert_index_equal(cp, rng)
  31. def test_identical(self, rng):
  32. t1 = rng.copy()
  33. t2 = rng.copy()
  34. assert t1.identical(t2)
  35. # name
  36. t1 = t1.rename("foo")
  37. assert t1.equals(t2)
  38. assert not t1.identical(t2)
  39. t2 = t2.rename("foo")
  40. assert t1.identical(t2)
  41. # freq
  42. t2v = Index(t2.values)
  43. assert t1.equals(t2v)
  44. assert not t1.identical(t2v)