Skip to content
Snippets Groups Projects
Commit 642b9c17 authored by David Schäfer's avatar David Schäfer
Browse files

pytest

parent 7836db9b
No related branches found
No related tags found
No related merge requests found
......@@ -7,18 +7,7 @@ import pandas as pd
from core import flaggingRunner
from config import Fields
from flagger import AbstractFlagger
from .testfuncs import initData, initEmptyFlags, printFailed, printSuccess
class TestFlagger(AbstractFlagger):
@property
def no_flag(self):
return 0
@property
def critical_flag(self):
return 2
from .testfuncs import initData
def initMeta(data):
......@@ -37,19 +26,18 @@ def initMeta(data):
def testTemporalPartitioning():
data = initData()
flags = initEmptyFlags(data)
meta = initMeta(data)
flagger = TestFlagger()
pdata, pflags = flaggingRunner(meta, data, flags, flagger)
flagger = AbstractFlagger(0, 1)
pdata, pflags = flaggingRunner(meta, flagger, data)
fields = [Fields.VARNAME, Fields.STARTDATE, Fields.ENDDATE]
for _, row in meta.iterrows():
vname, start_date, end_date = row[fields]
fchunk = pflags[vname].dropna()
assert fchunk.index.min() == start_date, printFailed("equal start dates")
assert fchunk.index.max() == end_date, printFailed("equal end dates")
printSuccess()
assert fchunk.index.min() == start_date, "different start dates"
assert fchunk.index.max() == end_date, "different end dates"
if __name__ == "__main__":
testTemporalPartitioning()
......@@ -3,13 +3,14 @@
import numpy as np
from .testfuncs import printSuccess, printFailed, initData, initEmptyFlags
from .testfuncs import initData
from flagger import SimpleFlagger
from dsl.evaluator import evalCondition
def testConditions():
data = initData()
flags = initEmptyFlags(data)
flags = SimpleFlagger().emptyFlags(data)
tests = [
("this > 100",
......@@ -25,14 +26,12 @@ def testConditions():
for test, expected in tests:
idx = evalCondition(test, data, flags, data.columns[0])
assert (idx == expected).all(), printFailed(test)
printSuccess()
assert (idx == expected).all()
def testMissingIdentifier():
data = initData()
flags = initEmptyFlags(data)
flags = SimpleFlagger().emptyFlags(data)
tests = ["func(var2) < 5", "var3 != NODATA"]
for test in tests:
try:
......@@ -40,8 +39,7 @@ def testMissingIdentifier():
except NameError:
continue
else:
printFailed(test)
printSuccess()
raise AssertionError
if __name__ == "__main__":
......
......@@ -5,14 +5,6 @@ import numpy as np
import pandas as pd
def printSuccess():
print("all tests passed")
def printFailed(test):
print("test failed: '{:}'".format(test))
def initData(start_date="2017-01-01", end_date="2017-12-31", freq="1h"):
dates = pd.date_range(start="2017-01-01", end="2017-12-31", freq="1h")
data = pd.DataFrame(
......@@ -20,7 +12,3 @@ def initData(start_date="2017-01-01", end_date="2017-12-31", freq="1h"):
"var2": np.arange(len(dates), len(dates)*2)},
index=dates)
return data
def initEmptyFlags(data):
return pd.DataFrame(index=data.index, columns=data.columns)
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