Bug description
pvanalytics/util/_fit.py raises a error: RuntimeWarning: divide by zero encountered in scalar divide when y contains constant values, because the R² denominator np.sum((y - np.mean(y))**2) evaluates to zero.
To reproduce
import numpy as np
from pvanalytics.util import _fit
x = np.arange(10)
y = pd.Series(np.ones(10) * 5.0) # constant y
_fit.quartic_restricted(x, y) # RuntimeWarning here
Traceback
RuntimeWarning: divide by zero encountered in scalar divide pvanalytics/util/_fit.py:130
Expected behavior
Returns 0.0 (undefined R², treated as worst-case fit) without warning.
Bug description
pvanalytics/util/_fit.pyraises a error:RuntimeWarning: divide by zero encountered in scalar dividewhenycontains constant values, because the R² denominatornp.sum((y - np.mean(y))**2)evaluates to zero.To reproduce
Traceback
RuntimeWarning: divide by zero encountered in scalar divide pvanalytics/util/_fit.py:130
Expected behavior
Returns
0.0(undefined R², treated as worst-case fit) without warning.