예제 #1
0
파일: test.py 프로젝트: breuleux/colonel
def test_abstract_agent():

    agent = standard.make_agent("div", lib.Div, ['a', 'b'], 'out', 'error')

    # Correct execution
    results = xgate(standard.abstract_agent,
                    dict(gate = agent, select = [10, 2], in_command = "get"),
                    ['out', 'error'])
    print(results)
    assert results['out'] == 5.0
    assert results['error'] == VOID

    # Error in the gate
    results = xgate(standard.abstract_agent,
                    dict(gate = agent, select = [10, 0], in_command = "get"),
                    ['out', 'error'])
    assert results['out'] == VOID
    assert isinstance(results['error'], ZeroDivisionError)

    # Wrong number of arguments
    results = xgate(standard.abstract_agent,
                    dict(gate = agent, select = [10, 20, 30], in_command = "get"),
                    ['out', 'error'])
    assert results['out'] == VOID
    assert isinstance(results['error'], MPVMException['explode/wrong_input_length'])

    # Wrong command
    results = xgate(standard.abstract_agent,
                    dict(gate = agent, select = [10, 20], in_command = ["set", 13]),
                    ['out', 'error'])
    assert results['out'] == VOID
    assert isinstance(results['error'], MPVMException['standard/unknown_command'])
예제 #2
0
파일: test.py 프로젝트: breuleux/colonel
def test_standard_circuit():
    # Test a simple network of agents, using Join to create lists of
    # arguments.

    adder = standard.make_agent("add", lib.Add, ['a', 'b'], 'out', 'error')

    # out = (a + b) + c
    F = CircuitSpec("F",
                ['a', 'b', 'c', 'out'],
                dict(add1 = adder,
                     add2 = adder,
                     join1 = lib.Join(2),
                     join2 = lib.Join(2),
                     ctget2 = lib.Constant("get"),
                     ctget1 = lib.Constant("get")),
                [('a', 'join1.i0'),
                 ('b', 'join1.i1'),
                 ('join1.out', 'add1.select'),
                 ('ctget1.out', 'add1.in_command'),
                 ('add1.out', 'join2.i0'),
                 ('c', 'join2.i1'),
                 ('join2.out', 'add2.select'),
                 ('ctget2.out', 'add2.in_command'),
                 ('add2.out', 'out')])

    results = xgate(F, dict(a = 10, b = 83, c = 7),
                    ['out'])
    print(results)
    assert results['out'] == 100.0