mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-04 00:31:27 +08:00
Merge pull request #1232 from quantopian/fix-minute-bcolz-padding
BUG: Fixes bcolz padding to not always pad 390 minutes
This commit is contained in:
@@ -475,7 +475,9 @@ class BcolzMinuteBarTestCase(TestCase):
|
||||
self.assertEqual(last_date, TEST_CALENDAR_START)
|
||||
|
||||
freq = self.market_opens.index.freq
|
||||
minute = self.market_opens[TEST_CALENDAR_START + freq]
|
||||
day = TEST_CALENDAR_START + freq
|
||||
minute = self.market_opens[day]
|
||||
|
||||
data = DataFrame(
|
||||
data={
|
||||
'open': [15.0],
|
||||
@@ -507,6 +509,15 @@ class BcolzMinuteBarTestCase(TestCase):
|
||||
|
||||
self.assertEquals(100.0, volume_price)
|
||||
|
||||
# Check that if we then pad the rest of this day, we end up with
|
||||
# 2 days worth of minutes.
|
||||
self.writer.pad(sid, day)
|
||||
|
||||
self.assertEqual(
|
||||
len(self.writer._ensure_ctable(sid)),
|
||||
self.writer._minutes_per_day * 2,
|
||||
)
|
||||
|
||||
def test_nans(self):
|
||||
"""
|
||||
Test writing empty data.
|
||||
|
||||
@@ -393,7 +393,12 @@ class BcolzMinuteBarWriter(object):
|
||||
return bcolz.ctable(rootdir=sidpath, mode='a')
|
||||
|
||||
def _zerofill(self, table, numdays):
|
||||
num_to_prepend = numdays * self._minutes_per_day
|
||||
# Compute the number of minutes to be filled, accounting for the
|
||||
# possibility of a partial day's worth of minutes existing for
|
||||
# the previous day.
|
||||
minute_offset = len(table) % self._minutes_per_day
|
||||
num_to_prepend = numdays * self._minutes_per_day - minute_offset
|
||||
|
||||
prepend_array = np.zeros(num_to_prepend, np.uint32)
|
||||
# Fill all OHLCV with zeros.
|
||||
table.append([prepend_array] * 5)
|
||||
|
||||
Reference in New Issue
Block a user