PageRenderTime 86ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 1ms

/pandas/tseries/tests/test_period.py

http://github.com/pydata/pandas
Python | 2663 lines | 1993 code | 550 blank | 120 comment | 98 complexity | b1d0757cd4a97534734fe6a978e394f5 MD5 | raw file
Possible License(s): BSD-3-Clause, Apache-2.0

Large files files are truncated, but you can click here to view the full file

  1. """Tests suite for Period handling.
  2. Parts derived from scikits.timeseries code, original authors:
  3. - Pierre Gerard-Marchant & Matt Knox
  4. - pierregm_at_uga_dot_edu - mattknow_ca_at_hotmail_dot_com
  5. """
  6. from datetime import datetime, date, timedelta
  7. from numpy.ma.testutils import assert_equal
  8. from pandas import Timestamp
  9. from pandas.tseries.frequencies import MONTHS, DAYS, _period_code_map
  10. from pandas.tseries.period import Period, PeriodIndex, period_range
  11. from pandas.tseries.index import DatetimeIndex, date_range, Index
  12. from pandas.tseries.tools import to_datetime
  13. import pandas.tseries.period as pmod
  14. import pandas.core.datetools as datetools
  15. import pandas as pd
  16. import numpy as np
  17. from numpy.random import randn
  18. from pandas.compat import range, lrange, lmap, zip
  19. from pandas import Series, TimeSeries, DataFrame, _np_version_under1p9
  20. from pandas import tslib
  21. from pandas.util.testing import(assert_series_equal, assert_almost_equal,
  22. assertRaisesRegexp)
  23. import pandas.util.testing as tm
  24. from pandas import compat
  25. from numpy.testing import assert_array_equal
  26. class TestPeriodProperties(tm.TestCase):
  27. "Test properties such as year, month, weekday, etc...."
  28. #
  29. def test_quarterly_negative_ordinals(self):
  30. p = Period(ordinal=-1, freq='Q-DEC')
  31. self.assertEqual(p.year, 1969)
  32. self.assertEqual(p.quarter, 4)
  33. p = Period(ordinal=-2, freq='Q-DEC')
  34. self.assertEqual(p.year, 1969)
  35. self.assertEqual(p.quarter, 3)
  36. p = Period(ordinal=-2, freq='M')
  37. self.assertEqual(p.year, 1969)
  38. self.assertEqual(p.month, 11)
  39. def test_period_cons_quarterly(self):
  40. # bugs in scikits.timeseries
  41. for month in MONTHS:
  42. freq = 'Q-%s' % month
  43. exp = Period('1989Q3', freq=freq)
  44. self.assertIn('1989Q3', str(exp))
  45. stamp = exp.to_timestamp('D', how='end')
  46. p = Period(stamp, freq=freq)
  47. self.assertEqual(p, exp)
  48. def test_period_cons_annual(self):
  49. # bugs in scikits.timeseries
  50. for month in MONTHS:
  51. freq = 'A-%s' % month
  52. exp = Period('1989', freq=freq)
  53. stamp = exp.to_timestamp('D', how='end') + timedelta(days=30)
  54. p = Period(stamp, freq=freq)
  55. self.assertEqual(p, exp + 1)
  56. def test_period_cons_weekly(self):
  57. for num in range(10, 17):
  58. daystr = '2011-02-%d' % num
  59. for day in DAYS:
  60. freq = 'W-%s' % day
  61. result = Period(daystr, freq=freq)
  62. expected = Period(daystr, freq='D').asfreq(freq)
  63. self.assertEqual(result, expected)
  64. def test_period_cons_nat(self):
  65. p = Period('NaT', freq='M')
  66. self.assertEqual(p.ordinal, tslib.iNaT)
  67. self.assertEqual(p.freq, 'M')
  68. p = Period('nat', freq='W-SUN')
  69. self.assertEqual(p.ordinal, tslib.iNaT)
  70. self.assertEqual(p.freq, 'W-SUN')
  71. p = Period(tslib.iNaT, freq='D')
  72. self.assertEqual(p.ordinal, tslib.iNaT)
  73. self.assertEqual(p.freq, 'D')
  74. self.assertRaises(ValueError, Period, 'NaT')
  75. def test_timestamp_tz_arg(self):
  76. import pytz
  77. p = Period('1/1/2005', freq='M').to_timestamp(tz='Europe/Brussels')
  78. self.assertEqual(p.tz,
  79. pytz.timezone('Europe/Brussels').normalize(p).tzinfo)
  80. def test_timestamp_tz_arg_dateutil(self):
  81. import dateutil
  82. from pandas.tslib import maybe_get_tz
  83. p = Period('1/1/2005', freq='M').to_timestamp(tz=maybe_get_tz('dateutil/Europe/Brussels'))
  84. self.assertEqual(p.tz, dateutil.tz.gettz('Europe/Brussels'))
  85. def test_timestamp_tz_arg_dateutil_from_string(self):
  86. import dateutil
  87. p = Period('1/1/2005', freq='M').to_timestamp(tz='dateutil/Europe/Brussels')
  88. self.assertEqual(p.tz, dateutil.tz.gettz('Europe/Brussels'))
  89. def test_timestamp_nat_tz(self):
  90. t = Period('NaT', freq='M').to_timestamp()
  91. self.assertTrue(t is tslib.NaT)
  92. t = Period('NaT', freq='M').to_timestamp(tz='Asia/Tokyo')
  93. self.assertTrue(t is tslib.NaT)
  94. def test_period_constructor(self):
  95. i1 = Period('1/1/2005', freq='M')
  96. i2 = Period('Jan 2005')
  97. self.assertEqual(i1, i2)
  98. i1 = Period('2005', freq='A')
  99. i2 = Period('2005')
  100. i3 = Period('2005', freq='a')
  101. self.assertEqual(i1, i2)
  102. self.assertEqual(i1, i3)
  103. i4 = Period('2005', freq='M')
  104. i5 = Period('2005', freq='m')
  105. self.assertRaises(ValueError, i1.__ne__, i4)
  106. self.assertEqual(i4, i5)
  107. i1 = Period.now('Q')
  108. i2 = Period(datetime.now(), freq='Q')
  109. i3 = Period.now('q')
  110. self.assertEqual(i1, i2)
  111. self.assertEqual(i1, i3)
  112. # Biz day construction, roll forward if non-weekday
  113. i1 = Period('3/10/12', freq='B')
  114. i2 = Period('3/10/12', freq='D')
  115. self.assertEqual(i1, i2.asfreq('B'))
  116. i2 = Period('3/11/12', freq='D')
  117. self.assertEqual(i1, i2.asfreq('B'))
  118. i2 = Period('3/12/12', freq='D')
  119. self.assertEqual(i1, i2.asfreq('B'))
  120. i3 = Period('3/10/12', freq='b')
  121. self.assertEqual(i1, i3)
  122. i1 = Period(year=2005, quarter=1, freq='Q')
  123. i2 = Period('1/1/2005', freq='Q')
  124. self.assertEqual(i1, i2)
  125. i1 = Period(year=2005, quarter=3, freq='Q')
  126. i2 = Period('9/1/2005', freq='Q')
  127. self.assertEqual(i1, i2)
  128. i1 = Period(year=2005, month=3, day=1, freq='D')
  129. i2 = Period('3/1/2005', freq='D')
  130. self.assertEqual(i1, i2)
  131. i3 = Period(year=2005, month=3, day=1, freq='d')
  132. self.assertEqual(i1, i3)
  133. i1 = Period(year=2012, month=3, day=10, freq='B')
  134. i2 = Period('3/12/12', freq='B')
  135. self.assertEqual(i1, i2)
  136. i1 = Period('2005Q1')
  137. i2 = Period(year=2005, quarter=1, freq='Q')
  138. i3 = Period('2005q1')
  139. self.assertEqual(i1, i2)
  140. self.assertEqual(i1, i3)
  141. i1 = Period('05Q1')
  142. self.assertEqual(i1, i2)
  143. lower = Period('05q1')
  144. self.assertEqual(i1, lower)
  145. i1 = Period('1Q2005')
  146. self.assertEqual(i1, i2)
  147. lower = Period('1q2005')
  148. self.assertEqual(i1, lower)
  149. i1 = Period('1Q05')
  150. self.assertEqual(i1, i2)
  151. lower = Period('1q05')
  152. self.assertEqual(i1, lower)
  153. i1 = Period('4Q1984')
  154. self.assertEqual(i1.year, 1984)
  155. lower = Period('4q1984')
  156. self.assertEqual(i1, lower)
  157. i1 = Period('1982', freq='min')
  158. i2 = Period('1982', freq='MIN')
  159. self.assertEqual(i1, i2)
  160. i2 = Period('1982', freq=('Min', 1))
  161. self.assertEqual(i1, i2)
  162. expected = Period('2007-01', freq='M')
  163. i1 = Period('200701', freq='M')
  164. self.assertEqual(i1, expected)
  165. i1 = Period('200701', freq='M')
  166. self.assertEqual(i1, expected)
  167. i1 = Period(200701, freq='M')
  168. self.assertEqual(i1, expected)
  169. i1 = Period(ordinal=200701, freq='M')
  170. self.assertEqual(i1.year, 18695)
  171. i1 = Period(datetime(2007, 1, 1), freq='M')
  172. i2 = Period('200701', freq='M')
  173. self.assertEqual(i1, i2)
  174. i1 = Period(date(2007, 1, 1), freq='M')
  175. i2 = Period(datetime(2007, 1, 1), freq='M')
  176. self.assertEqual(i1, i2)
  177. i1 = Period('2007-01-01 09:00:00.001')
  178. expected = Period(datetime(2007, 1, 1, 9, 0, 0, 1000), freq='L')
  179. self.assertEqual(i1, expected)
  180. i1 = Period('2007-01-01 09:00:00.00101')
  181. expected = Period(datetime(2007, 1, 1, 9, 0, 0, 1010), freq='U')
  182. self.assertEqual(i1, expected)
  183. self.assertRaises(ValueError, Period, ordinal=200701)
  184. self.assertRaises(ValueError, Period, '2007-1-1', freq='X')
  185. def test_freq_str(self):
  186. i1 = Period('1982', freq='Min')
  187. self.assertNotEqual(i1.freq[0], '1')
  188. def test_repr(self):
  189. p = Period('Jan-2000')
  190. self.assertIn('2000-01', repr(p))
  191. p = Period('2000-12-15')
  192. self.assertIn('2000-12-15', repr(p))
  193. def test_repr_nat(self):
  194. p = Period('nat', freq='M')
  195. self.assertIn(repr(tslib.NaT), repr(p))
  196. def test_millisecond_repr(self):
  197. p = Period('2000-01-01 12:15:02.123')
  198. self.assertEqual("Period('2000-01-01 12:15:02.123', 'L')", repr(p))
  199. def test_microsecond_repr(self):
  200. p = Period('2000-01-01 12:15:02.123567')
  201. self.assertEqual("Period('2000-01-01 12:15:02.123567', 'U')", repr(p))
  202. def test_strftime(self):
  203. p = Period('2000-1-1 12:34:12', freq='S')
  204. res = p.strftime('%Y-%m-%d %H:%M:%S')
  205. self.assertEqual(res, '2000-01-01 12:34:12')
  206. tm.assert_isinstance(res, compat.text_type) # GH3363
  207. def test_sub_delta(self):
  208. left, right = Period('2011', freq='A'), Period('2007', freq='A')
  209. result = left - right
  210. self.assertEqual(result, 4)
  211. self.assertRaises(ValueError, left.__sub__,
  212. Period('2007-01', freq='M'))
  213. def test_to_timestamp(self):
  214. p = Period('1982', freq='A')
  215. start_ts = p.to_timestamp(how='S')
  216. aliases = ['s', 'StarT', 'BEGIn']
  217. for a in aliases:
  218. self.assertEqual(start_ts, p.to_timestamp('D', how=a))
  219. end_ts = p.to_timestamp(how='E')
  220. aliases = ['e', 'end', 'FINIsH']
  221. for a in aliases:
  222. self.assertEqual(end_ts, p.to_timestamp('D', how=a))
  223. from_lst = ['A', 'Q', 'M', 'W', 'B',
  224. 'D', 'H', 'Min', 'S']
  225. def _ex(p):
  226. return Timestamp((p + 1).start_time.value - 1)
  227. for i, fcode in enumerate(from_lst):
  228. p = Period('1982', freq=fcode)
  229. result = p.to_timestamp().to_period(fcode)
  230. self.assertEqual(result, p)
  231. self.assertEqual(p.start_time, p.to_timestamp(how='S'))
  232. self.assertEqual(p.end_time, _ex(p))
  233. # Frequency other than daily
  234. p = Period('1985', freq='A')
  235. result = p.to_timestamp('H', how='end')
  236. expected = datetime(1985, 12, 31, 23)
  237. self.assertEqual(result, expected)
  238. result = p.to_timestamp('T', how='end')
  239. expected = datetime(1985, 12, 31, 23, 59)
  240. self.assertEqual(result, expected)
  241. result = p.to_timestamp(how='end')
  242. expected = datetime(1985, 12, 31)
  243. self.assertEqual(result, expected)
  244. expected = datetime(1985, 1, 1)
  245. result = p.to_timestamp('H', how='start')
  246. self.assertEqual(result, expected)
  247. result = p.to_timestamp('T', how='start')
  248. self.assertEqual(result, expected)
  249. result = p.to_timestamp('S', how='start')
  250. self.assertEqual(result, expected)
  251. assertRaisesRegexp(ValueError, 'Only mult == 1', p.to_timestamp, '5t')
  252. p = Period('NaT', freq='W')
  253. self.assertTrue(p.to_timestamp() is tslib.NaT)
  254. def test_start_time(self):
  255. freq_lst = ['A', 'Q', 'M', 'D', 'H', 'T', 'S']
  256. xp = datetime(2012, 1, 1)
  257. for f in freq_lst:
  258. p = Period('2012', freq=f)
  259. self.assertEqual(p.start_time, xp)
  260. self.assertEqual(Period('2012', freq='B').start_time,
  261. datetime(2012, 1, 2))
  262. self.assertEqual(Period('2012', freq='W').start_time,
  263. datetime(2011, 12, 26))
  264. p = Period('NaT', freq='W')
  265. self.assertTrue(p.start_time is tslib.NaT)
  266. def test_end_time(self):
  267. p = Period('2012', freq='A')
  268. def _ex(*args):
  269. return Timestamp(Timestamp(datetime(*args)).value - 1)
  270. xp = _ex(2013, 1, 1)
  271. self.assertEqual(xp, p.end_time)
  272. p = Period('2012', freq='Q')
  273. xp = _ex(2012, 4, 1)
  274. self.assertEqual(xp, p.end_time)
  275. p = Period('2012', freq='M')
  276. xp = _ex(2012, 2, 1)
  277. self.assertEqual(xp, p.end_time)
  278. xp = _ex(2012, 1, 2)
  279. p = Period('2012', freq='D')
  280. self.assertEqual(p.end_time, xp)
  281. xp = _ex(2012, 1, 1, 1)
  282. p = Period('2012', freq='H')
  283. self.assertEqual(p.end_time, xp)
  284. xp = _ex(2012, 1, 3)
  285. self.assertEqual(Period('2012', freq='B').end_time, xp)
  286. xp = _ex(2012, 1, 2)
  287. self.assertEqual(Period('2012', freq='W').end_time, xp)
  288. p = Period('NaT', freq='W')
  289. self.assertTrue(p.end_time is tslib.NaT)
  290. def test_anchor_week_end_time(self):
  291. def _ex(*args):
  292. return Timestamp(Timestamp(datetime(*args)).value - 1)
  293. p = Period('2013-1-1', 'W-SAT')
  294. xp = _ex(2013, 1, 6)
  295. self.assertEqual(p.end_time, xp)
  296. def test_properties_annually(self):
  297. # Test properties on Periods with annually frequency.
  298. a_date = Period(freq='A', year=2007)
  299. assert_equal(a_date.year, 2007)
  300. def test_properties_quarterly(self):
  301. # Test properties on Periods with daily frequency.
  302. qedec_date = Period(freq="Q-DEC", year=2007, quarter=1)
  303. qejan_date = Period(freq="Q-JAN", year=2007, quarter=1)
  304. qejun_date = Period(freq="Q-JUN", year=2007, quarter=1)
  305. #
  306. for x in range(3):
  307. for qd in (qedec_date, qejan_date, qejun_date):
  308. assert_equal((qd + x).qyear, 2007)
  309. assert_equal((qd + x).quarter, x + 1)
  310. def test_properties_monthly(self):
  311. # Test properties on Periods with daily frequency.
  312. m_date = Period(freq='M', year=2007, month=1)
  313. for x in range(11):
  314. m_ival_x = m_date + x
  315. assert_equal(m_ival_x.year, 2007)
  316. if 1 <= x + 1 <= 3:
  317. assert_equal(m_ival_x.quarter, 1)
  318. elif 4 <= x + 1 <= 6:
  319. assert_equal(m_ival_x.quarter, 2)
  320. elif 7 <= x + 1 <= 9:
  321. assert_equal(m_ival_x.quarter, 3)
  322. elif 10 <= x + 1 <= 12:
  323. assert_equal(m_ival_x.quarter, 4)
  324. assert_equal(m_ival_x.month, x + 1)
  325. def test_properties_weekly(self):
  326. # Test properties on Periods with daily frequency.
  327. w_date = Period(freq='WK', year=2007, month=1, day=7)
  328. #
  329. assert_equal(w_date.year, 2007)
  330. assert_equal(w_date.quarter, 1)
  331. assert_equal(w_date.month, 1)
  332. assert_equal(w_date.week, 1)
  333. assert_equal((w_date - 1).week, 52)
  334. def test_properties_daily(self):
  335. # Test properties on Periods with daily frequency.
  336. b_date = Period(freq='B', year=2007, month=1, day=1)
  337. #
  338. assert_equal(b_date.year, 2007)
  339. assert_equal(b_date.quarter, 1)
  340. assert_equal(b_date.month, 1)
  341. assert_equal(b_date.day, 1)
  342. assert_equal(b_date.weekday, 0)
  343. assert_equal(b_date.dayofyear, 1)
  344. #
  345. d_date = Period(freq='D', year=2007, month=1, day=1)
  346. #
  347. assert_equal(d_date.year, 2007)
  348. assert_equal(d_date.quarter, 1)
  349. assert_equal(d_date.month, 1)
  350. assert_equal(d_date.day, 1)
  351. assert_equal(d_date.weekday, 0)
  352. assert_equal(d_date.dayofyear, 1)
  353. def test_properties_hourly(self):
  354. # Test properties on Periods with hourly frequency.
  355. h_date = Period(freq='H', year=2007, month=1, day=1, hour=0)
  356. #
  357. assert_equal(h_date.year, 2007)
  358. assert_equal(h_date.quarter, 1)
  359. assert_equal(h_date.month, 1)
  360. assert_equal(h_date.day, 1)
  361. assert_equal(h_date.weekday, 0)
  362. assert_equal(h_date.dayofyear, 1)
  363. assert_equal(h_date.hour, 0)
  364. #
  365. def test_properties_minutely(self):
  366. # Test properties on Periods with minutely frequency.
  367. t_date = Period(freq='Min', year=2007, month=1, day=1, hour=0,
  368. minute=0)
  369. #
  370. assert_equal(t_date.quarter, 1)
  371. assert_equal(t_date.month, 1)
  372. assert_equal(t_date.day, 1)
  373. assert_equal(t_date.weekday, 0)
  374. assert_equal(t_date.dayofyear, 1)
  375. assert_equal(t_date.hour, 0)
  376. assert_equal(t_date.minute, 0)
  377. def test_properties_secondly(self):
  378. # Test properties on Periods with secondly frequency.
  379. s_date = Period(freq='Min', year=2007, month=1, day=1,
  380. hour=0, minute=0, second=0)
  381. #
  382. assert_equal(s_date.year, 2007)
  383. assert_equal(s_date.quarter, 1)
  384. assert_equal(s_date.month, 1)
  385. assert_equal(s_date.day, 1)
  386. assert_equal(s_date.weekday, 0)
  387. assert_equal(s_date.dayofyear, 1)
  388. assert_equal(s_date.hour, 0)
  389. assert_equal(s_date.minute, 0)
  390. assert_equal(s_date.second, 0)
  391. def test_properties_nat(self):
  392. p_nat = Period('NaT', freq='M')
  393. t_nat = pd.Timestamp('NaT')
  394. # confirm Period('NaT') work identical with Timestamp('NaT')
  395. for f in ['year', 'month', 'day', 'hour', 'minute', 'second',
  396. 'week', 'dayofyear', 'quarter']:
  397. self.assertEqual(getattr(p_nat, f), -1)
  398. self.assertEqual(getattr(t_nat, f), -1)
  399. for f in ['weekofyear', 'dayofweek', 'weekday', 'qyear']:
  400. self.assertEqual(getattr(p_nat, f), -1)
  401. def test_pnow(self):
  402. dt = datetime.now()
  403. val = pmod.pnow('D')
  404. exp = Period(dt, freq='D')
  405. self.assertEqual(val, exp)
  406. def test_constructor_corner(self):
  407. self.assertRaises(ValueError, Period, year=2007, month=1,
  408. freq='2M')
  409. self.assertRaises(ValueError, Period, datetime.now())
  410. self.assertRaises(ValueError, Period, datetime.now().date())
  411. self.assertRaises(ValueError, Period, 1.6, freq='D')
  412. self.assertRaises(ValueError, Period, ordinal=1.6, freq='D')
  413. self.assertRaises(ValueError, Period, ordinal=2, value=1, freq='D')
  414. self.assertRaises(ValueError, Period)
  415. self.assertRaises(ValueError, Period, month=1)
  416. p = Period('2007-01-01', freq='D')
  417. result = Period(p, freq='A')
  418. exp = Period('2007', freq='A')
  419. self.assertEqual(result, exp)
  420. def test_constructor_infer_freq(self):
  421. p = Period('2007-01-01')
  422. self.assertEqual(p.freq, 'D')
  423. p = Period('2007-01-01 07')
  424. self.assertEqual(p.freq, 'H')
  425. p = Period('2007-01-01 07:10')
  426. self.assertEqual(p.freq, 'T')
  427. p = Period('2007-01-01 07:10:15')
  428. self.assertEqual(p.freq, 'S')
  429. p = Period('2007-01-01 07:10:15.123')
  430. self.assertEqual(p.freq, 'L')
  431. p = Period('2007-01-01 07:10:15.123000')
  432. self.assertEqual(p.freq, 'L')
  433. p = Period('2007-01-01 07:10:15.123400')
  434. self.assertEqual(p.freq, 'U')
  435. def test_asfreq_MS(self):
  436. initial = Period("2013")
  437. self.assertEqual(initial.asfreq(freq="M", how="S"), Period('2013-01', 'M'))
  438. self.assertRaises(ValueError, initial.asfreq, freq="MS", how="S")
  439. tm.assertRaisesRegexp(ValueError, "Unknown freqstr: MS", pd.Period, '2013-01', 'MS')
  440. self.assertTrue(_period_code_map.get("MS") is None)
  441. def noWrap(item):
  442. return item
  443. class TestFreqConversion(tm.TestCase):
  444. "Test frequency conversion of date objects"
  445. def test_asfreq_corner(self):
  446. val = Period(freq='A', year=2007)
  447. self.assertRaises(ValueError, val.asfreq, '5t')
  448. def test_conv_annual(self):
  449. # frequency conversion tests: from Annual Frequency
  450. ival_A = Period(freq='A', year=2007)
  451. ival_AJAN = Period(freq="A-JAN", year=2007)
  452. ival_AJUN = Period(freq="A-JUN", year=2007)
  453. ival_ANOV = Period(freq="A-NOV", year=2007)
  454. ival_A_to_Q_start = Period(freq='Q', year=2007, quarter=1)
  455. ival_A_to_Q_end = Period(freq='Q', year=2007, quarter=4)
  456. ival_A_to_M_start = Period(freq='M', year=2007, month=1)
  457. ival_A_to_M_end = Period(freq='M', year=2007, month=12)
  458. ival_A_to_W_start = Period(freq='WK', year=2007, month=1, day=1)
  459. ival_A_to_W_end = Period(freq='WK', year=2007, month=12, day=31)
  460. ival_A_to_B_start = Period(freq='B', year=2007, month=1, day=1)
  461. ival_A_to_B_end = Period(freq='B', year=2007, month=12, day=31)
  462. ival_A_to_D_start = Period(freq='D', year=2007, month=1, day=1)
  463. ival_A_to_D_end = Period(freq='D', year=2007, month=12, day=31)
  464. ival_A_to_H_start = Period(freq='H', year=2007, month=1, day=1,
  465. hour=0)
  466. ival_A_to_H_end = Period(freq='H', year=2007, month=12, day=31,
  467. hour=23)
  468. ival_A_to_T_start = Period(freq='Min', year=2007, month=1, day=1,
  469. hour=0, minute=0)
  470. ival_A_to_T_end = Period(freq='Min', year=2007, month=12, day=31,
  471. hour=23, minute=59)
  472. ival_A_to_S_start = Period(freq='S', year=2007, month=1, day=1,
  473. hour=0, minute=0, second=0)
  474. ival_A_to_S_end = Period(freq='S', year=2007, month=12, day=31,
  475. hour=23, minute=59, second=59)
  476. ival_AJAN_to_D_end = Period(freq='D', year=2007, month=1, day=31)
  477. ival_AJAN_to_D_start = Period(freq='D', year=2006, month=2, day=1)
  478. ival_AJUN_to_D_end = Period(freq='D', year=2007, month=6, day=30)
  479. ival_AJUN_to_D_start = Period(freq='D', year=2006, month=7, day=1)
  480. ival_ANOV_to_D_end = Period(freq='D', year=2007, month=11, day=30)
  481. ival_ANOV_to_D_start = Period(freq='D', year=2006, month=12, day=1)
  482. assert_equal(ival_A.asfreq('Q', 'S'), ival_A_to_Q_start)
  483. assert_equal(ival_A.asfreq('Q', 'e'), ival_A_to_Q_end)
  484. assert_equal(ival_A.asfreq('M', 's'), ival_A_to_M_start)
  485. assert_equal(ival_A.asfreq('M', 'E'), ival_A_to_M_end)
  486. assert_equal(ival_A.asfreq('WK', 'S'), ival_A_to_W_start)
  487. assert_equal(ival_A.asfreq('WK', 'E'), ival_A_to_W_end)
  488. assert_equal(ival_A.asfreq('B', 'S'), ival_A_to_B_start)
  489. assert_equal(ival_A.asfreq('B', 'E'), ival_A_to_B_end)
  490. assert_equal(ival_A.asfreq('D', 'S'), ival_A_to_D_start)
  491. assert_equal(ival_A.asfreq('D', 'E'), ival_A_to_D_end)
  492. assert_equal(ival_A.asfreq('H', 'S'), ival_A_to_H_start)
  493. assert_equal(ival_A.asfreq('H', 'E'), ival_A_to_H_end)
  494. assert_equal(ival_A.asfreq('min', 'S'), ival_A_to_T_start)
  495. assert_equal(ival_A.asfreq('min', 'E'), ival_A_to_T_end)
  496. assert_equal(ival_A.asfreq('T', 'S'), ival_A_to_T_start)
  497. assert_equal(ival_A.asfreq('T', 'E'), ival_A_to_T_end)
  498. assert_equal(ival_A.asfreq('S', 'S'), ival_A_to_S_start)
  499. assert_equal(ival_A.asfreq('S', 'E'), ival_A_to_S_end)
  500. assert_equal(ival_AJAN.asfreq('D', 'S'), ival_AJAN_to_D_start)
  501. assert_equal(ival_AJAN.asfreq('D', 'E'), ival_AJAN_to_D_end)
  502. assert_equal(ival_AJUN.asfreq('D', 'S'), ival_AJUN_to_D_start)
  503. assert_equal(ival_AJUN.asfreq('D', 'E'), ival_AJUN_to_D_end)
  504. assert_equal(ival_ANOV.asfreq('D', 'S'), ival_ANOV_to_D_start)
  505. assert_equal(ival_ANOV.asfreq('D', 'E'), ival_ANOV_to_D_end)
  506. assert_equal(ival_A.asfreq('A'), ival_A)
  507. def test_conv_quarterly(self):
  508. # frequency conversion tests: from Quarterly Frequency
  509. ival_Q = Period(freq='Q', year=2007, quarter=1)
  510. ival_Q_end_of_year = Period(freq='Q', year=2007, quarter=4)
  511. ival_QEJAN = Period(freq="Q-JAN", year=2007, quarter=1)
  512. ival_QEJUN = Period(freq="Q-JUN", year=2007, quarter=1)
  513. ival_Q_to_A = Period(freq='A', year=2007)
  514. ival_Q_to_M_start = Period(freq='M', year=2007, month=1)
  515. ival_Q_to_M_end = Period(freq='M', year=2007, month=3)
  516. ival_Q_to_W_start = Period(freq='WK', year=2007, month=1, day=1)
  517. ival_Q_to_W_end = Period(freq='WK', year=2007, month=3, day=31)
  518. ival_Q_to_B_start = Period(freq='B', year=2007, month=1, day=1)
  519. ival_Q_to_B_end = Period(freq='B', year=2007, month=3, day=30)
  520. ival_Q_to_D_start = Period(freq='D', year=2007, month=1, day=1)
  521. ival_Q_to_D_end = Period(freq='D', year=2007, month=3, day=31)
  522. ival_Q_to_H_start = Period(freq='H', year=2007, month=1, day=1,
  523. hour=0)
  524. ival_Q_to_H_end = Period(freq='H', year=2007, month=3, day=31,
  525. hour=23)
  526. ival_Q_to_T_start = Period(freq='Min', year=2007, month=1, day=1,
  527. hour=0, minute=0)
  528. ival_Q_to_T_end = Period(freq='Min', year=2007, month=3, day=31,
  529. hour=23, minute=59)
  530. ival_Q_to_S_start = Period(freq='S', year=2007, month=1, day=1,
  531. hour=0, minute=0, second=0)
  532. ival_Q_to_S_end = Period(freq='S', year=2007, month=3, day=31,
  533. hour=23, minute=59, second=59)
  534. ival_QEJAN_to_D_start = Period(freq='D', year=2006, month=2, day=1)
  535. ival_QEJAN_to_D_end = Period(freq='D', year=2006, month=4, day=30)
  536. ival_QEJUN_to_D_start = Period(freq='D', year=2006, month=7, day=1)
  537. ival_QEJUN_to_D_end = Period(freq='D', year=2006, month=9, day=30)
  538. assert_equal(ival_Q.asfreq('A'), ival_Q_to_A)
  539. assert_equal(ival_Q_end_of_year.asfreq('A'), ival_Q_to_A)
  540. assert_equal(ival_Q.asfreq('M', 'S'), ival_Q_to_M_start)
  541. assert_equal(ival_Q.asfreq('M', 'E'), ival_Q_to_M_end)
  542. assert_equal(ival_Q.asfreq('WK', 'S'), ival_Q_to_W_start)
  543. assert_equal(ival_Q.asfreq('WK', 'E'), ival_Q_to_W_end)
  544. assert_equal(ival_Q.asfreq('B', 'S'), ival_Q_to_B_start)
  545. assert_equal(ival_Q.asfreq('B', 'E'), ival_Q_to_B_end)
  546. assert_equal(ival_Q.asfreq('D', 'S'), ival_Q_to_D_start)
  547. assert_equal(ival_Q.asfreq('D', 'E'), ival_Q_to_D_end)
  548. assert_equal(ival_Q.asfreq('H', 'S'), ival_Q_to_H_start)
  549. assert_equal(ival_Q.asfreq('H', 'E'), ival_Q_to_H_end)
  550. assert_equal(ival_Q.asfreq('Min', 'S'), ival_Q_to_T_start)
  551. assert_equal(ival_Q.asfreq('Min', 'E'), ival_Q_to_T_end)
  552. assert_equal(ival_Q.asfreq('S', 'S'), ival_Q_to_S_start)
  553. assert_equal(ival_Q.asfreq('S', 'E'), ival_Q_to_S_end)
  554. assert_equal(ival_QEJAN.asfreq('D', 'S'), ival_QEJAN_to_D_start)
  555. assert_equal(ival_QEJAN.asfreq('D', 'E'), ival_QEJAN_to_D_end)
  556. assert_equal(ival_QEJUN.asfreq('D', 'S'), ival_QEJUN_to_D_start)
  557. assert_equal(ival_QEJUN.asfreq('D', 'E'), ival_QEJUN_to_D_end)
  558. assert_equal(ival_Q.asfreq('Q'), ival_Q)
  559. def test_conv_monthly(self):
  560. # frequency conversion tests: from Monthly Frequency
  561. ival_M = Period(freq='M', year=2007, month=1)
  562. ival_M_end_of_year = Period(freq='M', year=2007, month=12)
  563. ival_M_end_of_quarter = Period(freq='M', year=2007, month=3)
  564. ival_M_to_A = Period(freq='A', year=2007)
  565. ival_M_to_Q = Period(freq='Q', year=2007, quarter=1)
  566. ival_M_to_W_start = Period(freq='WK', year=2007, month=1, day=1)
  567. ival_M_to_W_end = Period(freq='WK', year=2007, month=1, day=31)
  568. ival_M_to_B_start = Period(freq='B', year=2007, month=1, day=1)
  569. ival_M_to_B_end = Period(freq='B', year=2007, month=1, day=31)
  570. ival_M_to_D_start = Period(freq='D', year=2007, month=1, day=1)
  571. ival_M_to_D_end = Period(freq='D', year=2007, month=1, day=31)
  572. ival_M_to_H_start = Period(freq='H', year=2007, month=1, day=1,
  573. hour=0)
  574. ival_M_to_H_end = Period(freq='H', year=2007, month=1, day=31,
  575. hour=23)
  576. ival_M_to_T_start = Period(freq='Min', year=2007, month=1, day=1,
  577. hour=0, minute=0)
  578. ival_M_to_T_end = Period(freq='Min', year=2007, month=1, day=31,
  579. hour=23, minute=59)
  580. ival_M_to_S_start = Period(freq='S', year=2007, month=1, day=1,
  581. hour=0, minute=0, second=0)
  582. ival_M_to_S_end = Period(freq='S', year=2007, month=1, day=31,
  583. hour=23, minute=59, second=59)
  584. assert_equal(ival_M.asfreq('A'), ival_M_to_A)
  585. assert_equal(ival_M_end_of_year.asfreq('A'), ival_M_to_A)
  586. assert_equal(ival_M.asfreq('Q'), ival_M_to_Q)
  587. assert_equal(ival_M_end_of_quarter.asfreq('Q'), ival_M_to_Q)
  588. assert_equal(ival_M.asfreq('WK', 'S'), ival_M_to_W_start)
  589. assert_equal(ival_M.asfreq('WK', 'E'), ival_M_to_W_end)
  590. assert_equal(ival_M.asfreq('B', 'S'), ival_M_to_B_start)
  591. assert_equal(ival_M.asfreq('B', 'E'), ival_M_to_B_end)
  592. assert_equal(ival_M.asfreq('D', 'S'), ival_M_to_D_start)
  593. assert_equal(ival_M.asfreq('D', 'E'), ival_M_to_D_end)
  594. assert_equal(ival_M.asfreq('H', 'S'), ival_M_to_H_start)
  595. assert_equal(ival_M.asfreq('H', 'E'), ival_M_to_H_end)
  596. assert_equal(ival_M.asfreq('Min', 'S'), ival_M_to_T_start)
  597. assert_equal(ival_M.asfreq('Min', 'E'), ival_M_to_T_end)
  598. assert_equal(ival_M.asfreq('S', 'S'), ival_M_to_S_start)
  599. assert_equal(ival_M.asfreq('S', 'E'), ival_M_to_S_end)
  600. assert_equal(ival_M.asfreq('M'), ival_M)
  601. def test_conv_weekly(self):
  602. # frequency conversion tests: from Weekly Frequency
  603. ival_W = Period(freq='WK', year=2007, month=1, day=1)
  604. ival_WSUN = Period(freq='WK', year=2007, month=1, day=7)
  605. ival_WSAT = Period(freq='WK-SAT', year=2007, month=1, day=6)
  606. ival_WFRI = Period(freq='WK-FRI', year=2007, month=1, day=5)
  607. ival_WTHU = Period(freq='WK-THU', year=2007, month=1, day=4)
  608. ival_WWED = Period(freq='WK-WED', year=2007, month=1, day=3)
  609. ival_WTUE = Period(freq='WK-TUE', year=2007, month=1, day=2)
  610. ival_WMON = Period(freq='WK-MON', year=2007, month=1, day=1)
  611. ival_WSUN_to_D_start = Period(freq='D', year=2007, month=1, day=1)
  612. ival_WSUN_to_D_end = Period(freq='D', year=2007, month=1, day=7)
  613. ival_WSAT_to_D_start = Period(freq='D', year=2006, month=12, day=31)
  614. ival_WSAT_to_D_end = Period(freq='D', year=2007, month=1, day=6)
  615. ival_WFRI_to_D_start = Period(freq='D', year=2006, month=12, day=30)
  616. ival_WFRI_to_D_end = Period(freq='D', year=2007, month=1, day=5)
  617. ival_WTHU_to_D_start = Period(freq='D', year=2006, month=12, day=29)
  618. ival_WTHU_to_D_end = Period(freq='D', year=2007, month=1, day=4)
  619. ival_WWED_to_D_start = Period(freq='D', year=2006, month=12, day=28)
  620. ival_WWED_to_D_end = Period(freq='D', year=2007, month=1, day=3)
  621. ival_WTUE_to_D_start = Period(freq='D', year=2006, month=12, day=27)
  622. ival_WTUE_to_D_end = Period(freq='D', year=2007, month=1, day=2)
  623. ival_WMON_to_D_start = Period(freq='D', year=2006, month=12, day=26)
  624. ival_WMON_to_D_end = Period(freq='D', year=2007, month=1, day=1)
  625. ival_W_end_of_year = Period(freq='WK', year=2007, month=12, day=31)
  626. ival_W_end_of_quarter = Period(freq='WK', year=2007, month=3, day=31)
  627. ival_W_end_of_month = Period(freq='WK', year=2007, month=1, day=31)
  628. ival_W_to_A = Period(freq='A', year=2007)
  629. ival_W_to_Q = Period(freq='Q', year=2007, quarter=1)
  630. ival_W_to_M = Period(freq='M', year=2007, month=1)
  631. if Period(freq='D', year=2007, month=12, day=31).weekday == 6:
  632. ival_W_to_A_end_of_year = Period(freq='A', year=2007)
  633. else:
  634. ival_W_to_A_end_of_year = Period(freq='A', year=2008)
  635. if Period(freq='D', year=2007, month=3, day=31).weekday == 6:
  636. ival_W_to_Q_end_of_quarter = Period(freq='Q', year=2007,
  637. quarter=1)
  638. else:
  639. ival_W_to_Q_end_of_quarter = Period(freq='Q', year=2007,
  640. quarter=2)
  641. if Period(freq='D', year=2007, month=1, day=31).weekday == 6:
  642. ival_W_to_M_end_of_month = Period(freq='M', year=2007, month=1)
  643. else:
  644. ival_W_to_M_end_of_month = Period(freq='M', year=2007, month=2)
  645. ival_W_to_B_start = Period(freq='B', year=2007, month=1, day=1)
  646. ival_W_to_B_end = Period(freq='B', year=2007, month=1, day=5)
  647. ival_W_to_D_start = Period(freq='D', year=2007, month=1, day=1)
  648. ival_W_to_D_end = Period(freq='D', year=2007, month=1, day=7)
  649. ival_W_to_H_start = Period(freq='H', year=2007, month=1, day=1,
  650. hour=0)
  651. ival_W_to_H_end = Period(freq='H', year=2007, month=1, day=7,
  652. hour=23)
  653. ival_W_to_T_start = Period(freq='Min', year=2007, month=1, day=1,
  654. hour=0, minute=0)
  655. ival_W_to_T_end = Period(freq='Min', year=2007, month=1, day=7,
  656. hour=23, minute=59)
  657. ival_W_to_S_start = Period(freq='S', year=2007, month=1, day=1,
  658. hour=0, minute=0, second=0)
  659. ival_W_to_S_end = Period(freq='S', year=2007, month=1, day=7,
  660. hour=23, minute=59, second=59)
  661. assert_equal(ival_W.asfreq('A'), ival_W_to_A)
  662. assert_equal(ival_W_end_of_year.asfreq('A'),
  663. ival_W_to_A_end_of_year)
  664. assert_equal(ival_W.asfreq('Q'), ival_W_to_Q)
  665. assert_equal(ival_W_end_of_quarter.asfreq('Q'),
  666. ival_W_to_Q_end_of_quarter)
  667. assert_equal(ival_W.asfreq('M'), ival_W_to_M)
  668. assert_equal(ival_W_end_of_month.asfreq('M'),
  669. ival_W_to_M_end_of_month)
  670. assert_equal(ival_W.asfreq('B', 'S'), ival_W_to_B_start)
  671. assert_equal(ival_W.asfreq('B', 'E'), ival_W_to_B_end)
  672. assert_equal(ival_W.asfreq('D', 'S'), ival_W_to_D_start)
  673. assert_equal(ival_W.asfreq('D', 'E'), ival_W_to_D_end)
  674. assert_equal(ival_WSUN.asfreq('D', 'S'), ival_WSUN_to_D_start)
  675. assert_equal(ival_WSUN.asfreq('D', 'E'), ival_WSUN_to_D_end)
  676. assert_equal(ival_WSAT.asfreq('D', 'S'), ival_WSAT_to_D_start)
  677. assert_equal(ival_WSAT.asfreq('D', 'E'), ival_WSAT_to_D_end)
  678. assert_equal(ival_WFRI.asfreq('D', 'S'), ival_WFRI_to_D_start)
  679. assert_equal(ival_WFRI.asfreq('D', 'E'), ival_WFRI_to_D_end)
  680. assert_equal(ival_WTHU.asfreq('D', 'S'), ival_WTHU_to_D_start)
  681. assert_equal(ival_WTHU.asfreq('D', 'E'), ival_WTHU_to_D_end)
  682. assert_equal(ival_WWED.asfreq('D', 'S'), ival_WWED_to_D_start)
  683. assert_equal(ival_WWED.asfreq('D', 'E'), ival_WWED_to_D_end)
  684. assert_equal(ival_WTUE.asfreq('D', 'S'), ival_WTUE_to_D_start)
  685. assert_equal(ival_WTUE.asfreq('D', 'E'), ival_WTUE_to_D_end)
  686. assert_equal(ival_WMON.asfreq('D', 'S'), ival_WMON_to_D_start)
  687. assert_equal(ival_WMON.asfreq('D', 'E'), ival_WMON_to_D_end)
  688. assert_equal(ival_W.asfreq('H', 'S'), ival_W_to_H_start)
  689. assert_equal(ival_W.asfreq('H', 'E'), ival_W_to_H_end)
  690. assert_equal(ival_W.asfreq('Min', 'S'), ival_W_to_T_start)
  691. assert_equal(ival_W.asfreq('Min', 'E'), ival_W_to_T_end)
  692. assert_equal(ival_W.asfreq('S', 'S'), ival_W_to_S_start)
  693. assert_equal(ival_W.asfreq('S', 'E'), ival_W_to_S_end)
  694. assert_equal(ival_W.asfreq('WK'), ival_W)
  695. def test_conv_business(self):
  696. # frequency conversion tests: from Business Frequency"
  697. ival_B = Period(freq='B', year=2007, month=1, day=1)
  698. ival_B_end_of_year = Period(freq='B', year=2007, month=12, day=31)
  699. ival_B_end_of_quarter = Period(freq='B', year=2007, month=3, day=30)
  700. ival_B_end_of_month = Period(freq='B', year=2007, month=1, day=31)
  701. ival_B_end_of_week = Period(freq='B', year=2007, month=1, day=5)
  702. ival_B_to_A = Period(freq='A', year=2007)
  703. ival_B_to_Q = Period(freq='Q', year=2007, quarter=1)
  704. ival_B_to_M = Period(freq='M', year=2007, month=1)
  705. ival_B_to_W = Period(freq='WK', year=2007, month=1, day=7)
  706. ival_B_to_D = Period(freq='D', year=2007, month=1, day=1)
  707. ival_B_to_H_start = Period(freq='H', year=2007, month=1, day=1,
  708. hour=0)
  709. ival_B_to_H_end = Period(freq='H', year=2007, month=1, day=1,
  710. hour=23)
  711. ival_B_to_T_start = Period(freq='Min', year=2007, month=1, day=1,
  712. hour=0, minute=0)
  713. ival_B_to_T_end = Period(freq='Min', year=2007, month=1, day=1,
  714. hour=23, minute=59)
  715. ival_B_to_S_start = Period(freq='S', year=2007, month=1, day=1,
  716. hour=0, minute=0, second=0)
  717. ival_B_to_S_end = Period(freq='S', year=2007, month=1, day=1,
  718. hour=23, minute=59, second=59)
  719. assert_equal(ival_B.asfreq('A'), ival_B_to_A)
  720. assert_equal(ival_B_end_of_year.asfreq('A'), ival_B_to_A)
  721. assert_equal(ival_B.asfreq('Q'), ival_B_to_Q)
  722. assert_equal(ival_B_end_of_quarter.asfreq('Q'), ival_B_to_Q)
  723. assert_equal(ival_B.asfreq('M'), ival_B_to_M)
  724. assert_equal(ival_B_end_of_month.asfreq('M'), ival_B_to_M)
  725. assert_equal(ival_B.asfreq('WK'), ival_B_to_W)
  726. assert_equal(ival_B_end_of_week.asfreq('WK'), ival_B_to_W)
  727. assert_equal(ival_B.asfreq('D'), ival_B_to_D)
  728. assert_equal(ival_B.asfreq('H', 'S'), ival_B_to_H_start)
  729. assert_equal(ival_B.asfreq('H', 'E'), ival_B_to_H_end)
  730. assert_equal(ival_B.asfreq('Min', 'S'), ival_B_to_T_start)
  731. assert_equal(ival_B.asfreq('Min', 'E'), ival_B_to_T_end)
  732. assert_equal(ival_B.asfreq('S', 'S'), ival_B_to_S_start)
  733. assert_equal(ival_B.asfreq('S', 'E'), ival_B_to_S_end)
  734. assert_equal(ival_B.asfreq('B'), ival_B)
  735. def test_conv_daily(self):
  736. # frequency conversion tests: from Business Frequency"
  737. ival_D = Period(freq='D', year=2007, month=1, day=1)
  738. ival_D_end_of_year = Period(freq='D', year=2007, month=12, day=31)
  739. ival_D_end_of_quarter = Period(freq='D', year=2007, month=3, day=31)
  740. ival_D_end_of_month = Period(freq='D', year=2007, month=1, day=31)
  741. ival_D_end_of_week = Period(freq='D', year=2007, month=1, day=7)
  742. ival_D_friday = Period(freq='D', year=2007, month=1, day=5)
  743. ival_D_saturday = Period(freq='D', year=2007, month=1, day=6)
  744. ival_D_sunday = Period(freq='D', year=2007, month=1, day=7)
  745. ival_D_monday = Period(freq='D', year=2007, month=1, day=8)
  746. ival_B_friday = Period(freq='B', year=2007, month=1, day=5)
  747. ival_B_monday = Period(freq='B', year=2007, month=1, day=8)
  748. ival_D_to_A = Period(freq='A', year=2007)
  749. ival_Deoq_to_AJAN = Period(freq='A-JAN', year=2008)
  750. ival_Deoq_to_AJUN = Period(freq='A-JUN', year=2007)
  751. ival_Deoq_to_ADEC = Period(freq='A-DEC', year=2007)
  752. ival_D_to_QEJAN = Period(freq="Q-JAN", year=2007, quarter=4)
  753. ival_D_to_QEJUN = Period(freq="Q-JUN", year=2007, quarter=3)
  754. ival_D_to_QEDEC = Period(freq="Q-DEC", year=2007, quarter=1)
  755. ival_D_to_M = Period(freq='M', year=2007, month=1)
  756. ival_D_to_W = Period(freq='WK', year=2007, month=1, day=7)
  757. ival_D_to_H_start = Period(freq='H', year=2007, month=1, day=1,
  758. hour=0)
  759. ival_D_to_H_end = Period(freq='H', year=2007, month=1, day=1,
  760. hour=23)
  761. ival_D_to_T_start = Period(freq='Min', year=2007, month=1, day=1,
  762. hour=0, minute=0)
  763. ival_D_to_T_end = Period(freq='Min', year=2007, month=1, day=1,
  764. hour=23, minute=59)
  765. ival_D_to_S_start = Period(freq='S', year=2007, month=1, day=1,
  766. hour=0, minute=0, second=0)
  767. ival_D_to_S_end = Period(freq='S', year=2007, month=1, day=1,
  768. hour=23, minute=59, second=59)
  769. assert_equal(ival_D.asfreq('A'), ival_D_to_A)
  770. assert_equal(ival_D_end_of_quarter.asfreq('A-JAN'),
  771. ival_Deoq_to_AJAN)
  772. assert_equal(ival_D_end_of_quarter.asfreq('A-JUN'),
  773. ival_Deoq_to_AJUN)
  774. assert_equal(ival_D_end_of_quarter.asfreq('A-DEC'),
  775. ival_Deoq_to_ADEC)
  776. assert_equal(ival_D_end_of_year.asfreq('A'), ival_D_to_A)
  777. assert_equal(ival_D_end_of_quarter.asfreq('Q'), ival_D_to_QEDEC)
  778. assert_equal(ival_D.asfreq("Q-JAN"), ival_D_to_QEJAN)
  779. assert_equal(ival_D.asfreq("Q-JUN"), ival_D_to_QEJUN)
  780. assert_equal(ival_D.asfreq("Q-DEC"), ival_D_to_QEDEC)
  781. assert_equal(ival_D.asfreq('M'), ival_D_to_M)
  782. assert_equal(ival_D_end_of_month.asfreq('M'), ival_D_to_M)
  783. assert_equal(ival_D.asfreq('WK'), ival_D_to_W)
  784. assert_equal(ival_D_end_of_week.asfreq('WK'), ival_D_to_W)
  785. assert_equal(ival_D_friday.asfreq('B'), ival_B_friday)
  786. assert_equal(ival_D_saturday.asfreq('B', 'S'), ival_B_friday)
  787. assert_equal(ival_D_saturday.asfreq('B', 'E'), ival_B_monday)
  788. assert_equal(ival_D_sunday.asfreq('B', 'S'), ival_B_friday)
  789. assert_equal(ival_D_sunday.asfreq('B', 'E'), ival_B_monday)
  790. assert_equal(ival_D.asfreq('H', 'S'), ival_D_to_H_start)
  791. assert_equal(ival_D.asfreq('H', 'E'), ival_D_to_H_end)
  792. assert_equal(ival_D.asfreq('Min', 'S'), ival_D_to_T_start)
  793. assert_equal(ival_D.asfreq('Min', 'E'), ival_D_to_T_end)
  794. assert_equal(ival_D.asfreq('S', 'S'), ival_D_to_S_start)
  795. assert_equal(ival_D.asfreq('S', 'E'), ival_D_to_S_end)
  796. assert_equal(ival_D.asfreq('D'), ival_D)
  797. def test_conv_hourly(self):
  798. # frequency conversion tests: from Hourly Frequency"
  799. ival_H = Period(freq='H', year=2007, month=1, day=1, hour=0)
  800. ival_H_end_of_year = Period(freq='H', year=2007, month=12, day=31,
  801. hour=23)
  802. ival_H_end_of_quarter = Period(freq='H', year=2007, month=3, day=31,
  803. hour=23)
  804. ival_H_end_of_month = Period(freq='H', year=2007, month=1, day=31,
  805. hour=23)
  806. ival_H_end_of_week = Period(freq='H', year=2007, month=1, day=7,
  807. hour=23)
  808. ival_H_end_of_day = Period(freq='H', year=2007, month=1, day=1,
  809. hour=23)
  810. ival_H_end_of_bus = Period(freq='H', year=2007, month=1, day=1,
  811. hour=23)
  812. ival_H_to_A = Period(freq='A', year=2007)
  813. ival_H_to_Q = Period(freq='Q', year=2007, quarter=1)
  814. ival_H_to_M = Period(freq='M', year=2007, month=1)
  815. ival_H_to_W = Period(freq='WK', year=2007, month=1, day=7)
  816. ival_H_to_D = Period(freq='D', year=2007, month=1, day=1)
  817. ival_H_to_B = Period(freq='B', year=2007, month=1, day=1)
  818. ival_H_to_T_start = Period(freq='Min', year=2007, month=1, day=1,
  819. hour=0, minute=0)
  820. ival_H_to_T_end = Period(freq='Min', year=2007, month=1, day=1,
  821. hour=0, minute=59)
  822. ival_H_to_S_start = Period(freq='S', year=2007, month=1, day=1,
  823. hour=0, minute=0, second=0)
  824. ival_H_to_S_end = Period(freq='S', year=2007, month=1, day=1,
  825. hour=0, minute=59, second=59)
  826. assert_equal(ival_H.asfreq('A'), ival_H_to_A)
  827. assert_equal(ival_H_end_of_year.asfreq('A'), ival_H_to_A)
  828. assert_equal(ival_H.asfreq('Q'), ival_H_to_Q)
  829. assert_equal(ival_H_end_of_quarter.asfreq('Q'), ival_H_to_Q)
  830. assert_equal(ival_H.asfreq('M'), ival_H_to_M)
  831. assert_equal(ival_H_end_of_month.asfreq('M'), ival_H_to_M)
  832. assert_equal(ival_H.asfreq('WK'), ival_H_to_W)
  833. assert_equal(ival_H_end_of_week.asfreq('WK'), ival_H_to_W)
  834. assert_equal(ival_H.asfreq('D'), ival_H_to_D)
  835. assert_equal(ival_H_end_of_day.asfreq('D'), ival_H_to_D)
  836. assert_equal(ival_H.asfreq('B'), ival_H_to_B)
  837. assert_equal(ival_H_end_of_bus.asfreq('B'), ival_H_to_B)
  838. assert_equal(ival_H.asfreq('Min', 'S'), ival_H_to_T_start)
  839. assert_equal(ival_H.asfreq('Min', 'E'), ival_H_to_T_end)
  840. assert_equal(ival_H.asfreq('S', 'S'), ival_H_to_S_start)
  841. assert_equal(ival_H.asfreq('S', 'E'), ival_H_to_S_end)
  842. assert_equal(ival_H.asfreq('H'), ival_H)
  843. def test_conv_minutely(self):
  844. # frequency conversion tests: from Minutely Frequency"
  845. ival_T = Period(freq='Min', year=2007, month=1, day=1,
  846. hour=0, minute=0)
  847. ival_T_end_of_year = Period(freq='Min', year=2007, month=12, day=31,
  848. hour=23, minute=59)
  849. ival_T_end_of_quarter = Period(freq='Min', year=2007, month=3, day=31,
  850. hour=23, minute=59)
  851. ival_T_end_of_month = Period(freq='Min', year=2007, month=1, day=31,
  852. hour=23, minute=59)
  853. ival_T_end_of_week = Period(freq='Min', year=2007, month=1, day=7,
  854. hour=23, minute=59)
  855. ival_T_end_of_day = Period(freq='Min', year=2007, month=1, day=1,
  856. hour=23, minute=59)
  857. ival_T_end_of_bus = Period(freq='Min', year=2007, month=1, day=1,
  858. hour=23, minute=59)
  859. ival_T_end_of_hour = Period(freq='Min', year=2007, month=1, day=1,
  860. hour=0, minute=59)
  861. ival_T_to_A = Period(freq='A', year=2007)
  862. ival_T_to_Q = Period(freq='Q', year=2007, quarter=1)
  863. ival_T_to_M = Period(freq='M', year=2007, month=1)
  864. ival_T_to_W = Period(freq='WK', year=2007, month=1, day=7)
  865. ival_T_to_D = Period(freq='D', year=2007, month=1, day=1)
  866. ival_T_to_B = Period(freq='B', year=2007, month=1, day=1)
  867. ival_T_to_H = Period(freq='H', year=2007, month=1, day=1, hour=0)
  868. ival_T_to_S_start = Period(freq='S', year=2007, month=1, day=1,
  869. hour=0, minute=0, second=0)
  870. ival_T_to_S_end = Period(freq='S', year=2007, month=1, day=1,
  871. hour=0, minute=0, second=59)
  872. assert_equal(ival_T.asfreq('A'), ival_T_to_A)
  873. assert_equal(ival_T_end_of_year.asfreq('A'), ival_T_to_A)
  874. assert_equal(ival_T.asfreq('Q'), ival_T_to_Q)
  875. assert_equal(ival_T_end_of_quarter.asfreq('Q'), ival_T_to_Q)
  876. assert_equal(ival_T.asfreq('M'), ival_T_to_M)
  877. assert_equal(ival_T_end_of_month.asfreq('M'), ival_T_to_M)
  878. assert_equal(ival_T.asfreq('WK'), ival_T_to_W)
  879. assert_equal(ival_T_end_of_week.asfreq('WK'), ival_T_to_W)
  880. assert_equal(ival_T.asfreq('D'), ival_T_to_D)
  881. assert_equal(ival_T_end_of_day.asfreq('D'), ival_T_to_D)
  882. assert_equal(ival_T.asfreq('B'), ival_T_to_B)
  883. assert_equal(ival_T_end_of_bus.asfreq('B'), ival_T_to_B)
  884. assert_equal(ival_T.asfreq('H'), ival_T_to_H)
  885. assert_equal(ival_T_end_of_hour.asfreq('H'), ival_T_to_H)
  886. assert_equal(ival_T.asfreq('S', 'S'), ival_T_to_S_start)
  887. assert_equal(ival_T.asfreq('S', 'E'), ival_T_to_S_end)
  888. assert_equal(ival_T.asfreq('Min'), ival_T)
  889. def test_conv_secondly(self):
  890. # frequency conversion tests: from Secondly Frequency"
  891. ival_S = Period(freq='S', year=2007, month=1, day=1,
  892. hour=0, minute=0, second=0)
  893. ival_S_end_of_year = Period(freq='S', year=2007, month=12, day=31,
  894. hour=23, minute=59, second=59)
  895. ival_S_end_of_quarter = Period(freq='S', year=2007, month=3, day=31,
  896. hour=23, minute=59, second=59)
  897. ival_S_end_of_month = Period(freq='S', year=2007, month=1, day=31,
  898. hour=23, minute=59, second=59)
  899. ival_S_end_of_week = Period(freq='S', year=2007, month=1, day=7,
  900. hour=23, minute=59, second=59)
  901. ival_S_end_of_day = Period(freq='S', year=2007, month=1, day=1,
  902. hour=23, minute=59, second=59)
  903. ival_S_end_of_bus = Period(freq='S', year=2007, month=1, day=1,
  904. hour=23, minute=59, second=59)
  905. ival_S_end_of_hour = Period(freq='S', year=2007, month=1, day=1,
  906. hour=0, minute=59, second=59)
  907. ival_S_end_of_minute = Period(freq='S', year=2007, month=1, day=1,
  908. hour=0, minute=0, second=59)
  909. ival_S_to_A = Period(freq='A', year=2007)
  910. ival_S_to_Q = Period(freq='Q', year=2007, quarter=1)
  911. ival_S_to_M = Period(freq='M', year=2007, month=1)
  912. ival_S_to_W = Period(freq='WK', year=2007, month=1, day=7)
  913. ival_S_to_D = Period(freq='D', year=2007, month=1, day=1)
  914. ival_S_to_B = Period(freq='B', year=2007, month=1, day=1)
  915. ival_S_to_H = Period(freq='H', year=2007, month=1, day=1,
  916. hour=0)
  917. ival_S_to_T = Period(freq='Min', year=2007, month=1, day=1,
  918. hour=0, minute=0)
  919. assert_equal(ival_S.asfreq('A'), ival_S_to_A)
  920. assert_equal(ival_S_end_of_year.asfreq('A'), ival_S_to_A)
  921. assert_equal(ival_S.asfreq('Q'), ival_S_to_Q)
  922. assert_equal(ival_S_end_of_quarter.asfreq('Q'), ival_S_to_Q)
  923. assert_equal(ival_S.asfreq('M'), ival_S_to_M)
  924. assert_equal(ival_S_end_of_month.asfreq('M'), ival_S_to_M)
  925. assert_equal(ival_S.asfreq('WK'), ival_S_to_W)
  926. assert_equal(ival_S_end_of_week.asfreq('WK'), ival_S_to_W)
  927. assert_equal(ival_S.asfreq('D'), ival_S_to_D)
  928. assert_equal(ival_S_end_of_day.asfreq('D'), ival_S_to_D)
  929. assert_equal(ival_S.asfreq('B'), ival_S_to_B)
  930. assert_equal(ival_S_end_of_bus.asfreq('B'), ival_S_to_B)
  931. assert_equal(ival_S.asfreq('H'), ival_S_to_H)
  932. ass

Large files files are truncated, but you can click here to view the full file