def setup_method(self): dummy = createDummyAxes(['a', 'b', 'c', 'd', 'e', 'f']) self.grp = ScannableGroup('grp', dummy) self.diffhw = DiffractometerScannableGroup('sixc', MockDiffcalc(6), self.grp) self.energyhw = MockMotor() self.hardware = ScannableHardwareAdapter(self.diffhw, self.energyhw)
def createDiffcalcAndScannables(self): self.en = DummyPD('en') dummy = createDummyAxes(['delta', 'omega', 'chi', 'phi']) scannableGroup = ScannableGroup('fourcgrp', dummy) self.fourc = DiffractometerScannableGroup('fourc', None, scannableGroup) settings.hardware = ScannableHardwareAdapter(self.fourc, self.en) settings.geometry = Fourc() settings.ubcalc_persister = UbCalculationNonPersister() from diffcalc.dc import dcvlieg as dc reload(dc) self.dc = dc self.fourc.diffcalc = self.dc self.hkl = Hkl('hkl', self.fourc, self.dc)
def testSimWithHklAndSixc(self): dummyAxes = createDummyAxes( ['alpha', 'delta', 'gamma', 'omega', 'chi', 'phi']) dummySixcScannableGroup = ScannableGroup('sixcgrp', dummyAxes) sixcdevice = DiffractometerScannableGroup( 'SixCircleGammaOnArmGeometry', self.dc, dummySixcScannableGroup) hkldevice = Hkl('hkl', sixcdevice, self.dc) with pytest.raises(TypeError): sim() with pytest.raises(TypeError): sim(hkldevice) with pytest.raises(TypeError): sim(hkldevice, 1, 2, 3) with pytest.raises(TypeError): sim('not a proper scannable', 1) with pytest.raises(TypeError): sim(hkldevice, (1, 2, 'not a number')) with pytest.raises(TypeError): sim(hkldevice, 1) with pytest.raises(ValueError): sim(hkldevice, (1, 2, 3, 4)) s = self.sess c = self.calc # setup session info self.dc.newub(s.name) self.dc.setlat(s.name, *s.lattice) r = s.ref1 self.dc.addref([r.h, r.k, r.l], r.pos.totuple(), r.energy, r.tag) r = s.ref2 self.dc.addref([r.h, r.k, r.l], r.pos.totuple(), r.energy, r.tag) self.dc.calcub() # check the ubcalculation is okay before continuing # (useful to check for typos!) mneq_(self.dc.ubcalc.UB, (matrix(s.umatrix) * (matrix(s.bmatrix))), 4, note="wrong UB matrix after calculating U") self.hardware.energy = c.energy # Test each hkl/position pair for idx in range(len(c.hklList)): hkl = c.hklList[idx] pos = c.posList[idx].totuple() sim(sixcdevice, pos) sim(hkldevice, hkl)
def setup_method(self): self.en = DummyPD('en') dummy = createDummyAxes(['alpha', 'delta', 'omega', 'chi', 'phi']) group = ScannableGroup('fivecgrp', dummy) self.fivec = DiffractometerScannableGroup('fivec', None, group) settings.hardware = ScannableHardwareAdapter(self.fivec, self.en) settings.geometry = Fivec() settings.ubcalc_persister = UbCalculationNonPersister() from diffcalc.dc import dcvlieg as dc reload(dc) self.dc = dc self.fivec.diffcalc = self.dc self.hkl = Hkl('hkl', self.fivec, self.dc) self.hklverbose = Hkl('hkl', self.fivec, self.dc, ('theta', '2theta', 'Bin', 'Bout', 'azimuth')) self.orient()
def createDiffcalcAndScannables(self, geometryClass): self.en = DummyPD('en') dummy = createDummyAxes( ['alpha', 'delta', 'gamma', 'omega', 'chi', 'phi']) group = ScannableGroup('sixcgrp', dummy) self.sixc = DiffractometerScannableGroup('sixc', None, group) self.hardware = DummyHardwareAdapter( ('alpha', 'delta', 'gamma', 'omega', 'chi', 'phi')) settings.hardware = ScannableHardwareAdapter(self.sixc, self.en) settings.geometry = geometryClass() settings.ubcalc_persister = UbCalculationNonPersister() from diffcalc.dc import dcvlieg as dc reload(dc) self.dc = dc self.sixc.diffcalc = self.dc self.hkl = Hkl('hkl', self.sixc, self.dc)
def setUp(self): self.a = MockMotor('a') self.b = MockMotor('bbb') self.c = MockMotor('c') self.sg = ScannableGroup('abc', (self.a, self.b, self.c))
class TestScannableGroup(unittest.TestCase): def setUp(self): self.a = MockMotor('a') self.b = MockMotor('bbb') self.c = MockMotor('c') self.sg = ScannableGroup('abc', (self.a, self.b, self.c)) def testInit(self): self.assertEqual(list(self.sg.getInputNames()), ['a', 'bbb', 'c']) self.assertEqual(self.sg.getPosition(), [0.0, 0.0, 0.0]) def testAsynchronousMoveTo(self): self.sg.asynchronousMoveTo([1, 2.0, 3]) self.assertEqual(self.sg.getPosition(), [1.0, 2.0, 3.0]) def testAsynchronousMoveToWithNones(self): self.sg.asynchronousMoveTo([1.0, 2.0, 3.0]) self.sg.asynchronousMoveTo([None, None, 3.2]) self.assertEqual(self.sg.getPosition(), [1.0, 2.0, 3.2]) def testGetPosition(self): # implicitely tested above pass def testIsBusy(self): self.assertEqual(self.sg.isBusy(), False) self.sg.asynchronousMoveTo([1.0, 2.0, 3.0]) self.assertEqual(self.sg.isBusy(), True) self.b.makeNotBusy() self.assertEqual(self.sg.isBusy(), True) self.a.makeNotBusy() self.c.makeNotBusy() self.assertEqual(self.sg.isBusy(), False)
def setup_method(self): self.a = MockMotor('a') self.b = MockMotor('bbb') self.c = MockMotor('c') self.sg = ScannableGroup('abc', (self.a, self.b, self.c))
class TestScannableGroup(object): def setup_method(self): self.a = MockMotor('a') self.b = MockMotor('bbb') self.c = MockMotor('c') self.sg = ScannableGroup('abc', (self.a, self.b, self.c)) def testInit(self): assert list(self.sg.getInputNames()) == ['a', 'bbb', 'c'] assert self.sg.getPosition() == [0.0, 0.0, 0.0] def testAsynchronousMoveTo(self): self.sg.asynchronousMoveTo([1, 2.0, 3]) assert self.sg.getPosition() == [1.0, 2.0, 3.0] def testAsynchronousMoveToWithNones(self): self.sg.asynchronousMoveTo([1.0, 2.0, 3.0]) self.sg.asynchronousMoveTo([None, None, 3.2]) assert self.sg.getPosition() == [1.0, 2.0, 3.2] def testGetPosition(self): # implicitely tested above pass def testIsBusy(self): assert not self.sg.isBusy() self.sg.asynchronousMoveTo([1.0, 2.0, 3.0]) assert self.sg.isBusy() self.b.makeNotBusy() assert self.sg.isBusy() self.a.makeNotBusy() self.c.makeNotBusy() assert not self.sg.isBusy()