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])
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'
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])
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)