mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-15 06:40:24 +01:00
fix: Corr.fit now explicitly checks that the provided fit range is a two
element list.
This commit is contained in:
parent
ab8e3ce549
commit
6bfeff4f27
2 changed files with 11 additions and 1 deletions
|
@ -628,7 +628,7 @@ class Corr:
|
|||
function : obj
|
||||
function to fit to the data. See fits.least_squares for details.
|
||||
fitrange : list
|
||||
Range in which the function is to be fitted to the data.
|
||||
Two element list containing the timeslices on which the fit is supposed to start and stop.
|
||||
If not specified, self.prange or all timeslices are used.
|
||||
silent : bool
|
||||
Decides whether output is printed to the standard output.
|
||||
|
@ -641,6 +641,11 @@ class Corr:
|
|||
fitrange = self.prange
|
||||
else:
|
||||
fitrange = [0, self.T - 1]
|
||||
else:
|
||||
if not isinstance(fitrange, list):
|
||||
raise Exception("fitrange has to be a list with two elements")
|
||||
if len(fitrange) != 2:
|
||||
raise Exception("fitrange has to have exactly two elements [fit_start, fit_stop]")
|
||||
|
||||
xs = [x for x in range(fitrange[0], fitrange[1] + 1) if not self.content[x] is None]
|
||||
ys = [self.content[x][0] for x in range(fitrange[0], fitrange[1] + 1) if not self.content[x] is None]
|
||||
|
|
|
@ -135,6 +135,11 @@ def test_fit_correlator():
|
|||
assert fit_res[0] == my_corr[0]
|
||||
assert fit_res[1] == my_corr[1] - my_corr[0]
|
||||
|
||||
with pytest.raises(Exception):
|
||||
my_corr.fit(f, "from 0 to 3")
|
||||
with pytest.raises(Exception):
|
||||
my_corr.fit(f, [0, 2, 3])
|
||||
|
||||
|
||||
def test_plateau():
|
||||
my_corr = pe.correlators.Corr([pe.pseudo_Obs(1.01324, 0.05, 't'), pe.pseudo_Obs(1.042345, 0.008, 't')])
|
||||
|
|
Loading…
Add table
Reference in a new issue