def mergeAtomicComposition(self, _xsDataAtomicComposition1, _xsDataAtomicComposition2): EDFactoryPluginStatic.loadModule("XSDataRaddosev10") mergedAtomicComposition = XSDataAtomicComposition() dictionary = {} for atom in _xsDataAtomicComposition2.getAtom(): dictionary[ atom.getSymbol().getValue()] = atom.getNumberOf().getValue() for atom1 in _xsDataAtomicComposition1.getAtom(): symbol = atom1.getSymbol().getValue() if (self.exists(symbol, _xsDataAtomicComposition2) == True): mergedAtom = XSDataAtom() mergedAtom.setNumberOf( XSDataDouble(atom1.getNumberOf().getValue() + dictionary[symbol])) mergedAtom.setSymbol(XSDataString(symbol)) mergedAtomicComposition.addAtom(mergedAtom) else: mergedAtomicComposition.addAtom(atom1) for atom2 in _xsDataAtomicComposition2.getAtom(): symbol = atom2.getSymbol().getValue() if (self.exists(symbol, _xsDataAtomicComposition1) == False): mergedAtomicComposition.addAtom(atom2) return mergedAtomicComposition
def mergeAtomicComposition(self, _xsDataAtomicComposition1, _xsDataAtomicComposition2): EDFactoryPluginStatic.loadModule("XSDataRaddosev10") mergedAtomicComposition = XSDataAtomicComposition() dictionary = {} for atom in _xsDataAtomicComposition2.getAtom(): dictionary[atom.getSymbol().getValue()] = atom.getNumberOf().getValue() for atom1 in _xsDataAtomicComposition1.getAtom(): symbol = atom1.getSymbol().getValue() if (self.exists(symbol, _xsDataAtomicComposition2) == True): mergedAtom = XSDataAtom() mergedAtom.setNumberOf(XSDataDouble(atom1.getNumberOf().getValue() + dictionary[symbol])) mergedAtom.setSymbol(XSDataString(symbol)) mergedAtomicComposition.addAtom(mergedAtom) else: mergedAtomicComposition.addAtom(atom1) for atom2 in _xsDataAtomicComposition2.getAtom(): symbol = atom2.getSymbol().getValue() if (self.exists(symbol, _xsDataAtomicComposition1) == False): mergedAtomicComposition.addAtom(atom2) return mergedAtomicComposition
def testSetDataModelInput(self): # Crystal from XSDataRaddosev10 import XSDataRaddoseInput xsDataRaddoseInput = XSDataRaddoseInput() from XSDataCommon import XSDataString from XSDataCommon import XSDataDouble from XSDataCommon import XSDataAngle from XSDataCommon import XSDataLength from XSDataCommon import XSDataSize from XSDataCommon import XSDataInteger from XSDataRaddosev10 import XSDataCell from XSDataRaddosev10 import XSDataAtom from XSDataRaddosev10 import XSDataAtomicComposition xsDataAtomSulfur = XSDataAtom() xsDataAtomSulfur.setNumberOf(XSDataDouble(4)) xsDataAtomSulfur.setSymbol(XSDataString("S")) xsDataAtomSelenium = XSDataAtom() xsDataAtomSelenium.setNumberOf(XSDataDouble(4)) xsDataAtomSelenium.setSymbol(XSDataString("Se")) xsDataAtomicComposition = XSDataAtomicComposition() xsDataAtomicComposition.addAtom(xsDataAtomSulfur) xsDataAtomicComposition.addAtom(xsDataAtomSelenium) xsDataRaddoseInput.setCrystalPATM(xsDataAtomicComposition) xsDataRaddoseInput.setCrystalNRES(XSDataInteger(295)) xsDataRaddoseInput.setCrystalNMON(XSDataInteger(8)) xsDataCell = XSDataCell(angle_alpha=XSDataAngle(90.0), angle_beta=XSDataAngle(90.0), angle_gamma=XSDataAngle(90.0), length_a=XSDataLength(78.9), length_b=XSDataLength(95.162), length_c=XSDataLength(104.087)) xsDataSizeCrystal = XSDataSize(XSDataLength(0.1), XSDataLength(0.1), XSDataLength(0.1)) xsDataRaddoseInput.setCrystalCell(xsDataCell) xsDataRaddoseInput.setCrystalSize(xsDataSizeCrystal) # Beam from XSDataCommon import XSDataFlux from XSDataCommon import XSDataWavelength from XSDataCommon import XSDataTime xsDataSize = XSDataSize(x=XSDataLength(0.1), y=XSDataLength(0.1)) xsDataRaddoseInput.setBeamSize(xsDataSize) xsDataRaddoseInput.setBeamFlux(XSDataFlux(1e+12)) xsDataRaddoseInput.setBeamWavelength(XSDataWavelength(2.41)) xsDataRaddoseInput.setBeamExposureTime(XSDataTime(1)) xsDataRaddoseInput.setNumberOfImages(XSDataInteger(1)) xsDataRaddoseInput.exportToFile(self.strObtainedInputFile) strExpectedInput = self.readAndParseFile(self.strReferenceInputFile) strObtainedInput = self.readAndParseFile(self.strObtainedInputFile) xsDataRaddoseInputExpected = XSDataRaddoseInput.parseString( strExpectedInput) xsDataRaddoseInputObtained = XSDataRaddoseInput.parseString( strObtainedInput) EDAssert.equal(xsDataRaddoseInputExpected.marshal(), xsDataRaddoseInputObtained.marshal())
def testSetDataModelInput(self): # Crystal from XSDataRaddosev10 import XSDataRaddoseInput xsDataRaddoseInput = XSDataRaddoseInput() from XSDataCommon import XSDataString from XSDataCommon import XSDataFloat from XSDataCommon import XSDataAngle from XSDataCommon import XSDataLength from XSDataCommon import XSDataSize from XSDataCommon import XSDataInteger from XSDataRaddosev10 import XSDataCell from XSDataRaddosev10 import XSDataAtom from XSDataRaddosev10 import XSDataAtomicComposition xsDataAtomSulfur = XSDataAtom() xsDataAtomSulfur.setNumberOf(XSDataFloat(4)) xsDataAtomSulfur.setSymbol(XSDataString("S")) xsDataAtomSelenium = XSDataAtom() xsDataAtomSelenium.setNumberOf(XSDataFloat(4)) xsDataAtomSelenium.setSymbol(XSDataString("Se")) xsDataAtomicComposition = XSDataAtomicComposition() xsDataAtomicComposition.addAtom(xsDataAtomSulfur) xsDataAtomicComposition.addAtom(xsDataAtomSelenium) xsDataRaddoseInput.setCrystalPATM(xsDataAtomicComposition) xsDataRaddoseInput.setCrystalNRES(XSDataInteger(295)) xsDataRaddoseInput.setCrystalNMON(XSDataInteger(8)) xsDataCell = XSDataCell(angle_alpha = XSDataAngle(90.0), angle_beta = XSDataAngle(90.0), angle_gamma = XSDataAngle(90.0), length_a = XSDataLength(78.9), length_b = XSDataLength(95.162), length_c = XSDataLength(104.087)) xsDataSizeCrystal = XSDataSize(XSDataLength(0.1), XSDataLength(0.1), XSDataLength(0.1)) xsDataRaddoseInput.setCrystalCell(xsDataCell) xsDataRaddoseInput.setCrystalSize(xsDataSizeCrystal) # Beam from XSDataCommon import XSDataFlux from XSDataCommon import XSDataWavelength from XSDataCommon import XSDataTime xsDataSize = XSDataSize(x = XSDataLength(0.1), y = XSDataLength(0.1)) xsDataRaddoseInput.setBeamSize(xsDataSize) xsDataRaddoseInput.setBeamFlux(XSDataFlux(1e+12)) xsDataRaddoseInput.setBeamWavelength(XSDataWavelength(2.41)) xsDataRaddoseInput.setBeamExposureTime(XSDataTime(1)) xsDataRaddoseInput.setNumberOfImages(XSDataInteger(1)) xsDataRaddoseInput.exportToFile(self.strObtainedInputFile) strExpectedInput = self.readAndParseFile (self.strReferenceInputFile) strObtainedInput = self.readAndParseFile (self.strObtainedInputFile) xsDataRaddoseInputExpected = XSDataRaddoseInput.parseString(strExpectedInput) xsDataRaddoseInputObtained = XSDataRaddoseInput.parseString(strObtainedInput) EDAssert.equal(xsDataRaddoseInputExpected.marshal(), xsDataRaddoseInputObtained.marshal())