Esempio n. 1
0
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)
Esempio n. 2
0
    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())
Esempio n. 3
0
    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())
Esempio n. 4
0
_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")