コード例 #1
0
	def testProcessScanWithJavaError(self):
		concurrentScan = Mock()
		def r():
			raise java.lang.Error("e")
		concurrentScan.getUserListedScannables = r
		sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc)
		sdp.processScan(concurrentScan)
コード例 #2
0
	def testProcessScanWithJythonException(self):
		concurrentScan = Mock()
		concurrentScan.getUserListedScannables.side_effect = Exception("e")
		sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc)
		result = sdp.processScan(concurrentScan)
		print "***"
		print result
		print "***"
コード例 #3
0
	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'})
コード例 #4
0
	def testProcessScanWithMultiInputXScannable(self):
		concurrentScan = MockConcurrentScan()

		sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue()], {})
		report = sdp.processScan(concurrentScan)
		print "report:"
		print "***"
		print report
		print "***"
コード例 #5
0
	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
コード例 #6
0
	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 "***"
コード例 #7
0
	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 "***"
コード例 #8
0
	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
コード例 #9
0
	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)
コード例 #10
0
	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])
コード例 #11
0
	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
コード例 #12
0
ファイル: tuner.py プロジェクト: kusamau/gda-core
	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
コード例 #13
0
ファイル: ScannableScan.py プロジェクト: kusamau/gda-core
	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)
コード例 #14
0
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')
コード例 #15
0
	def testProcessScanNamespaceWritingWorksTwice(self):
		sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue()], {}, raiseProcessorExceptions=True)
		sdp.processScan(self.concurrentScan)
		sdp.processScan(self.concurrentScan)
コード例 #16
0
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]
コード例 #17
0
	def testProcessScan(self):
		rootNamespaceDict = {}
		sdp = ScanDataProcessor([MaxPositionAndValue(), MinPositionAndValue(), SimpleXYDataSetProcessorWithError()], rootNamespaceDict, raiseProcessorExceptions=True)
		report = sdp.processScan(self.concurrentScan)
		print report
		print rootNamespaceDict
コード例 #18
0
	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')
コード例 #19
0
	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)
コード例 #20
0
	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})
コード例 #21
0
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
コード例 #22
0
	def testGoCalledWithNoScannableFromLastScan(self):
		sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc)
		self.assertRaises(Exception, sdp.go, 2)
コード例 #23
0
	def testGoCalledWithSDPResult(self):
		sdpresult = Mock()
		sdp = ScanDataProcessor([], {}, scanDataPointCache=self.sdpc)
		sdp.go(sdpresult)
		sdpresult.go.assert_called_with()