o
    5ήcR                    @   s  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
mZmZmZmZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ dd	lmZ d
dlmZmZ d dlmZ zd dlZdejd< d dl m!Z" dZ#W n e$yt   dZ#Y nw g dZ%g dZ&g dZ'g dZ(g dZ)g dZ*g dZ+g dZ,g dZ-g dZ.dd Z/G dd dZ0G dd  d Z1G d!d" d"Z2G d#d$ d$Z3G d%d& d&Z4G d'd( d(Z5G d)d* d*Z6G d+d, d,Z7G d-d. d.Z8G d/d0 d0e8Z9G d1d2 d2Z:G d3d4 d4Z;d5d6 Z<G d7d8 d8Z=G d9d: d:Z>G d;d< d<Z?G d=d> d>Z@G d?d@ d@ZAG dAdB dBZBG dCdD dDZCG dEdF dFZDg dGZEG dHdI dIZFG dJdK dKZGG dLdM dMZHG dNdO dOZIG dPdQ dQZJG dRdS dSZKG dTdU dUZLG dVdW dWZMdS )X    N)RandomState)assert_array_equalassert_almost_equalassert_array_lessassert_array_almost_equalassert_assert_allcloseassert_equalsuppress_warnings)raises)optimize)stats)
_abw_state   )check_named_results   )_get_wilcoxon_distr_get_wilcoxon_distr2)_binary_search_for_binom_tstAggbackendTF)
jt?Zd;?V-?      ?gX9v?-?x&1?+?+?r   )
r   r   r   r   灕Cl?r   r   r   r   V-?)
ʡE?g/$?r   r   ףp=
?r   r   r   r   r   )
gGz?r   r   r   r"   r   r   r   r   r   )
r   r   gCl?Gz?r   rh|?r   r   g\(\?r   )
羟/$?gh|?5?r%   r   r    r   r"   r   g1Zd?r   )
r#   Mb?r   gjt?r   r   g}?5^I?g)\(?r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r"   r   r&   r&   r   r   r!   )
r!   r"   r$   r   r   r   r!   r   r&   r   c                  O   s   t tjj| i |S N)nplogr   gammarvs)argskwargs r.   G/tmp/pip-target-vg8gfxp4/lib/python/scipy/stats/tests/test_morestats.py_old_loggamma_rvs1      r0   c                   @   $   e Zd Zdd Zdd Zdd ZdS )TestBayes_mvsc                 C   st   g d}t |\}}}t|jd t|jddd t|jd t|jddd t|jd	d
d t|jddd d S )N   	            r9            "@g4`H#j@gO[%@+=rtol      $@gai	@gӇu8@&.>_紫@   decimalgYs?g1O@)r   	bayes_mvsr   	statisticr   minmaxselfdatameanvarstdr.   r.   r/   
test_basic6   s   
zTestBayes_mvs.test_basicc                 C      t ttjg  d S r'   )assert_raises
ValueErrorr   rH   rL   r.   r.   r/   test_empty_inputH      zTestBayes_mvs.test_empty_inputc                 C   s0   t d}d}t|}|D ]}t|| qd S )N   )rI   rJ   )r(   aranger   rH   r   )rL   x
attributesresir.   r.   r/   test_result_attributesK   s   

z$TestBayes_mvs.test_result_attributesN)__name__
__module____qualname__rQ   rV   r^   r.   r.   r.   r/   r3   5   s    r3   c                   @   ,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestMvsdistc                 C   s   g d}t |\}}}t| d t|dddd t| d t|ddd	d t| d
dd t|dddd d S )Nr4   r;   g?r<   r=   r>   r@   rA   rB   rC   rD   rE   rG   )r   mvsdistr   rN   r   intervalrK   r.   r.   r/   rQ   U   s   
zTestMvsdist.test_basicc                 C   rR   r'   rS   rT   r   rd   rU   r.   r.   r/   rV   d   rW   zTestMvsdist.test_empty_inputc                 C      dg}t ttj| d S Nr   rf   rL   rM   r.   r.   r/   test_bad_argg      zTestMvsdist.test_bad_argc                 C   sj   t  ' t dt dd tg dD  dd tg dD  W d    d S 1 s.w   Y  d S )Nerrorc                 S      g | ]}|  qS r.   rN   .0rZ   r.   r.   r/   
<listcomp>q       z*TestMvsdist.test_warns.<locals>.<listcomp>r   r      c                 S   rm   r.   rn   ro   r.   r.   r/   rq   r   rr   r   r   rt         )warningscatch_warningssimplefilterRuntimeWarningr   rd   rU   r.   r.   r/   
test_warnsl   s
   
"zTestMvsdist.test_warnsN)r_   r`   ra   rQ   rV   rj   r|   r.   r.   r.   r/   rc   T   s
    rc   c                   @   D   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )TestShapiroc           
      C   s  g d}t |\}}t |}t|ddd t|jddd t|ddd t|jddd g d}t |\}}t |}t|ddd t|jddd t|dd	d t|jdd	d t jjd
d	ddd}t |\}}t |}t|ddd t|jddd t|dd	d t|jdd	d g d}d}d}	t |\}}t |}t||dd t|j|dd t||	d
d t|j|	d
d d S )N))\(?{Gz@q=
ףp@HzG$@@Q	@q=
ףp?Q@zG?      @Q?RQ?Q	@(\?zG?zG@(\#@333333@Gz?p=
ף@   ?r5   rE      Ɍ?)(\?=
ףp=?\(\@ffffff@\(\?(\?Gz@(\ףp=
@皙?)\(?RQr   p=
ף?@
ףp=
?{Gz?\(\@{Gz@Q@IddY?Dio?rt   rw   d   iNa locscalesizerandom_stateg   E?g   Oٴ?)gn?gjt?gffffff?gMb?gjt?g;On?gjt?gX9v?gS?g(\?gI+?gʡE?gx?g|?5^?r   gCl?g1Zd@gS@g(\	@gGz@g rh@g"~j@gQ@gtV@gʡE @ghyܝ?g0M?rv   )r   shapiror   rI   pvaluenormr+   )
rL   x1wpwshapiro_testx2x3x4
W_expected
p_expectedr.   r.   r/   rQ   v   s<   



zTestShapiro.test_basicc                 C   s   g dg dg}t |\}}t |}t|ddd t|jddd t|ddd t|jddd g dg dg}t |\}}t |}t|d	dd t|jd	dd t|d
dd t|jd
dd d S )N)
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r5   rE   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r   rt   )r   r   r   rI   r   )rL   r   r   r   r   r   r.   r.   r/   test_2d   s$   

zTestShapiro.test_2dc                 C   s&   t ttjg  t ttjg g g g d S r'   rS   rT   r   r   rU   r.   r.   r/   rV         zTestShapiro.test_empty_inputc                 C   s4   t ttjddg t ttjtjg dggtd d S )Nr   r   dtype)rS   rT   r   r   r(   arrayobjectrU   r.   r.   r/   test_not_enough_values   s   "z"TestShapiro.test_not_enough_valuesc                 C   rg   rh   r   rL   rZ   r.   r.   r/   rj      rk   zTestShapiro.test_bad_argc                 C   s`   t d}t j|d< t|\}}t|}t|t j t|jt j t|d t|jd d S )Nr@   r6   r   )	r(   rY   nanr   r   r	   rI   r   r   )rL   rZ   r   r   r   r.   r.   r/   test_nan_input   s   



zTestShapiro.test_nan_inputc                 C   s2   t g d\}}t |}d}t||dd d S )N)i i = i@ )gPq~?gF?h㈵>r>   )r   boxcoxr   r   )rL   	trans_valmaxlogr\   refr.   r.   r/   test_gh14462   s   
zTestShapiro.test_gh14462N)
r_   r`   ra   rQ   r   rV   r   rj   r   r   r.   r.   r.   r/   r~   u   s    +r~   c                   @   r}   )TestAndersonc                 C   s   t d}|jdd}|jdd}t|\}}}t|d d | t|\}}}t||dd   td}d|d< t|\}}}t|d d S )	NI2   r   
   r   g	@)	r   standard_exponentialstandard_normalr   andersonr   r(   onesr   )rL   rsr   r   Acritsigvr.   r.   r/   test_normal   s   

zTestAnderson.test_normalc                 C   s   t d}|jdd}|jdd}t|d\}}}t||dd   tjdd t|d\}}}W d    n1 s<w   Y  t||d k d S )	Nr   r   r   exponr   ignore)allr   )	r   r   r   r   r   r   r(   errstater   )rL   r   r   r   r   r   r   r.   r.   r/   
test_expon   s   zTestAnderson.test_exponc              	   C   s   t d}d|d< t|d\}}}t|}tj|\}}tj|||}tj|||}	t 	d|d }
| t 
d|
 d ||	d d d    }t|| d S )Nr           r   gumbelr   r   r   )r(   r   r   r   lengumbel_lfitlogcdflogsfrY   rN   r   )rL   r   a2r   r   nxbarsr   r   r]   expected_a2r.   r.   r/   test_gumbel  s   
*zTestAnderson.test_gumbelc                 C      t ttjdgdd d S Nr   plate_of_shrimpdist)rS   rT   r   r   rU   r.   r.   r/   rj     r1   zTestAnderson.test_bad_argc                 C   s0   t d}|jdd}t|}d}t|| d S )Nr   r   r   rI   critical_valuessignificance_level)r   r   r   r   r   )rL   r   rZ   r\   r[   r.   r.   r/   r^     s
   
z#TestAnderson.test_result_attributesc           	      C   sF   t d}|jdd}t|d\}}}t|d\}}}t|| d S )Nr   r   r   r   r   )r   r   r   r   r   )	rL   r   rZ   A1crit1sig1A2crit2sig2r.   r.   r/   test_gumbel_l  s
   zTestAnderson.test_gumbel_lc           
      C   sp   t d}|jdd}td}d|d< t|d\}}}t|d\}}}	t||dd   t||d k d S )	Nr   r   r   r   r   gumbel_rr   r   )r   r   r(   r   r   r   r   r   )
rL   r   r   r   r   r   r   r   r   r   r.   r.   r/   test_gumbel_r&  s   
zTestAnderson.test_gumbel_rN)
r_   r`   ra   r   r   r   rj   r^   r   r   r.   r.   r.   r/   r      s    

r   c                   @   T   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )TestAndersonKSampc                 C   s   g d}t g d}t g d}t g d}tj||||fdd\}}}t|dd tg d	|d
d d t|ddd d S )NgYC@g     D@gfffffE@g     @F@g     F@g      G@gG@g      M@gC@gfffffC@gC@g33333D@gfffffD@g33333sE@gfffffE@gfffffF@      A@g     A@g     C@g      D@     E@r  g      F@g     F@r  ffffffA@r	  g33333A@gB@gfffffB@gD@gffffffE@Fmidrankg@rt   gCl?gvq-?g,Ԛ?gl@gPk	@r   rw   rv   gJ4a?Mb0?atolr(   r   r   anderson_ksampr   r   r   rL   t1t2t3t4Tktmpr.   r.   r/   test_example1a7  s   z TestAndersonKSamp.test_example1ac                 C   s   t g d}t g d}t g d}t g d}tj||||fdd\}}}t|dd tg d	|d
d d t|ddd d S )Nr  r  r  r  Tr
  gQ@rt   r  r   rw   rv   gMb`?r  r  r  r  r.   r.   r/   test_example1bH  s   z TestAndersonKSamp.test_example1bc                 C      g d}g d}g d}g d}g d}g d}g d}g d}g d	}	g d
}
g d}g d}g d}g d}t j|||||||||	|
||||fdd\}}}t|dd tg d|dd d t|ddd d S )N   rX   )      !      i  rD   :   %   r   A   r6      i     $      v   
"         r/  C   9   >   r8      r-  Z   r   <      =   1   rD      8      O   T   ,   ;   r   r+        i6  L      r?     r2        F   e   rH  J   r1  0   r   i  r7   rI     r   i  r@     7   i@  r;  h         /            r!  rE  i  W   r8   x   rD   r2  rU     G   rV  rN  *   r<  rw   r7   r[     rt   rD   r]  r_  rD   r_     r5  r   r`  4   _   a   3   r_  rv      r/     D   M   P   r   r`  j      R   6   r.     .   o   '   ?   r/     r/     r:  r   r?  f   H   r3  rr  rt   rX         r=  X   rp  rw   rw   r)  r3        rd     rE  r:   rD   	g  r6   r7   i  i[  rt   rR  r   i  r      rw   i  #   r7   i  r/  r   r8   b   rw   U   [   +      rt   rG  rw     rD   r1  rn      r0  r@        rO  rD   r  B   r8  r-  Fr
  gM
@rt   g^I+?g~:?g+e?gH.!@gcZB>h@r   rw   rv   	^)p?r  r  r   r  r   r   r   rL   r  r  r  r  t5t6t7t8t9t10t11t12t13t14r  r  r  r.   r.   r/   test_example2aX  s0   z TestAndersonKSamp.test_example2ac                 C   r  )Nr  r#  r,  r4  rF  rK  rP  rY  rc  rv  r  r  r  r  Tr
  g'1Z
@rt   r  r   rw   rv   r  r  r  r  r  r.   r.   r/   test_example2bx  s0   z TestAndersonKSamp.test_example2bc                 C   s~  t ddd}t }|jtdd tj||d gdd\}}}W d    n1 s*w   Y  t|dd	 t|d
 t }|jtdd t||d g\}}}W d    n1 s[w   Y  t|dd	 t|d
 t }|jtdd tj||d gdd\}}}W d    n1 sw   Y  t|dd t|d t }|jtdd t||d g\}}}W d    n1 sw   Y  t|dd t|d tj||d gdd\}}}t|dd t	|dddd t||d g\}}}t|dd t	|dddd tj||d gdd\}}}t|dd t	|dddd tj||d gdd\}}}t|d d t	|d!d"dd d S )#Nr   r   zp-value flooredmessageg     @D@Fr
  g=
ףpD@rt   MbP?gGzD@zp-value capped      ?g?ܵrv         ?g?ܵ      @g!u?gףp=
׳?g{Gzt?r   r  r?   r5   gBiq?g鷯?      '@g:M@g46<Rv?gMb@?g      +@g6>W[1@g1ZGUS?-C6?)
r(   linspacer
   filterUserWarningr   r  r   r	   r   )rL   r   supr   _r  r.   r.   r/   test_R_kSamples  sJ   !



z!TestAndersonKSamp.test_R_kSamplesc                 C   s   t ttjtd d S Nrw   rS   rT   r   r  r(   r   rU   r.   r.   r/   test_not_enough_samples  r1   z)TestAndersonKSamp.test_not_enough_samplesc                 C   s"   t ttjtdtdf d S r  r  rU   r.   r.   r/   test_no_distinct_observations  s   z/TestAndersonKSamp.test_no_distinct_observationsc                 C   s   t ttjtdg f d S r  r  rU   r.   r.   r/   test_empty_sample     z#TestAndersonKSamp.test_empty_samplec                 C   s:   g d}t g d}tj||fdd}d}t|| d S )Nr  r  Fr
  r   )r(   r   r   r  r   )rL   r  r  r\   r[   r.   r.   r/   r^     s
   z(TestAndersonKSamp.test_result_attributesN)r_   r`   ra   r  r  r  r  r  r  r  r  r^   r.   r.   r.   r/   r  6  s      Pr  c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	e
jdg dg dddfg dg dddfg dg dddfg dg dddfg dg dddfg dg dddfgdd Zdd ZdS ) 
TestAnsaric                 C   sn   g d}g d}t  }|td t||\}}W d    n1 s$w   Y  t|dd t|dd d S )Nr   r   rt   rt   rv   rt   r   r5   r   r5   r   rv   r   %Ties preclude use of exact statistic.g     7@r_  g8#oG?)r
   r  r  r   ansarir   )rL   rZ   yr  Wpvalr.   r.   r/   
test_small  s   zTestAnsari.test_smallc                 C   sr   t d}t d}t }|td t||\}}W d    n1 s&w   Y  t|dd t|dd d S )Nrq  k   r   c   rw  rk  m   l   rR  r  rJ  `   rd  rw  r  q   t   r  n   r  r  r  rk  r  i   g   r  r  rR  r   r  r  r  rR  r   r  r  r  rk  r  r  g     0g@r_  g|:?)r(   r   r
   r  r  r   r  r   )rL   ramsayparekhr  r  r  r.   r.   r/   test_approx  s   

zTestAnsari.test_approxc                 C   s4   t g dg d\}}t|dd t|dd d S )Nr   r   rt   rv   )rX   rw   r<  r9   r   r7   r@   r_  g?r8   )r   r  r   )rL   r  r  r.   r.   r/   
test_exact  s   zTestAnsari.test_exactc                 C   s(   t ttjg dg t ttjdgg  d S rh   rS   rT   r   r  rU   r.   r.   r/   rj     s   zTestAnsari.test_bad_argc                 C   s`   g d}g d}t  }|td t||}W d    n1 s"w   Y  d}t|| d S )Nr  r  r  rI   r   )r
   r  r  r   r  r   )rL   rZ   r  r  r\   r[   r.   r.   r/   r^     s   z!TestAnsari.test_result_attributesc                 C   sV   g d}g d}d}t t|d tj||dd W d    d S 1 s$w   Y  d S )Nr  rw   r5   r8   r9   z!'alternative' must be 'two-sided'matchfooalternativer  )rL   r   r   r  r.   r.   r/   test_bad_alternative'  s   "zTestAnsari.test_bad_alternativec           
      C   s   g d}g d}t ||\}}t j||ddj}t j||ddj}|dks(J |dk s.J t|t|t|}t|| d| d	d
 t||d d	d
 t|d| |d  d	d
 t j||ddj}t j||ddj}	|dk srJ |	dksxJ d S )N)r   rw   r   rX   r<  rA  )r  g      !@      #@g      %@r  g      )@lessr  greaterffffff?皙?r   -q=r  r   )r   r  r   r   pmfr   r   )
rL   r   r   rI   r  pval_lpval_gprobpval_l_reversepval_g_reverser.   r.   r/   test_alternative_exact/  s   z!TestAnsari.test_alternative_exactzx, y, alternative, expectedr  r  r  g@A?r  rs   )rv   rw   r5   r8   r9   gG$I?g%I$I?ru   )r5   r8   r9   c                 C   s$   t j|||dj}t||dd d S )Nr  r  r  )r   r  r   r   )rL   rZ   r  r  expectedr  r.   r.   r/   test_alternative_exact_with_RJ  s   z(TestAnsari.test_alternative_exact_with_Rc                 C   s   t jjddddd}t jjddddd}t j||ddj}t j||d	dj}t|d
dd t|ddd t jjddddd}t jjddddd}t ||j}t j||ddj}t j||d	dj}t||d dd t|d|d  dd d S )Nr   rw   r   {   r   r   r   r  r  r  r   r  r  r   r6  g      ?r   )r   r   r+   r  r   r   )rL   r   r   r  r  r  r.   r.   r/   test_alternative_approxi  s   z"TestAnsari.test_alternative_approxN)r_   r`   ra   r  r  r  rj   r^   r  r  pytestmarkparametrizer  r  r.   r.   r.   r/   r    s(    		
r  c                   @   4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestBartlettc              
   C   B   t ttttttttt	g
}t
j| \}}t|dd t|dd d S )NgzU@ /4@r8   gG?)g1g2g3g4g5g6g7g8g9g10r   bartlettr   )rL   r,   Tr  r.   r.   r/   	test_data     zTestBartlett.test_datac                 C      t ttjdg d S rh   )rS   rT   r   r  rU   r.   r.   r/   rj        zTestBartlett.test_bad_argc              
   C   4   t ttttttttt	g
}t
j| }d}t|| d S Nr  )r  r  r  r  r  r  r  r  r  r  r   r  r   rL   r,   r\   r[   r.   r.   r/   r^        
z#TestBartlett.test_result_attributesc                 C   s6   t ttttttttt	g f}t
tjtjftj|  d S r'   )r  r  r  r  r  r  r  r  r  r  r	   r(   r   r   r  )rL   r,   r.   r.   r/   test_empty_arg  s   zTestBartlett.test_empty_argc                 C   *   t ddgddgg}tttjt| d S Nr   r   rt   rv   )r(   r   rS   rT   r   r  r  r   r.   r.   r/   test_1d_input     zTestBartlett.test_1d_inputN)r_   r`   ra   r  rj   r^   r  r	  r.   r.   r.   r/   r    s    r  c                   @   r  )
TestLevenec              
   C   r  )NgYpK?r8   gI{]?)r  r  r  r  r  r  r  r  r  r  r   levener   )rL   r,   r  r  r.   r.   r/   r    r  zTestLevene.test_datac                 C   sF   t jtttdd\}}t jtttddd\}}t|| t|| d S )NrN   centertrimmedr   r  proportiontocut)r   r  r  r  r  r   )rL   W1pval1W2pval2r.   r.   r/   test_trimmed1  s   

zTestLevene.test_trimmed1c           
      C   s   g d}g d}t jd t j|}tj||ddd\}}tj||ddd\}}tj|dd |dd d	d
\}}	t|| t|| t||	 d S )Ng333333?       @      @      @      @      @      @g      Y@r   r        @r  g      @r  g      @g      i@  r        ?r  r   r   rN   r  )r(   randomseedpermutationr   r  r   )
rL   rZ   r  r   W0pval0r  r  r  r  r.   r.   r/   test_trimmed2  s   



$

zTestLevene.test_trimmed2c                 C   sn   t ddd}t jd t j|}|d }tj||dd\}}tj||dd\}}t|| t|| d S )	Nr   r   rN  r   rt   rN   r  median)r(   r  r"  r#  r$  r   r  r   )rL   rZ   r   r  r  r  r  r  r.   r.   r/   test_equal_mean_median  s   
z!TestLevene.test_equal_mean_medianc                 C   &   t ddd}tttj||dd d S Nr   r   rN  皙?)portiontocut)r(   r  rS   	TypeErrorr   r  r   r.   r.   r/   test_bad_keyword  r   zTestLevene.test_bad_keywordc                 C   r*  Nr   r   rN  trimr  )r(   r  rS   rT   r   r  r   r.   r.   r/   test_bad_center_value  r   z TestLevene.test_bad_center_valuec                 C   r   rh   )rS   rT   r   r  rU   r.   r.   r/   test_too_few_args  s   zTestLevene.test_too_few_argsc              
   C   r  r  )r  r  r  r  r  r  r  r  r  r  r   r  r   r  r.   r.   r/   r^     r  z!TestLevene.test_result_attributesc                 C   r  r  )r(   r   rS   rT   r   r  r  r   r.   r.   r/   r	    r
  zTestLevene.test_1d_inputN)r_   r`   ra   r  r  r'  r)  r/  r2  r3  r^   r	  r.   r.   r.   r/   r    s    	
r  c                   @   s`   e Zd ZdZeejZdd Zdd Z	dd Z
dd	 Zd
d Zejjejdkdddd ZdS )
TestBinomPzTests for stats.binom_test.c                 C   sR   |  dd}t|dd |  dd}t|dd | j dd	gd
d}t|dd d S )Nr      g-"^?r_  r*  i  g`w?i           ?r  gz?binom_test_funcr   )rL   r  r.   r.   r/   r    s   zTestBinomP.test_datac                 C   s   t t| jg d d S Nrs   rS   rT   r:  rU   r.   r.   r/   test_bad_len_x     zTestBinomP.test_bad_len_xc                 C   s(   t t| jdg t t| jdgdd d S )Nr   r   r   r<  rU   r.   r.   r/   
test_bad_n  s   zTestBinomP.test_bad_nc                 C   s   t t| jddgdd d S )Nr   r  r8  r<  rU   r.   r.   r/   
test_bad_p  s   
zTestBinomP.test_bad_pc                 C   sX   | j ddddd}t|d | j ddddd}t|d | j dddd	d}t|d
 d S )Nre     gUUUUUU?r  r  r  g-$Ǻl?r  gs0,j.?	two-sidedgJfJ"f?r9  rL   r\   r.   r.   r/   test_alternatives  s   

zTestBinomP.test_alternativesl        z32-bit does not overflowreasonc                 C   s   t t| jddtjjd d S )Nr  r5   r8  )rS   OverflowErrorr:  sys
float_infominrU   r.   r.   r/   test_boost_overflow_raises  s   z%TestBinomP.test_boost_overflow_raisesN)r_   r`   ra   __doc__staticmethodr   
binom_testr:  r  r=  r@  rA  rF  r  r  skipifrJ  maxsizerM  r.   r.   r.   r/   r4    s    

r4  c                   @   s   e Zd ZdZedddZdS )TestBinomTestPzJ
    Tests for stats.binomtest as a replacement for stats.binom_test.
    Nr  rD  c                 C   s   t | t j} t| dkr| d | d  }| d } n t| dkr8| d } |d u s.|| k r2tdt |}ntdtj| |||d}|jS )Nr   r   r   zn must be >= xzIncorrect length for x.rC  )	r(   
atleast_1dastypeint_r   rT   r   	binomtestr   )rZ   r   r  r  resultr.   r.   r/   r:    s   
zTestBinomTestP.binom_test_func)Nr  rD  )r_   r`   ra   rN  rO  r:  r.   r.   r.   r/   rS    s    rS  c                   @   sx  e Zd ZdZdd Zdd Zdd Zdd	 Zej	
d
g ddd Zej	
d
g ddd Zej	
dg ddd Zej	
dg ddd Zej	
dg dg dg dg dg dg dg d g d!g d"g d#g d$g d%g d&g d'g d(g d)g d*g d+g d,g d-g d.g d/g d0g d1gd2d3 Zd4d5 Zej	
d6d7d8gd9d: Zd;d< Zd=d> Zd?d@ ZdAS )BTestBinomTestzTests for stats.binomtest.c                 C   s   d}t ddd}t|jd|d t ddd}t|jd|d t d	dd}t|jd
|d t ddd}t|jddd d S )N绽|=iΙ i@o@Q?r   r>   iΙ gX7?i	ϙ g=?iϙ gybw?rB   r   rW  r   r   rL   r?   r\   r.   r.   r/   test_two_sided_pvalues1+  s   z%TestBinomTest.test_two_sided_pvalues1c                 C   s   d}t jdddd}t|jd|d t ddd}t|jd	|d t d
dd}t|jd|d t ddd}t|jd|d t ddd}t|jd|d t ddd}t|jd|d t ddd}t|jd|d d S )NrZ  r6   rN  r[  r   r  gX-h?r>   rv   g㤶y?r_  g	y}?r8   g+,?rt   r   r  g      ?r   g?g{Gz?g333333?g<,?r\  r]  r.   r.   r/   test_two_sided_pvalues29  s   z%TestBinomTest.test_two_sided_pvalues2c                 C   s   d}t ddd}t|jd|d t ddd	}t|jd|d t d
dd}t|jd|d t ddd}t|jd|d t dd
d}t|jd|d t ddd}t|jd|d d S )NrZ  i  i  r  r   r>   rt   rU  gAL &W?r:   rp  g!YB?rX   r?  gE]t?r8   r5   r_  r\  r]  r.   r.   r/   test_edge_casesJ  s   zTestBinomTest.test_edge_casesc                    s,  d dd}t t    d }tj| }t jtj| |kdd}t fdd| t    } | t|tj| k }t	||d	d
 d}t t 
  d }tj| }t jtj| |kdd}t fdd|dt 
  }|d }t	||d	d
 d S )Nr   r  rt   r   r   axisc                    s   t j|   S r'   r   binomr  r   r_  r.   r/   <lambda>f  rW   z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>rB   r>   r8   c                    s   t j|  S r'   rd  rf  r_  r.   r/   rg  r     )r(   rY   ceilr   re  r  sumr   intr   floor)rL   kr]   dy1ixy2r.   r_  r/   test_binary_srch_for_binom_tstY  s(    z,TestBinomTest.test_binary_srch_for_binom_tstz"alternative, pval, ci_low, ci_high))r  g$W?r   g?)r  g}?gGI~?r   )rD  g}G?g>?6?g4M?c                 C   X   t jddd|d}t|j|dd t|jd |jdd	}t|j|jf||fdd d S )
Nr<  r   r  r   r  r  r  r>   皙?r  confidence_level	r   rW  r   r   r	   proportion_estimateproportion_cilowhighrL   r  r  ci_lowci_highr\   cir.   r.   r/   test_confidence_intervals1y  
   z(TestBinomTest.test_confidence_intervals1))r  ga&+w?r   gny?)r  g5!Rx?g5%?r   )rD  g~th?gSuR&|?g|KnG?c                 C   rs  )
Nrt   r   ru  rt  ư>r>   gQ?r#   rv  rx  r}  r.   r.   r/   test_confidence_intervals2  r  z(TestBinomTest.test_confidence_intervals2zalternative, pval, ci_high))r  gլ?g̓A?)r  r   r   )rD  gEow?g;Kڞj?c                 C   sN   t jddd|d}t|j|dd |jdd}t|jd	 t|j|dd d S )
Nr   r   r  rC  r  r>   r  rv  r   )r   rW  r   r   rz  r	   r{  r|  )rL   r  r  r  r\   r  r.   r.   r/   !test_confidence_interval_exact_k0  
   z/TestBinomTest.test_confidence_interval_exact_k0zalternative, pval, ci_low))r  r   r   )r  6>g@>}_?)rD  r  gcڒ ?c                 C   sN   t jddd|d}t|j|dd |jdd}t|jd t|j|dd d S )	Nr   r  rC  r  r>   r  rv  r   )r   rW  r   r   rz  r	   r|  r{  )rL   r  r  r~  r\   r  r.   r.   r/   %test_confidence_interval_exact_k_is_n  r  z3TestBinomTest.test_confidence_interval_exact_k_is_nz+k, alternative, corr, conf, ci_low, ci_high)rt   rD  Tr  g`?g?)rt   rD  Tr#   grt!?g/?)rt   rD  Fr  gVK5?g5dM?)rt   rD  Fr#   gXCVu^?g*r[?)rt   r  Tr  r   gP-V?)rt   r  Tr#   r   g^'?)rt   r  Fr  r   gS5a?)rt   r  Fr#   r   g?)rt   r  Tr  g!Շ`ⰸ?r   )rt   r  Tr#   g$x"?r   )rt   r  Fr  gW~=?r   )rt   r  Fr#   g	L?r   )r   rD  Tr  r   gX?)r   rD  Fr  r   gN?)r   r  Tr  r   g/<7#9?)r   r  Fr  r   gAA?)r   r  Tr  r   r   )r   r  Fr  r   r   )r   rD  Tr  g7?r   )r   rD  Fr  g؍s?r   )r   r  Tr  r   r   )r   r  Fr  r   r   )r   r  Tr  ghadn?r   )r   r  Fr  gAB/?r   c           
      C   sL   t j|dd|d}|rd}nd}|j||d}	t|	j|	jf||fdd d S )	Nr   r,  rt  wilsonccwilson)rw  methodr  r>   )r   rW  rz  r   r{  r|  )
rL   rm  r  corrconfr~  r  r\   r  r  r.   r.   r/   test_ci_wilson_method  s   z#TestBinomTest.test_ci_wilson_methodc                 C   s*   t ddd}t|jd t|jd d S )Nrv   r`  r  r   )r   rW  r	   ry  r   rE  r.   r.   r/   &test_estimate_equals_hypothesized_prop  s   z4TestBinomTest.test_estimate_equals_hypothesized_propzk, n)r   r   )r   r   c                 C   s@   t jtdd t|| W d    d S 1 sw   Y  d S )Nz must be an integer not less thanr  r  r   rT   r   rW  )rL   rm  r   r.   r.   r/   test_invalid_k_n  s
   "zTestBinomTest.test_invalid_k_nc                 C   sB   t jtdd tddd W d    d S 1 sw   Y  d S )Nzk must not be greater than nr  r_  r   r  r  rU   r.   r.   r/   test_invalid_k_too_big  s
   "z$TestBinomTest.test_invalid_k_too_bigc                 C   P   t jdddd}tjtdd |jdd W d    d S 1 s!w   Y  d S )	Nrt   r   r,  r_  zmust be in the intervalr  r   rv  r   rW  r  r   rT   rz  rE  r.   r.   r/   test_invalid_confidence_level     "z+TestBinomTest.test_invalid_confidence_levelc                 C   r  )	Nrt   r   r,  r_  zmethod must ber  zplate of shrimpr  r  rE  r.   r.   r/   test_invalid_ci_method  r  z$TestBinomTest.test_invalid_ci_methodN)r_   r`   ra   rN  r^  r`  ra  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r.   r.   r.   r/   rY  $  sr     


	
	


rY  c                   @   r}   )TestFlignerc                 C   s&   t d}tt||d dd d S )Nrw   r   )gnf	@gDq?r_  )r(   rY   r   r   fligner)rL   r   r.   r.   r/   r    s
   
zTestFligner.test_datac           	         sv   t jd  fdd}|t}|t}|t}tj|||dd\}}tj|||ddd\}}t|| t|| d S )	Nr  c                    s    t | d t|    S )NrZ  )r(   asarrayrandnr   tolist)gr   r.   r/   rg    s     z+TestFligner.test_trimmed1.<locals>.<lambda>rN   r  r  r   r  )	r(   r"  r   r  r  r  r   r  r   )	rL   _perturbg1_g2_g3_Xsq1r  Xsq2r  r.   r  r/   r    s   

zTestFligner.test_trimmed1c                 C   sb   g d}g d}t j||ddd\}}t j|dd |dd dd	\}}t|| t|| d S )
Nr  r  r  r!  r  r   r   rN   r  )r   r  r   )rL   rZ   r  r  r  r  r  r.   r.   r/   r'    s   

$
zTestFligner.test_trimmed2c                 C   r*  r+  )r(   r  rS   r.  r   r  r   r.   r.   r/   r/  )  r   zTestFligner.test_bad_keywordc                 C   r*  r0  )r(   r  rS   rT   r   r  r   r.   r.   r/   r2  -  r   z!TestFligner.test_bad_center_valuec                 C   r   rh   )rS   rT   r   r  rU   r.   r.   r/   test_bad_num_args1  r  zTestFligner.test_bad_num_argsc                 C   s.   t d}tt jt jft||d g  d S )Nrw   r   )r(   rY   r	   r   r   r  r   r.   r.   r/   r  5  s   
$zTestFligner.test_empty_argN)
r_   r`   ra   r  r  r'  r/  r2  r  r  r.   r.   r.   r/   r    s    r  c                  c   s    g d} g d}t |D ]S\}}tj|}|d}|jdddd}|jdddd}t||D ]\}}	t|d ||	 D ]}
|| ||
< q>q1|| t|d	\}}||d
g| | R V  qd S )N))g]YCgQɣ?)gme5gϵ5?)g;jgH?)iFeiHcMi%:r   r   r  rw   )r{  r|  r   r   r   r  )		enumerater(   r"  default_rngintegersziprangeshufflesplit)expected_resultsseedssir#  rngxytie_indnum_ties_per_indr]   r   jrZ   r  r.   r.   r/   mood_cases_with_ties:  s    

r  c                   @   sn   e Zd Zejde dd Zejdg ddd Zdd	 Z	d
d Z
dd Zdd Zdd Zdd ZdS )TestMoodz$x,y,alternative,stat_expect,p_expectc                 C   s4   t j|||d\}}t||dd t||dd dS )am  
        Example code used to generate SAS output:
        DATA myData;
        INPUT X Y;
        CARDS;
        1 0
        1 1
        1 2
        1 3
        1 4
        2 0
        2 1
        2 4
        2 9
        2 16
        ods graphics on;
        proc npar1way mood data=myData ;
           class X;
            ods output  MoodTest=mt;
        proc contents data=mt;
        proc print data=mt;
          format     Prob1 17.16 Prob2 17.16 Statistic 17.16 Z 17.16 ;
            title "Mood Two-Sample Test";
        proc print data=myData;
            title "Data for above results";
          run;
        r  gؗҜ<r  Nr   moodr   )rL   rZ   r  r  stat_expectp_expectrI   r   r.   r.   r/   test_against_SASR  s   zTestMood.test_against_SASzalternative, expected))rD  )3oXQ?gpL?)r  )r  gԣl?)r  )r  gpL?c                 C   s.   g d}g d}t j|||d}t|| d S )Nr  r  r  r  )rL   r  r  rZ   r  r\   r.   r.   r/   test_against_SAS_2t  s   	zTestMood.test_against_SAS_2c                 C   s`   t jd t jdd}t jdd}t||\}}t||\}}t||g| |g d S )Nr   r   r   rX   )r(   r"  r#  r  r   r  r   )rL   r   r   z1p1z2p2r.   r.   r/   test_mood_order_of_args  s   z TestMood.test_mood_order_of_argsc                 C   sN   g d}g d}t |}t |}d|_d|_ttj||d dddg d S )N)gg۟?gy<7xg1)E?g9cç?g
FAg<=ӟ	2?g{![?g_l?gڻ{ӿgGSsA0?g1?g 3ggL?g_lg,*.gː53?gvNqG?gW=?)gd"g `Y#?g^g?gNgBagp5_%?g(?gv]lοgg?ggr6ʺ?ḡj?gK!ٿg{g&?g*h}gZ?gyBU?g .ۋ4?g|w;?g&ck @gRj2g}+w(o?g@F?g}_9t?g =g	S?gx(gg7Y?g{ih?)r   r   )rX   r   rb  g4g^}E	?)r(   r   shaper   r   r  )rL   r   r   r.   r.   r/   test_mood_with_axis_none  s   

z!TestMood.test_mood_with_axis_nonec              
   C   s   d}t jd t jd|}t jd|}t||\}}t|D ]}t|| || gt|d d |f |d d |f  q"| }| }tj||dd\}}t|D ]}t|| || gt||d d f ||d d f  qVd S )Nrw   r   r   rX   r   rb  )	r(   r"  r#  r  r   r  r  r   	transpose)rL   nyr   r   	z_vectestpval_vectestr  r]   r.   r.   r/   test_mood_2d  s"   ""zTestMood.test_mood_2dc              	   C   s>  d}t jd t jj| }t jj| }tdD ]}tj|||d\}}ddgddgddgf}t||| d  D ]b}t||| d  D ]U}	|dkr^|d d ||	f }
|d d ||	f }n)|dkru||d d |	f }
||d d |	f }n|||	d d f }
|||	d d f }t|||	f |||	f gt|
| qEq9qd S )N)r   rw   r5   r   rt   rb  r   r   r   )r(   r"  r#  r  r  r   r  r   )rL   r  r   r   rc  r  r  axes_idxr]   r  slice1slice2r.   r.   r/   test_mood_3d  s2   

zTestMood.test_mood_3dc                 C   s   t ttjdgg  d S rh   )rS   rT   r   r  rU   r.   r.   r/   test_mood_bad_arg     zTestMood.test_mood_bad_argc           	      C   s   t jd tjjddd}tjjddd}tj||dd\}}tj||dd\}}tj||d	d\}}||  kr?|ksBJ  J t|dd
d t||d  t|d|d   tj	t
dd tj||dd W d    d S 1 stw   Y  d S )Nr   r7  r   )r   r   g      ?rD  r  r  r  Hz>r  r   r   zalternative must be...r  z	ekki-ekki)r(   r"  r#  r   r   r+   r  r   r  r   rT   )	rL   rZ   r  stat1r  stat2r  stat3p3r.   r.   r/   test_mood_alternative  s   "zTestMood.test_mood_alternativeN)r_   r`   ra   r  r  r  r  r  r  r  r  r  r  r  r  r.   r.   r.   r/   r  Q  s    
 
	
r  c                   @   sV   e Zd Zdd Zdd Zdd Zejje	 ddd	d
 Z
dd Zdd Zdd ZdS )TestProbplotc                 C   sl   t jjddd}t j|dd\}}g d}t|t| t|| t j|dd\}}g d}t|| d S )	Nr<  90  r  Fr   )g+/gY3gtg5Z0gFjg!2gsR{ܿg7Կg>hǿgcz隇gcz隇?g>h?g7?gsR{?g!2?gFj?g5Z0?gt?gY3?g+/?T)gƝV?g?gà?)r   r   r+   probplotr   r(   sort)rL   rZ   osmosrosm_expectedr\   res_fitres_fit_expectedr.   r.   r/   rQ     s   
zTestProbplot.test_basicc           
      C   s   t jjddd}t j|d dd\}}t j|ddd\}}t j|ddd\}}t|| t|| t|| t|| t j|ddd\}}	d S )Nr   i@ r  Fsparamsr   r   r.   )r   r   r+   r  r   )
rL   rZ   osm1osr1osm2osr2osm3osr3r  r  r.   r.   r/   test_sparams_keyword  s   



z!TestProbplot.test_sparams_keywordc                 C   s   t jjddd}t j|dddd\}}t j|dt jdd\}}t|| t|| ttt j|dd	 ttt j|g d	 G d
d d}t j|ddd\}}t j|| dd\}}t|| t|| d S )Nr<  r  r  Ft)rt   )r   r   r  zwrong-dist-namer   c                   @   s   e Zd ZdZdd ZdS )z3TestProbplot.test_dist_keyword.<locals>.custom_distz6Some class that looks just enough like a distribution.c                 S   s   t jj|ddS )Nr   )r   )r   r   ppf)rL   qr.   r.   r/   r     rh  z7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppfN)r_   r`   ra   rN  r  r.   r.   r.   r/   custom_dist  s    r  )r   r  )r   r   )	r   r   r+   r  r  r   rS   rT   AttributeError)rL   rZ   r  r  r  r  r  r.   r.   r/   test_dist_keyword  s   


zTestProbplot.test_dist_keywordno matplotlibrG  c           
      C   s  t  }|d tjjdddd}tj|t d\}}t   tj|d d\}}tj|dt d}t   tj|dd d}tt	|t	|  koXt	|  koXt	|  koXd	kn   t
|| t
|| t
|| t
|| t  }|d}	tj|d|	d t   d S )
Nrq  rt   r   t r  plotF)r   r  r   )pltfigureadd_subplotr   r  r+   r  closer   r   r   )
rL   figrZ   res1fitres1res2fitres2res3res4axr.   r.   r/   test_plot_kwarg(  s$   
@




zTestProbplot.test_plot_kwargc                 C   r   r   )rS   rT   r   r  rU   r.   r.   r/   test_probplot_bad_argsA     z#TestProbplot.test_probplot_bad_argsc                 C   sZ   t tjg ddtg tg f t tjg ddtg tg ftjtjdff d S )NFr  Tr   )r	   r   r  r(   r   r   rU   r.   r.   r/   
test_emptyE  s   zTestProbplot.test_emptyc                 C   sj   t jdd% ttjdgddt dgt dgft jt jdff W d    d S 1 s.w   Y  d S )Nr   )invalidr   Tr  r   )r(   r   r	   r   r  r   r   rU   r.   r.   r/   test_array_of_size_oneL  s   "z#TestProbplot.test_array_of_size_oneN)r_   r`   ra   rQ   r  r  r  r  rQ  have_matplotlibr   r  r  r  r.   r.   r.   r/   r    s    
r  c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zejdg dg dg dgdd Zdd ZdS ) TestWilcoxonc                 C   sh   t ttjdgddg t ttjddgddgd t ttjddgddgdd t ttjdgd dd d S )Nr   r   dummyr  r   xyzmode)rS   rT   r   wilcoxonrU   r.   r.   r/   test_wilcoxon_bad_argT  s   z"TestWilcoxon.test_wilcoxon_bad_argc                 C   sR   t d}tttj||ddd tttj||ddd ttj||dddd d S )Nr<  wilcoxapproxr
  prattzsplit)g     @Z@r   )r(   rY   rS   rT   r   r  r	   r   r.   r.   r/   test_zero_diff]  s   
zTestWilcoxon.test_zero_diffc                 C   sd   g d}g d}t  }|jtdd tj||ddd}W d    n1 s&w   Y  t|d d S )	Nr  )r   r   rt   rw   Sample size too smallr  r  r  zero_methodr  )r   g|N?)r
   r  r  r   r  r   )rL   rZ   r  r  r\   r.   r.   r/   
test_pratth  s   zTestWilcoxon.test_prattc                 C   s<   g d}t j|ddd}t j|ddd}t j|ddd}d S )N)r   r   rt   r   r   rt   r   r   r   r   r   r  r  r  r  r  )r   r  )rL   arrr  r.   r.   r/   test_wilcoxon_arg_typer  s   z#TestWilcoxon.test_wilcoxon_arg_typec                 C   s2  g d}t dd}tdd t||D }t|j}tj||ddd\}}t|d	 t|d
 tj||ddd\}}t|d t|d tj||ddd\}}t|d t|d t	g d}t	g d}tj||ddd\}}t
|d t|ddd tj||ddd\}}t
|d t|ddd d S )N)	r   rv   r`  rX   r9   rv   rw   r   r   rw   c                 S   s   g | ]	\}}|g| qS r.   r.   )rp   ur   r.   r.   r/   rq   ~  s    z7TestWilcoxon.test_accuracy_wilcoxon.<locals>.<listcomp>r  r  r
  i  g.i?r  i  gFYv]Uj?r  iG  g%^ Ez?r[  r  r"  rz        y   rt     r     p         w      r!        r  s   r  rg     F
correctionr  r-  g^҂<?r  r>   Tg:b+?)r  r(   concatenater  zerosr   r   r  r   r   r	   )rL   freqnumsrZ   r  r  r  r.   r.   r/   test_accuracy_wilcoxon{  s*   








z#TestWilcoxon.test_accuracy_wilcoxonc                 C   s@   t g d}t g d}tj||ddd}d}t|| d S )Nr  r"  Fr  r+  r  )r(   r   r   r  r   )rL   rZ   r  r\   r[   r.   r.   r/   test_wilcoxon_result_attributes  s
   z,TestWilcoxon.test_wilcoxon_result_attributesc                 C   s   t jd}|d|d}}tj||dd}tj|jd }t|j	| tj||dd}t
|dr7J t||}t
|drDJ d S )Nl   	m$S rX   r  r
  r   exact
zstatistic)r(   r"  r  r   r  r   r  r   r   r4  hasattr)rL   r  rZ   r  r\   r   r.   r.   r/   test_wilcoxon_has_zstatistic  s   z)TestWilcoxon.test_wilcoxon_has_zstatisticc                 C   sn   t jdgd dd\}}d}t|d t||dd t jdgd d	dd
\}}d}t|d t||dd d S )Nr,  r   r  r
  g4IťY?r   r  r>   Tr+  gc2_?)r   r  r	   r   )rL   statr  
expected_pr.   r.   r/   test_wilcoxon_tie  s   	

zTestWilcoxon.test_wilcoxon_tiec                 C   s  g d}g d}t  }|jtdd tj||ddd\}}W d    n1 s(w   Y  t|d t|d	d
d t  }|jtdd tj||dddd\}}W d    n1 sZw   Y  t|d t|dd
d t  }|jtdd tj||ddd\}}W d    n1 sw   Y  t|d t|dd
d t  }|jtdd tj||dddd\}}W d    n1 sw   Y  t|d t|dd
d d S )N)
}   r)  rG     r;  r)  r;  r:  r;     )
r  z   r:  r[  r;  |   r     r<     r  r  r  r  r  r  rO  g13}?r5   rE   T)r  r,  r  g7a%?r  g?gڏoJT?)r
   r  r  r   r  r	   r   )rL   rZ   r  r  r   r  r.   r.   r/   test_onesided  s<   	



zTestWilcoxon.test_onesidedc                 C   sZ   t ddD ]%}t|}t|}t||d  d d t| tt|d t|| qd S )Nr   re  r   )r  r   r   r	   r   rj  r   )rL   r   pmf1pmf2r.   r.   r/   test_exact_basic  s   zTestWilcoxon.test_exact_basicc                 C   s  t g d}t g d}tj||ddd\}}t|ddd tj||d	dd\}}t|d
dd tj||ddd\}}t|ddd t ddd }t ddd}tj||ddd\}}t|ddd tj||d	dd\}}t|ddd tj||ddd\}}t|ddd d S )N)
g(\?g=
ףp=?g(\?gQ޿gQ?g{Gz?gp=
ףgq=
ףp?g      gQ?)
r   g?gɿg333333?皙gܿgzGgQοg(\gRQrD  r3  rA  g֔  ?r5   rE   r  gYJ?r  g*  ?r   r<  r  r   g(?g(?gS?)r(   r   r   r  r   rY   )rL   rZ   r  r  r  r.   r.   r/   test_exact_pval  s    zTestWilcoxon.test_exact_pvalrZ   )r   r   rt   )r   r   r  rw   )r   r   rt   r  r  ir8   r9   c                 C   s@   t |\}}t|}||dk  }t|| t|d d S Nr   r   )r   r  r(   r   rj  r	   )rL   rZ   r   r  wtruer.   r.   r/   test_exact_p_1
  s
   

zTestWilcoxon.test_exact_p_1c                 C   s   t ddd }t ddd}tt||tj||dd t dd}t }|jtdd	 t|\}}W d    n1 s@w   Y  ttj|d
d||f t dd}tt|tj|d
d d S )Nr   rA  r  r   r3  r
  r:   zExact p-value calculationr  r  r   ra  )r(   rY   r	   r   r  r
   r  r  )rL   rZ   r  rn  r  r   r  r.   r.   r/   	test_auto  s   zTestWilcoxon.test_autoN)r_   r`   ra   r  r  r  r  r1  r2  r6  r9  rB  rE  rG  r  r  r  rK  rL  r.   r.   r.   r/   r  S  s$    	
	&
r  c                   @   rb   )
	TestKstatc                    s   t jd t jd  fdddD }g d}t||dd tj d	d
}tj dd
}tj dd
}t|||f|d d ddd d S )Ni}  r  c                    s   g | ]}t  |qS r.   )r   kstat)rp   r   rM   r.   r/   rq   +  s    z>TestKstat.test_moments_normal_distribution.<locals>.<listcomp>r  )gHQ,?glZ)rI?g88}?gcJN?r  r>   r   )momentr   rt   r   g{Gz?{Gz?r  )r(   r"  r#  r  r   r   rP  )rL   momentsr  m1m2m3r.   rO  r/    test_moments_normal_distribution(  s   "z*TestKstat.test_moments_normal_distributionc                 C   rR   r'   )rS   rT   r   rN  rU   r.   r.   r/   rV   6  rW   zTestKstat.test_empty_inputc                 C   *   t d}t j|d< tt|t j d S Nr@   r5   r(   rY   r   r	   r   rN  ri   r.   r.   r/   r   9     

zTestKstat.test_nan_inputc                 C   s*   t d}dD ]}tttj||d qd S )Nr   )r   g/$@r?  )r(   rY   rS   rT   r   rN  rL   rM   r   r.   r.   r/   test_kstat_bad_arg?  s   
zTestKstat.test_kstat_bad_argN)r_   r`   ra   rV  rV   r   r\  r.   r.   r.   r/   rM  '  s
    rM  c                   @   r2   )TestKstatVarc                 C   rR   r'   rS   rT   r   kstatvarrU   r.   r.   r/   rV   G  rW   zTestKstatVar.test_empty_inputc                 C   rW  rX  rY  ri   r.   r.   r/   r   J  rZ  zTestKstatVar.test_nan_inputc                 C   s    dg}d}t ttj||d d S )Nr   r   r?  r^  r[  r.   r.   r/   rj   P  s   zTestKstatVar.test_bad_argN)r_   r`   ra   rV   r   rj   r.   r.   r.   r/   r]  F  s    r]  c                   @   sN   e Zd Zdd Zdd Zdd Zejje	 ddd	d
 Z
dd Zdd ZdS )TestPpccPlotc                 C      t ddddd | _d S Nrw     r  r  r0   rZ   rU   r.   r.   r/   setup_methodX  r1   zTestPpccPlot.setup_methodc                 C   H   d}t j| jdd|d\}}g d}t|tjdd|d t|| d S )Nrw   r   N)g9%	?gxM _?g";9?g®XZ?g?num)r   	ppcc_plotrZ   r   r(   r  )rL   ri  svalsppccppcc_expectedr.   r.   r/   rQ   [  
   zTestPpccPlot.test_basicc                 C   s   t j| jdddd\}}t j| jddt jd\}}t||dd t||dd t | jdd\}}t||dd t||dd d S )Nrg  r   tukeylambdar   g#B;r>   )r   rl  rZ   rq  r   )rL   svals1ppcc1svals2ppcc2svals3ppcc3r.   r.   r/   	test_distc  s   
zTestPpccPlot.test_distr  rG  c                 C   Z   t  }|d}tj| jddt d || |d}tj| jdd|d t   d S Nrq  ir<  r  )r  r  r  r   rl  rZ   delaxesr  rL   r  r  r.   r.   r/   r   o     


zTestPpccPlot.test_plot_kwargc                 C   s2   t ttj| jdd t ttjg ddddd d S )Nr   r   rs   r   r   )rS   rT   r   rl  rZ   rU   r.   r.   r/   test_invalid_inputs|  s   
z TestPpccPlot.test_invalid_inputsc                 C   s@   t g dd\}}t|tjdddd t|tjdtd d S )Nr   r   rj  rj  r   )r   rl  r   r(   r  r.  float)rL   rm  rn  r.   r.   r/   r    s   zTestPpccPlot.test_emptyN)r_   r`   ra   re  rQ   rx  r  r  rQ  r  r   r~  r  r.   r.   r.   r/   r`  W  s    
r`  c                   @   rb   )
TestPpccMaxc                 C   s   dg}t ttj|dd d S r   )rS   rT   r   ppcc_maxri   r.   r.   r/   test_ppcc_max_bad_arg  s   z!TestPpccMax.test_ppcc_max_bad_argc                 C   s2   t jjddddddd }tt |dd	d
 d S )Nffffffr   r  '   r        @{r8   rE   )r   rq  r+   r   r  r   r.   r.   r/   test_ppcc_max_basic  s   zTestPpccMax.test_ppcc_max_basicc                 C   sp   t jjddddddd }t j|dd	}t j|t jd	}t|d
dd t|d
dd t |}t|d
dd d S )Nr  r   r  r  r  r   r  rq  r   r  rw   rE   )r   rq  r+   r  r   )rL   rZ   max1max2max3r.   r.   r/   rx    s   
zTestPpccMax.test_distc                 C   s`   t jjddddddd }ttt j|dd	 tt j|d
d	ddd tt j|dd	ddd d S )Nr  r   r  r  r  r   r  )r   r   r  )brack)r   r   r  r8   rE   )r   r   )r   rq  r+   rS   rT   r  r   r   r.   r.   r/   
test_brack  s   
zTestPpccMax.test_brackN)r_   r`   ra   r  r  rx  r  r.   r.   r.   r/   r    s
    r  c                   @   r  )TestBoxcox_llfc                 C   sT   t jjdddd}d}t ||}|j d tt| d  }t	|| d S )Nr  r   1  r   r   r   r   r  r   )
r   r   r+   
boxcox_llfr   r(   r)   rj  rP   r   )rL   rZ   lmbdallfllf_expectedr.   r.   r/   rQ     s
   $zTestBoxcox_llf.test_basicc                 C   D   t jjdddd}d}t ||}t |t|}t||dd d S Nr   r   r  r  r   r  r>   )r   r   r+   r  listr   rL   rZ   r  r  llf2r.   r.   r/   test_array_like  
   zTestBoxcox_llf.test_array_likec                 C   P   t jjdddd}d}t ||}t |t||gj}t||g|dd d S r  )r   r   r+   r  r(   vstackr  r   r  r.   r.   r/   test_2d_input  s
   zTestBoxcox_llf.test_2d_inputc                 C      t ttdg  d S rh   )r   r(   isnanr   r  rU   r.   r.   r/   r       zTestBoxcox_llf.test_emptyc                 C   s"   g d}t d|}t|d d S )N)g     h@      m@r  g     x@ig#:x1)r   r  r   )rL   rM   r  r.   r.   r/   test_gh_6873  s   zTestBoxcox_llf.test_gh_6873N)r_   r`   ra   rQ   r  r  r  r  r.   r.   r.   r/   r    s    
r  (  iU>  iϵ i i_
 i7 i is iv  i+ i* i-q ir: i  i i i i_ i4  i iD  i i, iE i\  i i| ig  iM iӢ i[  i! i if6 iP i i iI i/ iF& i i i`# i i  i& i i iQ ia i
 iXZ iw  i_ im  iD i- iB  i:C i	 i' i  i % ix i  iz_ iQ i!# i= i  ix i
 iU7 i_ i1k iW9 i& ix iI i  iT i
 i i  irv im i͟  i iO iv i) iP i4 i= ii  iU i i ig> ix	 i` i| i0 i` iM	 i ' i[ i8 i  i3[ i  i) i`N i
	 i  i[ i:+ ip i	% i
  iV i[$ iX  i_ ib ieZ i i`?	 it i  i iE i iT iy i imv i< iZ i! i i(  ir
 i i iɪ i| i i> ii  i i* i# ix i i& i i# i1g iP i) iۆ i{% i? i۽ i| i i& i- iư) i+c i7  iQ i	o i& i|_ iy
 i6 i  i i i:J i#j i8 i  i%  i i%W i( i` i: ina  i  i i% i$ i4 iA( iq  i  i" iy iXZ i izr i i$ i; is igY i i7 ip	 ip iL6" iDH i i!3 i iI( i|C iш i im  iS i  i{8 i  i i iP i2L i( i@ is iu i2 i_ ij i)m igZ i_ iu	 i9 ik  i'; i ii iK i܃ i i= iv i= i ia  ir  i i i}W i*  i  iJ i i  i2  iUF iNj	 iV," ip iA i% i iv9 iI5 i  iT- i  i8~ i?e` i1 iV  i/X i= i4 i iح i^ i i/ ig i( i i|B; ip i ic iE' iE i$
 i i{ ik i: iI iA_ i iP ioP  i6_ i iܲ iO	 iA7 iL  iA i iV  iwm i iZh i|V iԇC iw i& i~ i i'  i!  i i
 i} ie i3 i i i_ i  i@) i  iV ii iF i? i&
 i"Y iw i  iH iS ird ib i@ iK iA; iz| id+ i	 i
8 i"  i	 iO i_ i$l i!9 ii iT iuL iQ'% iqp iC i]K@ i! i i  iIp| i i?	B i i io0 i i

 i  i5% i i i* i i iv0 i* i* iw i  ive i$ i i- iD~ i- i i,4 ib i  i iP0 i) im i	 iR iQ i
 i i c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Ze	j
dg ddd Zdd Ze	j
dg ddd Zdd ZdS )
TestBoxcoxc                 C   s   t ddddd }tj|dd}t||d  tj|dd}t|dd|   tj|dd}t|t| tjt|dd}t|t| ttd	d
}t|t	d	 d S )Nrw   r   r  r  r   r  r   r   r   r   )
r0   r   r   r   r(   r)   r  r   r	   r.  )rL   rZ   xtr.   r.   r/   test_fixed_lmbda  s   zTestBoxcox.test_fixed_lmbdac                 C   sL   d}t jjdddd}|| d |  }t |\}}t|d| dd	 d S )
Ng      @r   iP  i  )r   r   r   r   r   r   rE   )r   r   r+   r   r   )rL   r  rZ   x_invr  r   r.   r.   r/   test_lmbda_None   s
   zTestBoxcox.test_lmbda_Nonec                 C   s   t jd}tdd|dd }tj|dd\}}}t|ddg tj|d	d\}}}t|d
dg tdd|dd }tj|dd\}}}t|ddg tj|dd\}}}t|ddg d S )Nr   rw   r   r  r7  )alphagx@gv[%@r  gxˉEk?g8Bhk @r8   rc  rX   r  g\?gx̡&@r   g7(U@gp:sY@)r(   r"  r   r0   r   r   r   )rL   r  rZ   r  re   r.   r.   r/   
test_alpha*  s   zTestBoxcox.test_alphac                 C   sR   t ddg}tttj| tttjt dg tttjt dgdgg d S )Nr   r   r   )r(   r   rS   rT   r   r   r   r.   r.   r/   test_boxcox_bad_arg;  s    zTestBoxcox.test_boxcox_bad_argc                 C      t tg jdk d S N)r   )r   r   r   r  rU   r.   r.   r/   r  D  r1   zTestBoxcox.test_emptyc                 C   s    t t\}}t|ddd d S )NgsHjdrr   r>   r   r   _boxcox_datar   )rL   r  lamr.   r.   r/   r  G  s   zTestBoxcox.test_gh_6873bounds)r   r   )r   r   )r   rF  c                    sH    fdd}t jtd |d\}} d |  k r d k s"J  J d S )Nc                       t j|  ddS Nbounded)r  r  r   minimize_scalarfunr  r.   r/   	optimizerR     zBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizerr  r  r   r   )r   r   r  )rL   r  r  r  r  r.   r  r/   $test_bounded_optimizer_within_boundsO  s   (z/TestBoxcox.test_bounded_optimizer_within_boundsc                    sj   t jtd d\}}|d |d f ddi fdd}t jtd |d\}}||ks,J t| d	  d S )
Nr  r,  r   xatolr  c                    s   t j|  ddS )Nr  )r  r  optionsr  r  r  r  r.   r/   r  d  s   zPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizerr  r   r  )rL   r  r  r  lmbda_boundedr.   r  r/   2test_bounded_optimizer_against_unbounded_optimizerY  s   
z=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizerr  )str)r   r   r,  c                 C   sD   t jtdd tjtd |d W d    d S 1 sw   Y  d S )Nz`optimizer` must be a callabler  r  r  r   rT   r   r   r  rL   r  r.   r.   r/   $test_bad_optimizer_type_raises_errorn  s   "z/TestBoxcox.test_bad_optimizer_type_raises_errorc                 C   sP   dd }d}t jt|d tjtd |d W d    d S 1 s!w   Y  d S )Nc                 S   s   dS rh   r.   r  r.   r.   r/   r  y  s   zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizerz;`optimizer` must return an object containing the optimal...r  r  r  )rL   r  r  r.   r.   r/   %test_bad_optimizer_value_raises_errort  s
   "z0TestBoxcox.test_bad_optimizer_value_raises_errorN)r_   r`   ra   r  r  r  r  r  r  r  r  r  r  r  r  r  r.   r.   r.   r/   r    s    
	
	
r  c                   @   sh   e Zd Zdd Zdd Zdd Zdd Zej	d	g d
ej	dg ddd Z
dd Zdd ZdS )TestBoxcoxNormmaxc                 C   ra  Nrw   r   r  r  rd  rU   r.   r.   r/   re    r1   zTestBoxcoxNormmax.setup_methodc                 C      t | j}t|ddd d S )Nm?r  r>   r   boxcox_normmaxrZ   r   rL   r   r.   r.   r/   test_pearsonr     zTestBoxcoxNormmax.test_pearsonrc                 C   s<   t j| jdd}t|ddd t | j\}}t|| d S )Nmler  	.!?r  r>   )r   r  rZ   r   r   )rL   r   r  maxlog_boxcoxr.   r.   r/   test_mle  s   zTestBoxcoxNormmax.test_mlec                 C   s&   t j| jdd}t|ddgdd d S )Nr   r  r  r  r  r>   r  )rL   
maxlog_allr.   r.   r/   test_all  s   zTestBoxcoxNormmax.test_allr  )r  pearsonrr   r  r  c                    sN    fdd}t j| j||d}t d |k sJ t| d k s%J d S )Nc                    r  r  r  r  r  r.   r/   r    r  zITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer)r  r  r   r   )r   r  rZ   r(   r   )rL   r  r  r  r   r.   r  r/   r    s   
z6TestBoxcoxNormmax.test_bounded_optimizer_within_boundsc                    sv   t | j}t|d}t|d |d dG dd d  fdd}t j| j|d}||ks3J t||d	 d S )
Nrw   rQ  i  c                   @   s   e Zd ZdS )z?TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.MyResultN)r_   r`   ra   r.   r.   r.   r/   MyResult  s    r  c                    s6   g }D ]	}| | | q  }t| |_|S r'   )appendr(   argminrZ   )r  objsr  r\   r  lmbda_ranger.   r/   r    s   z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizer)r  r   )r   r  rZ   r(   roundr  r   )rL   r  lmbda_roundedr  lmbda2r.   r  r/   test_user_defined_optimizer  s   	z-TestBoxcoxNormmax.test_user_defined_optimizerc                 C   s^   t j}tj| jd |d tjtdd tj| jd|d W d    d S 1 s(w   Y  d S )N)r  r  z,`brack` must be None if `optimizer` is givenr  )g       r  )r   r  r   r  rZ   r  r   rT   r  r.   r.   r/   2test_user_defined_optimizer_and_brack_raises_error  s   
"zDTestBoxcoxNormmax.test_user_defined_optimizer_and_brack_raises_errorN)r_   r`   ra   re  r  r  r  r  r  r  r  r  r  r.   r.   r.   r/   r    s    r  c                   @   sF   e Zd Zdd Zdd Zejje dddd Z	d	d
 Z
dd ZdS )TestBoxcoxNormplotc                 C   ra  rb  rd  rU   r.   r.   r/   re    r1   zTestBoxcoxNormplot.setup_methodc                 C   rf  )Nrw   rg  r   rh  )g!X4}?g΁i?g-	15?gW$?g\ܱ{?rj  )r   boxcox_normplotrZ   r   r(   r  )rL   ri  lmbdasrn  ro  r.   r.   r/   rQ     rp  zTestBoxcoxNormplot.test_basicr  rG  c                 C   ry  rz  )r  r  r  r   r  rZ   r{  r  r|  r.   r.   r/   r     r}  z"TestBoxcoxNormplot.test_plot_kwargc                 C   s.   t ttj| jdd t ttjddgdd d S )Nr   r   r   )rS   rT   r   r  rZ   rU   r.   r.   r/   r~    s   z&TestBoxcoxNormplot.test_invalid_inputsc                 C   s   t tg ddjdk d S rI  )r   r   r  r   rU   r.   r.   r/   r    r  zTestBoxcoxNormplot.test_emptyN)r_   r`   ra   re  rQ   r  r  rQ  r  r   r~  r  r.   r.   r.   r/   r    s    
r  c                   @   r2   )TestYeojohnson_llfc                 C   r  )Nr   r   r  r  r   r  r>   )r   r   r+   yeojohnson_llfr  r   r  r.   r.   r/   r    r  z"TestYeojohnson_llf.test_array_likec                 C   r  r  )r   r   r+   r  r(   r  r  r   r  r.   r.   r/   r    s
   z TestYeojohnson_llf.test_2d_inputc                 C   r  rh   )r   r(   r  r   r  rU   r.   r.   r/   r    r  zTestYeojohnson_llf.test_emptyN)r_   r`   ra   r  r  r  r.   r.   r.   r/   r    s    r  c                   @   s   e Zd Zdd Zejdg ddd Zdd Zd	d
 Z	ejde
je
jgdd Zejde
je
je
je
jgdd Zdd ZdS )TestYeojohnsonc                 C   s  t jd}tdd|dd }t |dksJ tj|dd}t|| tj|dd}t|dd|d    tj|dd}t|t |d  tj|dd}t|| tdd|dd }t |dk seJ tj|d	d}t|t | d   tj|dd}t|| tj|d
d}t|d| d  d  tdd|dd	 }t |dk rJ t |dkrJ |dk}tj|dd}t|| ||  tj|dd}t|| dd|| d    tj|dd}t|| t || d  tj|dd}t|| ||  | }tj|d	d}t|| t ||  d   tj|dd}t|| ||  tj|d
d}t|| d||  d  d  d S )Nr  rw   r   r  r   r   r  r   r   rt   )	r(   r"  r   r0   r   r   
yeojohnsonr   r)   )rL   r  rZ   r  posnegr.   r.   r/   r    sL   


 $zTestYeojohnson.test_fixed_lmbdar  )r   r,  r  r   c                 C   s   dd }d}t jd t jjdd|d}|||}t|\}}t||dd	 tdt j	|| | d
d td|
 dd td| dd d S )Nc                 S   s   t j| j| jd}| dk}t|t dk r"t | | d ||< nt | | | d d| d ||< t|d t dkrZdt d|  | |   d dd|   || < |S dt | |    || < |S )Nr   r   r   r   r   )r(   r.  r  r   absspacingexppower)rZ   r  r  r  r.   r.   r/   _inverse_transform6  s   $
z:TestYeojohnson.test_lmbda_None.<locals>._inverse_transformi N  r  r   r   )r   r   r   rQ  r  r   rE   )r(   r"  r#  normalr   r  r   r   linalgr   rN   rP   )rL   r  r  	n_samplesrZ   r  r  r   r.   r.   r/   r  1  s   
zTestYeojohnson.test_lmbda_Nonec                 C   r  r  )r   r   r  r  rU   r.   r.   r/   r  V  r1   zTestYeojohnson.test_emptyc                 C   sD   t jjdddd}t |\}}t t|\}}t||dd d S )Nr   r   r  r  r  r>   )r   r   r+   r  r  r   )rL   rZ   xt1r  xt2r.   r.   r/   r  Y  s   zTestYeojohnson.test_array_liker   c                 C   sP   t jd|d}d}tjt|d t| W d    d S 1 s!w   Y  d S )Nr5   r   z>Yeo-Johnson transformation is not defined for complex numbers.r  )r(   rY   r  r   rT   r   r  )rL   r   rZ   err_msgr.   r.   r/   test_input_dtype_complex_  s
   "z'TestYeojohnson.test_input_dtype_complexc                 C   sZ   t jd|d}t jdt jd}t|\}}t|\}}t||dd t||dd d S )Nr9   r   r  r>   )r(   rY   float64r   r  r   )rL   r   x_intx_floatxt_int	lmbda_intxt_floatlmbda_floatr.   r.   r/   test_input_dtype_integerg  s   z'TestYeojohnson.test_input_dtype_integerc                 C   sN   t g d}t|\}}t|d \}}t||dd t||dd d S )N)(HAG."A    5fAg(@Ag   VAgHzuoAg)\¿+Ar  g(\^@Ag    RAr  g    #Ag\µ=Ag
ףNAr  gp=oHAg    6bAg{csAg)\tmhAg/BAg   '|Ag(\wipAg    ݃hAgQlBAgףp @Ar   r  r>   )r(   r   r   r  r   r   )rL   rZ   xt_yeolam_yeoxt_boxlam_boxr.   r.   r/   test_input_high_variancep  s
   z'TestYeojohnson.test_input_high_varianceN)r_   r`   ra   r  r  r  r  r  r  r  r(   	complex64
complex128r  int8uint8int16int32r  r	  r.   r.   r.   r/   r     s    /
$

r  c                   @   r2   )TestYeojohnsonNormmaxc                 C   ra  r  rd  rU   r.   r.   r/   re    r1   z"TestYeojohnsonNormmax.setup_methodc                 C   r  )Ng?r  r>   )r   yeojohnson_normmaxrZ   r   r  r.   r.   r/   r    r  zTestYeojohnsonNormmax.test_mlec                 C   s*   g d}t |}tj|dddsJ d S )N)gffffff@g r   r  gffffff?g333333@r  gffffff@g?g@r  r  g"@r  g      gzG?r  r  )r   r  r(   allclose)rL   rZ   r  r.   r.   r/   test_darwin_example  s   
z)TestYeojohnsonNormmax.test_darwin_exampleN)r_   r`   ra   re  r  r  r.   r.   r.   r/   r    s    r  c                   @   sB  e Zd Zejdejdfejdfej	dfgdd Z
dd Zejd	ejejfejejfej	ejfgd
d Zdd Zdd Zdd Zejdejdfejdfej	dfgdd Zejdejejej	gdd Zejdejejej	gdd Zejdejejdddfejejdddfej	ejdddfgd d! Zejdejd"eg d#ed$d%gdfejd&eg d'ejd( d)  edd*gdfej	d+eg d,ed-d.gdfgd/d0 Zejdejdfejdfej	dfgd1d2 Zejdejejej	gd3d4 Zejdejejej	gd5d6 Zejd7d8d9d)d:d;d<ejged8d9d)d:d;d<ejgd=d>d?d@ejdAdBgggejdejejej	gdCdD Zejd7d8d9d)d:d;d<ejged8d9d)d:d;d<ejgd=d>d?d@ejdAdBgggejdejejej	gdEdF Z dGdH Z!dIdJ Z"dKdL Z#dMS )NTestCircFuncsztest_func,expectedgA:wv?g @pz?gE|2@c                 C   s(   t g d}t||dd|dd d S Nc  rw   r   r  r   ^  h  r|  r  r>   r(   r   r   rL   	test_funcr  rZ   r.   r.   r/   test_circfuncs  s   zTestCircFuncs.test_circfuncsc                 C   s   t g d}| }tj|dd}t||dd |t j d  }|d }tj|dd}t||dd |	 }tj
|dd}t||dd d S )	N)r<  rN  r3  r/     g     4@g3333333@r  r  r   r>   r  r  r  )r(   r   rN   r   circmeanr   pirO   circvarrP   circstd)rL   rZ   M1M2V1V2S1S2r.   r.   r/   test_circfuncs_small  s   z"TestCircFuncs.test_circfuncs_smallztest_func, numpy_funcc                 C   s<   t dgd dgd  }||}||}t||dd d S )Ng˛ɦv9?r   guv9?r   g:0yU>r  r  )rL   r  
numpy_funcrZ   circstatr  r.   r.   r/   test_circfuncs_close  s   z"TestCircFuncs.test_circfuncs_closec                       t g dg dg dg tj dd}tj  dd}t||dd tj ddd	} fd
dt jd D }t||dd tj ddd	} fddt jd D }t||dd d S )Nr  _  r8   rv   `  r6   ]  ie  r6   r9   if  rv   id  r  r  r=   r>   r   r|  rc  c                       g | ]}t j | d dqS r  r  r   r   rp   r]   rZ   r.   r/   rq         z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>r   c                    &   g | ]}t j d d |f ddqS Nr  r  r7  r8  r9  r.   r/   rq        & )r(   r   r   r   ravelr   r  r  )rL   r$  r%  r.   r9  r/   test_circmean_axis  s   
z TestCircFuncs.test_circmean_axisc                    r.  )Nr  r/  r3  r  r  dy=r>   r   r4  c                    r5  r6  r   r"  r8  r9  r.   r/   rq     r:  z3TestCircFuncs.test_circvar_axis.<locals>.<listcomp>r   c                    r;  r<  rA  r8  r9  r.   r/   rq     r=  )r(   r   r   r"  r>  r   r  r  )rL   r&  r'  r.   r9  r/   test_circvar_axis     
zTestCircFuncs.test_circvar_axisc                    r.  )Nr  r/  r3  r  r  r@  r>   r   r4  c                    r5  r6  r   r#  r8  r9  r.   r/   rq     r:  z3TestCircFuncs.test_circstd_axis.<locals>.<listcomp>r   c                    r;  r<  rD  r8  r9  r.   r/   rq     r=  )r(   r   r   r#  r>  r   r  r  )rL   r(  r)  r.   r9  r/   test_circstd_axis  rC  zTestCircFuncs.test_circstd_axisc                 C   s"   g d}t ||dd|dd d S r  )r   r  r.   r.   r/   test_circfuncs_array_like  s   z'TestCircFuncs.test_circfuncs_array_liker  c                 C   s   t t|g  d S r'   )r   r(   r  )rL   r  r.   r.   r/   r    r  zTestCircFuncs.test_emptyc                 C   s.   ddddddt jg}tt ||dd d S )	Nr  rw   r   r  r   r  r  r  r(   r   r   r  rL   r  rZ   r.   r.   r/   test_nan_propagate  s   z TestCircFuncs.test_nan_propagateg5:v@gfPb?rI  gee?gOQOv?g#q@gauy+@c                 C   s   t g dddddddt jgdt jt jt jt jt jt jgg}| D ]-}||d	|d
}|d u r8tt | q#t|d || dd tt |dd    q#d S )N)r  rw   r   r  r   r  r   r0  r8   rv   r1  r6   r2  r   r  r4  r   r  r>   )r(   r   r   keysr   r  r   r   rL   r  r  rZ   rc  outr.   r.   r/   test_nan_propagate_array 	  s   

z&TestCircFuncs.test_nan_propagate_arraygrQvv@)g     v@r  r  g     8v@r  g     u@g5@v?g2>Bjv@gG2?)gaF+?z?rN  gA ~@碲?rO  r  r   gX҄?gJPm$@)gj  @竃 ?rP  g)h;@{ ?rQ  gun2@g+fa @c                 C   s   t ddddddt jgddd	d
ddt jgt jt jt jt jt jt jt jgg}| D ].}||dd|d}|d u rBt||| dd q*t|d d || dd tt |d  q*d S )Nr  rw   r   r  r   r  r0  r8   rv   r1  r6   r2  r  omit)r|  
nan_policyrc  r  r>   r   )r(   r   r   rJ  r   r   r  rK  r.   r.   r/   test_nan_omit_array	  s   z!TestCircFuncs.test_nan_omit_arrayc                 C   s0   ddddddt jg}t||ddd	|d
d d S )Nr  rw   r   r  r   r  r  rR  r|  rS  r  r>   )r(   r   r   r  r.   r.   r/   test_nan_omit4	  s   
zTestCircFuncs.test_nan_omitc                 C   s2   t jt jt jt jt jg}tt ||dd d S )NrR  rS  rG  rH  r.   r.   r/   test_nan_omit_all=	  s   zTestCircFuncs.test_nan_omit_allc                 C   sj   t t jt jt jt jt jgt jt jt jt jt jgg}||ddd}tt |  tt|dk d S )NrR  r   )rS  rc  r   )r(   r   r   r   r  r   r   )rL   r  rZ   rL  r.   r.   r/   test_nan_omit_all_axisC	  s   z$TestCircFuncs.test_nan_omit_all_axisrZ   r  rw   r  r   r  r0  r8   rv   r1  r6   r2  c                 C      t t||ddd d S )Nr  raiserU  rS   rT   rH  r.   r.   r/   test_nan_raiseL	     zTestCircFuncs.test_nan_raisec                 C   rZ  )Nr  foobarrU  r\  rH  r.   r.   r/   test_bad_nan_policyU	  r^  z!TestCircFuncs.test_bad_nan_policyc                 C   s$   d}|}t |}t||dd d S )Nr   r   r>   )r   r   r   )rL   rZ   r$  r%  r.   r.   r/   test_circmean_scalar^	  s   
z"TestCircFuncs.test_circmean_scalarc                 C   s@   t tdddtjtj }t|tjk  t|tj k d S )Nr   r   r,  )r   r   r(   rY   r!  r   )rL   mr.   r.   r/   test_circmean_ranged	  s   z!TestCircFuncs.test_circmean_rangec                 C   sZ   t jddgdd}ttj|ddd ttj|dddd	d
 ttj|dddd	d
 d S )N   r   r  r   r  r  g     @e@gLwqA?r  r>   g)#p_4@)r(   r   r	   r   r   r   r"  r#  r   r.   r.   r/   test_circfuncs_uint8k	  s   z"TestCircFuncs.test_circfuncs_uint8N)$r_   r`   ra   r  r  r  r   r   r"  r#  r  r*  r(   rN   rO   rP   r-  r?  rB  rE  rF  r  rI  r   rM  r   r!  rT  rV  rX  rY  r]  r`  ra  rc  re  r.   r.   r.   r/   r    s    








	



r  c                   @   sd   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )TestMedianTestc                 C   s   t ttjg d d S r;  rS   rT   r   median_testrU   r.   r.   r/   test_bad_n_samplesv	  r>  z!TestMedianTest.test_bad_n_samplesc                 C   s   t ttjg g d d S r;  rg  rU   r.   r.   r/   r  z	  r  z TestMedianTest.test_empty_samplec                 C   s&   t ttjg dg dddgdd d S )N)r   r   r   r   )r   r   r   r   r   r   tiesrg  rU   r.   r.   r/   test_empty_when_ties_ignored~	  s   
z+TestMedianTest.test_empty_when_ties_ignoredc                 C   s8   t ttjg dg d t ttjg dg ddd d S )N)r   r   r   aboverj  rg  rU   r.   r.   r/   test_empty_contingency_row	  s   
z)TestMedianTest.test_empty_contingency_rowc                 C       t ttjg dddgdd d S )Nrs   rv   rw   r  rj  rg  rU   r.   r.   r/   test_bad_ties	     
zTestMedianTest.test_bad_tiesc                 C   ro  )Nrs   rv   rw   r_  rW  rg  rU   r.   r.   r/   r`  	  s    z"TestMedianTest.test_bad_nan_policyc                 C   ro  )Nrs   rv   rw   r  )r  )rS   r.  r   rh  rU   r.   r.   r/   r/  	  rq  zTestMedianTest.test_bad_keywordc                 C   s\   g d}g d}t ||\}}}}t|d t|ddgddgg t|d t|d d S )Nrs   r  r   r   r   )r   rh  r	   r   )rL   rZ   r  r7  r  medtblr.   r.   r/   test_simple	  s   

zTestMedianTest.test_simplec                 C   s   g d}ddg}g d}t |||\}}}}t|d t|g dg dg t j|||dd\}}}}t|d t|g dg d	g t j|||d
d\}}}}t|d t|g dg d	g d S )Nr  rw   r5   )r8   r9   r6   )r   r   rt   )rv   r   r   r   rj  )rv   r   r   rm  )r   r   rt   )r   rh  r	   )rL   rZ   r  zr7  r  rb  rs  r.   r.   r/   test_ties_options	  s   


z TestMedianTest.test_ties_optionsc                 C   s   ddt jg}g d}tj||dd}tj||dd\}}}}t|t jt jt jd f t|d t|d t|d	 t|t d
dgddgg tttj||dd d S )Nr   r   )rv   rw   r5   	propagaterW  rR  g     ?gإvao?r  r   r[  )	r(   r   r   rh  r	   r   r   rS   rT   )rL   rZ   r  mt1r   r  rb  r  r.   r.   r/   test_nan_policy_options	  s   


z&TestMedianTest.test_nan_policy_optionsc                 C   s2  g d}g d}t ||\}}}}t|d t|ddgddgg t |\}}}	}
t|| t|| t j||dd\}}}}t|d t|ddgddgg t j|dd\}}}	}
t|| t|| t j||dd	\}}}}t|d t|ddgddgg t j|dd	\}}}	}
t|| t|| d S )
Nru   )r   rv   r5   r9   rv   r   r   r   )lambda_F)r,  )r   rh  r	   chi2_contingencyr   )rL   rZ   r  r7  r  rb  rs  exp_statexp_pdofer.   r.   r/   rQ   	  s(   







zTestMedianTest.test_basicN)r_   r`   ra   ri  r  rl  rn  rp  r`  r/  rt  rv  ry  rQ   r.   r.   r.   r/   rf  t	  s    rf  )Nrx   rJ  numpyr(   numpy.randomr   numpy.testingr   r   r   r   r   r   r	   r
   r  r   rS   scipyr   r   scipy.stats._morestatsr   common_testsr   
_hypotestsr   r   scipy.stats._binomtestr   
matplotlibrcParamsmatplotlib.pyplotpyplotr  r  	Exceptionr  r  r  r  r  r  r  r  r  r  r0   r3   rc   r~   r   r  r  r  r  r4  rS  rY  r  r  r  r  r  rM  r]  r`  r  r  r  r  r  r  r  r  r  r  rf  r.   r.   r.   r/   <module>   s   (
!kV G E, SD %^ U6%(2uH# e