class _TestNodes(object): C = varnode() D = varnode() @queuenode def queue_output(cls): return cls.A() + cls.B() @nansumnode def nansum_output(cls): return cls.A() + cls.sometimes_nan_B() @cumprodnode def cumprod_output(cls): return cls.A() + cls.B() @evalnode def sometimes_nan_B(cls): b = cls.B() return np.nan if b % 2 else b @evalnode def A(cls): return cls.C() * cls.D() @evalnode def B(cls): accum = 0 while True: yield accum accum += 1 @queuenode(size=2) def queue_size_test(cls): return 0 # # check that evalnodes passed as arguments to nodes get # bound correctly # _queue_size = 3 @evalnode def get_queue_size(cls): return cls._queue_size @queuenode(size=get_queue_size) def queue_size_test2(cls): return 0 @evalnode def dataframe(cls): return pd.DataFrame({"A": range(100)}, index=pd.bdate_range(datetime(1970, 1, 1), periods=100), dtype=float) df_data = datanode(data=dataframe) df_filter = filternode(data=dataframe)
def test_datanode_ffill(self): data = pd.Series(range(len(self.daterange)), self.daterange, dtype=float) data = data[[bool(i % 2) for i in range(len(data.index))]] expected = data.reindex(self.daterange, method="ffill") expected[np.isnan(expected)] = np.inf node = datanode("test_datanode_ffill", data, ffill=True, missing_value=np.inf) qnode = node.queuenode() self._run(qnode) value = self.ctx[qnode] self.assertEquals(list(value), expected.values.tolist())
def test_datanode_ffill(self): data = pd.Series(range(len(self.daterange)), self.daterange, dtype=float) data = data[[bool(i % 2) for i in xrange(len(data.index))]] expected = data.reindex(self.daterange, method="ffill") expected[np.isnan(expected)] = np.inf node = datanode("test_datanode_ffill", data, ffill=True, missing_value=np.inf) qnode = node.queuenode() self._run(qnode) value = self.ctx[qnode] self.assertEquals(list(value), expected.values.tolist())
_logger = logging.getLogger(__name__) index = pa.Index([datetime(1991, 12, 31), datetime(1992, 1, 1), datetime(1992, 1, 2), datetime(1992, 1, 3), datetime(1992, 1, 6), datetime(1992, 1, 7), datetime(1992, 1, 8), datetime(1992, 1, 9), datetime(1992, 1, 10), datetime(1992, 1, 13)]) data = pa.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], index=index, dtype=float) datanode = mdf.datanode("data", data) df = pa.DataFrame({"A" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "B" : [np.nan, 9, 8, np.nan, 6, 5, 4, 3, 2, 1]}, index=index, dtype=float) dfnode = mdf.datanode("df", df) filter = pa.Series([False, True, False, True, False, True, False, True, False, True], index=index) filternode = mdf.datanode("filter", filter) queue_expected = [data[data.index <= d].tolist() for d in index] queue_filtered_expected = [data[filter][data[filter].index <= d].tolist() for d in index] delay_expected = data.shift(1) delay_filtered_expected = data[filter].shift(1).reindex(index, method="ffill")