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()
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()
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
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
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
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