def test_global_and_control_it(): from openalea.core.service.control import new_control m1 = Model('IterateIOFullyDefined') m1.inputs_info = [InputObj('a=0')] m1.outputs_info = [OutputObj('a')] m1.set_step_code('a+=1') m2 = Model('IterateIOWithoutDefault') m2.inputs_info = [InputObj('a')] m2.outputs_info = [OutputObj('a')] m2.set_step_code('a+=1') m3 = Model('IterateNoIO') m3.outputs_info = [OutputObj('a')] m3.set_step_code('a+=1') m4 = Model('IterateNoIO') m4.set_step_code('a+=1') ms1 = Model('IterateCheckModelCall') ms1.outputs_info = [OutputObj('c')] register_model(m1) register_model(m2) register_model(m3) new_control('a', 'IInt', 10) a = 123456789 ns = {} ns.update(control_namespace()) ns['Model'] = project.get_runnable_model nstep = 3 ms1.set_step_code('m = Model("IterateIOFullyDefined")\nc = m.run()') assert ms1.run(namespace=ns, nstep=nstep) == 1 ms1.set_step_code('m = Model("IterateIOFullyDefined")\nc = m.run(nstep=3)') assert ms1.run(namespace=ns, nstep=nstep) == (0 + 3) assert m1.run(nstep=nstep) == (0 + nstep) assert m2.run(1, nstep=nstep) == (1 + nstep) assert m2.run(a=2, nstep=nstep) == (2 + nstep) # a, b not defined, use default a=0, b=0. Do not use global a because a is not a free variable assert m1.run(namespace=ns, nstep=nstep) == (0 + nstep) # m2.run(namespace=ns) # FAIL, b not defined # m3.run(namespace=ns) # FAIL, b not defined assert m1.run(1, namespace=ns, nstep=nstep) == (1 + nstep) assert m2.run(2, namespace=ns, nstep=nstep) == (2 + nstep) assert m2.run(a=10, namespace=ns, nstep=nstep) == (10 + nstep) assert m3.run(a=10, namespace=ns, nstep=nstep) == (10 + nstep) clear_controls()
def test_visualea_io(): factory = composite_node() model = ModelFactory(mimetype='text/x-visualea', name='test_workflow_io') model.set_code(factory) controller = paradigm_controller(model) new_control('a', 'IInt', 1) new_control('b', 'IInt', 2) interp.user_ns['c'] = 3 assert controller.run() == [1, 2, 3, 0] assert controller.run(10) == [10, 2, 3, 0] assert controller.run(d=5) == [1, 2, 3, 5]
def sample_controls(): cm = ControlManager() # cc1 = ControlContainer() # cc2 = ControlContainer() cmw = ControlManagerWidget() # cmw.model.set_manager(cc2) cp = ControlPanel() percent = get_interface('IInt', min=0, max=100) c = new_control('i', percent) # cc2.add_control(c) c = new_control('f', 'IFloat') cm.add_control(c)
def test_io_no_default(): from openalea.core.service.control import new_control, clear_controls clear_controls() sgfactory = composite_node(None, None) model = VisualeaModel() model.set_code(sgfactory) a = 100 b = 200 assert model(namespace=locals()) == 300 assert model(**locals()) == 300 new_control('a', 'IInt', 5) assert model(a=1, b=20, namespace=locals()) == 21 assert model(b=20, namespace=locals()) == 25
def test_io_no_default(): from openalea.core.service.control import new_control, clear_controls clear_controls() sgfactory = composite_node(None, None) model = VisualeaModel() model.set_code(sgfactory) a = 100 b = 200 assert model(namespace=locals()) == 300 assert model(**locals()) == 300 new_control("a", "IInt", 5) assert model(a=1, b=20, namespace=locals()) == 21 assert model(b=20, namespace=locals()) == 25
def test_all_interfaces(): # Fill al for iname in interface_names(): print iname for i, editor in enumerate(qt_control.qt_widget_plugins(iname)): print ' -', editor.name name = editor.name.replace('Plugin', 'P.').replace('Widget', 'W.') name = '%s_%s' % (iname, name) c = new_control(name, iname)
def test_global_and_control(): m1 = Model('IOFullyDefined') m1.inputs_info = [InputObj('a=0'), InputObj('b=0')] m1.outputs_info = [OutputObj('c')] m1.set_step_code('c=a+b') m2 = Model('IOWithoutDefault') m2.inputs_info = [InputObj('a'), InputObj('b')] m2.outputs_info = [OutputObj('c')] m2.set_step_code('c=a+b') m3 = Model('NoIO') m3.outputs_info = [OutputObj('c')] m3.set_step_code('c=a+b') ms1 = Model('CheckModelCall') ms1.outputs_info = [OutputObj('c')] register_model(m1) register_model(m2) register_model(m3) from openalea.core.service.control import new_control new_control('a', 'IInt', 10) a = 123456789 ns = namespace() ms1.set_step_code('m = Model("IOFullyDefined")\nc = m.run()') assert ms1.run(namespace=ns) == 0 ms1.set_step_code('m = Model("IOFullyDefined")\na=44\nc = m.run(b=22)') assert ms1.run(namespace=ns) == 22 ms1.set_step_code('m = Model("IOFullyDefined")\na=44\nc = m.run(a=11, b=22)') assert ms1.run(namespace=ns) == 33 ms1.set_step_code('m = Model("IOFullyDefined")\na=44\nc = m.run(a)') assert ms1.run(namespace=ns) == 44 assert m1.run() == 0 # 0 assert m2.run(1, 2) == 3 # 3 assert m2.run(2, b=3) == 5 # 5 assert m2.run(a=3, b=4) == 7 # 7 # a, b not defined, use default a=0, b=0. Do not use global a because a is not a free variable assert m1.run(namespace=ns) == 0 # m2.run(namespace=ns) # FAIL, b not defined # m3.run(namespace=ns) # FAIL, b not defined assert m1.run(1, 2, namespace=ns) == 3 # 3 assert m2.run(2, b=3, namespace=ns) == 5 # 5 assert m2.run(a=3, b=4, namespace=ns) == 7 # 7 assert m3.run(a=3, b=4, namespace=ns) == 7 # 7 b = 20 ns = locals() ns.update(namespace()) ms1.set_step_code('m = Model("IOWithoutDefault")\nc = m.run()') assert ms1.run(namespace=ns) == 30 # 30 free variables a, b. use global var a, b ms1.set_step_code('m = Model("IOWithoutDefault")\na=456\nc = m.run(a=11, b=22)') assert ms1.run(namespace=ns) == 33 # 33 ms1.set_step_code('m = Model("IOWithoutDefault")\nc = m.run(b=22)') assert ms1.run(namespace=ns) == 32 # 32 a use control value, b set explicitly ms1.set_step_code('m = Model("IOWithoutDefault")\na=33\nc = m.run(b=22)') assert ms1.run(namespace=ns) == 55 # 55 a use parent model value, b set explicitly ms1.set_step_code('m = Model("IOWithoutDefault")\na=44\nc = m.run(a)') assert ms1.run(namespace=ns) == 64 # 64 assert m1.run() == 0 # 0 assert m2.run(1, 2) == 3 # 3 assert m2.run(2, b=3) == 5 # 5 assert m2.run(a=3, b=4) == 7 # 7 assert m1.run(namespace=ns) == 0 # Do not use global a or b because a and b are not free variables assert m2.run(namespace=ns) == 30 # 30 assert m3.run(namespace=ns) == 30 # 30 assert m1.run(1, 2, namespace=ns) == 3 # 3 assert m2.run(2, b=3, namespace=ns) == 5 # 5 assert m2.run(a=3, b=4, namespace=ns) == 7 # 7 assert m3.run(a=3, b=4, namespace=ns) == 7 # 7 clear_controls()
from openalea.core.service.control import new_control from openalea.core.interface import IInt minterface = IInt(min=1, max=30, step=1) mcontrol = new_control(u'step',minterface,15) from openalea.core.interface import IStr minterface = IStr() mcontrol = new_control(u'x_label',minterface,u'$x^2$') minterface = IInt(min=1, max=50, step=1) mcontrol = new_control(u'nb_step',minterface,10) minterface = IStr() mcontrol = new_control(u'y_label',minterface,u'y_label') minterface = IInt(min=1, max=10, step=1) mcontrol = new_control(u'a',minterface,2) minterface = IInt(min=1, max=100, step=10) mcontrol = new_control(u'b',minterface,20)
def test_global_and_control(): m1 = Model('IOFullyDefined') m1.inputs_info = [InputObj('a=0'), InputObj('b=0')] m1.outputs_info = [OutputObj('c')] m1.set_step_code('c=a+b') m2 = Model('IOWithoutDefault') m2.inputs_info = [InputObj('a'), InputObj('b')] m2.outputs_info = [OutputObj('c')] m2.set_step_code('c=a+b') m3 = Model('NoIO') m3.outputs_info = [OutputObj('c')] m3.set_step_code('c=a+b') ms1 = Model('CheckModelCall') ms1.outputs_info = [OutputObj('c')] register_model(m1) register_model(m2) register_model(m3) from openalea.core.service.control import new_control new_control('a', 'IInt', 10) a = 123456789 ns = {} ns.update(control_namespace()) ns['Model'] = project.get_runnable_model ms1.set_step_code('m = Model("IOFullyDefined")\nc = m.run()') assert ms1.run(namespace=ns) == 0 ms1.set_step_code('m = Model("IOFullyDefined")\na=44\nc = m.run(b=22)') assert ms1.run(namespace=ns) == 22 ms1.set_step_code( 'm = Model("IOFullyDefined")\na=44\nc = m.run(a=11, b=22)') assert ms1.run(namespace=ns) == 33 ms1.set_step_code('m = Model("IOFullyDefined")\na=44\nc = m.run(a)') assert ms1.run(namespace=ns) == 44 assert m1.run() == 0 # 0 assert m2.run(1, 2) == 3 # 3 assert m2.run(2, b=3) == 5 # 5 assert m2.run(a=3, b=4) == 7 # 7 # a, b not defined, use default a=0, b=0. Do not use global a because a is not a free variable assert m1.run(namespace=ns) == 0 # m2.run(namespace=ns) # FAIL, b not defined # m3.run(namespace=ns) # FAIL, b not defined assert m1.run(1, 2, namespace=ns) == 3 # 3 assert m2.run(2, b=3, namespace=ns) == 5 # 5 assert m2.run(a=3, b=4, namespace=ns) == 7 # 7 assert m3.run(a=3, b=4, namespace=ns) == 7 # 7 b = 20 ns = locals() ns.update(control_namespace()) ns['Model'] = project.get_runnable_model ms1.set_step_code('m = Model("IOWithoutDefault")\nc = m.run()') assert ms1.run( namespace=ns) == 30 # 30 free variables a, b. use global var a, b ms1.set_step_code( 'm = Model("IOWithoutDefault")\na=456\nc = m.run(a=11, b=22)') assert ms1.run(namespace=ns) == 33 # 33 ms1.set_step_code('m = Model("IOWithoutDefault")\nc = m.run(b=22)') assert ms1.run( namespace=ns) == 32 # 32 a use control value, b set explicitly ms1.set_step_code('m = Model("IOWithoutDefault")\na=33\nc = m.run(b=22)') assert ms1.run( namespace=ns) == 55 # 55 a use parent model value, b set explicitly ms1.set_step_code('m = Model("IOWithoutDefault")\na=44\nc = m.run(a)') assert ms1.run(namespace=ns) == 64 # 64 assert m1.run() == 0 # 0 assert m2.run(1, 2) == 3 # 3 assert m2.run(2, b=3) == 5 # 5 assert m2.run(a=3, b=4) == 7 # 7 assert m1.run( namespace=ns ) == 0 # Do not use global a or b because a and b are not free variables assert m2.run(namespace=ns) == 30 # 30 assert m3.run(namespace=ns) == 30 # 30 assert m1.run(1, 2, namespace=ns) == 3 # 3 assert m2.run(2, b=3, namespace=ns) == 5 # 5 assert m2.run(a=3, b=4, namespace=ns) == 7 # 7 assert m3.run(a=3, b=4, namespace=ns) == 7 # 7 clear_controls()
from openalea.core.service.control import new_control from openalea.core.interface import IInt minterface = IInt(min=1, max=30, step=1) mcontrol = new_control(u'step', minterface, 15) from openalea.core.interface import IStr minterface = IStr() mcontrol = new_control(u'x_label', minterface, u'$x^2$') minterface = IInt(min=1, max=50, step=1) mcontrol = new_control(u'nb_step', minterface, 10) minterface = IStr() mcontrol = new_control(u'y_label', minterface, u'y_label') minterface = IInt(min=1, max=10, step=1) mcontrol = new_control(u'a', minterface, 2) minterface = IInt(min=1, max=100, step=10) mcontrol = new_control(u'b', minterface, 20)