
&]\c           @` s   d  Z  d d l m Z m Z m Z d d l Z d d l m Z m Z m	 Z	 m
 Z
 d d l m Z d d l Z d d l m Z m Z m Z m Z d e f d     YZ d	 e f d
     YZ d S(   s#   
Unit test for SLSQP optimization.
i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_t   assert_array_almost_equalt   assert_allcloset   assert_equal(   t   raises(   t
   fmin_slsqpt   minimizet   NonlinearConstraintt   Boundst
   MyCallBackc           B` s    e  Z d  Z d   Z d   Z RS(   sJ   pass a custom callback function

    This makes sure it's being used.
    c         C` s   t  |  _ d |  _ d  S(   Ni    (   t   Falset   been_calledt   ncalls(   t   self(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   __init__   s    	c         C` s   t  |  _ |  j d 7_ d  S(   Ni   (   t   TrueR   R   (   R   t   x(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   __call__   s    	(   t   __name__t
   __module__t   __doc__R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyR      s   	t	   TestSLSQPc           B` s  e  Z d  Z d   Z d d  Z d d  Z d d  Z d d  Z d d  Z d d  Z	 d d	  Z
 d d
  Z d d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d    Z! d!   Z" d"   Z# d#   Z$ d$   Z% d%   Z& d&   Z' d'   Z( d(   Z) d)   Z* d*   Z+ d+   Z, d,   Z- d-   Z. RS(.   s   
    Test SLSQP algorithm using Example 14.4 from Numerical Methods for
    Engineers by Steven Chapra and Raymond Canale.
    This example maximizes the function f(x) = 2*x*y + 2*x - x**2 - 2*y**2,
    which has a maximum at x=2, y=1.
    c         C` s   i t  d 6|  _ d  S(   Nt   disp(   R   t   opts(   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   setup_method$   s    g      ?c         C` s@   | d } | d } | d | | d | | d d | d S(   s  
        Arguments:
        d     - A list of two elements, where d[0] represents x and d[1] represents y
                 in the following equation.
        sign - A multiplier for f.  Since we want to optimize it, and the scipy
               optimizers can only minimize functions, we need to multiply it by
               -1 to achieve the desired solution
        Returns:
        2*x*y + 2*x - x**2 - 2*y**2

        i    i   i   (    (   R   t   dt   signR   t   y(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   fun'   s    

c         C` sZ   | d } | d } | d | d | d } | d | d | } t  j | | g t  S(   so   
        This is the derivative of fun, returning a numpy array
        representing df/dx and df/dy.

        i    i   ii   i   (   t   npt   arrayt   float(   R   R   R   R   R   t   dfdxt   dfdy(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   jac7   s
    

c         C` s"   |  j  | |  |  j | |  f S(   N(   R   R%   (   R   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   fun_and_jacC   s    c         C` s   t  j | d | d g  S(   s    Equality constraint i    i   (   R    R!   (   R   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   f_eqconF   s    c         C` s   t  j d d g g  S(   s!    Equality constraint, derivative i   i(   R    R!   (   R   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   fprime_eqconJ   s    c         C` s   |  j  | |  d S(   s    Scalar equality constraint i    (   R'   (   R   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   f_eqcon_scalarN   s    c         C` s   |  j  | |  d j   S(   s(    Scalar equality constraint, derivative i    (   R(   t   tolist(   R   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   fprime_eqcon_scalarR   s    c         C` s    t  j | d | d d g  S(   s    Inequality constraint i    i   g      ?(   R    R!   (   R   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   f_ieqconV   s    c         C` s   t  j d d g g  S(   s#    Inequality constraint, derivative i   i(   R    R!   (   R   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   fprime_ieqconZ   s    c         C` s   t  j |  S(   s    Vector inequality constraint (   R    t   asarray(   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt	   f_ieqcon2^   s    c         C` s   t  j | j d  S(   s*    Vector inequality constraint, derivative i    (   R    t   identityt   shape(   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   fprime_ieqcon2b   s    c      	   C` s\   t  |  j d d g d d d d d |  j } t | d | d  t | j d	 d
 g  d  S(   Ng      g      ?t   argst   methodt   SLSQPt   optionst   successt   messagei   i   (   g      (   R	   R   R   R   R   R   (   R   t   res(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt$   test_minimize_unbounded_approximatedg   s    c         C` se   t  |  j d d g d d d |  j d d d |  j } t | d | d	  t | j d
 d g  d  S(   Ng      g      ?R3   R%   R4   R5   R6   R7   R8   i   i   (   g      (   R	   R   R%   R   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_minimize_unbounded_givenn   s    c         C` s   t  j d d  > t |  j d d g d d d d d f d	 d
 d |  j } Wd  QXt | d | d  t | j d d g  t d | j d k  t | j d d k  d  S(   Nt   invalidt   ignoreg      g      ?R3   t   boundsg      @g      ?R4   R5   R6   R7   R8   i    i   (   g      (   g      @N(   Ng      ?(	   R    t   errstateR	   R   t   NoneR   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt"   test_minimize_bounded_approximatedu   s    c         C` sb   t  |  j d d g d d d t d d d |  j } t | d | d	  t | j d
 d g  d  S(   Ng      g      ?R3   R%   R4   R5   R6   R7   R8   i   i   (   g      (   R	   R&   R   R   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt    test_minimize_unbounded_combined   s    c         C` sz   t  |  j d d g d d d i d d 6|  j d 6d d 6d d	 d
 |  j } t | d | d  t | j d d g  d  S(   Ng      g      ?R3   t   constraintst   eqt   typeR   R4   R5   R6   R7   R8   i   (   g      (   g      (   R	   R   R'   R   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt#   test_minimize_equality_approximated   s    


c         C` s   t  |  j d d g d |  j d d d d d i d d	 6|  j d
 6d d 6d |  j } t | d | d  t | j d d g  d  S(   Ng      g      ?R%   R4   R5   R3   RC   RD   RE   R   R6   R7   R8   i   (   g      (   g      (   R	   R   R%   R'   R   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_minimize_equality_given   s    
c         C` s   t  |  j d d g d d d |  j d d d i d d	 6|  j d
 6d d 6|  j d 6d |  j } t | d | d  t | j d d g  d  S(   Ng      g      ?R4   R5   R%   R3   RC   RD   RE   R   R6   R7   R8   i   (   g      (   g      (	   R	   R   R%   R'   R(   R   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_minimize_equality_given2   s    

c         C` s   t  |  j d d g d d d |  j d d d i d d	 6|  j d
 6d d 6|  j d 6d |  j } t | d | d  t | j d d g  d  S(   Ng      g      ?R4   R5   R%   R3   RC   RD   RE   R   R6   R7   R8   i   (   g      (   g      (	   R	   R   R%   R)   R+   R   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt(   test_minimize_equality_given_cons_scalar   s    

c         C` s   t  |  j d d g d d d |  j d d d i d d	 6|  j d
 6d d 6d |  j } t | d | d  t | j d d g d d d  S(   Ng      g      ?R4   R5   R%   R3   RC   t   ineqRE   R   R6   R7   R8   i   i   t   atolgMbP?(   g      (   g      (   R	   R   R%   R,   R   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_minimize_inequality_given   s    


c         C` s   t  |  j d d g d |  j d d d d d i d d	 6|  j d
 6|  j d 6d |  j } t | d | d  t | j d d g  d  S(   Ng      g      ?R%   R4   R5   R3   RC   RJ   RE   R   R6   R7   R8   i   i   (   g      (	   R	   R   R%   R/   R2   R   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt1   test_minimize_inequality_given_vector_constraints   s    

c         C` s   t  |  j d d g d d d |  j d d d d d g d i d d 6|  j d 6d d 6|  j d 6d |  j } t | d | d  t | j d
 d
 g d d t d | j d k o d k n  t d	 | j d k o d
 k n  d  S(   Ng      g      ?R4   R5   R%   R3   R>   gig?RC   RD   RE   R   R6   R7   R8   RK   gMbP?i    i   (   g      (   gg      ?(   ig?(   g      (	   R	   R   R%   R'   R(   R   R   R   R   (   R   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt#   test_minimize_bound_equality_given2   s    

'c      	   C` si   t  |  j d d g d d	 d d d d } | \ } } } } } t | d k |  t | d d g  d  S(
   Ng      g      ?R3   t   iprinti    t   full_outputi   i   (   g      (   R   R   R   R   (   R   R9   R   t   fxt   itst   imodet   smode(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_unbounded_approximated   s
    c         C` sr   t  |  j d d g d d
 d |  j d d d d } | \ } } } } } t | d k |  t | d	 d g  d  S(   Ng      g      ?R3   t   fprimeRO   i    RP   i   i   (   g      (   R   R   R%   R   R   (   R   R9   R   RQ   RR   RS   RT   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_unbounded_given   s    	c         C` su   t  |  j d d g d d	 d |  j g d d d d } | \ } } } } } t | d k |  t | d d g  d  S(
   Ng      g      ?R3   t   eqconsRO   i    RP   i   (   g      (   R   R   R'   R   R   (   R   R9   R   RQ   RR   RS   RT   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_equality_approximated   s    c         C` s~   t  |  j d d g d |  j d d
 d |  j g d d d d	 } | \ } } } } } t | d k |  t | d	 d	 g  d  S(   Ng      g      ?RV   R3   RX   RO   i    RP   i   (   g      (   R   R   R%   R'   R   R   (   R   R9   R   RQ   RR   RS   RT   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_equality_given   s    	c         C` s   t  |  j d d g d |  j d d d |  j d |  j d d d	 d
 } | \ } } } } } t | d k |  t | d
 d
 g  d  S(   Ng      g      ?RV   R3   t   f_eqconst   fprime_eqconsRO   i    RP   i   (   g      (   R   R   R%   R'   R(   R   R   (   R   R9   R   RQ   RR   RS   RT   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_equality_given2  s    			c         C` s   t  |  j d d g d |  j d d d |  j g d d d d	 } | \ } } } } } t | d k |  t | d
 d	 g d d d  S(   Ng      g      ?RV   R3   t   ieqconsRO   i    RP   i   i   t   decimali   (   g      (   R   R   R%   R,   R   R   (   R   R9   R   RQ   RR   RS   RT   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_inequality_given  s    c         C` s   t  |  j d d g d |  j d d d d d g d	 |  j d
 |  j d d d d } | \ } } } } } t | d k |  t | d d g d d t d | d k o d k n  t d | d k o d k n  d  S(   Ng      g      ?RV   R3   R>   gig?R[   R\   RO   i    RP   i   R_   i   (   g      (   gg      ?(   ig?(   R   R   R%   R'   R(   R   R   (   R   R9   R   RQ   RR   RS   RT   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_bound_equality_given2  s    		$c         C` so   t  d   d g d d   g d d } t | d g  t  d   d g d	 d
   d d } t | d g  d  S(   Nc         S` s   |  d S(   Ni   (    (   t   z(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   <lambda>'  s    g      @R^   c         S` s   |  d d S(   Ni    i   (    (   Rb   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   (  s    RO   i    g      ?c         S` s   |  d S(   Ni   (    (   Rb   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   ,  s    t	   f_ieqconsc         S` s   |  d d g S(   Ni    i   (    (   Rb   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   -  s    (   R   R   (   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_scalar_constraints%  s    			c         C` s,   t  d   d g d d d g g d d d  S(   Nc         S` s   |  d d S(   Ni   i   (    (   Rb   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   3  s    i    R>   i   RO   (   R   (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_integer_bounds1  s    c      	   C` s0   t  t   t d   d d d g  Wd  QXd  S(   Nc         S` s
   d d g S(   Ni    i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   9  s    i   i   i   (   t   assert_raisest
   ValueErrorR   (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_obj_must_return_scalar5  s    c         C` s#   t  d   d d d g d d d  S(   Nc         S` s   d g S(   Ni    (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   ?  s    i   i   i   RO   i    (   R   (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_obj_returns_scalar_in_list;  s    c         C` sv   t    } t |  j d d g d d d d d | d |  j } t | d | d	  t | j  t | j | d
  d  S(   Ng      g      ?R3   R4   R5   t   callbackR6   R7   R8   t   nit(   g      (   R   R	   R   R   R   R   R   R   (   R   Rk   R9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_callbackA  s    	c      	   C` s   d d g } d   } d   } t  d   | d i d d 6| d	 6i d
 d 6| d	 6f d d d f d d } | j } t | |  d d d t | |  d k  t | j |  d  S(   Ni    i   c         S` s   |  d |  d d S(   Ni    i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   U  s    c         S` s   |  d d d S(   Ni    i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   V  s    c         S` s   |  d d |  d d S(   Ni    i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   X  s    RC   RD   RE   R   RJ   R>   R4   R5   RK   g:0yE>g:0yE(   i    N(   i    N(   R	   R@   R   R   R   R7   (   R   R   t   f1t   f2t   sol(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_inconsistent_linearizationJ  s    
				c      	   C` ss   d d g } t  d   | d i d d 6d   d 6i d	 d 6d
   d 6f d d d f d d } t | j |  d  S(   Ni   i   c         S` s   |  d d |  d d S(   Ni    i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   i  s    RC   RD   RE   c         S` s   |  d |  d d S(   Ni    i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   k  s    R   RJ   c         S` s   |  d d S(   Ni    i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc   l  s    R>   i    R4   R5   (   i    N(   i    N(   R	   R@   R   R7   (   R   R   Rp   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_regression_5743d  s    	c         C` sA   d   } t  | d d d g d d } t | j j d k  d  S(   Nc         S` s8   |  d d d d |  d d d d |  d d d S(   Ni    i   i   g      ?(    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   funcr  s    i    R4   R5   i   (   i   (   R	   R   R%   R1   (   R   Rs   Rp   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_gh_6676q  s    	c         C` s   d	 d
 f d d f d d f t  j d f t  j d f f d t  j f d f g } xC | D]; } t t  ' t |  j d d g d | d d Wd  QXqV Wd  S(   Ni   i   i    g      g      ?R>   R4   R5   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   R    t   infRg   Rh   R	   R   (   R   t   bounds_listR>   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_invalid_boundsx  s    			c         C` s  d   } t  | d g d d d d g } t | j  t | j d d d t  | d	 g d d d d g } t | j  t | j d
 d d t  | d	 g d d d d g } t | j  t | j d d d t  | d g d d d d g } t | j  t | j d
 d d t  | d g d d d d g } t | j  t | j d d d t  | d g d d d d g } t | j  t | j d d d d  S(   Nc         S` s   |  d d d S(   Ni    i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   f  s    i
   R4   t   slsqpR>   i    RK   g|=ii   g      i(   Ni    (   i   N(   Ni    (   i   N(   ii    (   ii    (   R	   R@   R   R7   R   R   (   R   Rx   Rp   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_bounds_clipping  s&    	!!!!!!c         C` s  d   } i d d 6d   d 6g } i d d 6d   d 6g } i d d 6d   d 6i d d 6d   d 6g } t  | d	 g d
 d d | } t | j  t | j d d d t  | d g d
 d d | } t | j  t | j d d d t  | d g d
 d d | } t | j  t | j d d d t  | d	 g d
 d d | } t | j  t | j d d d t  | d g d
 d d | } t | j  t | j d d d t  | d	 g d
 d d | } t | j  t | j d d d d  S(   Nc         S` s   |  \ }  |  |  d |  d S(   Ni   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRx     s    	RJ   RE   c         S` s   d |  S(   Ni    (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc     s    R   c         S` s   |  d S(   Ni   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc     s    c         S` s   d |  S(   Ni    (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc     s    c         S` s   |  d S(   Ni   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc     s    i
   R4   Ry   RC   i    RK   g|=ii   g      (   R	   R   R7   R   R   (   R   Rx   t   cons_ut   cons_lt   cons_ulRp   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_infeasible_initial  s.    	c      	   C` s   d   } d   } d   } d } d d f } t  d d d	 |  t  d d d	 |  f } t | | d
 d d | d | } t | j  d  S(   Nc         S` s   d |  d d |  d S(   Nii    i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   cost  s    c         S` s   |  d |  d d S(   Ni   i    (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt	   ineqcons1  s    c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt	   ineqcons2  s    i   i   iRE   RJ   R   R4   R5   R>   RC   (   i   i   (   ii   (   ii   (   t   dictR	   R   R7   (   R   R   R   R   t   x0R>   t   consR9   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_inconsistent_inequalities  s    			*!c         C` sr   d   } t  d d g t j t j g  } t | d d g d d d | } t | j  t | j d d g  d  S(   Nc         S` s   |  d d |  d d S(   Ni    i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyRc     s    i   i    R4   Ry   R>   (   R   R    Ru   R	   R   R7   R   R   (   R   Rx   R>   Rp   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_new_bounds_type  s
    	!!c         C` s*   d d d     Y} |   } | j    d  S(   Nt   NestedProblemc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         S` s   d |  _  d  S(   Ni    (   t   F_outer_count(   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyR     s    c         S` s   |  j  d 7_  |  j  d k r- t d   n  t |  j d
 d d } t | j  t | j d d g  | d d	 | d d	 | d	 d	 S(   Ni   i  s(   Nested minimization failed to terminate.i   i   R4   R5   i    i   (   i   i   (   R   t	   ExceptionR	   t   F_innerR   R7   R   R   (   R   R   t	   inner_res(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   F_outer  s    c         S` s    | d d d | d d d S(   Ni    i   i   (    (   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyR     s    c         S` sB   t  |  j d d d } t | j  t | j d d d g  d  S(   Ni   R4   R5   i    (   i   i   i   (   R	   R   R   R7   R   R   (   R   t	   outer_res(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   solve  s    (   R   R   R   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyR     s   				(    (   R   (   R   R   t   problem(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   test_nested_minimization  s    	(/   R   R   R   R   R   R%   R&   R'   R(   R)   R+   R,   R-   R/   R2   R:   R;   RA   RB   RF   RG   RH   RI   RL   RM   RN   RU   RW   RY   RZ   R]   R`   Ra   Re   Rf   Ri   Rj   Rm   Rq   Rr   Rt   Rw   Rz   R~   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyR      sZ   								
	
											
		
													#		(   R   t
   __future__R    R   R   t   pytestt   numpy.testingR   R   R   R   R   Rg   t   numpyR    t   scipy.optimizeR   R	   R
   R   t   objectR   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test_slsqp.pyt   <module>   s   ""