diff --git a/requirements.txt b/requirements.txt index 8173de9e..ec986f8e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -170,6 +170,7 @@ pytest-django==3.4.8 pytest-forked==1.0.2 pytest-runner==4.4 pytest-sugar==0.9.2 +pytest-timeout==1.4.2 pytest-xdist==1.27.0 python-dateutil==2.8.0 python-memcached==1.59 diff --git a/rowers/datautils.py b/rowers/datautils.py index 554ea19e..08b7f5b5 100644 --- a/rowers/datautils.py +++ b/rowers/datautils.py @@ -60,7 +60,7 @@ def updatecp(delta,cpvalues,r,workouttype='water'): return 1 -def cpfit(powerdf): +def cpfit(powerdf,fraclimit=0.0001,nmax=1000): # Fit the data to thee parameter CP model fitfunc = lambda pars,x: abs(pars[0])/(1+(x/abs(pars[2]))) + abs(pars[1])/(1+(x/abs(pars[3]))) errfunc = lambda pars,x,y: fitfunc(pars,x)-y @@ -96,11 +96,13 @@ def cpfit(powerdf): frac = abs(ddmin)/fitpoints.mean() - while frac>0.0001: + counter = 0 + while frac>fraclimit and counter