+ tolerance =0.1
+ if len(valsref) > 6:
+ tolerance = valsref[6]
+ if abs(vals[0] - valsref[0]) > 10*tolerance \
+ or abs(vals[1] - valsref[1]) > 10*tolerance \
+ or abs(vals[2] - valsref[2]) > tolerance \
+ or abs(vals[3] - valsref[3]) > tolerance \
+ or abs(vals[4] - valsref[4]) > 10*tolerance \
+ or abs(vals[5] - valsref[5]) > 10*tolerance :
+ print nomreg
+ print "value: ", vals
+ print "reference: ", valsref, "tolerance for mean, std dev: ", tolerance, "and ", 10*tolerance, "for other values"
+ raise ValueError("z interpolation error")
+ else:
+ print nomreg
+ print "value: ", vals
+ print "reference: ", valsref, "tolerance for mean, std dev: ", tolerance, "and ", 10*tolerance, "for other values: OK"
+
+
+import MEDLoader
+from MEDLoader import MEDCouplingFieldDouble, ON_NODES, DataArrayDouble, MEDFileMesh
+import os, time
+
+def controlTelemacResult(aMedFile, refs):
+ """
+ Check if the result med file exist and contains result fields
+ """
+ print aMedFile
+ for i in range(10):
+ time.sleep(3)
+ print 'waiting result...'
+ if os.path.exists(aMedFile):
+ break
+ time.sleep(3)
+ try:
+ MEDLoader.CheckFileForRead(aMedFile)
+ except:
+ raise ValueError("problem while reading Telemac result med file")
+ names = MEDLoader.GetMeshNames(aMedFile)
+ infos = MEDLoader.GetUMeshGlobalInfo(aMedFile, names[0])
+ stats = {}
+ stats['nbTriangles'] = infos[0][0][0][1]
+ stats['nbNodes'] = infos[3]
+ stats['fieldNames'] = MEDLoader.GetNodeFieldNamesOnMesh(aMedFile, names[0])
+ stats['iterations'] = MEDLoader.GetNodeFieldIterations(aMedFile, names[0], 'SURFACE LIBRE')
+ for nomreg, valsref in refs.iteritems():
+ vals = stats[nomreg]
+ if vals != valsref: