Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import pandas as pd
from .testfuncs import initData
from core import runner, prepareMeta
from flagger.dmpflagger import DmpFlagger, FlagFields, Flags
def test_DmpFlagger():
data = initData()
var1, var2, *_ = data.columns
var1mean = data[var1].mean()
var2mean = data[var2].mean()
meta = [
[var1, f"generic, {{func: this < {var1mean}}}", "range, {min: 10, max: 20, comment: saqc}"],
[var2, f"generic, {{func: this > {var2mean}, cause: error}}"],
]
meta = prepareMeta(
pd.DataFrame(meta, columns=["headerout", "Flag_1", "Flag_2"]),
data)
data, flags = runner(meta, DmpFlagger(), data)
col1 = data[var1]
col2 = data[var2]
flags11 = flags.loc[col1 < var1mean, (var1, FlagFields.FLAG)]
flags12 = flags.loc[((col1 < 10) | (col1 > 20)), (var1, FlagFields.COMMENT)]
flags21 = flags.loc[col2 > var2mean, (var2, FlagFields.CAUSE)]
assert (flags11 == Flags.BAD).all()
assert (flags12 == "saqc").all()
assert (flags21 == "error").all()
if __name__ == "__main__":
test_DmpFlagger()