예제 #1
0
def test_compute() -> None:
    t = api.Transform(name="testname", f="tlag", col="b_a", time=1)
    df = mocker.DfMocker().df

    s_t = t.compute(df)
    s_raw = lib.tlag(s=df["b_a"], time=1)
    pd.testing.assert_series_equal(s_t, s_raw)
예제 #2
0
def make_transforms_ordered(
        specs: Dict[str, Dict[str, Any]]) -> List[api.Transform]:
    """ Make dependency ordered list of Transform objects """
    transforms = [api.Transform(name, **spec) for name, spec in specs.items()]
    transforms = _order_transforms(transforms)
    return transforms
예제 #3
0
def test_col_cols_ok() -> None:

    # These are ok
    t = api.Transform(name="testname", f="rollmax", cols=["a", "b"])
    t = api.Transform(name="testname", f="rollmax", col="a")
예제 #4
0
def test_f_missing() -> None:
    with pytest.raises(KeyError) as exc:
        t = api.Transform(name="testname", col="a")
        assert "Transformer needs a 'f' field" in str(exc.value)
예제 #5
0
def test_f_unknown() -> None:
    with pytest.raises(KeyError) as exc:
        t = api.Transform(name="testname", f="unknown", col="a")
        assert "following values of f are recognised:" in str(exc.value)
예제 #6
0
def test_col_cols_not_ok() -> None:
    # Not OK, cols is str
    with pytest.raises(TypeError) as exc:
        t = api.Transform(name="testname", f="rollmax", cols="a")
        assert "col should be string" in str(exc.value)