コード例 #1
0
def test_run_processor():
    df = ArrayDataFrame([[0]], "a:int")
    dfs = DataFrames(df1=df, df2=df)
    dfs2 = DataFrames(df, df)
    assert not dfs2.has_key

    o1 = _to_processor(t3)
    assert 4 == o1(df, df, 2).as_array()[0][0]

    o1._params = ParamDict([("a", 2)], deep=False)
    o1._execution_engine = None
    assert 4 == o1.process(dfs).as_array()[0][0]
    o1._params = ParamDict([("a", 2)], deep=False)
    o1._execution_engine = None
    assert 4 == o1.process(dfs2).as_array()[0][0]

    o1 = _to_processor(t5)
    assert 4 == o1("dummy", dfs, 2)[0][0]
    assert 4 == o1("dummy", dfs2, 2)[0][0]
    o1._params = ParamDict([("a", 2)], deep=False)
    o1._execution_engine = "dummy"
    assert 4 == o1.process(dfs).as_array()[0][0]
    o1._params = ParamDict([("a", 2)], deep=False)
    o1._execution_engine = "dummy"
    assert 4 == o1.process(dfs2).as_array()[0][0]
コード例 #2
0
ファイル: test_convert.py プロジェクト: yang-zhang-work/fugue
def test_to_processor_validation():
    @processor("b:int", input_has=" a , b ")
    def pv1(df: Iterable[Dict[str, Any]]) -> Iterable[Dict[str, Any]]:
        for r in df:
            r["b"] = 1
            yield r

    # input_has: a , b
    # schema: b:int
    def pv2(df: Iterable[Dict[str, Any]]) -> Iterable[Dict[str, Any]]:
        for r in df:
            r["b"] = 1
            yield r

    class MockProcessorV(Processor):
        @property
        def validation_rules(self):
            return {"input_is": "a:int,b:int"}

        def process(self, dfs):
            return dfs[0]

    a = _to_processor(pv1, None)
    assert {"input_has": ["a", "b"]} == a.validation_rules
    b = _to_processor(pv2, None)
    assert {"input_has": ["a", "b"]} == b.validation_rules
    c = _to_processor(MockProcessorV)
    assert {"input_is": "a:int,b:int"} == c.validation_rules
コード例 #3
0
def test_register():
    register_processor("x", MockProcessor)
    b = _to_processor("x")
    assert isinstance(b, MockProcessor)

    raises(
        KeyError,
        lambda: register_processor("x", MockProcessor, on_dup="throw"),
    )
コード例 #4
0
def test__to_processor_determinism():
    a = _to_processor(t1, None)
    b = _to_processor(t1, None)
    c = _to_processor("t1", None)
    d = _to_processor("t2", None)
    assert a is not b
    assert to_uuid(a) == to_uuid(b)
    assert a is not c
    assert to_uuid(a) == to_uuid(c)
    assert to_uuid(a) != to_uuid(d)

    a = _to_processor(MockProcessor)
    b = _to_processor("MockProcessor")
    assert a is not b
    assert to_uuid(a) == to_uuid(b)
コード例 #5
0
def test__to_processor():
    a = _to_processor(MockProcessor)
    assert isinstance(a, MockProcessor)
    b = _to_processor("MockProcessor")
    assert isinstance(b, MockProcessor)

    a = _to_processor(T0)
    assert isinstance(a, Processor)
    a = _to_processor(T0())

    assert isinstance(a, Processor)
    a = _to_processor(t1)
    assert isinstance(a, Processor)
    a._x = 1
    b = _to_processor(t1)
    assert isinstance(b, Processor)
    assert "_x" not in b.__dict__
    c = _to_processor(t1)
    assert isinstance(c, Processor)
    assert "_x" not in c.__dict__
    c._x = 1
    d = _to_processor("t1")
    assert isinstance(d, Processor)
    assert "_x" not in d.__dict__
    raises(FugueInterfacelessError, lambda: _to_processor("abc"))

    assert isinstance(_to_processor(t3), Processor)
    assert isinstance(_to_processor(t4), Processor)
    assert isinstance(_to_processor(t5), Processor)
    assert isinstance(_to_processor(t6), Processor)
    raises(FugueInterfacelessError, lambda: _to_processor(t6, "a:int"))
    assert isinstance(_to_processor(t7, "a:int"), Processor)
    raises(FugueInterfacelessError, lambda: _to_processor(t7))
    assert isinstance(_to_processor(t8), Processor)