3
Od                @   s  d Z ddlZddlZddlZddlmZ ddljZddlmZm	Z	 ddl
jjZddlmZ ddl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 dd
lmZ G dd deZd>ddZd?ddZ G dd deZ!G dd deZ"G dd deZ#G dd deZ$G dd deZ%G dd deZ&G dd deZ'G d d! d!eZ(G d"d# d#eZ)d$d% Z*d&d' Z+d(d) Z,d*d+ Z-G d,d- d-Z.G d.d/ d/Z/G d0d1 d1Z0G d2d3 d3Z1G d4d5 d5Z2G d6d7 d7Z3G d8d9 d9Z4G d:d; d;eZ5G d<d= d=eZ6dS )@z?
Tests for the stats.mstats module (support for masked arrays)
    N)nan)maskednomask)stats   )check_named_results)raises)assert_equalassert_almost_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_assert_allcloseassert_array_equal)suppress_warningsc               @   s   e Zd Zdd ZdS )TestMquantilesc             C   s   t jdddgdddgddd	gdd
dgdddgdddgdddgd
d d!gdd"d#gdd$d%gdd&d'gg}dddgdddgdddgg}tj|dd(d}t|| d S ))Ng      @g      @g      ?g     G@g      .@g       @g     H@g      B@g      @g     C@g      @g      E@g      D@g     8@g     D@g     E@g3333333@g333333-@g333333?g     B@g      @gffffffE@gfffffD@gffffff@r   2   )axislimitg     8g     8g     8g     8g     8g     8g     8g     8g     8g     8g     8g     8)r   r   )nparraymstatsZ
mquantilesr
   )selfdatadesiredZquants r   W/var/www/html/virt/lib64/python3.6/site-packages/scipy/stats/tests/test_mstats_basic.pytest_mquantiles_limit_keyword   s     z,TestMquantiles.test_mquantiles_limit_keywordN)__name__
__module____qualname__r   r   r   r   r   r      s   r   Hz>c             C   s.   t j| ||d}t|||d t|j| d S )N)r   dtype)rtol)r   gmeanr   r	   r"   )
array_liker   r   r"   r#   xr   r   r   check_equal_gmean,   s    r'   c             C   s.   t j| ||d}t|||d t|j| d S )N)r   r"   )r#   )r   hmeanr   r	   r"   )r%   r   r   r"   r#   r&   r   r   r   check_equal_hmean2   s    r)   c               @   s\   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	j
eed dddd Zdd ZdS )TestGeoMeanc             C   s*   ddddg}t jdd}t||dd d S )Nr            g      ?g      @g+=)r#   r+         g      ?)r   powerr'   )r   ar   r   r   r   test_1d9   s    zTestGeoMean.test_1dc             C   sh   t jddddddddd	d
g
}d}t|| t jddddgddddgd}tjdd}t||dd d S )N
         (   r   <   F   P   Z   d   gsŤF@r   r+   r,   r-   r   )maskg      ?g      @g+=)r#   r+   r.   gUUUUUU?)mar   r'   r   r0   )r   r1   r   r   r   r   
test_1d_ma>   s    
zTestGeoMean.test_1d_mac             C   sJ   t jjddddddddd	d
g
ddddddddddg
d}d}t|| d S )Nr3   r4   r5   r6   r   r7   r8   r9   r:   r;   r   r   )r<   gdq_D@)r   r=   r   r'   )r   r1   r   r   r   r   test_1d_ma_valueH   s    8zTestGeoMean.test_1d_ma_valuec             C   sJ   t jjddddddddd	d
g
}d}t jdd t|| W d Q R X d S )Nr3   r4   r5   r6   r   r7   r8   r9   r:   r   gdq_D@ignore)all)r   r=   r   errstater'   )r   r1   r   r   r   r   test_1d_ma0N   s     zTestGeoMean.test_1d_ma0c             C   sJ   t jjddddddddd	dg
}d}t jdd t|| W d Q R X d S )Nr3   r4   r5   r6   r   r7   r8   r9   r:   r   gdq_D@r@   )rA   )r   r=   r   rB   r'   )r   r1   r   r   r   r   test_1d_ma_infU   s     zTestGeoMean.test_1d_ma_inffloat96zcannot find float96 so skipping)reasonc             C   sH   t jddddgddddgd}tjddjtj}t||tjd	d
 d S )Nr   r+   r,   r-   r   )r<   g      ?g      @g+=)r"   r#   r+   r.   gUUUUUU?)r=   r   r   r0   astyperF   r'   )r   r1   
desired_dtr   r   r   test_1d_float96\   s    zTestGeoMean.test_1d_float96c             C   s   t jddddgddddgddddggddddgddddgddddggd}tjddddg}t||ddd t jtjddtjddtjdd g}t||d!dd ddddgddddgddddgg}d}ttj j|| d S )"Nr   r+   r,   r-   r   )r<   g+=)r   r#   g      ?g      @g       @r3   r4   r5   r6   r   r7   r8   r9   r:   r;   n   x   g/,$qJ@r+   r.   r/   g      ?r.   g      ?r-   g      ?rD   )r=   r   r   r'   r0   )r   r1   r   r   r   r   
test_2d_mab   s    $&
"zTestGeoMean.test_2d_maN)r   r   r    r2   r>   r?   rC   rE   pytestmarkskipifhasattrr   rJ   rM   r   r   r   r   r*   8   s   
 r*   c               @   s<   e Zd Zdd Zejjeed dddd Z	dd	 Z
d
S )TestHarMeanc             C   s   t jddddgddddgd}d}t||d	d
 tj jddddddddddg
}d}t|| tj jddddddddddg
ddddddddddg
d}d}t|| d S )Nr   r+   r,   r-   r   )r<   g      @g      ?g+=)r#   r3   r4   r5   r6   r   r7   r8   r9   r:   r;   g=b#A@gO?@g      ?g      ?g      ?gUUUUUU?gUUUUUU?g/袋.?)r=   r   r)   r   )r   r1   r   r   r   r   r2   t   s     
zTestHarMean.test_1drF   zcannot find float96 so skipping)rG   c             C   sB   t jddddgddddgd}tjdtjd	}t||tjd	 d S )Nr   r+   r,   r-   r   )r<   g      @g      ?)r"   g      ?g      ?g      ?gUUUUUU?gUUUUUU?g/袋.?)r=   r   r   asarrayrF   r)   )r   r1   rI   r   r   r   rJ      s    zTestHarMean.test_1d_float96c             C   s   t jddddgddddgddddggddddgddddgddddggd}t jddddg}t||ddd d!d%d)g}t||d*dd ddddgddddgddddgg}d}ttj j|| d S )+Nr   r+   r,   r-   r   )r<   g+=)r   r#   g      @g      ?g       @g      @r3   r4   r5   r6   r   r7   r8   r9   r:   r;   rK   rL   gmWUC@g      ?g      ?g      ?gUUUUUU?gUUUUUU?g      ?g @gQ?g      ?gUUUUUU?g?g433333@g      ?g      ?g      ?g?rD   )r=   r   r)   r   )r   r1   r   r   r   r   test_2d   s    $&
"zTestHarMean.test_2dN)r   r   r    r2   rN   rO   rP   rQ   r   rJ   rT   r   r   r   r   rR   s   s    rR   c               @   s   e Zd Zdd ZdS )TestRankingc             C   s  t jddddddddddg
}ttj|dddddddd	d	d
g
 t|ddg< ttj|ddddddddddg
 ttj|ddddddddddddg
 t jddddddddddg
}ttj|ddd	ddddd	dd
g
 t jdddddgdddddgg}ttj|dddddgddd	d	d
gg ttj|dddddddgdddddgg ttj|dddddddgdddddgg d S )Nr   r   r+   r,   r-      r.      g      !@r3   g      @g      @   T)Zuse_missingg      @)r   g      @)r=   r   r
   r   rankdatar   )r   r&   r   r   r   test_ranking   s$    


"
zTestRanking.test_rankingN)r   r   r    rZ   r   r   r   r   rU      s   rU   c               @   sL   e Zd Zdd Zdd Zejjej	 dkdddd	 Z
d
d Zdd ZdS )TestCorrc       
      C   sR  t jd}tj  tjdt ttj||d d ttj||d d d d d t j	|dd}tj||}t
|d tk t
|d tk W d Q R X t j	dddg}t j	ddd	g}tj||\}}t|tjd	d
  t|d ddddg}t j	ddddg|d}t j	ddd	dg|d}	tj||	\}}t|tjd	d
  t|d d S )Nr3   errorr   g      ?r   T)r<   g        r,   r+   Fg     X@rD   g      g      gUUUUUU?g      rD   gUUUUUU?)r=   arangewarningscatch_warningssimplefilterRuntimeWarningr
   r   pearsonrr   r   r   r   sqrt)
r   r&   prx1y1rpr<   Zx2y2r   r   r   test_pearsonr   s(    

 
zTestCorr.test_pearsonrc             C   s  ddddgddddg }}t tj||d d/ ddddtjgddddtjg }}tj|tj| }}t tj||d d0 d
ddddddddddddddg}ddddddddd ddd!dd"dg}t tj||d d# d
ddddddddddddddtjg}ddddddddd ddd!dd"dtjg}tj|tj| }}t tj||d d# ttd$}ttd$}|d% |d  |d< |d%< |d& |d'  |d'< |d&< |d( |d)  |d)< |d(< t tj||d d* tj||}d1}t	||d-d. d S )2Ng333333@g      @gGz	@gHzG@gffffff?gQ@g@r   gIQ=?g       @g33333G@g      E@g%@gN@g333333?g      P@ǧO@g      ?gffffff?g@g333333?g333333@g@g6@g @g333333F@g'@g8@g333333?g@gD@g        gffffff@g333333?gI
?i  	   i  r3   i  i  gV-?correlationpvalueT)r=   gIQ=gIQ=)rl   rm   )
r
   r   	spearmanrr   r   r=   fix_invalidlistranger   )r   r&   yres
attributesr   r   r   test_spearmanr   s2    "zTestCorr.test_spearmanrppc64lezfails/crashes on ppc64le)rG   c       	      C   s  t jtjddddg}t jtjddddg}dd	g}ttjtj||| t jtjd
}t jtjd
}d	dg}ttjtj||| tt	tj||dd |d }|d |d< ||d< ddg}ttjtj||| |d }|d |d< ||d< ddg}ttjtj||| t jtjd
}t jtjd
d d d7 }d8dg}ttjtj||| |d }|d |d< ||d< d9dg}ttjtj||| |d }|d |d< ||d< d:dg}ttjtj||| t j
ddddtjg}t j
ddd;dtjg}t j
ddddtjg}ttjtj||d<dg ttjtj||ddd=d g ttjtj||d>d"g t j
d#d#d#d#d$d$d#d%d#d$d
d
d#d&d#d$d#d#d#d#d#tjg}t j
d#d'd'd'd
d(d%d#d)d*d+d'd'd'd'd'd'd#d
d,tjd#g}tj||}ttj|d?d.g tjd/td0}t j|d1}tjd/td0}tj|d2d  |d d2 f}ttjtj||d  tj||}d@}t||d5d6 d S )ANrk   r+   rV   r.   r-   rW      g        g      ?r3   gxO~>Zbanana)methodr   g?>?gaV>g}'}'?go&5>g333333@g      @gGz	@gHzG@gffffff?g     :@gQ@gףp=
@gQ@g@燼1UU?g      ?Z
asymptoticglgN?g~ȋ?gQM?r   r4   r7   r6   r9   !   C         -   gXJ?gvPwTk?i  )r"   i  i  rl   rm   T)r=   rD   g      g?>g}'}'gQry   ry   g~ȋgXJĿ)rl   rm   )r=   r   r   r
   rS   r   
kendalltaur]   assert_raises
ValueErrorro   r   floatZmasked_greaterZconcatenater   isfiniter   )	r   r&   rr   expectedbzresultrs   rt   r   r   r   test_kendalltau   sp    


  zTestCorr.test_kendalltauc             C   s   t t dddddddddddgdddddddddddddgdddd	d
ddddt ddt gt d	dddt d	ddddddgg}tj|j}tj|}t|d dd t|d jdddddg d S )Nr-   r+         rV   r   r,   rW   r.      rk   rw      zglobal p-value (indep)gMb?zseasonal p-valueg
ףp=
?g(\?g?g{Gz?)r   r=   ro   Tr   Zkendalltau_seasonalr
   round)r   r&   outputr   r   r   test_kendalltau_seasonalR  s     
z!TestCorr.test_kendalltau_seasonalc          #   C   s   ddddddddddddddddddddddddddddddddddd&g#}ddddddd	d
ddddddddddddddddddddddddddt jg#}ttj||d d d! tj||}d'}t||d$d% d S )(Nr   r   g-@g+@g(@g333333$@gffffff@gffffff@g333333@gffffff@g333333@g      @gffffff
@g	@g      @gffffff@g      @g333333@gffffff@g @g333333?g      ?g?g333333?g?g?gffffff?g333333?g      ?g?g?g/"?rV   rl   rm   T)r=   rD   )rl   rm   )r   r   r
   r   Zpointbiserialrr   )r   r&   rr   rs   rt   r   r   r   test_pointbiserial^  s    :zTestCorr.test_pointbiserialN)r   r   r    rj   ru   rN   rO   rP   platformmachiner   r   r   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S )TestTrimmingc             C   sL  t jd}ttj|dddddddd	d
dg
 t jd}ttj|dd d dddddd	d
d g
 t jd}ttj|dddd d d ddddd	d d g
 t jd}ttj|dddd ddddddd	d d g
 t jd}t |ddg< |d< ttj|dd d dddd dd	d
d d d g t jdjdd}dgd dgd  dgd  }tj|ddd d}t|jj | tj|d ddd}t|jj | tj|d!dd"d}t|jj	j | t jdjdd}t|d< dgd dgd  dgd  }tj|d#dd d}t|jj | tj|d$ddd}t|jj | tj|j	d%dd&d}t|j	jj | d S )'Nr3   r   r   r+   r,   r-   rV   r.   rW   rX   rk   F)limits	inclusive皙?皙?T)r   relative   r;   r8   r4   )r   r   rK   rw   )r+   rX   )r+   rX   )FF)r   r   rD   )r+   rX   )r   r   )r   r   )r   r   rD   )r   r   )r   r   )r   r   rD   )
r=   r]   r	   r   Ztrimr   reshape_maskZravelr   )r   r1   r&   r   trimxr   r   r   	test_trimn  s>    
$
&


zTestTrimming.test_trimc             C   s   t jd}ttj|j d ttj|ddj d t|dd< tj|}t|j d t|jd	gd
 dgd  d	gd  dgd  d	gd
   t	|_d|_
ttj|j d ttj|j d d S )Nr;   r7   rg   )tailr9   r   r8   0   r   r   r   "   r4      r3   )r3   r3   )r=   r]   r	   r   trimbothcountZtrimtailr   r   r   shape)r   r&   r   r   r   r   test_trim_old  s    

:zTestTrimming.test_trim_oldc             C   sl   t jd}tj|ddd}t jdddd	d
dddddg
ddddddddddg
d}t|| t|j|j d S )Nr3   333333?Q?F)r   r   r   r   r+   r,   r-   rV   r.   rW   rX   rk   )r<   )r   r   )FF)r=   r]   r   Ztrimrr   r	   r<   )r   r&   r   r   r   r   r   
test_trimr  s    

zTestTrimming.test_trimrc             C   sp   t jddddddddd	d
dddddddddg}ttj|ddd ttj|ddd ttj|ddd d S )NM   W   X   r                  i  i(  i+  i2  ix  i  i  i  i  i3
  皙?iW  r   皙?i  )r   r   )r   r   )r=   r   r
   r   Ztrimmed_mean)r   r   r   r   r   test_trimmedmean  s
    zTestTrimming.test_trimmedmeanc             C   s\   t jddddddddd	d
dddddddddg}ttj|ddd ttj|ddd d S )Nr   r   r   r   r   r   r   r   r   i  i(  i+  i2  ix  i  i  i  i  i3
  皙?g>L@rV   )r   r   )r=   r   r
   r   Ztrimmed_stde)r   r   r   r   r   test_trimmed_stde  s    zTestTrimming.test_trimmed_stdec             C   s   t jddddddddd	d
dddddddddg}ttj|djdddd ttj|ddjdddd t|d< tj|}t|j|j d S )Nr   r   r   r   r   r   r   r   r   i  i(  i+  i2  ix  i  i  i  i  i3
  皙?r   )ddofg@Fgffff7@rV   )r   r   )r   r   )FF)	r=   r   r
   r   	winsorizevarr   r	   r<   )r   r   Z
winsorizedr   r   r   test_winsorization  s    
zTestTrimming.test_winsorizationc             C   s   t jtjtjdddg}tttj|d
dd ttj|dt jdddddg ttj|dt jtjtjtjtjtjg ttj|dd	dt jtjtjdddg ttj|dd	dt jtjtjdddg d S )Nr   r   r+   皙?raise)Z
nan_policy皙?皙?Zomit)r   r   )r   r   )r   r   )r   r   )r   r   )	r=   r   r   r   r   r   r   r   r	   )r   r   r   r   r   test_winsorization_nan  s     z#TestTrimming.test_winsorization_nanN)
r   r   r    r   r   r   r   r   r   r   r   r   r   r   r   l  s   %r   c               @   s   e Zd ZddddgZejddddd4ejgZej	ej	d
ddddgdddddgdddddgdddddgddd d!d"ggej	d#d$d$d#d$gd#d#d#d$d#gd$d$d$d$d$gd#d#d#d#d#gd$d$d#d$d$gge
d%d&Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3S )5TestMomentsr   r+   r,   r-   gp=
ף?g?߾?gD9?gQI?g}?5^I?gq2۪?g{!3?gr!fa?gk?gY?gSH*:/?g#R/?g>y}zd?gV߯<?gF?ggˠw?gyZf?g=?g!@Vyȧ?g#1?geY(9?gD$?g;?gJX<q0?g#d?g?gA]?g_.?g?g2^9?TF)r"   )r<   c             C   sf   t j| jd}t|dd t j| jd}t|d t j| jd}t|d t j| jd}t|d d S )	Nr   g        r3   r+   g      ?r,   r-   g     @)r   momenttestcaser
   )r   rr   r   r   r   test_moment  s    

zTestMoments.test_momentc             C   s   t j| j}t|dd d S )Ng%?r3   )r   	variationr   r
   )r   rr   r   r   r   test_variation  s    zTestMoments.test_variationc             C   sP   t j| j}t|dd t j| jdd}t|dd t j| j}t|dd d S )	Ng7l*?r3   r   )biasg2۠?g        g7l*ҿg2۠ۿ)r   skewtestmathworksr
   r   )r   rr   r   r   r   test_skewness  s    zTestMoments.test_skewnessc             C   s  t j| jdddd}t|dd t j| jddd}t|dd t j| jdd}t|d tjtjdddddgtjdddddgtdd}t	t j| j
d| x*t| j
D ]\}}tt j|||  qW tjtjdddddgtjdddddgtdd}t	t j| j
ddd| x0t| j
D ]"\}}tt j|dd||  q W tt j| j
dd d f tj| j
dd d f dd d S )Nr   r   )Zfisherr   gO߻S@r3   gx|N@g=
ףp=?g      ?g      @g'@=?g        gt
Q?FT)r"   )r<   g?<?g`@7?)r   r+   r-   )Znulpg      g      g'@=gt
Qg      g      g?<g`@7)r   kurtosisr   r
   r   r=   r   r   boolr   testcase_2d	enumerater   r   )r   rr   Z
correct_2dirowZcorrect_2d_bias_correctedr   r   r   test_kurtosis  s4    
zTestMoments.test_kurtosisc             C   s`  dddddddddddddddg}t j|d}t jddddddg}t j|d}tjtj|dk|}tj|dk|}tj|dk |}tjtj|dk |}ttj|d d	d ttj|dd	d ttj|d d	d ttj|d d	d ttj|d d	d ttj|d d	d ttj|d d	d ttj|dd	dddddggdddddggf ttj|dd	dddddggdddddggf ttj|dd	dgdgdggdgdgdggf ttj|dd	dgdgdggdgdgdggf ttj|dd	ddggddggf ttj|dd	dgdgdggdgdgdggf tj|d d	}	d}
t|	|
dd d S )Nr   r   r+   r,   r-   rV   r.   rW   )r   moder   T)r=   )r,   rV   )r,   r+   )r,   r-   )r,   r-   )r   r,   )r,   r-   )r   r,   )r   r   )r+   r   rD   rD   rD   )r   r   )	r   r   r   r=   Zmasked_wherer	   r   r   r   )r   a1a2a3Za4Zma1Zma2Zma3Zma4Za1_resrt   r   r   r   	test_mode#  s0    "0000$0zTestMoments.test_modec             C   sd   t jd}|d dd d f  d7  < |d d d df  d7  < |j }tj|d  t|| d S )Nr;   r   r   )r;   r;   )r   Zzeroscopyr   r   r	   )r   Zimcpr   r   r   test_mode_modifies_input@  s    
z$TestMoments.test_mode_modifies_inputNg}?5^I)r   r   r    r   r=   ro   r   r   r   r   r   r   r   r   r   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S )TestPercentilec             C   sD   dddddddg| _ dddddddd	g| _d
dddddddg| _d S )Nr,   r-   rV   r3   r.   r+   rX   rW   r   g      @g      @ir   r   i)r   r   r   )r   r   r   r   setup_methodL  s    zTestPercentile.setup_methodc             C   sH   t jdd }ttj|dd ttj|dd ttj|dd d S )	NrX   g      ?r   g        r;   g      @r   g      ?)r   r]   r	   r   scoreatpercentile)r   r&   r   r   r   test_percentileQ  s    zTestPercentile.test_percentilec             C   sN   t jdddgdddgdddgdddgdddgg}ttj|ddddg d S )Nr   r-   r,   r   )r=   r   r	   r   r   )r   r&   r   r   r   test_2DW  s    zTestPercentile.test_2DN)r   r   r    r   r   r   r   r   r   r   r   K  s   r   c               @   s>   e Zd ZdZejddddejgZdd Z	dd	 Z
d
d ZdS )TestVariabilityz[  Comparison numbers are found using R v.1.5.1
         note that length(testcase) = 4
    r   r+   r,   r-   c             C   sX   t j| j}t|d | jj }tt j| jddtj||d   t j| jdd d S )Ng㝎?r   )r   r+   )r   semr   r
   r   r   r   rc   )r   rr   nr   r   r   test_semf  s
    

"zTestVariability.test_semc             C   s:   t j| j| j}ddddg}t||j|jdk dd d S )NgOT\w?g%?Fr   )decimalgOT\wg%ܿ)r   zmapr   r   r   r<   )r   rr   Zdesired_unmaskedvalsr   r   r   	test_zmapn  s
    zTestVariability.test_zmapc             C   s4   t j| j}tjddddtjg}t||dd d S )NgOT\w?g%?r   )r   gOT\wg%ܿ)r   zscorer   r=   ro   r   r   r
   )r   rr   r   r   r   r   test_zscorew  s    zTestVariability.test_zscoreN)r   r   r    __doc__r=   ro   r   r   r   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S )TestMiscc             C   s   dgd dgd  dgd  dgd  dgd  d	gd  dgdgd  dgd
  dgd  d	gd  g}ddg ddg  ddg  ddg  ddg  ddg  dgddg  d
dg  ddg  ddg  g}t tjtj| jd
|d
 d S )NrV   r.   rw   rW   rk   rX   r,   r+   r3   r-   r   g_v	@g1%?g"u?gZӼ?g!u @gq&@g;pΈ$@gTR'p@g9#?gHPx?gQI?)r
   r   r   r   obrientransformr   )r   argsr   r   r   r   test_obrientransform  s    :0:0zTestMisc.test_obrientransformc             C   s   t t dddddddddddgdddddddddddddgdddd	d
ddddt ddt gt d	dddt d	ddddddgg}tj|j}|j\}}}}ttjtj||dd ttjtj||ddd ttjtj||ddd d S )Nr-   r+   r   r   rV   r   r,   rW   r.   r   rk   rw   r   48E?sA?g%䃞? 	?l46<?)r   r   )r   r   )r   r   )	r   r=   ro   r   r
   r   r   r   ks_2samp)r   r&   ZwinterZspringZsummerZfallr   r   r   test_ks_2samp  s     zTestMisc.test_ks_2sampc             C   s.  ddddddddddg
dd	dddddd	ddg
ddd
ddd	dd
d	dg
f}t j| }t|d dd t|d dd ttdddddddddddgdddddddddddddgdddddddddtddtgtddddtdddddddgg}tj|}t j| }t|d dd t|d dd d"}t||d d! d S )#Ng      "@g      #@g      @g      @g       @g      @g      !@g      @g      @g      @g      @r   g:pΈ$@r-   r   g(QGu?r.   r+   r   r   rV   r,   rW   r   rk   rw   r   gr @g-C6?	statisticrm   T)r=   )r   rm   )r   Zfriedmanchisquarer
   r   r=   ro   r   )r   r   r   r&   rt   r   r   r   test_friedmanchisq  s     
 

zTestMisc.test_friedmanchisqN)r   r   r    r   r   r   r   r   r   r   r     s   r   c        	      C   s   t jddd} dt jddd d }|t jt jddd7 }tj| |\}}}}}t|d t|d tj| |}d}t||dd d S )Nr   r;   g?r3   r4   g5E%?g +l$@slope	interceptrvaluerm   stderrT)r=   )r   r   r   rm   r   )r   Zlinspacesinr   
linregressr
   r   )	r&   rr   r   r   Zr_valueZp_valueZsterrrs   rt   r   r   r   test_regress_simple  s    

r  c              C   s   t jdddg\} }}}t| d t|d tjjddddgddddgd}t j|\} }}}t| d t|d ddd	ddddg}dddddddg}t j||d\} }}}t| d t|ddd t|ddd d S )Nr   r   g      ?r;   FT)r<   g      ?r,   g       @r+   r-   r3   r   r   rk         r4   r~   7   N   gQ?gQ@)r   gGz@gUUUUUU?gUUUUUU?)r   Ztheilslopesr
   r   r=   r   )r   r   lowerupperrr   r&   r   r   r   test_theilslopes  s    

 


r	  c              C   s<  dt jd d } ttj| d ttj| ddd dt jd }d| d } ttj| |d ttj| |ddd d
| d d< ttj| |d t jjd t jd}dd|  tjj	dd } tj
|| \}}}}}tj| |\}}t||dd t||dd tj| |dd\}}t||dd t||dd d S )Nr+   r3         ?       @Zseparate)rx   rV   g      @      @i  r-      gffffff@g333333?)sizeg?)r#   )r  r
  )r  r
        )r  r        )r  r        )r  r  gffffff)r   r]   r	   r   Zsiegelslopesrandomseedr   normZrvsr  r   )rr   r&   Z	slope_olsZintercept_ols_r   r   r   r   r   test_siegelslopes  s&    
r  c              C   s0   t jtjddd} t| jtjdddg d S )Nr,   r   g      ?g      ?g      ?)r   Zplotting_positionsr   r]   r   r   r   )posr   r   r   test_plotting_positions  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S )TestNormalitytestsc             C   s   t jdd d }ttj|tj| ttj|tj| ttj|tj| tjtjtjg}tjtjtjg}ddddg}x.t||D ] \}}t	t
|| t	t
|| qW d S )	Nr+   r   r   r,   r-   r   rD   )r   rD   r   r   r+   r,   )r   r   r   r   
normaltestr   skewtestkurtosistestzipr   r   )r   r&   funcsZmfuncsfuncZmfuncr   r   r   test_vs_nonmasked  s    


z$TestNormalitytests.test_vs_nonmaskedc             C   sd   t jd	d d }ttj|d dtj| ttj|d dtj| ttj|d dtj| d S )
Nr+   r   r   r,   r-   )r   r   rD   )r   rD   r   r   r+   r,   )r   r   r   r   r  r  r  )r   r&   r   r   r   test_axis_None  s
    z!TestNormalitytests.test_axis_Nonec             C   s   t jdd d }t jjt jt j|df t jddg|j df d	}ttj|t	j| ttj
|t	j
| ttj|t	j| d S )Nr+   r   r   r,   r-   r3   TF)r<   r   rD   )r   rD   r   r   r+   r,   )r   r   r=   Zr_infr  r   r   r  r   r  r  )r   r&   xmr   r   r   test_maskedarray_input  s    z)TestNormalitytests.test_maskedarray_inputc             C   s   t jdd d }t j|gd j}xXtjtjtjgD ]D}||}||}t|d |d gd  t|d |d gd  q6W d S )	Nr+   r   r   r,   r-   r   rD   )r   rD   r   r   r+   r,   )	r   r   Zvstackr   r   r  r  r  r   )r   r&   Zx_2dr  Zres_1dZres_2dr   r   r   test_nd_input  s    z TestNormalitytests.test_nd_inputc             C   s2   t jdd d }tj|}d}t||dd	 d S )Nr+   r   r   r,   r-   r   rm   T)r=   r   rD   )r   rD   r   r   r+   r,   )r   rm   )r   r   r   r  r   )r   r&   rs   rt   r   r   r   !test_normaltest_result_attributes%  s    
z4TestNormalitytests.test_normaltest_result_attributesc             C   s2   t jdd d }tj|}d}t||dd	 d S )Nr+   r   r   r,   r-   r   rm   T)r=   r   rD   )r   rD   r   r   r+   r,   )r   rm   )r   r   r   r  r   )r   r&   rs   rt   r   r   r   #test_kurtosistest_result_attributes+  s    
z6TestNormalitytests.test_kurtosistest_result_attributesc          
   C   sL   ddddddddddg
}t jdd	 t|D }ttj|d
 dk d d S )N   r   :   rW   )   r      c             S   s   g | ]\}}t j||qS r   )r   full).0r   cr   r   r   
<listcomp>5  s    z;TestNormalitytests.regression_test_9033.<locals>.<listcomp>r   g{Gz?T)r   Zhstackr   r	   r   r  )r   countsr&   r   r   r   regression_test_90331  s    z'TestNormalitytests.regression_test_9033N)
r   r   r    r   r!  r$  r%  r&  r'  r1  r   r   r   r   r    s   		r  c               @   s   e Zd Zdd ZdS )TestFOnewayc             C   sJ   t jddgt jd}t jddgt jd}tj||}d
}t||dd	 d S )Ni  i  )r"   i  i  r   rm   T)r=   )r   rm   )r   r   Zuint16r   Zf_onewayr   )r   r1   r   rs   rt   r   r   r   test_result_attributes:  s
    z"TestFOneway.test_result_attributesN)r   r   r    r3  r   r   r   r   r2  9  s   r2  c               @   s   e Zd Zdd ZdS )TestMannwhitneyuc             C   sZ  t jddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddg}t jddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddg}tj||}d}t||dd d S )	Ng      ?g       @g      @r   rm   T)r=   )r   rm   )r   r   r   Zmannwhitneyur   )r   r&   rr   rs   rt   r   r   r   r3  C  sB      z'TestMannwhitneyu.test_result_attributesN)r   r   r    r3  r   r   r   r   r4  B  s   r4  c               @   s   e Zd Zdd ZdS )TestKruskalc             C   s>   dddddg}dddd	d
g}t j||}d}t||dd d S )Nr   r,   rV   rW   rk   r+   r-   r.   rX   r3   r   rm   T)r=   )r   rm   )r   Zkruskalr   )r   r&   rr   rs   rt   r   r   r   r3  j  s
    z"TestKruskal.test_result_attributesN)r   r   r    r3  r   r   r   r   r5  i  s   r5  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S )TestTtest_relc             C   sv  t jjd t jjddddddg }tj|d d df |d d df }tj|d d df |d d df }t|| tj|d d df |d d df d d}tj|d d df |d d df d d}t|| tj|d d d df |d d dd f dd}tj|d d d df |d d dd f dd}t|| tj|d d d df |d d dd f }t|| d S )Ni r4   r-   r   r   r+   )r   )r   r  r  randnr   	ttest_relr   r   )r   outcomeres1res2res3r   r   r   r   u  s    $$
((
00
,zTestTtest_rel.test_vs_nonmaskedc             C   s   t jjd tjt jjdddddgdddggd}t }|jtd xn|d d df |d d df ft j	t j	gdd	gfgD ]6}t
j| \}}t|t j	t j	f t|t j	t j	f q~W W d Q R X d S )
Ni r,   r+   r   r   )r<   z%invalid value encountered in absoluteg      ?g       @)r   r  r  r=   masked_arrayr7  r   filterra   r   r   r8  r   )r   r9  suppairtrh   r   r   r   test_fully_masked  s    :zTestTtest_rel.test_fully_maskedc             C   s`   t jjd t jjddddddg }tj|d d df |d d df }d}t||d	d
 d S )Ni r4   r-   r   r   r+   r   rm   T)r=   )r   rm   )r   r  r  r7  r   r8  r   )r   r9  rs   rt   r   r   r   r3    s
    $z$TestTtest_rel.test_result_attributesc             C   sz   t ttjtjdtjd tjd}t ttj|jddd|jddddd t ttj|jddd|jddddd d S )	Nr3   rw   r/   r+   r,   r-   r   )r   )r   r   r   r8  r   r]   r   )r   r&   r   r   r   test_invalid_input_size  s    
 z%TestTtest_rel.test_invalid_input_sizec             C   s$   t jg g }ttjtj| d S )N)r   r8  r   r   rA   isnan)r   r:  r   r   r   
test_empty  s    zTestTtest_rel.test_emptyc             C   s   t jdddgdddg\}}ttj||ftjdf t ^}|jtd t jdddgdddg\}}t	|tj
tjtjg t	|tj
tjtjg W d Q R X d S )Nr   r   z%invalid value encountered in absolute)r   	ttest_indr	   r   absr"  r   r>  ra   r   r   r   )r   rA  rh   r?  r   r   r   test_zero_division  s    z TestTtest_rel.test_zero_divisionN)	r   r   r    r   rB  r3  rC  rE  rH  r   r   r   r   r6  t  s   	r6  c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestTtest_indc             C   s*  t jjd t jjddddddg }tj|d d df |d d df }tj|d d df |d d df }t|| tj|d d df |d d df d d}tj|d d df |d d df d d}t|| tj|d d d df |d d dd f dd}tj|d d d df |d d dd f dd}t|| tj|d d d df |d d dd f }t|| tj|d d df |d d df dd	}tj|d d df |d d df dd	}t|| tj|d d df |d d df d
d	}tj|d d df |d d df d
d	}t|| d S )Ni r4   r-   r   r   r+   )r   T)	equal_varF)r   r  r  r7  r   rF  r   r   )r   r9  r:  r;  r<  Zres4Zres5r   r   r   r     s&    $$
((
00
,
((
((zTestTtest_ind.test_vs_nonmaskedc             C   s   t jjd tjt jjdddddgdddggd}t }|jtd xn|d d df |d d df ft j	t j	gdd	gfgD ]6}t
j| \}}t|t j	t j	f t|t j	t j	f q~W W d Q R X d S )
Ni r,   r+   r   r   )r<   z%invalid value encountered in absoluteg      ?g       @)r   r  r  r=   r=  r7  r   r>  ra   r   r   rF  r   )r   r9  r?  r@  rA  rh   r   r   r   rB    s    (:zTestTtest_ind.test_fully_maskedc             C   s`   t jjd t jjddddddg }tj|d d df |d d df }d}t||d	d
 d S )Ni r4   r-   r   r   r+   r   rm   T)r=   )r   rm   )r   r  r  r7  r   rF  r   )r   r9  rs   rt   r   r   r   r3    s
    $z$TestTtest_ind.test_result_attributesc             C   s$   t jg g }ttjtj| d S )N)r   rF  r   r   rA   rD  )r   r:  r   r   r   rE    s    zTestTtest_ind.test_emptyc             C   s   t jdddgdddg\}}ttj||ftjdf t R}|jtd t jdddgdddg\}}t	|tj
tj
f t	|tj
tj
f W d Q R X t jdddgdddgdd\}}ttj||ftjdf t	t jdddgdddgddtj
tj
f d S )Nr   r   z%invalid value encountered in absoluteF)rJ  )r   rF  r	   r   rG  r"  r   r>  ra   r   r   )r   rA  rh   r?  r   r   r   rH    s     z TestTtest_ind.test_zero_divisionN)r   r   r    r   rB  r3  rE  rH  r   r   r   r   rI    s
   
rI  c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestTtest_1sampc             C   s^  t jjd t jjddddddg }tj|d d df d}tj|d d df d}t|| tj|d d df |d d df d d}tj|d d df |d d df d d}t|| tj|d d d df |d d dd f dd}tj|d d d df |d d dd f dd}t|| tj|d d d df |d d dd f }t|| d S )Ni r4   r-   r   r   r+   )r   )r   r  r  r7  r   ttest_1sampr   r   )r   r9  r:  r;  r<  r   r   r   r     s    
((
00
,z!TestTtest_1samp.test_vs_nonmaskedc             C   s   t jjd tjt jjddddgd}t jt jf}t V}|jt	d xBt jt jfdf|dfgD ]&}t
j| \}}t|| t|| qbW W d Q R X d S )Ni r,   r   )r<   z%invalid value encountered in absoluteg        )r   r  r  r=   r=  r7  r   r   r>  ra   r   rL  r   )r   r9  r   r?  r@  rA  rh   r   r   r   rB    s    
z!TestTtest_1samp.test_fully_maskedc             C   sT   t jjd t jjddddddg }tj|d d df d}d}t||d	d
 d S )Ni r4   r-   r   r   r+   r   rm   T)r=   )r   rm   )r   r  r  r7  r   rL  r   )r   r9  rs   rt   r   r   r   r3    s
    z&TestTtest_1samp.test_result_attributesc             C   s$   t jg d}ttjtj| d S )Nr   )r   rL  r   r   rA   rD  )r   r:  r   r   r   rE  "  s    zTestTtest_1samp.test_emptyc             C   s   t jdddgd\}}ttj||ftjdf t H}|jtd t jdddgd\}}t	tj
| t|tjtjf W d Q R X d S )Nr   r   z%invalid value encountered in absolute)r   rL  r	   r   rG  r"  r   r>  ra   r   rD  r   r   )r   rA  rh   r?  r   r   r   rH  &  s    z"TestTtest_1samp.test_zero_divisionN)r   r   r    r   rB  r3  rE  rH  r   r   r   r   rK    s
   rK  c               @   s@  e Zd 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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d0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Z d<d= Z!d>d? Z"d@dA Z#dBdC Z$dDdE Z%dFdG Z&dHdI Z'dJdK Z(dLdM Z)dNS )OTestCompareWithStatsa  
    Class to compare mstats results with stats results.

    It is in general assumed that scipy.stats is at a more mature stage than
    stats.mstats.  If a routine in mstats results in similar results like in
    scipy.stats, this is considered also as a proper validation of scipy.mstats
    routine.

    Different sample sizes are used for testing, as some problems between stats
    and mstats are dependent on sample size.

    Author: Alexander Loew

    NOTE that some tests fail. This might be caused by
    a) actual differences or bugs between stats and mstats
    b) numerical inaccuracies
    c) different definitions of routine interfaces

    These failures need to be checked. Current workaround is to have disabled these tests,
    but issuing reports on scipy-dev

    c             C   s   ddddgS )z9 Returns list of sample sizes to be used for comparison. i  r;   r3   rV   r   )r   r   r   r   get_nH  s    zTestCompareWithStats.get_nc             C   s   t jjd t jj|}|t jj| }t jt|d d}t jt|d d}||dt|< ||dt|< |dk}t jj||d}t jj||d}||||fS )Ni rV   g 7yACr   g s?C)r<   )r   r  r  r7  r,  lenr=   r   )r   r   r&   rr   r#  ymr<   r   r   r   generate_xy_sampleL  s    z'TestCompareWithStats.generate_xy_samplec       
      C   s   t j||ft j}t j||ft j}t j|d |ft j}t j|d |ft j}x:t|D ].}| j|\|d d |f< |d d |f< }}	qZW |d| |d|d d f< |d| |d|d d f< t jj|t j|d}t jj|t j|d}||||fS )NrV   r   )r<   )r   r,  r   rq   rQ  r=   r   rD  )
r   r   nxr&   rr   r#  rP  r   ZdxZdyr   r   r   generate_xy_sample2D[  s    .z)TestCompareWithStats.generate_xy_sample2Dc             C   sX   xR| j  D ]F}| j|\}}}}tj||}tjj||}ttj|tj| q
W d S )N)rN  rQ  r   r  r   r   r   rS   )r   r   r&   rr   r#  rP  r:  r;  r   r   r   test_linregressj  s
    z$TestCompareWithStats.test_linregressc       
      C   sf   x`| j  D ]T}| j|\}}}}tj||\}}tjj||\}}	t||dd t||	dd q
W d S )Nr   )r   )rN  rQ  r   rb   r   r
   )
r   r   r&   rr   r#  rP  rg   rh   rmpmr   r   r   rj   q  s    z"TestCompareWithStats.test_pearsonrc       
      C   sb   x\| j  D ]P}| j|\}}}}tj||\}}tjj||\}}	t||d t||	d q
W d S )Nr   )rN  rQ  r   rn   r   r
   )
r   r   r&   rr   r#  rP  rg   rh   rU  rV  r   r   r   ru   z  s    z#TestCompareWithStats.test_spearmanrc             C   s    t jd}tttj||d d S )Nr.   F)r   r]   r   r   r   rn   )r   r&   r   r   r   !test_spearmanr_backcompat_useties  s    
z6TestCompareWithStats.test_spearmanr_backcompat_usetiesc             C   s   xz| j  D ]n}| j|\}}}}tjt|}tjjt|}t||dd tjt|}tjjt|}t||dd q
W d S )NgvIh%<=)r#   )rN  rQ  r   r$   rG  r   r   )r   r   r&   rr   r#  rP  rg   rU  r   r   r   
test_gmean  s    zTestCompareWithStats.test_gmeanc             C   s|   xv| j  D ]j}| j|\}}}}tjt|}tjjt|}t||d tjt|}tjjt|}t||d q
W d S )Nr3   )rN  rQ  r   r(   rG  r   r
   )r   r   r&   rr   r#  rP  rg   rU  r   r   r   
test_hmean  s    zTestCompareWithStats.test_hmeanc             C   sl   xf| j  D ]Z}| j|\}}}}tj|}tjj|}t||d tj|}tjj|}t||d q
W d S )Nr3   )rN  rQ  r   r   r   r
   )r   r   r&   rr   r#  rP  rg   rU  r   r   r   	test_skew  s    

zTestCompareWithStats.test_skewc             C   sl   xf| j  D ]Z}| j|\}}}}tj|}tjj|}t||d tj|}tjj|}t||d q
W d S )Nr3   )rN  rQ  r   r   r   r
   )r   r   r&   rr   r#  rP  rg   rU  r   r   r   r     s    

z TestCompareWithStats.test_momentc             C   s   x| j  D ]}| j|\}}}}||j  |j  }||j  |j  }ttj||dd ttj||dd ttj|tjj|dt| dd ttj|tjj|dt| dd q
W d S )Ng|=)r#   r   )	rN  rQ  meanZstdr   r   r   r   rO  )r   r   r&   rr   r#  rP  ZzxZzyr   r   r   r     s      z TestCompareWithStats.test_zscorec             C   sl   xf| j  D ]Z}| j|\}}}}tj|}tjj|}t||d tj|}tjj|}t||d q
W d S )Nr3   )rN  rQ  r   r   r   r
   )r   r   r&   rr   r#  rP  rg   rU  r   r   r   r     s    

z"TestCompareWithStats.test_kurtosisc       
      C   s   t jdjdd}t jj|}tj|dd}tjj|dd}t|ddd t|ddd x| j	 D ]}| j
|\}}}}	ttjj|d d	d
tj|d d	d
dd ttjj|	d d	d
tj|d d	d
dd ttjj|d dd
tj|d dd
dd ttjj|	d dd
tj|d dd
dd qbW d S )Nr4   rV   r-   r   )r   g'e@gh㈵>)atolr   )r   r      )r   )r   r]   r   r=   r   r   r   r   r   rN  rQ  r
   )
r   r1   amrg   rU  r   r&   rr   r#  rP  r   r   r   r     s     zTestCompareWithStats.test_semc       	      C   sz   xt| j  D ]h}| j|\}}}}tj|dd}tjj|dd}x2tdD ]&}ttj|| tj|| dd qHW q
W d S )Nr   )r   r.   r   )r   )	rN  rQ  r   describer   rq   r
   r   rS   )	r   r   r&   rr   r#  rP  rg   rU  iir   r   r   test_describe  s    z"TestCompareWithStats.test_describec             C   s&   t jtjd}d
}t||dd	 d S )NrV   nobsminmaxr[  varianceskewnessr   T)r=   )rb  rc  r[  rd  re  r   )r   r_  r   r]   r   )r   actualrt   r   r   r   test_describe_result_attributes  s     z4TestCompareWithStats.test_describe_result_attributesc             C   sH   xB| j  D ]6}| j|\}}}}tj|}tjj|}t|| q
W d S )N)rN  rQ  r   rY   r   r   )r   r   r&   rr   r#  rP  rg   rU  r   r   r   test_rankdata  s
    
z"TestCompareWithStats.test_rankdatac             C   s\   xV| j  D ]J}| j|\}}}}ttj|tjj|d ttj|tjj|d q
W d S )Nr   )rN  rQ  r
   r   Ztmeanr   )r   r   r&   rr   r#  rP  r   r   r   
test_tmean   s    zTestCompareWithStats.test_tmeanc             C   s   x| j  D ]}| j|\}}}}ttj|dtjj|dd ttj|dtjj|dd ttj|ddtjj|ddd ttj|ddtjj|ddd q
W d S )Ng       @r3   g      @)Z
upperlimit)rN  rQ  r
   r   Ztmaxr   )r   r   r&   rr   r#  rP  r   r   r   	test_tmax  s    zTestCompareWithStats.test_tmaxc             C   s   x| j  D ]}| j|\}}}}ttj|tjj| ttj|tjj| ttj|ddtjj|ddd ttj|ddtjj|ddd q
W d S )Ng      ?)Z
lowerlimitr3   g      g      g      g      )rN  rQ  r	   r   Ztminr   r
   )r   r   r&   rr   r#  rP  r   r   r   	test_tmin  s    zTestCompareWithStats.test_tminc             C   s\   xV| j  D ]J}| j|\}}}}tj||}tjj||}t||dt| dd q
W d S )Nr   g|=)r\  )rN  rQ  r   r   r   r   rO  )r   r   r&   rr   r#  rP  r   Zzmr   r   r   r     s
    zTestCompareWithStats.test_zmapc             C   s`   xZ| j  D ]N}| j|\}}}}ttj|tjj|dd ttj|tjj|dd q
W d S )Nr   )r   )rN  rQ  r
   r   r   r   )r   r   r&   rr   r#  rP  r   r   r   r   %  s    z#TestCompareWithStats.test_variationc             C   s`   xZ| j  D ]N}| j|\}}}}ttj|tjj|dd ttj|tjj|dd q
W d S )Nr   )r   )rN  rQ  r
   r   tvarr   )r   r   r&   rr   r#  rP  r   r   r   	test_tvar-  s    zTestCompareWithStats.test_tvarc             C   sB   t jd}tj|d}tjj|d}tt j||j|j   d S )Nr4   g?)	r   r]   r   r   r   r   sortr   r<   )r   r1   r   Zbmr   r   r   test_trimboth5  s    
z"TestCompareWithStats.test_trimbothc             C   s   x~| j  D ]r}| j|\}}}}ttj|tjj|dd ttj|tjj|dd ttj|ddtjj|dddd q
W d S )	Nr   )r          @)r          )rq  rp         )rr  rp  )rN  rQ  r
   r   Ztsemr   )r   r   r&   rr   r#  rP  r   r   r   	test_tsem;  s    zTestCompareWithStats.test_tsemc             C   s\   xV| j  D ]J}|dkr
| j|\}}}}tj|}tjj|}t|d |d dd q
W d S )NrX   r   gV瞯<)r#   )rN  rQ  r   r  r   r   )r   r   r&   rr   r#  rP  rg   rU  r   r   r   test_skewtestF  s    
z"TestCompareWithStats.test_skewtestc             C   s2   t jdd d }tj|}d}t||dd	 d S )Nr+   r   r   r,   r-   r   rm   T)r=   r   rD   )r   rD   r   r   r+   r,   )r   rm   )r   r   r   r  r   )r   r&   rs   rt   r   r   r   test_skewtest_result_attributesT  s    
z4TestCompareWithStats.test_skewtest_result_attributesc             C   s@   t jjdd }tj|}tjj|}tt j|t j| d S )Nr4   r+   g      4@)r4   r+   )r   r  r   r  r   r   rS   )r   r&   rg   rU  r   r   r   test_skewtest_2D_notmaskedZ  s    
z/TestCompareWithStats.test_skewtest_2D_notmaskedc       	      C   s   d}xv| j  D ]j}|dkr| j||\}}}}tj|}tjj|}t|d d |d d  t|d d |d d  qW d S )Nr+   rX   r   r   )rN  rS  r   r  r   r	   )	r   rR  r   r&   rr   r#  rP  rg   rU  r   r   r   test_skewtest_2D_WithMaska  s    
z.TestCompareWithStats.test_skewtest_2D_WithMaskc       	      C   s   t jdd| t j}|jtd xV| j D ]J}|dkr,| j|\}}}}tj|}tj	j|}t
t j|t j| q,W W d Q R X W d Q R X d S )Nr   )Zoverz!kurtosistest only valid for n>=20rX   )r   rB   r   r>  UserWarningrN  rQ  r   r  r   r   rS   )	r   r?  r   r&   rr   r#  rP  rg   rU  r   r   r   test_normaltestl  s    
z$TestCompareWithStats.test_normaltestc             C   s   t jdddddddddddgjd}t jdddddddddddddddgjd}|dk}t jj||d}|j |j  }}tj|}tjj|}t	|| t	|| t	|| tjjg \}	}
t	|
t jd	t j
d
 d S )Nr   r+   r,   r-   r   rV   g      @)r<   r   )r"   )r   rS   rH   r=   r   r   r   Zfind_repeatsr   r	   Zintp)r   r&   tmpr<   r#  Zx_origZxm_origrg   rU  r  r0  r   r   r   test_find_repeatsv  s    &.



z&TestCompareWithStats.test_find_repeatsc             C   sn   xh| j  D ]\}| j|\}}}}tj||}tjj||}t|d |d dd t|d |d dd q
W d S )Nr   r3   )r   r   rW   )rN  rQ  r   r   r   r
   )r   r   r&   rr   r#  rP  rg   rU  r   r   r   r     s    z$TestCompareWithStats.test_kendalltauc             C   sV   xP| j  D ]D}| j|\}}}}tj|}tjj|}t|j|dt|  q
W d S )Nr   )rN  rQ  r   r   r   r
   r   rO  )r   r   r&   rr   r#  rP  rg   rU  r   r   r   r     s
    
z)TestCompareWithStats.test_obrientransformc             C   s   xd	D ]}t  }xd
D ]}x| j D ]}| j|\}}}}tj|tjj||d}	tjj|tjj||d}
tt	j
|	t	j
|
 tj|tjj||d}tt	j
|	t	j
| q&W qW W dQ R X qW dS )zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.autoexactasymplessgreater	two-sided)alternativer   N)r|  r}  r~  )r  r  r  )r   rN  rQ  r   Zks_1sampr  Zcdfr   r	   r   rS   )r   r   r?  r  r   r&   rr   r#  rP  r:  r;  r<  r   r   r   test_ks_1samp  s    

z"TestCompareWithStats.test_ks_1sampc             C   s   xd
D ]}t  }xdD ]}x| j D ]z}| j|\}}}}tj|d||d}	tjj|d||d}
ttj|	tj|
 tj|d||d}ttj|	tj| q&W qW W d	Q R X qW d	S )zKChecks that 1-sample mstats.kstest and stats.kstest agree on masked arrays.r|  r}  r~  r  r  	two-sidedr  )r  r   N)r|  r}  r~  )r  r  r  )	r   rN  rQ  r   kstestr   r	   r   rS   )r   r   r?  r  r   r&   rr   r#  rP  r:  r;  r<  r   r   r   test_kstest_1samp  s    

z&TestCompareWithStats.test_kstest_1sampc             C   s   xd
D ]}t  }|dkr&|jtd xdD ]}x| j D ]z}| j|\}}}}tj||||d}	tjj||||d}
tt	j
|	t	j
|
 tj||||d}tt	j
|	t	j
| q:W q,W W d	Q R X qW d	S )zVChecks that mstats.ks_2samp and stats.ks_2samp agree on masked arrays.
        gh-8431r|  r}  r~  zBks_2samp: Exact calculation unsuccessful. Switching to mode=asymp.r  r  	two-sided)r  r   N)r|  r}  r~  )r|  r}  )r  r  r  )r   r>  ra   rN  rQ  r   r   r   r	   r   rS   )r   r   r?  r  r   r&   rr   r#  rP  r:  r;  r<  r   r   r   r     s    

z"TestCompareWithStats.test_ks_2sampc             C   s   xd
D ]}t  }|dkr&|jtd xdD ]}x| j D ]z}| j|\}}}}tj||||d}	tjj||||d}
tt	j
|	t	j
|
 tj||||d}tt	j
|	t	j
| q:W q,W W d	Q R X qW d	S )zKChecks that 2-sample mstats.kstest and stats.kstest agree on masked arrays.r|  r}  r~  zBks_2samp: Exact calculation unsuccessful. Switching to mode=asymp.r  r  	two-sided)r  r   N)r|  r}  r~  )r|  r}  )r  r  r  )r   r>  ra   rN  rQ  r   r  r   r	   r   rS   )r   r   r?  r  r   r&   rr   r#  rP  r:  r;  r<  r   r   r   test_kstest_2samp  s    

z&TestCompareWithStats.test_kstest_2sampc             C   sX   t jddgddg}tt|t j j t j j|j|j}tt|t j j t|| d S )Nr   r+   r,   r-   )	r   r  r   
isinstanceZKstestResultZKs_2sampResultr   rm   r	   )r   r   Zresult2r   r   r   test_nametuples_agree  s
    z*TestCompareWithStats.test_nametuples_agreeN)*r   r   r    r   rN  rQ  rS  rT  rj   ru   rW  rX  rY  rZ  r   r   r   r   ra  rg  rh  ri  rj  rk  r   r   rm  ro  rs  rt  ru  rv  rw  ry  r{  r   r   r  r  r   r  r  r   r   r   r   rM  1  sN   	

rM  c               @   s   e Zd ZejjdddddejdddddddddejgZejjddddejdddddddg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 )TestBrunnerMunzelr   r+   r-   r,   rV   r   c       	      C   s   t j| j| jdd\}}t j| j| jdd\}}t j| j| jdd\}}t j| j| jdd\}}t||| jd t||| jd t||k t|d| jd t|d| jd t|d| jd t|d	| jd t|d| jd t|d| jd d S )
Nr  )r  r  )r   g|	&	@gҏGg?g@-pL?g|	&	g|	&	)r   brunnermunzelXYr
   significantr   )	r   u1p1u2p2u3p3Zu4Zp4r   r   r   test_brunnermunzel_one_sided  s&    




z.TestBrunnerMunzel.test_brunnermunzel_one_sidedc             C   st   t j| j| jdd\}}t j| j| jdd\}}t||| jd t|d| jd t|d| jd t|d| jd d S )Nz	two-sided)r  )r   g|	&	@g ҏGw?g|	&	)r   r  r  r  r
   r  )r   r  r  r  r  r   r   r   test_brunnermunzel_two_sided  s    

z.TestBrunnerMunzel.test_brunnermunzel_two_sidedc             C   sl   t j| j| j\}}t j| j| j\}}t||| jd t|d| jd t|d| jd t|d| jd d S )N)r   g|	&	@g ҏGw?g|	&	)r   r  r  r  r
   r  )r   r  r  r  r  r   r   r   test_brunnermunzel_default  s    

z,TestBrunnerMunzel.test_brunnermunzel_defaultc             C   s0   d}d}t |dk tttj| j| j|| d S )Nr\   rA  	two-sidedr  r  )r  r  r  )r   r   r   r   r  r  r  )r   r  distributionr   r   r   $test_brunnermunzel_alternative_error  s    z6TestBrunnerMunzel.test_brunnermunzel_alternative_errorc             C   st   t j| j| jdd\}}t j| j| jdd\}}t||| jd t|d| jd t|d| jd t|d| jd d S )Nnormal)r  )r   g|	&	@g "H[?g|	&	)r   r  r  r  r
   r  )r   r  r  r  r  r   r   r   $test_brunnermunzel_distribution_norm  s    

z6TestBrunnerMunzel.test_brunnermunzel_distribution_normc             C   s0   d}d}t |dk tttj| j| j|| d S )Nz	two-sidedr\   rA  r  )rA  r  )r   r   r   r   r  r  r  )r   r  r  r   r   r   %test_brunnermunzel_distribution_error)  s    z7TestBrunnerMunzel.test_brunnermunzel_distribution_errorc             C   s   t j| jg \}}t jg | j\}}t jg g \}}ttj| ttj| ttj| ttj| ttj| ttj| d S )N)r   r  r  r  r   r   rD  )r   r  r  r  r  r  r  r   r   r   test_brunnermunzel_empty_imput4  s    z0TestBrunnerMunzel.test_brunnermunzel_empty_imputN)r   r   r    r   r=   Zmasked_invalidr   r  r  r  r  r  r  r  r  r  r  r   r   r   r   r    s   &r  )NNr!   )NNr!   )7r   r^   r   Znumpyr   r   Znumpy.mar=   r   r   Zscipy.stats.mstatsr   r   ZscipyZcommon_testsr   rN   r   r   Znumpy.ma.testutilsr	   r
   r   r   r   r   r   Znumpy.testingr   objectr   r'   r)   r*   rR   rU   r[   r   r   r   r   r   r  r	  r  r  r  r2  r4  r5  r6  rI  rK  rM  r  r   r   r   r   <module>   sT   
$

;# Ac| 0@	'AD8   -