Example #1
0
class Test_calc_detector_angles_given_one():
    def setup_method(self):
        self.calc = YouHklCalculator(createMockUbcalc(None),
                                     createMockDiffractometerGeometry(),
                                     createMockHardwareMonitor(), Mock())

    def check(self, name, value, theta, delta_e, nu_e, qaz_e):
        # all in deg
        delta, nu, qaz = self.calc._calc_remaining_detector_angles(
            name, value * TORAD, theta * TORAD)
        assert_almost_equal(delta * TODEG, delta_e)
        assert_almost_equal(nu * TODEG, nu_e)
        if qaz_e is not None:
            assert_almost_equal(qaz * TODEG, qaz_e)

    def test_nu_given0(self):
        self.check(NUNAME, 0, theta=3, delta_e=6, nu_e=0, qaz_e=90)

    def test_nu_given1(self):
        self.check(NUNAME,
                   10,
                   theta=7.0530221302831952,
                   delta_e=10,
                   nu_e=10,
                   qaz_e=None)

    def test_nu_given2(self):
        self.check(NUNAME, 6, theta=3, delta_e=0, nu_e=6, qaz_e=0)

    def test_delta_given0(self):
        self.check('delta', 0, theta=3, delta_e=0, nu_e=6, qaz_e=0)

    def test_delta_given1(self):
        self.check('delta',
                   10,
                   theta=7.0530221302831952,
                   delta_e=10,
                   nu_e=10,
                   qaz_e=None)

    def test_delta_given2(self):
        self.check('delta', 6, theta=3, delta_e=6, nu_e=0, qaz_e=90)

    def test_qaz_given0(self):
        self.check('qaz', 90, theta=3, delta_e=6, nu_e=0, qaz_e=90)

    def test_qaz_given2(self):
        self.check('qaz', 0, theta=3, delta_e=0, nu_e=6, qaz_e=0)
class Test_calc_detector_angles_given_one():

    def setup(self):
        self.calc = YouHklCalculator(createMockUbcalc(None),
                                     createMockDiffractometerGeometry(),
                                     createMockHardwareMonitor(),
                                     Mock())

    def check(self, name, value, theta, delta_e, nu_e, qaz_e):
        # all in deg
        delta, nu, qaz = self.calc._calc_remaining_detector_angles(
            name, value * TORAD, theta * TORAD)
        assert_almost_equal(delta * TODEG, delta_e)
        assert_almost_equal(nu * TODEG, nu_e)
        if qaz_e is not None:
            assert_almost_equal(qaz * TODEG, qaz_e)

    def test_nu_given0(self):
        self.check(NUNAME, 0, theta=3, delta_e=6, nu_e=0, qaz_e=90)

    def test_nu_given1(self):
        self.check(NUNAME, 10, theta=7.0530221302831952,
                   delta_e=10, nu_e=10, qaz_e=None)

    def test_nu_given2(self):
        self.check(NUNAME, 6, theta=3, delta_e=0, nu_e=6, qaz_e=0)

    def test_delta_given0(self):
        self.check('delta', 0, theta=3, delta_e=0, nu_e=6, qaz_e=0)

    def test_delta_given1(self):
        self.check('delta', 10, theta=7.0530221302831952,
                   delta_e=10, nu_e=10, qaz_e=None)

    def test_delta_given2(self):
        self.check('delta', 6, theta=3, delta_e=6, nu_e=0, qaz_e=90)

    def test_qaz_given0(self):
        self.check('qaz', 90, theta=3, delta_e=6, nu_e=0, qaz_e=90)

    def test_qaz_given2(self):
        self.check('qaz', 0, theta=3, delta_e=0, nu_e=6, qaz_e=0)
Example #3
0
class Test_calc_detector_angles_given_one():
    def setup_method(self):
        self.calc = YouHklCalculator(createMockUbcalc(None),
                                     createMockDiffractometerGeometry(),
                                     createMockHardwareMonitor(), Mock())

    def check(self, name, value, theta, delta_e, nu_e, qaz_e):
        # all in deg
        delta, nu, qaz = zip(
            *self.calc._calc_remaining_detector_angles(name, value *
                                                       TORAD, theta * TORAD))
        for delta_, nu_, qaz_ in zip(delta, nu, qaz):
            print 'delta:', delta_ * TODEG, ' nu:', nu_ * TODEG, ' qaz:', qaz_ * TODEG
        assert_array_almost_equal([v * TODEG for v in delta], delta_e)
        assert_array_almost_equal([v * TODEG for v in nu], nu_e)
        if qaz_e is not None:
            assert_array_almost_equal([v * TODEG for v in qaz], qaz_e)

    def test_nu_given0(self):
        self.check(NUNAME,
                   0,
                   theta=3,
                   delta_e=[6, -6],
                   nu_e=[0, 0],
                   qaz_e=[90, -90])

    def test_nu_given1(self):
        self.check(NUNAME,
                   10,
                   theta=7.0530221302831952,
                   delta_e=[10, -10],
                   nu_e=[10, 10],
                   qaz_e=None)

    def test_nu_given2(self):
        self.check(NUNAME, 6, theta=3, delta_e=[
            0,
        ], nu_e=[
            6,
        ], qaz_e=[
            0,
        ])

    def test_delta_given0(self):
        self.check('delta',
                   0,
                   theta=3,
                   delta_e=[0, 0],
                   nu_e=[6, -6],
                   qaz_e=[0, 180])

    def test_delta_given1(self):
        self.check('delta',
                   10,
                   theta=7.0530221302831952,
                   delta_e=[10, 10],
                   nu_e=[10, -10],
                   qaz_e=None)

    def test_delta_given2(self):
        self.check('delta',
                   6,
                   theta=3,
                   delta_e=[
                       6,
                   ],
                   nu_e=[
                       0,
                   ],
                   qaz_e=[
                       90,
                   ])

    def test_qaz_given0(self):
        self.check('qaz',
                   90,
                   theta=3,
                   delta_e=[6, 174],
                   nu_e=[0, -180],
                   qaz_e=[90, 90])

    def test_qaz_given2(self):
        self.check('qaz',
                   0,
                   theta=3,
                   delta_e=[0, 180],
                   nu_e=[6, -174],
                   qaz_e=[0, 0])