Exemplo n.º 1
0
def test_dataflow_evaluation_no_input_two_outputs():
    df = DataFlow()
    vid = df.add_vertex()
    pid0 = df.add_out_port(vid, "out1")

    df.set_actor(vid, FuncNode({}, {}, double_fixed_function))

    dfs = DataflowState(df)
    env = 0
    algo = BruteEvaluation(df)

    algo.eval(env, dfs, vid)

    assert tuple(dfs.get_data(pid0)) == (5, 5)

    algo.clear()
    dfs.reinit()
    pid1 = df.add_out_port(vid, "out2")
    algo.eval(env, dfs, vid)
    assert dfs.get_data(pid0) == 5
    assert dfs.get_data(pid1) == 5

    algo.clear()
    dfs.reinit()
    pid2 = df.add_out_port(vid, "out3")
    assert_raises(UserWarning, lambda: algo.eval(env, dfs, vid))
Exemplo n.º 2
0
def test_dataflow_evaluation_no_input_two_outputs():
    df = DataFlow()
    vid = df.add_vertex()
    pid0 = df.add_out_port(vid, "out1")

    df.set_actor(vid, FuncNode({}, {}, double_fixed_function))

    dfs = DataflowState(df)
    env = 0
    algo = BruteEvaluation(df)

    algo.eval(env, dfs, vid)

    assert tuple(dfs.get_data(pid0)) == (5, 5)

    algo.clear()
    dfs.reinit()
    pid1 = df.add_out_port(vid, "out2")
    algo.eval(env, dfs, vid)
    assert dfs.get_data(pid0) == 5
    assert dfs.get_data(pid1) == 5

    algo.clear()
    dfs.reinit()
    pid2 = df.add_out_port(vid, "out3")
    assert_raises(UserWarning, lambda: algo.eval(env, dfs, vid))
Exemplo n.º 3
0
def test_dataflow_state_get_data():
    df = DataFlow()
    vid1 = df.add_vertex()
    pid10 = df.add_in_port(vid1, "in")
    pid11 = df.add_out_port(vid1, "out")
    vid2 = df.add_vertex()
    pid21 = df.add_out_port(vid2, "out")
    vid5 = df.add_vertex()
    pid51 = df.add_out_port(vid5, "out")

    vid3 = df.add_vertex()
    pid31 = df.add_in_port(vid3, "in1")
    pid32 = df.add_in_port(vid3, "in2")
    pid33 = df.add_out_port(vid3, "res")

    vid4 = df.add_vertex()
    pid41 = df.add_in_port(vid4, "in")

    df.connect(pid11, pid31)
    df.connect(pid21, pid32)
    df.connect(pid33, pid41)
    df.connect(pid51, pid32)

    dfs = DataflowState(df)

    for pid in df.ports():
        raises(KeyError, lambda: dfs.get_data(pid))

    for i, pid in enumerate([pid11, pid21, pid33, pid51]):
        dfs.set_data(pid, i)

    raises(KeyError, lambda: dfs.get_data(pid10))

    dfs.set_data(pid10, 'a')
    assert dfs.get_data(pid10) == 'a'

    for i, pid in enumerate([pid11, pid21, pid33, pid51]):
        assert dfs.get_data(pid) == i

    assert dfs.get_data(pid31) == 0
    assert tuple(dfs.get_data(pid32)) == (1, 3)
    assert dfs.get_data(pid41) == 2

    n2 = Node()
    df.set_actor(vid2, n2)

    assert tuple(dfs.get_data(pid32)) == (1, 3)

    n5 = Node()
    df.set_actor(vid5, n5)
    assert tuple(dfs.get_data(pid32)) == (1, 3)

    n2.get_ad_hoc_dict().set_metadata('position', [10, 0])
    n5.get_ad_hoc_dict().set_metadata('position', [0, 0])
    assert tuple(dfs.get_data(pid32)) == (3, 1)
Exemplo n.º 4
0
def test_dataflow_state_get_data():
    df = DataFlow()
    vid1 = df.add_vertex()
    pid10 = df.add_in_port(vid1, "in")
    pid11 = df.add_out_port(vid1, "out")
    vid2 = df.add_vertex()
    pid21 = df.add_out_port(vid2, "out")
    vid5 = df.add_vertex()
    pid51 = df.add_out_port(vid5, "out")

    vid3 = df.add_vertex()
    pid31 = df.add_in_port(vid3, "in1")
    pid32 = df.add_in_port(vid3, "in2")
    pid33 = df.add_out_port(vid3, "res")

    vid4 = df.add_vertex()
    pid41 = df.add_in_port(vid4, "in")

    df.connect(pid11, pid31)
    df.connect(pid21, pid32)
    df.connect(pid33, pid41)
    df.connect(pid51, pid32)

    dfs = DataflowState(df)

    for pid in df.ports():
        assert_raises(KeyError, lambda: dfs.get_data(pid))

    for i, pid in enumerate([pid11, pid21, pid33, pid51]):
        dfs.set_data(pid, i)

    assert_raises(KeyError, lambda: dfs.get_data(pid10))

    dfs.set_data(pid10, 'a')
    assert dfs.get_data(pid10) == 'a'

    for i, pid in enumerate([pid11, pid21, pid33, pid51]):
        assert dfs.get_data(pid) == i

    assert dfs.get_data(pid31) == 0
    assert tuple(dfs.get_data(pid32)) == (1, 3)
    assert dfs.get_data(pid41) == 2

    n2 = Node()
    df.set_actor(vid2, n2)

    assert tuple(dfs.get_data(pid32)) == (1, 3)

    n5 = Node()
    df.set_actor(vid5, n5)
    assert tuple(dfs.get_data(pid32)) == (1, 3)

    n2.get_ad_hoc_dict().set_metadata('position', [10, 0])
    n5.get_ad_hoc_dict().set_metadata('position', [0, 0])
    assert tuple(dfs.get_data(pid32)) == (3, 1)
Exemplo n.º 5
0
def get_dataflow():
    df = DataFlow()
    vid1 = df.add_vertex()
    pid10 = df.add_in_port(vid1, "in")
    pid11 = df.add_out_port(vid1, "out")
    vid2 = df.add_vertex()
    pid21 = df.add_out_port(vid2, "out")

    vid3 = df.add_vertex()
    pid31 = df.add_in_port(vid3, "in1")
    pid32 = df.add_in_port(vid3, "in2")
    pid33 = df.add_out_port(vid3, "res")

    vid4 = df.add_vertex()
    pid41 = df.add_in_port(vid4, "in")
    pid42 = df.add_out_port(vid4, "out")

    df.connect(pid11, pid31)
    df.connect(pid21, pid32)
    df.connect(pid33, pid41)

    df.set_actor(vid1, FuncNode({}, {}, int))
    df.set_actor(vid2, FuncNode({}, {}, fixed_function))
    df.set_actor(vid3, FuncNode({}, {}, operator.add))
    df.set_actor(vid4, FuncNode({}, {}, print))

    return df, (pid10, pid42)
Exemplo n.º 6
0
def get_dataflow():
    df = DataFlow()
    vid1 = df.add_vertex()
    pid10 = df.add_in_port(vid1, "in")
    pid11 = df.add_out_port(vid1, "out")
    vid2 = df.add_vertex()
    pid21 = df.add_out_port(vid2, "out")

    vid3 = df.add_vertex()
    pid31 = df.add_in_port(vid3, "in1")
    pid32 = df.add_in_port(vid3, "in2")
    pid33 = df.add_out_port(vid3, "res")

    vid4 = df.add_vertex()
    pid41 = df.add_in_port(vid4, "in")
    pid42 = df.add_out_port(vid4, "out")

    df.connect(pid11, pid31)
    df.connect(pid21, pid32)
    df.connect(pid33, pid41)

    df.set_actor(vid1, FuncNode({}, {}, int))
    df.set_actor(vid2, FuncNode({}, {}, fixed_function))
    df.set_actor(vid3, FuncNode({}, {}, operator.add))
    df.set_actor(vid4, FuncNode({}, {}, print_func))

    return df, (pid10, pid42)
Exemplo n.º 7
0
def test_dataflow_evaluation_single_input_single_output():
    df = DataFlow()
    vid = df.add_vertex()
    pid0 = df.add_in_port(vid, "in")
    pid1 = df.add_in_port(vid, "in")
    pid2 = df.add_out_port(vid, "out")

    df.set_actor(vid, FuncNode({}, {}, operator.add))

    dfs = DataflowState(df)
    env = 0
    algo = BruteEvaluation(df)

    dfs.set_data(pid0, 1)
    dfs.set_data(pid1, 2)
    algo.eval(env, dfs, vid)

    assert dfs.get_data(pid0) == 1
    assert dfs.get_data(pid1) == 2
    assert dfs.get_data(pid2) == 3
Exemplo n.º 8
0
def test_dataflow_evaluation_single_input_single_output():
    df = DataFlow()
    vid = df.add_vertex()
    pid0 = df.add_in_port(vid, "in")
    pid1 = df.add_in_port(vid, "in")
    pid2 = df.add_out_port(vid, "out")

    df.set_actor(vid, FuncNode({}, {}, operator.add))

    dfs = DataflowState(df)
    env = 0
    algo = BruteEvaluation(df)

    dfs.set_data(pid0, 1)
    dfs.set_data(pid1, 2)
    algo.eval(env, dfs, vid)

    assert dfs.get_data(pid0) == 1
    assert dfs.get_data(pid1) == 2
    assert dfs.get_data(pid2) == 3
Exemplo n.º 9
0
def test_dataflow_evaluation_single_input_no_output():
    df = DataFlow()
    vid = df.add_vertex()
    pid0 = df.add_in_port(vid, "in")

    df.set_actor(vid, FuncNode({}, {}, print))

    dfs = DataflowState(df)
    env = 0
    algo = BruteEvaluation(df)

    dfs.set_data(pid0, 1)
    algo.eval(env, dfs, vid)

    assert dfs.get_data(pid0) == 1

    df.set_actor(vid, FuncNode({}, {}, int))
    dfs.reinit()
    algo.clear()

    assert_raises(UserWarning, lambda: algo.eval(env, dfs, vid))
Exemplo n.º 10
0
def test_dataflow_evaluation_single_input_no_output():
    df = DataFlow()
    vid = df.add_vertex()
    pid0 = df.add_in_port(vid, "in")

    df.set_actor(vid, FuncNode({}, {}, print_func))

    dfs = DataflowState(df)
    env = 0
    algo = BruteEvaluation(df)

    dfs.set_data(pid0, 1)
    algo.eval(env, dfs, vid)

    assert dfs.get_data(pid0) == 1

    df.set_actor(vid, FuncNode({}, {}, int))
    dfs.reinit()
    algo.clear()

    assert_raises(UserWarning, lambda: algo.eval(env, dfs, vid))
Exemplo n.º 11
0
def test_dataflow_evaluation_eval_no_vid2():
    df = DataFlow()
    vid0 = df.add_vertex()
    pid0 = df.add_in_port(vid0, "in")
    df.add_out_port(vid0, "out")
    vid1 = df.add_vertex()
    pid1 = df.add_in_port(vid1, "in")
    df.add_out_port(vid1, "out")

    df.set_actor(vid0, FuncNode({}, {}, int))
    df.set_actor(vid1, FuncNode({}, {}, int))

    dfs = DataflowState(df)
    env = 0
    algo = BruteEvaluation(df)

    dfs.set_data(pid0, 0)
    dfs.set_data(pid1, 1)

    assert not dfs.is_valid()
    algo.eval(env, dfs)
    assert dfs.is_valid()
Exemplo n.º 12
0
def test_dataflow_evaluation_eval_no_vid2():
    df = DataFlow()
    vid0 = df.add_vertex()
    pid0 = df.add_in_port(vid0, "in")
    df.add_out_port(vid0, "out")
    vid1 = df.add_vertex()
    pid1 = df.add_in_port(vid1, "in")
    df.add_out_port(vid1, "out")

    df.set_actor(vid0, FuncNode({}, {}, int))
    df.set_actor(vid1, FuncNode({}, {}, int))

    dfs = DataflowState(df)
    env = 0
    algo = BruteEvaluation(df)

    dfs.set_data(pid0, 0)
    dfs.set_data(pid1, 1)

    assert not dfs.is_valid()
    algo.eval(env, dfs)
    assert dfs.is_valid()