예제 #1
0
def test_interpolate_on_linear_data():
    linear_data = pd.DataFrame(
        [
            [0.1],
            [0.2],
            [0.3],
            [0.4],
            [0.5],
            [0.6],
            [0.7],
            [0.8],
            [0.9],

        ],
        [
            pd.Timestamp('2018-01-01 00:00:00.000'),
            pd.Timestamp('2018-01-01 00:00:00.100'),
            pd.Timestamp('2018-01-01 00:00:00.200'),
            pd.Timestamp('2018-01-01 00:00:00.300'),
            pd.Timestamp('2018-01-01 00:00:00.400'),
            pd.Timestamp('2018-01-01 00:00:00.500'),
            pd.Timestamp('2018-01-01 00:00:00.600'),
            pd.Timestamp('2018-01-01 00:00:00.700'),
            pd.Timestamp('2018-01-01 00:00:00.800'),

        ],
        ['A']
    )
    linear_data_with_nan = linear_data.copy()
    linear_data_with_nan.iloc[[2, 3, 5]] = np.NaN

    interpolate = Interpolate(rate=10, method='linear')
    interpolate.i.data = linear_data_with_nan
    interpolate.update()
    pd.testing.assert_frame_equal(interpolate.o.data, linear_data.iloc[:-1])
예제 #2
0
def test_data_not_monotonic(caplog):
    data = pd.DataFrame(
        [[0, 0], [0, 0]],
        [pd.Timestamp('2018-01-01 00:00:00.100'), pd.Timestamp('2018-01-01 00:00:00.000')]
    )
    node = Interpolate(rate=rate)
    node.i.data = data
    node.update()
    assert caplog.record_tuples[0][2] == 'Data index should be strictly monotonic'
예제 #3
0
def test_interpolate_on_data_no_jitter():
    data = dummy_data_no_jitter
    data.reset()
    interpolate = Interpolate(rate=rate, method='linear')
    looper = Looper(data, interpolate)
    dejittered_data, _ = looper.run(chunk_size=8)
    pd.testing.assert_frame_equal(dejittered_data, data._data.iloc[:-1])
예제 #4
0
def test_data_not_monotonic():
    data = dummy_data_not_monotonic
    node = Interpolate(rate=rate)
    looper = Looper(data, node)
    with pytest.raises(WorkerInterrupt):
        _, _ = looper.run(chunk_size=8)