ó
î&]\c           @` s@  d  d l  m Z m Z m Z d  d l Z d  d l m Z m Z m	 Z	 m
 Z
 m Z d  d l 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 m Z m Z m Z m Z m Z m Z d  d l m Z m Z d	 e f d
 „  ƒ  YZ  d e f d „  ƒ  YZ! d e f d „  ƒ  YZ" d e f d „  ƒ  YZ# d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_t   assert_array_almost_equalt   assert_allcloset   assert_equalt   TestCase(   t   suppress_warnings(   t   NonlinearConstraintt   LinearConstraintt   Boundst   OptimizeWarningt   minimizet   BFGSi   (   t   Maratost   HyperbolicIneqt
   Rosenbrockt   IneqRosenbrockt   EqIneqRosenbrockt   BoundedRosenbrockt   Elec(   t   _assert_warnsR   t   TestOldToNewc           B` s;   e  Z d Z d d	 f Z d Z d „  Z d „  Z d „  Z RS(
   i   i    s   trust-constrc         C` sÍ   d „  } i d d 6d „  d 6i d d 6d „  d 6i d d 6d „  d 6f } t  ƒ  A } | j t d ƒ t | |  j d	 |  j d
 |  j d | ƒ} Wd  QXt | j d d g d d ƒt | j	 d d d ƒd  S(   Nc         S` s    |  d d d |  d d d S(   Ni    i   i   g      @(    (   t   x(    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt   <lambda>   s    t   ineqt   typec         S` s   |  d d |  d d S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR      s    t   func         S` s   |  d d |  d d S(   Ni    i   i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR      s    c         S` s   |  d d |  d d S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR      s    s   delta_grad == 0.0t   methodt   boundst   constraintsgffffffö?g333333û?t   rtolg-Cëâ6?gš™™™™™é?(
   R   t   filtert   UserWarningR   t   x0R   t   bndsR   R   R   (   t   selfR   t   const   supt   res(    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt   test_constraint_dictionary_1   s    	c         C` s§   d „  } i d d 6d „  d 6d d 6d	 „  d
 6} t  ƒ  A } | j t d ƒ t | |  j d |  j d |  j d | ƒ} Wd  QXt | j d d g ƒ t | j	 d ƒ d  S(   Nc         S` s    |  d d d |  d d d S(   Ni    i   i   g      @(    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   &   s    t   eqR   c         S` s   | |  d | |  d S(   Ni    i   (    (   R   t   p1t   p2(    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   (   s    R   i   gš™™™™™ñ?t   argsc         S` s   t  j | | g g ƒ S(   N(   t   npt   array(   R   R+   R,   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   *   s    t   jacs   delta_grad == 0.0R   R   R   g>®²[p«ü?g¨r˜7ú?g£,¢,ö?(   i   gš™™™™™ñ?(
   R   R!   R"   R   R#   R   R$   R   R   R   (   R%   R   R&   R'   R(   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt   test_constraint_dictionary_2%   s    	

c         C` s·   d „  } i d d 6d „  d 6t  d „  d d ƒ g } t ƒ  A } | j t d ƒ t | |  j d	 |  j d
 |  j d | ƒ} Wd  QXt | j	 d d g d d ƒt | j
 d d d ƒd  S(   Nc         S` s    |  d d d |  d d d S(   Ni    i   i   g      @(    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   3   s    R   R   c         S` s   |  d d |  d d S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   4   s    R   c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   5   s    i    s   delta_grad == 0.0R   R   R   g      ü?R    g-Cëâ6?g      ò?(   R	   R   R!   R"   R   R#   R   R$   R   R   R   (   R%   R   R&   R'   R(   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt   test_constraint_dictionary_32   s    	(   i   i    N(   i    N(   i    N(	   t   __name__t
   __module__R#   t   NoneR$   R   R)   R1   R2   (    (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR      s   		t   TestNewToOldc           B` s   e  Z d  „  Z d „  Z RS(   c   
      C` sw  d „  } d d d g } g  } d d d g } | j  i d d	 6d
 „  d 6t d „  d d ƒ g ƒ | j  t d d d g d t j ƒ t d „  d d ƒ g ƒ | j  t d „  d t j ƒ t d „  d d ƒ g ƒ x¢ | D]š } i  } xU | D]M } t ƒ  < } | j t ƒ t | | d | d | ƒ}	 |	 j	 | | <Wd  QXqè Wt
 | d | d d d ƒt
 | d | d d d ƒqÕ Wd  S(   Nc         S` s0   |  d d d |  d d d |  d d d S(   Ni    i   i   g      @g      è?(    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   B   s    i   i    i   t   slsqpt   cobylas   trust-constrR   R   c         S` s   |  d d |  d d S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   H   s    R   c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   I   s    iÿÿÿÿiþÿÿÿc         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   L   s    c         S` s   |  d d |  d d S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   N   s    c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   O   s    R   R   R    g-Cëâ6?(   t   appendR	   R
   R.   t   infR   R!   R"   R   R   R   (
   R%   R   R#   t   conit   methodst   cont   funsR   R'   t   result(    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt    test_multiple_constraint_objectsA   s&    	!c         C` sR  d „  } d d d g } g  } g  } d d d g } | j  t d „  d d ƒ ƒ | j  t d	 „  d
 g d
 g ƒ ƒ | j  t d „  d
 t j d
 g ƒ ƒ ƒ | j  t d „  d
 d
 ƒ ƒ | j  t d „  d
 d g d
 d g ƒ ƒ | j  t d „  d
 d
 g d
 ƒ ƒ | j  t d „  d
 t j g d
 t j g ƒ ƒ | j  t d „  d
 t j ƒ ƒ | j  t d „  d
 g t j ƒ ƒ | j  t d „  d
 t j t j g ƒ ƒ ƒ | j  t d „  t j d ƒ ƒ | j  t d „  t j t j ƒ d ƒ ƒ | j  t d „  d
 t j ƒ ƒ | j  t d „  d
 t j g d
 d g ƒ ƒ | j  t d „  d d g d d g ƒ ƒ | j  t d „  d d g d  d! g ƒ ƒ | j  t d d" d g d
 d
 ƒ ƒ | j  t d d" d g d d d" g g d
 d
 ƒ ƒ | j  t d d" d g d d d" g g d
 t j g d
 d g ƒ ƒ x¢ | D]š } i  } xU | D]M } t ƒ  < }	 |	 j t ƒ t	 | | d# | d$ | ƒ}
 |
 j
 | | <Wd  QXq,Wt | d | d d% d& ƒt | d | d d% d& ƒqWx” | D]Œ } i  } xb | d  d  d … D]M } t ƒ  < }	 |	 j t ƒ t	 | | d# | d$ | ƒ}
 |
 j
 | | <Wd  QXqÞWt | d | d d% d& ƒq¾Wd  S('   Nc         S` s0   |  d d d |  d d d |  d d d S(   Ni    i   i   g      @g      è?(    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   \   s    i   i    i   R7   R8   s   trust-constrc         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   d   s    c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   e   s    g\Âõ(\ó?c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   f   s    c         S` s"   |  d |  d |  d |  d g S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   k   s    c         S` s"   |  d |  d |  d |  d g S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   n   s    gffffffö?c         S` s"   |  d |  d |  d |  d g S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   q   s    c         S` s"   |  d |  d |  d |  d g S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   t   s    c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   x   s    c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   y   s    c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   z   s    c         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   |   s    iýÿÿÿc         S` s   |  d |  d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   }   s    c         S` s"   |  d |  d |  d |  d g S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   ‚   s    c         S` s"   |  d |  d |  d |  d g S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   …   s    c         S` s"   |  d |  d |  d |  d g S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   ˆ   s    gš™™™™™ñ?gš™™™™™é?g333333ó?c         S` s"   |  d |  d |  d |  d g S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   ‹   s    g333333ó¿gffffffö¿gš™™™™™ñ¿gš™™™™™é¿iÿÿÿÿR   R   R    gü©ñÒMbP?(   R9   R	   R.   R/   R:   R
   R   R!   R"   R   R   R   (   R%   R   R#   t   coneR;   R<   R=   R>   R   R'   R?   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt"   test_individual_constraint_objects[   sz    	"				 " 				"1$(   R3   R4   R@   RB   (    (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR6   ?   s   	t   TestNewToOldSLSQPc           B` sž   e  Z d  Z e d d ƒ Z e j d d d d d d g ƒ e _ e ƒ  Z	 d	 d	 g e	 _ e
 ƒ  e ƒ  e ƒ  e ƒ  e ƒ  e e	 g Z d
 „  Z d „  Z d „  Z RS(   R7   t   n_electronsi   gE€G³â¿g”}_uG³â?g’oñç?ghíSáç¿g©à	 )àÕ?g8M)àÕ¿i    c         C` s€   xy |  j  D]n } t ƒ  D } | j t ƒ t | j | j d |  j d | j d | j	 ƒ} Wd  QXt
 | j | j d d ƒq
 Wd  S(   NR   R   R   t   decimali   (   t   list_of_problemsR   R!   R"   R   R   R#   R   R   t   constrR   R   t   x_opt(   R%   t   probR'   R?   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt   test_list_of_problems¸   s    		c         C` s‡   d „  } t  d „  d d g d d g ƒ } d d d f } t ƒ  ? } | j t d ƒ t t t | d d
 |  j d | d | ƒWd  QXd  S(   Nc         S` s0   |  d d d |  d d d |  d d d S(   Ni    i   i   g      @g      è?(    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   Ç   s    c         S` s&   |  d d |  d |  d |  d g S(   Ni    i   i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   È   s    gš™™™™™ñ?gš™™™™™é?gffffffö?i    s   delta_grad == 0.0i   i   R   R   R   (   i    N(   i    N(   i    N(   i   i    i   (	   R	   R5   R   R!   R"   R   R   R   R   (   R%   R   R&   R$   R'   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt   test_warn_mixed_constraintsÅ   s    		c         C` sÙ  d „  } d } |  j  d k r0 d d d f } n d  } t d „  d t j ƒ } t | | d |  j  d | d	 | ƒ} t | j d ƒ t d d d g d t j ƒ } t | | d |  j  d | d	 | ƒ} t | j d ƒ g  } | j	 t d
 „  d t j d t
 ƒƒ | j	 t d „  d t j d t ƒ  ƒƒ | j	 t d „  d t j d d ƒƒ | j	 t d „  d t j d d ƒƒ | j	 t d d d g d t j d t
 ƒƒ x6 | D]. } t t t | | d |  j  d | d	 | ƒq£Wd  S(   Nc         S` s0   |  d d d |  d d d |  d d d S(   Ni    i   i   g      @g      è?(    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   Ò   s    i   i    i   R7   c         S` s   |  d S(   Ni    (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   Ú   s    R   R   R   c         S` s   |  d d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   ç   s    t   keep_feasiblec         S` s   |  d d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   é   s    t   hessc         S` s   |  d d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   ë   s    t   finite_diff_jac_sparsityi*   c         S` s   |  d d S(   Ni    i   (    (   R   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyR   í   s    t   finite_diff_rel_step(   i   i    i   (   i    N(   i    N(   i    N(   R   R5   R	   R.   R:   R   R   R   R
   R9   t   TrueR   R   R   (   R%   R   R#   R$   R&   R(   R=   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt   test_warn_ignored_optionsÐ   s6    	


!
(   R3   R4   R   R   t   elecR.   R/   RH   R   t   brockR   R   R   R   R   RF   RJ   RK   RQ   (    (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyRC   ¨   s    				t   TestNewToOldCobylac           B` sA   e  Z d  Z e d d ƒ e d d ƒ g Z e j j d „  ƒ Z RS(   R8   RD   i   i   c         C` s­   x¦ |  j  D]› } t ƒ  q } | j t ƒ t | j | j d d d | j d | j ƒ} t | j | j d |  j	 d | j d | j ƒ} Wd  QXt
 | j | j d d ƒq
 Wd  S(   NR   s   trust-constrR   R   R    gü©ñÒMbP?(   RF   R   R!   R"   R   R   R#   R   RG   R   R   (   R%   RI   R'   t   truthR?   (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyRJ   þ   s    			(	   R3   R4   R   R   RF   t   pytestt   markt   slowRJ   (    (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyRT   ö   s   ($   t
   __future__R    R   R   t   numpyR.   t   numpy.testingR   R   R   R   R   RV   t   scipy._lib._numpy_compatR   t   scipy.optimizeR	   R
   R   R   R   R   t   test_minimize_constrainedR   R   R   R   R   R   R   R   t   objectR   R6   RC   RT   (    (    (    sN   lib/python2.7/site-packages/scipy/optimize/tests/test_constraint_conversion.pyt   <module>   s   (.4,iN