
    ^Mh?V                         d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZ d dlZd dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZ  G d d          ZdS )    N)pi)assert_array_almost_equalassert_equalassert_warnsassert_allclose)raises)DataModelODRRealDataOdrStop
OdrWarningmultilinearexponential	unilinear	quadratic
polynomialc                   6   e Zd Zd Zd Zej        j        d             Zd Z	d Z
d Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                            dd          d             Zd Z d Z!d Z"d  Z#d! Z$d" Z%d# Z&d$S )%TestODRc                 v    t          t          t          dd           t          t          t          dd           d S )N      )assert_raises
ValueErrorr	   r   )selfs    X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/odr/tests/test_odr.pytest_bad_datazTestODR.test_bad_data   s0    j$1---j(Aq11111    c                 *    |d         |z  |d         z   S Nr   r    r   Bxs      r   empty_data_funczTestODR.empty_data_func   s    tAv!}r   c                     ddg}t          | j                  }t          g g           }t          t          t
          |||           t          g g           }t          t          t
          |||           d S )N{Gz?        beta0)r
   r%   r	   r   r   r   r   )r   r*   linear	empty_dats       r   test_empty_datazTestODR.test_empty_data   s    st+,,RLL	Ze	5 	5 	5 	5 R$$	Ze	5 	5 	5 	5 	5 	5r   c                     |d         |d         t          j        t          j        |d         |z            dz
  d          z  z   }|S )Nr   r   r         ?)nppowerexp)r   r#   r$   rets       r   explicit_fcnzTestODR.explicit_fcn.   s?    dQqTBHRVAaDF^^c%91====
r   c                 z    t          j        |d         |z            }|d         dz  |dz
  z  |d         z  |z  }|S )Nr   r          @r/   )r0   r2   )r   r#   r$   eBxr3   s        r   explicit_fjdzTestODR.explicit_fjd2   s@    fQqT!VnndSjCG$qt+c1
r   c                     t          j        |d         |z            }t          j        t          j        |j        d                   t          j        |dz
  d          |d         dz  |dz
  z  |z  |z  g          }|S )Nr   r/   r   r6   )r0   r2   vstackonesshaper1   )r   r#   r$   r7   ress        r   explicit_fjbzTestODR.explicit_fjb7   sw    fQqT!Vnni--#c'1--1c3s7+C/13 4 4 
r   c           	      F   t          | j        | j        | j        t	          dd                    }t          g dg d          }t          ||g dg d	          }|                    d
           |                    ddd           |	                                }t          |j        t          j        g d                     t          |j        t          j        g d                     t          |j        t          j        g dg dg dg                     d S )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)rU   gq?]F f_)rV   rW   gO>)r
   r4   r?   r8   dictr	   r   set_job
set_iprintrunr   betar0   arraysd_betacov_beta)r   explicit_modexplicit_datexplicit_odrouts        r   test_explicitzTestODR.test_explicit>   s   ##2.0 0 0	
 
 
 KKK. . ./ / <=R=R=R6668 8 81%%%QQa888  !HH ) ) ) * *	
 	
 	

 	"KHPPPQQ	
 	
 	
 	"LH * * ** * ** * *	+ , ,	
 	
 	
 	
 	
r   c                    |d         t          j        |d         |d         z
  d          z  d|d         z  |d         |d         z
  z  |d         |d         z
  z  z   |d         t          j        |d         |d         z
  d          z  z   dz
  S )Nr   r   r6      r      r/   )r0   r1   r"   s      r   implicit_fcnzTestODR.implicit_fcnd   s    !RXad1Q4i+++AaD!A$qt)$ad1Q4i01!RXad1Q4i+++,.12 	3r   c                    t          | j        dt          dd                    }t          g dg dgd          }t	          ||g d	          }|                                }t          |j        t          j	        g d
                     t          |j
        t          j	        g d                     t          |j        t          j	        g dg dg dg dg dg          dd           d S )Nr   zSample Implicit ModelzODRPACK UG, pg. 49rA   )implicitrF   )      ?g333333?g?g(\?g(\ @zG@gQ@rl   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(\ro   gp=
ףg      gQg      g(\gq=
ףp)rn   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?)rp   gdbb @gR	<?k)rq   rt   g};yWzg?
WWm&W?)rr   ru   rw   gK}U?$_T)rs   rv   rx   ry   ga?gư>g>)rtolatol)r
   rh   rX   r	   r   r[   r   r\   r0   r]   r^   r   r_   )r   implicit_modimplicit_datimplicit_odrrc   s        r   test_implicitzTestODR.test_impliciti   s   2.0 0 0
 
 
 6 6 6= = =>
 
 
 <0002 2 2   !HH 8 8 8 9 9	
 	
 	

 	"KH 8 8 8 9 9	
 	
 	

 	LH * * ** * ** * ** * ** * *+ , , D#	
 	
 	
 	
 	
 	
r   c           
         |dk                                      rt          t          |d         z  dz  }t          j        |          }t          j        |          }t          j        dt          z  |z  t          j        |d                    z  |d                   }t          j        ||z  d||z  z             }|d         |d         z
  t          j        t          j	        t          j        d||z  z   d          t          j        ||z  d          z             |d                    z  }t          j
        |d         |t          j        |d         |z            z  z   |t          j        |d         |z            z  g          }	|	S )	Nr(   rf   r6   r   r/   r   r   rg   )anyr   r   r0   cossinr1   r2   arctan2sqrtr;   )
r   r#   r$   thetacthetasthetaomegaphirr3   s
             r   	multi_fcnzTestODR.multi_fcn   sU   G==?? 	M1Q4
Bq1.!55j%,#f*<>>qTAaD[BHRWRXcE&L6H!-L-LXeFlA&&.' &( &(*+A$0 0 0i1"&1c"2"2 2226!A$s(+++- . .
r   c                    t          | j        t          dd                    }t          j        g d          }t          j        g dg dg          }t          |          }t          j        dd|ft          	          }t          j        |t          	          }t          j        |t          	          }d
|ddd d f<   dx|ddd d f<   |ddd d f<   d|ddd d f<   t          |          D ]}||         dk     rd||<   nH||         dk    rn;||         dk    rd||<   n)||         dk    rd||<   n||         dk    rd||<   nd||<   ||         dk    s||         dk    rd|d d d d |f<   t          ||dt          j        |d          z  |          }	t          |	|g d||          }
|
                    dd           |
                                }t!          |j        t          j        g d                     t!          |j        t          j        g d                     t!          |j        t          j        g d g d!g d"g d#g d$g                     d S )%NzSample Multi-Response ModelzODRPACK UG, pg. 56rA   rF   )rJ   g      I@g     Q@rK        b@g      i@g     r@g     @@g     @     @@rL   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@rK   r   r   g      9@r   g     @r   g     @g     Ar(   g-C6?wdwe)      @r6   rH   皙?rk   )r*   delta0rO   )rQ   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   rX   r0   r]   lenzerosfloatr<   intranger	   r1   r   rY   r[   r   r\   r^   r_   )r   	multi_modmulti_xmulti_ynmulti_wemulti_ifixxmulti_deltai	multi_dat	multi_odrrc   s               r   
test_multizTestODR.test_multi   s`   N8.0 0 0
 
 
	 ( M M M N N (0 0 00 0 0	
   LL8Q1IU333gas+++hq...1QQQ,331QQQ(1Qqqq5/ 1QQQq 	& 	&AqzE!!!"Au$$v%%!%Aw&&!&Ax''!'A!)AqzU""gajE&9&9"%111Q'd28GQ3G3G.G  		94D4D4Dk3 3 3	A...mmoo!HH 8 8 8 9 9	
 	
 	

 	"KH 8 8 8 9 9	
 	
 	

 	"LH 8 8 89 9 99 9 9: : :9 9 9	: 	; 	;	
 	
 	
 	
 	
r   c                 *    |d         |d         |z  z   S r    r!   r"   s      r   pearson_fcnzTestODR.pearson_fcn   s    tad1f}r   c                    t          j        g d          }t          j        g d          }t          j        g d          }t          j        g d          }t          ||||          }t          ||||          }t          | j        t          d                    }t          ||d	d	g
          }t          ||d	d	g
          }	|                                }
t          |
j	        t          j        ddg                     t          |
j
        t          j        ddg                     t          |
j        t          j        ddgddgg                     |	                                }t          |j	        t          j        ddg                     t          |j
        t          j        ddg                     t          |j        t          j        ddgddgg                     d S )N)
r(   rm   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?r/   )
r/   r   rk   gffffff?r   r   Q?r   皙?r   sxsyzUni-linear FitrB   r   r/   r)   g4ԉ.@gv޿grtA-?gc?g;޵?g=gk?gO&@gj( g3
ٻl?gZ՗?gF)t?g`=Lɿg!?)r0   r]   r   r
   r   rX   r   r[   r   r\   r^   r_   )r   p_xp_yp_sxp_syp_datpr_datp_modp_odrpr_odrrc   routs               r   test_pearsonzTestODR.test_pearson   s-   h>>>??h@@@AAxAAABBx>>>??cdt444 #st555d&T7G-H-H-HIIIE5B000VU2b'222iikk!HH(*=>??	
 	
 	
 	"KH(*<=>>	
 	
 	
 	"LH)+>?#%679 : :	
 	
 	
 zz||!IH)+>?@@	
 	
 	
 	"LH(*<=>>	
 	
 	
 	"MH)+>?#%78: ; ;	
 	
 	
 	
 	
r   c           	          |d         |d         z  |d         z  t          j        t          j        ||z  |d         |d         z  z
  d          t          j        |d         |z  d          z             z  S )Nr   r   r   r6   )r0   r   r1   )r   r\   r$   s      r   lorentzzTestODR.lorentz*  sy    QQQ'"'"(1Q3GDGO< 3" 3"$&HT!WQY$<$<3= +> +> > 	?r   c           	      (   t          j        dgdz            }t          j        g d          }t          g dg d||          }t          | j        t          d          	          }t          ||d
          }|                                }t          |j	        t          j        g d                     t          |j
        t          j        g d                     t          |j        t          j        g dg dg dg                     d S )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]>)r0   r]   r   r
   r   rX   r   r[   r   r\   r^   r_   )r   l_syl_sxl_datl_modl_odrrc   s          r   test_lorentzzTestODR.test_lorentz.  s   xb!!x N N N O O
 0 0 0A A A
 
 
 dl>)B)B)BCCCE5(8999iikk!HH ) ) ) * *	
 	
 	

 	"KH ) ) ) * *	
 	
 	

 	"LH * * ** * ** * *	+ , ,	
 	
 	
 	
 	
r   c                    d }ddg}t          j        dd          } |||          }t          |          }t          ||dd          }t	          ||ddg          }|                                }t          |j        d	           d S )
Nc                 *    | d         |z  | d         z   S r    r!   )cr$   s     r   r+   z(TestODR.test_ticket_1253.<locals>.linearW  s    Q46!A$;r   r6         @r   
   r/   r   r)   r   )r0   linspacer
   r	   r   r[   r   info)	r   r+   r   r$   ymodeldatajobresults	            r   test_ticket_1253zTestODR.test_ticket_1253V  s    	 	 	 #JK2F1aLLfAqSS)))$c3Z000V[!$$$$$r   c                 0   g d}g d}t          j        t          j        |t                    t          j        |t                    f          }t          t          j        ||f          d|          }t          d d          }t          ||t          j        d	g          
          }|	                                }t          ||t          j        d	g          |          }|	                                }	t          |j        |	j                   d S )N)gGz gGzgMbPgRQ?gGz?)gףp=
@g)\(?gMbP?gV-?g
ףp=
@r   r   )r   fixc                 L    |dd d f         | d         |dd d f         dz  z  z
  S )Nr   r   r6   r!   )r\   r$   s     r   <lambda>z$TestODR.test_ifixx.<locals>.<lambda>k  s0    a111gQ!AqqqD'2+0E&E r   T)rj   r/   r)   rN   )r0   r;   
zeros_liker   	ones_liker	   r
   r   r]   r[   r   r\   )
r   x1x2r   r   r   odr1sol1odr2sol2s
             r   
test_ifixxzTestODR.test_ifixxf  s    ///---ir555r|Bc7R7R7RSTTBIr2h''1#666EEPTUUU4bhtnn555xxzz4bhtnnC@@@xxzzTY	*****r   c                    t          j        g d          }d}d}t          j        g dg dg          }d}t          j        g dg dg          }t          j        g d	          }d
 }d }	d }
t          j        dd|          }t          j        dd|          }t          j        ||g          } |||          }||z   }||z   }t          ||	|
          }t	          ||||          }t          ||d|z  d          }|                    d           |                                }t          |j	        d           t          |j        |           d S )N)r/   gffffff@g?rn   g?rk   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                     | d         | d         |dd d f         z  z   | d         |dd d f         z  z   }| d         | d         |dd d f         z  z   | d         |dd d f         z  z   }t          j        ||f          S )Nr   r   r   rf   rg      )r0   r;   )r\   r$   y0y1s       r   funcz'TestODR.test_ticket_11800.<locals>.func  s    a47Qq!!!tW,,tAw1aaa4/@@Ba47Qq!!!tW,,tAw1aaa4/@@B9b"X&&&r   c                 j   t          j        |          d         }t          j        |          }t          j        |          }t          j        ||dd d f         |dd d f         |||g          }t          j        |||||dd d f         |dd d f         g          }t          j        ||f          S )Nr   r   )r0   r=   r   r<   r]   stack)r\   r$   nr_measr   r<   dy0dy1s          r   df_dbeta_odrz/TestODR.test_ticket_11800.<locals>.df_dbeta_odr  s    hqkk!nGHW%%E77##D(D!AqqqD'1QT7E5%HIIC(E5%qAAAw!QQQ$HIIC8S#J'''r   c                 *   t          j        |          d         }t          j        |          }t          j        | d         |z  | d         |z  g          }t          j        | d         |z  | d         |z  g          }t          j        ||f          S )Nr   r   rg   r   )r0   r=   r<   r]   r   )r\   r$   r  r<   r  r  s         r   	df_dx_odrz,TestODR.test_ticket_11800.<locals>.df_dx_odr  s~    hqkk!nG77##D(DGdNDGdN;<<C(DGdNDGdN;<<C8S#J'''r   r   )rD   rE   r   rm   d   )r*   maxitrf   rP   )r0   r]   r   r
   r   r   rY   r[   r   r   r   r\   )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_11800zTestODR.test_ticket_11800t  s   H<<<==		( X X XH H HI J J
 	( W W WK K KL M M
  "E "E "E F F	' 	' 	'	( 	( 	(	( 	( 	( +a_55+a_557G,--i(('!'! L	BBB9CCCdG3?#FFFa   ++-- 	W\1%%%!',>>>>>r   c                     t          j        dd          }dd|z  z   }t          ||          }t          |t                    }|                                }t          |j        ddg           d S )Nr(   rG   rI   )r0   r   r	   r   r   r[   r   r\   r   r$   r   r   r  outputs         r   test_multilinear_modelzTestODR.test_multilinear_model  se    KS!!37NAqzzdK((!&+c{;;;;;r   c                    t          j        dd          }dt          j        d|z            z   }t          ||          }t	          |t
                    }|                                }t          |j        ddg           d S )Nr(   rG   g      $rk   )	r0   r   r2   r	   r   r   r[   r   r\   r  s         r   test_exponential_modelzTestODR.test_exponential_model  sn    KS!!BF3q5MM!AqzzdK((!&+s|<<<<<r   c                    t          j        dd          }dd|z  z   d|dz  z  z   d|dz  z  z   }t          d          }t          ||          }t	          ||          }|                                }t          |j        g d	           d S )
Nr(   rG   r/   r6   r   r   r   rf   )r/   r6   r   r   )r0   r   r   r	   r   r[   r   r\   )r   r$   r   
poly_modelr   r  r  s          r   test_polynomial_modelzTestODR.test_polynomial_model  s    KS!!#'MC!q&L(3a<7]]
AqzzdJ''!&+/C/C/CDDDDDr   c                     t          j        dd          }d|z  dz   }t          ||          }t          |t                    }|                                }t          |j        ddg           d S Nr(   rG   r/   r6   )r0   r   r	   r   r   r[   r   r\   r  s         r   test_unilinear_modelzTestODR.test_unilinear_model  se    KS!!!GcMAqzzdI&&!&+Sz:::::r   c                     t          j        dd          }d|dz  z  d|z  z   dz   }t          ||          }t          |t                    }|                                }t          |j        g d           d S )Nr(   rG   r/   r   r6   r   )r/   r6   r   )r0   r   r	   r   r   r[   r   r\   r  s         r   test_quadratic_modelzTestODR.test_quadratic_model  ss    KS!!!q&L37"S(AqzzdI&&!&+?????r   c           	         d }d}t          j        |          }t          j        |dz  |dz   |dz
            }t          j        |d          }t          j        |d          }t	          |          }t          ||||          }t          ||ddg          }	|	                    d	           |	                                }
|
j	        d
         }t          |
j        |
j        ||t          |
j                  z                       d S )Nc                     | \  }}|||z  z   S Nr!   )parr$   b0b1s       r   r   z#TestODR.test_work_ind.<locals>.func  s    FBQ;r   rg   r   r   r   r   r)   r   )fit_typesd)r0   arangewherefullr
   r   r   rY   r[   work_indr   r^   workr   )r   r   n_datar$   r   x_erry_errlinear_model	real_datar  rc   sd_inds               r   test_work_indzTestODR.test_work_ind  s   	 	 	
 IfHQUAGQW--$$$$ T{{Qe666	ic3Z@@@###kkmmd#!#+"%(6&3s{;K;K2K+K"L	N 	N 	N 	N 	Nr   TzJFortran I/O prone to crashing so better not to run this test, see gh-13127)reasonc                 <   d }t          |          }t          t          j        d          dt          j        d          z            }t	          j                    }t          j                            |d          }t          j                            |d          }	 t          ||ddg||          
                                 t          ||ddg||d	
          
                                 t          j        |           dS # t          j        |           w xY w)z(
        Verify fix for gh-1892
        c                 *    | d         | d         |z  z   S r    r!   br$   s     r   r   z0TestODR.test_output_file_overwrite.<locals>.func      Q4!A$(?"r   r      z	error.datz
report.datr      )r*   errfilerptfileT)r*   rD  rE  	overwriteN)r
   r	   r0   r0  tempfilemkdtempospathjoinr   r[   shutilrmtree)r   r   pr   tmp_direrror_file_pathreport_file_paths          r   test_output_file_overwritez"TestODR.test_output_file_overwrite  s   	# 	# 	# $KKBIbMM2	"#566"$$',,w<<7<<>>	#aRy/(* * **-#%%%aRy/(D: : ::=#%%% M'"""""FM'""""s   AD Dc                     d }t          |          }|                    dd           t          |j        ddd           d S )Nc                 *    | d         | d         |z  z   S r    r!   r?  s     r   r   z1TestODR.test_odr_model_default_meta.<locals>.func  rA  r   zSample Model MetaODRPACKrA   )r
   set_metar   rF   )r   r   rN  s      r   test_odr_model_default_metaz#TestODR.test_odr_model_default_meta  sV    	# 	# 	# $KK	

+
;;;QV&9)LLMMMMMr   c           
         d }d}t          j        |          }t          j        |dz  |dz   |dz
            }t          j        |d          }t          j        |d          }t	          |          }t          ||||          }t          |||d          }	t          |||dg          }
t          |||t          j        d|fd                    }t          |||dgg          }t          |||t          j        dd|fd                    }||	|
|||fD ]U}t          ||d	d	gt          j        |d
                    }|                    dd           |                                 VdS )zA
        Verify fix for gh-18739 where del_init=1 fails.
        c                 *    | d         | d         |z  z   S r    r!   r?  s     r   r   z.TestODR.test_work_array_del_init.<locals>.func   rA  r   rg   r   r   r   r   r   )r   covyr   rM   )r*   r   r   )r.  r   N)	r0   r0  r1  r2  r
   r   r   rY   r[   )r   r   r5  r$   r   r6  r7  r8  rd0rd1rd2rd3rd4rd5rdr  s                   r   test_work_array_del_initz TestODR.test_work_array_del_init  s   	# 	# 	# IfHQUAGQW--$$$$T{{q!%000q!#...q!3%000q!"'1f+s*C*CDDDq!dVH555q!BGQ6ND,I,IJJJS#sC0 	 	B"l3*!#!6!68 8 8GOOQO333KKMMMM	 	r   c                     t          j        dd          }d|z  dz   }t          ||          }t          j        |          }~t          j        |           d S r$  )r0   r   r	   pickledumpsloadsr   r$   r   r   
obj_pickles        r   test_pickling_datazTestODR.test_pickling_data9  sU    KS!!!GcMAqzz\$''
Z     r   c                     t          j        dd          }d|z  dz   }t          ||          }t          j        |          }~t          j        |           d S r$  )r0   r   r   rd  re  rf  rg  s        r   test_pickling_real_datazTestODR.test_pickling_real_dataB  sU    KS!!!GcM1~~\$''
Z     r   c                 `    t          j        t                    }t          j        |           d S r*  )rd  re  r   rf  )r   rh  s     r   test_pickling_modelzTestODR.test_pickling_modelK  s'    \),,
Z     r   c                     t          j        dd          }d|z  dz   }t          t          ||          t                    }t          j        |          }~t          j        |           d S r$  )r0   r   r   r	   r   rd  re  rf  )r   r$   r   r  rh  s        r   test_pickling_odrzTestODR.test_pickling_odrO  s_    KS!!!GcMd1ajj),,\'**
Z     r   c                     t          j        dd          }d|z  dz   }t          t          ||          t                    j        }t          j        |          }~t          j        |           d S r$  )	r0   r   r   r	   r   r[   rd  re  rf  )r   r$   r   r  rh  s        r   test_pickling_outputzTestODR.test_pickling_outputX  sb    KS!!!GcMT!QZZ++/\&))
Z     r   N)'__name__
__module____qualname__r   r%   pytestmarkthread_unsafer-   r4   r8   r?   rd   rh   r   r   r   r   r   r   r   r   r   r  r  r  r"  r%  r'  r;  skipifrR  rW  rb  ri  rk  rm  ro  rq  r!   r   r   r   r      sN       2 2 2
   [
5 
5 
5    
  "
 "
 "
L3 3 3
.
 .
 .
d  H
 H
 H
Z  ,
 ,
 ,
b? ? ?&
 &
 &
P% % % + + +F? F? F?P< < <= = =E E E; ; ;@ @ @N N N0 [ &J K K# #K K#*N N N  :! ! !! ! !! ! !! ! !! ! ! ! !r   r   )rd  rG  rL  rI  numpyr0   r   numpy.testingr   r   r   r   ru  r   r   	scipy.odrr	   r
   r   r   r   r   r   r   r   r   r   r   r!   r   r   <module>r|     s^      				          , , , , , , , , , , , ,  * * * * * *# # # # # # # # # # # # # # # # # # # # # # # # # #
L	! L	! L	! L	! L	! L	! L	! L	! L	! L	!r   