From 8b7d81164401b6d6652e36119cbdc80c614a4b80 Mon Sep 17 00:00:00 2001 From: Joe Shannon Date: Thu, 17 Mar 2022 14:10:25 +0000 Subject: [PATCH] Migrate to pytest 4 Yield tests were removed in pytest 4. Convert to parameterized. --- test/diffcalc/hkl/vlieg/test_geometry.py | 27 ++-- test/diffcalc/ub/test_calculation_vlieg.py | 148 +++++++++++---------- 2 files changed, 92 insertions(+), 83 deletions(-) diff --git a/test/diffcalc/hkl/vlieg/test_geometry.py b/test/diffcalc/hkl/vlieg/test_geometry.py index 6eaf622b..b31eb166 100644 --- a/test/diffcalc/hkl/vlieg/test_geometry.py +++ b/test/diffcalc/hkl/vlieg/test_geometry.py @@ -19,6 +19,7 @@ import random import unittest from math import pi +import pytest try: from numpy import matrix @@ -120,7 +121,15 @@ def baseAnglesToLabVector(delta, gamma): return GAMMA * DELTA * y_vector -def checkGammaOnArmToBase(alpha, deltaA, gammaA): +alpha_params = [angle * TORAD for angle in [-89.9, -45, -1, 0, 1, 45, 89.9]] +delta_params = [angle * TORAD for angle in [-179.9, -135, -91, -89.9, -89, -46, -45, -44, -1, 0, + 1, 44, 45, 46, 89, 89.9, 91, 135, 179.9]] +gamma_params = [angle * TORAD for angle in [-89.9, -46, -45, -44, -1, 0, 1, 44, 45, 46, 89.9]] + +@pytest.mark.parametrize("alpha", alpha_params) +@pytest.mark.parametrize("deltaA", delta_params) +@pytest.mark.parametrize("gammaA", gamma_params) +def testCheckGammaOnArmToBase(alpha, deltaA, gammaA): deltaB, gammaB = gammaOnArmToBase(deltaA, gammaA, alpha) labA = armAnglesToLabVector(alpha, deltaA, gammaA) @@ -156,7 +165,10 @@ def checkBaseArmBaseReciprocity(alpha, delta_orig, gamma_orig): raise AssertionError(s) -def checkArmBaseArmReciprocity(alpha, delta_orig, gamma_orig): +@pytest.mark.parametrize("alpha", alpha_params) +@pytest.mark.parametrize("delta_orig", delta_params) +@pytest.mark.parametrize("gamma_orig", gamma_params) +def testcheckArmBaseArmReciprocity(alpha, delta_orig, gamma_orig): (deltaA, gammaA) = (delta_orig, gamma_orig) (deltaB, gammaB) = gammaOnArmToBase(deltaA, gammaA, alpha) (deltaA, gammaA) = gammaOnBaseToArm(deltaB, gammaB, alpha) @@ -173,17 +185,6 @@ def checkArmBaseArmReciprocity(alpha, delta_orig, gamma_orig): raise AssertionError(s) -def test_generator_for_cases(): - for alpha in [-89.9, -45, -1, 0, 1, 45, 89.9]: - for gamma in [-89.9, -46, -45, -44, -1, 0, 1, 44, 45, 46, 89.9]: - for delta in [-179.9, -135, -91, -89.9, -89, -46, -45, -44, -1, 0, - 1, 44, 45, 46, 89, 89.9, 91, 135, 179.9]: - yield (checkGammaOnArmToBase, alpha * TORAD, delta * TORAD, - gamma * TORAD) - yield (checkArmBaseArmReciprocity, alpha * TORAD, - delta * TORAD, gamma * TORAD) - - class TestFiveCirclePlugin(object): def setup_method(self): diff --git a/test/diffcalc/ub/test_calculation_vlieg.py b/test/diffcalc/ub/test_calculation_vlieg.py index fbe64a0b..e36112f2 100644 --- a/test/diffcalc/ub/test_calculation_vlieg.py +++ b/test/diffcalc/ub/test_calculation_vlieg.py @@ -21,6 +21,7 @@ from math import cos, sin, pi from mock import Mock +import pytest from nose.tools import raises from diffcalc import settings try: @@ -221,68 +222,74 @@ def check(self, testname, hklref1, hklref2, expectedUMatrix): self.addref(hklref2) matrixeq_(expectedUMatrix, self.ubcalc.U) - def test_with_squarely_mounted(self): - href = ((1, 0, 0), - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0, phi=0)) - lref = ((0, 0, 1), - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90, phi=0)) - pairs = (("hl", href, lref, I), - ("lh", lref, href, I)) - for testname, ref1, ref2, u in pairs: - yield self.check, testname, ref1, ref2, u + squarely_mounted_href = ((1, 0, 0), + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0, phi=0)) - def test_with_x_mismount(self): - U = x_rotation(ROT) - href = ((1, 0, 0), - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0, phi=0)) - kref = ((0, 1, 0), - Pos(alpha=0, delta=60, gamma=0, omega=30 - ROT + 90, chi=90, + squarely_mounted_lref = ((0, 0, 1), + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90, phi=0)) + + @pytest.mark.parametrize("testname, ref1, ref2, u", [("hl", squarely_mounted_href, squarely_mounted_lref, I), + ("lh", squarely_mounted_lref, squarely_mounted_href, I)]) + def test_with_squarely_mounted(self, testname, ref1, ref2, u): + self.check(testname, ref1, ref2, u) + + + U_x_mismount = x_rotation(ROT) + href_x_mismount = ((1, 0, 0), + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0, phi=0)) + kref_x_mismount = ((0, 1, 0), + Pos(alpha=0, delta=60, gamma=0, omega=30 - ROT + 90, chi=90, phi=0)) - lref = ((0, 0, 1), - Pos(alpha=0, delta=60, gamma=0, omega=30 - ROT, chi=90, phi=0)) - pairs = (("hk", href, kref, U), - ("hl", href, lref, U), - ("kh", kref, href, U), - ("kl", kref, lref, U), - ("lk", lref, kref, U), - ("lh", lref, href, U)) - for testname, ref1, ref2, u in pairs: - yield self.check, testname, ref1, ref2, u - - def test_with_y_mismount(self): - U = y_rotation(ROT) - href = ((1, 0, 0), - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0 - ROT, phi=0)) - lref = ((0, 0, 1), - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90 - ROT, phi=0)) - pairs = (("hl", href, lref, U), - ("lh", lref, href, U)) - for testname, ref1, ref2, u in pairs: - yield self.check, testname, ref1, ref2, u + lref_x_mismount = ((0, 0, 1), + Pos(alpha=0, delta=60, gamma=0, omega=30 - ROT, chi=90, phi=0)) - def test_with_z_mismount(self): - U = z_rotation(ROT) - href = ((1, 0, 0), - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0, phi=0 + ROT)) - lref = ((0, 0, 1), # phi degenerate - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90, phi=67)) - pairs = (("hl", href, lref, U), - ("lh", lref, href, U)) - for testname, ref1, ref2, u in pairs: - yield self.check, testname, ref1, ref2, u + @pytest.mark.parametrize("testname, ref1, ref2, u", (("hk", href_x_mismount, kref_x_mismount, U_x_mismount), + ("hl", href_x_mismount, lref_x_mismount, U_x_mismount), + ("kh", kref_x_mismount, href_x_mismount, U_x_mismount), + ("kl", kref_x_mismount, lref_x_mismount, U_x_mismount), + ("lk", lref_x_mismount, kref_x_mismount, U_x_mismount), + ("lh", lref_x_mismount, href_x_mismount, U_x_mismount))) + def test_with_x_mismount(self, testname, ref1, ref2, u): + self.check(testname, ref1, ref2, u) + + + + U_y_mismount = y_rotation(ROT) + href_y_mismount = ((1, 0, 0), + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0 - ROT, phi=0)) + lref_y_mismounr = ((0, 0, 1), + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90 - ROT, phi=0)) + + @pytest.mark.parametrize("testname, ref1, ref2, u", (("hl", href_y_mismount, lref_y_mismounr, U_y_mismount), + ("lh", lref_y_mismounr, href_y_mismount, U_y_mismount))) + def test_with_y_mismount(self, testname, ref1, ref2, u): + self.check(testname, ref1, ref2, u) - def test_with_zy_mismount(self): - U = z_rotation(ROT) * y_rotation(ROT) - href = ((1, 0, 0), - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0 - ROT, - phi=0 + ROT)) - lref = ((0, 0, 1), - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90 - ROT, - phi=ROT)) # chi degenerate - pairs = (("hl", href, lref, U), - ("lh", lref, href, U)) - for testname, ref1, ref2, u in pairs: - yield self.check, testname, ref1, ref2, u + + U_z_mismount = z_rotation(ROT) + href_z_mismount = ((1, 0, 0), + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0, phi=0 + ROT)) + lref_z_mismount = ((0, 0, 1), # phi degenerate + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90, phi=67)) + + @pytest.mark.parametrize("testname, ref1, ref2, u", (("hl", href_z_mismount, lref_z_mismount, U_z_mismount), + ("lh", lref_z_mismount, href_z_mismount, U_z_mismount))) + def test_with_z_mismount(self,testname, ref1, ref2, u): + self.check(testname, ref1, ref2, u) + + + U_zy_mismount = z_rotation(ROT) * y_rotation(ROT) + href_zy_mismount = ((1, 0, 0), + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0 - ROT, + phi=0 + ROT)) + lref_zy_mismount = ((0, 0, 1), + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90 - ROT, + phi=ROT)) # chi degenerate + + @pytest.mark.parametrize("testname, ref1, ref2, u", (("hl", href_zy_mismount, lref_zy_mismount, U_zy_mismount), + ("lh", lref_zy_mismount, href_zy_mismount, U_zy_mismount))) + def test_with_zy_mismount(self, testname, ref1, ref2, u): + self.check(testname, ref1, ref2, u) class TestUBCalcWithcubicOneRef(TestUBCalcWithCubic): @@ -293,19 +300,20 @@ def check(self, testname, hklref, expectedUMatrix): self.ubcalc.calculate_UB_from_primary_only() matrixeq_(expectedUMatrix, self.ubcalc.U) - def test_with_squarely_mounted(self): - href = ((1, 0, 0), - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0, phi=0)) - href_b = ((1, 0, 0), - Pos(alpha=0, delta=60, gamma=0, omega=30 + 90, chi=90, + + href_sq = ((1, 0, 0), + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=0, phi=0)) + href_b_sq = ((1, 0, 0), + Pos(alpha=0, delta=60, gamma=0, omega=30 + 90, chi=90, phi=-90)) - lref = ((0, 0, 1), # degenerate in phi - Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90, phi=67)) - pairs = (("h", href, I), - ("hb", href_b, I), - ("l", lref, I)) - for testname, ref, u in pairs: - yield self.check, testname, ref, u + lref_sq = ((0, 0, 1), # degenerate in phi + Pos(alpha=0, delta=60, gamma=0, omega=30, chi=90, phi=67)) + + @pytest.mark.parametrize("testname, ref, u",(("h", href_sq, I), + ("hb", href_b_sq, I), + ("l", lref_sq, I))) + def test_with_squarely_mounted(self, testname, ref, u): + self.check(testname, ref, u) def test_with_x_mismount_h(self): U = x_rotation(ROT)