Exemplo n.º 1
0
def test_parse_code():
    code = '''
"""
input = a,b
output = c
"""
c = a+b
'''
    from openalea.core.model import PythonModel

    m1 = PythonModel(name='m1', code=code)
    m2 = PythonModel(name='m2')

    m2.code = code

    m3 = PythonModel(name='m3')
    m3.set_code(code)

    assert m1.run(a=1, b=2) == 3
    assert m2.run(a=2, b=3) == 5
    assert m3.run(a=3, b=4) == 7

    m1 = PythonModel(name='ModelWithoutDoc')
    assert m1.get_documentation() == ''

    m1 = PythonModel(name='ModelWithDoc', code=code)
    assert m1.get_documentation()
Exemplo n.º 2
0
def test_parse_code():
    code = '''
"""
input = a,b
output = c
"""
c = a+b
'''
    from openalea.core.model import PythonModel

    m1 = PythonModel(name='m1', code=code)
    m2 = PythonModel(name='m2')

    m2.code = code

    m3 = PythonModel(name='m3')
    m3.set_code(code)

    assert m1.run(a=1, b=2) == 3
    assert m2.run(a=2, b=3) == 5
    assert m3.run(a=3, b=4) == 7

    m1 = PythonModel(name='ModelWithoutDoc')
    assert m1.get_documentation() == ''

    m1 = PythonModel(name='ModelWithDoc', code=code)
    assert m1.get_documentation()
Exemplo n.º 3
0
def test_run_tuple():
    model_src = '''"""input = x, y=(1,2,3)
output = result"""
result = 0
for val in x:
    result += val
for val in y:
    result += val
'''
    model = PythonModel(code=model_src)
    assert model is not None
    assert model.outputs == []
    result = model([4])
    assert model.outputs == 10
    assert result == 10

    result = model.run([5])
    assert result == 11

    result = model.run([1, 1], [1, 1])
    assert result == 4

    result = model([2, 2], [2, 2])
    assert result == 8

    result = model.run((5, ))
    assert result == 11

    result = model.run((1, 1), (1, 1))
    assert result == 4

    result = model((2, 2), [2, 2])
    assert result == 8
Exemplo n.º 4
0
def test_nested_functions_special_functions():
    model_src = '''
"""
output = a
"""

def step():
    def f0():
        def f1():
          return 10
        return f1()
    a = a+f0()

a = 0

'''
    model = PythonModel(code=model_src)

    result = model.init()
    assert result == 0

    result = model.init()
    result = model.step()
    assert result == 10

    result = model.run(nstep=10)
    assert result == 100
Exemplo n.º 5
0
def test_run():
    model_src = '''"""input = x=1, y=2
output = result"""
result = x + y
'''
    model = PythonModel(code=model_src)
    assert model is not None
    assert model.outputs == []
    result = model()
    assert model.outputs == 3
    assert result == 3

    result = model.run(4)
    assert result == 6

    result = model.run(1, 1)
    assert result == 2

    result = model(5)
    assert result == 7

    result = model(3, 5)
    assert result == 8
Exemplo n.º 6
0
def test_run_list():
    model_src = '''"""input = x, y=[1,2,3]
output = result"""
result = 0
for val in x:
    result += val
for val in y:
    result += val
'''
    model = PythonModel(code=model_src)
    assert model is not None
    assert model.outputs == []
    result = model([4])
    assert model.outputs == 10
    assert result == 10

    result = model.run([5])
    assert result == 11

    result = model.run([1, 1], [1, 1])
    assert result == 4

    result = model([2, 2], [2, 2])
    assert result == 8