def test_noFit(self):
        """Cases where fit is not possible.
        """
        self._linearWorkspace(0)
        fitResult = FitGaussian(self.ws, 0)
        self.assertTupleEqual((0.0, 0.0), fitResult)

        self._veryNarrowPeakWorkspace()
        fitResult = FitGaussian(self.ws, 0)
        self.assertTupleEqual((0.0, 0.0), fitResult)
 def test_errors(self):
     """Conditions that raise RuntimeError.
     """
     self._linearWorkspace(0)
     with self.assertRaises(RuntimeError):
         # bad index
         fitResult = FitGaussian(self.ws, 1)
    def _guessPeak(self, peakCentre, height, sigma):
        """Test-fitting one generated Gaussian peak.
        """
        self._gaussianWorkspace(peakCentre, height, sigma)
        fitPeakCentre, fitSigma = FitGaussian(self.ws, 0)

        # require a close relative match between given and fitted values
        diffPeakCentre = abs((fitPeakCentre - peakCentre) / peakCentre)
        diffSigma = abs((fitSigma - sigma) / sigma)

        self.assertLess(diffPeakCentre, 0.03)
        self.assertLess(diffSigma, 1e-6)