def setup_method(self): diffcalc.util.COLOURISE_TERMINAL_OUTPUT = False self.hardware_monitor = Mock() self.hardware_monitor.get_position.return_value = (1., ) * 6 self.hardware_monitor.get_axes_names.return_value = [ 'mu', 'delta', NUNAME, 'eta', 'chi', 'phi' ] self.cm = YouConstraintManager(self.hardware_monitor)
def test_build_initial_display_table_with_fixed_detector(self): self.cm = YouConstraintManager(None, {NUNAME: 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [ ' REF SAMP', ' ------ ------', ' a_eq_b mu', ' alpha eta', ' beta chi', ' psi phi' ])
def test_build_initial_display_table_for_four_circle(self): self.cm = YouConstraintManager(None, {'mu': 0, NUNAME: 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [ ' REF SAMP', ' ------ ------', ' a_eq_b eta', ' alpha chi', ' beta phi', ' psi' ])
def test_build_initial_display_table_with_fixed_sample(self): self.cm = YouConstraintManager(None, {'mu': 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [ ' DET REF SAMP', ' ------ ------ ------', ' delta a_eq_b eta', ' %s alpha chi' % NUNAME.ljust(6), ' qaz beta phi', ' naz psi' ])
def setup_method(self): diffcalc.util.COLOURISE_TERMINAL_OUTPUT = False self.hardware_monitor = Mock() self.hardware_monitor.get_position.return_value = (1.,) * 6 self.hardware_monitor.get_axes_names.return_value = [ 'mu', 'delta', NUNAME, 'eta', 'chi', 'phi'] self.cm = YouConstraintManager(self.hardware_monitor)
def test_build_initial_display_table_for_four_circle(self): self.cm = YouConstraintManager(None, {'mu': 0, NUNAME: 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [' REF SAMP', ' ====== ======', ' a_eq_b eta', ' alpha chi', ' beta phi', ' psi'])
def test_build_initial_display_table_with_fixed_detector(self): self.cm = YouConstraintManager(None, {NUNAME: 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [' REF SAMP', ' ====== ======', ' a_eq_b mu', ' alpha eta', ' beta chi', ' psi phi'])
def test_build_initial_display_table_with_fixed_sample(self): self.cm = YouConstraintManager(None, {'mu': 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [' DET REF SAMP', ' ====== ====== ======', ' delta a_eq_b eta', ' %s alpha chi' % NUNAME.ljust(6), ' qaz beta phi', ' naz psi'])
def setup_method(self): self.mock_ubcalc = createMockUbcalc(None) self.mock_geometry = createMockDiffractometerGeometry() names = ['delta', NUNAME, 'mu', 'eta', 'chi', 'phi'] self.mock_hardware = SimpleHardwareAdapter(names) self.constraints = YouConstraintManager(self.mock_hardware) self.calc = YouHklCalculator(self.mock_ubcalc, self.mock_geometry, self.mock_hardware, self.constraints) self.mock_hardware.set_lower_limit('delta', 0) self.mock_hardware.set_upper_limit('delta', 179.999) self.mock_hardware.set_lower_limit(NUNAME, 0) self.mock_hardware.set_upper_limit(NUNAME, 179.999) self.mock_hardware.set_lower_limit('mu', 0) self.mock_hardware.set_lower_limit('eta', 0) self.mock_hardware.set_lower_limit('chi', -10) self.places = 11
class TestConstraintManagerWithFourCircles: def setUp(self): self.cm = YouConstraintManager(None, {NUNAME: 0, 'mu': 0}) def test_init(self): eq_(self.cm.all, {NUNAME: 0, 'mu': 0}) eq_(self.cm.detector, {NUNAME: 0}) eq_(self.cm.reference, {}) eq_(self.cm.sample, {'mu': 0}) eq_(self.cm.naz, {}) def test_build_initial_display_table_with_fixed_detector(self): self.cm = YouConstraintManager(None, {NUNAME: 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [' REF SAMP', ' ====== ======', ' a_eq_b mu', ' alpha eta', ' beta chi', ' psi phi']) def test_build_initial_display_table_with_fixed_sample(self): self.cm = YouConstraintManager(None, {'mu': 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [' DET REF SAMP', ' ====== ====== ======', ' delta a_eq_b eta', ' %s alpha chi' % NUNAME.ljust(6), ' qaz beta phi', ' naz psi']) def test_build_initial_display_table_for_four_circle(self): self.cm = YouConstraintManager(None, {'mu': 0, NUNAME: 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [' REF SAMP', ' ====== ======', ' a_eq_b eta', ' alpha chi', ' beta phi', ' psi']) def test_constrain_fixed_detector_angle(self): assert_raises(DiffcalcException, self.cm.constrain, 'delta') assert_raises(DiffcalcException, self.cm.constrain, NUNAME) assert_raises(DiffcalcException, self.cm.constrain, 'naz') assert_raises(DiffcalcException, self.cm.constrain, 'qaz') def test_unconstrain_fixed_detector_angle(self): assert_raises(DiffcalcException, self.cm.unconstrain, 'delta') assert_raises(DiffcalcException, self.cm.unconstrain, NUNAME) assert_raises(DiffcalcException, self.cm.unconstrain, 'naz') assert_raises(DiffcalcException, self.cm.unconstrain, 'qaz') def test_set_constrain_fixed_detector_angle(self): assert_raises(DiffcalcException, self.cm.set_constraint, 'delta', 0) assert_raises(DiffcalcException, self.cm.set_constraint, NUNAME, 0) assert_raises(DiffcalcException, self.cm.set_constraint, 'naz', 0) assert_raises(DiffcalcException, self.cm.set_constraint, 'qaz', 0) @raises(DiffcalcException) def test_constrain_fixed_sample_angle(self): self.cm.constrain('mu') @raises(DiffcalcException) def test_unconstrain_fixed_sample_angle(self): self.cm.unconstrain('mu') @raises(DiffcalcException) def test_set_constrain_fixed_sample_angle(self): self.cm.set_constraint('mu', 0)
def setUp(self): self.cm = YouConstraintManager(None, {NUNAME: 0, 'mu': 0})
class TestConstraintManager: def setUp(self): self.hardware_monitor = Mock() self.hardware_monitor.get_position.return_value = (1.,) * 6 self.hardware_monitor.get_axes_names.return_value = [ 'mu', 'delta', NUNAME, 'eta', 'chi', 'phi'] self.cm = YouConstraintManager(self.hardware_monitor) def test_init(self): eq_(self.cm.all, {}) eq_(self.cm.detector, {}) eq_(self.cm.reference, {}) eq_(self.cm.sample, {}) eq_(self.cm.naz, {}) def test_build_display_table(self): self.cm.constrain('qaz') self.cm.constrain('alpha') self.cm.constrain('eta') self.cm.set_constraint('qaz', 1.234) self.cm.set_constraint('eta', 99.) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [' DET REF SAMP', ' ====== ====== ======', ' delta a_eq_b mu', ' %s o-> alpha --> eta' % NUNAME.ljust(6), '--> qaz beta chi', ' naz psi phi', ' mu_is_%s' % NUNAME]) #""" # DET REF SAMP Available: # ====== ====== ====== # delta a_eq_b mu 3x samp: 80 of 80 # nu o-> alpha --> eta 2x samp and ref: chi & phi #--> qaz beta chi mu & eta # naz psi phi chi=90 & mu=0 # mu_is_nu 2x samp and det: 0 of 6 # 3x samp: 0 of 4 #"""[1:-1] def test_unconstrain_okay(self): eq_(self.cm.all, {}) self.cm.constrain('delta') self.cm.constrain('mu') eq_(self.cm.all, {'delta': None, 'mu': None}) eq_(self.cm.unconstrain('delta'), None) eq_(self.cm.all, {'mu': None}) def test_clear_constraints(self): self.cm.constrain('delta') self.cm.constrain('mu') self.cm.clear_constraints() eq_(self.cm.all, {}) def test_unconstrain_bad(self): eq_(self.cm.all, {}) eq_(self.cm.unconstrain('delta'), "Delta was not already constrained.") def test_constrain_det(self, pre={}): eq_(self.cm.all, pre) eq_(self.cm.constrain('delta'), None) eq_(self.cm.all, joined({'delta': None}, pre)) eq_(self.cm.constrain('delta'), 'Delta is already constrained.') eq_(self.cm.all, joined({'delta': None}, pre)) eq_(self.cm.constrain('naz'), 'Delta constraint replaced.') eq_(self.cm.all, joined({'naz': None}, pre)) eq_(self.cm.constrain('delta'), 'Naz constraint replaced.') eq_(self.cm.all, joined({'delta': None}, pre)) def test_constrain_det_one_preexisting_ref(self): self.cm.constrain('alpha') self.test_constrain_det({'alpha': None}) def test_constrain_det_one_preexisting_samp(self): self.cm.constrain('phi') self.test_constrain_det({'phi': None}) def test_constrain_det_one_preexisting_samp_and_ref(self): self.cm.constrain('alpha') self.cm.constrain('phi') self.test_constrain_det({'alpha': None, 'phi': None}) def test_constrain_det_two_preexisting_samp(self): self.cm.constrain('chi') self.cm.constrain('phi') self.test_constrain_det({'chi': None, 'phi': None}) def test_constrain_det_three_preexisting_other(self): self.cm.constrain('alpha') self.cm.constrain('phi') self.cm.constrain('chi') try: self.cm.constrain('delta') assert False except DiffcalcException, e: eq_(e.args[0], ( "Delta could not be constrained. First un-constrain one of the" "\nangles alpha, chi or phi (with 'uncon')"))
def setUp(self): self.hardware_monitor = Mock() self.hardware_monitor.get_position.return_value = (1.,) * 6 self.hardware_monitor.get_axes_names.return_value = [ 'mu', 'delta', NUNAME, 'eta', 'chi', 'phi'] self.cm = YouConstraintManager(self.hardware_monitor)
def setup_method(self): self.cm = YouConstraintManager(None, {NUNAME: 0, 'mu': 0})
from __future__ import absolute_import from diffcalc.hkl.common import getNameFromScannableOrString from diffcalc.util import command from diffcalc.hkl.you.calc import YouHklCalculator from diffcalc import settings import diffcalc.ub.ub from diffcalc.hkl.you.constraints import YouConstraintManager __all__ = ['allhkl', 'con', 'uncon', 'hklcalc', 'constraint_manager'] _fixed_constraints = settings.geometry.fixed_constraints # @UndefinedVariable constraint_manager = YouConstraintManager(_fixed_constraints) hklcalc = YouHklCalculator(diffcalc.ub.ub.ubcalc, constraint_manager) def __str__(self): return hklcalc.__str__() @command def con(*args): """ con -- list available constraints and values con <name> {val} -- constrains and optionally sets one constraint con <name> {val} <name> {val} <name> {val} -- clears and then fully constrains
from __future__ import absolute_import from diffcalc.hkl.common import getNameFromScannableOrString from diffcalc.util import command from diffcalc.hkl.you.calc import YouHklCalculator from diffcalc import settings import diffcalc.ub.ub from diffcalc.hkl.you.constraints import YouConstraintManager __all__ = ['allhkl', 'con', 'uncon', 'hklcalc', 'constraint_manager'] _fixed_constraints = settings.geometry.fixed_constraints # @UndefinedVariable constraint_manager = YouConstraintManager(settings.hardware, _fixed_constraints) hklcalc = YouHklCalculator(diffcalc.ub.ub.ubcalc, settings.geometry, settings.hardware, constraint_manager) def __str__(self): return hklcalc.__str__() @command def con(*args): """ con -- list available constraints and values con <name> {val} -- constrains and optionally sets one constraint con <name> {val} <name> {val} <name> {val} -- clears and then fully constrains
def setup_method(self): diffcalc.util.COLOURISE_TERMINAL_OUTPUT = False self.cm = YouConstraintManager() settings.geometry = SixCircle()
class TestConstraintManager: def setup_method(self): diffcalc.util.COLOURISE_TERMINAL_OUTPUT = False self.hardware_monitor = Mock() self.hardware_monitor.get_position.return_value = (1., ) * 6 self.hardware_monitor.get_axes_names.return_value = [ 'mu', 'delta', NUNAME, 'eta', 'chi', 'phi' ] self.cm = YouConstraintManager(self.hardware_monitor) def test_init(self): eq_(self.cm.all, {}) eq_(self.cm.detector, {}) eq_(self.cm.reference, {}) eq_(self.cm.sample, {}) eq_(self.cm.naz, {}) def test_build_display_table(self): self.cm.constrain('qaz') self.cm.constrain('alpha') self.cm.constrain('eta') self.cm.set_constraint('qaz', 1.234) self.cm.set_constraint('eta', 99.) print '\n'.join(self.cm.build_display_table_lines()) eq_(self.cm.build_display_table_lines(), [ ' DET REF SAMP', ' ------ ------ ------', ' delta a_eq_b mu', ' %s o-> alpha --> eta' % NUNAME.ljust(6), '--> qaz beta chi', ' naz psi phi', ' mu_is_%s' % NUNAME ]) #""" # DET REF SAMP Available: # ====== ====== ====== # delta a_eq_b mu 3x samp: 80 of 80 # nu o-> alpha --> eta 2x samp and ref: chi & phi #--> qaz beta chi mu & eta # naz psi phi chi=90 & mu=0 # mu_is_nu 2x samp and det: 0 of 6 # 3x samp: 0 of 4 #"""[1:-1] def test_unconstrain_okay(self): eq_(self.cm.all, {}) self.cm.constrain('delta') self.cm.constrain('mu') eq_(self.cm.all, {'delta': None, 'mu': None}) eq_(self.cm.unconstrain('delta'), None) eq_(self.cm.all, {'mu': None}) def test_clear_constraints(self): self.cm.constrain('delta') self.cm.constrain('mu') self.cm.clear_constraints() eq_(self.cm.all, {}) def test_unconstrain_bad(self): eq_(self.cm.all, {}) eq_(self.cm.unconstrain('delta'), "Delta was not already constrained.") def test_constrain_det(self, pre={}): eq_(self.cm.all, pre) eq_(self.cm.constrain('delta'), None) eq_(self.cm.all, joined({'delta': None}, pre)) eq_(self.cm.constrain('delta'), 'Delta is already constrained.') eq_(self.cm.all, joined({'delta': None}, pre)) eq_(self.cm.constrain('naz'), 'Delta constraint replaced.') eq_(self.cm.all, joined({'naz': None}, pre)) eq_(self.cm.constrain('delta'), 'Naz constraint replaced.') eq_(self.cm.all, joined({'delta': None}, pre)) def test_constrain_det_one_preexisting_ref(self): self.cm.constrain('alpha') self.test_constrain_det({'alpha': None}) def test_constrain_det_one_preexisting_samp(self): self.cm.constrain('phi') self.test_constrain_det({'phi': None}) def test_constrain_det_one_preexisting_samp_and_ref(self): self.cm.constrain('alpha') self.cm.constrain('phi') self.test_constrain_det({'alpha': None, 'phi': None}) def test_constrain_det_two_preexisting_samp(self): self.cm.constrain('chi') self.cm.constrain('phi') self.test_constrain_det({'chi': None, 'phi': None}) def test_constrain_det_three_preexisting_other(self): self.cm.constrain('alpha') self.cm.constrain('phi') self.cm.constrain('chi') try: self.cm.constrain('delta') assert False except DiffcalcException, e: eq_(e.args[0], ( "Delta could not be constrained. First un-constrain one of the" "\nangles alpha, chi or phi (with 'uncon')"))
class TestConstraintManagerWithFourCircles: def setup_method(self): self.cm = YouConstraintManager(None, {NUNAME: 0, 'mu': 0}) def test_init(self): eq_(self.cm.all, {NUNAME: 0, 'mu': 0}) eq_(self.cm.detector, {NUNAME: 0}) eq_(self.cm.reference, {}) eq_(self.cm.sample, {'mu': 0}) eq_(self.cm.naz, {}) def test_build_initial_display_table_with_fixed_detector(self): self.cm = YouConstraintManager(None, {NUNAME: 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [ ' REF SAMP', ' ------ ------', ' a_eq_b mu', ' alpha eta', ' beta chi', ' psi phi' ]) def test_build_initial_display_table_with_fixed_sample(self): self.cm = YouConstraintManager(None, {'mu': 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [ ' DET REF SAMP', ' ------ ------ ------', ' delta a_eq_b eta', ' %s alpha chi' % NUNAME.ljust(6), ' qaz beta phi', ' naz psi' ]) def test_build_initial_display_table_for_four_circle(self): self.cm = YouConstraintManager(None, {'mu': 0, NUNAME: 0}) print self.cm.build_display_table_lines() eq_(self.cm.build_display_table_lines(), [ ' REF SAMP', ' ------ ------', ' a_eq_b eta', ' alpha chi', ' beta phi', ' psi' ]) def test_constrain_fixed_detector_angle(self): assert_raises(DiffcalcException, self.cm.constrain, 'delta') assert_raises(DiffcalcException, self.cm.constrain, NUNAME) assert_raises(DiffcalcException, self.cm.constrain, 'naz') assert_raises(DiffcalcException, self.cm.constrain, 'qaz') def test_unconstrain_fixed_detector_angle(self): assert_raises(DiffcalcException, self.cm.unconstrain, 'delta') assert_raises(DiffcalcException, self.cm.unconstrain, NUNAME) assert_raises(DiffcalcException, self.cm.unconstrain, 'naz') assert_raises(DiffcalcException, self.cm.unconstrain, 'qaz') def test_set_constrain_fixed_detector_angle(self): assert_raises(DiffcalcException, self.cm.set_constraint, 'delta', 0) assert_raises(DiffcalcException, self.cm.set_constraint, NUNAME, 0) assert_raises(DiffcalcException, self.cm.set_constraint, 'naz', 0) assert_raises(DiffcalcException, self.cm.set_constraint, 'qaz', 0) @raises(DiffcalcException) def test_constrain_fixed_sample_angle(self): self.cm.constrain('mu') @raises(DiffcalcException) def test_unconstrain_fixed_sample_angle(self): self.cm.unconstrain('mu') @raises(DiffcalcException) def test_set_constrain_fixed_sample_angle(self): self.cm.set_constraint('mu', 0)
def setup_method(self): self.cm = YouConstraintManager(None, {NUNAME: 0, 'mu': 0})