def preProcess(self): """ PreProcess of the execution test: download a set of images from http://www.edna-site.org and remove any existing output file """ EDTestCasePluginExecute.preProcess(self) #EDVerbose.DEBUG(str([ "bioSaxsIntegrated%02i.edf" % i for i in range(1, 11) ] + ["bioSaxsAveraged.dat", "bioSaxsAveraged.edf"])) self.loadTestImage([ "bioSaxsIntegrated%02i.edf" % i for i in range(1, 11) ] + ["bioSaxsAveraged.dat", "bioSaxsAveraged.edf"]) strExpectedOutput = self.readAndParseFile (self.getReferenceDataOutputFile()) EDVerbose.DEBUG("strExpectedOutput:" + strExpectedOutput) xsDataResultReference = XSDataResultBioSaxsAveragev1_0.parseString(strExpectedOutput) self.averagedCurve = xsDataResultReference.getAveragedCurve().getPath().value EDVerbose.DEBUG("Output file is %s" % self.averagedCurve) if not os.path.isdir(os.path.dirname(self.averagedCurve)): os.makedirs(os.path.dirname(self.averagedCurve)) if os.path.isfile(self.averagedCurve): EDVerbose.DEBUG(" Output Averaged Curve file exists %s, I will remove it" % self.averagedCurve) os.remove(self.averagedCurve) self.AveragedImage = xsDataResultReference.getAveragedImage().getPath().value EDVerbose.DEBUG("Output Integrated Image file is %s" % self.AveragedImage) if not os.path.isdir(os.path.dirname(self.AveragedImage)): os.makedirs(os.path.dirname(self.AveragedImage)) if os.path.isfile(self.AveragedImage): EDVerbose.DEBUG(" Output Integrated Image file exists %s, I will remove it" % self.AveragedImage) os.remove(self.AveragedImage)
def testExecute(self): """ """ self.run() plugin = self.getPlugin() ################################################################################ # Compare XSDataResults ################################################################################ strExpectedOutput = self.readAndParseFile (self.getReferenceDataOutputFile()) # strObtainedOutput = self.readAndParseFile (self.m_edObtainedOutputDataFile) EDVerbose.DEBUG("Checking obtained result...") xsDataResultReference = XSDataResultBioSaxsAveragev1_0.parseString(strExpectedOutput) xsDataResultObtained = plugin.getDataOutput() EDAssert.strAlmostEqual(xsDataResultReference.marshal(), xsDataResultObtained.marshal(), "XSDataResult output are the same", _strExcluded="bioSaxs") ################################################################################ # Compare spectrum ascii Files ################################################################################ outputData = open(xsDataResultObtained.getAveragedCurve().getPath().value, "rb").read() referenceData = open(os.path.join(self.getTestsDataImagesHome(), "bioSaxsAveraged.dat"), "rb").read() EDAssert.strAlmostEqual(referenceData, outputData, _strComment="3-column ascii spectra files spectra are the same", _fRelError=0.1, _fAbsError=0.1, _strExcluded="bioSaxs") ################################################################################ # Compare images ################################################################################ edfObt = EdfFile.EdfFile(xsDataResultObtained.getAveragedImage().getPath().value) edfRef = EdfFile.EdfFile(os.path.join(self.getTestsDataImagesHome(), "bioSaxsAveraged.edf")) outputData = edfObt.GetData(0) referenceData = edfRef.GetData(0) EDAssert.arraySimilar(outputData, referenceData , _fAbsMaxDelta=0.1, _fScaledMaxDelta=0.05, _strComment="Averaged images are the same") headerRef = edfRef.GetHeader(0) headerObt = edfObt.GetHeader(0) keysRef = headerRef.keys() keysObt = headerObt.keys() keysRef.sort() keysObt.sort() for key in ["HeaderID", "Image", 'EDF_BinarySize', "EDF_DataBlockID", "EDF_HeaderSize", "filename", "RasterOrientation", "History-1", "History-1~1" ]: if key in keysObt: keysObt.remove(key) if key in keysRef: keysRef.remove(key) EDAssert.equal(keysRef, keysObt, _strComment="Same keys in the header dictionary for Corrected Images") for key in keysRef: EDAssert.strAlmostEqual(headerRef[key], headerObt[key], _strComment="header value in Averaged %s are the same" % key, _strExcluded="bioSaxs")