From 98be158c207c024fca8d75f473c46d85c18fe007 Mon Sep 17 00:00:00 2001 From: Gil Wassermann Date: Thu, 21 Jul 2016 08:49:41 -0400 Subject: [PATCH] ENH: storing commits. test case added --- tests/pipeline/test_filter.py | 19 +++++++++++++++++++ zipline/pipeline/filters/filter.py | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/tests/pipeline/test_filter.py b/tests/pipeline/test_filter.py index 0f8c4f3b..9c1cbdae 100644 --- a/tests/pipeline/test_filter.py +++ b/tests/pipeline/test_filter.py @@ -18,6 +18,7 @@ from numpy import ( ones, ones_like, putmask, + sum ) from numpy.random import randn, seed as random_seed @@ -379,3 +380,21 @@ class FilterTestCase(BasePipelineTestCase): initial_workspace={self.f: data}, ) check_arrays(results['isfinite'], isfinite(data)) + + def test_window_safe(self): + """ + Rationale : CustomFactors are *not all* window safe, while + CustomFilters are + """ + data = array([[True, False, False, True], + [False, True, False, True]], dtype=bool) + + class CustomFilterBool(Filter): + window_length = 0 + inputs = () + + filter_results = self.run_graph( + TermGraph({'factor': sum(CustomFilterBool, axis=0)}), + initial_workspace={CustomFilterBool: data}, + ) + check_arrays(filter_results['factor'], array([1, 1, 0, 2])) diff --git a/zipline/pipeline/filters/filter.py b/zipline/pipeline/filters/filter.py index 63138cbc..8267b95e 100644 --- a/zipline/pipeline/filters/filter.py +++ b/zipline/pipeline/filters/filter.py @@ -170,7 +170,7 @@ class Filter(RestrictedDTypeMixin, ComputableTerm): # make filters window safe window_safe = True - + ALLOWED_DTYPES = (bool_dtype,) # Used by RestrictedDTypeMixin dtype = bool_dtype