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