Ejemplo 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()
Ejemplo 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()
Ejemplo n.º 3
0
def test_model_inputs_info():
    model_src = '''"""

input = x:int=4, y:float=3.14, z, debug:bool
output = success

beautifull doc
"""

print "ok"
'''
    model = PythonModel(code=model_src)
    assert len(model.inputs_info) == 4
    assert len(model.outputs_info) == 1
    assert model.inputs_info[0].name == "x"
    assert model.inputs_info[0].default == "4"
    # assert model.inputs_info[0].interface == "int"
    assert model.inputs_info[1].name == "y"
    assert model.inputs_info[1].default == "3.14"
    # assert model.inputs_info[1].interface == "float"
    assert model.inputs_info[2].name == "z"
    assert model.inputs_info[3].name == "debug"
    # assert model.inputs_info[3].interface == "bool"
    assert model.outputs_info[0].name == "success"

    assert model.get_documentation() == """input = x:int=4, y:float=3.14, z, debug:bool
output = success

beautifull doc"""

    model_src2 = '''"""

input = x=[1,2,3], y=(1,2), z=(1,), a=4, b
output = c, d, e:bool

beautifull doc
"""

print "ok"
'''
    model2 = PythonModel(code=model_src2)
    assert len(model2.inputs_info) == 5
    assert len(model2.outputs_info) == 3
    assert model2.inputs_info[0].name == "x"
    assert model2.inputs_info[0].default == "[1,2,3]"
    assert model2.inputs_info[1].name == "y"
    assert model2.inputs_info[1].default == "(1,2)"
    assert model2.inputs_info[2].name == "z"
    assert model2.inputs_info[2].default == "(1,)"
    assert model2.inputs_info[3].name == "a"
    assert model2.inputs_info[3].default == "4"
    assert model2.inputs_info[4].name == "b"
    assert model2.outputs_info[0].name == "c"
    assert model2.outputs_info[1].name == "d"
    assert model2.outputs_info[2].name == "e"
    # assert model2.outputs_info[2].interface == "bool"

    assert model2.get_documentation() == """input = x=[1,2,3], y=(1,2), z=(1,), a=4, b
Ejemplo n.º 4
0
def test_model_get_documentation():
    model_src = '''"""
This is the doc of my model
"""

print "ok"
result = 42


"""
ok
"""
'''
    model = PythonModel(code=model_src)
    assert model.get_documentation() == "This is the doc of my model"
Ejemplo n.º 5
0
def test_magic():
    model_src = '''"""

input = x:int=4, y:float=3.14, z, debug:bool
output = success

beautifull doc
"""

%pylab inline

print "ok"
'''
    model = PythonModel(code=model_src)
    assert model.repr_code() == model_src
    assert model.get_documentation() is not None
    assert len(model.inputs_info) == 4
    assert len(model.outputs_info) == 1