Esempio n. 1
0
def test_rolling_aggs_with_start_state(stream):
    example = pd.DataFrame({'name': [], 'amount': []})
    sdf = DataFrame(stream, example=example)
    output0 = sdf.rolling(
        2, with_state=True,
        start=()).amount.sum().stream.gather().sink_to_list()

    df = pd.DataFrame({
        'name': ['Alice', 'Tom', 'Linda'],
        'amount': [50, 100, 200]
    })
    stream.emit(df)
    df = pd.DataFrame({'name': ['Bob'], 'amount': [250]})
    stream.emit(df)
    assert assert_eq(output0[-1][0].reset_index(drop=True),
                     pd.Series([200, 250], name="amount"))
    assert assert_eq(output0[-1][1].reset_index(drop=True),
                     pd.Series([450.0], name="amount"))

    stream = Stream()
    example = pd.DataFrame({'name': [], 'amount': []})
    sdf = DataFrame(stream, example=example)
    output1 = sdf.rolling(
        2, with_state=True,
        start=output0[-1][0]).amount.sum().stream.gather().sink_to_list()
    df = pd.DataFrame({'name': ['Alice'], 'amount': [50]})
    stream.emit(df)
    assert assert_eq(output1[-1][0].reset_index(drop=True),
                     pd.Series([250, 50], name="amount"))
    assert assert_eq(output1[-1][1].reset_index(drop=True),
                     pd.Series([300.0], name="amount"))
Esempio n. 2
0
def test_rolling_aggs_with_start_state(stream):
    example = cudf.DataFrame({"name": [], "amount": []})
    sdf = DataFrame(stream, example=example)
    output0 = (
        sdf.rolling(2, with_state=True, start=())
        .amount.sum()
        .stream.gather()
        .sink_to_list()
    )

    df = cudf.DataFrame(
        {"name": ["Alice", "Tom", "Linda"], "amount": [50, 100, 200]}
    )
    stream.emit(df)
    df = cudf.DataFrame({"name": ["Bob"], "amount": [250]})
    stream.emit(df)
    assert assert_eq(
        output0[-1][0].reset_index(drop=True),
        cudf.Series([200, 250], name="amount"),
    )
    assert assert_eq(
        output0[-1][1].reset_index(drop=True),
        cudf.Series([450], name="amount"),
    )

    stream = Stream()
    example = cudf.DataFrame({"name": [], "amount": []})
    sdf = DataFrame(stream, example=example)
    output1 = (
        sdf.rolling(2, with_state=True, start=output0[-1][0])
        .amount.sum()
        .stream.gather()
        .sink_to_list()
    )
    df = cudf.DataFrame({"name": ["Alice"], "amount": [50]})
    stream.emit(df)
    assert assert_eq(
        output1[-1][0].reset_index(drop=True),
        cudf.Series([250, 50], name="amount"),
    )
    assert assert_eq(
        output1[-1][1].reset_index(drop=True),
        cudf.Series([300], name="amount"),
    )