mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-28 21:45:09 +08:00
MAINT: Display diff if input to daily bar writer has gaps/extra bars
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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(),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user