U
    »mœd5  ã                   @   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   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/optimize/tests/test_regression.pyÚ<lambda>   ó    z4TestRegression.test_newton_x0_is_0.<locals>.<lambda>r   ©ÚscipyÚoptimizeZnewtonr   )ÚselfZ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
      r   z5TestRegression.test_newton_integers.<locals>.<lambda>r   c                 S   s   d|  S )Nr   r   r   r   r   r	   r
      r   )Zx0Z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|dddgƒ 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                    s>   ˆd  d7  < ˆd dk r4| d t  dddg¡ S ˆ ƒ ‚d S )Nr   r   é   r   é	   é
   é   )ÚnpÚarrayr   ©r   Úcounterr   r	   Úfunc   s    z.TestRegression.test_lmdif_errmsg.<locals>.funcr   r   r   )Ú	ExceptionÚassert_raisesr   r   Z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   Znumpy.testingr   Zpytestr   r#   Zscipy.optimizer   r   r   r   r   r	   Ú<module>   s
   