예제 #1
0
def test_rolling_minheap(array, window_size, window_type):
    got = MinHeap(array, window_size, window_type=window_type)
    expected = Apply(array,
                     window_size,
                     operation=min,
                     window_type=window_type)
    assert list(got) == list(expected)
예제 #2
0
def test_rolling_max(array, window_size, window_type):
    got = Max(array, window_size, window_type=window_type)
    expected = Apply(array,
                     window_size,
                     operation=max,
                     window_type=window_type)
    assert list(got) == list(expected)
예제 #3
0
def test_rolling_mean(array, window_size, window_type):
    got = Mean(array, window_size, window_type=window_type)
    expected = Apply(array,
                     window_size,
                     operation=_mean,
                     window_type=window_type)
    assert pytest.approx(list(got)) == list(expected)
예제 #4
0
def test_rolling_nunique(word, window_size, window_type):
    got = Nunique(word, window_size, window_type=window_type)
    expected = Apply(word,
                     window_size,
                     operation=lambda x: len(set(x)),
                     window_type=window_type)
    assert list(got) == list(expected)
예제 #5
0
def test_rolling_kurtosis(array, window_size, window_type):
    got = Kurtosis(array, window_size, window_type=window_type)
    expected = Apply(array,
                     window_size,
                     operation=_kurtosis,
                     window_type=window_type)
    assert pytest.approx(list(got), nan_ok=True) == list(expected)
예제 #6
0
def test_rolling_all(array, window_size, window_type):
    got = All(array, window_size, window_type=window_type)
    expected = Apply(array,
                     window_size,
                     operation=all,
                     window_type=window_type)
    assert list(got) == list(expected)
예제 #7
0
def test_rolling_product(array, window_size, window_type):
    got = Product(array, window_size, window_type=window_type)
    expected = Apply(array,
                     window_size,
                     operation=_product,
                     window_type=window_type)
    assert list(got) == list(expected)
예제 #8
0
def test_rolling_sum(array, window_size, window_type):
    got = Sum(array, window_size, window_type=window_type)
    expected = Apply(array,
                     window_size,
                     operation=sum,
                     window_type=window_type)
    assert list(got) == list(expected)
예제 #9
0
def test_rolling_mode(array, window_size, window_type):
    got = Mode(array, window_size, window_type=window_type)
    expected = Apply(array,
                     window_size,
                     operation=_mode,
                     window_type=window_type)
    # NOTE: we copy the returned set so that it is not mutated after further iteration
    assert [set_.copy() for set_ in got] == list(expected)
예제 #10
0
def test_unknown_window_type_type_raises(window_type):
    with pytest.raises(ValueError):
        Apply([], 5, window_type=window_type)
예제 #11
0
def test_bad_window_size_type_raises(window_size):
    with pytest.raises(TypeError):
        Apply([], window_size)
예제 #12
0
def test_bad_window_size_value_raises(window_size):
    with pytest.raises(ValueError):
        Apply([], window_size)
예제 #13
0
def test_rolling_entropy(window_size, sequence):
    expected = Apply(sequence, window_size, operation=_entropy)
    got = Entropy(sequence, window_size)
    assert pytest.approx(list(got), abs=1e-10) == list(expected)
예제 #14
0
def test_rolling_apply_over_short_iterable(array, window_type, expected):
    r = Apply(array, 5, operation=list, window_type=window_type)
    assert list(r) == expected
예제 #15
0
def test_rolling_apply_variable(array, window_size, expected):
    r = Apply(array, window_size, operation=list, window_type="variable")
    assert list(r) == expected
예제 #16
0
def test_rolling_apply(array, window_size, expected):
    r = Apply(array, window_size, operation=list)
    assert list(r) == expected