
&]\c           @` s  d  Z  d d l m Z m Z m Z d d l m Z 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 d d l m Z d d l m Z d d	 l m Z d d
 l m Z m Z m Z d d l m Z m Z d d l  m! Z! d e" f d     YZ# d   Z$ d   Z% d   Z& d   Z' d   Z( d e" f d     YZ) d e" f d     YZ* d e" f d     YZ+ d e" f d     YZ, d e" f d     YZ- d e" f d     YZ. d S(    s7   
Unit tests for optimization routines from minpack.py.
i    (   t   divisiont   print_functiont   absolute_import(   t   assert_t   assert_almost_equalt   assert_array_equalt   assert_array_almost_equalt   assert_allclose(   t   raisesN(   t   arrayt   float64t   matrix(   t
   ThreadPool(   t   optimize(   t   lambertw(   t   leastsqt	   curve_fitt   fixed_point(   t   _assert_warnst   suppress_warnings(   t   OptimizeWarningt   ReturnShapec           B` s    e  Z d  Z d   Z d   Z RS(   s   This class exists to create a callable that does not have a '__name__' attribute.

    __init__ takes the argument 'shape', which should be a tuple of ints.  When an instance
    it called with a single argument 'x', it returns numpy.ones(shape).
    c         C` s   | |  _  d  S(   N(   t   shape(   t   selfR   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   __init__   s    c         C` s   t  j |  j  S(   N(   t   npt   onesR   (   R   t   x(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   __call__   s    (   t   __name__t
   __module__t   __doc__R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR      s   	c         C` s   t  j |  S(   sU   A function that returns an array of ones of the given shape.
    `x` is ignored.
    (   R   R   (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt
   dummy_func!   s    c         C` s;   t  t |    } z | j d   |   SWd  | j   Xd  S(   Nc         S` s   |    S(   N(    (   t   f(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   <lambda>+   s    (   R   t   lent   mapt	   terminate(   t   fst   pool(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   sequence_parallel(   s    c         C` s=   | |  d } t  j | d | d |  j   | f  } | S(   s  Evaluate non-linear equation system representing
    the pressures and flows in a system of n parallel pipes::

        f_i = P_i - P_0, for i = 1..n
        f_0 = sum(Q_i) - Qtot

    Where Q_i is the flow rate in pipe i and P_i the pressure in that pipe.
    Pressure is modeled as a P=kQ**2 where k is a valve coefficient and
    Q is the flow rate.

    Parameters
    ----------
    flow_rates : float
        A 1D array of n flow rates [kg/s].
    k : float
        A 1D array of n valve coefficients [1/kg m].
    Qtot : float
        A scalar, the total input flow rate [kg/s].

    Returns
    -------
    F : float
        A 1D array, F[i] == f_i.

    i   i   i    (   R   t   hstackt   sum(   t
   flow_ratest   Qtott   kt   Pt   F(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   pressure_network4   s    +c         C` s   t  |   } t j |  d d | d d |  d | d  } t j | | f  } | d | d | d  d | d  f <d | d | d  | d f <t j |  | | d d d  f <| S(   s  Return the jacobian of the equation system F(flow_rates)
    computed by `pressure_network` with respect to
    *flow_rates*. See `pressure_network` for the detailed
    description of parrameters.

    Returns
    -------
    jac : float
        *n* by *n* matrix ``df_i/dQ_i`` where ``n = len(flow_rates)``
        and *f_i* and *Q_i* are described in the doc for `pressure_network`
    i   i   i    N(   R#   R   t   diagt   emptyR   (   R+   R,   R-   t   nt   pdifft   jac(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   pressure_network_jacobianS   s    3(#c         C` s"   t  |  | |  t |  | |  f S(   N(   R0   R6   (   R+   R,   R-   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   pressure_network_fun_and_gradj   s    t
   TestFSolvec           B` s}   e  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  j d  d } d } t d d d d g  } t j t | d | | f d t \ } } } } t | t  j d   t | d k |  d  S(   Ni   g      ?g       @g        t   argst   full_outputi   (	   R   R   R	   R   t   fsolveR0   t   TrueR   R   (   R   R-   R,   t   initial_guesst   final_flowst   infot   iert   mesg(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt!   test_pressure_network_no_gradientp   s    c         C` so   t  j d  d } d } t d d d d g  } t j t | d | | f d t } t | t  j d   d  S(   Ni   g      ?g       @g        R9   t   fprime(   R   R   R	   R   R;   R0   R6   R   (   R   R-   R,   R=   R>   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt#   test_pressure_network_with_gradient{   s    	c         C` s2   t  d  } d d g } t t t j | |  d  S(   Ni   g      ?g       @(   R   t   assert_raisest	   TypeErrorR   R;   (   R   t   funct   x0(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_wrong_shape_func_callable   s    c         C` s,   d d g } t  t t j t | d d d  S(   Ng      ?g       @R9   i   (   i   (   (   i   (   RE   RF   R   R;   R    (   R   RH   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_wrong_shape_func_function   s    c         C` sA   t  d  } t  d  } t t t j | d d d g d | d  S(   Ni   i   RH   i    RC   (   i   i   (   R   RE   RF   R   R;   (   R   RG   t
   deriv_func(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt    test_wrong_shape_fprime_callable   s    c         C` s;   d   } d   } t  t t j | d d d g d | d  S(   Nc         S` s   t  |  d  S(   Ni   (   i   (   R    (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"      s    c         S` s   t  |  d  S(   Ni   (   i   i   (   R    (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"      s    RH   i    i   RC   (   RE   RF   R   R;   (   R   RG   RK   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt    test_wrong_shape_fprime_function   s    		c         C` s<   d   } t  t d d  t j | d d g Wd  QXd  S(   Nc          W` s   t  d   d  S(   Ns   I raised(   t
   ValueError(   R9   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG      s    t   matchs   I raisedRH   i    (   RE   RN   R   R;   (   R   RG   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_func_can_raise   s    	c      
   C` sK   d   } d   } t  t d d ! t j | d d g d | Wd  QXd  S(   Nc         S` s   |  t  j d g  S(   Ni
   (   R   R	   (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"      s    c          W` s   t  d   d  S(   Ns   I raised(   RN   (   R9   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRK      s    RO   s   I raisedRH   i    RC   (   RE   RN   R   R;   (   R   RG   RK   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_Dfun_can_raise   s    		c         C` sS   d   } t  j | t j d d g t j   } t | |  d d g d d d  S(   Nc         S` s0   t  j |  d d |  d d g d t  j d S(   Ni    id   i   i  t   dtypei   (   R   R	   t   float32(   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"      s    i   i    t   atolgMbP?(   R   R;   R   R	   RS   R   (   R   RG   t   p(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_float32   s    	'c   	      ` s     f d   } t  j d  d } d } t d d d d g  } t j | | d | | f d t \ } } } } t | t  j d   t | d k |  d  S(	   Nc          ` s     j    t |    S(   N(   RB   R0   (   R9   (   R   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG      s    
i   g      ?g       @g        R9   R:   i   (   R   R   R	   R   R;   R<   R   R   (	   R   RG   R-   R,   R=   R>   R?   R@   RA   (    (   R   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_reentrant_func   s    c         ` s~     f d   } t  j d  d } d } t d d d d g  } t j t | d | | f d | } t | t  j d   d  S(   Nc          ` s     j    t |    S(   N(   RD   R6   (   R9   (   R   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRK      s    
i   g      ?g       @g        R9   RC   (   R   R   R	   R   R;   R0   R   (   R   RK   R-   R,   R=   R>   (    (   R   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_reentrant_Dfunc   s    	c         C` s   t  |  j g d  S(   Ni
   (   R(   RB   (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_concurrent_no_gradient   s    c         C` s   t  |  j g d  S(   Ni
   (   R(   RD   (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_concurrent_with_gradient   s    (   R   R   RB   RD   RI   RJ   RL   RM   RP   RQ   RV   RW   RX   RY   RZ   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR8   o   s   		
											t   TestRootHybrc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` sr   t  j d  d } d } t d d d d g  } t j t | d d d | | f j } t | t  j d   d  S(   Ni   g      ?g       @g        t   methodt   hybrR9   (   R   R   R	   R   t   rootR0   R   R   (   R   R-   R,   R=   R>   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRB      s    c      	   C` sx   t  j d  d } d } t d d d d g  } t j t | d | | f d d d t j } t | t  j d   d  S(	   Ni   g      ?g       @g        R9   R\   R]   R5   (	   R   R   R   R   R^   R0   R6   R   R   (   R   R-   R,   R=   R>   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRD      s    c      	   C` sx   t  j d  d } d } t d d d d g  } t j t | d | | f d d d t j } t | t  j d   d  S(	   Ni   g      ?g       @g        R9   R\   R]   R5   (	   R   R   R	   R   R^   R7   R<   R   R   (   R   R-   R,   R=   R>   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt,   test_pressure_network_with_gradient_combined   s    	(   R   R   RB   RD   R_   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR[      s   			
t
   TestRootLMc           B` s   e  Z d    Z RS(   c         C` sr   t  j d  d } d } t d d d d g  } t j t | d d d | | f j } t | t  j d   d  S(   Ni   g      ?g       @g        R\   t   lmR9   (   R   R   R	   R   R^   R0   R   R   (   R   R-   R,   R=   R>   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRB      s    (   R   R   RB   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR`      s   t   TestLeastSqc           B` s   e  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(   c         C` s   t  j d d d  } d	 \ } } } | |  _ | | | f |  _ | | d | | | } t  j j d  | d t  j j | j  |  _ d  S(
   Ni    i
   i(   g@i*   g33333si   g{Gz?(   g@i*   g33333s(	   R   t   linspaceR   t   abct   randomt   seedt   standard_normalR   t   y_meas(   R   R   t   at   bt   ct   y_true(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   setup_method  s    	c         C` s1   | \ } } } | | | d | | | } | S(   Ni   (    (   R   RU   t   yR   Ri   Rj   Rk   t   err(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt	   residuals
  s    c         C` s'   t  j | d | t  j |  g  j S(   Ni   (   R   t   vstackt	   ones_liket   T(   R   t   _pt   _yR   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   residuals_jacobian  s    c         C` sp   t  d d d g  } t |  j | d |  j |  j f \ } } t | d	 k d |  t | |  j d d d  S(
   Ni    R9   i   i   i   i   s   solution not found (ier=%d)t   decimal(   i   i   i   i   (   R	   R   Rp   Rh   R   R   R   Rd   (   R   t   p0t
   params_fitR@   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt
   test_basic  s
    c         C` sy   t  d d d g  } t |  j | d |  j |  j f d |  j \ } } t | d
 k d |  t | |  j d	 d d  S(   Ni    R9   t   Dfuni   i   i   i   s   solution not found (ier=%d)Rw   (   i   i   i   i   (	   R	   R   Rp   Rh   R   Rv   R   R   Rd   (   R   Rx   Ry   R@   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_basic_with_gradient  s    c         C` so   t  d d d g  } t |  j | d |  j |  j f d t } | \ } } } } } t | d	 k d |  d  S(
   Ni    R9   R:   i   i   i   i   s   solution not found: %s(   i   i   i   i   (   R   R   Rp   Rh   R   R<   R   (   R   Rx   R:   Ry   t   cov_xt   infodictRA   R@   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_full_output#  s    	c   	      C` s   t  d d d g d t } t  | d t } t |  j | d |  j |  j f d t } | \ } } } } } t | d k d
 |  t | |  d  S(   Ni    RR   t   copyR9   R:   i   i   i   i   s   solution not found: %s(   i   i   i   i   (	   R	   R
   R<   R   Rp   Rh   R   R   R   (	   R   Rx   t   p0_copyR:   Ry   R}   R~   RA   R@   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_input_untouched+  s    	c         C` s2   t  d  } d d g } t t t j | |  d  S(   Ni   g      ?g       @(   R   RE   RF   R   R   (   R   RG   RH   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRI   5  s    c         C` s,   d d g } t  t t j t | d d d  S(   Ng      ?g       @R9   i   (   i   (   (   i   (   RE   RF   R   R   R    (   R   RH   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRJ   <  s    c         C` sA   t  d  } t  d  } t t t j | d d d g d | d  S(   Ni   i   RH   i    R{   (   i   i   (   R   RE   RF   R   R   (   R   RG   RK   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_wrong_shape_Dfun_callableB  s    c         C` s;   d   } d   } t  t t j | d d d g d | d  S(   Nc         S` s   t  |  d  S(   Ni   (   i   (   R    (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"   H  s    c         S` s   t  |  d  S(   Ni   (   i   i   (   R    (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"   I  s    RH   i    i   R{   (   RE   RF   R   R   (   R   RG   RK   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_wrong_shape_Dfun_functionG  s    		c         C` s  d   } t  j d d d d d d d d	 d
 d g
 d t  j } t  j d d d d d d d d d d g
 d t  j } t  j d d d d g  } t j | | d | | f \ } } t | d k  t | | | |  d j   d | | | |  d j   k   d  S(   Nc         S` sD   |  d t  j | |  d d d |  d d  |  d } | | S(   Ni    i   i   g       @i   (   R   t   exp(   RU   R   Rn   t   q(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG   N  s    <g?gw/?g%C?gNbX9?gHzG?gM?gZd;O?gS?g~jt?gV-?RR   gJ4?gN@aÓ?g^K=?gMO?g?g?W[?gl?g{Pk?g rh?gׁsF?g      ?R9   i   i   i   i   g-C6?(   i   i   i   i   (   R   R	   RS   R   R   R   R*   (   R   RG   R   Rn   Rx   t   p1t   success(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRV   L  s    	!$c         C` s<   d   } t  t d d  t j | d d g Wd  QXd  S(   Nc          W` s   t  d   d  S(   Ns   I raised(   RN   (   R9   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG   ]  s    RO   s   I raisedRH   i    (   RE   RN   R   R   (   R   RG   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRP   \  s    	c      
   C` sK   d   } d   } t  t d d ! t j | d d g d | Wd  QXd  S(   Nc         S` s   |  t  j d g  S(   Ni
   (   R   R	   (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"   d  s    c          W` s   t  d   d  S(   Ns   I raised(   RN   (   R9   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRK   f  s    RO   s   I raisedRH   i    R{   (   RE   RN   R   R   (   R   RG   RK   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRQ   c  s    		c         ` s|     f d   } t  d d d g  } t | | d   j   j f \ } } t | d
 k d |  t |   j d	 d d  S(   Nc          ` s     j      j |    S(   N(   Rz   Rp   (   R9   (   R   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG   m  s    
i    R9   i   i   i   i   s   solution not found (ier=%d)Rw   (   i   i   i   i   (   R	   R   Rh   R   R   R   Rd   (   R   RG   Rx   Ry   R@   (    (   R   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRW   l  s    c         ` s     f d   } t  d d d g  } t   j | d   j   j f d | \ } } t | d k d	 |  t |   j d
 d d  S(   Nc          ` s     j      j |    S(   N(   Rz   Rv   (   R9   (   R   (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRK   y  s    
i    R9   R{   i   i   i   i   s   solution not found (ier=%d)Rw   (   i   i   i   i   (   R	   R   Rp   Rh   R   R   R   Rd   (   R   RK   Rx   Ry   R@   (    (   R   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_reentrant_Dfunx  s    c         C` s   t  |  j g d  S(   Ni
   (   R(   Rz   (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRY     s    c         C` s   t  |  j g d  S(   Ni
   (   R(   R|   (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRZ     s    (   R   R   Rm   Rp   Rv   Rz   R|   R   R   RI   RJ   R   R   RV   RP   RQ   RW   R   RY   RZ   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRb      s$   									
											t   TestCurveFitc           B` s   e  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  d d d d g  |  _ t  d d d d g  |  _ d  S(   Ng      ?g	@g      #@gffffff+@g       @g      @g      @(   R	   Rn   R   (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRm     s    c   
      C` s   d   } t  | |  j |  j  \ } } t t |  d k  t | j d	 k  t | d d d d t | d
 d d d t  | |  j |  j d d } | \ } } } } }	 t | |  d  S(   Nc         S` s   |  | S(   N(    (   R   Ri   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    i   i    g3ı.n?Rw   i   g-C6Z?R:   (   i   i   (   i    i    (   R   R   Rn   R   R#   R   R   R   (
   R   RG   t   poptt   pcovt   rest   popt2t   pcov2R~   t   errmsgR@   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_one_argument  s    	c         C` s   d   } t  | |  j |  j  \ } } t t |  d k  t | j d
 k  t | d d g d d t | d d g d d	 g g d d d  S(   Nc         S` s   | |  | S(   N(    (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    i   gc]K?g-?Rw   i   g䃞ͪϵ?gT㥛 gb=y?(   i   i   (   R   R   Rn   R   R#   R   R   (   R   RG   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_two_argument  s    	c         C` s   d t  f d     Y} |   } t | j |  j |  j  \ } } t | j d k  t | d d g d d t | d d	 g d	 d
 g g d d d  S(   Nt	   test_selfc           B` s   e  Z d  Z d   Z RS(   s   This class tests if curve_fit passes the correct number of
               arguments when the model function is a class instance method.
            c         S` s   | | | S(   N(    (   R   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    (   R   R   R   RG   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR     s   i   gc]K?g-?Rw   i   g䃞ͪϵ?gT㥛 gb=y?(   i   i   (   t   objectR   RG   R   Rn   R   R   R   (   R   R   t   test_self_instR   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_func_is_classmethod  s    	!c      
   C` s   d d d d d d d d d	 d
 g
 } d d d d d d d d d d g
 } d d d d d d g } d d d d d d g } d   } t  | | | | d  d! \ } } t | | d" d# d  S($   NgB`"@gZd;@gQ@g#~j@g/$@g;O@g @g@gZd;@g)\@g     ؊@g     (@g     @g     X@g     t@g     @g     @g     8@g     @g     H@g^w8}@gU]}@g     X@g29l?g䃞j@gj@gT{7@g|'fɘ@g ƞ?g'ˊ@c         S` sP   | t  j |  | d d | d  | t  j |  | d d | d  | S(   Ni   g       @(   R   R   (   R   RH   t   x1t   A0t   A1t   sigmaRk   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   f_double_gauss  s    t   maxfevi'  t   rtolgh㈵>(   R   R   (   R   R   Rn   t   guesst   goodR   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_regression_2639  s    					!c         C` s  t  j d d d d d d g  } t  j d d d d d d	 g  } t  j d d d d d d g  } d
   } xd d d g D]} t | | | d d d g d | d | \ } } t  j t  j |   } t | d d g d d t | | | d d d g d d | d | \ } } t  j t  j |   } t | d d g d d t | | | d d d g d | d t d | \ } } t  j t  j |   }	 t |	 d d g d d t | | | d d d g d d | d t d | \ } } t  j t  j |   }	 t |	 d d g d d q| Wd   }
 t  j t  j g d  j d d  } t	   m } | j
 t d  t |
 | | d d d g d | \ } } t | | d  | d  d d d g \ } } Wd  QXt | j d k  t | |  t | j d k  t | |  d  S(   Ni    i   i   i   i   i   i   i   i   c         S` s   | |  | S(   N(    (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR!     s    Ra   t   trft   dogboxRx   R   R\   gN"q?g~uM/N?R   gMbP?t   absolute_sigmagO=N?g5=`6?c         S` s   | |  S(   N(    (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   f_flat  s    s3   Covariance of the parameters could not be estimatedg[u|?g-/i@(   i   i   (   i   i   (   R   R	   R   t   sqrtR1   R   R<   t   inft   reshapeR   t   filterR   R   R   R   (   R   t   xdatat   ydataR   R!   R\   R   R   t   perr_scaledt   perrR   t   pcov_expectedt   supt   popt1t   pcov1(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt	   test_pcov  s@    !!!	!%!%	%	*2c         C` sZ   d   } d d d d g } d d d d g } t  t | | |  d	 d d g d
 d d  S(   Nc         S` s   | |  | S(   N(    (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   f_linear  s    i   i   i   i   i   i   i	   i    RT   g|=(   R   R   (   R   R   R   Rn   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_array_like  s    	c         C` s_   t  j d d d d d d g  } t  j d d d d d d g  } t t t d   | |  d  S(	   Ni   i   i   i   i   i   g      @c         S` s   | |  S(   N(    (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"   	  s    (   R   R	   R   R   R   (   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_indeterminate_covariance  s    !!	c      	   C` s   t  j d t  j d g  } t  j d d d g  } t t t d   | |  t t t d   | |  t t t d   | | i t d 6 d  S(   Ni   i   i   c         S` s   | |  | S(   N(    (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"     s    c         S` s   | |  | S(   N(    (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"     s    c         S` s   | |  | S(   N(    (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"     s    t   check_finite(   R   R	   t   nanRE   RN   R   R<   (   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_NaN_handling  s    		c         C` s   d   } t  j d d d  } | | d d  } xK d d d d  g D]7 } t | | | d	 | \ } } t | d d g  qC Wt t t | | | d	 d
 d  S(   Nc         S` s   | t  j | |   S(   N(   R   R   (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR!     s    i    i   i   g       @R   R   Ra   R\   t   unknown(   R   Rc   t   NoneR   R   RE   RN   (   R   R!   R   R   R\   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_method_argument  s    	c      
   C` s  d   } t  j d d d  } | | d d  } d d g d d g f } xL d  d	 d
 g D]; } t | | | d | d | \ } } t | d d  qX Wt | | | d d	 d d d g d t  j g f \ } } t | d d  t t t | | | d | d d d  S(   Nc         S` s   | t  j | |   S(   N(   R   R   (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR!   (  s    i    i   i   g       @g      ?g      ?g      @R   R   t   boundsR\   g        g333333?Ra   (   R   Rc   R   R   R   R   RE   RN   (   R   R!   R   R   R   R\   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_bounds'  s    	$c   	      C` s   d   } t  j d t  j d t  j d  } t  j |  } d t  j d t  j f } xw d d g D]i } t | | | d	 d
 t  j \ } } t | | | d	 d
 t  j d | d | \ } } t | |  qb Wd  S(   Nc         S` s   t  j |  |  S(   N(   R   t   sin(   R   Ri   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR!   B  s    ii   i(   ii   R   R   Rx   g @R   R\   (   R   Rc   t   piR   R   R   (	   R   R!   R   R   R   R\   t   popt_1t   _t   popt_2(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_bounds_p0?  s    	#%c   
      C` s}  d   } d   } t  j d d d  } | | d d  } xe d d g D]W } xN d	 d
 d g D]= } t | | | d | d | \ } } t | d d g  q\ WqF WxN d d d g D]= } t | | | d | d | \ } } t | d d g  q Wd | d <t  j | j d  }	 d |	 d <xZ d d d g D]I } t | | | d |	 d | d | \ } } t | d d g d d q,Wd  S(   Nc         S` s   | t  j | |   S(   N(   R   R   (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR!   S  s    c         S` s3   t  j | |   } t  j | | |  | f  j S(   N(   R   R   Rq   Rs   (   R   Ri   Rj   t   e(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR5   V  s    i    i   i   g       @R   R   s   2-points   3-pointt   csR5   R\   i   Ra   id   i   i   R   R   gMbP?(   R   Rc   R   R   R   R   (
   R   R!   R5   R   R   R\   t   schemeR   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_jacP  s&    		$

c         C` s   t  j d d  } d | } t d   | | d d d d \ } } t d	   | | d d d
 d \ } } t | d d d t | d d d d  S(   Ni    i
   i   c         S` s   | |  S(   N(    (   R   RU   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"   y  s    R   i   R   id   c         S` s   | |  S(   N(    (   R   RU   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"   z  s    t   max_nfevRT   g+=(   i    i   (   i    i   (   R   t   arangeR   R   (   R   R   Rn   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_maxfev_and_boundst  s    
''c         C` sP  d   } d   } t  j j d  t  j d d d  } | | d d  } | d t  j j d	 t |   } t  j t |   d } t  j | d
  } x | | f d g D] \ } }	 x t	 t
 g D] }
 t | | | d | d | d |
 \ } } t | | | d | d |	 d |
 \ } } t | | d d t | | d d q Wq Wd  S(   Nc         S` s   | t  j | |   S(   N(   R   R   (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    c         S` s3   t  j | |   } t  j | | |  | f  j S(   N(   R   R   Rq   Rs   (   R   Ri   Rj   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR5     s    i    i   i2   g      @g?g?t   sizei   R   R5   R   RT   g+=(   NN(   R   Re   Rf   Rc   t   normalR#   t   zerosR1   R   t   FalseR<   R   R   (   R   RG   R5   R   Rn   R   R   t   covart   jac1t   jac2R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_curvefit_simplecovariance  s     		#c         C` s  d   } d   } d   } d   } t  j j d  t  j d d  } | | d d	  } | d
 t  j j d t |   } t  j t |   d
 } t  j | d  }	 t  j d	 t  j	 d  d t  j	 d  d g d	 t  j	 d  d	 t  j	 d  d g d d d	 g g  }
 |
 j
 |  } |
 j
 |	  j
 |
 j  } x | | f d g D] \ } } x t t g D] } t | | | d | d | d | \ } } t | | | d | d | d | \ } } t | | d d t | | d d qdWqKWd  S(   Nc         S` s   t  j d t  j d  d t  j d  d g d t  j d  d t  j d  d g d d d g g  } | j | t  j | |    S(   Ng      ?i   g      i    (   R   R	   R   t   dotR   (   R   Ri   Rj   t   rotn(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   funcp  s    gc         S` s   t  j d t  j d  d t  j d  d g d t  j d  d t  j d  d g d d d g g  } t  j | |   } | j t  j | | |  | f  j  S(   Ng      ?i   g      i    (   R   R	   R   R   R   Rq   Rs   (   R   Ri   Rj   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   jacp  s    gc         S` s   | t  j | |   S(   N(   R   R   (   R   Ri   Rj   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    c         S` s3   t  j | |   } t  j | | |  | f  j S(   N(   R   R   Rq   Rs   (   R   Ri   Rj   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR5     s    i    i   i   g      @g      ?g?R   i   g      R   R5   R   RT   g+=(   NN(   R   Re   Rf   R   R   R#   R   R1   R	   R   R   Rs   R   R   R<   R   R   (   R   R   R   RG   R5   R   Rn   R   R   R   R   t   ydatapt   covarpR   R   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_curvefit_covariance  s*    				#g(   R   R   Rm   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_minpack.pyR     s    			
			0								$		t   TestFixedPointc           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C` s/   d   } d } t  | |  } t | d  d  S(   Nc         S` s   d |  S(   Ng       @(    (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    g      ?g        (   R   R   (   R   RG   RH   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_scalar_trivial  s    	c         C` s/   d   } d } t  | |  } t | d  d  S(   Nc         S` s   |  d S(   Ni   (    (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    g?g      ?(   R   R   (   R   RG   RH   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_scalar_basic1  s    	c         C` s/   d   } d } t  | |  } t | d  d  S(   Nc         S` s   |  d S(   Ng      ?(    (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    g?g      ?(   R   R   (   R   RG   RH   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_scalar_basic2  s    	c         C` sb   d   } d d g } t  j d d  } z t | |  } Wd  t  j |   Xt | d d g  d  S(   Nc         S` s   d |  S(   Ng       @(    (   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    g333333?g333333?t   allt   ignoreg        (   R   t   seterrR   R   (   R   RG   RH   t   olderrR   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_array_trivial  s    	c         C` s   d   } t  d d d g  } d d d g } t j d d	  } z t | | d
 | f } Wd  t j |   Xt | d |  d  S(   Nc         S` s   | |  d S(   Ni   (    (   R   Rk   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    g      ?g      ?g      ?g?gffffff?g?R   R   R9   (   R	   R   R   R   R   (   R   RG   Rk   RH   R   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_array_basic1  s    	c         C` sZ   d   } t  d d d g  } d d d g } t | | d | f } t | | d  d  S(	   Nc         S` s   | |  d S(   Ng      ?(    (   R   Rk   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    g      ?g      ?g      ?g?g?R9   i   (   R	   R   R   (   R   RG   Rk   RH   R   (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_array_basic2  s
    	c      	   C` s]   t  d   d d d d d d d } t | t j d |  d	  t | t d
  d  d  S(   Nc         S` s   t  j d |   d S(   Ng       g       @(   R   R   (   t   xx(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR"     s    g      ?R9   t   xtolg-q=t   maxiteri  g       g       @i   i   (    (   R   R   R   R   R   (   R   t   xxroot(    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_lambertw  s    c         ` sy   d  d  d } d } | d |   | d | d       f d   } t  | | d d } t | |  d  S(	   Ni   i   g?gjt?i   c         ` s2   t  j   |   t  j   |  |  d  d S(   Ni   (   R   t   log(   R3   (   t   i0t   klt   ks(    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyRG     s    R\   t	   iteration(   R   R   (   R   t   mt   n0RG   R3   (    (   R   R   R   s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   test_no_acceleration	  s    &(
   R   R   R   R   R   R   R   R   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyR     s   								(/   R   t
   __future__R    R   R   t   numpy.testingR   R   R   R   R   t   pytestR   RE   t   numpyR   R	   R
   R   t   multiprocessing.poolR   t   scipyR   t   scipy.specialR   t   scipy.optimize.minpackR   R   R   t   scipy._lib._numpy_compatR   R   t   scipy.optimizeR   R   R   R    R(   R0   R6   R7   R8   R[   R`   Rb   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/optimize/tests/test_minpack.pyt   <module>   s0   (					f  <