def testProcessScanWithJavaError(self): concurrentScan = Mock() def r(): raise java.lang.Error("e") concurrentScan.getUserListedScannables = r sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc) sdp.processScan(concurrentScan)
def __init__(self, name, datasetProcessor, scanClass, *args): self.name = name self.processorName = datasetProcessor.name self.scan = scanClass([ScanDataProcessor([datasetProcessor])]) self.args = args self.use_backlash_correction = False self.fraction_of_range_for_backlash = .5
def testProcessScanWithJythonException(self): concurrentScan = Mock() concurrentScan.getUserListedScannables.side_effect = Exception("e") sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc) result = sdp.processScan(concurrentScan) print "***" print result print "***"
def testPrepareForScan(self): dataSetResult = Mock() dataSetResult.resultsDict = {'key':None} dataSetResult.keyxlabel = 'key' sdpr = ScanDataProcessorResult(dataSetResult, None, None, None, None, scanDataPointCache=self.sdpc) namespace = {'myobject': 1, 'minval': 'Non SDPR should be left alone at this stage', 'maxval': sdpr} sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue()], namespace, raiseProcessorExceptions=True, scanDataPointCache=self.sdpc) sdp.prepareForScan() self.assertEquals(namespace, {'myobject': 1, 'minval': 'Non SDPR should be left alone at this stage'})
def testProcessScanWithMultiInputXScannable(self): concurrentScan = MockConcurrentScan() sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue()], {}) report = sdp.processScan(concurrentScan) print "report:" print "***" print report print "***"
def testProcessScanLcenAndRcen(self): rootNamespaceDict = {} lcen = Lcen() rcen = Rcen() lcen.raise_process_exceptions = True rcen.raise_process_exceptions = True sdp = ScanDataProcessor([lcen, rcen], rootNamespaceDict, raiseProcessorExceptions=True) report = sdp.processScan(self.concurrentScan) self.assertEquals(report, 'Scan too short to process sensibly') print rootNamespaceDict
def testProcessScanWithJavaException(self): concurrentScan = Mock() def r(): raise java.lang.Exception("e") concurrentScan.getUserListedScannables = r sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc) result = sdp.processScan(concurrentScan) print "***" print result print "***"
def __init__(self, name, datasetProcessor, scanClass, *args): self.name = name self.inputNames = [] self.extraNames = ['scan'] + list(datasetProcessor.labelList) self.outputFormat = ['%i']+['%f']*len(datasetProcessor.labelList) self.datasetProcessorName = datasetProcessor.name self.scan = scanClass([ScanDataProcessor([datasetProcessor])]) self.numTracker = NumTracker('scanbase_numtrack') self.args = tuple(args)
def testProcessScanWithMultiInputXScannable(self): concurrentScan = MockConcurrentScan() concurrentScan.getUserListedScannables.return_value = [self.w, self.x, self.y, self.z] concurrentScan.getScanPlotSettings.return_value.getXAxisName.return_value = 'wi1' sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue()], {}, raiseProcessorExceptions=True) report = sdp.processScan(concurrentScan) print "report:" print "***" print report print "***"
def testGoWithScannbaleFromLastScan(self): scannable = Mock() sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc) sdp.last_scannable_scanned = scannable sdp.go(1) scannable.moveTo.assert_called_with(1) sdp.go([1]) scannable.moveTo.assert_called_with([1]) sdp.go([1,2]) scannable.moveTo.assert_called_with([1, 2])
def testProcessScan(self): rootNamespaceDict = {} sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue()], rootNamespaceDict, raiseProcessorExceptions=True) report = sdp.processScan(self.concurrentScan) print "report:" print "***" print report print "***" self.assertEquals(report['minval'].name, 'minval') self.assertEquals(report['maxval'].name, 'maxval') self.assertEquals(self.x.name, sdp.last_scannable_scanned.name) print rootNamespaceDict
def testProcessScanFile1(self): self.concurrentScan = createMockConcurrentScanForRealNexusFile() rootNamespaceDict = {} min_processor = MinPositionAndValue() max_processor = MaxPositionAndValue() min_processor.raise_process_exceptions = True max_processor.raise_process_exceptions = True sdp = ScanDataProcessor([min_processor, max_processor], rootNamespaceDict, raiseProcessorExceptions=True) sdp.raiseProcessorExceptions = True result = sdp.processScan(self.concurrentScan) self.assertAlmostEqual(result['maxval'].result.maxpos, -50)
def testProcessScanLcenAndRcen(self): rootNamespaceDict = {} lcen = Lcen() rcen = Rcen() lcen.raise_process_exceptions = True rcen.raise_process_exceptions = True sdp = ScanDataProcessor([lcen, rcen], rootNamespaceDict, raiseProcessorExceptions=True) report = sdp.processScan(self.concurrentScan) print "report:" print "***" print report print "***" self.assertEquals(report['lcen'].name, 'lcen') self.assertEquals(report['rcen'].name, 'rcen') print rootNamespaceDict
from gdascripts.analysis.datasetprocessor.oned.MaxPositionAndValue import MaxPositionAndValue from gdascripts.analysis.datasetprocessor.oned.MinPositionAndValue import MinPositionAndValue from gdascripts.analysis.datasetprocessor.oned.CentreOfMass import CentreOfMass from gdascripts.analysis.datasetprocessor.oned.GaussianPeakAndBackground import GaussianPeakAndBackground from gdascripts.scan.process.ScanDataProcessor import ScanDataProcessor from gdascripts.scan.process.ScanDataProcessorResult import go from gdascripts.scan import specscans from gdascripts.scan import gdascans from gda.jython.commands.GeneralCommands import alias print "Setting up scan data processor, scan_processor" scan_processor = ScanDataProcessor([ MaxPositionAndValue(), MinPositionAndValue(), CentreOfMass(), GaussianPeakAndBackground() ], globals()) alias("go") print "Creating scan commands:" ascan = specscans.Ascan([scan_processor]) a2scan = specscans.A2scan([scan_processor]) a3scan = specscans.A3scan([scan_processor]) mesh = specscans.Mesh([scan_processor]) dscan = specscans.Dscan([scan_processor]) d2scan = specscans.D2scan([scan_processor]) d3scan = specscans.D3scan([scan_processor]) scan = gdascans.Scan([scan_processor]) rscan = gdascans.Rscan([scan_processor]) alias('ascan')
from gdascripts.analysis.datasetprocessor.oned.GaussianEdge import GaussianEdge from gdascripts.scan.process.ScanDataProcessor import ScanDataProcessor from gdascripts.scan import specscans from gdascripts.scan import gdascans from gda.jython.commands.GeneralCommands import alias print "Setting up scan data processor, scan_processor" ge = GaussianEdge() ge.smoothwidth = 5 ge.plotPanel = "Edge Fit Plot" gpab = GaussianPeakAndBackground() gpab.plotPanel = "Peak Fit Plot" scan_processor = ScanDataProcessor( [MaxPositionAndValue(), MinPositionAndValue(), gpab, ge], globals()) go = scan_processor.go alias("go") print "Creating spec-like commands:" ascan = specscans.Ascan([scan_processor]) #a2scan = specscans.A2scan([scan_processor]) #a3scan = specscans.A3scan([scan_processor]) #mesh = specscans.Mesh([scan_processor]) #dscan = specscans.Dscan([scan_processor]) #d2scan = specscans.D2scan([scan_processor]) #d3scan = specscans.D3scan([scan_processor]) alias('ascan') print ascan.__doc__.split('\n')[3] #alias('a2scan');print a2scan.__doc__.split('\n')[3]
def testProcessScanNamespaceWritingWorksTwice(self): sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue()], {}, raiseProcessorExceptions=True) sdp.processScan(self.concurrentScan) sdp.processScan(self.concurrentScan)
def testProcessScanWithNoProcessors(self): rootNamespaceDict = {'a':1} sdp = ScanDataProcessor([], rootNamespaceDict, raiseProcessorExceptions=True) self.assertEquals(sdp.processScan(self.concurrentScan),'<No dataset processors are configured>') self.assertEquals(rootNamespaceDict, {'a':1})
def testGoCalledWithNoScannableFromLastScan(self): sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc) self.assertRaises(Exception, sdp.go, 2)
def testGoCalledWithSDPResult(self): sdpresult = Mock() sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc) sdp.go(sdpresult) sdpresult.go.assert_called_with()
def testProcessScan(self): rootNamespaceDict = {} sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue()], rootNamespaceDict, raiseProcessorExceptions=True) report = sdp.processScan(self.concurrentScan) self.assertEquals(report, 'Scan too short to process sensibly')
from gdascripts.analysis.datasetprocessor.oned.MaxPositionAndValue import MaxPositionAndValue from gdascripts.analysis.datasetprocessor.oned.MinPositionAndValue import MinPositionAndValue from gdascripts.scan.process.ScanDataProcessor import ScanDataProcessor scanprocessor = ScanDataProcessor( [MaxPositionAndValue(), MinPositionAndValue()], globals()) exec("scanp = Scan([scanprocessor])") alias("scanp") #@UndefinedVariable alias("go") #@UndefinedVariable
def testPrepareForScanDisablesGo(self): sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue()], {}, raiseProcessorExceptions=True, scanDataPointCache=self.sdpc) sdp.last_scannable_scanned = self.x sdp.prepareForScan() self.assertRaises(Exception, sdp.go, 3)
def testProcessScan(self): rootNamespaceDict = {} sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue(), SimpleXYDataSetProcessorWithError()], rootNamespaceDict, raiseProcessorExceptions=True) report = sdp.processScan(self.concurrentScan) print report print rootNamespaceDict