U
    Kvfk                  
   @   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   H/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/base/tests/test_optimize.py
dummy_func   s    r   c                 C   s   d|  S N       @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   Fr   Zhessfull_outputdispr+   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    
	r7   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   r.   r3   r   r   r   test_full_outputh   s6    

r8   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   g        r   ZSLSQP)
min_methodboundsconstraintsFr   r*   gffffff?g333333?   )r/   r   r    r(   r   r5   r6   _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r9   r:   Fr   r*   r   r!   r<   r/   r   r"   r   r=   r   r   r   test_minimize_scipy_powell   s    
rE   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   rA   r   zNelder-MeadrC   Fr   r*   r   r!   r<   rD   r=   r   r   r   test_minimize_scipy_nm   s    
rF   )!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smoker7   r8   r?   ZskipifrE   rF   r   r   r   r   <module>   s:   ,	
'$
