def test_mixed_generics(self): """ Test that we can run pipelines with mixed generic/non-generic terms. This test is a regression test for failures encountered during development where having a mix of generic and non-generic columns in the term graph caused bugs in our extra row accounting. """ USTestingDataSet = TestingDataSet.specialize(US_EQUITIES) base_terms = { 'sum3_generic': Sum.create(TestingDataSet.float_col, 3), 'sum3_special': Sum.create(USTestingDataSet.float_col, 3), 'sum10_generic': Sum.create(TestingDataSet.float_col, 10), 'sum10_special': Sum.create(USTestingDataSet.float_col, 10), } def run(ts): pipe = Pipeline(ts, domain=US_EQUITIES) start = self.trading_days[-5] end = self.trading_days[-1] return self.run_pipeline(pipe, start, end) base_result = run(base_terms) for subset in powerset(base_terms): subset_terms = {t: base_terms[t] for t in subset} result = run(subset_terms).sort_index(axis=1) expected = base_result[list(subset)].sort_index(axis=1) assert_equal(result, expected)
def test_mixed_generics(self): """ Test that we can run pipelines with mixed generic/non-generic terms. This test is a regression test for failures encountered during development where having a mix of generic and non-generic columns in the term graph caused bugs in our extra row accounting. """ USTestingDataSet = TestingDataSet.specialize(US_EQUITIES) base_terms = { 'sum3_generic': Sum.create(TestingDataSet.float_col, 3), 'sum3_special': Sum.create(USTestingDataSet.float_col, 3), 'sum10_generic': Sum.create(TestingDataSet.float_col, 10), 'sum10_special': Sum.create(USTestingDataSet.float_col, 10), } def run(ts): pipe = Pipeline(ts, domain=US_EQUITIES) start = self.trading_days[-5] end = self.trading_days[-1] return self.run_pipeline(pipe, start, end) base_result = run(base_terms) for subset in powerset(base_terms): subset_terms = {t: base_terms[t] for t in subset} result = run(subset_terms).sort_index(axis=1) expected = base_result[list(subset)].sort_index(axis=1) assert_equal(result, expected)