3 class TestEvalYFX(unittest.TestCase):
6 self.__buildScheme(fileName)
8 efx=evalyfx.YACSEvalYFX.BuildFromFile(fileName)
9 inps=efx.getFreeInputPorts()
10 self.assertEqual([elt.getName() for elt in inps],['a','b','e'])
11 self.assertEqual([elt.hasDefaultValueDefined() for elt in inps],[False,True,True])
12 self.assertAlmostEqual(inps[1].getDefaultValueDefined(),1.3,12)
13 self.assertAlmostEqual(inps[2].getDefaultValueDefined(),2.5,12)
15 inps[0].setDefaultValue(3.4)
16 self.assertEqual([elt.hasDefaultValueDefined() for elt in inps],[True,True,True])
17 self.assertAlmostEqual(inps[0].getDefaultValueDefined(),3.4,12)
19 inps[0].setDefaultValue(None)
20 self.assertEqual([elt.hasDefaultValueDefined() for elt in inps],[False,True,True])
21 inps[2].setDefaultValue(2.7)
22 self.assertAlmostEqual(inps[2].getDefaultValueDefined(),2.7,12)
23 inps[2].setDefaultValue(None)
24 self.assertEqual([elt.hasDefaultValueDefined() for elt in inps],[False,True,False])
25 self.assertRaises(ValueError,inps[0].getDefaultValueDefined)
26 self.assertAlmostEqual(inps[1].getDefaultValueDefined(),1.3,12)
27 self.assertRaises(ValueError,inps[2].getDefaultValueDefined)
29 outps=efx.getFreeOutputPorts()
30 self.assertEqual([elt.getName() for elt in outps],['c','f','g'])
31 # prepare for execution
32 inps[0].setDefaultValue(1.1)
33 inps[1].setSequenceOfValuesToEval([10.1,10.2,10.3])
34 self.assertRaises(ValueError,efx.lockPortsForEvaluation,[inps[1]],[outps[0],outps[2]]) # because e is not set
35 a=inps[2].hasSequenceOfValuesToEval()
36 self.assertTrue(not a)
37 inps[2].setSequenceOfValuesToEval([20.1,20.2,30.3,40.4])
38 a=inps[2].hasSequenceOfValuesToEval()
40 efx.lockPortsForEvaluation([inps[1],inps[2]],[outps[0],outps[2]])
41 inps[2].setSequenceOfValuesToEval([20.1,20.2,30.3])
43 g=efx.getUndergroundGeneratedGraph()
44 g.saveSchema("toto.xml")
49 def __buildScheme(self,fname):
52 SALOMERuntime.RuntimeSALOME.setRuntime()
53 r=SALOMERuntime.getSALOMERuntime()
55 td=p.createType("double","double")
57 cont=p.createContainer("zeCont","Salome")
59 n0=r.createFuncNode("Salome","node0")
63 n0.setScript("""def func0(a,b):
66 n0.setExecutionMode("remote")
67 a=n0.edAddInputPort("a",td)
68 b=n0.edAddInputPort("b",td) ; b.edInitPy(1.3)
69 c=n0.edAddOutputPort("c",td)
71 n1=r.createFuncNode("Salome","node1")
75 n1.setScript("""def func1(a,b):
78 n1.setExecutionMode("remote")
79 d=n1.edAddInputPort("d",td)
80 e=n1.edAddInputPort("e",td) ; e.edInitPy(2.5) # agy : useless but for test
81 f=n1.edAddOutputPort("f",td)
82 g=n1.edAddOutputPort("g",td)
91 if __name__ == '__main__':