2121from math import cos , sin , pi
2222
2323from mock import Mock
24+ import pytest
2425from nose .tools import raises
2526from diffcalc import settings
2627try :
@@ -221,68 +222,74 @@ def check(self, testname, hklref1, hklref2, expectedUMatrix):
221222 self .addref (hklref2 )
222223 matrixeq_ (expectedUMatrix , self .ubcalc .U )
223224
224- def test_with_squarely_mounted (self ):
225- href = ((1 , 0 , 0 ),
226- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 , phi = 0 ))
227- lref = ((0 , 0 , 1 ),
228- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 , phi = 0 ))
229- pairs = (("hl" , href , lref , I ),
230- ("lh" , lref , href , I ))
231- for testname , ref1 , ref2 , u in pairs :
232- yield self .check , testname , ref1 , ref2 , u
225+ squarely_mounted_href = ((1 , 0 , 0 ),
226+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 , phi = 0 ))
233227
234- def test_with_x_mismount (self ):
235- U = x_rotation (ROT )
236- href = ((1 , 0 , 0 ),
237- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 , phi = 0 ))
238- kref = ((0 , 1 , 0 ),
239- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 - ROT + 90 , chi = 90 ,
228+ squarely_mounted_lref = ((0 , 0 , 1 ),
229+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 , phi = 0 ))
230+
231+ @pytest .mark .parametrize ("testname, ref1, ref2, u" , [("hl" , squarely_mounted_href , squarely_mounted_lref , I ),
232+ ("lh" , squarely_mounted_lref , squarely_mounted_href , I )])
233+ def test_with_squarely_mounted (self , testname , ref1 , ref2 , u ):
234+ self .check (testname , ref1 , ref2 , u )
235+
236+
237+ U_x_mismount = x_rotation (ROT )
238+ href_x_mismount = ((1 , 0 , 0 ),
239+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 , phi = 0 ))
240+ kref_x_mismount = ((0 , 1 , 0 ),
241+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 - ROT + 90 , chi = 90 ,
240242 phi = 0 ))
241- lref = ((0 , 0 , 1 ),
242- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 - ROT , chi = 90 , phi = 0 ))
243- pairs = (("hk" , href , kref , U ),
244- ("hl" , href , lref , U ),
245- ("kh" , kref , href , U ),
246- ("kl" , kref , lref , U ),
247- ("lk" , lref , kref , U ),
248- ("lh" , lref , href , U ))
249- for testname , ref1 , ref2 , u in pairs :
250- yield self .check , testname , ref1 , ref2 , u
251-
252- def test_with_y_mismount (self ):
253- U = y_rotation (ROT )
254- href = ((1 , 0 , 0 ),
255- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 - ROT , phi = 0 ))
256- lref = ((0 , 0 , 1 ),
257- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 - ROT , phi = 0 ))
258- pairs = (("hl" , href , lref , U ),
259- ("lh" , lref , href , U ))
260- for testname , ref1 , ref2 , u in pairs :
261- yield self .check , testname , ref1 , ref2 , u
243+ lref_x_mismount = ((0 , 0 , 1 ),
244+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 - ROT , chi = 90 , phi = 0 ))
262245
263- def test_with_z_mismount (self ):
264- U = z_rotation (ROT )
265- href = ((1 , 0 , 0 ),
266- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 , phi = 0 + ROT ))
267- lref = ((0 , 0 , 1 ), # phi degenerate
268- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 , phi = 67 ))
269- pairs = (("hl" , href , lref , U ),
270- ("lh" , lref , href , U ))
271- for testname , ref1 , ref2 , u in pairs :
272- yield self .check , testname , ref1 , ref2 , u
246+ @pytest .mark .parametrize ("testname, ref1, ref2, u" , (("hk" , href_x_mismount , kref_x_mismount , U_x_mismount ),
247+ ("hl" , href_x_mismount , lref_x_mismount , U_x_mismount ),
248+ ("kh" , kref_x_mismount , href_x_mismount , U_x_mismount ),
249+ ("kl" , kref_x_mismount , lref_x_mismount , U_x_mismount ),
250+ ("lk" , lref_x_mismount , kref_x_mismount , U_x_mismount ),
251+ ("lh" , lref_x_mismount , href_x_mismount , U_x_mismount )))
252+ def test_with_x_mismount (self , testname , ref1 , ref2 , u ):
253+ self .check (testname , ref1 , ref2 , u )
254+
255+
256+
257+ U_y_mismount = y_rotation (ROT )
258+ href_y_mismount = ((1 , 0 , 0 ),
259+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 - ROT , phi = 0 ))
260+ lref_y_mismounr = ((0 , 0 , 1 ),
261+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 - ROT , phi = 0 ))
262+
263+ @pytest .mark .parametrize ("testname, ref1, ref2, u" , (("hl" , href_y_mismount , lref_y_mismounr , U_y_mismount ),
264+ ("lh" , lref_y_mismounr , href_y_mismount , U_y_mismount )))
265+ def test_with_y_mismount (self , testname , ref1 , ref2 , u ):
266+ self .check (testname , ref1 , ref2 , u )
273267
274- def test_with_zy_mismount (self ):
275- U = z_rotation (ROT ) * y_rotation (ROT )
276- href = ((1 , 0 , 0 ),
277- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 - ROT ,
278- phi = 0 + ROT ))
279- lref = ((0 , 0 , 1 ),
280- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 - ROT ,
281- phi = ROT )) # chi degenerate
282- pairs = (("hl" , href , lref , U ),
283- ("lh" , lref , href , U ))
284- for testname , ref1 , ref2 , u in pairs :
285- yield self .check , testname , ref1 , ref2 , u
268+
269+ U_z_mismount = z_rotation (ROT )
270+ href_z_mismount = ((1 , 0 , 0 ),
271+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 , phi = 0 + ROT ))
272+ lref_z_mismount = ((0 , 0 , 1 ), # phi degenerate
273+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 , phi = 67 ))
274+
275+ @pytest .mark .parametrize ("testname, ref1, ref2, u" , (("hl" , href_z_mismount , lref_z_mismount , U_z_mismount ),
276+ ("lh" , lref_z_mismount , href_z_mismount , U_z_mismount )))
277+ def test_with_z_mismount (self ,testname , ref1 , ref2 , u ):
278+ self .check (testname , ref1 , ref2 , u )
279+
280+
281+ U_zy_mismount = z_rotation (ROT ) * y_rotation (ROT )
282+ href_zy_mismount = ((1 , 0 , 0 ),
283+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 - ROT ,
284+ phi = 0 + ROT ))
285+ lref_zy_mismount = ((0 , 0 , 1 ),
286+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 - ROT ,
287+ phi = ROT )) # chi degenerate
288+
289+ @pytest .mark .parametrize ("testname, ref1, ref2, u" , (("hl" , href_zy_mismount , lref_zy_mismount , U_zy_mismount ),
290+ ("lh" , lref_zy_mismount , href_zy_mismount , U_zy_mismount )))
291+ def test_with_zy_mismount (self , testname , ref1 , ref2 , u ):
292+ self .check (testname , ref1 , ref2 , u )
286293
287294
288295class TestUBCalcWithcubicOneRef (TestUBCalcWithCubic ):
@@ -293,19 +300,20 @@ def check(self, testname, hklref, expectedUMatrix):
293300 self .ubcalc .calculate_UB_from_primary_only ()
294301 matrixeq_ (expectedUMatrix , self .ubcalc .U )
295302
296- def test_with_squarely_mounted ( self ):
297- href = ((1 , 0 , 0 ),
298- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 , phi = 0 ))
299- href_b = ((1 , 0 , 0 ),
300- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 + 90 , chi = 90 ,
303+
304+ href_sq = ((1 , 0 , 0 ),
305+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 0 , phi = 0 ))
306+ href_b_sq = ((1 , 0 , 0 ),
307+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 + 90 , chi = 90 ,
301308 phi = - 90 ))
302- lref = ((0 , 0 , 1 ), # degenerate in phi
303- Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 , phi = 67 ))
304- pairs = (("h" , href , I ),
305- ("hb" , href_b , I ),
306- ("l" , lref , I ))
307- for testname , ref , u in pairs :
308- yield self .check , testname , ref , u
309+ lref_sq = ((0 , 0 , 1 ), # degenerate in phi
310+ Pos (alpha = 0 , delta = 60 , gamma = 0 , omega = 30 , chi = 90 , phi = 67 ))
311+
312+ @pytest .mark .parametrize ("testname, ref, u" ,(("h" , href_sq , I ),
313+ ("hb" , href_b_sq , I ),
314+ ("l" , lref_sq , I )))
315+ def test_with_squarely_mounted (self , testname , ref , u ):
316+ self .check (testname , ref , u )
309317
310318 def test_with_x_mismount_h (self ):
311319 U = x_rotation (ROT )
0 commit comments