Completed
Pull Request — master (#881)
by
unknown
01:24
created

test_compute_latest()   A

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 5
rs 9.4286
1
"""
2
Tests for the reference loader for EarningsCalendar.
3
"""
4
from unittest import TestCase
5
6
from contextlib2 import ExitStack
7
import pandas as pd
8
9
from zipline.pipeline import Pipeline
10
from zipline.pipeline.data import EarningsCalendar
11
from zipline.pipeline.engine import SimplePipelineEngine
12
from zipline.pipeline.loaders import EarningsCalendarLoader
13
from zipline.utils.test_utils import tmp_asset_finder
14
15
16
class DateLoaderTestCase(TestCase):
17
    """
18
    Tests for loading adjusted_arrays with datetime data.
19
    """
20
21
    @classmethod
22
    def setUpClass(cls):
23
        cls._cleanup_stack = stack = ExitStack()
24
        finder = stack.enter_context(tmp_asset_finder())
25
        A, B, C = finder.sids
26
        calendar = pd.date_range('2014', '2014-01-31')
27
        announcement_dates = {
28
            A: pd.DatetimeIndex(['2014-01-01', '2014-01-15', '2014-02-01']),
29
            # Last 10 entries for B are trailing NaTs.
30
            B: pd.DatetimeIndex(['2014-01-10', '2014-01-15', '2014-01-20']),
31
            C: pd.DatetimeIndex(['2014-01-10', '2014-01-20', '2014-02-01']),
32
        }
33
        loader = EarningsCalendarLoader(calendar, announcement_dates)
34
        cls.engine = SimplePipelineEngine(lambda _: loader, calendar, finder)
35
36
    @classmethod
37
    def tearDownClass(cls):
38
        cls._cleanup_stack.close()
39
40
    def test_compute_latest(self):
41
        p = Pipeline(
42
            columns={
43
                'next': EarningsCalendar.next_announcement,
44
                'previous': EarningsCalendar.previous_announcement,
45
            }
46
        )
47