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

addes some corre tests, moved some tests, renames

parent 7abe825c
No related branches found
No related tags found
1 merge request!462More tests
#!/usr/bin/env python
File moved
File moved
......@@ -23,8 +23,17 @@ def flagAll(data, field, flags, **kwargs):
return data, flags
def dataDios(columns, start_date="2017-01-01", freq='1d', rows=10):
di = dios.DictOfSeries(itype=dios.DtItype)
dates = pd.date_range(start=start_date, end=None, freq=freq, periods=rows)
dummy = np.arange(len(dates))
for i, col in enumerate(columns):
di[col] = pd.Series(data=dummy * (i+1), index=dates)
return di
def initData(
cols=2, start_date="2017-01-01", end_date="2017-12-31", freq=None, rows=None
cols=2, start_date="2017-01-01", end_date="2017-12-31", freq=None, rows=None
):
if rows is None:
freq = freq or "1h"
......
......@@ -13,13 +13,13 @@ import pandas as pd
import saqc
from saqc.core import initFlagsLike, SaQC, register
from saqc.core.flags import Flags
from saqc.core.register import processing
from saqc.core.register import processing, flagging
import copy
from tests.common import initData, flagAll
OPTIONAL = [False, True]
register(mask=["field"], demask=["field"], squeeze=["field"])(flagAll)
......@@ -40,22 +40,10 @@ def test_errorHandling(data):
raise TypeError
var1 = data.columns[0]
qc = SaQC(data)
with pytest.raises(TypeError):
SaQC(data).raisingFunc(var1)
def test_duplicatedVariable():
data = initData(1)
var1 = data.columns[0]
pflags = SaQC(data).flagDummy(var1).result.flags
if isinstance(pflags.columns, pd.MultiIndex):
cols = pflags.columns.get_level_values(0).drop_duplicates()
assert np.all(cols == [var1])
else:
assert (pflags.columns == [var1]).all()
qc.raisingFunc(var1)
@pytest.mark.parametrize("optional", OPTIONAL)
......@@ -191,3 +179,62 @@ def test_sourceTargetMulti():
return data, flags
SaQC(data, flags).flagMulti(field=fields, target=targets)
def test_unknown_attribute():
qc = SaQC()
with pytest.raises(AttributeError):
qc._construct(_spam="eggs")
def test_validation(data):
"""Test if validation detects different columns in data and flags."""
df = pd.DataFrame(
data=np.arange(8).reshape(4, 2),
index=pd.date_range("2020", None, 4, "1d"),
columns=list("ab"),
)
qc = SaQC(df)
@flagging()
def flagFoo(data, field, flags, **kwargs):
data["spam"] = data[field]
return data, flags
with pytest.raises(RuntimeError):
qc.flagFoo("a")
@pytest.mark.skip(reason="bug in register, see #GL 342")
def test_validation_flags(data):
"""Test if validation detects different columns in data and flags."""
df = pd.DataFrame(
data=np.arange(8).reshape(4, 2),
index=pd.date_range("2020", None, 4, "1d"),
columns=list("ab"),
)
qc = SaQC(df)
@flagging()
def flagFoo(data, field, flags, **kwargs):
flags["spam"] = flags[field]
return data, flags
with pytest.raises(RuntimeError):
qc.flagFoo("a")
def test__copy__():
orig = SaQC()
orig.attrs["spam"] = [] # a higher object
shallow = copy.copy(orig)
assert shallow is not orig
assert shallow.attrs["spam"] is orig.attrs["spam"]
def test__deepcopy__():
orig = SaQC()
orig.attrs["spam"] = [] # a higher object
shallow = copy.deepcopy(orig)
assert shallow is not orig
assert shallow.attrs["spam"] is not orig.attrs["spam"]
#!/usr/bin/env python
#!/usr/bin/env python
#!/usr/bin/env python
import pytest
from tests.common import initData
from saqc import SaQC
import pandas as pd
import numpy as np
# this tests seems to do nothing with duplicates
@pytest.mark.parametrize("data", [initData(1)])
def test_duplicatedVariable(data):
var1 = data.columns[0]
pflags = SaQC(data).flagDummy(var1).result.flags
if isinstance(pflags.columns, pd.MultiIndex):
cols = pflags.columns.get_level_values(0).drop_duplicates()
assert np.all(cols == [var1])
else:
assert (pflags.columns == [var1]).all()
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