Skip to content
Snippets Groups Projects
Commit 5efdd533 authored by Bert Palm's avatar Bert Palm 🎇
Browse files

added ts_operator test

parent ec6d77d8
No related branches found
No related tags found
1 merge request!462More tests
......@@ -6,6 +6,7 @@ import pytest
import saqc.lib.ts_operators as tsops
import pandas as pd
from pandas.testing import assert_series_equal
def test_butterFilter():
......@@ -45,3 +46,62 @@ F = False
def test__exceedConsecutiveNanLimit(arr, maxc, expected):
result = tsops._exceedConsecutiveNanLimit(arr, maxc)
assert result is expected
def dtSeries(data, freq="1d"):
index = pd.date_range(start="2020", periods=len(data), freq=freq)
return pd.Series(data=data, index=index, dtype=float)
@pytest.mark.parametrize(
"func,data,expected",
[
("identity", dtSeries([1, 2]), dtSeries([1, 2])),
("count", dtSeries([0, 0]), dtSeries([2])),
pytest.param(
"first",
dtSeries([1, 2]),
dtSeries([1, 1]),
marks=pytest.mark.xfail(reason="BUG (the inner ts.first need an argument)"),
),
pytest.param(
"last",
dtSeries([1, 2]),
dtSeries([1, 1]),
marks=pytest.mark.xfail(reason="BUG (the inner ts.last need an argument)"),
),
(
"zeroLog",
dtSeries([1, 2, np.inf, np.nan]),
dtSeries([np.log(1), np.log(2), np.inf, np.nan]),
),
pytest.param(
"zeroLog",
dtSeries(
[
# 0,
-2,
-1,
-np.inf,
]
),
dtSeries([np.nan, np.nan, np.nan]),
marks=pytest.mark.xfail(reason="zeroLog(0) did not return NaN"),
),
],
)
def test_tsop_functions(func, data, expected):
f = getattr(tsops, func)
resampler = data.resample("2d")
result = resampler.apply(f)
assert isinstance(result, pd.Series)
print()
print(result)
print()
print(expected)
assert_series_equal(
result, expected, check_names=False, check_freq=False, check_dtype=False
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment