ó
î&]\c           @` s˜  d  d l  m Z m Z m Z d  d l 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 d  d l m Z d  d l m Z m Z m Z m Z m Z m Z d  d l m Z d	 d d
 „  ƒ  YZ d d d „  ƒ  YZ d d d „  ƒ  YZ d d  d „  ƒ  YZ d d! d „  ƒ  YZ d e f d „  ƒ  YZ  d e f d „  ƒ  YZ! d e f d „  ƒ  YZ" d d" d „  ƒ  YZ# d e f d „  ƒ  YZ$ d S(#   i    (   t   divisiont   print_functiont   absolute_importN(   t
   block_diag(   t
   csc_matrix(   t   TestCaset   assert_array_almost_equalt   assert_array_lesst   assert_allcloset   assert_(   t   raises(   t   NonlinearConstraintt   LinearConstraintt   Boundst   minimizet   BFGSt   SR1(   t   suppress_warningst   Maratosc           B` sJ   e  Z d  Z d d d d „ Z d „  Z d „  Z d „  Z e d „  ƒ Z	 RS(   s²   Problem 15.4 from Nocedal and Wright

    The following optimization problem:
        minimize 2*(x[0]**2 + x[1]**2 - 1) - x[0]
        Subject to: x[0]**2 + x[1]**2 - 1 = 0
    i<   c         C` si   | d t  j } t  j | ƒ t  j | ƒ g |  _ t  j d d g ƒ |  _ | |  _ | |  _ d  |  _
 d  S(   Ni´   g      ð?g        (   t   npt   pit   cost   sint   x0t   arrayt   x_optt
   constr_jact   constr_hesst   Nonet   bounds(   t   selft   degreesR   R   t   rads(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   __init__   s    !		c         C` s(   d | d d | d d d | d S(   Ni   i    i   (    (   R   t   x(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   fun"   s    c         C` s'   t  j d | d d d | d g ƒ S(   Ni   i    i   (   R   R   (   R   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   grad%   s    c         C` s   d t  j d ƒ S(   Ni   i   (   R   t   eye(   R   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   hess(   s    c         C` sg   d „  } |  j  d  k r$ d „  } n	 |  j  } |  j d  k rH d „  } n	 |  j } t | d d | | ƒ S(   Nc         S` s   |  d d |  d d S(   Ni    i   i   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   -   s    c         S` s   d |  d d |  d g g S(   Ni   i    i   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   jac1   s    c         S` s   d | d t  j d ƒ S(   Ni   i    (   R   R%   (   R"   t   v(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&   7   s    i   (   R   R   R   R   (   R   R#   R'   R&   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   constr+   s    			N(
   t   __name__t
   __module__t   __doc__R   R!   R#   R$   R&   t   propertyR)   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR      s   			t   MaratosTestArgsc           B` sS   e  Z d  Z d d d d „ Z d „  Z d „  Z d „  Z d „  Z e	 d „  ƒ Z
 RS(	   s²   Problem 15.4 from Nocedal and Wright

    The following optimization problem:
        minimize 2*(x[0]**2 + x[1]**2 - 1) - x[0]
        Subject to: x[0]**2 + x[1]**2 - 1 = 0
    i<   c         C` s{   | d t  j } t  j | ƒ t  j | ƒ g |  _ t  j d d g ƒ |  _ | |  _ | |  _ | |  _	 | |  _
 d  |  _ d  S(   Ni´   g      ð?g        (   R   R   R   R   R   R   R   R   R   t   at   bR   R   (   R   R/   R0   R   R   R   R    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR!   G   s    !				c         C` s.   |  j  | k s |  j | k r* t ƒ  ‚ n  d  S(   N(   R/   R0   t
   ValueError(   R   R/   R0   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt
   _test_argsQ   s    c         C` s8   |  j  | | ƒ d | d d | d d d | d S(   Ni   i    i   (   R2   (   R   R"   R/   R0   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   U   s    c         C` s7   |  j  | | ƒ t j d | d d d | d g ƒ S(   Ni   i    i   (   R2   R   R   (   R   R"   R/   R0   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR$   Y   s    c         C` s!   |  j  | | ƒ d t j d ƒ S(   Ni   i   (   R2   R   R%   (   R   R"   R/   R0   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&   ]   s    c         C` sg   d „  } |  j  d  k r$ d „  } n	 |  j  } |  j d  k rH d „  } n	 |  j } t | d d | | ƒ S(   Nc         S` s   |  d d |  d d S(   Ni    i   i   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   c   s    c         S` s   d |  d d |  d g g S(   Ni   i    i   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR'   g   s    c         S` s   d | d t  j d ƒ S(   Ni   i    (   R   R%   (   R"   R(   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&   m   s    i   (   R   R   R   R   (   R   R#   R'   R&   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR)   a   s    			N(   R*   R+   R,   R   R!   R2   R#   R$   R&   R-   R)   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR.   ?   s   
				t   MaratosGradInFuncc           B` sP   e  Z d  Z d d d d „ Z d „  Z e d „  ƒ Z d „  Z e d „  ƒ Z	 RS(   s²   Problem 15.4 from Nocedal and Wright

    The following optimization problem:
        minimize 2*(x[0]**2 + x[1]**2 - 1) - x[0]
        Subject to: x[0]**2 + x[1]**2 - 1 = 0
    i<   c         C` si   | d t  j } t  j | ƒ t  j | ƒ g |  _ t  j d d g ƒ |  _ | |  _ | |  _ d  |  _
 d  S(   Ni´   g      ð?g        (   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR!   }   s    !		c         C` sQ   d | d d | d d d | d t  j d | d d d | d g ƒ f S(   Ni   i    i   i   (   R   R   (   R   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   …   s    'c         C` s   t  S(   N(   t   True(   R   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR$   ‰   s    c         C` s   d t  j d ƒ S(   Ni   i   (   R   R%   (   R   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&      s    c         C` sg   d „  } |  j  d  k r$ d „  } n	 |  j  } |  j d  k rH d „  } n	 |  j } t | d d | | ƒ S(   Nc         S` s   |  d d |  d d S(   Ni    i   i   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   ’   s    c         S` s   d |  d d |  d g g S(   Ni   i    i   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR'   –   s    c         S` s   d | d t  j d ƒ S(   Ni   i    (   R   R%   (   R"   R(   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&   œ   s    i   (   R   R   R   R   (   R   R#   R'   R&   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR)      s    			N(
   R*   R+   R,   R   R!   R#   R-   R$   R&   R)   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR3   u   s   		t   HyperbolicIneqc           B` sG   e  Z d  Z d d d „ Z d „  Z d „  Z d „  Z e d „  ƒ Z	 RS(   s  Problem 15.1 from Nocedal and Wright

    The following optimization problem:
        minimize 1/2*(x[0] - 2)**2 + 1/2*(x[1] - 1/2)**2
        Subject to: 1/(x[0] + 1) - x[1] >= 1/4
                                   x[0] >= 0
                                   x[1] >= 0
    c         C` sI   d d g |  _  d d g |  _ | |  _ | |  _ t d t j ƒ |  _ d  S(   Ni    g–~TÃ>ÿ?gþ~1[²¶?(   R   R   R   R   R   R   t   infR   (   R   R   R   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR!   ­   s
    		c         C` s(   d | d d d d | d d d S(   Ni   i   i    g      à?g      à?g      à?(    (   R   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   ´   s    c         C` s   | d d | d d g S(   Ni    i   i   g      à?(    (   R   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR$   ·   s    c         C` s   t  j d ƒ S(   Ni   (   R   R%   (   R   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&   º   s    c         C` sj   d „  } |  j  d  k r$ d „  } n	 |  j  } |  j d  k rH d „  } n	 |  j } t | d t j | | ƒ S(   Nc         S` s   d |  d d |  d S(   Ni   i    (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   ¿   s    c         S` s   d |  d d d d g g S(   Niÿÿÿÿi    i   i   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR'   Ã   s    c         S` s;   d | d t  j d |  d d d d g d d g g ƒ S(   Ni   i    i   i   (   R   R   (   R"   R(   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&   É   s    *g      Ð?(   R   R   R   R   R   R6   (   R   R#   R'   R&   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR)   ½   s    			N(
   R*   R+   R,   R   R!   R#   R$   R&   R-   R)   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR5   ¤   s   			t
   Rosenbrockc           B` sG   e  Z d  Z d d d „ Z d „  Z d „  Z d „  Z e d „  ƒ Z RS(   s   Rosenbrock function.

    The following optimization problem:
        minimize sum(100.0*(x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0)
    i   i    c         C` sI   t  j j | ƒ } | j d d | ƒ |  _ t  j | ƒ |  _ d  |  _ d  S(   Niÿÿÿÿi   (	   R   t   randomt   RandomStatet   uniformR   t   onesR   R   R   (   R   t   nt   random_statet   rng(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR!   Ù   s    c         C` sP   t  j | ƒ } t  j d | d | d  d d d | d  d d d ƒ} | S(   Ng      Y@i   iÿÿÿÿg       @t   axisi    (   R   t   asarrayt   sum(   R   R"   t   r(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   ß   s    4	c         C` sÐ   t  j | ƒ } | d d !} | d  } | d } t  j | ƒ } d | | d d | | d | d d | | d d +d | d | d | d d d d | d | d <d | d | d d | d <| S(	   Ni   iÿÿÿÿiþÿÿÿi   iÈ   i  ipþÿÿi    (   R   R@   t
   zeros_like(   R   R"   t   xmt   xm_m1t   xm_p1t   der(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR$   å   s    

96c         C` sÒ   t  j | ƒ } t  j d | d  d ƒ t  j d | d  d ƒ } t  j t | ƒ d | j ƒ} d | d d d | d d | d <d	 | d <d
 d | d d !d d | d | d d +| t  j | ƒ } | S(   Nipþÿÿiÿÿÿÿi   i  t   dtypei°  i    i   iÈ   iÊ   (   R   t
   atleast_1dt   diagt   zerost   lenRH   (   R   R"   t   Ht   diagonal(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&   ñ   s    2&
,c         C` s   d S(   N(    (    (   R   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR)   û   s    (	   R*   R+   R,   R!   R#   R$   R&   R-   R)   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR7   Ò   s   			
t   IneqRosenbrockc           B` s)   e  Z d  Z d d „ Z e d „  ƒ Z RS(   sö   Rosenbrock subject to inequality constraints.

    The following optimization problem:
        minimize sum(100.0*(x[1] - x[0]**2)**2.0 + (1 - x[0])**2)
        subject to: x[0] + 2 x[1] <= 1

    Taken from matlab ``fmincon`` documentation.
    i    c         C` s>   t  j |  d | ƒ d d g |  _ d d g |  _ d  |  _ d  S(   Ni   iÿÿÿÿg      à¿gn£¼à?g$¹ü‡ôÛÏ?(   R7   R!   R   R   R   R   (   R   R=   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR!   	  s    c         C` s)   d d g g } d } t  | t j | ƒ S(   Ni   i   (   R   R   R6   (   R   t   AR0   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR)     s    (   R*   R+   R,   R!   R-   R)   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyRO      s   t   BoundedRosenbrockc           B` s   e  Z d  Z d d „ Z RS(   s  Rosenbrock subject to inequality constraints.

    The following optimization problem:
        minimize sum(100.0*(x[1] - x[0]**2)**2.0 + (1 - x[0])**2)
        subject to:  -2 <= x[0] <= 0
                      0 <= x[1] <= 2

    Taken from matlab ``fmincon`` documentation.
    i    c         C` sM   t  j |  d | ƒ d d g |  _ d  |  _ t d d g d d g ƒ |  _ d  S(   Ni   gš™™™™™É¿gš™™™™™É?iþÿÿÿi    (   R7   R!   R   R   R   R   R   (   R   R=   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR!      s    	(   R*   R+   R,   R!   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyRQ     s   	t   EqIneqRosenbrockc           B` s)   e  Z d  Z d d „ Z e d „  ƒ Z RS(   s*  Rosenbrock subject to equality and inequality constraints.

    The following optimization problem:
        minimize sum(100.0*(x[1] - x[0]**2)**2.0 + (1 - x[0])**2)
        subject to: x[0] + 2 x[1] <= 1
                    2 x[0] + x[1] = 1

    Taken from matlab ``fimincon`` documentation.
    i    c         C` s>   t  j |  d | ƒ d d g |  _ d d g |  _ d  |  _ d  S(   Ni   iÿÿÿÿg      à¿gæWs€`ŽÚ?gÙ|\*ÆÅ?(   R7   R!   R   R   R   R   (   R   R=   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR!   1  s    c         C` sP   d d g g } d } d d g g } d } t  | t j | ƒ t  | | | ƒ f S(   Ni   i   (   R   R   R6   (   R   t   A_ineqt   b_ineqt   A_eqt   b_eq(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR)   7  s    (   R*   R+   R,   R!   R-   R)   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyRR   '  s   	t   Elecc           B` s_   e  Z d  Z d d d
 d
 d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 e
 d	 „  ƒ Z RS(   sª  Distribution of electrons on a sphere.

    Problem no 2 from COPS collection [2]_. Find
    the equilibrium state distribution (of minimal
    potential) of the electrons positioned on a
    conducting sphere.

    References
    ----------
    .. [1] E. D. Dolan, J. J. Mor'{e}, and T. S. Munson,
           "Benchmarking optimization software with COPS 3.0.",
            Argonne National Lab., Argonne, IL (US), 2004.
    iÈ   i    c   
      C` sì   | |  _  t j j | ƒ |  _ |  j j d d t j |  j  ƒ } |  j j t j t j |  j  ƒ } t j | ƒ t j | ƒ } t j | ƒ t j | ƒ } t j | ƒ }	 t j	 | | |	 f ƒ |  _
 d  |  _ | |  _ | |  _ d  |  _ d  S(   Ni    i   (   t   n_electronsR   R8   R9   R>   R:   R   R   R   t   hstackR   R   R   R   R   R   (
   R   RX   R=   R   R   t   phit   thetaR"   t   yt   z(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR!   O  s    	""			c         C` sB   | |  j   } | |  j  d |  j  !} | d |  j  } | | | f S(   Ni   (   RX   (   R   R"   t   x_coordt   y_coordt   z_coord(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   _get_cordinates_  s    c         C` ss   |  j  | ƒ \ } } } | d  d  … d  f | } | d  d  … d  f | } | d  d  … d  f | } | | | f S(   N(   Ra   R   (   R   R"   R^   R_   R`   t   dxt   dyt   dz(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   _compute_coordinate_deltase  s
    c         C` ss   |  j  | ƒ \ } } } t j d d ƒ # | d | d | d d } Wd  QXd | t j | ƒ <d t j | ƒ S(   Nt   dividet   ignorei   g      à¿i    g      à?(   Re   R   t   errstatet   diag_indices_fromRA   (   R   R"   Rb   Rc   Rd   t   dm1(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   l  s
    $c   	      C` sÆ   |  j  | ƒ \ } } } t j d d ƒ # | d | d | d d } Wd  QXd | t j | ƒ <t j | | d d ƒ} t j | | d d ƒ} t j | | d d ƒ} t j | | | f ƒ S(   NRf   Rg   i   g      ø¿i    R?   i   (   Re   R   Rh   Ri   RA   RY   (	   R   R"   Rb   Rc   Rd   t   dm3t   grad_xt   grad_yt   grad_z(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR$   s  s    $c         C` s  |  j  | ƒ \ } } } | d | d | d d } t j d d ƒ  | d } | d } Wd  QXt j |  j ƒ } d | | | f <d | | | f <| d | d | }	 t j |	 d	 d
 ƒ|	 | | f <d | | | }
 t j |
 d	 d
 ƒ|
 | | f <d | | | } t j | d	 d
 ƒ| | | f <| d | d | } t j | d	 d
 ƒ| | | f <d | | | } t j | d	 d
 ƒ| | | f <| d | d | } t j | d	 d
 ƒ| | | f <t j t j |	 |
 | f ƒ t j |
 | | f ƒ t j | | | f ƒ f ƒ } | S(   Ni   g      à?Rf   Rg   iýÿÿÿiûÿÿÿi    i   R?   i   (   Re   R   Rh   t   arangeRX   RA   t   vstackRY   (   R   R"   Rb   Rc   Rd   t   dRk   t   dm5t   it   Hxxt   Hxyt   Hxzt   Hyyt   Hyzt   HzzRM   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&   €  s2    
      c         ` sw   ‡  f d †  } ˆ  j  d  k r0 ‡  f d †  } n	 ˆ  j  } ˆ  j d  k rT d „  } n	 ˆ  j } t | t j d | | ƒ S(   Nc         ` s4   ˆ  j  |  ƒ \ } } } | d | d | d d S(   Ni   i   (   Ra   (   R"   R^   R_   R`   (   R   (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   ¨  s    c         ` sm   ˆ  j  |  ƒ \ } } } d t j | ƒ } d t j | ƒ } d t j | ƒ } t t j | | | f ƒ ƒ S(   Ni   (   Ra   R   RJ   R   RY   (   R"   R^   R_   R`   t   Jxt   Jyt   Jz(   R   (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR'   ­  s
    c         S` s#   d t  j | ƒ } t | | | ƒ S(   Ni   (   R   RJ   R   (   R"   R(   t   D(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR&   ·  s    i    (   R   R   R   R   R   R6   (   R   R#   R'   R&   (    (   R   sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR)   ¦  s    		N(   R*   R+   R,   R   R!   Ra   Re   R#   R$   R&   R-   R)   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyRW   A  s   					&t   TestTrustRegionConstrc           B` s\   e  Z e j j d  „  ƒ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(   c         C` s£  t  ƒ  t  d d ƒ t  d t ƒ  ƒ t  d d d t ƒ  ƒ t ƒ  t ƒ  t d d ƒ t d t ƒ  ƒ t d d d t ƒ  ƒ t ƒ  t ƒ  t ƒ  t ƒ  t	 d d ƒ t	 d d d d ƒ t	 d d d t ƒ  ƒ t	 d d d d d t ƒ  ƒ g } x¾| D]¶} x­| j
 d t f D]™} x| j d t ƒ  t d d ƒ t d d	 ƒ f D]a} | d d d
 t f k rb| d k rbq2n  | j
 t k r‰| d t f k r‰q2n  t ƒ  P } | j t d ƒ t | j | j d d d | d | d | j d | j ƒ} Wd  QX| j d  k	 r1t | j | j d d ƒ| j d k r1t | j d ƒ q1n  | j d k rut | j d ƒ | j d k rut | j d ƒ qun  | j d k r2t  d ƒ ‚ q2q2Wqþ Wqå Wd  S(   NR   s   2-pointR   s   3-pointRX   i   t   exception_strategyt   damp_updatet   skip_updatet   css   delta_grad == 0.0t   methods   trust-constrR'   R&   R   t   constraintst   decimali   i   g:Œ0âŽyE>t   tr_interior_pointi    i   s   Invalid termination condition.(   s   2-points   3-pointR‚   (   i    i   (!   R   R   R3   R5   R   R7   RO   RR   RQ   RW   R$   t   FalseR&   R4   R   t   filtert   UserWarningR   R#   R   R   R)   R   R   R   R"   t   statusR   t
   optimalityt	   tr_radiusRƒ   t   barrier_parametert   RuntimeError(   R   t   list_of_problemst   probR$   R&   t   supt   result(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   test_list_of_problemsÂ  sb    		!	c         C` sM   d „  } d g } t  | d d g d | d d ƒ} t | j d	 d
 d ƒd  S(   Nc         S` s   |  d d S(   Ni   i   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#   ÿ  s    iþÿÿÿi   R   g      ø¿R   Rƒ   s   trust-constri   R…   i   (   iþÿÿÿi   (   R   R   R"   (   R   R#   R   t   res(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   test_default_jac_and_hessþ  s    		!c      
   C` sS   d „  } d g } t  | d d g d | d d d	 d
 ƒ} t | j d d d ƒd  S(   Nc         S` s   |  d d S(   Ni   i   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR#     s    iþÿÿÿi   R   g      ø¿R   Rƒ   s   trust-constrR'   s   2-pointi   R…   i   (   iþÿÿÿi   (   R   R   R"   (   R   R#   R   R”   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   test_default_hess  s
    			c         C` sÝ   t  ƒ  } t | j | j d d d | j d | j ƒ} t | j | j d d d d ƒ} t j t ƒ & t | j | j d d d d ƒ} Wd  QXt	 | j
 | j d d	 ƒt	 | j
 | j d d	 ƒt	 | j
 | j d d	 ƒd  S(
   NRƒ   s   trust-constrR'   R&   s   L-BFGS-Bs   2-points   3-pointR…   i   (   R7   R   R#   R   R$   R&   t   pytestt   warnsR‰   R   R"   R   (   R   R   R’   t   result1t   result2(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   test_no_constraints  s    		c         ` s  t  ƒ  ‰  ‡  f d †  } t ˆ  j ˆ  j d d d ˆ  j d | d ˆ  j d ˆ  j ƒ} ˆ  j d  k	 r t	 | j
 ˆ  j d d	 ƒn  | j d
 k r¡ t | j d ƒ n  | j d	 k rå t | j d ƒ | j d k rå t | j d ƒ qå n  | j d k rt d ƒ ‚ n  d  S(   Nc         ` s   ˆ  j  |  ƒ } | j | ƒ S(   N(   R&   t   dot(   R"   t   pRM   (   R   (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   hessp   s    Rƒ   s   trust-constrR'   Rž   R   R„   R…   i   i   g:Œ0âŽyE>R†   i    i   s   Invalid termination condition.(   i    i   (   R   R   R#   R   R$   R   R)   R   R   R   R"   RŠ   R   R‹   RŒ   Rƒ   R   RŽ   (   R   Rž   R’   (    (   R   sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt
   test_hessp  s"    		c         C` s  t  d d ƒ } t | j | j d d d d | j d | j d | j d | j ƒ} | j d  k	 r| t
 | j | j d	 d
 ƒn  | j d k rž t | j d ƒ n  | j d
 k râ t | j d ƒ | j d k râ t | j d ƒ qâ n  | j d k r t d ƒ ‚ n  d  S(   NR/   iê   Rƒ   s   trust-constrR'   R&   R   R„   R…   i   i   g:Œ0âŽyE>R†   i    i   s   Invalid termination condition.(   R/   iê   (   i    i   (   R.   R   R#   R   R$   R&   R   R)   R   R   R   R"   RŠ   R   R‹   RŒ   Rƒ   R   RŽ   (   R   R   R’   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt	   test_args:  s     	c         C` sA   t  ƒ  } t t t | j | j d d d d d d d | j ƒd  S(   NRƒ   s   trust-constrR'   s   2-pointR&   R„   (   R   R
   R1   R   R#   R   R)   (   R   R   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   test_raise_exceptionR  s    	c         C` s‹   d „  } t  d „  d g d d „  d d „  d | d	 d
 ƒ} t | j d ƒ ƒ t | j d d ƒ d k ƒ t | j d d ƒ d k ƒ d  S(   Nc         S` s$   t  d | k ƒ t  d | k ƒ d  S(   Nt   nitt   niter(   R	   (   R"   t   info(    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   callback]  s    c         S` s   |  d S(   Ni   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   <lambda>a  s    i    R'   c         S` s   d |  S(   Ni   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR¦   a  s    R&   c         S` s   d S(   Ni   (    (   R"   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR¦   b  s    R¥   Rƒ   s   trust-constrt   successR¢   iÿÿÿÿi   R£   (   R   R	   t   get(   R   R¥   R’   (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   test_issue_9044X  s    		(   R*   R+   R—   t   markt   slowR“   R•   R–   R›   RŸ   R    R¡   R©   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyR~   À  s   <						(    (    (    (    (    (    (%   t
   __future__R    R   R   t   numpyR   R—   t   scipy.linalgR   t   scipy.sparseR   t   numpy.testingR   R   R   R   R	   R
   t   scipy.optimizeR   R   R   R   R   R   t   scipy._lib._numpy_compatR   R   R.   R3   R5   R7   RO   RQ   RR   RW   R~   (    (    (    sM   lib/python2.7/site-packages/scipy/optimize/tests/test_minimize_constrained.pyt   <module>   s$   (.-6/..