class TestYouReference(): def setup_method(self): self.get_UB = Mock() self.reference = YouReference(self.get_UB) self.reference._set_n_phi_configured(matrix('0; 0; 1')) self.get_UB.return_value = matrix('1 0 0; 0 1 0; 0 0 1') def test_default_n_phi(self): assert_2darray_almost_equal(self.reference.n_phi.tolist(), matrix('0; 0; 1').tolist()) def test__str__with_phi_configured(self): print self.reference def test__str__with_hkl_configured(self): self.reference.n_hkl_configured = matrix('0; 1; 1') print self.reference def test_n_phi_from_hkl_with_unity_matrix_001(self): self.get_UB.return_value = matrix('1 0 0; 0 1 0; 0 0 1') self.reference.n_hkl_configured = matrix('0; 0; 1') assert_2darray_almost_equal(self.reference.n_phi.tolist(), matrix('0; 0; 1').tolist()) def test_n_phi_from_hkl_with_unity_matrix_010(self): self.get_UB.return_value = matrix('1 0 0; 0 1 0; 0 0 1') self.reference.n_hkl_configured = matrix('0; 1; 0') assert_2darray_almost_equal(self.reference.n_phi.tolist(), matrix('0; 1; 0').tolist())
def decode_ubcalcstate(state, geometry, diffractometer_axes_names, multiplier): # Backwards compatibility code orientlist_=OrientationList(geometry, diffractometer_axes_names, []) try: orientlist_=decode_orientlist(state['orientlist'], geometry, diffractometer_axes_names) except KeyError: pass try: surface_=decode_reference(state['surface'], settings.surface_vector, False) except KeyError: surface_ = YouReference(None) surface_._set_n_phi_configured(settings.surface_vector) return UBCalcState( name=state['name'], crystal=state['crystal'] and CrystalUnderTest(*eval(state['crystal'])), reflist=decode_reflist(state['reflist'], geometry, diffractometer_axes_names, multiplier), orientlist=orientlist_, tau=state['tau'], sigma=state['sigma'], manual_U=state['u'] and decode_matrix(state['u']), manual_UB=state['ub'] and decode_matrix(state['ub']), or0=state['or0'], or1=state['or1'], reference=decode_reference(state.get('reference', None), settings.reference_vector, True), surface=surface_ )
def decode_reference(ref_dict): reference = YouReference(None) # TODO: We can't set get_ub method yet (tangles!) if ref_dict: nhkl = ref_dict.get('n_hkl_configured', None) nphi = ref_dict.get('n_phi_configured', None) if nhkl: reference.n_hkl_configured = matrix([eval(nhkl)]).T if nphi: reference.n_phi_configured = matrix([eval(nphi)]).T return reference
def decode_reference(ref_dict, ref_vector, flg): reference = YouReference(None) # TODO: We can't set get_ub method yet (tangles!) if ref_dict: nhkl = ref_dict.get('n_hkl_configured', None) nphi = ref_dict.get('n_phi_configured', None) if nhkl: reference._set_n_hkl_configured(matrix([eval(nhkl)]).T) elif nphi: reference._set_n_phi_configured(matrix([eval(nphi)]).T) elif flg: reference._set_n_hkl_configured(ref_vector) else: reference._set_n_phi_configured(ref_vector) return reference
def _clear(self, name=None): # NOTE the Diffraction calculator is expecting this object to exist in # the long run. We can't remove this entire object, and recreate it. # It also contains a required link to the angle calculator. reflist = ReflectionList(self._geometry, self._get_diffractometer_axes_names()) reference = YouReference(self._get_UB) self._state = UBCalcState(name=name, reflist=reflist, reference=reference) self._U = None self._UB = None self._state.configure_calc_type()
def _clear(self, name=None): # NOTE the Diffraction calculator is expecting this object to exist in # the long run. We can't remove this entire object, and recreate it. # It also contains a required link to the angle calculator. reflist = ReflectionList( settings.geometry, self._get_diffractometer_axes_names(), multiplier=settings.hardware.energyScannableMultiplierToGetKeV) orientlist = OrientationList(settings.geometry, self._get_diffractometer_axes_names()) reference = YouReference(self._get_UB) reference._set_n_hkl_configured(settings.reference_vector) surface = YouReference(self._get_UB) surface._set_n_phi_configured(settings.surface_vector) self._state = UBCalcState(name=name, reflist=reflist, orientlist=orientlist, reference=reference, surface=surface) self._U = None self._UB = None self._state.configure_calc_type()
def setup_method(self): self.get_UB = Mock() self.reference = YouReference(self.get_UB) self.get_UB.return_value = matrix('1 0 0; 0 1 0; 0 0 1')
def setup_method(self): self.get_UB = Mock() self.reference = YouReference(self.get_UB) self.reference._set_n_phi_configured(matrix('0; 0; 1')) self.get_UB.return_value = matrix('1 0 0; 0 1 0; 0 0 1')