Example #1
0
 def test_abeles_reshape(self):
     # reflectivity should be able to deal with multidimensional input
     reshaped_q = np.reshape(self.qvals, (2, 250))
     reshaped_r = self.rvals.reshape(2, 250)
     calc = _reflect.abeles(reshaped_q, self.layer_format)
     assert_equal(reshaped_r.shape, calc.shape)
     assert_almost_equal(reshaped_r, calc, 15)
Example #2
0
 def test_compare_c_py_abeles0(self):
     # test two layer system
     if not TEST_C_REFLECT:
         return
     layer0 = np.array([[0, 2.07, 0.01, 3],
                        [0, 6.36, 0.1, 3]])
     calc1 = _reflect.abeles(self.qvals, layer0, scale=0.99, bkg=1e-8)
     calc2 = _creflect.abeles(self.qvals, layer0, scale=0.99, bkg=1e-8)
     assert_almost_equal(calc1, calc2)
Example #3
0
    def test_compare_c_py_abeles(self):
        # test python and c are equivalent
        # but not the same file
        if not HAVE_CREFLECT:
            return
        assert_(_reflect.__file__ != _creflect.__file__)

        calc1 = _reflect.abeles(self.qvals, self.layer_format)
        calc2 = _creflect.abeles(self.qvals, self.layer_format)
        assert_almost_equal(calc1, calc2)
        calc1 = _reflect.abeles(self.qvals, self.layer_format, scale=2.)
        calc2 = _creflect.abeles(self.qvals, self.layer_format, scale=2.)
        assert_almost_equal(calc1, calc2)
        calc1 = _reflect.abeles(self.qvals, self.layer_format, scale=0.5,
                                bkg=0.1)
        calc2 = _creflect.abeles(self.qvals, self.layer_format, scale=0.5,
                                 bkg=0.1)
        assert_almost_equal(calc1, calc2)
Example #4
0
 def test_compare_c_py_abeles2(self):
     # test two layer system
     if not HAVE_CREFLECT:
         return
     layer2 = np.array([[0, 2.07, 0.01, 3],
                        [10, 3.47, 0.01, 3],
                        [100, 1.0, 0.01, 4],
                        [0, 6.36, 0.1, 3]])
     calc1 = _reflect.abeles(self.qvals, layer2, scale=0.99, bkg=1e-8)
     calc2 = _creflect.abeles(self.qvals, layer2, scale=0.99, bkg=1e-8)
     assert_almost_equal(calc1, calc2)
Example #5
0
    def test_compare_c_py_abeles(self):
        # test python and c are equivalent
        # but not the same file
        if not TEST_C_REFLECT:
            return
        assert_(_reflect.__file__ != _creflect.__file__)

        calc1 = _reflect.abeles(self.qvals, self.layer_format)
        calc2 = _creflect.abeles(self.qvals, self.layer_format)
        assert_almost_equal(calc1, calc2)
        calc1 = _reflect.abeles(self.qvals, self.layer_format, scale=2.)
        calc2 = _creflect.abeles(self.qvals, self.layer_format, scale=2.)
        assert_almost_equal(calc1, calc2)
        calc1 = _reflect.abeles(self.qvals, self.layer_format, scale=0.5,
                                bkg=0.1)
        # workers = 1 is a non-threaded implementation
        calc2 = _creflect.abeles(self.qvals, self.layer_format, scale=0.5,
                                 bkg=0.1, workers=1)
        # workers = 2 forces the calculation to go through multithreaded calcn,
        # even on single core processor
        calc3 = _creflect.abeles(self.qvals, self.layer_format, scale=0.5,
                                 bkg=0.1, workers=2)
        assert_almost_equal(calc1, calc2)
        assert_almost_equal(calc1, calc3)
Example #6
0
 def test_py_abeles(self):
     # test reflectivity calculation with values generated from Motofit
     calc = _reflect.abeles(self.qvals, self.layer_format)
     assert_almost_equal(calc, self.rvals)