def test_fit_cost_contains_correct_numbers(self): peak_table, refit_peak_table, fit_cost = FitGaussianPeaks( InputWorkspace=self.data_ws, PeakGuessTable=self.peak_guess_table, EstimatedPeakSigma=5, MinPeakSigma=3, MaxPeakSigma=12, GeneralFitTolerance=1) chi2 = fit_cost.column(0)[0] poisson = fit_cost.column(1)[0] peak1 = peak_table.row(0) peak2 = peak_table.row(1) yvals = self.gaussian(self.x_values, peak1['centre'], peak1['height'], peak1['sigma']) yvals += self.gaussian(self.x_values, peak2['centre'], peak2['height'], peak2['sigma']) real_chi2 = self.alg_instance.function_difference( self.y_values, yvals, np.sqrt(self.y_values)) real_poisson = self.alg_instance.poisson_cost( self.y_values + self.background, yvals + self.background) self.assertAlmostEqual(real_chi2, chi2, 3) self.assertAlmostEqual(real_poisson, poisson, 3)
def test_peak_parameters_are_correct(self): peak_table, refit_peak_table, fit_cost = FitGaussianPeaks( InputWorkspace=self.data_ws, PeakGuessTable=self.peak_guess_table, EstimatedPeakSigma=5, MinPeakSigma=3, MaxPeakSigma=12, GeneralFitTolerance=1) peak1 = peak_table.row(0) peak2 = peak_table.row(1) centre1, height1, sigma1 = peak1['centre'], peak1['height'], peak1[ 'sigma'] centre2, height2, sigma2 = peak2['centre'], peak2['height'], peak2[ 'sigma'] self.assertAlmostEqual(centre1, self.centre[0]) self.assertAlmostEqual(centre2, self.centre[1]) self.assertAlmostEqual(height1, self.height[0]) self.assertAlmostEqual(height2, self.height[1]) self.assertAlmostEqual(sigma1, self.width[0]) self.assertAlmostEqual(sigma2, self.width[1])