U
    ÃmœdŸ  ã                
   @   s   d dl mZmZ d dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZ ee	e
eeeeeedœ	Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zejjdd„ ƒZdd„ Zdd„ Zejjedd�dd„ ƒZejjedd�d d!„ ƒZ dS )"é    )ÚSP_LT_15ÚSP_LT_17N)Úassert_)Úassert_almost_equal)	Ú_fit_newtonÚ_fit_nmÚ	_fit_bfgsÚ_fit_cgÚ_fit_ncgÚ_fit_powellÚ
_fit_lbfgsÚ_fit_basinhoppingÚ_fit_minimize)	ÚnewtonÚnmZbfgsZcgZncgÚpowellZlbfgsZbasinhoppingÚminimizec                 C   s   | d S )Né   © ©Úxr   r   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/base/tests/test_optimize.pyÚ
dummy_func   s    r   c                 C   s   d|  S ©Ng       @r   r   r   r   r   Údummy_score#   s    r   c                 C   s   dggS r   r   r   r   r   r   Ú
dummy_hess'   s    r   c                 C   s    | d d d | d d d  S )Nr   é   r   g      @r   r   r   r   r   Údummy_bounds_constraint_func+   s    r   c                   C   s   dS )N)©r   Nr   r   r   r   r   r   Údummy_bounds/   s    r   c                   C   s   dS )N))r   N)ç      @Nr   r   r   r   r   Údummy_bounds_tight3   s    r!   c                  C   s,   ddd„ dœddd„ dœddd„ dœf} | S )NZineqc                 S   s   | d d| d   d S ©Nr   r   r   r   r   r   r   r   Ú<lambda>9   ó    z#dummy_constraints.<locals>.<lambda>)ÚtypeZfunc                 S   s   | d  d| d   d S )Nr   r   r   é   r   r   r   r   r   r#   :   r$   c                 S   s   | d  d| d   d S r"   r   r   r   r   r   r#   ;   r$   r   )Zconsr   r   r   Údummy_constraints7   s
    ýr'   c                 C   sœ   t D ]’}t | }|dkr8|ttdgdi tddd�\}}n|ttdgdi ddd�\}}t|d kƒ |dkr†tr†t|jdko€|jdkƒ qtt|ƒdkƒ qd S )	Nr   r   r   Fr   ©ZhessÚfull_outputÚdisp©r)   r*   r   ©	Ú	fit_funcsr   r   r   r   r   ÚshapeÚsizeÚlen©Zreset_randomstateÚmethodÚfuncÚxoptZretvalsr   r   r   Útest_full_output_false@   s4    ø      ÿ
r5   c                 C   s¨   t D ]ž}t | }|dkr8|ttdgdi tddd�\}}n|ttdgdi ddd�\}}t|d k	ƒ td|kƒ |d	kr’tr’t|jdkoŒ|jdkƒ qtt|ƒdkƒ qd S )
Nr   r   r   Tr   r(   r+   Z	convergedr   r,   r1   r   r   r   Útest_full_outputb   s6    ø      ÿ
r6   c               
   C   sD   t d } | td dddtƒ tƒ dœd ddd�\}}t|d	d
gdƒ d S )Nr   )r   r   r   ZSLSQP)Ú
min_methodÚboundsÚconstraintsFr   r(   gffffffö?g333333û?é   )r-   r   r   r'   r   ©r3   r4   Ú_r   r   r   Útest_minimize_scipy_slsqp€   s    ýô
r=   z%Powell bounds support added in SP 1.5)Úreasonc               
   C   s@   t d } | td dddtƒ dœd ddd�\}}t|d	d
gdƒ d S )Nr   ©é   g      @r   ZPowell©r7   r8   Fr   r(   r   r    r:   ©r-   r   r!   r   r;   r   r   r   Útest_minimize_scipy_powell“   s    þõ
rC   z!NM bounds support added in SP 1.7c               
   C   s@   t d } | td dddtƒ dœd ddd�\}}t|d	d
gdƒ d S )Nr   r?   r   zNelder-MeadrA   Fr   r(   r   r    r:   rB   r;   r   r   r   Útest_minimize_scipy_nm¦   s    þõ
rD   )!Zstatsmodels.compat.scipyr   r   ZpytestZnumpy.testingr   r   Zstatsmodels.base.optimizerr   r   r   r	   r
   r   r   r   r   r-   r   r   r   r   r   r!   r'   ÚmarkZsmoker5   r6   r=   ZskipifrC   rD   r   r   r   r   Ú<module>   s:   ,÷	
!
