MAINT: Display diff if input to daily bar writer has gaps/extra bars

This commit is contained in:
Andrew Daniels
2017-05-04 10:19:09 -04:00
parent 52667b4a90
commit 560ff3cacf
2 changed files with 23 additions and 4 deletions
+7 -3
View File
@@ -13,6 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from sys import maxsize
import re
from nose_parameterized import parameterized
from numpy import (
@@ -399,9 +400,12 @@ class BcolzDailyBarWriterMissingDataTestCase(WithAssetFinder,
# There are 21 sessions between the start and end date for this
# asset, and we excluded one.
expected_msg = (
'Got 20 rows for daily bars table with first day=2015-06-02, last '
'day=2015-06-30, expected 21 rows.'
expected_msg = re.escape(
"Got 20 rows for daily bars table with first day=2015-06-02, last "
"day=2015-06-30, expected 21 rows.\n"
"Missing sessions: "
"[Timestamp('2015-06-15 00:00:00+0000', tz='UTC')]\n"
"Extra sessions: []"
)
with self.assertRaisesRegexp(AssertionError, expected_msg):
writer.write(bar_data)
+16 -1
View File
@@ -42,6 +42,7 @@ from pandas import (
NaT,
read_csv,
read_sql,
to_datetime,
Timestamp,
)
from pandas.tslib import iNaT
@@ -356,11 +357,25 @@ class BcolzDailyBarWriter(object):
]
assert len(table) == len(asset_sessions), (
'Got {} rows for daily bars table with first day={}, last '
'day={}, expected {} rows.'.format(
'day={}, expected {} rows.\n'
'Missing sessions: {}\n'
'Extra sessions: {}'.format(
len(table),
asset_first_day.date(),
asset_last_day.date(),
len(asset_sessions),
asset_sessions.difference(
to_datetime(
np.array(table['day']),
unit='s',
utc=True,
)
).tolist(),
to_datetime(
np.array(table['day']),
unit='s',
utc=True,
).difference(asset_sessions).tolist(),
)
)