def test_adjust_func(self): """Fix for pandas 0.8 release which upgrade datetime handling. """ ohlcs = np.array([ (date2unixtime(datetime.date(2003, 2, 13)), 46.99, 46.99, 46.99, 46.99, 675114.0, 758148608.0), (date2unixtime(datetime.date(2003, 2, 14)), 48.30, 48.30, 48.30, 48.30, 675114.0, 758148608.0), (date2unixtime(datetime.date(2003, 2, 18)), 24.96, 24.96, 24.96, 24.96, 675114.0, 758148608.0), (date2unixtime(datetime.date(2003, 2, 19)), 24.53, 24.53, 24.53, 24.53, 675114.0, 758148608.0), ], dtype=Day.DTYPE) dividends = np.array([ (date2unixtime(datetime.date(2003, 2, 18)), 1.0, 0.0, 0.0, 0.0), # Split 2:1 (date2unixtime(datetime.date(2003, 2, 19)), 0.0, 0.0, 0.0, 0.08), # 0.08 cash dividend ], dtype=self.dtype) frame = adjust(ohlcs, dividends) self.assertEqual(frame.index[0].date(), datetime.date(2003, 2, 13))
def test_adjust_func(self): """Fix for pandas 0.8 release which upgrade datetime handling. """ ohlcs = np.array([ (date2unixtime(datetime.date(2003, 2, 13)), 46.99, 46.99, 46.99, 46.99, 675114.0, 758148608.0), (date2unixtime(datetime.date(2003, 2, 14)), 48.30, 48.30, 48.30, 48.30, 675114.0, 758148608.0), (date2unixtime(datetime.date(2003, 2, 18)), 24.96, 24.96, 24.96, 24.96, 675114.0, 758148608.0), (date2unixtime(datetime.date(2003, 2, 19)), 24.53, 24.53, 24.53, 24.53, 675114.0, 758148608.0), ], dtype=Day.DTYPE) dividends = np.array([ (date2unixtime(datetime.date(2003, 2, 18)), 1.0, 0.0, 0.0, 0.0), # Split 2:1 (date2unixtime(datetime.date(2003, 2, 19)), 0.0, 0.0, 0.0, 0.08), # 0.08 cash dividend ], dtype=self.dtype) frame = adjust(ohlcs, dividends) self.assertEqual(frame.index[0].date(), datetime.date(2003, 2, 13)) expected = ['open', 'high', 'low', 'close', 'volume', 'amount', 'adjclose'] self.assert_(np.array_equal(frame.columns, expected)) day = frame.ix[datetime.datetime(2003, 2, 13)] self.assertTrue(self.floatEqual(day['adjclose'], 23.415)) expected = ['Open', 'High', 'Low', 'Close', 'Volume', 'Adjusted'] frame = adjust(ohlcs, [], capitalize=True) self.assert_(np.array_equal(frame.columns, expected))
def test_adjust_func_should_not_skipped(self): y = np.array([ (1326643200, 22.50, 22.91, 20.65, 20.71, 4551.0, 9873878.0), (1326729600, 21.75, 22.78, 21.40, 22.78, 6053.0, 13547097.0), (1326816000, 23.90, 24.77, 22.0, 22.5, 11126.0, 26537980.0), (1326902400, 22.5, 23.98, 22.05, 23.55, 5983.0, 13886342.0), (1326988800, 23.56, 23.90, 23.35, 23.70, 3832.0, 9089978.0) ], dtype=Day.DTYPE) dividends = np.array([ (1369008000, 0.5, 0.0, 0.0, 0.15), (1340064000, 1.0, 0.0, 0.0, 0.20) ], dtype=self.dtype) frame = adjust(y, dividends) day = frame.ix[datetime.datetime(2012, 1, 20)] self.assertTrue(self.floatEqual(day['close'], 7.75))