+
    ,i-                     |   R t ^ RIt^ RIt^ RIt^ RIHtHtHtHtH	t	H
t
Ht ^ RIHt ^ RIt^ RIHtHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHtHtHt ^ R	IHt ^ R
IH t   ! R R4      t!R t"R t#R t$R t%R t& ! R R4      t' ! R R4      t( ! R R4      t) ! R R4      t* ! R R4      t+ ! R R4      t, ! R R4      t-R# ) z7
Unit tests for optimization routines from minpack.py.
N)assert_assert_almost_equalassert_array_equalassert_array_almost_equalassert_allcloseassert_warnssuppress_warnings)raises)arrayfloat64)
ThreadPool)optimizelinalg)lambertw)leastsq	curve_fitfixed_point)OptimizeWarning)Boundsc                   0   a  ] tR t^t o RtR tR tRtV tR# )ReturnShapezThis 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 is called with a single argument 'x', it returns numpy.ones(shape).
c                    Wn         R # Nshape)selfr   s   &&C/usr/lib/python3/dist-packages/scipy/optimize/tests/test_minpack.py__init__ReturnShape.__init__   s    
    c                B    \         P                  ! V P                  4      # r   )nponesr   )r   xs   &&r   __call__ReturnShape.__call__!   s    wwtzz""r   r   N)	__name__
__module____qualname____firstlineno____doc__r   r$   __static_attributes____classdictcell____classdict__s   @r   r   r      s     # #r   r   c                .    \         P                  ! V4      # )zMA function that returns an array of ones of the given shape.
`x` is ignored.
)r!   r"   )r#   r   s   &&r   
dummy_funcr0   %   s     775>r   c                     \        \        V 4      4      ;_uu_ 4       pVP                  R  V 4      uuRRR4       #   + '       g   i     R# ; i)c                     V ! 4       # r    )fs   &r   <lambda>#sequence_parallel.<locals>.<lambda>.   s    !#r   N)r   lenmap)fspools   & r   sequence_parallelr;   ,   s0    	CG		xxr* 
			s	   ;A	c                    W ^,          ,          p\         P                  ! VR,          V^ ,          ,
          V P                  4       V,
          34      pV# )aN  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 1-D array of n flow rates [kg/s].
k : float
    A 1-D array of n valve coefficients [1/kg m].
Qtot : float
    A scalar, the total input flow rate [kg/s].

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

   NN)r!   hstacksum)
flow_ratesQtotkPFs   &&&  r   pressure_networkrF   5   s@    4 	
MA
		1R51Q4<!1D!89:AHr   c                   \        V 4      p\        P                  ! V R,          ^,          VR,          ,          ^V ^ ,          ,          V^ ,          ,          ,
          4      p\        P                  ! W334      pV^ ,          VRV^,
          1RV^,
          13&   ^ VRV^,
          1V^,
          3&   \        P                  ! V4      WS^,
          R3&   V# )a`  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 parameters.

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`
r=   NNNN)r7   r!   diagemptyr"   )rA   rB   rC   npdiffjacs   &&&   r   pressure_network_jacobianrN   T   s     	JAGGJrNQ&2.Z]1BQqT1IIJE
((A6
CaiC1dqsd
OC1ac	N''!*C!QKJr   c                 2    \        WV4      \        WV4      3# r   )rF   rN   )rA   rB   rC   s   &&&r   pressure_network_fun_and_gradrP   k   s     Zq1%j:< <r   c                   n   a  ] tR t^pt o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tRtV tR# )
TestFSolvec                    \         P                  ! ^R4      p^p\        . RO4      p\        P                  ! \
        W2V3RR7      w  rErg\        V\         P                  ! ^4      4       \        V^8H  V4       R# )         ?Targsfull_outputN       @        rZ   r[   )	r!   fullr
   r   fsolverF   r   r"   r   )r   rC   rB   initial_guessfinal_flowsinfoiermesgs   &       r   !test_pressure_network_no_gradient,TestFSolve.test_pressure_network_no_gradientq   sb    GGAsO./'/m)($3 	"+rwwqz:q$r   c                    \         P                  ! ^R4      p^p\        . RO4      p\        P                  ! \
        W2V3\        R7      p\        V\         P                  ! ^4      4       R# )rT   rU   rW   fprimeNrY   )	r!   r\   r
   r   r]   rF   rN   r   r"   r   rC   rB   r^   r_   s   &    r   #test_pressure_network_with_gradient.TestFSolve.test_pressure_network_with_gradient|   sO    GGAsO./oom),. 	"+rwwqz:r   c                b    \        ^4      pRR.p\        \        \        P                  W4       R# r>         ?rZ   Nr   assert_raises	TypeErrorr   r]   r   funcx0s   &  r   test_wrong_shape_func_callable)TestFSolve.test_wrong_shape_func_callable   s&    1~ 3Zi$;r   c                Z    R R.p\        \        \        P                  \        VRR7       R# rm   rZ   rW   N)r>   )ro   rp   r   r]   r0   r   rs   s   & r   test_wrong_shape_func_function)TestFSolve.test_wrong_shape_func_function   s!     3Zi*bwOr   c                z    \        ^4      p\        R4      p\        \        \        P                  V^ ^.VR7       R# )r>   rs   rg   N   r   rn   r   rr   
deriv_funcs   &  r    test_wrong_shape_fprime_callable+TestFSolve.test_wrong_shape_fprime_callable   s-    1~ '
i$Aa5Tr   c                Z    R  pR p\        \        \        P                  V^ ^.VR7       R# )c                     \        V R4      # r   r   r0   r#   s   &r   rr   9TestFSolve.test_wrong_shape_fprime_function.<locals>.func       a&&r   c                     \        V R4      #    )r   r   r   r   s   &r   r   ?TestFSolve.test_wrong_shape_fprime_function.<locals>.deriv_func       a((r   r~   N)ro   rp   r   r]   r   s   &  r    test_wrong_shape_fprime_function+TestFSolve.test_wrong_shape_fprime_function   s$    	'	)i$Aa5Tr   c                    R  p\        \        RR7      ;_uu_ 4        \        P                  ! V^ .R7       RRR4       R#   + '       g   i     R# ; i)c                      \        R 4      hI raised
ValueErrorrx   s   *r   rr   ,TestFSolve.test_func_can_raise.<locals>.func       Z((r   r   matchrs   Nro   r   r   r]   r   rr   s   & r   test_func_can_raiseTestFSolve.test_func_can_raise   s5    	) :Z88OODaS) 9888   AA	c                    R  pR p\        \        RR7      ;_uu_ 4        \        P                  ! V^ .VR7       RRR4       R#   + '       g   i     R# ; i)c                 >    V \         P                  ! ^
.4      ,
          # 
   r!   r
   r   s   &r   rr   ,TestFSolve.test_Dfun_can_raise.<locals>.func       rxx~%%r   c                      \        R 4      hr   r   rx   s   *r   r   2TestFSolve.test_Dfun_can_raise.<locals>.deriv_func   r   r   r   r   r~   Nr   r   s   &  r   test_Dfun_can_raiseTestFSolve.test_Dfun_can_raise   s<    	&	) :Z88OODaS< 9888   AA	c                    R  p\         P                  ! V\        P                  ! ^^.\        P                  4      4      p\        V! V4      ^ ^ .RR7       R# )c                     \         P                  ! V ^ ,          ^d,
          V ^,          R,
          .\         P                  R7      ^,          # )      dtype)r!   r
   float32r   s   &r   rr   %TestFSolve.test_float32.<locals>.func   s1    88QqTCZ15RZZHAMMr   MbP?atolN)r   r]   r!   r
   r   r   )r   rr   ps   &  r   test_float32TestFSolve.test_float32   s?    	NOOD"((Aq62::">?Q!Qd3r   c                   a  V 3R  lp\         P                  ! ^R4      p^p\        . RO4      p\        P                  ! WW23RR7      w  rVrx\        V\         P                  ! ^4      4       \        V^8H  V4       R# )c                  6   < SP                  4        \        V !  # r   )rc   rF   rW   r   s   *r   rr   ,TestFSolve.test_reentrant_func.<locals>.func   s    224#T**r   rU   TrV   NrY   )r!   r\   r
   r   r]   r   r"   r   )	r   rr   rC   rB   r^   r_   r`   ra   rb   s	   f        r   test_reentrant_funcTestFSolve.test_reentrant_func   sh    	+
 GGAsO./'/ti($3 	"+rwwqz:q$r   c                   a  V 3R  lp\         P                  ! ^R4      p^p\        . RO4      p\        P                  ! \
        WCV3VR7      p\        V\         P                  ! ^4      4       R# )c                  6   < SP                  4        \        V !  # r   )ri   rN   r   s   *r   r   3TestFSolve.test_reentrant_Dfunc.<locals>.deriv_func   s    446,d33r   rU   rf   NrY   )r!   r\   r
   r   r]   rF   r   r"   )r   r   rC   rB   r^   r_   s   f     r   test_reentrant_DfuncTestFSolve.test_reentrant_Dfunc   sW    	4
 GGAsO./oom) 	"+rwwqz:r   c                    \        V P                  .^
,          4      p\        V Uu. uF  q"RJ NK  	  up4      '       g   Q hR# u upi r   N)r;   rc   allr   vresults   &  r   test_concurrent_no_gradient&TestFSolve.test_concurrent_no_gradient   s?    tEEFKL3vdN344443   Ac                    \        V P                  .^
,          4      p\        V Uu. uF  q"RJ NK  	  up4      '       g   Q hR# u upi r   )r;   ri   r   r   s   &  r   test_concurrent_with_gradient(TestFSolve.test_concurrent_with_gradient   s?    tGGH2MN3vdN344443r   r3   N)r&   r'   r(   r)   rc   ri   rt   r{   r   r   r   r   r   r   r   r   r   r+   r,   r-   s   @r   rR   rR   p   sN     	 ;<PU
U*=4 ;55 5r   rR   c                   2   a  ] tR t^t o R tR tR tRtV tR# )TestRootHybrc                    \         P                  ! ^R4      p^p\        . RO4      p\        P                  ! \
        VRW!3R7      P                  p\        V\         P                  ! ^4      4       R# )rT   rU   hybrmethodrW   NrY   	r!   r\   r
   r   rootrF   r#   r   r"   rh   s   &    r   rc   .TestRootHybr.test_pressure_network_no_gradient   sV    GGAsO./mm$4m+1	CCD1 	!+rwwqz:r   c                    \         P                  ! ^R4      p^p\        . RO.4      p\        P                  ! \
        VW!3R\        R7      P                  p\        V\         P                  ! ^4      4       R# )rT   rU   r   rW   r   rM   NrY   )
r!   r\   r
   r   r   rF   rN   r#   r   r"   rh   s   &    r   ri   0TestRootHybr.test_pressure_network_with_gradient   s^    GGAsO/01mm$4m*.6(ACCD1 	 	"+rwwqz:r   c                    \         P                  ! ^R4      p^p\        . RO4      p\        P                  ! \
        W2V3RRR7      P                  p\        V\         P                  ! ^4      4       R# )rT   rU   r   Tr   NrY   )	r!   r\   r
   r   r   rP   r#   r   r"   rh   s   &    r   ,test_pressure_network_with_gradient_combined9TestRootHybr.test_pressure_network_with_gradient_combined   s\     GGAsO./mm$A$1q	+1t==>Q 	 	"+rwwqz:r   r3   N)	r&   r'   r(   r)   rc   ri   r   r+   r,   r-   s   @r   r   r      s     ;;	; 	;r   r   c                   &   a  ] tR t^t o R tRtV tR# )
TestRootLMc                    \         P                  ! ^R4      p^p\        . RO4      p\        P                  ! \
        VRW!3R7      P                  p\        V\         P                  ! ^4      4       R# )rT   rU   lmr   NrY   r   rh   s   &    r   rc   ,TestRootLM.test_pressure_network_no_gradient   sV    GGAsO./mm$4m+/tiAAB 	!+rwwqz:r   r3   N)r&   r'   r(   r)   rc   r+   r,   r-   s   @r   r   r      s     ; ;r   r   c                   z   a  ] tR tRt o R tR t]P                  P                  R. R	O4      R 4       t	R t
RtV tR# )
TestNfevi  c                :    \         P                  ! 4       V n        R # r   )	threadinglocalnfevr   s   &r   setup_methodTestNfev.setup_method  s    OO%	r   c                    \        V P                  R 4      '       g   ^ V P                  n        V P                  ;P                  ^,          un        V^,          ^,
          # )c)hasattrr   r   )r   ys   &&r   zero_fTestNfev.zero_f  s=    tyy#&&DIIK		q!tAvr   r   c                    ^ V P                   n        \        P                  ! V P                  ^dVR7      pVP                   V P                   P                  8X  g   Q hR# )r   r   N)r   r   r   r   r   )r   r   solutions   && r   test_root_nfevTestNfev.test_root_nfev  s?     		==c&A}}		+++r   c                    ^ V P                   n        \        P                  ! V P                  ^dRR7      w  rr4VR,          V P                   P                  8X  g   Q hR# )r   T)rX   r   N)r   r   r   r]   r   )r   r#   r`   ra   rb   s   &    r   test_fsolve_nfevTestNfev.test_fsolve_nfev  sB    		%__T[[#4PF|tyy{{***r   )r   N)
r   r   broyden1broyden2andersonlinearmixingdiagbroydenexcitingmixingkrylovzdf-sane)r&   r'   r(   r)   r   r   pytestmarkparametrizer   r   r+   r,   r-   s   @r   r   r     sC     & [[X (3 4
,4
,
+ +r   r   c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tRtV tR# )TestLeastSqi!  c                Z   \         P                  ! ^ ^
^(4      pR^*RrCpWn        W#V3V n        W!^,          ,          W1,          ,           V,           p\         P                  P                  ^ 4       VR\         P                  P                  VP                  4      ,          ,           V n        R# )r   g@g{Gz?Ng33333s)	r!   linspacer#   abcrandomseedstandard_normalr   y_meas)r   r#   abr   y_trues   &     r   r   TestLeastSq.setup_method"  sy    KK2r"RAq5a4!#!
		qtBII$=$=fll$KKKr   c                d    Vw  rEpW$V^,          ,          WS,          ,           V,           ,
          pV# r   r3   )r   r   r   r#   r  r  r   errs   &&&&    r   	residualsTestLeastSq.residuals+  s+    A1a4!#!"
r   c                    \         P                  ! V^,          V\         P                  ! V4      .4      P                  ) # r   )r!   vstack	ones_likeT)r   _p_yr#   s   &&&&r   residuals_jacobianTestLeastSq.residuals_jacobian0  s-    		1a4BLLO457777r   c                    \        . RO4      p\        V P                  VV P                  V P                  3R7      w  r#\        VR9   RV R24       \        W P                  ^R7       R# )r   rx   solution not found (ier=)decimalNr   r   r   r>   r   r   rT   r
   r   r  r  r#   r   r   r  r   p0
params_fitra   s   &   r   
test_basicTestLeastSq.test_basic3  sV    7^!$.."(,TVV'<>
|#'?uA%FG!*hhBr   c                    \        . RO4      p\        V P                  VV P                  V P                  3V P
                  R7      w  r#\        VR9   RV R24       \        W P                  ^R7       R# )r   rW   Dfunr$  r%  r&  Nr(  r)  )	r
   r   r  r  r#   r!  r   r   r  r+  s   &   r   test_basic_with_gradient$TestLeastSq.test_basic_with_gradient;  sb    7^!$.."(,TVV'<'+'>'>@
 	|#'?uA%FG!*hhBr   c                    \        . RO.4      p\        V P                  VV P                  V P                  3RR7      pVw  r4rVp\        VR9   RV 24       R# )r   TrV   solution not found: Nr(  r)  )r
   r   r  r  r#   r   )r   r,  rX   r-  cov_xinfodictrb   ra   s   &       r   test_full_outputTestLeastSq.test_full_outputD  sX    G9dnnb$(KK#8*.0 2=.
83y $8"?@r   c                    \        . RO\        R7      p\        VRR7      p\        V P                  VV P                  V P
                  3RR7      pVw  rErgp\        VR9   RV 24       \        W4       R# )	r   r   T)copyrV   r6  Nr(  r)  )r
   r   r   r  r  r#   r   r   )	r   r,  p0_copyrX   r-  r7  r8  rb   ra   s	   &        r   test_input_untouched TestLeastSq.test_input_untouchedL  sl    7)&dnnb$(KK#8*.0 2=.
83y $8"?@2'r   c                b    \        ^4      pRR.p\        \        \        P                  W4       R# rl   r   ro   rp   r   r   rq   s   &  r   rt   *TestLeastSq.test_wrong_shape_func_callableV  s(    1~ 3Zi!1!14<r   c                Z    R R.p\        \        \        P                  \        VRR7       R# rw   )ro   rp   r   r   r0   rz   s   & r   r{   *TestLeastSq.test_wrong_shape_func_function]  s#     3Zi!1!1:rPr   c                z    \        ^4      p\        R4      p\        \        \        P                  V^ ^.VR7       R# )r>   rs   r2  Nr   rA  r   s   &  r   test_wrong_shape_Dfun_callable*TestLeastSq.test_wrong_shape_Dfun_callablec  s/    1~ '
i!1!14QqE
Sr   c                Z    R  pR p\        \        \        P                  V^ ^.VR7       R# )c                     \        V R4      # r   r   r   s   &r   rr   8TestLeastSq.test_wrong_shape_Dfun_function.<locals>.funci  r   r   c                     \        V R4      # r   r   r   s   &r   r   >TestLeastSq.test_wrong_shape_Dfun_function.<locals>.deriv_funck  r   r   rF  Nro   rp   r   r   r   s   &  r   test_wrong_shape_Dfun_function*TestLeastSq.test_wrong_shape_Dfun_functionh  s&    	'	)i!1!14QqE
Sr   c           	        R  p\         P                  ! . RO\         P                  R7      p\         P                  ! . RO\         P                  R7      p\         P                  ! . RO4      p\        P                  ! WW#3R7      w  rV\        VR9   4       \        V! WRV4      ^,          P                  4       RV! WBV4      ^,          P                  4       ,          8  4       R# )	c                     V ^ ,          \         P                  ! W^,          ,
          ^,          ) RV ^,          ^,          ,          ,          4      ,          V ^,          ,           pW2,
          # )r   rZ   r!   exp)r   r#   r   qs   &&& r   rr   &TestLeastSq.test_float32.<locals>.funcq  sF    !RVVa!fq[L#adAg+677!<A5Lr   r   rx   g-C6?N)
g?gw/?g%C?gNbX9?gHzG?gM?gZd;O?gS?g~jt?gV-?)
gJ4?gN@aÓ?g^K=?gMO?g?g?W[?gl?g{Pk?g rh?gׁsF?)      ?rW  rW  rW  r)  )r!   r
   r   r   r   r   r@   )r   rr   r#   r   r,  p1successs   &      r   r   TestLeastSq.test_float32o  s    	 HH %'ZZ1HH $+-::7XX'(&&tqe<9$%b1q%%'$$rA,/1F1F1H*HHIr   c                    R  p\        \        RR7      ;_uu_ 4        \        P                  ! V^ .R7       RRR4       R#   + '       g   i     R# ; i)c                      \        R 4      hr   r   rx   s   *r   rr   -TestLeastSq.test_func_can_raise.<locals>.func  r   r   r   r   r   Nro   r   r   r   r   s   & r   r   TestLeastSq.test_func_can_raise  s7    	) :Z88Tqc* 9888r   c                    R  pR p\        \        RR7      ;_uu_ 4        \        P                  ! V^ .VR7       RRR4       R#   + '       g   i     R# ; i)c                 >    V \         P                  ! ^
.4      ,
          # r   r   r   s   &r   rr   -TestLeastSq.test_Dfun_can_raise.<locals>.func  r   r   c                      \        R 4      hr   r   rx   s   *r   r   3TestLeastSq.test_Dfun_can_raise.<locals>.deriv_func  r   r   r   r   rF  Nr^  r   s   &  r   r   TestLeastSq.test_Dfun_can_raise  s>    	&	) :Z88Tqc
; 9888r   c                   a  V 3R  lp\        . RO4      p\        WS P                  S P                  3R7      w  r4\	        VR9   RV R24       \        VS P                  ^R7       R# )c                  D   < SP                  4        SP                  ! V !  # r   )r.  r  r   s   *r   rr   -TestLeastSq.test_reentrant_func.<locals>.func  s    OO>>4((r   rx   r$  r%  r&  Nr(  r)  )r
   r   r  r#   r   r   r  )r   rr   r,  r-  ra   s   f    r   r   TestLeastSq.test_reentrant_func  sZ    	) 7^!$(,TVV'<>
|#'?uA%FG!*dhhBr   c                   a  V 3R  lp\        . RO4      p\        S P                  VS P                  S P                  3VR7      w  r4\        VR9   RV R24       \        VS P                  ^R7       R# )c                  D   < SP                  4        SP                  ! V !  # r   )r.  r!  r   s   *r   r   3TestLeastSq.test_reentrant_Dfun.<locals>.deriv_func  s    OO**D11r   r1  r$  r%  r&  Nr(  r)  r*  )r   r   r,  r-  ra   s   f    r   test_reentrant_DfunTestLeastSq.test_reentrant_Dfun  se    	2 7^!$.."(,TVV'<'13
 	|#'?uA%FG!*dhhBr   c                    \        V P                  .^
,          4      p\        V Uu. uF  q"RJ NK  	  up4      '       g   Q hR# u upi r   )r;   r.  r   r   s   &  r   r   'TestLeastSq.test_concurrent_no_gradient  s=    t/"453vdN344443r   c                    \        V P                  .^
,          4      p\        V Uu. uF  q"RJ NK  	  up4      '       g   Q hR# u upi r   )r;   r3  r   r   s   &  r   r   )TestLeastSq.test_concurrent_with_gradient  s?    t<<=BC3vdN344443r   c                    R  p\        \        RR7      ;_uu_ 4        \        P                  ! V^ ^.R7       RRR4       R#   + '       g   i     R# ; i)c                 L    ^V ^ ,          ^,
          ^,          ,          ^,           # r   r3   r   s   &r   rr   =TestLeastSq.test_func_input_output_length_check.<locals>.func  s    !qQ&**r   z+Improper input: func input vector length N=r   r   NrN  r   s   & r   #test_func_input_output_length_check/TestLeastSq.test_func_input_output_length_check  sJ    	+ 9!NP PTq!f-P P P Ps   AA	)r  r#   r  N)r&   r'   r(   r)   r   r  r!  r.  r3  r9  r>  rt   r{   rG  rO  r   r   r   r   rm  r   r   rv  r+   r,   r-   s   @r   r  r  !  ss     L
8CCA(=QT
TJ +<
CC55. .r   r  c                   8  a  ] tR tRt o R tR tR tR tR tR t	R t
]P                  P                  R	 4       tR
 t]R 4       t]P                  P%                  R. R0O4      R 4       t]P                  P%                  R. R0O4      R 4       t]P                  P%                  R^^.4      ]P                  P%                  R. R0O4      R 4       4       tR tR tR tR tR tR tR tR tR t]P                  P%                  R. R1O4      R 4       tR t R t!]P                  P%                  R R!R".4      R# 4       t"R$ t#R% t$R& t%R' t&R( t']P                  PQ                  R)4      R* 4       t)R+ t*R, t+]P                  P%                  RRR.4      R- 4       t,R.t-V t.R/# )2TestCurveFiti  c                N    \        . RO4      V n        \        . RO4      V n        R# )rW  N)rW  g	@      #@gffffff+@)rW  rZ         @g      @)r
   r   r#   r   s   &r   r   TestCurveFit.setup_method  s    ,-+,r   c                j   R  p\        WP                  V P                  4      w  r#\        \	        V4      ^8H  4       \        VP
                  R8H  4       \        V^ ,          R^R7       \        VR,          R^R7       \        WP                  V P                  ^RR7      pVw  rVrxp	\        W%4       R# )	c                     W,          # r   r3   r#   r  s   &&r   rr   ,TestCurveFit.test_one_argument.<locals>.func  	    4Kr   g3ı.n?r&  g-C6Z?F)rX   check_finiteN)r>   r>   )r   r   )r   r#   r   r   r7   r   r   r   )
r   rr   poptpcovrespopt2pcov2r8  errmsgra   s
   &         r   test_one_argumentTestCurveFit.test_one_argument  s    	tVVTVV4
D	Q

e#$DGVQ7DIvq9 ffdff$%E;03-x!$.r   c                    R  p\        WP                  V P                  4      w  r#\        \	        V4      ^8H  4       \        VP
                  R8H  4       \        VRR.^R7       \        VRR.RR..^R7       R# )	c                      W V,          ,          # r   r3   r#   r  r  s   &&&r   rr   ,TestCurveFit.test_two_argument.<locals>.func  s    T6Mr   c]K?-?r&  䃞ͪϵ?b=y?Nr   T㥛 )r   r#   r   r   r7   r   r   )r   rr   r  r  s   &   r   test_two_argumentTestCurveFit.test_two_argument  sm    	tVVTVV4
D	Q

e#$!$(8!D!$&'):Wf<M(N*+	-r   c                     ! R  R4      pV! 4       p\        VP                  V P                  V P                  4      w  r4\	        VP
                  R8H  4       \        VRR.^R7       \        VRR	.R	R..^R7       R# )
c                   *   a  ] tR tRt o RtR tRtV tR# )8TestCurveFit.test_func_is_classmethod.<locals>.test_selfi  zyThis class tests if curve_fit passes the correct number of
arguments when the model function is a class instance method.
c                     W1V,          ,          # r   r3   )r   r#   r  r  s   &&&&r   rr   =TestCurveFit.test_func_is_classmethod.<locals>.test_self.func  s    a4xr   r3   N)r&   r'   r(   r)   r*   rr   r+   r,   r-   s   @r   	test_selfr    s        r   r  r  r  r&  r  r  Nr   r  )r   rr   r#   r   r   r   r   )r   r  test_self_instr  r  s   &    r   test_func_is_classmethod%TestCurveFit.test_func_is_classmethod  ss    	  	  #~22DFFDFFC


e#$!$(8!D!$&'):Wf<M(N*+	-r   c                f    . ROp. ROp. R	Op. R
OpR p\        WQW#RR7      w  rg\        WdRR7       R# )B`"@c                    V\         P                  ! W,
          ^,          ) RV^,          ,          ,          4      ,          V\         P                  ! W,
          ^,          ) RV^,          ,          ,          4      ,          ,           V,           # )r   rZ   rS  )r#   rs   x1A0A1sigmar   s   &&&&&&&r   f_double_gauss9TestCurveFit.test_regression_2639.<locals>.f_double_gauss  s`    rvvqyj"UAX+677!$
BuaxK 899:<=> ?r   i'  maxfevgh㈵>rtolN)
r  gZd;@gQ@g#~j@g/$@g;O@g @g@gZd;@g)\@)
     ؊@g     (@g     @g     X@g     t@g     @g     @g     8@g     @g     H@)g^w8}@gU]}@     X@r  g29l?r  )g䃞j@gj@gT{7@g|'fɘ@g ƞ?g'ˊ@)r   r   )r   r#   r   guessgoodr  r  r  s   &       r   test_regression_2639!TestCurveFit.test_regression_2639  s?    #//	? ~!5I
.r   c                :   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      pR pR EFL  p\        WAV^^ .VVR7      w  rg\         P                  ! \         P                  ! V4      4      p\        VRR.RR7       \        WAV^^ .^V,          VR7      w  rg\         P                  ! \         P                  ! V4      4      p\        VRR.RR7       \        WAV^^ .VRVR7      w  rg\         P                  ! \         P                  ! V4      4      p	\        V	R	R
.RR7       \        WAV^^ .^V,          RVR7      w  rg\         P                  ! \         P                  ! V4      4      p	\        V	RR.RR7       EKO  	  R p
\         P                  ! \         P                  .^,          4      P                  ^^4      p\        4       ;_uu_ 4       pVP                  \        R4       \        WV^^ .VR7      w  rg\        WAR,          VR,          ^^ .R7      w  rRRR4       \        XP                  R8H  4       \        W{4       \        XP                  R8H  4       \        W4       R#   + '       g   i     LX; i)r   c                      W,          V,           # r   r3   r  s   &&&r   r4   !TestCurveFit.test_pcov.<locals>.f      37Nr   )r,  r  r   gN"q?g~uM/N?r   r  T)r,  r  absolute_sigmar   gO=N?g5=`6?c                     W,          # r   r3   r  s   &&&r   f_flat&TestCurveFit.test_pcov.<locals>.f_flat  s	    3Jr   z3Covariance of the parameters could not be estimatedr,  r  :Nr   Nr,  N)r   r>   r   r   rT      )r>   r>   r           )r>   r   r>   r   r>   r   r   trfdogboxg[u|?g-/i@r   )r!   r
   r   sqrtrI   r   infreshaper   filterr   r   r   r   )r   xdataydatar  r4   r   r  r  perr_scaledperrr  pcov_expectedsuppopt1pcov1s   &              r   	test_pcovTestCurveFit.test_pcov  s   +,,-+,	 .F"1U1vU*02JD''"''$-0KK*j)AM"1U1vQuW*02JD''"''$-0KK*j)AM"1U1vU26vGJD772774=)DD:z":F"1U1vQuW26vGJD772774=)DD<">TJJ' ..	 "&&!,44Q:  CJJLN"6%QF%PJD$Qb	59!QHLE	 ! 	

f$%4/v%&50 ! s   0A
J

J	c                ^    R  p. ROp. ROp\        \        WV4      ^ ,          ^^.RR7       R# )c                      W,          V,           # r   r3   r  s   &&&r   f_linear.TestCurveFit.test_array_like.<locals>.f_linear/  r  r   g|=r   Nr)  )r   r  r  	   )r   r   )r   r  r#   r   s   &   r   test_array_likeTestCurveFit.test_array_like-  s/    	 	(q1!4q!f5Ir   c                    \         P                  ! . RO4      p\         P                  ! . RO4      p\        \        \        R W4       R# )r>   c                     W,          # r   r3   r  s   &&&r   r5   <TestCurveFit.test_indeterminate_covariance.<locals>.<lambda><  s    QSr   N)r>   r   r   rT   r     )r>   r   r   rT   g      @r  )r!   r
   r   r   r   r   r  r  s   &  r   test_indeterminate_covariance*TestCurveFit.test_indeterminate_covariance6  s3     +,-._i(%	8r   c                   \         P                  ! ^\         P                  ^.4      p\         P                  ! . RO4      p\        \        \
        R W4       \        \        \
        R W!4       \        \        \
        R W3/ RR/B  R# )r>   c                      W,          V,           # r   r3   r  s   &&&r   r5   0TestCurveFit.test_NaN_handling.<locals>.<lambda>F  
    acAgr   c                      W,          V,           # r   r3   r  s   &&&r   r5   r  H  r  r   c                      W,          V,           # r   r3   r  s   &&&r   r5   r  J  s
    QS1Wr   r  TNr>   r   r   )r!   r
   nanro   r   r   r  s   &  r   test_NaN_handlingTestCurveFit.test_NaN_handling>  sm     !RVVQ(#j)-u	=j)-u	= 	j)-D	>'5t&<	>r   c           
     &   R V RVRVRVRR/pRp\        \        VR7      ;_uu_ 4        \        R/ VBRR	R
R/B  RRR4       \        \        RR7      ;_uu_ 4        \        R/ VBRR/B  RRR4       \        R/ VBRR/B w  rW&R&   WFR&   \        R/ VB w  r\        W4       Rp\        \        VR7      ;_uu_ 4        \        R/ VBRR/B  RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r4   r  r  r   r  Fz;`nan_policy='propagate'` is not supported by this function.r   
nan_policy	propagater  i  NzThe input contains nanraiseomitzTnan_policy must be one of \{(?:'raise'|'omit'|None)(?:, ?(?:'raise'|'omit'|None))*\}hir3   )ro   r   r   r   )r4   xdata_with_nanxdata_without_nanydata_with_nanydata_without_nanr   kwargs	error_msgresult_with_nan_result_without_nans   &&&&&&     r   _check_nan_policyTestCurveFit._check_nan_policyM  s     q'>7NFNE;)	:Y77DD;DtD 8 :-EFF3373 G 'CCFC+w+w ) 3F 3<:	:Y770040 87% 87 GF 877s#   CC,?C?C)	,C<	?D	r   r  r  c                X   R  p\         P                  ! ^^\         P                  ^^\         P                  .4      p\         P                  ! ^^^^\         P                  ^.4      p\         P                  ! . RO4      p\         P                  ! . RO4      pV P                  W#VWFV4       R# )c                      W,          V,           # r   r3   r  s   &&&r   r4   *TestCurveFit.test_nan_policy_1d.<locals>.fl  r  r   N)r   r   rT   r  r!   r
   r  r  r   r   r4   r  r  r  r  s   &&     r   test_nan_policy_1dTestCurveFit.test_nan_policy_1dj  s    	 1aArvv">?1aArvvq"9:HHY/HHY/q2C-&	Jr   c           
        R  p\         P                  ! ^^\         P                  ^^\         P                  ^.^^\         P                  \         P                  ^\         P                  ^..4      p\         P                  ! ^^^^\         P                  ^^
.4      p\         P                  ! . RO. RO.4      p\         P                  ! . RO4      pV P                  W#VWFV4       R# )c                 R    V R,          pV R,          pW,          V,           V,           # )r   )r   rH   )r>   rH   r3   r#   r  r  r  x2s   &&&  r   r4   *TestCurveFit.test_nan_policy_2d.<locals>.fy  s$    4B4B4!8b= r   Nr   r   r  r   r   r  r>   r   r   r  r  s   &&     r   test_nan_policy_2dTestCurveFit.test_nan_policy_2dw  s    	!
 Aq"&&!Q#B$%q"&&"&&!RVVQ#G#I J1aArvvq""=>HHi%;<HHZ0q2C-&	Jr   rK   c           
         R  p\         P                  ! ^^\         P                  ^^\         P                  ^.^^\         P                  \         P                  ^\         P                  ^...4      pV^8X  d   VP                  4       MTp\         P                  ! ^^^^\         P                  ^^
.4      p\         P                  ! . RO. RO..4      p\         P                  ! . RO4      pV P	                  W4VWWV4       R# )c                     V R,          P                  4       pV R,          P                  4       pW,          V,           V,           # ).).r   rH   ).r>   rH   )squeezer  s   &&&  r   r4   ,TestCurveFit.test_nan_policy_2_3d.<locals>.f  s6    9%%'B9%%'B4!8b= r   Nr  r  r	  )r!   r
   r  r  r  )r   rK   r   r4   r  r  r  r  s   &&&     r   test_nan_policy_2_3d!TestCurveFit.test_nan_policy_2_3d  s    	!
 Q2661a$C$%q"&&"&&!RVVQ#G$I #J K56!V//11aArvvq""=>HHy)&<%=>HHZ0q2C-&	Jr   c           	         \        \        \        R  . . 4       \        \        \        R . . RR7       \        \        \        R ^.. 4       \        \        \        R ^.. RR7       R# )c                     W,          # r   r3   r  s   &&r   r5   0TestCurveFit.test_empty_inputs.<locals>.<lambda>      !#r   c                     W,          # r   r3   r  s   &&r   r5   r    r  r   )boundsc                     W,          # r   r3   r  s   &&r   r5   r    r  r   c                     W,          # r   r3   r  s   &&r   r5   r    r  r   N)r>   r   ro   r   r   r   s   &r   test_empty_inputsTestCurveFit.test_empty_inputs  sT    j)-=r2Fj)-=r2#	%j)-=sBGj)-=sB#	%r   c                >    \        \        \        R  ^^.^^.4       R# )c                     V # r   r3   r   s   &r   r5   8TestCurveFit.test_function_zero_params.<locals>.<lambda>  s    qr   Nr  r   s   &r   test_function_zero_params&TestCurveFit.test_function_zero_params  s    j)[1a&1a&Ir   c                v    \        R  R^\        P                  ! ^
4      ,          4      w  r\        VR.4       R# )c                 <    V\         P                  ! ^
4      ,          # r   )r!   arange)r  r  s   &&r   r5   *TestCurveFit.test_None_x.<locals>.<lambda>  s    A		",=r   NrZ   )r   r!   r$  r   )r   r  r  s   &  r   test_None_xTestCurveFit.test_None_x  s/    =#Q2%68
rd#r   c           	         R  p\         P                  ! ^ ^^4      pV! VRR4      pR F   p\        WW4R7      w  rV\        VRR.4       K"  	  \	        \
        \        WVRR7       R# )c                 L    V\         P                  ! V) V ,          4      ,          # r   rS  r  s   &&&r   r4   ,TestCurveFit.test_method_argument.<locals>.f      rvvqbd|##r   rZ   Nr   unknownr  r  r   N)r!   r  r   r   ro   r   )r   r4   r  r  r   r  r  s   &      r   test_method_argument!TestCurveFit.test_method_argument  sa    	$ Aq"%%R 3F"1UBJDD2r(+ 4 	j)QuYOr   c           	     T   R  p\         P                  ! ^ ^^4      pV! VRR4      pR F|  p\        WW4RR7      w  rVrxp	\        VRR.4       RV9   g   Q hRV9   g   Q hVR8X  g   Vf   RV9   g   Q hR	V9   g   Q hR
V9   g   Q h\	        V\
        4      '       g   Q hV	R9   d   K|  Q h	  R# )c                 L    V\         P                  ! V) V ,          4      ,          # r   rS  r  s   &&&r   r4   (TestCurveFit.test_full_output.<locals>.f  s    rvvqb1f~%%r   rZ   r   NT)r   rX   r   fvecfjacipvtqtfr-  r)  )r!   r  r   r   
isinstancestr)
r   r4   r  r  r   r  r  r8  r  ra   s
   &         r   r9  TestCurveFit.test_full_output  s    	& Aq"%%R 3F09%D1B-D#D2r(+X%%%X%%%~))))))(((fc****,&&& 4r   c           
        R  p\         P                  ! ^ ^^4      pV! VRR4      pR^ .pRR.pWE3p\        WE4      pR FB  p\        WW6VR7      w  r\	        V	^ ,          R4       \        WVVVR7      w  r\	        W4       KD  	  \        WVRR^ .R	\         P
                  .3R
7      w  r\	        V	^ ,          R	4       \        \        \        WW6RR7       R# )c                 L    V\         P                  ! V) V ,          4      ,          # r   rS  r  s   &&&r   r4   #TestCurveFit.test_bounds.<locals>.f  r+  r   rZ   rW  rm   r|  Nr  )r  r   r[   g333333?)r   r  r   )Nr  r  )r!   r  r   r   r   r  ro   r   )r   r4   r  r  lbubr  bounds_classr   r  r  
popt_class
pcov_classs   &            r   test_boundsTestCurveFit.test_bounds  s    	$ Aq"%%R  !W2Y b~-F"1U*02JDDGS)%.q6B6<&>"J J- . qu(*Awbff&>@
Q% 	j)Qu!	#r   c           
        R  p\         P                  ! R\         P                  ,          ^\         P                  ,          ^(4      p\         P                  ! V4      pR\         P                  ,          ^\         P                  ,          3pR FY  p\	        WVR\         P                  ,          R7      w  rg\	        WVR\         P                  ,          WER7      w  r\        Wh4       K[  	  R# )c                 :    \         P                  ! W,           4      # r   )r!   sinr  s   &&r   r4   &TestCurveFit.test_bounds_p0.<locals>.f  s    66!%= r   g @r  r,  r  r   Nr  r  )r!   r  pirF  r   r   )	r   r4   r  r  r  r   popt_1r  popt_2s	   &        r   test_bounds_p0TestCurveFit.test_bounds_p0  s    	! BruuHagr2uruu*a"%%i('F!!Ec"%%i@IF!!Ec"%%i)/@IF F+ (r   c           
        R  pR p\         P                  ! ^ ^^4      pV! VRR4      pR	 F*  pR
 F!  p\        WWFVR7      w  rx\        V^^.4       K#  	  K,  	  R F!  p\        WWEVR7      w  rx\        V^^.4       K#  	  ^dV^&   \         P                  ! VP
                  ^ ,          4      p	^V	^&   R F$  p\        WWIVVR7      w  rx\        V^^.RR7       K&  	  R# )c                 L    V\         P                  ! V) V ,          4      ,          # r   rS  r  s   &&&r   r4    TestCurveFit.test_jac.<locals>.f  r+  r   c                     \         P                  ! V) V ,          4      p\         P                  ! W1) V ,          V,          34      P                  # r   r!   rT  r  r  r#   r  r  es   &&& r   rM   "TestCurveFit.test_jac.<locals>.jac  6    r!tA99aa!_-///r   rZ   )rM   r   r   rM   )r  r   rM   r   r  NrK  )z2-pointz3-pointcsr  )r!   r  r   r   r"   r   )
r   r4   rM   r  r  r   schemer  r  r  s
   &         r   test_jacTestCurveFit.test_jac  s    	$	0 Aq"%%R  (F6&q.46
q!f- 7 ( .F"1UsKJDD1a&) .
 aA'a-F"1U'*,JD D1a&t4 .r   c                    \         P                  ! ^ ^
4      p^V,          p\        R WR^dR7      w  r4\        R WR^dR7      w  rT\        V^RR7       \        V^RR7       R# )	r   c                     W,          # r   r3   r#   r   s   &&r   r5   5TestCurveFit.test_maxfev_and_bounds.<locals>.<lambda>(      r   )r  r  c                     W,          # r   r3   ra  s   &&r   r5   rb  )  rc  r   )r  max_nfev+=r   N)r   r   )r!   r$  r   r   )r   r#   r   r  r  r  s   &     r   test_maxfev_and_bounds#TestCurveFit.test_maxfev_and_bounds#  sY     IIaaC_a6#N_a6CPqu-qu-r   	sigma_dimc           	        R  p\         P                  P                  R4      p^dp\         P                  ! ^^
V4      pV! VRR4      pV^ 8X  d   RpWcP	                  ^ Wt4      ,          pMV^8X  d#   VR,          pWcP	                  ^ Wt4      ,          pMaV^8X  dT   VP	                  ^ ^WD34      pWP
                  ,          pWcP                  \         P                  ! V4      V4      ,          pMQ R4       hRR.p	VP                  V^R7      p
VP                  V^R7      p\         P                  WZ&   \         P                  Wk&   \        W%WiVR	R
7      w  r\         P                  ! \         P                  ! W34      4      p\         P                  ! W^^ R7      p\         P                  ! Wn^ R7      p\         P                  ! V4      pVP                  ^8X  d   \         P                  ! W~4      pMAVP                  ^8X  d1   \         P                  ! W~^ R7      p\         P                  ! W~^R7      p\        W%WiVR7      w  pp\!        WRR7       \!        VVRR7       R# )c                 H    V\         P                  ! W,          4      ,          # r   rS  r  s   &&&r   exponential7TestCurveFit.test_curvefit_omitnan.<locals>.exponential0  s    rvvae}$$r   l   lt*G7 皙?rU   g?z1The sigma must be a scalar, 1D array or 2D array.g?rW  sizer  )r,  r  r  )axisr  rf  r   N)r!   r  default_rngr  normalr  multivariate_normal
zeros_likeintegersr  r   uniqueconcatenatedeleteasarrayndimr   )r   ri  rl  rngNr#   r   r  r  r,  i_xi_yres_optres_covi_deleteref_optref_covs   &&               r   test_curvefit_omitnan"TestCurveFit.test_curvefit_omitnan.  s   	% ii##O4KK2q!3$NEAu((A1nHEAu((A1n

1a!(AGE((q)95AAAMMM53Z ll11l%ll11l% $[QU068
 99R^^SJ78IIa*IIa*

5!::?IIe.EZZ1_IIeA6EIIeA6E$[QUKu5u5r   c                *   R  pR p\         P                  P                  ^ 4       \         P                  ! ^ ^^24      pV! VRR4      pVR\         P                  P	                  \        V4      R7      ,          ,           p\         P                  ! \        V4      4      R,           p\         P                  ! V^,          4      pW"3R
3 FH  w  rR F=  p
\        WWVWR7      w  r\        WWWWR7      w  r\        WRR	7       \        WRR	7       K?  	  KJ  	  R# )c                 L    V\         P                  ! V) V ,          4      ,          # r   rS  r  s   &&&r   rr   9TestCurveFit.test_curvefit_simplecovariance.<locals>.funcg  r+  r   c                     \         P                  ! V) V ,          4      p\         P                  ! W1) V ,          V,          34      P                  # r   rU  rV  s   &&& r   rM   8TestCurveFit.test_curvefit_simplecovariance.<locals>.jacj  rY  r         @?rn  ro  Nr  rM   r  rf  r   NNFT)
r!   r  r  r  rs  r7   zerosrI   r   r   )r   rr   rM   r  r   r  r  covarjac1jac2r  r  r  r  r  s   &              r   test_curvefit_simplecovariance+TestCurveFit.test_curvefit_simplecovariancee  s    	$	0 			qAq"%S!C"))**E
*;;;U$s*q!:|4JD"/(e  A(e  A  5959 #0 5r   c                   R  pR pR pR p\         P                  P                  ^ 4      p\         P                  ! ^^4      pV! VRR4      pVRVP	                  \        V4      R7      ,          ,           p\         P                  ! \        V4      4      R,           p	\         P                  ! V	^,          4      p
\         P                  ! R\         P                  ! ^4      ,          R\         P                  ! ^4      ,          ^ .R\         P                  ! ^4      ,          R\         P                  ! ^4      ,          ^ .. RO.4      pVP                  V4      pVP                  V
4      P                  VP                  4      pWB3R3 FP  w  rR FE  p\        W6WVVR	7      w  pp\        WWVVR	7      w  pp\        VVR
RR7       \        VVR
RR7       KG  	  KR  	  R# )c                    \         P                  ! R \         P                  ! ^4      ,          R\         P                  ! ^4      ,          ^ .R \         P                  ! ^4      ,          R \         P                  ! ^4      ,          ^ .. RO.4      pVP                  V\         P                  ! V) V ,          4      ,          4      # rW        r   r   rW  )r!   r
   r  dotrT  )r#   r  r  rotns   &&& r   funcp4TestCurveFit.test_curvefit_covariance.<locals>.funcp  s    88bmS^Q? mR
]A>(* +D 88Ar!t,--r   c                    \         P                  ! R \         P                  ! ^4      ,          R\         P                  ! ^4      ,          ^ .R \         P                  ! ^4      ,          R \         P                  ! ^4      ,          ^ .. RO.4      p\         P                  ! V) V ,          4      pVP	                  \         P
                  ! WA) V ,          V,          34      P                  4      # r  )r!   r
   r  rT  r  r  r  )r#   r  r  r  rW  s   &&&  r   jacp3TestCurveFit.test_curvefit_covariance.<locals>.jacp  s    88bmS^Q? mR
]A>(* +D r!tA88BIIq"q&1*o68899r   c                 L    V\         P                  ! V) V ,          4      ,          # r   rS  r  s   &&&r   rr   3TestCurveFit.test_curvefit_covariance.<locals>.func  r+  r   c                     \         P                  ! V) V ,          4      p\         P                  ! W1) V ,          V,          34      P                  # r   rU  rV  s   &&& r   rM   2TestCurveFit.test_curvefit_covariance.<locals>.jac  rY  r   r  rW  rn  ro  Nr  g+i)+>rf  )r  r   r  r  r  r  )r!   r  RandomStater$  rs  r7   r  rI   r
   r  r  r  r   r   )r   r  r  rr   rM   r|  r  r   r  r  r  r  ydatapcovarpr  r  r  r  r  r  r  s   &                    r   test_curvefit_covariance%TestCurveFit.test_curvefit_covariance  s   	.	:	$	0 ii##A&		!QS!C#**#e**555U$s*q! xx"RWWQZ-RWWQZ;RWWQZ-BGGAJ:$& ' %%$$TVV,;5JD"/(e  Au(v  Au  u6Fu6F #0 6r   r  FTc           	         R  pV P                   V P                  rC\        W#V^VR7      w  rV\        W#V\        P                  ! V^4      VR7      w  rW\        P
                  ! Wg8H  4      '       g   Q hR# )c                      W,          V,           # r   r3   r  s   &&&r   rr   5TestCurveFit.test_curvefit_scalar_sigma.<locals>.func      519r   )r  r  N)r#   r   r   r!   	full_liker   )r   r  rr   r#   r   r  r  r  s   &&      r   test_curvefit_scalar_sigma'TestCurveFit.test_curvefit_scalar_sigma  sc    	 vvtvv1TaqP",,q!"4^
 vven%%%%r   c                   \         P                  ! R^4      pRV,          R,           R\         P                  ! V4      ,          ,           pR pR	 EF  p\         P                  \         P                  3 F  p\         P                  \         P                  3 F%  pVP                  V4      pVP                  V4      pK'  	  \        P                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        W1W$R7      w  rx\         P                  ! V4      P                  4       '       g   Q h\         P                  ! V^4      '       d   Q h RRR4       K  	  EK  	  R#   + '       g   i     EK  ; i)
r   rm   r|  rU   c                      W,          V,           # r   r3   r  s   &&&r   rr   &TestCurveFit.test_dtypes.<locals>.func  r  r   errorr   NrJ  r  )r!   r$  rF  r   r   astypewarningscatch_warningssimplefilterr   r   isfiniter   allclose)	r   r#   r   rr   r   dtxdtyr   covs	   &        r   test_dtypesTestCurveFit.test_dtypes  s   IIb!ECK#bffQi-'	 .F

BJJ/JJ

3CAA 4 ,,..))'?C&tAFA;;s+//1111!{{1a00000 /. 0 . /..s   A3E&	E&	&E8c                   R  p\         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p. ROp\         P                  ! . R	O4      pV! V.VO5!  p\        WWtW#3R7      w  rVP                  \         P                  4      pV! V.VO5!  p\        WWtW#3R7      w  r\        WRR7       R# )
c                     W,           ^,          pW!,
          ^,          pWGW,
          ,          ,           V\         P                  ! W,
          ^,          V^,          ^,          ,           4      ,          ,           # r   )r!   r  )r#   s_1s_2o_xo_yr   b_2b_1s   &&&&&&  r   	hyperbola,TestCurveFit.test_dtypes2.<locals>.hyperbola  sM    9/C9/Cae$s277AEA:1Q3F+G'GGGr   )r4   r  r  r,  r  gh㈵>r   N)g      r[          g      $r[   )r[   r|  r|  r[   g      $@)ggUUUUUU?rW  g      rU   )rI  g?r{  )iiirT   rT   r         )r!   r
   r   r  r   r   )r   r  min_fitmax_fitr  paramsr  r  popt_64r  popt_32s   &          r   test_dtypes2TestCurveFit.test_dtypes2  s    	H
 ((89((56:;&89%)&) u'.&8:
 RZZ(%)&)u'.&8:
 	t4r   c                j  a \         P                  ! ^
4      pRV^,          ,          RV,          ,           \         P                  P                  \	        V4      4      ,           oV3R lpR FD  p\        VV\         P                  ! V4      VR7      w  rE\        VV^ VR7      w  rg\        WW4       KF  	  R# )r   g@g      @c                 J   < W^,          ,          W ,          ,           S,
          # r   r3   )r#   r  r  targets   &&&r   fit_func/TestCurveFit.test_broadcast_y.<locals>.fit_func  s    Av:%..r   )r  r  r   Nr  )r!   r$  r  randr7   r   ru  r   )	r   r  r  r   popt0pcov0r  r  r  s	   &       @r   test_broadcast_yTestCurveFit.test_broadcast_y  s    		"uz!C%K/"))..U2LL	/-F$X+0+-==+?,24LE %X+0+,,24LE E) .r   c           
         R  p\        \        4      ;_uu_ 4        \        V. RO. RO^.RR7       RRR4       R#   + '       g   i     R# ; i)c                      W,          V,           # r   r3   r  s   &&&r   rr   .TestCurveFit.test_args_in_kwargs.<locals>.func  r  r   )r  r  r,  rW   Nr)  r  r        ry   r  r   s   & r   test_args_in_kwargs TestCurveFit.test_args_in_kwargs   s;    	 :&&d(*	! '&&&s	   ;A	c                    R  p\        \        RR7      ;_uu_ 4        \        V. RO. ROR7       RRR4       R#   + '       g   i     R# ; i)c                 v    V\         P                  ! V) V ,          4      ,          V,           V,           V,           # r   rS  r#   r  r  r   drW  s   &&&&&&r   rr   <TestCurveFit.test_data_point_number_validation.<locals>.func  s*    rvvqb1f~%)A-11r   zThe number of func parameters=r   )r  r  Nr)  r  )ro   rp   r   r   s   & r   !test_data_point_number_validation.TestCurveFit.test_data_point_number_validation  s7    	2 9,LMMd(*, NMMMs	   :A	zignore::RuntimeWarningc                   R  p\         P                  P                  R4      p^dp\         P                  ! V4      p\         P                  ! ^^V4      VP                  V4      ,           p\
        P                  ! WVRR7      w  rg\         P                  ! \         P                  ! V4      ^ 8  4      '       g   Q h\        P                  ! V4      ^ ,          p\         P                  ! VR8  4      '       g   Q h\        WwP                  4       R# )c                     V\         P                  ! V ^,           V,           4      ,          V\         P                  ! V ^,           V,           4      ,          ,           V,           # ry   r!   logr  s   &&&&&&r   r4   #TestCurveFit.test_gh4555.<locals>.f  s>    RVVAEAI&&266!a%!)+<)<<q@@r      MI9V$O-i r  Ng{Gz)r!   r  rr  r$  r  r   r   r   rI   r   eighr   r  )	r   r4   r|  rK   r#   r   r   r  eigss	   &        r   test_gh4555TestCurveFit.test_gh4555  s    	A ii##$67IIaLKK1a 3::a=0##A!F;vvbggclQ&''''{{3"vvdUl####UU#r   c                0   \         P                  P                  R 4      pR p\         P                  ! ^ ^^24      pV! VRRR4      pRVP	                  VP
                  R7      ,          pWE,           p\        W#V4      w  rx. R	O. R
O. RO.p	\        WR4       R# )r  c                 Z    V\         P                  ! V) V ,          4      ,          V,           # r   rS  )r#   r  r  r   s   &&&&r   rr   'TestCurveFit.test_gh4555b.<locals>.func/  s     rvvqb1f~%))r   r  r  rU   rn  ro  gH׊>N)gt^G?d*.X|?T}H)r  g1x?u`v?)r  r   gon2f?)r!   r  rr  r  rs  rp  r   r   )
r   r|  rr   r  r   y_noiser  r  r  refs
   &         r   test_gh4555bTestCurveFit.test_gh4555b*  s     ii##$67	* Aq"%S#&




334.MMMO 	$'r   c           	     X  aa \         P                  P                  R 4      p\         P                  ! ^ ^^e4      p^V,          ^,           VP	                  ^eR7      R,          ,           pV3R loV3R loRSn        RSn        \         P                  ! RR.4      p\        SW#VRSR	7       R# )
l   FjGb ro  rU   c                    < \         P                  ! SP                  V8H  4      '       d   Q hVSn        W^ ,          ,          V^,          ,           # )r   )r!   r   last_p)r#   r   lines   &*r   r  'TestCurveFit.test_gh13670.<locals>.lineG  s<    vvdkkQ.////DKt8ad?"r   c                    < \         P                  ! SP                  V8H  4      '       d   Q hVSn        \         P                  ! V \         P                  ! V 4      .4      P
                  # r   )r!   r   r  r
   r  r  )r#   r   rM   s   &*r   rM   &TestCurveFit.test_gh13670.<locals>.jacL  sI    vvcjjAo....CJ88QQ01333r   NrW  g      @r   rZ  )r!   r  rr  r  rs  r  r
   r   )r   r|  r#   r   r,  rM   r  s   &    @@r   test_gh13670TestCurveFit.test_gh13670>  s    
 ii##$78KK1c"EAI


,s22	#
	4
 
XXsCj!$b37r   c                    R  pRp\         P                  ! \        VR7      ;_uu_ 4        \        W P                  V P
                  ^.RVR7       RRR4       R#   + '       g   i     R# ; i)c                     W,          # r   r3   r  s   &&r   rr   9TestCurveFit.test_gh20155_error_mentions_x0.<locals>.funcZ  r  r   z+Initial guess is outside of provided boundsr   rH  N)r   i  )r  r	   r   r   r#   r   )r   r   rr   messages   &&  r   test_gh20155_error_mentions_x0+TestCurveFit.test_gh20155_error_mentions_x0V  sI    	?]]:W55dFFDFFs<#% 6555s   &AA+	)r#   r   Nr  )r   r>   r   )/r&   r'   r(   r)   r   r  r  r  r  r  r  r  r  thread_unsafer  r  staticmethodr  r	  r   r
  r  r  r   r&  r.  r9  rB  rO  r]  rg  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r+   r,   r-   s   @r   ry  ry    s    -/ -- /&.1`J [[8 8> 1 18 [[X'>?
J @
J [[X'>?J @J [[S1a&)[[X'>?J @ *J %J$
P'( #D,""5H	. [[[)446 546l:60Gd [[-t}=
& >
&1*58* !, [[ 89$ :$&((80 [[Xx'89% :%r   ry  c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestFixedPointib  c                >    R  pRp\        W4      p\        VR4       R# )c                     R V ,          # rZ   r3   r   s   &r   rr   0TestFixedPoint.test_scalar_trivial.<locals>.funcf      q5Lr   rW  r[   Nr   r   r   rr   rs   r#   s   &   r   test_scalar_trivial"TestFixedPoint.test_scalar_triviald  s     	!As#r   c                >    R  pRp\        W4      p\        VR4       R# )c                     V ^,          # r   r3   r   s   &r   rr   /TestFixedPoint.test_scalar_basic1.<locals>.funcn  s    a4Kr   ?rW  Nr  r  s   &   r   test_scalar_basic1!TestFixedPoint.test_scalar_basic1l  s     	!As#r   c                >    R  pRp\        W4      p\        VR4       R# )c                     V R ,          # rU   r3   r   s   &r   rr   /TestFixedPoint.test_scalar_basic2.<locals>.funcv  s    c6Mr   r%  rW  Nr  r  s   &   r   test_scalar_basic2!TestFixedPoint.test_scalar_basic2t  s     	!As#r   c                    R  pRR.p\         P                  ! RR7      ;_uu_ 4        \        W4      pRRR4       \        XRR.4       R#   + '       g   i     L ; i)c                     R V ,          # r  r3   r   s   &r   rr   /TestFixedPoint.test_array_trivial.<locals>.func}  r  r   g333333?g333333?ignorer   Nr[   )r!   errstater   r   r  s   &   r   test_array_trivial!TestFixedPoint.test_array_trivial|  sE    	4[[[X&&D%A 'ASz* '&s   AA	c                    R  p\        . RO4      p. ROp\        P                  ! RR7      ;_uu_ 4        \        WV3R7      pRRR4       \	        XRV,          4       R#   + '       g   i     L%; i)c                      W^,          ,          # r   r3   r#   r   s   &&r   rr   .TestFixedPoint.test_array_basic1.<locals>.func  s    !t8Or   rW  r1  r2  rx   Ng      ?rW  g      ?)皙?gffffff?g?)r
   r!   r3  r   r   r   rr   r   rs   r#   s   &    r   test_array_basic1 TestFixedPoint.test_array_basic1  sP    	#$[[X&&DA40A 'As1u% '&s   A  A0	c                n    R  p\        . RO4      p. ROp\        WV3R7      p\        WB^,          4       R# )c                      WR ,          ,          # r*  r3   r8  s   &&r   rr   .TestFixedPoint.test_array_basic2.<locals>.func  s    #v:r   rx   Nr:  )g?r;  r;  )r
   r   r   r<  s   &    r   test_array_basic2 TestFixedPoint.test_array_basic2  s1    	#$t,A!t$r   c                    \        R  RRRRR7      p\        V\        P                  ! RV,          4      R,          4       \        V\	        ^4      ^,          4       R# )	c                 J    \         P                  ! RV ,          4      R ,          # )rZ   r  rS  )xxs   &r   r5   .TestFixedPoint.test_lambertw.<locals>.<lambda>  s    tBw(;r   rW  g-q=i  )rW   xtolmaxiterrZ   Nr3   r  )r   r   r!   rT  r   )r   xxroots   & r   test_lambertwTestFixedPoint.test_lambertw  sF    ;SeS2tF{ 3C 78A.r   c                   aaa ^o^oRpRpV^,
          V,          SS,          V,          ^V^,
          ,          ,          ,          oVVV3R lp\        W2RR7      p\        WA4       R# )r   r  gjt?c                    < \         P                  ! SS,          V ,          4      \         P                  ! SV ,          V ^,
          ,          4      ,          ^,           # ry   r  )rK   i0klkss   &r   rr   1TestFixedPoint.test_no_acceleration.<locals>.func  s8    66"R%'?RVVBqD!a%L%99A==r   	iterationr   N)r   r   )r   mn0rr   rK   rO  rP  rQ  s   &    @@@r   test_no_acceleration#TestFixedPoint.test_no_acceleration  sY    sAg2a1ac7++	> 5r   r3   N)r&   r'   r(   r)   r   r&  r,  r4  r=  rB  rK  rV  r+   r,   r-   s   @r   r  r  b  s2     $$$+&%/ r   r  ).r*   r  r  r   numpy.testingr   r   r   r   r   r   r   r	   ro   numpyr!   r
   r   multiprocessing.poolr   scipyr   r   scipy.specialr   scipy.optimize._minpack_pyr   r   r   scipy.optimizer   scipy.optimize._minimizer   r   r0   r;   rF   rN   rP   rR   r   r   r   r  ry  r  r3   r   r   <module>r`     s      < < < +    + " " F F * +# #+>.<
i5 i5X; ;@; ;+ +4W. W.td
% d
%NH Hr   