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

represents all flags by DictOfSeries

parent 225a122a
No related branches found
No related tags found
2 merge requests!842Annotated float scheme,!827Represent all flags by DictOfSeries
Pipeline #204463 failed with stages
in 3 minutes and 58 seconds
......@@ -157,7 +157,14 @@ def main(
flagscol = flagscol.rename("flags")
out[k] = pd.concat([data_result[k].rename("data"), flagscol], axis=1)
writeData(writer, out.to_pandas(fill_value=-9999 if scheme == "positional" else np.nan), outfile)
writeData(
writer,
out.to_pandas(
fill_value=-9999 if scheme == "positional" else np.nan,
squeeze_columns=False,
),
outfile,
)
if __name__ == "__main__":
......
......@@ -64,12 +64,7 @@ DMP = [
@pytest.mark.slow
@pytest.mark.parametrize(
"scheme, expected",
[
# ("float", FLOAT),
# ("simple", SIMPLE),
("positional", POSITIONAL),
# ("dmp", DMP)
],
[("float", FLOAT), ("simple", SIMPLE), ("positional", POSITIONAL), ("dmp", DMP)],
)
def test__main__py(tmp_path, scheme, expected):
import saqc.__main__
......
......@@ -101,17 +101,29 @@ def test_dmpTranslator():
}
assert (tflags["var1"]["quality_flag"] == "DOUBTFUL").all(axis=None)
assert (tflags["var1"]["quality_comment"] == '{"test": "flagBar", "comment": "I did it"}').all(axis=None)
assert (
tflags["var1"]["quality_comment"]
== '{"test": "flagBar", "comment": "I did it"}'
).all(axis=None)
assert (tflags["var1"]["quality_cause"] == "OTHER").all(axis=None)
assert (tflags["var2"]["quality_flag"] == "BAD").all(axis=None)
assert (tflags["var2"]["quality_comment"] == '{"test": "flagFoo", "comment": ""}').all(axis=None)
assert (
tflags["var2"]["quality_comment"] == '{"test": "flagFoo", "comment": ""}'
).all(axis=None)
assert (tflags["var2"]["quality_cause"] == "BELOW_OR_ABOVE_MIN_MAX").all(axis=None)
assert (tflags["var3"].loc[flags["var3"] == BAD, "quality_comment"] == '{"test": "unknown", "comment": ""}').all(axis=None)
assert (tflags["var3"].loc[flags["var3"] == BAD, "quality_cause"] == "OTHER").all(axis=None)
assert (tflags["var3"].loc[flags["var3"] == UNFLAGGED, "quality_cause"] == "").all(axis=None)
assert (
tflags["var3"].loc[flags["var3"] == BAD, "quality_comment"]
== '{"test": "unknown", "comment": ""}'
).all(axis=None)
assert (tflags["var3"].loc[flags["var3"] == BAD, "quality_cause"] == "OTHER").all(
axis=None
)
assert (tflags["var3"].loc[flags["var3"] == UNFLAGGED, "quality_cause"] == "").all(
axis=None
)
def test_positionalTranslator():
......@@ -161,14 +173,24 @@ def test_dmpTranslatorIntegration():
qcause = pd.DataFrame({k: v["quality_cause"] for k, v in flags.items()})
assert qflags.isin(scheme._forward.keys()).all(axis=None)
assert qfunc.map(lambda v: json.loads(v)["test"] if v else "").isin({"", "flagMissing", "flagRange"}).all(axis=None)
assert (
qfunc.map(lambda v: json.loads(v)["test"] if v else "")
.isin({"", "flagMissing", "flagRange"})
.all(axis=None)
)
assert (qcause[qflags[col] == "BAD"] == "OTHER").all(axis=None)
round_trip = scheme.toExternal(scheme.toInternal(flags))
assert pd.DataFrame({k: v["quality_flag"] for k, v in round_trip.items()}).equals(qflags)
assert pd.DataFrame({k: v["quality_comment"] for k, v in round_trip.items()}).equals(qfunc)
assert pd.DataFrame({k: v["quality_cause"] for k, v in round_trip.items()}).equals(qcause)
assert pd.DataFrame({k: v["quality_flag"] for k, v in round_trip.items()}).equals(
qflags
)
assert pd.DataFrame(
{k: v["quality_comment"] for k, v in round_trip.items()}
).equals(qfunc)
assert pd.DataFrame({k: v["quality_cause"] for k, v in round_trip.items()}).equals(
qcause
)
def test_dmpValidCombinations():
......
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