Exemple #1
0
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())
Exemple #2
0
    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_
        )
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
 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()
Exemple #7
0
 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')
Exemple #8
0
 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')