
    tKg 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y)    N)pi)assert_array_almost_equalassert_equalassert_warnsassert_allclose)raises)DataModelODRRealDataOdrStop
OdrWarningmultilinearexponential	unilinear	quadratic
polynomialc                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej8                  j;                  dd      d        Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%y$)%TestODRc                 \    t        t        t        dd       t        t        t        dd       y )N      )assert_raises
ValueErrorr	   r   )selfs    \/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/odr/tests/test_odr.pytest_bad_datazTestODR.test_bad_data   s    j$1-j(Aq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
        |||       y )N{Gz?        beta0)r
   r%   r	   r   r   r   r   )r   r*   linear	empty_dats       r   test_empty_datazTestODR.test_empty_data   sZ    st++,RL	Ze	5 R$	Ze	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>    dQqTBHHRVVAaDF^c%91===
r   c                 j    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_fjd1   s@    ffQqT!Vn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_fjb6   st    ffQqT!Vnii-#c'1-1c3s7+C/13 4 
r   c           	      6   t        | j                  | j                  | j                  t	        dd            }t        g dg d      }t        ||g dg d	      }|j                  d
       |j                  ddd       |j                         }t        |j                  t        j                  g d             t        |j                  t        j                  g d             t        |j                  t        j                  g dg dg dg             y )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	
 K./ <=R681%QQa8 !HHHH ) *	

 	"KKHHPQ	
 	"LLHH ***	+ ,	
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_fcnc   s    !RXXad1Q4i++AaD!A$qt)$ad1Q4i01!RXXad1Q4i++,.12 	3r   c                    t        | j                  dt        dd            }t        g dg dgd      }t	        ||g d	      }|j                         }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       y )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_implicith   s    2.0
 6=>
 
 <02  !HHHH 8 9	

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

 	LLHH *****+ , D#	
r   c           
         |dk  j                         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   s?   G==?M1Q4
Bq1.!5jj%,#f*<>qTAaD[BHHRWWRXXcE&L6H!-LXXeFlA&.' &(*+A$0 0ii1"&&1c"2 22266!A$s(++- .
r   c                 r   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 ]e  }||   dk  rd||<   n8||   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(  sZd|d d d d |f<   g t        ||dt        j                  |d      z  |      }	t        |	|g d||      }
|
j                  dd       |
j                         }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             y )%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   sJ   NN8.0
	 (( M N ((00	
  L88Q1IU3ggas+hhq.1Q,331Q(1Qq5/ 1QqAqzE!!"Au$v%!%Aw&!&Ax'!'A!)AqzU"gajE&9"%1Q   'd288GQ3G.G		94Dk3	A.mmo!HHHH 8 9	

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

 	"LLHH 8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
      }	|j                         }
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             |	j                         }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             y )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   hh>?hh@AxxABxx>?cdt4 #st5d&&T7G-HIE5B0VU2b'2iik!HHHH(*=>?	
 	"KKHH(*<=>	
 	"LLHH)+>?#%679 :	
 zz|!IIHH)+>?@	
 	"LLHH(*<=>	
 	"MMHH)+>?#%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)  sr    QQQ'"''"((1Q3GDGO< 3"$&HHT!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
      }|j                         }t        |j                  t        j                  g d             t        |j                  t        j                  g d             t        |j                  t        j                  g dg dg dg             y )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    xxb!xx N O
 0A
 dll>)BCE5(89iik!HHHH ) *	

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

 	"LLHH ***	+ ,	
r   c                     d }ddg}t        j                  dd      } |||      }t        |      }t        ||dd      }t	        ||ddg      }|j                         }t        |j                  d	       y )
Nc                     | d   |z  | d   z   S r    r!   )cr$   s     r   r+   z(TestODR.test_ticket_1253.<locals>.linearV  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_1253U  sq    	 #JKK21aLfAqSS)$c3Z0V[[!$r   c                    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      
      }|j                         }t        ||t        j                  d	g      |      }|j                         }	t        |j                  |	j                         y )N)gGz gGzgMbPgRQ?gGz?)gףp=
@g)\(?gMbP?gV-?g
ףp=
@r   r   )r   fixc                 :    |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>j  s&    a1gQ!AqD'2+0E&Er   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_ifixxe  s    /-iir5r||Bc7RSTBIIr2h'1#6EPTU4bhhtn5xxz4bhhtnC@xxzTYY		*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      }|j                  d       |j                         }t        |j                  d       t        |j                  |       y )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1a4/@@Ba47Qq!tW,,tAw1a4/@@B99b"X&&r   c                 X   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    hhqk!nGHHW%E777#D((D!AqD'1QT7E5%HIC((E5%qAw!Q$HIC88S#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  sz    hhqk!nG777#D((DGdNDGdN;<C((DGdNDGdN;<C88S#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_11800s  sN   HH<=		(( XHI J
 	(( WKL M
  "E F	'	(	( ++a_5++a_57G,-i('!'! L	B9CdG3?#Fa ++- 	W\\1%!',,>r   c                     t        j                  dd      }dd|z  z   }t        ||      }t        |t              }|j                         }t        |j                  ddg       y )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  sS    KKS!37NAqzdK(!&++c{;r   c                     t        j                  dd      }dt        j                  d|z        z   }t        ||      }t	        |t
              }|j                         }t        |j                  ddg       y )Nr(   rG   g      $rk   )	r0   r   r2   r	   r   r   r[   r   r\   r  s         r   test_exponential_modelzTestODR.test_exponential_model  s\    KKS!BFF3q5M!Aqz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	        ||      }|j                         }t        |j                  g d	       y )
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  ss    KKS!#'MC!q&L(3a<7]
AqzdJ'!&++/CDr   c                     t        j                  dd      }d|z  dz   }t        ||      }t        |t              }|j                         }t        |j                  ddg       y Nr(   rG   r/   r6   )r0   r   r	   r   r   r[   r   r\   r  s         r   test_unilinear_modelzTestODR.test_unilinear_model  sS    KKS!!GcMAqzdI&!&++Sz:r   c                     t        j                  dd      }d|dz  z  d|z  z   dz   }t        ||      }t        |t              }|j                         }t        |j                  g d       y )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  s]    KKS!!q&L37"S(Aqz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      }	|	j                  d	       |	j                         }
|
j                  d
   }t        |
j                  |
j                  ||t        |
j                        z           y )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    	
 IIfHHQUAGQW-$$ T{Qe6	ic3Z@#kkmd#!#++"%((6&3s{{;K2K"L	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                  j                  |d      }t        j                  j                  |d      }	 t        ||ddg||      j                          t        ||ddg||d	
      j                          t        j                  |       y# 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    	# $KBIIbM2		"#56""$'',,w<77<<>	#aRy/(**-#%aRy/(D::=#% MM'"FMM'"s   AC0 0Dc                 x    d }t        |      }|j                  dd       t        |j                  ddd       y )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  s7    	# $K	

+
;QVV&9)L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 ]J  }t        ||d	d	gt        j                  |d
            }|j                  dd       |j                          L y)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;   	# 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S#sC0B"l3*!#!68GOOQO3KKM 1r   c                     t        j                  dd      }d|z  dz   }t        ||      }t        j                  |      }~t        j
                  |       y r$  )r0   r   r	   pickledumpsloadsr   r$   r   r   
obj_pickles        r   test_pickling_datazTestODR.test_pickling_data8  sG    KKS!!GcMAqz\\$'
Z r   c                     t        j                  dd      }d|z  dz   }t        ||      }t        j                  |      }~t        j
                  |       y r$  )r0   r   r   rd  re  rf  rg  s        r   test_pickling_real_datazTestODR.test_pickling_real_dataA  sG    KKS!!GcM1~\\$'
Z r   c                 `    t        j                  t              }t        j                  |       y r*  )rd  re  r   rf  )r   rh  s     r   test_pickling_modelzTestODR.test_pickling_modelJ  s    \\),
Z r   c                     t        j                  dd      }d|z  dz   }t        t        ||      t              }t        j                  |      }~t        j                  |       y r$  )r0   r   r   r	   r   rd  re  rf  )r   r$   r   r  rh  s        r   test_pickling_odrzTestODR.test_pickling_odrN  sN    KKS!!GcMd1aj),\\'*
Z r   c                     t        j                  dd      }d|z  dz   }t        t        ||      t              j
                  }t        j                  |      }~t        j                  |       y r$  )	r0   r   r   r	   r   r[   rd  re  rf  )r   r$   r   r  rh  s        r   test_pickling_outputzTestODR.test_pickling_outputW  sT    KKS!!GcMT!QZ+//\\&)
Z r   N)&__name__
__module____qualname__r   r%   r-   r4   r8   r?   rd   rh   r   r   r   r   r   r   r   r   r   r  r  r  r"  r%  r'  r;  pytestmarkskipifrR  rW  rb  ri  rk  rm  ro  rq  r!   r   r   r   r      s    2

5
"
L3
.
dH
Z,
b?&
P% +F?P<=E;@N0 [[ &J K#K#*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{     sI       	  , ,  *# # # #
K	! K	!r   