
    doiW                         S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJrJ	r	J
r
  S SKrS SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJr   " S S5      rg)    N)pi)assert_array_almost_equalassert_equalassert_allclose)raises)DataModelODRRealDataOdrStop
OdrWarningOdrErrormultilinearexponential	unilinear	quadratic
polynomialc                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\R:                  R=                  SSS9S 5       rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S&r(g')(TestODR   c                 \    [        [        [        SS5        [        [        [        SS5        g )N      )assert_raises
ValueErrorr   r   )selfs    T/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/odr/tests/test_odr.pytest_bad_dataTestODR.test_bad_data   s    j$1-j(Aq1    c                     US   U-  US   -   $ Nr   r    r   Bxs      r   empty_data_funcTestODR.empty_data_func   s    tAv!}r    c                 ^   SS/n[        U R                  5      n[        / / 5      n[        R                  " [
        5         [        X2US9  S S S 5        [        / / 5      n[        R                  " [
        5         [        X2US9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)N{Gz?        beta0)r	   r'   r   pytestwarnsr   r
   r   )r   r-   linear	empty_dats       r   test_empty_dataTestODR.test_empty_data   s    st++,RL	\\*%	/ & R$	\\*%	/ &%	 &% &%s    B9B
B
B,c                     US   US   [         R                  " [         R                  " US   U-  5      S-
  S5      -  -   nU$ )Nr   r   r         ?)nppowerexp)r   r%   r&   rets       r   explicit_fcnTestODR.explicit_fcn-   s>    dQqTBHHRVVAaDF^c%91===
r    c                 l    [         R                  " US   U-  5      nUS   S-  US-
  -  US   -  U-  nU$ )Nr   r          @r5   )r6   r8   )r   r%   r&   eBxr9   s        r   explicit_fjdTestODR.explicit_fjd1   s@    ffQqT!VndSjCG$qt+c1
r    c                    [         R                  " US   U-  5      n[         R                  " [         R                  " UR                  S   5      [         R
                  " US-
  S5      US   S-  US-
  -  U-  U-  /5      nU$ )Nr   r5   r   r=   )r6   r8   vstackonesshaper7   )r   r%   r&   r>   ress        r   explicit_fjbTestODR.explicit_fjb6   st    ffQqT!Vnii-#c'1-1c3s7+C/13 4 
r    c           
         [        U R                  U R                  U R                  [	        SSS9S9n[        / SQ/ SQ5      n[        X!/ SQ/ SQS	9nUR                  S
S9  UR                  SSSS9  UR                  5       n[        UR                  [        R                  " / SQ5      5        [        UR                  [        R                  " / SQ5      5        [        UR                  [        R                  " / SQ/ SQ/ SQ/5      5        g )NzSample Explicit ModelzODRPACK UG, pg. 39nameref)fjacbfjacdmeta)r+   r+         @      @g      @      $@g      0@g      :@      >@g      A@g     @A@      Y@)g     ē@gfffff@g     @g     @g     @g33333@g     T@g     @gfffff@g33333@g     @g     @)     p@g      I皙)r   r   r   r   r   r   r   r   r   r   r   r   r-   ifixxr   derivr   )inititerfinal)g8@gLA[KgxQ})gֳ?g1X?gy?)ggC?NM=y7׿	J)r^   gq?]F f_)r_   r`   gO>)r	   r:   rG   r?   dictr   r
   set_job
set_iprintrunr   betar6   arraysd_betacov_beta)r   explicit_modexplicit_datexplicit_odrouts        r   test_explicitTestODR.test_explicit=   s    ####2.0	
 K./ <=R681%QQa8 !HHHH ) *	

 	"KKHHPQ	
 	"LLHH ***	+ ,	
r    c                     US   [         R                  " US   US   -
  S5      -  SUS   -  US   US   -
  -  US   US   -
  -  -   US   [         R                  " US   US   -
  S5      -  -   S-
  $ )Nr   r   r=      r      r5   )r6   r7   r$   s      r   implicit_fcnTestODR.implicit_fcnc   s    !RXXad1Q4i++AaD!A$qt)$ad1Q4i01!RXXad1Q4i++,.12 	3r    c                    [        U R                  S[        SSS9S9n[        / SQ/ SQ/S5      n[	        X!/ SQS	9nUR                  5       n[        UR                  [        R                  " / S
Q5      5        [        UR                  [        R                  " / SQ5      5        [        UR                  [        R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      SSS9  g )Nr   zSample Implicit ModelzODRPACK UG, pg. 49rJ   )implicitrO   )      ?g333333?g?g(\?g(\ @zG@gQ@rw   g{Gz @gףp=
?gq=
ףp??gQѿg(\g(\gffffffg      g
ףp=
gq=
ףp	gQ)gQg333333      gffffffgRQgzG
g      g      g      g(\gzGgHzG(\rz   gp=
ףg      gQg      g(\gq=
ףp)ry   g      g
ףp=
?r*   g{Gz?r,   )g{ 3gzJrgJ/k?g&Z薞?gkj?)g?g29?g3"͇p?g[=f?gx#+l?)g:\ @8%??'M['%GRR?)r{   gdbb @gR	<?k)r|   r   g};yWzg?
WWm&W?)r}   r   r   gK}U?$_T)r~   r   r   r   ga?gư>g>)rtolatol)r	   rr   ra   r   r
   rd   r   re   r6   rf   rg   r   rh   )r   implicit_modimplicit_datimplicit_odrrl   s        r   test_implicitTestODR.test_implicith   s    2.0
 6=>
 
 <02  !HHHH 8 9	

 	"KKHH 8 9	

 	LLHH *****+ , D#	
r    c           
          US:  R                  5       (       a  [        e[        US   -  S-  n[        R                  " U5      n[        R
                  " U5      n[        R                  " S[        -  U-  [        R                  " US   * 5      -  US   5      n[        R                  " Xe-  SXd-  -   5      nUS   US   -
  [        R                  " [        R                  " [        R                  " SXd-  -   S5      [        R                  " Xe-  S5      -   5      US   * 5      -  n[        R                  " US   U[        R                  " US   U-  5      -  -   U[        R
                  " US   U-  5      -  /5      n	U	$ )	Nr+   rp   r=   r   r5   r   r   rq   )anyr   r   r6   cossinr7   r8   arctan2sqrtrC   )
r   r%   r&   thetacthetasthetaomegaphirr9   s
             r   	multi_fcnTestODR.multi_fcn   s9   G==??M1Q4
Bq1.!5jj%,#*<>qTAaD[BHHRWWRXXcEL6H!-LXXelA&.' &(*+A$0 0ii1"&&1c"2 22266!A$s(++- .
r    c                 J   [        U R                  [        SSS9S9n[        R                  " / SQ5      n[        R                  " / SQ/ SQ/5      n[        U5      n[        R                  " SSU4[        S	9n[        R                  " U[        S	9n[        R                  " U[        S	9nS
USSS S 24'   S=USSS S 24'   USSS S 24'   SUSSS S 24'   [        U5       Hb  nX(   S:  a  SXh'   O4X(   S::  a  O+X(   S::  a  SXx'   OX(   S::  a  SXx'   OX(   S::  a  SXx'   OSXx'   X(   S:X  d
  X(   S:X  d  MV  SUS S 2S S 2U4'   Md     [        X#S[        R                  " US5      -  US9n	[        X/ SQXvS9n
U
R                  SSS9  U
R                  5       n[!        UR"                  [        R                  " / SQ5      5        [!        UR$                  [        R                  " / SQ5      5        [!        UR&                  [        R                  " / S Q/ S!Q/ S"Q/ S#Q/ S$Q/5      5        g )%NzSample Multi-Response ModelzODRPACK UG, pg. 56rJ   rO   )rS   g      I@g     Q@rT        b@g      i@g     r@g     @@g     @     @@rU   g     @@g     p@g     @g     X@     @g     L@g     @g     L@g     j@g     @     j@g    OA)gzG@g^I@gI+@gx&@g~jt@gS@gOn@gʡE@gNbX9@gMb@gRQ@gX9v@gw/
@gMb
@g%C	@g/$	@gFx@gZd;@gFx@g5^I@gNbX9@gMb@gOn@)g rh?gK7A`?gMb?gA`"?gh|?5?g r?gDl?g5^I?g-?灕Cl?gjt?r   gQ?g"~?g|?5^?gRQ?gQ?gCl?gB`"?gK?g/$?g/$?gn?r   dtypeg|@r   g     r   g    f@rT   r   r   g      9@r   g     @r   g     @g     Ar+   g-C6?wdwe)      @r=   rQ   皙?rv   )r-   delta0rX   )rZ   del_init)g@gNUiw@gz @gR?gFu?)gfkl,?g 1w?gAS?g@L*?g?)g?#0z?_ n=m?-Mu?G:xgTÚ?)r   gaǇ
z?4<n?gjtܪVŊ?)r   r   gHAcO?K*rԬa/??)r   r   r   gk{?y7)r   r   r   r   g
P/{7?)r	   r   ra   r6   rf   lenzerosfloatrD   intranger   r7   r
   rb   rd   r   re   rg   rh   )r   	multi_modmulti_xmulti_ynmulti_wemulti_ifixxmulti_deltai	multi_dat	multi_odrrl   s               r   
test_multiTestODR.test_multi   s,   NN8.0
	 (( M N ((00	
  L88Q1IU3ggas+hhq.1Q,331Q(1Qq5/ 1QqAzE!!"u$v%!%w&!&x'!'!)zU"gjE&9"%1Q   d288GQ3G.G		4D3	A.mmo!HHHH 8 9	

 	"KKHH 8 9	

 	"LLHH 899:9	: 	;	
r    c                     US   US   U-  -   $ r"   r#   r$   s      r   pearson_fcnTestODR.pearson_fcn   s    tad1f}r    c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        XX4S9n[        X!XCS9n[        U R                  [        SS9S9n[        XWS	S	/S
9n[        XgS	S	/S
9n	UR                  5       n
[        U
R                  [         R                  " SS/5      5        [        U
R                  [         R                  " SS/5      5        [        U
R                  [         R                  " SS/SS//5      5        U	R                  5       n[        UR                  [         R                  " SS/5      5        [        UR                  [         R                  " SS/5      5        [        UR                  [         R                  " SS/SS//5      5        g )N)
r+   rx   g?g@gffffff
@皙@g@gffffff@g      @g@)
g@g@r   gffffff@g      @g@ffffff@r   g333333@g      ?)
Q?r   {Gz?gQ?gQ?g)\(?gp=
ף?)\(?Gz?r5   )
r5   r   rv   gffffff?r   r   Q?r   皙?r   sxsyzUni-linear FitrK   r   r5   r,   g4ԉ.@gv޿grtA-?gc?g;޵?g=gk?gO&@gj( g3
ٻl?gZ՗?gF)t?g`=Lɿg!?)r6   rf   r   r	   r   ra   r
   rd   r   re   rg   rh   )r   p_xp_yp_sxp_syp_datpr_datp_modp_odrpr_odrrl   routs               r   test_pearsonTestODR.test_pearson   s   hh>?hh@AxxABxx>?d4 #t5d&&T7G-HIEB0V2b'2iik!HHHH(*=>?	
 	"KKHH(*<=>	
 	"LLHH)+>?#%679 :	
 zz|!IIHH)+>?@	
 	"LLHH(*<=>	
 	"MMHH)+>?#%78: ;	
r    c           	          US   US   -  US   -  [         R                  " [         R                  " X"-  US   US   -  -
  S5      [         R                  " US   U-  S5      -   5      -  $ )Nr   r   r   r=   )r6   r   r7   )r   re   r&   s      r   lorentzTestODR.lorentz)  sp    QQQ'"''"((13GDGO< 3"$&HHT!WQY$<3= +> > 	?r    c           	         [         R                  " S/S-  5      n[         R                  " / SQ5      n[        / SQ/ SQUUS9n[        U R                  [        SS9S	9n[        X4S
S9nUR                  5       n[        UR                  [         R                  " / SQ5      5        [        UR                  [         R                  " / SQ5      5        [        UR                  [         R                  " / SQ/ SQ/ SQ/5      5        g )Ng(\?   )gdOO?gO?g&0G?gpt͘(G?g^"G?g eG?genBF?g8=?g-=?g`EE?g,!WsE?g01cE?g&-}Ԭ>g;vQ?gPmQ?gGus#T?gW UW?g>c?)gׁsF@g`TR'@gxN@gs@g3@gN#-@g	ϛ@gW[N@gp:@@g@gs,&6@g@g2c@gHIOG@g?@g;@gx&q@gҌEY@)i  g     t@i  i  g     |@i  g     "@g     @i  ib  g     @i  g     L@g     ,@i  g     @g     (z@g     8q@r   zLorentz Peakr   r   )r   r   gffffff@r,   )gA5[Z@gO#?gF=@)g(1?gȕ6?gQ.q;0?)g\j?EGp` )r   g3<n>G!fc>)r   r   gq[cсE]>)r6   rf   r   r	   r   ra   r
   rd   r   re   rg   rh   )r   l_syl_sxl_datl_modl_odrrl   s          r   test_lorentzTestODR.test_lorentz-  s    xxb!xx N O
 0A
 dll>)BCE(89iik!HHHH ) *	

 	"KKHH ) *	

 	"LLHH ***	+ ,	
r    c                     S nSS/n[         R                  " SS5      nU" X#5      n[        U5      n[        X4SSS9n[	        XeSS/S9nUR                  5       n[        UR                  S	5        g )
Nc                     U S   U-  U S   -   $ r"   r#   )cr&   s     r   r0   (TestODR.test_ticket_1253.<locals>.linearV  s    Q46!A$;r    r=         @r   
   r5   r   r,   r   )r6   linspacer	   r   r
   rd   r   info)	r   r0   r   r&   ymodeldatajobresults	            r   test_ticket_1253TestODR.test_ticket_1253U  sk    	 #JKK21LfASS)$c3Z0V[[!$r    c                    / SQn/ SQn[         R                  " [         R                  " U[        S9[         R                  " U[        S945      n[        [         R                  " X45      SUS9n[        S SS9n[        XE[         R                  " S	/5      S
9nUR                  5       n[        XE[         R                  " S	/5      US9nUR                  5       n	[        UR                  U	R                  5        g )N)gGz gGzgMbPgRQ?gGz?)gףp=
@g)\(?gMbP?gV-?g
ףp=
@r   r   )r   fixc                 :    USS S 24   U S   USS S 24   S-  -  -
  $ )Nr   r   r=   r#   )re   r&   s     r   <lambda>$TestODR.test_ifixx.<locals>.<lambda>j  s&    a1gQ!AqD'2+0E&Er    T)ru   r5   r,   rW   )r6   rC   
zeros_liker   	ones_liker   r	   r
   rf   rd   r   re   )
r   x1x2r   r   r   odr1sol1odr2sol2s
             r   
test_ifixxTestODR.test_ifixxe  s    /-iir5r||Bc7RSTBIIrh'1#6EPTU4bhhtn5xxz4bhhtnC@xxzTYY		*r    c                 ~   [         R                  " / SQ5      nSnSn[         R                  " / SQ/ SQ/5      nSn[         R                  " / SQ/ SQ/5      n[         R                  " / S	Q5      nS
 nS n	S n
[         R                  " SSU5      n[         R                  " SSU5      n[         R                  " X/5      nU" X5      nX-   nX-   n[        XU
S9n[	        UUX5S9n[        UUSU-  SS9nUR                  SS9  UR                  5       n[        UR                  S5        [        UR                  U5        g )N)r5   gffffff@g?ry   g?rv   r   {Gz?)
g	 'D?g"u?gsfZ?gt?g	Yqog?s?gJf?g>xF}gvIxg!͒&|)
ggÚрgz7X0ت`gN77?ga5|gLl	TZj?g^1;e?g<%gwg%.hgܾ#ń?g?)
g!Kr?gR#?g)BgH]N?gK?gNr}?gt%?g')vU~g^'2g?))
gÊ?giP?gލho?gʐ:l?gM*gD3g\`gg֓А?g3p~?ghϬ)g>@gk_gʖ6`@g<u+g|㉘S@g2dSc                     U S   U S   USS S 24   -  -   U S   USS S 24   -  -   nU S   U S   USS S 24   -  -   U S   USS S 24   -  -   n[         R                  " X#45      $ )Nr   r   r   rp   rq      )r6   rC   )re   r&   y0y1s       r   func'TestODR.test_ticket_11800.<locals>.func  s}    a47Qq!tW,,tAw1a4/@@Ba47Qq!tW,,tAw1a4/@@B99bX&&r    c                 Z   [         R                  " U5      S   n[         R                  " U5      n[         R                  " U5      n[         R                  " XASS S 24   USS S 24   X3U/5      n[         R                  " X3X4USS S 24   USS S 24   /5      n[         R
                  " XV45      $ )Nr   r   )r6   rE   r   rD   rf   stack)re   r&   nr_measr   rD   dy0dy1s          r   df_dbeta_odr/TestODR.test_ticket_11800.<locals>.df_dbeta_odr  s    hhqk!nGHHW%E777#D((DAqD'1QT7E%HIC((E%qAw!Q$HIC88SJ''r    c                    [         R                  " U5      S   n[         R                  " U5      n[         R                  " U S   U-  U S   U-  /5      n[         R                  " U S   U-  U S   U-  /5      n[         R                  " XE45      $ )Nr   r   rq   r  )r6   rE   rD   rf   r  )re   r&   r  rD   r  r  s         r   	df_dx_odr,TestODR.test_ticket_11800.<locals>.df_dx_odr  sx    hhqk!nG777#D((DGdNDGdN;<C((DGdNDGdN;<C88SJ''r    r   )rM   rN   r   rx   d   )r-   maxitrp   rY   )r6   rf   r   r	   r   r
   rb   rd   r   r   r   re   )r   	beta_truenr_measurements	std_dev_xx_error	std_dev_yy_errorbeta_solutionr  r  r  x0_truex1_truex_truey_truex_measy_measmodel_fr   odr_objodr_outs                        r   test_ticket_11800TestODR.test_ticket_11800s  sB   HH<=		(( XHI J
 	(( WKL M
  "E F	'	(	( ++a_5++a_57,-i(!! 	B9CdG3?#Fa ++- 	W\\1%!',,>r    c                     [         R                  " SS5      nSSU-  -   n[        X5      n[        U[        5      nUR                  5       n[        UR                  SS/5        g )Nr+   rP   rR   )r6   r   r   r
   r   rd   r   re   r   r&   r   r   r0  outputs         r   test_multilinear_modelTestODR.test_multilinear_model  sQ    KKS!37NAzdK(!&++c{;r    c                     [         R                  " SS5      nS[         R                  " SU-  5      -   n[        X5      n[	        U[
        5      nUR                  5       n[        UR                  SS/5        g )Nr+   rP   g      $rv   )	r6   r   r8   r   r
   r   rd   r   re   r5  s         r   test_exponential_modelTestODR.test_exponential_model  sZ    KKS!BFF3q5M!AzdK(!&++s|<r    c                     [         R                  " SS5      nSSU-  -   SUS-  -  -   SUS-  -  -   n[        S5      n[        X5      n[	        XC5      nUR                  5       n[        UR                  / S	Q5        g )
Nr+   rP   r5   r=   r   r   r   rp   )r5   r=   r   r   )r6   r   r   r   r
   rd   r   re   )r   r&   r   
poly_modelr   r0  r6  s          r   test_polynomial_modelTestODR.test_polynomial_model  so    KKS!#'MC!q&L(3a<7]
Azd'!&++/CDr    c                     [         R                  " SS5      nSU-  S-   n[        X5      n[        U[        5      nUR                  5       n[        UR                  SS/5        g Nr+   rP   r5   r=   )r6   r   r   r
   r   rd   r   re   r5  s         r   test_unilinear_modelTestODR.test_unilinear_model  sQ    KKS!!GcMAzdI&!&++Sz:r    c                     [         R                  " SS5      nSUS-  -  SU-  -   S-   n[        X5      n[        U[        5      nUR                  5       n[        UR                  / SQ5        g )Nr+   rP   r5   r   r=   r   )r5   r=   r   )r6   r   r   r
   r   rd   r   re   r5  s         r   test_quadratic_modelTestODR.test_quadratic_model  s[    KKS!!q&L37"S(AzdI&!&++?r    c           	         S nSn[         R                  " U5      n[         R                  " US-  US-   US-
  5      n[         R                  " US5      n[         R                  " US5      n[	        U5      n[        X4XVS9n[        XSS/S9n	U	R                  SS	9  U	R                  5       n
U
R                  S
   n[        U
R                  U
R                  X[        U
R                  5      -    5        g )Nc                     U u  p#X#U-  -   $ Nr#   )parr&   b0b1s       r   r  #TestODR.test_work_ind.<locals>.func  s    FBQ;r    rq   r   r   r   r   r,   r   )fit_typesd)r6   arangewherefullr	   r   r
   rb   rd   work_indr   rg   workr   )r   r  n_datar&   r   x_erry_errlinear_model	real_datar0  rl   sd_inds               r   test_work_indTestODR.test_work_ind  s    	
 IIfHHQUAGQW-$$ T{Qe6	ic3Z@#kkmd#!#++"%((63s{{;K2K"L	Nr    TzJFortran I/O prone to crashing so better not to run this test, see gh-13127)reasonc           	         S n[        U5      n[        [        R                  " S5      S[        R                  " S5      -  5      n[        R
                  " 5       n[        R                  R                  US5      n[        R                  R                  US5      n [        X2SS/UUS9R                  5         [        X2SS/UUS	S
9R                  5         [        R                  " U5        g! [        R                  " U5        f = f)z
Verify fix for gh-1892
c                     U S   U S   U-  -   $ r"   r#   br&   s     r   r  0TestODR.test_output_file_overwrite.<locals>.func      Q4!A$(?"r    r      z	error.datz
report.datr      )r-   errfilerptfileT)r-   rf  rg  	overwriteN)r	   r   r6   rP  tempfilemkdtempospathjoinr
   rd   shutilrmtree)r   r  pr   tmp_direrror_file_pathreport_file_paths          r   test_output_file_overwrite"TestODR.test_output_file_overwrite  s    	# $KBIIbM2		"#56""$'',,w<77<<>	#Ry/(**-#%Ry/(D::=#% MM'"FMM'"s   9C, ,Dc                 r    S n[        U5      nUR                  SSS9  [        UR                  SSS.5        g )Nc                     U S   U S   U-  -   $ r"   r#   r`  s     r   r  1TestODR.test_odr_model_default_meta.<locals>.func  rc  r    zSample Model MetaODRPACKrJ   )r	   set_metar   rO   )r   r  rp  s      r   test_odr_model_default_meta#TestODR.test_odr_model_default_meta  s7    	# $K	

+
;QVV&9)LMr    c           
      p   S nSn[         R                  " U5      n[         R                  " US-  US-   US-
  5      n[         R                  " US5      n[         R                  " US5      n[	        U5      n[        X4XVS9n[        X4USS9n	[        X4US/S9n
[        X4U[         R                  " SU4S5      S9n[        X4US//S9n[        X4U[         R                  " SSU4S5      S9nXXX4 HE  n[        XS	S	/[         R                  " US
5      S9nUR                  SSS9  UR                  5         MG     g)z1
Verify fix for gh-18739 where del_init=1 fails.
c                     U S   U S   U-  -   $ r"   r#   r`  s     r   r  .TestODR.test_work_array_del_init.<locals>.func  rc  r    rq   r   r   r   r   r  )r   covyr   rV   )r-   r   r   )rN  r   N)	r6   rP  rQ  rR  r	   r   r
   rb   rd   )r   r  rU  r&   r   rV  rW  rX  rd0rd1rd2rd3rd4rd5rdr0  s                   r   test_work_array_del_init TestODR.test_work_array_del_init  s%   	# IIfHHQUAGQW-$$T{q0q#.q3%0q"''1f+s*CDqdVH5qBGGQ6ND,IJSs0B"3*!#!68GOOQO3KKM 1r    c                     [         R                  " SS5      nSU-  S-   n[        X5      n[        R                  " U5      nA[        R
                  " U5        g rA  )r6   r   r   pickledumpsloadsr   r&   r   r   
obj_pickles        r   test_pickling_dataTestODR.test_pickling_data8  sE    KKS!!GcMAz\\$'
Z r    c                     [         R                  " SS5      nSU-  S-   n[        X5      n[        R                  " U5      nA[        R
                  " U5        g rA  )r6   r   r   r  r  r  r  s        r   test_pickling_real_dataTestODR.test_pickling_real_dataA  sE    KKS!!GcM~\\$'
Z r    c                 d    [         R                  " [        5      n[         R                  " U5        g rI  )r  r  r   r  )r   r  s     r   test_pickling_modelTestODR.test_pickling_modelJ  s    \\),
Z r    c                     [         R                  " SS5      nSU-  S-   n[        [        X5      [        5      n[
        R                  " U5      nA[
        R                  " U5        g rA  )r6   r   r
   r   r   r  r  r  )r   r&   r   r0  r  s        r   test_pickling_odrTestODR.test_pickling_odrN  sL    KKS!!GcMd1j),\\'*
Z r    c                     [         R                  " SS5      nSU-  S-   n[        [        X5      [        5      R
                  n[        R                  " U5      nA[        R                  " U5        g rA  )	r6   r   r
   r   r   rd   r  r  r  )r   r&   r   r6  r  s        r   test_pickling_outputTestODR.test_pickling_outputW  sR    KKS!!GcMT!Z+//\\&)
Z r    c                     [         R                  " SSS5      nSSU-  -   n[        X5      n[        n[	        [
        5         [        X4SS9nUR                  5         SSS5        g! , (       d  f       g= f)z3
Verify fix for gh-23763 that ODR doesn't segfault
r   r   r=   r   r   )r   N)r6   r   r   r   r   r   r
   rd   )r   r&   r   r   r   odrs         r   %test_explicit_model_with_implicit_job-TestODR.test_explicit_model_with_implicit_job`  s\     KK2r"#'MAz 8$dq)CGGI %$$s   A%%
A3r#   N))__name__
__module____qualname____firstlineno__r   r'   r2   r:   r?   rG   rm   rr   r   r   r   r   r   r   r   r   r  r2  r7  r:  r>  rB  rE  r[  r.   markskipifrt  r{  r  r  r  r  r  r  r  __static_attributes__r#   r    r   r   r      s    2

0
"
L3
.
dH
Z,
b?&
P% +F?P<=E;@N0 [[ &J K#K#*N:!!!!!r    r   )r  ri  rn  rk  numpyr6   r   numpy.testingr   r   r   r.   r   r   	scipy.odrr   r	   r
   r   r   r   r   r   r   r   r   r   r   r#   r    r   <module>r     sI       	  , ,  *. . . .
Z	 Z	r    