PageRenderTime 47ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/pandasreg/test/test_rperiod.py

https://github.com/abielr/pandasreg
Python | 81 lines | 70 code | 11 blank | 0 comment | 1 complexity | 0dbab1d8e83e1ae927d846a5f1697361 MD5 | raw file
  1. import numpy as np
  2. import numpy.testing as npt
  3. from nose.tools import *
  4. from datetime import datetime
  5. import pandas as pd
  6. from pandasreg.rperiod import RFrequency, RPeriod, RPeriodIndex
  7. class TestClass:
  8. def setUp(self):
  9. pass
  10. def tearDown(self):
  11. pass
  12. def test_periods(self):
  13. dt = datetime(2013,1,1)
  14. assert RPeriod(dt, freq="D").to_timestamp() == pd.Timestamp(datetime(2013,1,1))
  15. assert RPeriod(dt, freq="B").to_timestamp() == pd.Timestamp(datetime(2013,1,1))
  16. assert RPeriod(dt, freq="W-MON").to_timestamp() == pd.Timestamp(datetime(2013,1,7))
  17. assert RPeriod(dt, freq="W-TUE").to_timestamp() == pd.Timestamp(datetime(2013,1,1))
  18. assert RPeriod(dt, freq="W-WED").to_timestamp() == pd.Timestamp(datetime(2013,1,2))
  19. assert RPeriod(dt, freq="W-THU").to_timestamp() == pd.Timestamp(datetime(2013,1,3))
  20. assert RPeriod(dt, freq="W-FRI").to_timestamp() == pd.Timestamp(datetime(2013,1,4))
  21. assert RPeriod(dt, freq="W-SAT").to_timestamp() == pd.Timestamp(datetime(2013,1,5))
  22. assert RPeriod(dt, freq="W-SUN").to_timestamp() == pd.Timestamp(datetime(2013,1,6))
  23. assert RPeriod(dt, freq="TM").to_timestamp() == pd.Timestamp(datetime(2013,1,15))
  24. assert RPeriod(dt, freq="M").to_timestamp() == pd.Timestamp(datetime(2013,1,31))
  25. assert RPeriod(dt, freq="Q").to_timestamp() == pd.Timestamp(datetime(2013,3,31))
  26. assert RPeriod(dt, freq="SA").to_timestamp() == pd.Timestamp(datetime(2013,6,30))
  27. assert RPeriod(dt, freq="A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  28. def test_asfreq(self):
  29. dt = datetime(2013,1,1)
  30. assert RPeriod(dt, freq="D").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  31. assert RPeriod(dt, freq="B").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  32. assert RPeriod(dt, freq="W-MON").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  33. assert RPeriod(dt, freq="W-TUE").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  34. assert RPeriod(dt, freq="W-WED").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  35. assert RPeriod(dt, freq="W-THU").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  36. assert RPeriod(dt, freq="W-FRI").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  37. assert RPeriod(dt, freq="W-SAT").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  38. assert RPeriod(dt, freq="W-SUN").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  39. assert RPeriod(dt, freq="TM").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  40. assert RPeriod(dt, freq="M").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  41. assert RPeriod(dt, freq="BM").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  42. assert RPeriod(dt, freq="Q").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  43. assert RPeriod(dt, freq="A").asfreq("A").to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  44. assert RPeriod(dt, freq="A").asfreq("D", how='E').to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  45. assert RPeriod(dt, freq="A").asfreq("D", how='S').to_timestamp() == pd.Timestamp(datetime(2013,1,1))
  46. assert RPeriod(dt, freq="A").asfreq("B", how='E').to_timestamp() == pd.Timestamp(datetime(2013,12,31))
  47. assert RPeriod(dt, freq="A").asfreq("B", how='S').to_timestamp() == pd.Timestamp(datetime(2013,1,1))
  48. assert RPeriod(dt, freq="A").asfreq("W-MON", how='E').to_timestamp() == pd.Timestamp(datetime(2014,1,6))
  49. assert RPeriod(dt, freq="A").asfreq("W-MON", how='S').to_timestamp() == pd.Timestamp(datetime(2013,1,7))
  50. def test_indexing(self):
  51. index = RPeriodIndex(start=datetime(2013,1,1), periods=50, freq="M")
  52. s = pd.Series(np.arange(len(index)), index)
  53. assert s[0] == 0
  54. assert s[-1] == 49
  55. assert s[datetime(2013,1,1)] == 0
  56. assert s["2013-01"] == 0
  57. assert s[RPeriod(datetime(2013,1,1), freq="M")] == 0
  58. @raises(KeyError)
  59. def test_indexing_exception(self):
  60. index = RPeriodIndex(start=datetime(2013,1,1), periods=50, freq="M")
  61. s = pd.Series(np.arange(len(index)), index)
  62. s[datetime(2020,1,1)]
  63. def test_rperiodindex(self):
  64. ix = RPeriodIndex(start=datetime(2010,1,1), periods=50, freq="M")
  65. ix = RPeriodIndex(start=RPeriod(datetime(2010,1,1), freq="M"), periods=50)
  66. ix = RPeriodIndex(start="1/1/2000", periods=50, freq="M")
  67. ix = RPeriodIndex(start="2000-01-01", periods=50, freq="M")
  68. if __name__ == "__main__":
  69. import nose
  70. nose.run(argv=["-w", __file__,"--with-coverage"])