|
7 | 7 |
|
8 | 8 | import numpy as np
|
9 | 9 |
|
10 |
| -from pandas import Index, DatetimeIndex, Timestamp, date_range, period_range |
| 10 | +from pandas import Index, DatetimeIndex, Timestamp, Series, date_range, period_range |
11 | 11 |
|
12 | 12 | from pandas.tseries.frequencies import to_offset, infer_freq
|
13 | 13 | from pandas.tseries.tools import to_datetime
|
@@ -72,7 +72,7 @@ def test_to_offset_negative():
|
72 | 72 | freqstr = '-5min10s'
|
73 | 73 | result = to_offset(freqstr)
|
74 | 74 | assert(result.n == -310)
|
75 |
| - |
| 75 | + |
76 | 76 |
|
77 | 77 | def test_to_offset_leading_zero():
|
78 | 78 | freqstr = '00H 00T 01S'
|
@@ -101,7 +101,7 @@ class TestFrequencyInference(tm.TestCase):
|
101 | 101 |
|
102 | 102 | def test_raise_if_period_index(self):
|
103 | 103 | index = PeriodIndex(start="1/1/1990", periods=20, freq="M")
|
104 |
| - self.assertRaises(ValueError, infer_freq, index) |
| 104 | + self.assertRaises(TypeError, infer_freq, index) |
105 | 105 |
|
106 | 106 | def test_raise_if_too_few(self):
|
107 | 107 | index = _dti(['12/31/1998', '1/3/1999'])
|
@@ -269,6 +269,44 @@ def test_non_datetimeindex(self):
|
269 | 269 | result = infer_freq(vals)
|
270 | 270 | self.assertEqual(result, rng.inferred_freq)
|
271 | 271 |
|
| 272 | + def test_invalid_index_types(self): |
| 273 | + |
| 274 | + # test all index types |
| 275 | + for i in [ tm.makeIntIndex(10), |
| 276 | + tm.makeFloatIndex(10), |
| 277 | + tm.makeStringIndex(10), |
| 278 | + tm.makeUnicodeIndex(10), |
| 279 | + tm.makePeriodIndex(10) ]: |
| 280 | + self.assertRaises(TypeError, lambda : infer_freq(i)) |
| 281 | + |
| 282 | + def test_series(self): |
| 283 | + |
| 284 | + # GH6407 |
| 285 | + # inferring series |
| 286 | + |
| 287 | + # invalid type of Series |
| 288 | + for s in [ Series(np.arange(10)), |
| 289 | + Series(np.arange(10.))]: |
| 290 | + self.assertRaises(TypeError, lambda : infer_freq(s)) |
| 291 | + |
| 292 | + # a non-convertible string |
| 293 | + self.assertRaises(ValueError, lambda : infer_freq(Series(['foo','bar']))) |
| 294 | + |
| 295 | + # cannot infer on PeriodIndex |
| 296 | + for freq in [None, 'MS', 'Y']: |
| 297 | + s = Series(period_range('2013',periods=10,freq=freq)) |
| 298 | + self.assertRaises(TypeError, lambda : infer_freq(s)) |
| 299 | + |
| 300 | + # DateTimeIndex |
| 301 | + for freq in ['MS', 'L', 'S']: |
| 302 | + s = Series(date_range('20130101',periods=10,freq=freq)) |
| 303 | + inferred = infer_freq(s) |
| 304 | + self.assertEqual(inferred,freq) |
| 305 | + |
| 306 | + s = Series(date_range('20130101','20130110')) |
| 307 | + inferred = infer_freq(s) |
| 308 | + self.assertEqual(inferred,'D') |
| 309 | + |
272 | 310 | MONTHS = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP',
|
273 | 311 | 'OCT', 'NOV', 'DEC']
|
274 | 312 |
|
|
0 commit comments