|
6 | 6 |
|
7 | 7 | import numpy as np
|
8 | 8 | from numpy.testing import assert_almost_equal as np_assert_almost_equal
|
9 |
| -from pandas import Timestamp |
| 9 | +from pandas import Timestamp, Period |
10 | 10 | from pandas.compat import u
|
11 | 11 | import pandas.util.testing as tm
|
12 | 12 | from pandas.tseries.offsets import Second, Milli, Micro
|
@@ -103,6 +103,62 @@ def _assert_less(ts1, ts2):
|
103 | 103 | _assert_less(ts, ts + Micro(50))
|
104 | 104 |
|
105 | 105 |
|
| 106 | +class TestPeriodConverter(tm.TestCase): |
| 107 | + |
| 108 | + def setUp(self): |
| 109 | + self.pc = converter.PeriodConverter() |
| 110 | + |
| 111 | + class Axis(object): |
| 112 | + pass |
| 113 | + |
| 114 | + self.axis = Axis() |
| 115 | + self.axis.freq = 'D' |
| 116 | + |
| 117 | + def test_convert_accepts_unicode(self): |
| 118 | + # FIXME |
| 119 | + raise nose.SkipTest("PeriodConverter does not yet handle unicode") |
| 120 | + r1 = self.pc.convert("2012-1-1", None, self.axis) |
| 121 | + r2 = self.pc.convert(u("2012-1-1"), None, self.axis) |
| 122 | + self.assert_equal(r1, r2, "PeriodConverter.convert should accept unicode") |
| 123 | + |
| 124 | + def test_conversion(self): |
| 125 | + rs = self.pc.convert(['2012-1-1'], None, self.axis)[0] |
| 126 | + xp = Period('2012-1-1').ordinal |
| 127 | + self.assertEqual(rs, xp) |
| 128 | + |
| 129 | + rs = self.pc.convert('2012-1-1', None, self.axis) |
| 130 | + self.assertEqual(rs, xp) |
| 131 | + |
| 132 | + rs = self.pc.convert([date(2012, 1, 1)], None, self.axis)[0] |
| 133 | + self.assertEqual(rs, xp) |
| 134 | + |
| 135 | + rs = self.pc.convert(date(2012, 1, 1), None, self.axis) |
| 136 | + self.assertEqual(rs, xp) |
| 137 | + |
| 138 | + rs = self.pc.convert([Timestamp('2012-1-1')], None, self.axis)[0] |
| 139 | + self.assertEqual(rs, xp) |
| 140 | + |
| 141 | + rs = self.pc.convert(Timestamp('2012-1-1'), None, self.axis) |
| 142 | + self.assertEqual(rs, xp) |
| 143 | + |
| 144 | + # FIXME |
| 145 | + # rs = self.pc.convert(np.datetime64('2012-01-01'), None, self.axis) |
| 146 | + # self.assertEqual(rs, xp) |
| 147 | + # |
| 148 | + # rs = self.pc.convert(np.datetime64('2012-01-01 00:00:00+00:00'), None, self.axis) |
| 149 | + # self.assertEqual(rs, xp) |
| 150 | + # |
| 151 | + # rs = self.pc.convert(np.array([np.datetime64('2012-01-01 00:00:00+00:00'), |
| 152 | + # np.datetime64('2012-01-02 00:00:00+00:00')]), None, self.axis) |
| 153 | + # self.assertEqual(rs[0], xp) |
| 154 | + |
| 155 | + def test_integer_passthrough(self): |
| 156 | + # GH9012 |
| 157 | + rs = self.pc.convert([0, 1], None, self.axis) |
| 158 | + xp = [0, 1] |
| 159 | + self.assertEqual(rs, xp) |
| 160 | + |
| 161 | + |
106 | 162 | if __name__ == '__main__':
|
107 | 163 | import nose
|
108 | 164 | nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
|
|
0 commit comments