+
    /iO                     t   R t ^ RIt^ RIt^ RIt^ RI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)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   &&_/var/www/html/photoedit/myenv/lib/python3.14/site-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_funcr.   $   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_parallelr9   +   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_networkrD   4   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)r5   r   diagemptyr    )r?   r@   rA   npdiffjacs   &&&   r   pressure_network_jacobianrL   S   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   )rD   rL   )r?   r@   rA   s   &&&r   pressure_network_fun_and_gradrN   j   s     Zq1%j:< <r   c                   n   a  ] tR t^ot 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       @        rX   rY   )	r   fullr   r   fsolverD   r   r    r   )r   rA   r@   initial_guessfinal_flowsinfoiermesgs   &       r   !test_pressure_network_no_gradient,TestFSolve.test_pressure_network_no_gradientp   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# )rR   rS   rU   fprimeNrW   )	r   rZ   r   r   r[   rD   rL   r   r    r   rA   r@   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<         ?rX   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# rk   rX   rU   N)r<   )rm   rn   r   r[   r.   r   rq   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<   rq   re   N   r~   rl   r   rp   
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~   r.   r!   s   &r   rp   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)rm   rn   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
ValueErrorrv   s   *r   rp   ,TestFSolve.test_func_can_raise.<locals>.func       Z((r   r   matchrq   Nrm   r   r   r[   r   rp   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   rp   ,TestFSolve.test_Dfun_can_raise.<locals>.func       rxx~%%r   c                      \        R 4      hr   r   rv   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   rp   %TestFSolve.test_float32.<locals>.func   s1    88QqTCZ15RZZHAMMr   MbP?atolN)r   r[   r   r   r   r   )r   rp   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   )ra   rD   rU   r   s   *r   rp   ,TestFSolve.test_reentrant_func.<locals>.func   s    224#T**r   rS   TrT   NrW   )r   rZ   r   r   r[   r   r    r   )	r   rp   rA   r@   r\   r]   r^   r_   r`   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   )rg   rL   r   s   *r   r   3TestFSolve.test_reentrant_Dfunc.<locals>.deriv_func   s    446,d33r   rS   rd   NrW   )r   rZ   r   r   r[   rD   r   r    )r   r   rA   r@   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)r9   ra   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   )r9   rg   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   r1   N)r$   r%   r&   r'   ra   rg   rr   ry   r   r   r   r   r   r   r   r   r   r)   r*   r+   s   @r   rP   rP   o   sN     	 ;<PU
U*=4 ;55 5r   rP   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# )rR   rS   hybrmethodrU   NrW   	r   rZ   r   r   rootrD   r!   r   r    rf   s   &    r   ra   .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# )rR   rS   r   rU   r   rK   NrW   )
r   rZ   r   r   r   rD   rL   r!   r   r    rf   s   &    r   rg   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# )rR   rS   r   Tr   NrW   )	r   rZ   r   r   r   rN   r!   r   r    rf   s   &    r   ,test_pressure_network_with_gradient_combined9TestRootHybr.test_pressure_network_with_gradient_combined   s\     GGAsO./mm$A$1q	+1t==>Q 	 	"+rwwqz:r   r1   N)	r$   r%   r&   r'   ra   rg   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# )rR   rS   lmr   NrW   r   rf   s   &    r   ra   ,TestRootLM.test_pressure_network_no_gradient   sV    GGAsO./mm$4m+/tiAAB 	!+rwwqz:r   r1   N)r$   r%   r&   r'   ra   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)rV   r   N)r   r   r   r[   r   )r   r!   r^   r_   r`   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                >   \         P                  ! ^ ^
^(4      pR^*RrCpWn        W#V3V n        W!^,          ,          W1,          ,           V,           p\         P                  P                  ^{4      pVRVP                  VP                  4      ,          ,           V n        R# )r   g@g{Gz?Ng33333s)	r   linspacer!   abcrandomdefault_rngstandard_normalr   y_meas)r   r!   abr   y_truerngs   &      r   r   TestLeastSq.setup_method!  sy    KK2r"RAq5a4!#!ii##C(tC$7$7$EEEr   c                d    Vw  rEpW$V^,          ,          WS,          ,           V,           ,
          pV# r   r1   )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_jacobian/  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   rv   solution not found (ier=)decimalNr   r   r   r<   r~   r   rR   r   r   r  r  r!   r   r   r  r   p0
params_fitr_   s   &   r   
test_basicTestLeastSq.test_basic2  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   rU   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   TrT   solution not found: Nr'  r(  )r   r   r  r  r!   r   )r   r+  rV   r,  cov_xinfodictr`   r_   s   &       r   test_full_outputTestLeastSq.test_full_outputC  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)copyrT   r5  Nr'  r(  )r   r	   r   r  r  r!   r   r   )	r   r+  p0_copyrV   r,  r6  r7  r`   r_   s	   &        r   test_input_untouched TestLeastSq.test_input_untouchedK  sl    7)&dnnb$(KK#8*.0 2=.
83y $8"?@2'r   c                b    \        ^4      pRR.p\        \        \        P                  W4       R# rj   r   rm   rn   r   r   ro   s   &  r   rr   *TestLeastSq.test_wrong_shape_func_callableU  s(    1~ 3Zi!1!14<r   c                Z    R R.p\        \        \        P                  \        VRR7       R# ru   )rm   rn   r   r   r.   rx   s   & r   ry   *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<   rq   r1  Nr}   r@  r   s   &  r   test_wrong_shape_Dfun_callable*TestLeastSq.test_wrong_shape_Dfun_callableb  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   rp   8TestLeastSq.test_wrong_shape_Dfun_function.<locals>.funch  r   r   c                     \        V R4      # r   r   r   s   &r   r   >TestLeastSq.test_wrong_shape_Dfun_function.<locals>.deriv_funcj  r   r   rE  Nrm   rn   r   r   r   s   &  r   test_wrong_shape_Dfun_function*TestLeastSq.test_wrong_shape_Dfun_functiong  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   rX   r   exp)r   r!   r   qs   &&& r   rp   &TestLeastSq.test_float32.<locals>.funcp  sF    !RVVa!fq[L#adAg+677!<A5Lr   r   rv   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?)      ?rV  rV  rV  r(  )r   r   r   r   r   r   r>   )r   rp   r!   r   r+  p1successs   &      r   r   TestLeastSq.test_float32n  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   rv   s   *r   rp   -TestLeastSq.test_func_can_raise.<locals>.func  r   r   r   r   r   Nrm   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   rp   -TestLeastSq.test_Dfun_can_raise.<locals>.func  r   r   c                      \        R 4      hr   r   rv   s   *r   r   3TestLeastSq.test_Dfun_can_raise.<locals>.deriv_func  r   r   r   r   rE  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   rp   -TestLeastSq.test_reentrant_func.<locals>.func  s    OO>>4((r   rv   r#  r$  r%  Nr'  r(  )r   r   r  r!   r   r   r  )r   rp   r+  r,  r_   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   r0  r#  r$  r%  Nr'  r(  r)  )r   r   r+  r,  r_   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   )r9   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   )r9   r2  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   r1   r   s   &r   rp   =TestLeastSq.test_func_input_output_length_check.<locals>.func  s    !qQ&**r   z+Improper input: func input vector length N=r   r   NrM  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-  r2  r8  r=  rr   ry   rF  rN  r   r   r   r   rl  r   r   ru  r)   r*   r+   s   @r   r	  r	     ss     F
8CCA(=QT
TJ +<
CC55. .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 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                   PO                  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# )rV  N)rV  g	@      #@gffffff+@)rV  rX         @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   r1   r!   r  s   &&r   rp   ,TestCurveFit.test_one_argument.<locals>.func  	    4Kr   g3ı.n?r%  g-C6Z?F)rV   check_finiteN)r<   r<   )r   r   )r   r!   r   r   r5   r   r   r   )
r   rp   poptpcovrespopt2pcov2r7  errmsgr_   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   r1   r!   r  r  s   &&&r   rp   ,TestCurveFit.test_two_argument.<locals>.func  s    T6Mr   c]K?-?r%  䃞ͪϵ?b=y?Nr}   T㥛 )r   r!   r   r   r5   r   r   )r   rp   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   r1   )r   r!   r  r  s   &&&&r   rp   =TestCurveFit.test_func_is_classmethod.<locals>.test_self.func  s    a4xr   r1   N)r$   r%   r&   r'   r(   rp   r)   r*   r+   s   @r   	test_selfr    s        r   r  r  r  r%  r  r  Nr}   r  )r   rp   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~   rX   rR  )r!   rq   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\        P                  ! 4       ;_uu_ 4        \        P                  ! R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   r1   r  s   &&&r   r2   !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   r1   r  s   &&&r   f_flat&TestCurveFit.test_pcov.<locals>.f_flat  s	    3Jr   ignorez3Covariance of the parameters could not be estimatedr+  r  :Nr~   Nr+  N)r   r<   r~   r   rR      )r<   r<   r           )r<   r~   r<   r~   r<   r~   r   trfdogboxg[u|?g-/i@r}   )r   r   r   sqrtrG   r   infreshapewarningscatch_warningsfilterwarningsr   r   r   r   )r   xdataydatar  r2   r   r  r  perr_scaledperrr  pcov_expected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:$$&&##E! #6%QF%PJD$Qb	59!QHLE ' 	

f$%4/v%&50 '&s   ;AJJ+	c                ^    R  p. ROp. ROp\        \        WV4      ^ ,          ^^.RR7       R# )c                      W,          V,           # r   r1   r  s   &&&r   f_linear.TestCurveFit.test_array_like.<locals>.f_linear0  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\        P                  ! \        4      ;_uu_ 4        \        R W4       RRR4       R#   + '       g   i     R# ; i)r<   c                     W,          # r   r1   r  s   &&&r   r3   <TestCurveFit.test_indeterminate_covariance.<locals>.<lambda><  s    acr   N)r<   r~   r   rR   r     )r<   r~   r   rR   g      @r  )r   r   r  warnsr   r   r   r  r  s   &  r   test_indeterminate_covariance*TestCurveFit.test_indeterminate_covariance7  sI    +,-.\\/**)58 +***s   A++A<	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   r1   r  s   &&&r   r3   0TestCurveFit.test_NaN_handling.<locals>.<lambda>F  
    acAgr   c                      W,          V,           # r   r1   r  s   &&&r   r3   r  H  r  r   c                      W,          V,           # r   r1   r  s   &&&r   r3   r  J  s
    QS1Wr   r  TNr<   r~   r   )r   r   nanrm   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)r2   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))*\}hir1   )rm   r   r   r   )r2   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   r1   r  s   &&&r   r2   *TestCurveFit.test_nan_policy_1d.<locals>.fl  r  r   N)r~   r   rR   r  r   r   r  r  r   r   r2   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   rF   )r<   rF   r1   r!   r  r  r  x2s   &&&  r   r2   *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   rI   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   rF   ).r<   rF   )squeezer  s   &&&  r   r2   ,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   rI   r   r2   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   r1   r  s   &&r   r3   0TestCurveFit.test_empty_inputs.<locals>.<lambda>      !#r   c                     W,          # r   r1   r  s   &&r   r3   r    r  r   )boundsc                     W,          # r   r1   r  s   &&r   r3   r    r  r   c                     W,          # r   r1   r  s   &&r   r3   r    r  r   N)r<   r~   rm   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   r1   r   s   &r   r3   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   r3   *TestCurveFit.test_None_x.<locals>.<lambda>  s    A		",=r   NrX   )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   rR  r  s   &&&r   r2   ,TestCurveFit.test_method_argument.<locals>.f      rvvqbd|##r   rX   Nr   unknownr  r  r   N)r   r  r   r   rm   r   )r   r2   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   rR  r  s   &&&r   r2   (TestCurveFit.test_full_output.<locals>.f  s    rvvqb1f~%%r   rX   r   NT)r   rV   r   fvecfjacipvtqtfr/  r(  )r   r  r   r   
isinstancestr)
r   r2   r  r  r   r  r  r7  r  r_   s
   &         r   r8  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   rR  r  s   &&&r   r2   #TestCurveFit.test_bounds.<locals>.f  r-  r   rX   rV  rk   r{  Nr  )r  r   rY   g333333?)r   r  r   )Nr  r  )r   r  r   r   r   r  rm   r   )r   r2   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   r2   &TestCurveFit.test_bounds_p0.<locals>.f  s    66!%= r   g @r  r+  r  r   Nr  r  )r   r  pirH  r   r   )	r   r2   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   rR  r  s   &&&r   r2    TestCurveFit.test_jac.<locals>.f  r-  r   c                     \         P                  ! V) V ,          4      p\         P                  ! W1) V ,          V,          34      P                  # r   r   rS  r  r  r!   r  r  es   &&& r   rK   "TestCurveFit.test_jac.<locals>.jac  6    r!tA99aa!_-///r   rX   )rK   r   r   rK   )r  r   rK   r   r  NrM  )z2-pointz3-pointcsr  )r   r  r   r   r    r   )
r   r2   rK   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   r1   r!   r   s   &&r   r3   5TestCurveFit.test_maxfev_and_bounds.<locals>.<lambda>(      r   )r  r  c                     W,          # r   r1   rc  s   &&r   r3   rd  )  re  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   rR  r  s   &&&r   exponential7TestCurveFit.test_curvefit_omitnan.<locals>.exponential0  s    rvvae}$$r   l   lt*G7 皙?rS   g?z1The sigma must be a scalar, 1D array or 2D array.g?rV  sizer  )r+  r  r  )axisr  rh  r   N)r   r  r  r  normalr  multivariate_normal
zeros_likeintegersr  r   uniqueconcatenatedeleteasarrayndimr   )r   rk  rn  r  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\         P                  ! ^ ^^24      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W"3R
3 FH  w  rR F=  p\        WWgWR7      w  r\        WWhWR7      w  r\        WRR	7       \        WRR	7       K?  	  KJ  	  R# )c                 L    V\         P                  ! V) V ,          4      ,          # r   rR  r  s   &&&r   rp   9TestCurveFit.test_curvefit_simplecovariance.<locals>.funcg  r-  r   c                     \         P                  ! V) V ,          4      p\         P                  ! W1) V ,          V,          34      P                  # r   rW  rX  s   &&& r   rK   8TestCurveFit.test_curvefit_simplecovariance.<locals>.jacj  r[  r         @?rp  rq  Nr  rK   r  rh  r   NNFT)
r   r  r  r  r  r5   zerosrG   r   r   )r   rp   rK   r  r  r   r  r  covarjac1jac2r  r  r  r  r  s   &               r   test_curvefit_simplecovariance+TestCurveFit.test_curvefit_simplecovariancee  s    	$	0 ii##C(Aq"%S!C#--3u:->>>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                  R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      # rV        r   r   rV  )r   r   r  dotrS  )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  rS  r  r  r  )r!   r  r  r  rY  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   rR  r  s   &&&r   rp   3TestCurveFit.test_curvefit_covariance.<locals>.func  r-  r   c                     \         P                  ! V) V ,          4      p\         P                  ! W1) V ,          V,          34      P                  # r   rW  rX  s   &&& r   rK   2TestCurveFit.test_curvefit_covariance.<locals>.jac  r[  r   i  r  rV  rp  rq  Nr  gz]ʂ>rh  )r  r   r  r  r  r  )r   r  r  r&  r  r5   r  rG   r   r  r  r  r   r   )r   r  r  rp   rK   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##D)		!QS!C#--3u:->>>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   r1   r  s   &&&r   rp   5TestCurveFit.test_curvefit_scalar_sigma.<locals>.func      519r   )r  r  N)r!   r   r   r   	full_liker   )r   r  rp   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   rk   r{  rS   c                      W,          V,           # r   r1   r  s   &&&r   rp   &TestCurveFit.test_dtypes.<locals>.func  r  r   errorr   NrL  r  )r   r&  rH  r   r	   astyper  r  simplefilterr   r   isfiniter   allclose)	r   r!   r   rp   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   )r2   r  r  r+  r  gh㈵>r   N)g      rY          g      $rY   )rY   r{  r{  rY   g      $@)ggUUUUUU?rV  g      rS   )rK  g?rz  )iiirR   rR   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                  a	 \         P                  ! ^
4      p\         P                  P                  ^{4      pRV^,          ,          RV,          ,           VP                  \	        V4      R7      ,           o	V	3R lpR FD  p\        VV\         P                  ! V4      VR7      w  rV\        VV^ VR7      w  rx\        Wh4       KF  	  R# )r   g@g      @rq  c                 J   < W^,          ,          W ,          ,           S,
          # r   r1   )r!   r  r  targets   &&&r   fit_func/TestCurveFit.test_broadcast_y.<locals>.fit_func  s    Av:%..r   )r  r  r   Nr  )r   r&  r  r  r5   r   rv  r   )
r   r  r  r  r   popt0pcov0r  r  r  s
   &        @r   test_broadcast_yTestCurveFit.test_broadcast_y  s    		"ii##C(uz!C%K/#**#e**2MM	/-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   r1   r  s   &&&r   rp   .TestCurveFit.test_args_in_kwargs.<locals>.func  r  r   )r  r  r+  rU   Nr(  r  r        rw   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   rR  r!   r  r  r   drY  s   &&&&&&r   rp   <TestCurveFit.test_data_point_number_validation.<locals>.func  s*    rvvqb1f~%)A-11r   zThe number of func parameters=r   )r  r  Nr(  r  )rm   rn   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,           # rw   r   logr  s   &&&&&&r   r2   #TestCurveFit.test_gh4555.<locals>.f  s>    RVVAEAI&&266!a%!)+<)<<q@@r      MI9V$O-i r  Ng{Gz)r   r  r  r&  r  r   r   r   rG   r   eighr   r  )	r   r2   r  rI   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   rR  )r!   r  r  r   s   &&&&r   rp   'TestCurveFit.test_gh4555b.<locals>.func0  s     rvvqb1f~%))r   r  r  rS   rp  rq  gH׊>N)gt^G?d*.X|?T}H)r  g1x?u`v?)r  r  gon2f?)r   r  r  r  rt  rr  r   r   )
r   r  rp   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 rq  rS   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>.lineH  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   rK   s   &*r   rK   &TestCurveFit.test_gh13670.<locals>.jacM  sI    vvcjjAo....CJ88QQ01333r   NrV  g      @r   r\  )r   r  r  r  rt  r  r   r   )r   r  r!   r   r+  rK   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   r1   r  s   &&r   rp   9TestCurveFit.test_gh20155_error_mentions_x0.<locals>.func[  r  r   z+Initial guess is outside of provided boundsr   rJ  N)r   i  )r  r   r   r   r!   r   )r   r   rp   messages   &&  r   test_gh20155_error_mentions_x0+TestCurveFit.test_gh20155_error_mentions_x0W  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  staticmethodr  r  r  r  r  r  r  r  r"  r(  r0  r8  rD  rQ  r_  ri  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r)   r*   r+   s   @r   rx  rx    s    -/ -- /&01dJ9> 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   rx  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# )TestFixedPointic  c                >    R  pRp\        W4      p\        VR4       R# )c                     R V ,          # rX   r1   r   s   &r   rp   0TestFixedPoint.test_scalar_trivial.<locals>.funcg      q5Lr   rV  rY   Nr   r   r   rp   rq   r!   s   &   r   test_scalar_trivial"TestFixedPoint.test_scalar_triviale  s     	!As#r   c                >    R  pRp\        W4      p\        VR4       R# )c                     V ^,          # r   r1   r   s   &r   rp   /TestFixedPoint.test_scalar_basic1.<locals>.funco  s    a4Kr   ?rV  Nr  r  s   &   r   test_scalar_basic1!TestFixedPoint.test_scalar_basic1m  s     	!As#r   c                >    R  pRp\        W4      p\        VR4       R# )c                     V R ,          # rS   r1   r   s   &r   rp   /TestFixedPoint.test_scalar_basic2.<locals>.funcw  s    c6Mr   r  rV  Nr  r  s   &   r   test_scalar_basic2!TestFixedPoint.test_scalar_basic2u  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  r1   r   s   &r   rp   /TestFixedPoint.test_array_trivial.<locals>.func~  r  r   g333333?g333333?r  r   NrY   )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   r1   r!   r   s   &&r   rp   .TestFixedPoint.test_array_basic1.<locals>.func  s    !t8Or   rV  r  r+  rv   Ng      ?rV  g      ?)皙?gffffff?g?)r   r   r,  r   r   r   rp   r   rq   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$  r1   r1  s   &&r   rp   .TestFixedPoint.test_array_basic2.<locals>.func  s    #v:r   rv   Nr3  )g?r4  r4  )r   r   r   r5  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 ,          # )rX   r  rR  )xxs   &r   r3   .TestFixedPoint.test_lambertw.<locals>.<lambda>  s    tBw(;r   rV  g-q=i  )rU   xtolmaxiterrX   Nr1   r  )r   r   r   rS  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      ,          ^,           # rw   r  )rI   i0klkss   &r   rp   1TestFixedPoint.test_no_acceleration.<locals>.func  s8    66"R%'?RVVBqD!a%L%99A==r   	iterationr   N)r   r   )r   mn0rp   rI   rH  rI  rJ  s   &    @@@r   test_no_acceleration#TestFixedPoint.test_no_acceleration  sY    sAg2a1ac7++	> 5r   r1   N)r$   r%   r&   r'   r  r   r&  r-  r6  r;  rD  rO  r)   r*   r+   s   @r   r  r  c  s2     $$$+&%/ r   r  ),r(   r  r  r   numpy.testingr   r   r   r   r   r   rm   numpyr   r   r	   multiprocessing.poolr
   scipyr   r   scipy.specialr   scipy.optimize._minpack_pyr   r   r   scipy.optimizer   scipy.optimize._minimizer   r   r.   r9   rD   rL   rN   rP   r   r   r   r	  rx  r  r1   r   r   <module>rY     s      G G *    + " " F F * +# #+>.<
i5 i5X; ;@; ;+ +4W. W.tf
% f
%RH Hr   