U
    md                  
   @   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rtrt|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rtrt|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:   ,	
!
