Exemplo n.º 1
0
def test_add():
    start_time = datetime.utcnow()
    a_values = [1, 2, 3, 4]
    a_events = generate_events(start_time, a_values)
    b_values = [5, 6, 7, 8]
    b_events = generate_events(start_time, b_values)

    add_op = Add(None)
    events = add_op([a_events, b_events])
    expects = [6, 8, 10, 12]

    for i, e in enumerate(events):
        assert e.timestamp == start_time + timedelta(seconds=len(events) - i)
        assert e.sample == expects[i]
Exemplo n.º 2
0
def test_divide():
    start_time = datetime.utcnow()
    a_values = [10, 20, 30, -40]
    a_events = generate_events(start_time, a_values)
    b_values = [5, -40, 6, 4]
    b_events = generate_events(start_time, b_values)

    divide_op = Divide(None)
    events = divide_op([a_events, b_events])
    expects = [2, -0.5, 5, -10]

    for i, e in enumerate(events):
        assert e.timestamp == start_time + timedelta(seconds=len(events)-i)
        assert e.sample == expects[i]
Exemplo n.º 3
0
def test_add_event_event():
    start_time = datetime.utcnow()
    l_values = [1, 2, 3, 4]
    l_events = generate_events(start_time, l_values)
    r_values = [5, 6, 7, 8]
    r_events = generate_events(start_time, r_values)

    add_op = Add(None)
    events = add_op.execute(l_events, r_events)
    expects = [6, 8, 10, 12]

    for i, e in enumerate(events):
        assert e.timestamp == start_time + timedelta(seconds=len(events)-i-1)
        assert e.sample == expects[i]
Exemplo n.º 4
0
def test_multiply_by_all_integer():
    start_time = datetime.utcnow()
    a_values = [1, -2, 3, 4]
    a_events = generate_events(start_time, a_values)
    b_values = [5, 6, -7, 8]
    b_events = generate_events(start_time, b_values)

    multiply_by_all_op = MultiplyByAll(None)
    streams = multiply_by_all_op([a_events, b_events], 10)
    expects = [[10, -20, 30, 40], [50, 60, -70, 80]]
    for i, s in enumerate(streams):
        for j, e in enumerate(s):
            assert e.timestamp == start_time + timedelta(seconds=len(s) - j)
            assert e.sample == expects[i][j]
Exemplo n.º 5
0
def test_sub_event_event():
    start_time = datetime.utcnow()
    l_values = [1, 2, 13, 14]
    l_events = generate_events(start_time, l_values)
    r_values = [5, 6, 7, 8]
    r_events = generate_events(start_time, r_values)

    sub_op = Subtract(None)
    events = sub_op.execute(l_events, r_events)
    expects = [-4, -4, 6, 6]

    for i, e in enumerate(events):
        assert e.timestamp == start_time + timedelta(seconds=len(events)-i-1)
        assert e.sample == expects[i]
Exemplo n.º 6
0
def test_divide_event_event():
    start_time = datetime.utcnow()
    l_values = [10, -20, 30, 40]
    l_events = generate_events(start_time, l_values)
    r_values = [5, 2, 6, 8]
    r_events = generate_events(start_time, r_values)

    divide_op = Divide(None)
    events = divide_op.execute(l_events, r_events)
    expects = [2, -10, 5, 5]

    for i, e in enumerate(events):
        assert e.timestamp == start_time + timedelta(seconds=len(events)-i-1)
        assert e.sample == expects[i]
Exemplo n.º 7
0
def test_multiply_event_event():
    start_time = datetime.utcnow()
    l_values = [1, -2, 3, 4]
    l_events = generate_events(start_time, l_values)
    r_values = [5, 6, 7, 8]
    r_events = generate_events(start_time, r_values)

    multiply_op = Multiply(None)
    events = multiply_op.execute(l_events, r_events)
    expects = [5, -12, 21, 32]

    for i, e in enumerate(events):
        assert e.timestamp == start_time + timedelta(seconds=len(events)-i-1)
        assert e.sample == expects[i]
Exemplo n.º 8
0
def test_divide_by_all_integer():
    start_time = datetime.utcnow()
    a_values = [10, -12, 5, 4]
    a_events = generate_events(start_time, a_values)
    b_values = [5, 6, 7, 8]
    b_events = generate_events(start_time, b_values)

    divide_by_all_op = DivideByAll(None)
    streams = divide_by_all_op([a_events, b_events], 10)
    expects = [[1, -1.2, 0.5, 0.4], [0.5, 0.6, 0.7, 0.8]]

    for i, s in enumerate(streams):
        for j, e in enumerate(s):
            assert e.timestamp == start_time + timedelta(seconds=len(s) - j)
            assert e.sample == expects[i][j]
Exemplo n.º 9
0
def test_add_to_all_integer():
    start_time = datetime.utcnow()
    a_values = [1, 2, 3, 4]
    a_events = generate_events(start_time, a_values)
    b_values = [5, 6, 7, 8]
    b_events = generate_events(start_time, b_values)

    add_to_all_op = AddToAll(None)
    streams = add_to_all_op([a_events, b_events], 10)
    expects = [[11, 12, 13, 14], [15, 16, 17, 18]]

    for i, s in enumerate(streams):
        for j, e in enumerate(s):
            assert e.timestamp == start_time + timedelta(seconds=len(s) - j)
            assert e.sample == expects[i][j]
Exemplo n.º 10
0
def test_sub():
    start_time = datetime.utcnow()
    a_values = [10, 2, 20, 5]
    a_events = generate_events(start_time, a_values)
    b_values = [5, -6, 12, 20]
    b_events = generate_events(start_time, b_values)
    c_values = [1, 6, 14, -8]
    c_events = generate_events(start_time, c_values)

    sub_op = Sub(None)
    events = sub_op([a_events, b_events, c_events])
    expects = [4, 2, -6, -7]

    for i, e in enumerate(events):
        assert e.timestamp == start_time + timedelta(seconds=len(events) - i)
        assert e.sample == expects[i]
Exemplo n.º 11
0
def test_greater_than_fill_last():
    start_time = datetime.utcnow()
    l_values = [1, 2, 3, 4]
    l_events = generate_events(start_time, l_values)
    r_values = [0, 6, 3, 1]
    r_events = generate_events(start_time, r_values)

    fill = FillLast(0)
    gte = GreaterThan(None, fill)
    events = gte.execute(l_events, r_events)
    expects = [1, 1, 1, 4]

    for i, e in enumerate(events):
        assert e.timestamp == start_time + timedelta(seconds=len(events) - i -
                                                     1)
        assert e.sample == expects[i]
Exemplo n.º 12
0
def test_sub_from_all_integer():
    start_time = datetime.utcnow()
    a_values = [10, 2, -3, 12]
    a_events = generate_events(start_time, a_values)
    b_values = [5, 16, 2, -8]
    b_events = generate_events(start_time, b_values)

    sub_from_all_op = SubFromAll(None)
    streams = sub_from_all_op([a_events, b_events], 10)
    expects = [[0, -8, -13, 2],
               [-5, 6, -8, -18]]

    for i, s in enumerate(streams):
        for j, e in enumerate(s):
            assert e.timestamp == start_time + timedelta(seconds=len(s)-j)
            assert e.sample == expects[i][j]
Exemplo n.º 13
0
def test_multiply_by_all_stream():
    start_time = datetime.utcnow()
    a_values = [1, 2, 3, -4]
    a_events = generate_events(start_time, a_values)
    b_values = [5, 6, 7, 8]
    b_events = generate_events(start_time, b_values)
    c_values = [-1, 10, 6, -4]
    c_events = generate_events(start_time, c_values)

    multiply_by_all_op = MultiplyByAll(None)
    streams = multiply_by_all_op([a_events, b_events], c_events)
    expects = [[-1, 20, 18, 16], [-5, 60, 42, -32]]

    for i, s in enumerate(streams):
        for j, e in enumerate(s):
            assert e.timestamp == start_time + timedelta(seconds=len(s) - j)
            assert e.sample == expects[i][j]
Exemplo n.º 14
0
def test_divide_by_all_stream():
    start_time = datetime.utcnow()
    a_values = [10, -12, 6, 4]
    a_events = generate_events(start_time, a_values)
    b_values = [5, 6, -12, 8]
    b_events = generate_events(start_time, b_values)
    c_values = [2, 10, 3, 2]
    c_events = generate_events(start_time, c_values)

    divide_by_all_op = DivideByAll(None)
    streams = divide_by_all_op([a_events, b_events], c_events)
    expects = [[5, -1.2, 2, 2], [2.5, 0.6, -4, 4]]

    for i, s in enumerate(streams):
        for j, e in enumerate(s):
            assert e.timestamp == start_time + timedelta(seconds=len(s) - j)
            assert e.sample == expects[i][j]
Exemplo n.º 15
0
def test_get_events_incorrect_window():
    start_time = datetime.utcnow() - timedelta(seconds=80)
    num_buffer_events = 10
    buffer_events = generate_events(num_buffer_events, 2, start_time)
    store = create_store(buffer_events)

    events = store.get_events(-60*1000)

    assert 0 == len(events)
Exemplo n.º 16
0
def test_get_events():
    start_time = datetime.utcnow() - timedelta(seconds=80)
    num_buffer_events = 10
    buffer_events = generate_events(num_buffer_events, 2, start_time)
    store = create_store(buffer_events)

    num_new_events = 10
    start_time = datetime.utcnow() - timedelta(seconds=12)
    new_events = generate_events(num_new_events, 1, start_time, random=True)

    store.add_events(new_events)

    events = store.get_events(60*1000)

    assert num_new_events == len(events)

    for i in range(num_new_events):
        assert events[i] == new_events[i]
Exemplo n.º 17
0
def test_sub_from_all_stream():
    start_time = datetime.utcnow()
    a_values = [10, 2, -3, 12]
    a_events = generate_events(start_time, a_values)
    b_values = [5, 16, 2, -8]
    b_events = generate_events(start_time, b_values)
    c_values = [9, 10, 11, 12]
    c_events = generate_events(start_time, c_values)

    sub_from_all_op = SubFromAll(None)
    streams = sub_from_all_op([a_events, b_events], c_events)
    expects = [[1, -8, -14, 0],
               [-4, 6, -9, -20]]

    for i, s in enumerate(streams):
        for j, e in enumerate(s):
            assert e.timestamp == start_time + timedelta(seconds=len(s)-j)
            assert e.sample == expects[i][j]
Exemplo n.º 18
0
def test_get_n_events_empty():
    start_time = datetime.utcnow()
    num_buffer_events = 20
    buffer_events = generate_events(num_buffer_events, 2, start_time)
    store = create_store(buffer_events)

    num_events = 0
    events = store.get_n_events(num_events)

    assert num_events == len(events)
Exemplo n.º 19
0
def test_add_events_empty_buffer():
    store = create_store()
    num_events = 2
    events = generate_events(num_events, 2)
    store.add_events(events)

    assert len(store.buffer) == num_events

    for i in range(num_events):
        assert events[i] == store.buffer[i]
Exemplo n.º 20
0
def test_add_events_newer_ordered():
    start_time = datetime.utcnow()
    num_buffer_events = 2
    buffer_events = generate_events(num_buffer_events, 2, start_time)
    store = create_store(buffer_events)

    num_new_events = 3
    start_time = start_time + timedelta(seconds=5)
    new_events = generate_events(num_new_events, 2, start_time)

    store.add_events(new_events)

    assert len(store.buffer) == num_buffer_events + num_new_events

    for i in range(num_new_events):
        assert new_events[i] == store.buffer[i]

    for i in range(num_buffer_events):
        assert buffer_events[i] == store.buffer[i+num_new_events]
Exemplo n.º 21
0
def test_mean():
    start_time = datetime.utcnow()
    a_values = [1, 2, 3, 4]
    a_events = generate_events(start_time, a_values)

    mean_op = Mean(None)
    events = mean_op(a_events)
    expects = [2.5]

    assert events[0].timestamp == start_time + timedelta(seconds=len(events))
    assert events[0].sample == expects[0]
Exemplo n.º 22
0
def test_first():
    start_time = datetime.utcnow()
    a_values = [10, 2, 20, 5]
    a_events = generate_events(start_time, a_values)

    first_op = First(None)
    events = first_op([a_events, b_events, c_events])
    expects = [4, 2, -6, -7]

    assert events[0].timestamp == start_time
    assert events[0].sample == expects[0]
Exemplo n.º 23
0
def test_add_interleaved_events_new_after():
    start_time = datetime.utcnow()
    num_buffer_events = 3
    buffer_events = generate_events(num_buffer_events, 3, start_time)
    store = create_store(buffer_events)

    num_new_events = 2
    start_time = start_time - timedelta(seconds=10)
    new_events = generate_events(num_new_events, 1, start_time, random=True)

    store.add_events(new_events)

    test_events = []
    test_events.extend(buffer_events)
    test_events.extend((new_events))
    test_events = sorted(test_events, key=attrgetter("timestamp"), reverse=True)

    assert len(store.buffer) == len(test_events)

    for i in range(len(test_events)):
        assert test_events[i] == store.buffer[i]
Exemplo n.º 24
0
def test_median():
    start_time = datetime.utcnow()
    values = [1, 2, 3, 10]
    events = generate_events(start_time, values)

    median_op = Median(None)
    out_events = median_op.execute(events)
    expects = [2.5]

    assert out_events[0].timestamp == start_time + timedelta(
        seconds=len(events) - 1)
    assert out_events[0].sample == expects[0]
Exemplo n.º 25
0
def test_sub_const_event():
    start_time = datetime.utcnow()
    r_values = [1, 2, 13, 14]
    r_events = generate_events(start_time, r_values)

    sub_op = Subtract(None)
    events = sub_op.execute(10, r_events)
    expects = [9, 8, -3, -4]

    for i, e in enumerate(events):
        assert e.timestamp == start_time + timedelta(seconds=len(events)-i-1)
        assert e.sample == expects[i]
Exemplo n.º 26
0
def test_range():
    start_time = datetime.utcnow()
    values = [1, 2, 3, 10]
    events = generate_events(start_time, values)

    range_op = Range(None)
    out_events = range_op.execute(events)
    expects = [9]

    assert out_events[0].timestamp == start_time + timedelta(
        seconds=len(events) - 1)
    assert out_events[0].sample == expects[0]
Exemplo n.º 27
0
def test_percentile():
    start_time = datetime.utcnow()
    values = [1, 2, 3, 10]
    events = generate_events(start_time, values)

    pct_op = Percentile(None, 90)
    out_events = pct_op.execute(events)
    expects = [7.9]

    assert out_events[0].timestamp == start_time + timedelta(
        seconds=len(events) - 1)
    assert out_events[0].sample == pytest.approx(expects[0])
Exemplo n.º 28
0
def test_std():
    start_time = datetime.utcnow()
    values = [1, 2, 3, 10]
    events = generate_events(start_time, values)

    std_op = Std(None)
    out_events = std_op.execute(events)
    expects = [3.535]

    assert out_events[0].timestamp == start_time + timedelta(
        seconds=len(events) - 1)
    assert out_events[0].sample == pytest.approx(expects[0], rel=1e-3)
Exemplo n.º 29
0
def test_add_events_newer_unordered():
    start_time = datetime.utcnow()
    num_buffer_events = 2
    buffer_events = generate_events(num_buffer_events, 2, start_time)
    store = create_store(buffer_events)

    num_new_events = 3
    start_time = start_time + timedelta(seconds=5)
    new_events = generate_events(num_new_events, 2, start_time, random=True, in_order=False)

    store.add_events(new_events)

    assert len(store.buffer) == num_buffer_events + num_new_events

    test_new_events = sorted(new_events, key=attrgetter("timestamp"), reverse=True)

    for i in range(num_new_events):
        assert test_new_events[i] == store.buffer[i]

    for i in range(num_buffer_events):
        assert buffer_events[i] == store.buffer[i+num_new_events]
Exemplo n.º 30
0
def test_min():
    start_time = datetime.utcnow()
    values = [1, 2, 3, 10]
    events = generate_events(start_time, values)

    min_op = Min(None)
    out_events = min_op.execute(events)
    expects = [1]

    assert out_events[0].timestamp == start_time + timedelta(
        seconds=len(events) - 1)
    assert out_events[0].sample == pytest.approx(expects[0])