mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-28 14:29:26 +08:00
TST: Adds tests for infer_timestamp
This commit is contained in:
@@ -4,6 +4,7 @@ Tests for the reference loader for EarningsCalendar.
|
||||
from unittest import TestCase
|
||||
|
||||
import blaze as bz
|
||||
from blaze.compute.core import swap_resources_into_scope
|
||||
from contextlib2 import ExitStack
|
||||
from nose_parameterized import parameterized
|
||||
import pandas as pd
|
||||
@@ -388,9 +389,30 @@ class BlazeEarningsCalendarLoaderNotInteractiveTestCase(
|
||||
BlazeEarningsCalendarLoaderNotInteractiveTestCase,
|
||||
self,
|
||||
).loader_args(dates)
|
||||
return swap_resources_into_scope(bound_expr, {})
|
||||
|
||||
expr = bz.symbol('expr', bound_expr.dshape)
|
||||
return (
|
||||
expr,
|
||||
{expr: bound_expr._resources()[bound_expr]},
|
||||
|
||||
class EarningsCalendarLoaderInferTimestampTestCase(TestCase):
|
||||
def test_infer_timestamp(self):
|
||||
dtx = pd.date_range('2014-01-01', '2014-01-10')
|
||||
announcement_dates = {
|
||||
0: dtx,
|
||||
1: pd.Series(dtx, dtx),
|
||||
}
|
||||
loader = EarningsCalendarLoader(
|
||||
dtx,
|
||||
announcement_dates,
|
||||
infer_timestamps=True,
|
||||
)
|
||||
self.assertEqual(
|
||||
loader.announcement_dates.keys(),
|
||||
announcement_dates.keys(),
|
||||
)
|
||||
assert_series_equal(
|
||||
loader.announcement_dates[0],
|
||||
pd.Series(index=[dtx[0]] * 10, data=dtx),
|
||||
)
|
||||
assert_series_equal(
|
||||
loader.announcement_dates[1],
|
||||
announcement_dates[1],
|
||||
)
|
||||
|
||||
@@ -45,12 +45,12 @@ class EarningsCalendarLoader(PipelineLoader):
|
||||
``announcement_dates``.
|
||||
"""
|
||||
def __init__(self, all_dates, announcement_dates, infer_timestamps=False):
|
||||
self._all_dates = all_dates
|
||||
self.all_dates = all_dates
|
||||
|
||||
self._announcement_dates = announcement_dates = (
|
||||
self.announcement_dates = announcement_dates = (
|
||||
announcement_dates.copy()
|
||||
)
|
||||
dates = self._all_dates.values
|
||||
dates = self.all_dates.values
|
||||
for k, v in iteritems(announcement_dates):
|
||||
if isinstance(v, pd.DatetimeIndex):
|
||||
if not infer_timestamps:
|
||||
@@ -80,8 +80,8 @@ class EarningsCalendarLoader(PipelineLoader):
|
||||
return DataFrameLoader(
|
||||
EarningsCalendar.next_announcement,
|
||||
next_earnings_date_frame(
|
||||
self._all_dates,
|
||||
self._announcement_dates,
|
||||
self.all_dates,
|
||||
self.announcement_dates,
|
||||
),
|
||||
adjustments=None,
|
||||
)
|
||||
@@ -91,8 +91,8 @@ class EarningsCalendarLoader(PipelineLoader):
|
||||
return DataFrameLoader(
|
||||
EarningsCalendar.previous_announcement,
|
||||
previous_earnings_date_frame(
|
||||
self._all_dates,
|
||||
self._announcement_dates,
|
||||
self.all_dates,
|
||||
self.announcement_dates,
|
||||
),
|
||||
adjustments=None,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user