o
    Ö­j5  ã                   @   s>   d Z ddlZddlmZ ddlmZ ddlZ	G dd„ dƒZ
dS )z Regression tests for optimize.

é    N)Úassert_almost_equal)Úraisesc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestRegressionc                 C   s$   d}t j dd„ d¡}t||ƒ d S )Né   c                 S   s   | d S )Nr   © ©Úxr   r   úa/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_regression.pyÚ<lambda>   ó    z4TestRegression.test_newton_x0_is_0.<locals>.<lambda>r   ©ÚscipyÚoptimizeÚnewtonr   )ÚselfÚtgtÚresr   r   r	   Útest_newton_x0_is_0   s   z"TestRegression.test_newton_x0_is_0c                 C   s(   t jjdd„ ddd„ d�}t|dƒ d S )Nc                 S   s   | d d S )Né   r   r   r   r   r   r	   r
      s    z5TestRegression.test_newton_integers.<locals>.<lambda>r   c                 S   s   d|  S )Nr   r   r   r   r   r	   r
      r   )Úx0Úfprimeg      ð?r   )r   Úrootr   r   r	   Útest_newton_integers   s   ÿz#TestRegression.test_newton_integersc                    s>   G dd„ dt ƒ‰ dg‰‡ ‡fdd„}tˆ tjj|g d¢ƒ d S )Nc                   @   s   e Zd ZdS )z3TestRegression.test_lmdif_errmsg.<locals>.SomeErrorN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r	   Ú	SomeError   s    r   r   c                    s8   ˆd  d7  < ˆd dk r| d t  g d¢¡ S ˆ ƒ ‚)Nr   r   é   r   )é	   é
   é   )ÚnpÚarrayr   ©r   Úcounterr   r	   Úfunc   s   z.TestRegression.test_lmdif_errmsg.<locals>.func)r   r   r   )Ú	ExceptionÚassert_raisesr   r   Úleastsq)r   r%   r   r#   r	   Útest_lmdif_errmsg   s   þz TestRegression.test_lmdif_errmsgN)r   r   r   r   r   r)   r   r   r   r	   r      s    r   )Ú__doc__Únumpyr!   Únumpy.testingr   Úpytestr   r'   Úscipy.optimizer   r   r   r   r   r	   Ú<module>   s    