test_datetimeindex.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import pytest
  2. from pandas import (
  3. DatetimeIndex,
  4. Series,
  5. Timestamp,
  6. date_range,
  7. )
  8. import pandas._testing as tm
  9. @pytest.mark.parametrize(
  10. "cons",
  11. [
  12. lambda x: DatetimeIndex(x),
  13. lambda x: DatetimeIndex(DatetimeIndex(x)),
  14. ],
  15. )
  16. def test_datetimeindex(using_copy_on_write, cons):
  17. dt = date_range("2019-12-31", periods=3, freq="D")
  18. ser = Series(dt)
  19. idx = cons(ser)
  20. expected = idx.copy(deep=True)
  21. ser.iloc[0] = Timestamp("2020-12-31")
  22. if using_copy_on_write:
  23. tm.assert_index_equal(idx, expected)
  24. def test_datetimeindex_tz_convert(using_copy_on_write):
  25. dt = date_range("2019-12-31", periods=3, freq="D", tz="Europe/Berlin")
  26. ser = Series(dt)
  27. idx = DatetimeIndex(ser).tz_convert("US/Eastern")
  28. expected = idx.copy(deep=True)
  29. ser.iloc[0] = Timestamp("2020-12-31", tz="Europe/Berlin")
  30. if using_copy_on_write:
  31. tm.assert_index_equal(idx, expected)
  32. def test_datetimeindex_tz_localize(using_copy_on_write):
  33. dt = date_range("2019-12-31", periods=3, freq="D")
  34. ser = Series(dt)
  35. idx = DatetimeIndex(ser).tz_localize("Europe/Berlin")
  36. expected = idx.copy(deep=True)
  37. ser.iloc[0] = Timestamp("2020-12-31")
  38. if using_copy_on_write:
  39. tm.assert_index_equal(idx, expected)
  40. def test_datetimeindex_isocalendar(using_copy_on_write):
  41. dt = date_range("2019-12-31", periods=3, freq="D")
  42. ser = Series(dt)
  43. df = DatetimeIndex(ser).isocalendar()
  44. expected = df.index.copy(deep=True)
  45. ser.iloc[0] = Timestamp("2020-12-31")
  46. if using_copy_on_write:
  47. tm.assert_index_equal(df.index, expected)