
&]\c           @   s  d  d l  Z  d  d l Z d  d l Z d  d l m Z m Z d  d l m Z d  d l m	 Z	 d e
 f d     YZ d   Z d e f d	     YZ e d
 d_ d` g d d d g  Z e d
 da db g d d d g  Z e d
 dc dd g d d d g  Z d e f d     YZ e d
 de g d d g d d d e j d g d g d g d g d g d g d g d g d g d g g
  d e j d d  d! d" d# d$ d% d& d' d( g
   Z e d
 df g d d g d d g d e j d g g  d e j d g   Z d* e f d+     YZ e d
 dg dh g d di dj g d d1  Z d2 e f d3     YZ e d
 dk g d6 d d7 d8 d9 d: d; d< d= g d d>  Z d? e f d@     YZ e d
 dl dm g d dC g d dD dE g  Z dF e f dG     YZ d Z e e dH g d dI g d   Z  e d
 e  d dJ g d dK dK dL dK dK dM g  Z! dN e f dO     YZ" e" d
 dn do g d d- g d dP dP g  Z# dQ e f dR     YZ$ e$ d
 dp dq g d d d d  Z% dr dS dT d d d d dU dV  Z& dW e
 f dX     YZ' dY e
 f dZ     YZ( d[ e
 f d\     YZ) d] e
 f d^     YZ* d S(s   iN(   t   raisest   warns(   t   shgo(   t   SHGOt   StructTestFunctionc           B   s   e  Z d d d d   Z RS(   c         C   s1   | |  _  | |  _ | |  _ | |  _ | |  _ d  S(   N(   t   boundst
   expected_xt   expected_funt   expected_xlt   expected_funl(   t   selfR   R   R   R   R	   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   __init__
   s
    				N(   t   __name__t
   __module__t   NoneR   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR   	   s   c         C   s   g  } |  d  k	 r} t |   t k	 rB t |   t k	 rB |  f }  n  x) |  D]! }  | j i d d 6|  d 6 qI Wt |  } n d  } | S(   Nt   ineqt   typet   fun(   R   R   t   tuplet   listt   append(   t   gt   cons(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   wrap_constraints   s    $t   StructTest1c           B   s&   e  Z d    Z d   Z e e  Z RS(   c         C   s   | d d | d d S(   Ni    i   i   (    (   R
   t   x(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   f$   s    c         C   s   t  j |  d d d S(   Nt   axisi    g      @(   t   numpyt   sum(   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR   '   s    (   R   R   R   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR   #   s   		R   i   R   i    i   t   StructTest2c           B   s,   e  Z d  Z d   Z d   Z e e  Z RS(   sN   
    Scalar function with several minima to test all minimiser retrievals
    c         C   s   | d t  j |  S(   Ni   (   R   t   sin(   R
   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR   :   s    c         C   s   d t  j |  d d S(   Ni:   R   i    (   R   R   (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR   =   s    (   R   R   t   __doc__R   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR   5   s   		i<   g⡽4$?R   g0_r<R   g GK@g
]<@gI{_H@gi<&,@g>E@gqŤCQ4@g8$B@go.n:@g^5	>@R	   gs8g^V&+6g+?-2g+!/gN|1(gc=C#g^\gNg自ݿg      @t   StructTest3c           B   sA   e  Z d  Z d   Z d   Z d   Z e e f Z e e  Z RS(   s  
    Hock and Schittkowski 18 problem (HS18). Hoch and Schittkowski (1981)
    http://www.ai7.uni-bayreuth.de/test_problem_coll.pdf
    Minimize: f = 0.01 * (x_1)**2 + (x_2)**2

    Subject to: x_1 * x_2 - 25.0 >= 0,
                (x_1)**2 + (x_2)**2 - 25.0 >= 0,
                2 <= x_1 <= 50,
                0 <= x_2 <= 50.

    Approx. Answer:
        f([(250)**0.5 , (2.5)**0.5]) = 5.0


    c         C   s   d | d d | d d S(   Ng{Gz?i    i   i   (    (   R
   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR   r   s    c         C   s   |  d |  d d S(   Ni    i   g      9@(    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   g1u   s    c         C   s   |  d d |  d d d S(   Ni    i   i   g      9@(    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   g2x   s    (	   R   R   R    R   R"   R#   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR!   a   s   			i   i2   i   g      ?g      @g      @t   StructTest4c           B   sY   e  Z d  Z d   Z d   Z d   Z d   Z d   Z e e e e f Z e	 e  Z
 RS(   s   
    Hock and Schittkowski 11 problem (HS11). Hoch and Schittkowski (1981)

    NOTE: Did not find in original reference to HS collection, refer to
          Henderson (2015) problem 7 instead. 02.03.2016
    c         C   s   | d d d d | d d 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   i   i   i   i   i   i   (    (   R
   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR      s    c         C   sI   d |  d d d |  d d |  d d |  d d d |  d d S(   Ni   i    i   i   i   i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR"      s    c         C   s=   d |  d d |  d d |  d d |  d |  d d S(	   Ni   i    i   i   i
   i   i   g     q@(    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR#      s    c         C   s9   d |  d |  d d d |  d d d |  d d S(	   Ni   i    i   i   i   i   i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   g3   s    c         C   sY   d |  d d |  d d d |  d |  d d |  d d d |  d d |  d S(	   Ni   i    i   i   i   i   i   i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   g4   s    (   R   R   R    R   R"   R#   R%   R&   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR$      s   					ii
   i   gܤ@g$H8?g	޿g0ev@gn8)gk_@/?g0g+?gP{[
E@t   StructTest5c           B   s#   e  Z d    Z d Z e e  Z RS(   c         C   sq   | d d t  j t  j t | d d | d d    | d t  j t  j t | d | d d    S(   Ni   g     G@i    g       @(   R   R   t   sqrtt   abs(   R
   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR      s    0N(   R   R   R   R   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR'      s   	i i   g g      @gyCy@t   StructTestLJc           B   s)   e  Z d  Z d   Z d Z e e  Z RS(   sV   
    LennardJones objective function. Used to test symmetry constraints settings.
    c         G   s
  | d |  _  t |  j  d  } d } x t | d  D] } x t | d |  D] } d | } d | } | | | | }	 | | d | | d }
 | | d | | d } |	 |	 |
 |
 | | } | | | } | d k rQ | d | d | 7} qQ qQ Wq7 W| S(   Ni    i   g        i   i   g      ?g       @(   t   Nt   intt   range(   R
   R   t   argst   kt   st   it   jt   at   bt   xdt   ydt   zdt   edt   ud(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR      s    

!N(   R   R   R    R   R   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR*      s   	g      g      @g      g/Ur]g) g=S t   StructTestTablec           B   s#   e  Z d    Z d Z e e  Z RS(   c         C   s,   | d d k r$ | d d k r$ d Sd Sd  S(   Ni    g      @i   i2   id   (    (   R
   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR      s     N(   R   R   R   R   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR:      s   	g      @t   StructTestInfeasiblec           B   sY   e  Z d  Z d   Z d   Z d   Z d   Z d   Z e e e e f Z e	 e  Z
 RS(   s0   
    Test function with no feasible domain.
    c         G   s   | d d | d d S(   Ni    i   i   (    (   R
   R   R.   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR      s    c         C   s   |  d |  d d S(   Ni    i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR"     s    c         C   s   |  d |  d d S(   Ni    i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR#     s    c         C   s   |  d |  d d S(   Ni    i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR%     s    c         C   s   |  d |  d d S(   Ni    i   (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR&   
  s    (   R   R   R    R   R"   R#   R%   R&   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR;      s   					gh㈵>id   t   sobolc	   
      C   s#  t  |  j |  j d | d |  j d | d | d | d | d | d | }	 t j |	  |  j d  k	 r t j	 j
 |	 j |  j d	 | d
 | n  |  j d  k	 r t j	 j
 |	 j |  j d
 | n  |  j d  k	 r t j	 j
 |	 j |  j d
 | n  |  j d  k	 rt j	 j
 |	 j |  j d
 | n  d  S(   NR.   t   constraintst   nt   iterst   callbackt   minimizer_kwargst   optionst   sampling_methodt   rtolt   atol(   R   R   R   R   t   loggingt   infoR   R   R   t   testingt   assert_allcloseR   R   R   R   t   xlR	   t   funl(
   t   testR.   t	   test_atolR>   R?   R@   RA   RB   RC   t   res(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   run_test  s,    !	
	
	
	
t   TestShgoSobolTestFunctionsc           B   sk   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z e	 j
 j d    Z d   Z d	   Z RS(
   s8   
    Global optimisation tests with Sobol sampling:
    c         C   s   t  t  d S(   sV   Multivariate test function 1:
        x[0]**2 + x[1]**2 with bounds=[(-1, 6), (-1, 6)]N(   RO   t   test1_1(   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f1_1_sobol?  s    c         C   s   t  t  d S(   sU   Multivariate test function 1:
         x[0]**2 + x[1]**2 with bounds=[(0, 1), (0, 1)]N(   RO   t   test1_2(   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f1_2_sobolD  s    c         C   s   t  t  d S(   s_   Multivariate test function 1:
        x[0]**2 + x[1]**2 with bounds=[(None, None),(None, None)]N(   RO   t   test1_3(   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f1_3_sobolI  s    c         C   s   t  t  d S(   sR   Univariate test function on
        f(x) = (x - 30) * sin(x) with bounds=[(0, 60)]N(   RO   t   test2_1(   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f2_1_sobolN  s    c         C   s   t  t  d S(   sN   Univariate test function on
        f(x) = (x - 30) * sin(x) bounds=[(0, 4.5)]N(   RO   t   test2_2(   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f2_2_sobolS  s    c         C   s   t  t  d S(   s%   NLP: Hock and Schittkowski problem 18N(   RO   t   test3_1(   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f3_sobolX  s    c         C   s'   i t  d 6} t t d d d | d S(   s?   NLP: (High dimensional) Hock and Schittkowski 11 problem (HS11)t   infty_constraintsR>   i  RB   N(   t   FalseRO   t   test4_1(   R
   RB   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f4_sobol\  s    c         C   s   t  t d d d S(   s   NLP: Eggholder, multimodalR>   i   N(   RO   t   test5_1(   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f5_1_sobold  s    c         C   s   t  t d d d d d S(   s   NLP: Eggholder, multimodalR>   i<   R?   i   N(   RO   Ra   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f5_2_sobolh  s    (   R   R   R    RR   RT   RV   RX   RZ   R\   t   pytestt   markt   slowR`   Rb   Rc   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyRP   9  s   							t   TestShgoSimplicialTestFunctionsc           B   sb   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z e	 j
 j d    Z d   Z RS(	   s=   
    Global optimisation tests with Simplicial sampling:
    c         C   s   t  t d d d d d S(   sV   Multivariate test function 1:
        x[0]**2 + x[1]**2 with bounds=[(-1, 6), (-1, 6)]R>   i   RC   t
   simplicialN(   RO   RQ   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f1_1_simplicialw  s    c         C   s   t  t d d d d d S(   sT   Multivariate test function 1:
        x[0]**2 + x[1]**2 with bounds=[(0, 1), (0, 1)]R>   i   RC   Rh   N(   RO   RS   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f1_2_simplicial|  s    c         C   s   t  t d d d d d S(   s_   Multivariate test function 1: x[0]**2 + x[1]**2
        with bounds=[(None, None),(None, None)]R>   i   RC   Rh   N(   RO   RU   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f1_3_simplicial  s    c         C   s-   i t  d 6} t t d d d | d d d S(   sR   Univariate test function on
        f(x) = (x - 30) * sin(x) with bounds=[(0, 60)]t   minimize_every_iterR?   i   RB   RC   Rh   N(   R^   RO   RW   (   R
   RB   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f2_1_simplicial  s    c         C   s   t  t d d d d d S(   sN   Univariate test function on
        f(x) = (x - 30) * sin(x) bounds=[(0, 4.5)]R>   i   RC   Rh   N(   RO   RY   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f2_2_simplicial  s    c         C   s   t  t d d d d d S(   s%   NLP: Hock and Schittkowski problem 18R>   i   RC   Rh   N(   RO   R[   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f3_simplicial  s    c         C   s   t  t d d d d d S(   s?   NLP: (High dimensional) Hock and Schittkowski 11 problem (HS11)R>   i   RC   Rh   N(   RO   R_   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_f4_simplicial  s    c         C   sF   i t  d 6t  d 6} d } t t d | d d d | d d d	 d
 d S(   s&   LJ: Symmetry constrained test functiont   symmetryt   dispi   R.   R>   RB   R?   i   RC   Rh   N(   i   (   t   TrueRO   t   testLJR   (   R
   RB   R.   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_lj_symmetry  s    

(   R   R   R    Ri   Rj   Rk   Rm   Rn   Ro   Rd   Re   Rf   Rp   Ru   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyRg   r  s   						t   TestShgoArgumentsc           B   s  e  Z d    Z d   Z d   Z d   Z d   Z d   Z e j	 j
 d    Z e j	 j
 d    Z e j	 j
 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(   c         C   s    t  t d d d d d d d S(   s>   Iterative simplicial sampling on TestFunction 1 (multivariate)R>   R?   i   RC   Rh   N(   RO   RS   R   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_1_1_simpl_iter  s    c      
   C   s3   i t  d 6} t t d d d d d | d d d S(	   s3   Iterative simplicial on TestFunction 2 (univariate)Rl   R>   R?   i   RB   RC   Rh   N(   R^   RO   RW   R   (   R
   RB   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_1_2_simpl_iter  s    c         C   s    t  t d d d d d d d S(   s9   Iterative Sobol sampling on TestFunction 1 (multivariate)R>   R?   i   RC   R<   N(   RO   RS   R   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_2_1_sobol_iter  s    c         C   sx   t  t j t j d t j d d
 d d d d } t j j | j	 t j
 d d d	 d t j j | j t j d	 d d
 S(   s7   Iterative Sobol sampling on TestFunction 2 (univariate)R=   R>   R?   i   RC   R<   RD   gh㈵>RE   N(   R   RW   R   R   R   R   R   RH   RI   R   R   R   R   (   R
   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_2_2_sobol_iter  s
    c         C   s   d   } x| t  t g D]n } t | j | j d d d d d | d i t d 6} t | j | j d	 d d d d | d i t d 6} q Wd
 S(   sB   Iterative sampling on TestFunction 1 and 2  (multi and univariate)c         S   s	   d GHd  S(   Ns    Local minimization callback test(    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   callback_func  s    R?   i   RC   Rh   R@   RB   Rr   R>   N(   RQ   RW   R   R   R   Rs   (   R
   R{   RL   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_3_1_disp_simplicial  s    	c         C   s   d   } x| t  t g D]n } t | j | j d d d d d | d i t d 6} t | j | j d	 d d d
 d | d i t d 6} q Wd S(   sA   Iterative sampling on TestFunction 1 and 2 (multi and univariate)c         S   s	   d GHd  S(   Ns    Local minimization callback test(    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR{     s    R?   i   RC   R<   R@   RB   Rr   R>   Rh   N(   RQ   RW   R   R   R   Rs   (   R
   R{   RL   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_3_2_disp_sobol  s    	c      
   C   sD   i t  j d 6d d 6t d 6} t t  d d d d d | d	 d
 d S(   s,   Test known function minima stopping criteriat   f_mingư>t   f_tolRl   R>   RM   gh㈵>RB   RC   Rh   N(   R_   R   Rs   RO   R   (   R
   RB   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_4_1_known_f_min  s
    
c      
   C   sK   i t  j d 6d d 6t d 6d d 6} t t  d d d d	 d
 | d d d S(   s*   Test Global mode limiting local evalutionsR~   gư>R   Rl   i   t
   local_iterR>   RM   gh㈵>RB   RC   Rh   N(   R_   R   Rs   RO   R   (   R
   RB   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_4_2_known_f_min  s    

c      
   C   sR   i t  j d 6d d 6t d 6d d 6t d 6} t t  d d	 d
 d d | d d d S(   s*   Test Global mode limiting local evalutionsR~   gư>R   Rl   i   R   R]   R>   i,  RM   gh㈵>RB   RC   R<   N(   R_   R   Rs   R^   RO   (   R
   RB   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_4_3_known_f_min  s    

c         C   s   i t  j d 6d d 6t d 6d d 6t d 6} t t  j t  j d t  j d	 d d
 d d | d d } t	 j
 j | j t  j d d d d d S(   s7   Test Global mode limiting local evalutions for 1D funcsR~   gư>R   Rl   i   R   R]   R=   R>   R?   RB   RC   R<   RD   gh㈵>RE   N(   RW   R   Rs   R^   R   R   R   R   R   R   RH   RI   R   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_4_4_known_f_min  s    

	c         C   sG   t  t j t j d t j } t j j | j t j	 d d d d d S(   s;   Test Default simplicial sampling settings on TestFunction 1R=   RD   gh㈵>RE   N(
   R   RQ   R   R   R   R   RH   RI   R   R   (   R
   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_5_1_simplicial_argless  s    c         C   sM   t  t j t j d t j d d } t j j | j t j	 d d d d d S(   s6   Test Default sobol sampling settings on TestFunction 1R=   RC   R<   RD   gh㈵>RE   N(
   R   RQ   R   R   R   R   RH   RI   R   R   (   R
   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_5_2_sobol_argless  s    	c      	   C   s   i d d 6} t  t j t j d t j d | d d } t j j | j t j	 d d d	 d t j j | j
 t j d	 d d
 S(   s:   Test that maximum iteration option works on TestFunction 3i   t   max_iterR=   RB   RC   Rh   RD   gh㈵>RE   N(   R   R[   R   R   R   R   RH   RI   R   R   R   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_6_1_simplicial_max_iter  s    c      	   C   s   i d d 6} t  t j t j d t j d | d d } t j j | j t j	 d d d	 d t j j | j
 t j d	 d d
 S(   s:   Test that maximum iteration option works on TestFunction 3i   t   min_iterR=   RB   RC   Rh   RD   gh㈵>RE   N(   R   R[   R   R   R   R   RH   RI   R   R   R   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_6_2_simplicial_min_iter$  s    c         C   sk   xd d d g D]V } i | d 6t  j d 6} d j |  GHd d GHt t  d d d	 d
 d | d d q Wd S(   s@   Test the minimizer_kwargs arguments for solvers with constraintst   COBYLAt   SLSQPt   methodR=   s   Solver = {}t   =id   R>   RM   gMbP?RA   RC   R<   N(   R[   R   t   formatRO   (   R
   t   solverRA   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_7_1_minkwargs-  s    
	c      	   C   sL   i d d 6} i t  d 6} t t j t j d t j d d | d | } d S(	   s'   Test the minimizer_kwargs default initsgh㈵>t   ftolRr   R=   i    RA   RB   N(   Rs   R   R[   R   R   R   (   R
   RA   RB   t   SHGOc(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_7_2_minkwargs:  s    c         C   s   x d d d d d d d d d	 d
 d g D]| } d   } d   } i | d 6| d 6| d 6} t  j d j |   t  j d d  t t d d d d d | d d q( Wd S(   s?   Test minimizer_kwargs arguments for solvers without constraintss   Nelder-Meadt   Powellt   CGt   BFGSs	   Newton-CGs   L-BFGS-Bt   TNCt   doglegs	   trust-ncgs   trust-exacts   trust-krylovc         S   s&   t  j d |  d d |  d g  j S(   Ni   i    i   (   R   t   arrayt   T(   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   jacF  s    c         S   s   t  j d d g d d g g  S(   Ni   i    (   R   R   (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   hessI  s    R   R   R   s   Solver = {}R   id   R>   RM   gMbP?RA   RC   R<   N(   RF   RG   R   RO   RQ   (   R
   R   R   R   RA   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_7_3_minkwargsA  s    		

c      
   C   s:   i d d 6t  d 6} t t d d  d d  d | d d d  S(	   Ni   t   minhgrdRl   R>   R?   RB   RC   Rh   (   Rs   RO   RQ   R   (   R
   RB   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_8_homology_group_diffT  s    

c         C   s&   t  t j t j d t j d } d S(   s'   Test single function constraint passingR=   i    N(   R   R[   R   R   R   (   R
   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_9_cons_g[  s    c         C   s>   i d d 6} t  t j t j d d d d	 d | d d } d	 S(
   s'   Test single function constraint passinggV瞯<t   maxtimeR>   i   R?   RB   RC   R<   N(   R   RQ   R   R   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_10_finite_time_  s    c         C   sE   i d d 6d d 6} t  t j t j d d d d d | d	 d
 } d S(   s*   Test to cover the case where f_lowest == 0gV瞯<R   g        R~   R>   i   R?   RB   RC   R<   N(   R   RS   R   R   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_11_f_min_timee  s    

c         C   sE   i d d 6d d 6} t  t j t j d d d d d | d	 d
 } d S(   s*   Test to cover the case where f_lowest == 0gV瞯<R   g        R~   R>   i   R?   RB   RC   R<   N(   R   RS   R   R   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_12_sobol_inf_consl  s    

c         C   s9   d   } d g d } t | |  } | j d d  d S(   s-   Test init of high-dimensional sobol sequencesc         S   s   d S(   Ni    (    (   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR   v  s    i)   i   i2   N(   NN(   R   R   t   sobol_points(   R
   R   R   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_13_high_sobols  s    	c         C   s'   i d d 6} t  t d d d | d S(   s6   Test limited local iterations for a pseudo-global modei   R   R>   i   RB   N(   RO   Ra   (   R
   RB   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_14_local_iter}  s    c      
   C   s3   i t  d 6} t t d d d d d | d d d	 S(
   s9   Test minimize every iter options and cover function cacheRl   R>   i   R?   i   RB   RC   R<   N(   Rs   RO   RQ   (   R
   RB   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_15_min_every_iter  s    (   R   R   Rw   Rx   Ry   Rz   R|   R}   Rd   Re   Rf   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyRv     s2   																							
	t   TestShgoFailuresc           B   sb   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   c         C   sj   i d d 6} t  t j t j d d d d	 d | d d } t j j t | j	  t j j d | j
  d	 S(
   s'   Test failure on insufficient iterationsi   t   maxiterR>   R?   RB   RC   R<   i   N(   R   R_   R   R   R   R   RH   t   assert_equalR^   t   successt   nfev(   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_1_maxiter  s
    c         C   s#   t  t t t j t j d d d S(   s$   Rejection of unknown sampling methodRC   t	   not_SobolN(   t   assert_raisest
   ValueErrorR   RQ   R   R   (   R
   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_2_sampling  s    c      	   C   sk   i d d 6t  d 6} t t j t j d d d | d d } t j j t | j	  t j j d	 | j
  d
 S(   so   Check that the routine stops when no minimiser is found
           after maximum specified function evaluationsi
   t   maxfevRr   R>   i   RB   RC   R<   i   N(   Rs   R   t
   test_tableR   R   R   RH   R   R^   R   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_3_1_no_min_pool_sobol  s    

	c      	   C   sU   i d d 6t  d 6} t t j t j d d d | d d } t j j t | j	  d	 S(
   so   Check that the routine stops when no minimiser is found
           after maximum specified sampling evaluationsi
   t   maxevRr   R>   i   RB   RC   Rh   N(
   Rs   R   R   R   R   R   RH   R   R^   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_3_2_no_min_pool_simplicial  s
    

	c         C   s&   d d g } t  t t t j |  d S(   s   Specified bounds ub > lbi   i   i   N(   i   i   (   i   i   (   R   R   R   RQ   R   (   R
   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_4_1_bound_err  s    c         C   s&   d d g } t  t t t j |  d S(   s)   Specified bounds are of the form (lb, ub)i   i   N(   i   i   i   (   i   i   (   R   R   R   RQ   R   (   R
   R   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_4_2_bound_err  s    c         C   s^   i d d 6t  d 6} t t j t j d t j d d d | d d } t j j t	 | j
  d	 S(
   sx   Ensures the algorithm terminates on infeasible problems
           after maxev is exceeded. Use infty constraints optionid   R   Rr   R=   R>   RB   RC   R<   N(   Rs   R   t   test_infeasibleR   R   R   R   RH   R   R^   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_5_1_1_infeasible_sobol  s    

	c         C   se   i d d 6t  d 6t d 6} t t j t j d t j d d d | d d	 } t j j	 t | j
  d
 S(   s   Ensures the algorithm terminates on infeasible problems
           after maxev is exceeded. Do not use infty constraints optionid   R   Rr   R]   R=   R>   RB   RC   R<   N(   Rs   R^   R   R   R   R   R   R   RH   R   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_5_1_2_infeasible_sobol  s    

	c         C   s^   i d d 6t  d 6} t t j t j d t j d d d | d d	 } t j j t  | j	  d
 S(   s[   Ensures the algorithm terminates on infeasible problems
           after maxev is exceeded.i  R   Rr   R=   R>   id   RB   RC   Rh   N(
   R^   R   R   R   R   R   R   RH   R   R   (   R
   RB   RN   (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_5_2_infeasible_simplicial  s    

	c         C   s   i t  j d d 6d d 6t d 6d d 6t d 6} t  j t  j f } i t  j d	 6d d
 6d d 6| d 6d d 6} t t	 t
 | |  d S(   s;   Test Global mode limiting local evalutions with f* too highg       @R~   gư>R   Rl   i   R   R]   R=   R>   R?   RB   R<   RC   N(   RW   R   Rs   R^   R   R   R   R   R   t   UserWarningR   (   R
   RB   R.   t   kwargs(    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   test_6_1_lower_known_f_min  s    

(   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyR     s   											(   ii   (   ii   (   i    i   (   i    i   (   NN(   NN(   i    i<   (   i    g      @(   i   i2   (   i    i2   g'In/@gS[:XL?(   ii
   (   i i   (   i i   (   ii
   (   ii
   (   i   i2   (   ii   (    (+   RF   R   Rd   R    R   R   t   scipy.optimizeR   t   scipy.optimize._shgoR   t   objectR   R   R   RQ   RS   R   RU   R   R   RW   RY   R!   R[   R$   R_   R'   Ra   R*   R+   R   t   zipt   boundsLJRt   R:   R   R;   R   RO   RP   Rg   Rv   R   (    (    (    s>   lib/python2.7/site-packages/scipy/optimize/tests/test__shgo.pyt   <module>   s   
	
				"			#				 94