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)
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)
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)
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)
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)
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)