
    ge:L                    ,   d Z ddlZddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddl
mc m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 ddlmZ  G d d          ZdBdZ dBdZ! G d d          Z" G d d          Z# G d d          Z$ G d d          Z% G d d          Z& G d d          Z' G d d          Z( G d d           Z) G d! d"          Z* G d# d$          Z+d% Z,d& Z-d' Z.d( Z/d) Z0d* Z1d+ Z2d, Z3d- Z4 G d. d/          Z5 G d0 d1          Z6 G d2 d3          Z7 G d4 d5          Z8 G d6 d7          Z9 G d8 d9          Z: G d: d;          Z; G d< d=          Z< G d> d?          Z= G d@ dA          Z>dS )Cz?
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_warnings)_mstats_basicc                       e Zd Zd ZdS )TestMquantilesc                     t          j        g dg dg dg dg dg dg dg dg d	g d
g dg          }g dg dg dg}t          j        |dd          }t	          ||           d S )N)      @      @      ?)g     G@      .@       @)g     H@      B@      @)r        C@      @)      E@      D@     8)     D@r"   r!   )r   r!   r!   )r   r!   r!   )g     E@r!   r!   )r    r!   r!   )r   r!   r!   )g3333333@g333333-@g333333?)r    g     B@      @)gffffffE@gfffffD@gffffff@r   )r   2   )axislimit)nparraymstats
mquantilesr   )selfdatadesiredquantss       Clib/python3.11/site-packages/scipy/stats/tests/test_mstats_basic.pytest_mquantiles_limit_keywordz,TestMquantiles.test_mquantiles_limit_keyword   s    x'''******+++,,,,,,,,,,,,
. 
/ 
/ &%%$$$&&&( "4aw???FG,,,,,    N)__name__
__module____qualname__r0    r1   r/   r   r      s#        - - - - -r1   r   Hz>c                     t          j        | ||          }t          |||           t          |j        |           d S N)r%   dtypertol)r)   gmeanr   r
   r9   
array_liker-   r%   r9   r;   xs         r/   check_equal_gmeanr@   .   sE    Zd%888AAwT****%     r1   c                     t          j        | ||          }t          |||           t          |j        |           d S r8   )r   hmeanr   r
   r9   r=   s         r/   check_equal_hmeanrC   5   sE    JT777AAwT****%     r1   c                       e Zd Zd Zd Zd Zd Zd Zej	        
                     eed           d          d	             Zd
 ZdS )TestGeoMeanc                 \    g d}t          j        dd          }t          ||d           d S )Nr                     ?+=r:   )r'   powerr@   r+   ar-   s      r/   test_1dzTestGeoMean.test_1d<   s7    LL(7E**!W5111111r1   c                     t          j        g d          }d}t          ||           t          j        g dg d          }t          j        dd          }t          ||d	           d S )
N

         (   r$   <   F   P   Z   d   gsŤF@rG   r   r   r   r   mask   UUUUUU?rM   r:   )mar(   r@   r'   rN   rO   s      r/   
test_1d_mazTestGeoMean.test_1d_maA   su    H>>>??!W%%%H\\\555(5%((!W5111111r1   c                 t    t           j                            g dg d          }d}t          ||           d S )NrS   
r   r   r   r   r   r   r   r   r   r   r^   gdq_D@r'   rb   r(   r@   rO   s      r/   test_1d_ma_valuezTestGeoMean.test_1d_ma_valueK   sB    EKKAAAHfHfHfKgg!W%%%%%r1   c                 l    t           j                            g d          }d}t          ||           d S )N)
rT   rU   rV   rW   r$   rX   rY   rZ   r[   r   r   rf   rO   s      r/   test_1d_ma0zTestGeoMean.test_1d_ma0Q   s7    EKK???@@!W%%%%%r1   c                     t           j                            g d          }t           j        }t          j        d          5  t          ||           d d d            d S # 1 swxY w Y   d S )N)
rT   rU   rV   rW   r$   rX   rY   rZ   r[   ignore)invalid)r'   rb   r(   r   errstater@   rO   s      r/   test_1d_ma_infzTestGeoMean.test_1d_ma_infW   s    EKK@@@AA&[*** 	* 	*a)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A!!A%(A%float96cannot find float96 so skippingreasonc                     t          j        g dg d          }t          j        dd                              t          j                  }t          ||t          j        d           d S )NrG   r]   r^   r`   ra   rM   )r9   r;   )rb   r(   r'   rN   astyperp   r@   r+   rP   
desired_dts      r/   test_1d_float96zTestGeoMean.test_1d_float96^   s^    H\\\555XeU++222:>>
!ZrzFFFFFFr1   c                    t          j        g dg dg dgg dg dg dg          }t          j        g d          }t          ||dd           t          j        t          j        d	d
          t          j        dd          t          j        dd          g          }t          ||dd           g dg dg dg}d}t          t          j                             |          |           d S )NrG   r   r   r   r   r   r   r   r   r   r   r   r   r^   r   rM   r%   r;   rK   rL   r`         ?rJ   rk   rT   rU   rV   rW   r$   rX   rY   rZ   r[   r\   n   x   g/,$qJ@)rb   r(   r'   r@   rN   rO   s      r/   
test_2d_mazTestGeoMean.test_2d_mad   s   HlllLLL,,,?'<<|||DF F F(<<<((!W159999(BHWe44HS%00HS%002 3 3 	!W2E:::: ///1D1D1DE"%++a..'22222r1   N)r2   r3   r4   rQ   rc   rg   ri   ro   pytestmarkskipifhasattrr'   rx   r   r5   r1   r/   rE   rE   ;   s        2 2 2
2 2 2& & && & &* * * [GGB	222;\]]G G ^]G
3 3 3 3 3r1   rE   c                   z    e Zd Zd Zej                             eed           d          d             Z	d Z
dS )TestHarMeanc                 6   t          j        g dg d          }d}t          ||d           t          j                             g d          }d}t          ||           t          j                             g dg d	          }d
}t          ||           d S )NrG   r]   r^   /袋.?rM   r:   rS   g=b#A@re   gO?@rb   r(   rC   r'   rO   s      r/   rQ   zTestHarMean.test_1dv   s    H\\\555+!W51111EKKAAABB!W%%%EKKAAA;;;  = =!W%%%%%r1   rp   rq   rr   c                     t          j        g dg d          }t          j        dt          j                  }t          ||t          j                   d S )NrG   r]   r^   r   r9   )rb   r(   r'   asarrayrp   rC   rv   s      r/   rx   zTestHarMean.test_1d_float96   sR    H\\\555Z 9LLL
!Zrz::::::r1   c                 J   t          j        g dg dg dgg dg dg dg          }t          j        g d          }t          ||dd           g d	}t          ||d
d           g dg dg dg}d}t          t          j                             |          |           d S )NrG   rz   r{   r|   r^   r   rM   r}   )gQ?g433333@g?rk   r   r   r   gmWUC@r   rO   s      r/   test_2dzTestHarMean.test_2d   s    HlllLLL,,,?'<<|||DF F F(<<<((!W159999LLL!W2E::::///1D1D1DE"%++a..'22222r1   N)r2   r3   r4   rQ   r   r   r   r   r'   rx   r   r5   r1   r/   r   r   u   st        & & & [GGB	222;\]]; ; ^];
3 3 3 3 3r1   r   c                       e Zd Zd ZdS )TestRankingc                    t          j        g d          }t          t          j        |          g d           t
          |ddg<   t          t          j        |          g d           t          t          j        |d          g d           t          j        g d	          }t          t          j        |          g d
           t          j        g dg dg          }t          t          j        |          g dg dg           t          t          j        |d          g dg dg           t          t          j        |d          g dg dg           d S )N)
r   r   r   r   rH   rI   rJ      r   r`   )
r   rI   rI   rI   r   r`            !@r   rT   rI   rJ   )
r   r#   r#   r   r   rJ   r         @r      T)use_missing)
r   r#   r#         @r   rJ   r   r   r   r   )
r   r   r   r   rH   rJ   rI   r   r   r`   )
r   rI   r   rI   r   r   r`   r   rI   rT   )r   r   r   r   rH   )rI   rJ   r   r   r`   )r   rI   rI   rI   r   )r`   r   r   r   rT   r   r%   )r   rH         @r   r   r   r   r   r   r   r   rH   rH   rH   rH   rH   )rb   r(   r   r)   rankdatar   r+   r?   s     r/   test_rankingzTestRanking.test_ranking   s   H+++,,FOA..666	8 	8 	81Q%FOA..999	; 	; 	;FOA4@@@===	? 	? 	?H+++,,FOA..666	8 	8 	8Hkkk<<<011FOA..([[*:*:*:;	= 	= 	=FOAA666([[///:	< 	< 	<FOA1555([[,,,7	9 	9 	9 	9 	9r1   N)r2   r3   r4   r   r5   r1   r/   r   r      s#        9 9 9 9 9r1   r   c                      e Zd Zd Zd Zd Zd Zej        	                     e
j                    dk    d          d             Zej        	                     e
j                    dk    d          ej        j        d	                         Zd
 Zej                            dd          ej                            dd          d                         Zd Zej        j        d             Zd ZdS )TestCorrc           
      (   t          j        d          }t          j                    5  t          j        dt
                     t          t          j        ||          d         d           t          t          j        ||d d d                   d         d           t          j	        |d          }t          j        ||          }t          |d         t          u            t          |d	         t          u            d d d            n# 1 swxY w Y   t          j	        g d
          }t          j	        g d          }t          j        ||          \  }}t          |t          j        d          dz             t          |d           g d}t          j	        g d|          }t          j	        g d|          }	t          j        ||	          \  }}t          |t          j        d          dz             t          |d           d S )NrT   errorr   r   rk         Tr^   r   )r           r   )r   r   rI   rI   rH   ra   )FFFT)r   r   r   g     X@)r   r   rI   rk   )rb   arangewarningscatch_warningssimplefilterRuntimeWarningr   r)   pearsonrr(   r   r   r'   sqrt)
r+   r?   prx1y1rpr_   x2y2s
             r/   test_pearsonrzTestCorr.test_pearsonr   s   IbMM$&& 	% 	% !'>:::1 5 5a 8#>>>1TTrT7 ; ;A >EEE&&&AA&&BBqEVO$$$BqEVO$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% X&&&''Xiii  r2&&1Arwqzz!|,,,Au%%% +**X,,,4888Xmmm$///r2&&1Arwqzz!|,,,Au%%%%%s   CDDDc                    t           j                            g dg d          }t           j                            g dg d          }t          j        g d          }t          j        g d          }t	          j        ||          \  }}t          j        ||          \  }}t          ||           t          ||           d S )Nr   rH   rI   rJ   r   r`   )r   r   r   r   r   r   r^   )	   r   r   r`   r   r   )r   r   r   r   r   r   )r   rJ   r   r`   )r   r`   r   r   )r'   rb   masked_arrayr(   r)   r   r   r
   )	r+   mxmyr?   ymrmpr   r   s	            r/   test_pearsonr_misaligned_maskz&TestCorr.test_pearsonr_misaligned_mask   s    U 2 2 29K9K9KLLU 2 2 29K9K9KLLH\\\""H\\\""R((B~a##1RRr1   c                 `   g dg d}}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         d           g d}g d}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         c|d<   |d)<   |d*         |d+         c|d+<   |d*<   |d,         |d-         c|d-<   |d,<   t          t          j        ||          d         d.           t          j        ||          }d/}t          ||d01           d S )2N)333333@      @Gz	@HzG@)ffffff?Q@r   @r   gIQ=r   r   r   r   r   r   r   r   33333G@r   皙%@N@333333?      P@̌O@r   ffffff?皙@333333?333333@r   @皙6@皙 @333333F@'@皙8@333333?@D@r   r   r   ffffff@r   333333?r   gI
?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   i  rT   i  i  gV-?correlationpvalueTrb   )
r   r)   	spearmanrr'   r   rb   fix_invalidlistranger   r+   r?   r   res
attributess        r/   test_spearmanrzTestCorr.test_spearmanr   sF   ''')>)>)>AF,Qq11!4jAAAT$rv.T$tBF/KA.##R^A%6%6AF,Qq11!4jAAA0 0 00 0 0F,Qq11!4i@@@$dD#tT#sCc383dD#sD#sCc38.##R^A%6%6AF,Qq11!4i@@@
 ttqT1Q4
!ad#""qvD'1S6#$ 	F,Qq11!4e<<< q!$$.
C555555r1   c                    g d}g d}d}t          j        ||          \  }}t          ||           t          |d           t          j        ||d          \  }}t          ||           t          |d           t          j        ||d          \  }}t          ||           t          |d	           d
}t          j        dd|          }d|z  t          j                            |          z   }t          j        ||          \  }}t          j        ||d          \  }	}
t          |
|dz             t          j        ||d          \  }}t          |d|dz  z
             ||	cxk    r|k    sn J t          j        t          d          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr   r   g+;
?gr?greateralternativegb?lessgcH}?r\   r   r   皙?rH   r   zalternative must be 'less'...matchz	ekki-ekki)
r)   r   r   r'   linspacerandomrandr   r	   
ValueError)r+   r?   r   r_expr   r   nstat1p1stat2p2stat3p3s                r/   test_spearmanr_alternativez#TestCorr.test_spearmanr_alternative   s>   0 0 00 0 0 #1%%15!!!,---1)<<<15!!!,---1&99915!!!?+++ K1a  EBINN1%%%$Q**	r$QyAAA	rBF###$Qv>>>	rAQJ'''&&&&&&&&&&]:-LMMM 	< 	<Q{;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   F::F>F>ppc64lezfails/crashes on ppc64lerr   c                 	   t          j        t          j        g d                    }t          j        t          j        g d                    }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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 d                   }ddg}t          t          j        t          j        ||                    |           |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
        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"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/d0g           d1}t          ||d23           d S )4N)r   rH   r   r`   )rJ   r   r      r   r   rT   gxO~>bananamethodr   rH   g?>?gaV>r   r`   g}'}'?go&5>rk   r   g?>g}'}'r   r   r   r   r   g     :@gQgףp=
@r   r   g1UU?      ?
asymptoticglgN?g~ȋgQM?r   rU   rX   rW   rZ   !   C         -   gXJĿgvPwTk?r   Tr   )rb   r(   r'   r   r   r)   
kendalltaur   assert_raisesr   r   r   r   )r+   r?   r   expectedbzresultr   s           r/   test_kendalltauzTestCorr.test_kendalltau+  s    HRXlll++,,HRXmmm,,-- :BJv'8A'>'>??JJJ HRYr]]##HRYr]]## +,BJv'8A'>'>??JJJ 	j&"3Q(KKKK aDt!! '(:;BJv'8A'>'>??JJJ aDt!! '(:;BJv'8A'>'>??JJJ HRYr]]##HRYr]]44R4()) ,-BJv'8A'>'>??JJJ aDt!! ();<BJv'8A'>'>??JJJ aDt!! ();<BJv'8A'>'>??JJJ ND$dBF;<<ND$tRV<==ND$dBF;<<BJv'8A'>'>??'.	0 	0 	0BJv'8Al'S'S'STT'3	5 	5 	5BJv'8A'>'>??'3	5 	5 	5 NAq!QB2q"Ar1b!Q1aI J JNAr2r2r2q"bBBB2r261N O O"1a((BJv..Y0GHHH /
FJ4888888r1   c                 \   t          j        dt                    }t          j        |d          }t          j        dt                    }t          j        |dd          |d d         f          }t          t          j        t          j	        ||          d                              d S )Nr   r   i    r   )
r'   r   floatrb   masked_greaterconcatenater   isfiniter)   r  )r+   r?   r   s      r/   test_kendalltau_largezTestCorr.test_kendalltau_large  s     Id%(((a&&Id%(((NAdeeHah/00F-a33A67788888r1   c                 ~   t           t           dddddddddddgg d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                             d          g d           d S )NrJ   rH         r   r   rI   rJ   rI   r   rI   rH   r   rI   r   r   rH   rI   r   rI   r`      r   r     zglobal p-value (indep)gMb?zseasonal p-value)g
ףp=
?g(\?皙?g{Gz?)r   rb   r   Tr)   kendalltau_seasonalr   round)r+   r?   outputs      r/   test_kendalltau_seasonalz!TestCorr.test_kendalltau_seasonal  s    31b"aAq!Q:444Aq"aAq#q!S91b!RaAq!Q:< N1+A..F#;<eQGGGF#56<<Q??111	3 	3 	3 	3 	3r1   r	  )exactr  r   	two-sidedr   r   c                    t           j                            d           d}t           j                            |          }t           j                            |          }t           j                            |          dk    }t	          j        ||          }t	          j        ||          }t          j        ||||          }	|                                }
|                                }t          j        |
|||          }t           j
        ||<   t           j
        ||<   t          j        |||d|          }t          |	|           t          ||           d S )Nr   r$   r~   r^   )r	  r   omit)r	  
nan_policyr   )r'   r   seedr   rb   r(   r)   r  
compressedr   r   r   )r+   r	  r   r   r?   r   r_   x_maskedy_masked
res_maskedx_compressedy_compressedres_compressedres_nans                 r/   test_kendalltau_mstats_vs_statsz(TestCorr.test_kendalltau_mstats_vs_stats  sR    		qINN1INN1y~~a  3&8AD)))8AD)))&hv;H H H
  **,,**,,),v;P P P &$&$"qFM M M 	
N33300000r1   c           	          ddddddddd}|                                 D ]6\  }}t          j        |d         |d	                   }t          ||           7d S )
Ng遣m?g:4W?g,
:H r   gK?g(6?))r\   iY	  )e   i	  )   r   )   r   )r>  r   )   r   )   iE&  )   i%  r   r   itemsr   _kendall_p_exactr   r+   expectationsncr  r   s        r/   test_kendall_p_exact_mediumz$TestCorr.test_kendall_p_exact_medium  s     &<%;"8"%"8"%%;%;= = )..00 	/ 	/LB0A1>>CX....	/ 	/r1   c                     ddddddd}|                                 D ]6\  }}t          j        |d         |d	                   }t          ||           7d S )
NgE?gU`Ux<?gve?gZ?g=?gG?))i  i5  )i  i\  )i   idd )i!  ih )i@  i 	 )iA  i 	 r   r   rB  rE  s        r/   test_kendall_p_exact_largez#TestCorr.test_kendall_p_exact_large  s|     '=&<'='=(>(>@ @ )..00 	/ 	/LB0A1>>CX....	/ 	/r1   c                 X   g 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        }t          t          j        ||          d         d d!           t          j        ||          }d"}t          ||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   r   r   r   r   r   r   r   r   r   r   r   r   r   rk   g-@g+@g(@g333333$@gffffff@gffffff@g333333@gffffff@g333333@r   gffffff
@g	@r   gffffff@r#   g333333@gffffff@g @r   g      ?g?r   g?皙?gffffff?r   r~   r%  r   r   g/"?r   r   Tr   )r'   r   r   r)   pointbiserialrr   r   s        r/   test_pointbiserialzTestCorr.test_pointbiserial  s   5 5 5BT B4 B Bt BS B# Bs BC B Bc B3 B BBBBB!$B&)B+.B03B58B:=B?BBDGBILBBBBB!$B&)B+.B03B58B:<&B 	F1!Q77:GQGGG #Aq)).
C555555r1   N)r2   r3   r4   r   r   r   r  r   r   r   platformmachiner  slowr  r*  parametrizer:  rH  xslowrJ  rN  r5   r1   r/   r   r      s       & & &>  $6 $6 $6L+< +< +<Z [((**i79  ; ;T9 T9; ;T9l [((**i79  ; ;[9 9 ; ;9
3 
3 
3 [X'>??[],LMM1 1 NM @?1:/ / / [/ / /6 6 6 6 6r1   r   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestTrimmingc                 ~   t          j        d          }t          t          j        |          g d           t          j        d          }t          t          j        |d          g d           t          j        d          }t          t          j        |dd          g d           t          j        d          }t          t          j        |dd	
          g d           t          j        d          }t
          x|ddg<   |d<   t          t          j        |d          g d           t          j        d                              dd          }dgdz  dgdz  z   dgdz  z   }t          j        |dd	d           }t          |j                                        |           t          j        |dd	d          }t          |j                                        |           t          j        |dd	d          }t          |j        j	                                        |           t          j        d                              dd          }t
          |d<   dgdz  dgdz  z   dgdz  z   }t          j        |dd	d           }t          |j                                        |           t          j        |dd	d          }t          |j                                        |           t          j        |j	        dd	d          }t          |j	        j                                        |           d S )NrT   
r   r   rH   rI   rJ   r   r`   r   r   r   )rH   r   )
NNrH   rI   rJ   r   r`   r   r   NFFlimits	inclusive)
NNNrI   rJ   r   r`   r   NN)r   r%  T)rZ  relative)
Nr   rH   rI   rJ   r   r`   r   NN   r   rk   r   )NNrH   rI   rJ   Nr`   r   r   NNNr\   r   rY   rU   )r\  r%   r   r  )
rb   r   r
   r)   trimr   reshape_maskravelr&  )r+   rP   r?   r  trimxs        r/   	test_trimzTestTrimming.test_trim  s   IbMMV[^^%:%:%:;;;IbMMV[5))+I+I+IJJJIbMMV[%-HHH999	; 	; 	;IbMMV[)TBBB333	5 	5 	5 IbMM!!1R&	AaDV[E**KKK	M 	M 	M IcNN""2r**3r6QCF?aSV+Ay4dCCCU[&&(((333Ay4a@@@U[&&(((333Ay4bAAAU[]((**H555 IcNN""2r**!3r6QCF?aSV+Ay4dCCCU[&&(((333Ay4a@@@U[&&(((333ACTCCCUW]((**H55555r1   c                    t          j        d          }t          t          j        |                                          d           t          t          j        |d                                          d           t          |dd<   t          j        |          }t          |                                d           t          |j        d	gd
z  dgdz  z   d	gdz  z   dgdz  z   d	gd
z  z              t          |_        d|_
        t          t          j        |                                          d           t          t          j        |                                          d           d S )Nr\   rX   r   )tailrZ   r$   rY   0   r   r   r   "   rU      )rT   rT   )rb   r   r
   r)   trimbothcounttrimtailr   r`  r   shape)r+   r?   rb  s      r/   test_trim_oldzTestTrimming.test_trim_old  s7   IcNNV_Q''--//444V_QC0006688"==="R%""U[[]]B'''U[1#b&A3r6/QCF":aSV"Cqc"f"LMMMV_Q''--//444V_Q''--//44444r1   c                     t          j        d          }t          j        |dd          }t          j        g dg d          }t          ||           t          |j        |j                   d S )NrT   )g333333?gQ?rX  rY  rW  )
r   r   r   r   r   r   r   r   r   r   r^   )rb   r   r)   trimrr(   r
   r_   )r+   r?   r  r  s       r/   
test_trimrzTestTrimming.test_trimr  sz    IbMMaOOO8:::!?!?!?A A AVX&&&V[(-00000r1   c                 
   t          j        g d          }t          t          j        |d          dd           t          t          j        |d          dd           t          t          j        |d          dd           d S )NM   W   X   r                  i  i(  i+  i2  ix  i  i  i  i  i3
  r   iW  r   )r   r   r%  r%  i  )rb   r(   r   r)   trimmed_meanr+   r,   s     r/   test_trimmedmeanzTestTrimming.test_trimmedmean"  s    x @ @ @ A AF/S993BBBF/Y??aHHHF/Y??aHHHHHr1   c                 2   t           j                            d          }|                    d          }t          j        |          }t	          j        |g d          }t          t          j        |d          |	                                           d S )Nl   l{f0j rU   sizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r^   r   )
r'   r   default_rngsortrb   r(   r   r)   trimmed_varvarr+   rng	data_origr,   s       r/   test_trimmedvarzTestTrimming.test_trimmedvar)       i##$788JJBJ''	wy!!x $B $B $B C C C*9c::DHHJJGGGGGr1   c                 2   t           j                            d          }|                    d          }t          j        |          }t	          j        |g d          }t          t          j        |d          |	                                           d S )Nl   /{Gzi rU   r  r  r^   r   )
r'   r   r  r  rb   r(   r   r)   trimmed_stdstdr  s       r/   test_trimmedstdzTestTrimming.test_trimmedstd3  r  r1   c                     t          j        g d          }t          t          j        |d          dd           t          t          j        |d          dd           d S )Nrr  r|  g>L@r   r%  )rb   r(   r   r)   trimmed_stder~  s     r/   test_trimmed_stdezTestTrimming.test_trimmed_stde=  sk    x @ @ @ A AF/Y??1MMMF/S998QGGGGGr1   c                    t          j        g d          }t          t          j        |d                              d          dd           t          t          j        |dd                              d          dd           t          |d<   t          j        |          }t          |j        |j                   d S )	Nrr  r|  r   ddofg@rX  gffff7@r   )	rb   r(   r   r)   	winsorizer  r   r
   r_   )r+   r,   
winsorizeds      r/   test_winsorizationzTestTrimming.test_winsorizationC  s    x @ @ @ A AF,T)<<@@a@HH#Q	( 	( 	(T9];;??Q?GGQ	 	 	 Q%d++
Z_di00000r1   c           
      ,   t          j        t          j        t          j        dddg          }t	          t
          t          j        |dd           t          t          j        |d          t          j        g d                     t          t          j        |d	          t          j        t          j        t          j        t          j        t          j        t          j        g                     t          t          j        |dd
          t          j        t          j        t          j        dddg                     t          t          j        |d	d
          t          j        t          j        t          j        dddg                     d S )Nr   r   rH   )皙?r  raise)r0  )皙?r  r   )rL  rL  r/  )	rb   r(   r'   r   r  r   r)   r  r
   r~  s     r/   test_winsorization_nanz#TestTrimming.test_winsorization_nanO  sM   xAq122j&"2D,!(	* 	* 	* 	* 	V%dJ77Xooo..	0 	0 	0V%dJ77XrvrvrvrvrvFGG	I 	I 	IV%dJ6JJJXrvrvq!Q788	: 	: 	:V%dJ6JJJXrvrvq!Q788	: 	: 	: 	: 	:r1   N)r2   r3   r4   rc  rm  rp  r  r  r  r  r  r  r5   r1   r/   rU  rU    s        #6 #6 #6J5 5 51 1 1I I IH H HH H HH H H
1 
1 
1: : : : :r1   rU  c                      e Zd Zg dZ ej        dddddej        g          Z ej	         ej	        g dg dg d	g d
g dg           ej	        g dg dg dg dg dge
                    ZddddZd Zd Zd Zd Zd ZdS )TestMomentsrG   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?)TFFTF)TTTFT)FFFFF)TTTTT)FFTFFr   r^   Nrl  r9   c                    t          j        |          }|t          j        ||          }t          ||           ||j        }|j        |k    sJ d S N)r'   r   broadcast_tor   r9   )r+   actualexpectrl  r9   s        r/   _assert_equalzTestMoments._assert_equalu  s]    F##_VU33F66***=LE|u$$$$$$r1   c                    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           t          j        | j        g d	          }t	          |g d
           t          j        | j        d          }t	          |d           t          t          t           j        | j        d           t          j        | j        g d          }t	          |g d
           t          j        g           }|                     |t          j	        t          j
                   t          j        t          j        g t          j                            }|                     |t          j	        t          j                   t          j        t          j        d          d          }|                     |g dt          j
                   t          j        g gd          }|                     |t          j	        dt          j
                   t          j        g gddgd          }|                     |g d           t          j        d          }t          j	        |d<   t          t          j        |d          t           j                   d S )Nr   r   rT   rH         ?rI   rJ        @rG   )r   r  r   r  r   r   )r   rH   rI   r   r   )r   r   r   r   )r   r  )r   )momentr%   )rH   r   )rl  g      $@r   )r)   r  testcaser   r   r  r   r  r'   r   float64r(   float32zerosr   r
   rb   r   )r+   r   r?   s      r/   test_momentzTestMoments.test_moment~  s   M$-**Ac"%%%M$-**Ad###M$-**Ac"""M$-**Af%%% M$-66///000 M$---3j&-DDDM$-)9)9)9::///000 M"1bfBJ777M"(2RZ888991bfBJ777M"(6**3331bBJ???M2$Q'''1bfD
CCCM2$1vA6661b///IcNNv!V]1a((")44444r1   c                 Z    t          j        | j                  }t          |dd           d S )N%?rT   )r)   	variationr  r   )r+   r   s     r/   test_variationzTestMoments.test_variation  s-    T]++A.33333r1   c                 ~    t          j        g d          }t          j        |d          }t	          |d           d S )N)r   rH   rI   rJ   r   r   r  g<<'?)r'   r(   r)   r  r   )r+   rP   r   s      r/   test_variation_ddofzTestMoments.test_variation_ddof  sC     H___%%QQ'''A122222r1   c           	      n   t          j        | j                  }t          |dd           t          j        | j        d          }t          |dd           t          j        | j                  }t          |dd           t          j        t          j        g d          t          j        g dt          	          
          }t          t          j        | j
        d          |           t          | j
                  D ]-\  }}t          t          j        |          ||                    .t          j        t          j        g d          t          j        g dt          	          
          }t          t          j        | j
        dd          |           t          | j
                  D ]/\  }}t          t          j        |d          ||                    0t          t          j        | j
        dd d f                   t          j        | j
        dd d f                              d S )Ng7l*ҿrT   r   biasg2۠ۿr   )gҽr?r   g>HÛe?r   gIǮFFFTFr   r^   r   )g`٨?r   gn?r   g0FrH   )r)   skewtestmathworksr   r  rb   r(   r'   boolr   testcase_2d	enumerater   r+   r   
correct_2dirowcorrect_2d_bias_correcteds         r/   test_skewnesszTestMoments.test_skewness  sE   K*++A/333K*222A0444K&&Ac"%%% XH / / / 0 0<<<DIII
 
 


 	D$4a88*EEE 011 	A 	AFAsC 0 0*Q-@@@@$&HH , , , - -<<<DIII%
 %
 %
!
 	D$4aeDDD1	3 	3 	3 011 	> 	>FAsCe < < < 9! <> > > > 	D$4QT$:;;
4#3AqqqD#9::	< 	< 	< 	< 	<r1   c           	      ~   t          j        | j        ddd          }t          |dd           t          j        | j        dd          }t          |dd           t          j        | j        dd          }t          |d           t          j        t          j        g d          t          j        g d	t          
                    }t          t          j        | j
        d          |           t          | j
                  D ]-\  }}t          t          j        |          ||                    .t          j        t          j        g d          t          j        g d	t          
                    }t          t          j        | j
        dd          |           t          | j
                  D ]/\  }}t          t          j        |d          ||                    0t          t          j        | j
        dd d f                   t          j        | j
        dd d f                   d           d S )Nr   r   )fisherr  gO߻S@rT   gx|N@g=
ףp=?)            g'@=r   gt
Qr  r   r^   )r  r  g?<r   g`@7Fr  rH   rJ   )nulp)r)   kurtosisr  r   r  rb   r(   r'   r  r   r  r  r   r   r  s         r/   test_kurtosiszTestMoments.test_kurtosis  sx    OD.!!DDDA333
 OD.qqAAAA0"555ODM1a00At$$$ Xbh (8 (8 (8 9 9#%8 -4 -4 -4;?$A $A $AB B B
 	"&/$2BA"F"F",	. 	. 	. 011 	E 	EFAs 4 4jmDDDD$&HHIIIJJ<<<DIII%K %K %K! 	"&/$2BA7<#> #> #>";	= 	= 	=   011 	> 	>FAs% @ @ @ 9! <> > > > 	'vt7G1117M'N'N',~d6Fq!!!t6L'M'M,-	/ 	/ 	/ 	/ 	/ 	/r1   )r2   r3   r4   r  rb   r   r'   r   r  r(   r  r  r  r  r  r  r  r  r5   r1   r/   r  r  ^  sh        yyH"BNE6667$&F$, - -M"(NNNNNNNNNNNNMMM	O 	P 	P
 RX888666:::555999	; CG	H H H
I 
I 
IK 6: % % % % %#5 #5 #5J4 4 43 3 3< < <B%/ %/ %/ %/ %/r1   r  c                       e Zd Zd Zd ZdS )TestModec                    g d}t          j        |d          }t          j        g d          }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           t          t          j        |d          d           t          t          j        |d           d	           t          t          j        |d           d           t          t          j        |d           d	           t          t          j        |d           d
           t          t          j        |d           d           t          t          j        |d          g dgg dgf           t          t          j        |d          g dgg dgf           t          t          j        |d          dgdgdggdgdgdggf           t          t          j        |d          dgdgdggdgdgdggf           t          t          j        |d          ddggddggf           t          t          j        |d          dgdgdggdgdgdggf           t          j        |d           }	d}
t          |	|
d           d S )N)r   r   r   r   r   r   rH   rI   rI   rI   rI   rJ   r   r`   r   )rI   r   r   )rI   rH   rH   r   )rI   rJ   r   )r   rI   )r   r   )rH   r   )r   r   r   r   r   r   rk   rI   r   r   )moderj  Tr   )	r'   r_  r(   rb   masked_wherer
   r)   r  r   )r+   a1a2a3a4ma1ma2ma3ma4a1_resr   s              r/   	test_modezTestMode.test_mode  s   ,,,ZE""Xmmm$$ZE""obhrllQ.33ob1fb))ob1fb))obhrllQ.33V[$///777V[!,,,e444V[4000%888V[$///777V[4000%888V[$///777V[4000%888V[!,,,}{{{m.LMMMV[1---}/MNNNV["---!aS!QC}/MNNNV[2...1#qc1#!aS!0NOOOV[1---!A1Q%/ABBBV[2...1#qc1#!aS!0NOOORd+++ '
FJ4888888r1   c                     t          j        d          }|d dd d fxx         dz  cc<   |d d d dfxx         dz  cc<   |                                }t          j        |d            t          ||           d S )N)r\   r\   r$   r   )r'   r  copyr)   r  r
   )r+   imcps      r/   test_mode_modifies_inputz!TestMode.test_mode_modifies_input  s     Xj!!
3B36


a



111crc6


a


WWYYBRr1   N)r2   r3   r4   r  r  r5   r1   r/   r  r    s2        9 9 9:    r1   r  c                        e Zd Zd Zd Zd ZdS )TestPercentilec                 <    g d| _         g d| _        g d| _        d S )N)rI   rJ   r   rT   r`   )rI   r   r   rJ   rH   r   )r   rJ   r   rT   r  r  r  r   )r  r  r  r+   s    r/   setup_methodzTestPercentile.setup_method!  s-    ***,,,111r1   c                    t          j        d          dz  }t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           d S )	Nr   r~   r   r   r\   r   r$   g      ?)r'   r   r
   r)   scoreatpercentiler   s     r/   test_percentilezTestPercentile.test_percentile&  sq    IaLL3V-a33R888V-a55s;;;V-a44d;;;;;r1   c                     t          j        g dg dg dg dg dg          }t          t          j        |d          g d           d S )Nr   r   r   )rJ   rJ   rI   r$   )rb   r(   r
   r)   r  r   s     r/   test_2DzTestPercentile.test_2D,  sc    Hiiiiiiiiiii	! " "
 	V-a44iii@@@@@r1   N)r2   r3   r4   r  r  r  r5   r1   r/   r  r     sF        2 2 2
< < <A A A A Ar1   r  c                   X    e Zd ZdZ ej        ddddej        g          Zd Z	d Z
d Zd	S )
TestVariabilityz[  Comparison numbers are found using R v.1.5.1
         note that length(testcase) = 4
    r   rH   rI   rJ   c                 D   t          j        | j                  }t          |d           | j                                        }t          t          j        | j        d          t          j        ||dz
  z            z  t          j        | j        d                     d S )Ng㝎?r   r  rH   )r)   semr  r   rj  r   r'   r   )r+   r   r   s      r/   test_semzTestVariability.test_sem;  s    Jt}%%A|,,,M!!
4=q999BGAqsG<L<LL
4=q999	; 	; 	; 	; 	;r1   c                     t          j        | j        | j                  }g d}t          ||j        |j        dk             d           d S )N)OT\w%ܿr  OT\w?Fr]  decimal)r)   zmapr  r   r,   r_   )r+   r   desired_unmaskedvalss      r/   	test_zmapzTestVariability.test_zmapC  sj     Kt}55!D !D !D!"6"#&5"92	G 	G 	G 	G 	G 	Gr1   c                     t          j        | j                  }t          j        ddddt
          j        g          }t          ||d           d S )Nr  r  r  r  r]  r  )r)   zscorer  rb   r   r'   r   r   )r+   r   r-   s      r/   test_zscorezTestVariability.test_zscoreL  sX     M$-((."24E"2ORV"M N NGQ333333r1   N)r2   r3   r4   __doc__rb   r   r'   r   r  r  r  r   r5   r1   r/   r  r  5  sn          r~q1Qrv.//H; ; ;G G G4 4 4 4 4r1   r  c                        e Zd Zd Zd Zd ZdS )TestMiscc                    dgdz  dgdz  z   dgdz  z   dgdz  z   dgdz  z   d	gdz  z   dgdgdz  z   dgd
z  z   dgdz  z   d	gdz  z   g}ddgz  ddgz  z   ddgz  z   ddgz  z   ddgz  z   ddgz  z   dgddgz  z   d
dgz  z   ddgz  z   ddgz  z   g}t          t          j        t          j        | j        d
          |d
           d S )Nr   r`   r  r   r   r   rI   rH   rT   rJ   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  s      r/   test_obrientransformzTestMisc.test_obrientransformW  s*   Aqc"faSU"A3q5(!Q.tAv5QCE	1#a%A%rd2g-/VH*R[(F83AvhJ>q&zI!WI+U)AvhJ&q&z1!VH*<R[HJBHV%;T%B%DaHH"A	' 	' 	' 	' 	'r1   c                 2   t           t           dddddddddddgg d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 )NrJ   rH   r   r!  r   r   rI   r"  r`   r#  r   r  r$  )48E?gsA?g)g%䃞?g 	?l)r	  g46<?)	r   rb   r   r&  r   r'   r(  r)   ks_2samp)r+   r?   winterspringsummerfalls         r/   test_ks_2sampzTestMisc.test_ks_2samp_  s+   #q!RQ1aAq9444Aq"aAq#q!S91b!RaAq!Q:< N1)*&BHV_VV%D%DaHH,	. 	. 	.BHV_VVS%I%I1MM,	. 	. 	.BHV_VVS%I%I1MM,	. 	. 	. 	. 	.r1   c                    g dg dg d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g d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 S )N)
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   g:pΈ$@rJ   r   g(QGu?r`   rH   r   r!  r   rI   r"  r#  r   r  r$  gr @g-C6?	statisticr   Tr   )r)   friedmanchisquarer   r   rb   r   r   )r+   r  r  r?   r   s        r/   test_friedmanchisqzTestMisc.test_friedmanchisqn  s5   999999999; )40F1Iw222F1Ix333#q!RQ1aAq9444Aq"aAqa371b!RQ1aAq9; N1)1-F1Ivq111F1Ivq111 -
FJ4888888r1   N)r2   r3   r4   r  r  r  r5   r1   r/   r  r  U  sA        ' ' '. . .9 9 9 9 9r1   r  c                  <   t          j        ddd          } dt          j        ddd          z  dz   }|t          j        t          j        ddd                    z  }t          j        | |          }t
          j        j        }t          t          ||                     d}t          ||d           d	t          |          v sJ t          |j        d
           t          |j        d           t          |j        d           t          |j        d           d S )Nr   r\   r%  rT   rU   )slope	interceptrvaluer   stderrTr   intercept_stderrg5E%?g +l$@g4_Qc?g8?)r'   r   sinr)   
linregressr   _stats_mstats_commonLinregressResultr   
isinstancer   dirr   r  r  r  r   )r?   r   r  lrr   s        r/   test_regress_simpler(    s   
AsC  Abk!S#&&&+AAr3''	(	((Aq!$$F 
	#	4BJvr""###EJ
t4444V,,,, &9:::(*<===';<<</1DEEEEEr1   c                      t          j        d          } t           j                            d          }d}t          t          |          5  t          j        | |           d d d            d S # 1 swxY w Y   d S )NrT   zBCannot calculate a linear regression if all x values are identicalr   )r'   r  r   r  r   r)   r"  )r?   r   msgs      r/   test_linregress_identical_xr+    s    
A
	A
NC	z	-	-	-    !Q                                   s   A//A36A3c                     t          j        g d          \  } }}}t          | d           t          |d           t          j        g dd          \  } }}}t          | d           t          |d           t          j                            g dg d          }t          j        |          \  } }}}t          | d	           t          |d
           t          j        |d          \  } }}}t          | d	           t          |d           g d}g d}t          j        ||d          \  } }}}t          | d           t          |d           t          |dd           t          |dd           t          j        ||dd          \  } }}}t          | d           t          |d           t          |dd           t          |dd           d S )N)r   r   r   r~   jointr  r   )r   r   r\   r   )FFTFr^   ra   gUUUUUU?)r   rH   rI   rJ   rT   r]  r#  )r         rU   r  7   N   gQ?rJ   r   gQ@rH   r  gGz@r   )r)   theilslopesr   r'   rb   r(   )r  r  lowerupperr   r?   s         r/   test_theilslopesr5    s+   %+%7			%B%B"E9eUs###	3'''%+%7			?F&H &H &H"E9eUs###	3''' 	NNN)D)D)DEEA%+%7%:%:"E9eUt$$$	4(((%+%7?F&H &H &H"E9eUt$$$	3''' 	!  A###A%+%71d%C%C"E9eUq!!!	3'''tQ////tQ////%+%71d?F&H &H &H"E9eUq!!!	3'''tQ////tQ//////r1   c                     t          j        t          d          5  t          j        ddgddg          } t          j        t          j        |                     sJ 	 d d d            n# 1 swxY w Y   t                      5 }|	                    t          d           t          j        g dg d          } t          | ddt
          j        t
          j        f           d d d            d S # 1 swxY w Y   d S )NzAll `x` coordinates are...r   r   r   zinvalid value encountered...r   r   r   )r   r   r   )r   warnsr   r)   r2  r'   allisnanr   filterr   r   )r   sups     r/   test_theilslopes_warningsr=    sc   	n,H	I	I	I % % !Q!Q00vbhsmm$$$$$$% % % % % % % % % % % % % % % 
		 5

>#ABBB III66aBFBF34445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s%   AA++A/2A/AC..C25C2c                     g d} g d}t          j        | |          \  }}}}t          j        | |          }t          ||j                   t          ||j                   t          ||j                   t          ||j                   dS )zj
    Simple test to ensure tuple backwards-compatibility of the returned
    TheilslopesResult object
    r   rH   rJ   rJ   r`   r   N)r)   r2  r
   r  r  	low_slope
high_slope)r   r?   r  r  rA  rB  r  s          r/   'test_theilslopes_namedtuple_consistencyrC    s    
 			A		A.4.@A.F.F+E9i1%%F %%%F,---F,---V./////r1   c                     dt          j        d          z  dz   } t          t          j        |           d           t          t          j        | d          d           dt          j        d          z  }d|z  dz
  } t          t          j        | |          d	           t          t          j        | |d          d	           d
| d d<   t          t          j        | |          d	           t          j        d          }dd|z  z   t
          j                            dd          z   } t          j        ||           \  }}}}}t          j        | |          \  }}t          ||d           t          ||d           t          j        | |d          \  }}t          ||d           t          ||d           d S )NrH   rT   r~   )r   r~   separater  r   r   )r  r  r  rJ   gffffffr      r  random_stater   r:   )
r'   r   r
   r)   siegelslopesr   normrvsr"  r   )r   r?   	slope_olsintercept_ols_r  r  s          r/   test_siegelslopesrO    s   	BIbMMCA$Q''444$Qz:::JGGG	BIbMMA	AA$Q**K888$Q*==={KKK AbqbE$Q**K888 		"As1uuz~~2C~@@@A(-(8A(>(>%I}aA*1a00E9E93////I}37777*1a
CCCE9E93////I}3777777r1   c                      g d} g d}t          j        | |          \  }}t          j        | |          }t          ||j                   t          ||j                   dS )zl
    Simple test to ensure tuple backwards-compatibility of the returned
    SiegelslopesResult object.
    r?  r@  N)r)   rI  r
   r  r  )r   r?   r  r  r  s        r/   (test_siegelslopes_namedtuple_consistencyrQ    sl    
 			A		A*1a00E9 A&&F %%%F,-----r1   c            
         t           j                            d          } |                     d          t          j                  \  }}d t          d          D ]=}t          t          j         d d |f                             ||                    >t          j        fdt          j	        d                   D                       }t          t          j        |          |           d S )Nl   ,'  )r\   rJ   r  c                 0   t          |           }t          j        |          }| | d d t          j        f         z
  }||d d t          j        f         z
  }t          j        t          j        ||ft                    d          }||         ||         z  S )Nr   r   )k)lenr'   r   newaxistriuonesr  )yir   r?   dydxr_   s         r/   dijkz&test_sen_seasonal_slopes.<locals>.dijk  s    GGIaLL"QQQ
]##111bj=!!wrw1vT222a888$x4  r1   rJ   c                 :    g | ]} d d |f                   S r  r5   ).0r  r\  r?   s     r/   
<listcomp>z,test_sen_seasonal_slopes.<locals>.<listcomp>#  s-     J J J1a1g J J Jr1   r   )
r'   r   r  r)   sen_seasonal_slopesr   r   medianr  rl  )r  intra_slopeinter_sloper  
all_slopesr\  r?   s        @@r/   test_sen_seasonal_slopesre    s    
)

 3
4
4C


!!A%9!<<K! ! ! 1XX B B	$$qAw--00+a.AAAA J J J J Jagaj8I8I J J JKKJBIj));77777r1   c                      t          j        t          j        d          dd          } t	          | j        t          j        g d                     d S )NrI   r   )rL   r~   r
  )r)   plotting_positionsr'   r   r   r,   r(   )poss    r/   test_plotting_positionsri  '  sG    

#BIaLL!Q
7
7Cch1B1B1B(C(CDDDDDr1   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	d
g          e
j                            dddg          d                         Zd ZdS )TestNormalitytestsc                    t          j        d          dz  }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}g d}t          ||          D ]1\  }}t          t          ||           t          t          ||           2d S )Nr  rk   r   r   rH   rI   r  rk   r   r   rH   rI   r  rk   r   r   rH   rI   r  rk   r   r   rH   rI   rH   rG   )r'   r(   r   r)   
normaltestr   skewtestkurtosistestzipr  r   )r+   r?   funcsmfuncsfuncmfuncs         r/   test_vs_nonmaskedz$TestNormalitytests.test_vs_nonmasked/  s   H+,,a/!&"3A"6"6"'"21"5"5	7 	7 	7!&/!"4"4"'."3"3	5 	5 	5!&"5a"8"8"'"4Q"7"7	9 	9 	9 !5>53EF#V_f6IJLLuf-- 	0 	0KD%*dA...*eQ////	0 	0r1   c                 x   t          j        d          dz  }t          t          j        |d           t          j        |                     t          t          j        |d           t          j        |                     t          t          j        |d           t          j        |                     d S )Nrm  rH   r   )r'   r(   r   r)   rn  ro  rp  r   s     r/   test_axis_Nonez!TestNormalitytests.test_axis_None?  s    H&''*)!$7779J19M9MNNN555vq7I7IJJJ+AD999+A..	0 	0 	0 	0 	0r1   c                     t          j        d          dz  }t           j                            t           j        t           j        |df         t           j        ddg|j        z  df                   }t          t          j        |          t          j        |                     t          t          j
        |          t          j
        |                     t          t          j        |          t          j        |                     d S )Nrm  rH   rT   TFr^   )r'   r(   rb   r_infr  r   r)   rn  r   ro  rp  )r+   r?   xms      r/   test_maskedarray_inputz)TestNormalitytests.test_maskedarray_inputG  s    H+,,a/U[[rvq"}- eD5'AF*:D$@A  C C)"--u/?/B/BCCC++U^A->->???+B//1CA1F1FGGGGGr1   c                 f   t          j        d          dz  }t          j        |gdz            j        }t          j        t          j        t          j        fD ]X} ||          } ||          }t          |d         |d         gdz             t          |d         |d         gdz             Yd S )Nrm  rH   r   r   )	r'   r(   vstackr&  r)   rn  ro  rp  r   )r+   r?   x_2drt  res_1dres_2ds         r/   test_nd_inputz TestNormalitytests.test_nd_inputP  s    H+,,a/y!q!!#&9LM 	8 	8DT!WWFT$ZZFF1Iq	{Q777F1Iq	{Q7777		8 	8r1   c                     t          j        d          dz  }t          j        |          }d}t	          ||d           d S Nrm  rH   r  Tr   )r'   r(   r)   rn  r   r+   r?   r   r   s       r/   !test_normaltest_result_attributesz4TestNormalitytests.test_normaltest_result_attributesY  sG    H+,,a/"",
C555555r1   c                     t          j        d          dz  }t          j        |          }d}t	          ||d           d S r  )r'   r(   r)   rp  r   r  s       r/   #test_kurtosistest_result_attributesz6TestNormalitytests.test_kurtosistest_result_attributes_  sG    H+,,a/!!$$,
C555555r1   c                     g d}t          j        d t          |          D                       }t          t	          j        |          d         dk     d           d S )N)
   r   :   r   r   )   r   r   r      c                 >    g | ]\  }}t          j        ||          S r5   )r'   full)r^  r  cs      r/   r_  z;TestNormalitytests.test_regression_9033.<locals>.<listcomp>i  s&    CCCArwq!}}CCCr1   r   g{Gz?T)r'   hstackr  r
   r)   rp  )r+   countsr?   s      r/   test_regression_9033z'TestNormalitytests.test_regression_9033e  s`     766ICC61B1BCCCDDV(++A.5t<<<<<r1   testro  rp  r   r   r   c                 \   t           j                            dddd          }t          t           |          }t          t          |          } |||          \  }} |||          \  }}	t          ||d           t          |	|d           t          j        |d	d
<   t          j        	                    |t          j
        |                    } ||                                |          \  }} |||          \  }}	t          ||d           t          |	|d           d S )NrT   r#   rV   {   locscaler  rH  r   g-q=atolr   r   r^   )r   rJ  rK  getattrr)   r   r'   r   rb   r   r:  r2  )
r+   r  r   r?   
stats_testmstats_testz_exp_exr  r   s
             r/   test_alternativez#TestNormalitytests.test_alternativel  s2    JNNr2CNHHUD))
fd++Z{;;;
d{1+66614e,,,,4e,,,, !A#Eqrx{{33ZKHHH
d{1+66614e,,,,4e,,,,,,r1   c                 r   t           j                            dd          }d}t          j        t
          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        t
          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )NrU   r  rG  4alternative must be 'less', 'greater' or 'two-sided'r   r   r   )	r   rJ  rK  r   r	   r   r)   ro  rp  )r+   r?   r*  s      r/   test_bad_alternativez'TestNormalitytests.test_bad_alternative  s.   JNNN55E]:S111 	4 	4OA73333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 ]:S111 	8 	8w7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s#   A""A&)A&B,,B03B0N)r2   r3   r4   rv  rx  r}  r  r  r  r  r   r   rR  r  r  r5   r1   r/   rk  rk  -  s        0 0 0 0 0 0H H H8 8 86 6 66 6 6= = = [Vj.%ABB[]VY,?@@- - A@ CB-&8 8 8 8 8r1   rk  c                       e Zd Zd ZdS )TestFOnewayc                     t          j        ddgt           j                  }t          j        ddgt           j                  }t          j        ||          }d}t          ||d           d S )	Ni  i  r   i  i  r  Tr   )r'   r(   uint16r)   f_onewayr   )r+   rP   r  r   r   s        r/   test_result_attributesz"TestFOneway.test_result_attributes  sg    Hc3Zry111Hc3Zry111oa##,
C555555r1   Nr2   r3   r4   r  r5   r1   r/   r  r    s#        6 6 6 6 6r1   r  c                   b    e Zd Z ej        g d          Z ej        g d          Zd Zd ZdS )TestMannwhitneyu)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   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   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   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   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   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   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   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   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   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   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   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   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                 l    t          j        | j        | j                  }d}t	          ||d           d S )Nr  Tr   )r)   mannwhitneyur?   r   r   )r+   r   r   s      r/   r  z'TestMannwhitneyu.test_result_attributes  s8    !$&$&11,
C555555r1   c                     t          j        | j        | j                  }t	          j        | j        | j                  }|j        |j        k    sJ t          |j        |j                   d S r  )r)   r  r?   r   r   r  r   r   )r+   res1res2s      r/   test_against_statsz#TestMannwhitneyu.test_against_stats  s_     "464622!$&$&11~////T[11111r1   N)	r2   r3   r4   r'   r(   r?   r   r  r  r5   r1   r/   r  r    sx         * * * 	+ 	+A& 	 " " " 	# 	#A6 6 6
2 2 2 2 2r1   r  c                       e Zd Zd ZdS )TestKruskalc                 h    g d}g d}t          j        ||          }d}t          ||d           d S )N)r   rI   r   r   r   )rH   rJ   r`   r   rT   r  Tr   )r)   kruskalr   r   s        r/   r  z"TestKruskal.test_result_attributes  sG    OOnQ"",
C555555r1   Nr  r5   r1   r/   r  r    s#        6 6 6 6 6r1   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	d
g          d             ZdS )TestTtest_relc                 t   t           j                            d           t           j                            dd          g dz   }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           }t          j        |d d df         |d d df         d           }t          ||           t	          j        |d d d df         |d d dd f         d          }t          j        |d d d df         |d d dd f         d          }t          ||           t          j        |d d d df         |d d dd f                   }t          ||           d S )	N rU   rJ   r   r   r   rH   r   r   r   rH   )r'   r   r1  randnr   	ttest_relr)   r   )r+   outcomer  r  res3s        r/   rv  zTestTtest_rel.test_vs_nonmasked  s   
	w)//"a((<<<7 wqqq!t}gaaadm<<1wqqq!t}==d### wqqq!t}gaaadm$GGG1wqqq!t}4HHHd###wqqq"1"u~wqqq!""u~AFFF2A2122QGGGd### 2A2122??d#####r1   c                 f   t           j                            d           t          j        t           j                            dd          g dg dg          }t                      5 }|                    t          d           |d d df         |d d d	f         ft           j	        t           j	        gd
dgffD ]_}t          j        | \  }}t          |t           j	        t           j	        f           t          |t           j	        t           j	        f           `	 d d d            d S # 1 swxY w Y   d S Nr  rI   rH   r  r7  r^   %invalid value encountered in absoluter   r   r   r   )r'   r   r1  rb   r   r  r   r;  r   r   r)   r  r   r+   r  r<  pairtr   s         r/   test_fully_maskedzTestTtest_rel.test_fully_masked  s_   
	w/")//!Q"7"7(1		999'=? ? ?   	8CJJ~'NOOO!!!!Q$-A72626:JSRUJ9WX 8 8'.1"1rvrv&6777"1rvrv&677778	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8   (B0D&&D*-D*c                    t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         |d d df                   }d}t          ||d	           d S 
Nr  rU   rJ   r  r   r   r  Tr   )r'   r   r1  r  r)   r  r   r+   r  r   r   s       r/   r  z$TestTtest_rel.test_result_attributes  ~    
	w)//"a((<<<7wqqq!t}gaaadm<<,
C555555r1   c           
         t          t          t          j        t	          j        d          t	          j        d                     t	          j        d          }t          t          t          j        |                    ddd          |                    ddd          d           t          t          t          j        |                    ddd          |                    ddd          d           d S )	NrT   r  rK   rH   rI   rJ   r   r   )r  r   r)   r  r'   r   r_  r   s     r/   test_invalid_input_sizez%TestTtest_rel.test_invalid_input_size  s    j&"2immRYr]]	4 	4 	4IbMMj&"2ii1a((!))Aq!*<*<1	F 	F 	F 	Fj&"2ii1a((!))Aq!*<*<1	F 	F 	F 	F 	F 	Fr1   c                     t          j        g g           }t          t          j        t          j        |                               d S r  )r)   r  r   r'   r9  r:  r+   r  s     r/   
test_emptyzTestTtest_rel.test_empty  :    B''rx~~&&'''''r1   c                 :   t          j        g dg d          \  }}t          t          j        |          |ft          j        df           t                      5 }|                    t          d           t          j        g dg d          \  }}t          |t          j
        t          j        t          j        g                     t          |t          j
        t          j        t          j        g                     d d d            d S # 1 swxY w Y   d S )Nr7  r  r   r  )r)   	ttest_indr
   r'   absr{  r   r;  r   r   r(   r   r+   r  r   r<  s       r/   test_zero_divisionz TestTtest_rel.test_zero_division  s(   			999551bfQii^bfa[111   	>CJJ~'NOOO#IIIyyy99DAqq"(BFBF+;"<"<===q"(BFBF+;"<"<===		> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   B(DDDc                     d}t          j        t          |          5  t          j        g dg dd           d d d            d S # 1 swxY w Y   d S Nr  r   r   rH   rI   )rJ   r   r`   foor   r   r	   r   r)   r  r+   r*  s     r/   r  z"TestTtest_rel.test_bad_alternative      E]:S111 	F 	FYYY			uEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F   AAAr   r   r   c                 J   t           j                            dddd          }t           j                            dddd          }t          j        |||          \  }}t	          j        |||          \  }}t          ||d	
           t          ||d	
           t          j        |dd<   t          j        |dd<   t          j        	                    |t          j
        |                    }t          j        	                    |t          j
        |                    }t	          j        |||          \  }}t          j        |                                |                                |          \  }}t          ||d	
           t          ||d	
           d S )NrT   r   r  *   r  r   rH   r   rM   r:   r   r^   )r   rJ  rK  r  r)   r   r'   r   rb   r   r:  r2  r+   r   r?   r   t_exr  r  r   s           r/   r  zTestTtest_rel.test_alternative  sw   JNNr"NEEJNNqNDD_Q{CCC
d1+>>>14e,,,,4e,,,, &!B$&!B$Eqrx{{33Eqrx{{331+>>>1_Q\\^^Q\\^^1<> > >
d4e,,,,4e,,,,,,r1   N)r2   r3   r4   rv  r  r  r  r  r  r  r   r   rR  r  r5   r1   r/   r  r    s        $ $ $*	8 	8 	86 6 6F F F( ( (> > >F F F
 []VY,?@@- - A@- - -r1   r  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            ddd	g          d
             ZdS )TestTtest_indc                    t           j                            d           t           j                            dd          g dz   }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           }t          j        |d d df         |d d df         d           }t          ||           t	          j        |d d d df         |d d dd f         d          }t          j        |d d d df         |d d dd f         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	
          }t          j        |d d df         |d d df         d	
          }t          ||           t	          j        |d d df         |d d df         d
          }t          j        |d d df         |d d df         d
          }t          ||           d S )Nr  rU   rJ   r  r   r   r   rH   T	equal_varF)r'   r   r1  r  r   r  r)   r   )r+   r  r  r  r  res4res5s          r/   rv  zTestTtest_ind.test_vs_nonmasked-  s   
	w)//"a((<<<7 wqqq!t}gaaadm<<1wqqq!t}==d### wqqq!t}gaaadm$GGG1wqqq!t}4HHHd###wqqq"1"u~wqqq!""u~AFFF2A2122QGGGd### 2A2122??d### wqqq!t}gaaadmtLLL1wqqq!t}MMMd###wqqq!t}gaaadmuMMM1wqqq!t}NNNd#####r1   c                 f   t           j                            d           t          j        t           j                            dd          g dg dg          }t                      5 }|                    t          d           |d d df         |d d d	f         ft           j	        t           j	        gd
dgffD ]_}t          j        | \  }}t          |t           j	        t           j	        f           t          |t           j	        t           j	        f           `	 d d d            d S # 1 swxY w Y   d S r  )r'   r   r1  rb   r   r  r   r;  r   r   r)   r  r   r  s         r/   r  zTestTtest_ind.test_fully_maskedJ  sX   
	w/")//!Q"7"7yyy)))>TUUU   	8CJJ~'NOOO!!!!Q$-A72626:JSRUJ9WX 8 8'.1"1rvrv&6777"1rvrv&677778	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8r  c                    t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         |d d df                   }d}t          ||d	           d S r  )r'   r   r1  r  r)   r  r   r  s       r/   r  z$TestTtest_ind.test_result_attributesT  r  r1   c                     t          j        g g           }t          t          j        t          j        |                               d S r  )r)   r  r   r'   r9  r:  r  s     r/   r  zTestTtest_ind.test_empty\  r  r1   c                 
   t          j        g dg d          \  }}t          t          j        |          |ft          j        df           t                      5 }|                    t          d           t          j        g dg d          \  }}t          |t          j
        t          j
        f           t          |t          j
        t          j
        f           d d d            n# 1 swxY w Y   t          j        g dg dd          \  }}t          t          j        |          |ft          j        df           t          t          j        g dg dd          t          j
        t          j
        f           d S )Nr7  r  r   r  Fr  )r)   r  r
   r'   r  r{  r   r;  r   r   r   r  s       r/   r  z TestTtest_ind.test_zero_division`  s   			999551bfQii^bfa[111   	4CJJ~'NOOO#IIIyyy99DAqq2626"2333q2626"2333		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 			999FFF1bfQii^bfa[1116+IIIyyy6;= = =?Avrv>N	P 	P 	P 	P 	Ps   BC++C/2C/c                     d}t          j        t          |          5  t          j        g dg dd           d d d            d S # 1 swxY w Y   d S r  r  r  s     r/   r  z"TestTtest_ind.test_bad_alternativeo  r  r  r   r   r   c                 J   t           j                            dddd          }t           j                            dddd          }t          j        |||          \  }}t	          j        |||          \  }}t          ||d	           t          ||d	           t          j        |d
d<   t          j        |dd<   t          j        	                    |t          j
        |                    }t          j        	                    |t          j
        |                    }t          j        |                                |                                |          \  }}t	          j        |||          \  }}t          ||d	           t          ||d	           d S )NrT   rH   r\   r  r  r   r   rM   r:   r   rZ   r[   r^   )r   rJ  rK  r  r)   r   r'   r   rb   r   r:  r2  r  s           r/   r  zTestTtest_ind.test_alternativet  sw   JNNr3NGGJNNq#NFF_Q{CCC
d1+>>>14e,,,,4e,,,, &!B$6"R%Eqrx{{33Eqrx{{33_Q\\^^Q\\^^1<> > >
d1+>>>14e,,,,4e,,,,,,r1   Nr2   r3   r4   rv  r  r  r  r  r  r   r   rR  r  r5   r1   r/   r  r  ,  s        $ $ $:8 8 86 6 6( ( (P P PF F F
 []VY,?@@- - A@- - -r1   r  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            ddd	g          d
             ZdS )TestTtest_1sampc                 *   t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         d          }t          j        |d d df         d          }t          ||           d S )Nr  rU   rJ   r  r   r   )r'   r   r1  r  r   ttest_1sampr)   r   )r+   r  r  r  s       r/   rv  z!TestTtest_1samp.test_vs_nonmasked  s    
	w)//"a((<<<7  A22!'!!!Q$-33d#####r1   c                    t           j                            d           t          j        t           j                            d          g d          }t           j        t           j        f}t                      5 }|                    t          d           t           j        t           j        fdf|dffD ]3}t          j        | \  }}t          ||           t          ||           4	 d d d            d S # 1 swxY w Y   d S )Nr  rI   r  r^   r  r   )r'   r   r1  rb   r   r  r   r   r;  r   r)   r  r   )r+   r  r  r<  r  r  r   s          r/   r  z!TestTtest_1samp.test_fully_masked  s+   
	w/")//!"4"4999EEEFBF#   	0CJJ~'NOOO626*C07C.A 0 0)401"1h///"1h////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   ;A.C77C;>C;c                     t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         d          }d}t          ||d	           d S r  )r'   r   r1  r  r)   r  r   r  s       r/   r  z&TestTtest_1samp.test_result_attributes  sr    
	w)//"a((<<<7 A22,
C555555r1   c                     t          j        g d          }t          t          j        t          j        |                               d S )Nr   )r)   r  r   r'   r9  r:  r  s     r/   r  zTestTtest_1samp.test_empty  s:    !"a((rx~~&&'''''r1   c                    t          j        g dd          \  }}t          t          j        |          |ft          j        df           t                      5 }|                    t          d           t          j        g dd          \  }}t          t          j
        |                     t          |t          j        t          j        f           d d d            d S # 1 swxY w Y   d S )Nr7  r   r   r  )r)   r  r
   r'   r  r{  r   r;  r   r   r:  r   r   r  s       r/   r  z"TestTtest_1samp.test_zero_division  s	   !)))Q//1bfQii^bfa[111   	4CJJ~'NOOO%iii33DAqBHQKK   q2626"2333		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   A=C##C'*C'c                     d}t          j        t          |          5  t          j        g ddd           d d d            d S # 1 swxY w Y   d S )Nr  r   r  rJ   r  r   )r   r	   r   r)   r  r  s     r/   r  z$TestTtest_1samp.test_bad_alternative  s    E]:S111 	@ 	@yyy!????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AA	A	r   r   r   c                 X   t           j                            dddd          }t          j        |d|          \  }}t	          j        |d|          \  }}t          ||d	           t          ||d	           t          j        |d
d<   t          j        	                    |t          j
        |                    }t          j        |                                d|          \  }}t	          j        |d|          \  }}t          ||d	           t          ||d	           d S )NrT   rH   r\   r  r  r   r   rM   r:   r   r^   )r   rJ  rK  r  r)   r   r'   r   rb   r   r:  r2  )r+   r   r?   r  r  r  r   s          r/   r  z TestTtest_1samp.test_alternative  s(   JNNr3NGG&q!EEE
d!!QK@@@14e,,,,4e,,,, &!B$Eqrx{{33&q||~~q3>@ @ @
d!!QK@@@14e,,,,4e,,,,,,r1   Nr  r5   r1   r/   r  r    s        $ $ $	0 	0 	06 6 6( ( (4 4 4@ @ @
 []VY,?@@- - A@- - -r1   r  c                       e Zd ZdZd ZdS )TestDescribez
    Tests for mstats.describe.

    Note that there are also tests for `mstats.describe` in the
    class TestCompareWithStats.
    c                    t           j                            g dg dgg dg dg          }t          j        |d          }t          |j        dd	g           |j        \  }}t          |d
dg           t          |d	dg           t          |j        ddg           t          |j	        ddg           t          |j
        ddg           t          |j        ddg           d S )N)r   r   rH   rI   rJ   r   )r   r   r   r   rI   rI   )r   r   r   r   r   r   )r   r   r   r   r   r   r^   r   r   r   rJ   r   rI   r   r   r   r   g       )r'   rb   r   r)   describer
   nobsminmaxmeanvarianceskewnessr   r  )r+   rP   r  aminamaxs        r/   test_basic_with_axisz!TestDescribe.test_basic_with_axis  s	   E 2 2 2 2 2 2 4%7%7%7%7%7%7%9  : : +++V[1a&)))]
dTAq6"""TAq6"""V[3*---V_sCj111V_sCj111$66666r1   N)r2   r3   r4   r  r	  r5   r1   r/   r  r    s-         7 7 7 7 7r1   r  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d'S )(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                 
    g dS )z9 Returns list of sample sizes to be used for comparison. )r  r\   rT   r   r5   r  s    r/   get_nzTestCompareWithStats.get_n  s    !!!!r1   c                 B   t           j                            d           t           j                            |          }|t           j                            |          z   }t          j        t          |          dz   d          }t          j        t          |          dz   d          }||dt          |          <   ||dt          |          <   |dk    }t           j                            ||          }t           j                            ||          }||||fS )Nr  r   g 7yACr   g s?Cr^   )r'   r   r1  r  r  rU  rb   r(   )r+   r   r?   r   r|  ymr_   s          r/   generate_xy_samplez'TestCompareWithStats.generate_xy_sample   s     		wIOOA	"""WSVVaZ&&WSVVaZ&&1SVV81SVV8DyU[[$[''U[[$[''!R|r1   c                    t          j        ||ft           j                  }t          j        ||ft           j                  }t          j        |dz   |ft           j                  }t          j        |dz   |ft           j                  }t          |          D ]*}|                     |          \  |d d |f<   |d d |f<   }}	+|d|         |d|d d f<   |d|         |d|d d f<   t           j                            |t          j        |                    }t           j                            |t          j        |                    }||||fS )Nr   r   r^   )r'   r  r   r   r  rb   r(   r:  )
r+   r   nxr?   r   r|  r  r  r[  rZ  s
             r/   generate_xy_sample2Dz)TestCompareWithStats.generate_xy_sample2D  s9   GQGRV$$GQGRV$$Wac2Y''Wac2Y''r 	B 	BA'+'>'>q'A'A$AaaadGQqqq!tWb""qsV1Q36
qsV1Q36
U[["(2,,[//U[["(2,,[//!R|r1   c                 :   |                                  D ]}|                     |          \  }}}}t          j        ||          }t          j                            ||          }t          t          j        |          t          j        |                     d S r  )r  r  r   r"  r)   r   r'   r   )r+   r   r?   r   r|  r  result1result2s           r/   test_linregressz$TestCompareWithStats.test_linregress  s     	F 	FA22155LAq"b&q!,,Gl--b"55GBJw//G1D1DEEEE		F 	Fr1   c                 &   |                                  D ]{}|                     |          \  }}}}t          j        ||          \  }}t          j                            ||          \  }}	t          ||d           t          ||	d           |d S )Nrh  r  )r  r  r   r   r)   r   
r+   r   r?   r   r|  r  r   r   rmpms
             r/   r   z"TestCompareWithStats.test_pearsonr%  s     	3 	3A22155LAq"b>!Q''DAq\**2r22FB2r22222r22222	3 	3r1   c                 "   |                                  D ]y}|                     |          \  }}}}t          j        ||          \  }}t          j                            ||          \  }}	t          ||d           t          ||	d           zd S Nrh  )r  r  r   r   r)   r   r  s
             r/   r   z#TestCompareWithStats.test_spearmanr.  s     	+ 	+A22155LAq"b?1a((DAq\++B33FB2r***2r****	+ 	+r1   c                 r    t          j        d          }t          t          t          j        ||d           d S )Nr`   F)r'   r   r  r   r)   r   r   s     r/   !test_spearmanr_backcompat_usetiesz6TestCompareWithStats.test_spearmanr_backcompat_useties6  s0     IaLLj&"2Aq%@@@@@r1   c                    |                                  D ]}|                     |          \  }}}}t          j        t	          |                    }t          j                            t	          |                    }t          ||d           t          j        t	          |                    }t          j                            t	          |                    }t          ||d           d S )NgvIh%<=r:   )r  r  r   r<   r  r)   r   r+   r   r?   r   r|  r  r   r  s           r/   
test_gmeanzTestCompareWithStats.test_gmean<  s     	/ 	/A22155LAq"bCFF##A##CGG,,BAr....CFF##A##CGG,,BAr.....	/ 	/r1   c                    |                                  D ]}|                     |          \  }}}}t          j        t	          |                    }t          j                            t	          |                    }t          ||d           t          j        t	          |                    }t          j                            t	          |                    }t          ||d           d S NrT   )r  r  r   rB   r  r)   r   r!  s           r/   
test_hmeanzTestCompareWithStats.test_hmeanG  s     		+ 		+A22155LAq"bCFF##A##CGG,,B2r***CFF##A##CGG,,B2r****		+ 		+r1   c                 x   |                                  D ]}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||d           t          j        |          }t          j                            |          }t          ||d           d S r$  )r  r  r   r  r)   r   r!  s           r/   	test_skewzTestCompareWithStats.test_skewS  s     		+ 		+A22155LAq"b
1A""2&&B2r***
1A""2&&B2r****		+ 		+r1   c                 x   |                                  D ]}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||d           t          j        |          }t          j                            |          }t          ||d           d S r$  )r  r  r   r  r)   r   r!  s           r/   r  z TestCompareWithStats.test_moment_  s     		+ 		+A22155LAq"bQA$$R((B2r***QA$$R((B2r****		+ 		+r1   c                    |                                  D ]i}|                     |          \  }}}}||                                z
  |                                z  }||                                z
  |                                z  }t	          t          j        |          |d           t	          t          j        |          |d           t	          t          j        |          t
          j                            |dt          |                             d           t	          t          j        |          t
          j                            |dt          |                             d           kd S )N绽|=r:   r   )	r  r  r  r  r   r   r  r)   rU  )r+   r   r?   r   r|  r  zxzys           r/   r   z TestCompareWithStats.test_zscorek  sG    	( 	(A22155LAq"b affhh,!%%'')Baffhh,!%%'')B ELOORe<<<<ELOORe<<<< ELOOU\-@-@Ac!ffH-N-N!&( ( ( (ELOOU\-@-@Ac!ffH-N-N!&( ( ( ( (	( 	(r1   c                 x   |                                  D ]}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||d           t          j        |          }t          j                            |          }t          ||d           d S r$  )r  r  r   r  r)   r   r!  s           r/   r  z"TestCompareWithStats.test_kurtosis}  s     	+ 	+A22155LAq"bq!!A&&r**B2r***q!!A&&r**B2r****	+ 	+r1   c           	         t          j        d                              dd          }t           j                            |          }t          j        |d          }t
          j                            |d          }t          |dd           t          |dd           | 	                                D ]9}| 
                    |          \  }}}}	t          t
          j                            |d d	
          t          j        |d d	
          d           t          t
          j                            |	d d	
          t          j        |d d	
          d           t          t
          j                            |d d
          t          j        |d d
          d           t          t
          j                            |	d d
          t          j        |d d
          d           ;d S )NrU   r   rJ   r   r  g'e@gh㈵>r  r   )r%   r     r  )r'   r   r_  rb   r(   r   r  r)   r   r  r  r   )
r+   rP   amr   r  r   r?   r   r|  r  s
             r/   r  zTestCompareWithStats.test_sem  s   IbMM!!!Q''U[[^^Iaa   \bq)):D1111JT2222 		M 		MA22155LAq"b 0 0$Q 0 G G %	!$Q ? ? ?M M M M 0 0$Q 0 G G %	!$Q ? ? ?M M M M 0 0$Q 0 G G %	!$Q ? ? ?M M M M 0 0$Q 0 G G %	!$Q ? ? ?M M M M M		M 		Mr1   c           	      ~   |                                  D ]}|                     |          \  }}}}t          j        |d          }t          j                            |d          }t          d          D ]D}t          t          j        ||                   t          j        ||                   d           Ed S )Nr   r  r`   r]  r  )	r  r  r   r  r)   r   r   r'   r   )	r+   r   r?   r   r|  r  r   r  iis	            r/   test_describez"TestCompareWithStats.test_describe  s     	0 	0A22155LAq"bqq)))A&&r&22BAhh 0 0#BJqu$5$5$&Jr"v$6$6,.0 0 0 0 00		0 	0r1   c                 z    t          j        t          j        d                    }d}t	          ||d           d S )Nr   )r  r  r  r  r  r  Tr   )r)   r  r'   r   r   )r+   r  r   s      r/   test_describe_result_attributesz4TestCompareWithStats.test_describe_result_attributes  s;    1.."
FJ4888888r1   c                     |                                  D ]_}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||           `d S r  )r  r  r   r   r)   r   r!  s           r/   test_rankdataz"TestCompareWithStats.test_rankdata  su     	# 	#A22155LAq"bq!!A&&q))BAr""""		# 	#r1   c                 h   |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           d S r  )r  r  r   r   tmeanr)   r+   r   r?   r   r|  r  s         r/   
test_tmeanzTestCompareWithStats.test_tmean  s     	K 	KA22155LAq"bAu|/A/A"/E/ErJJJAu|/A/A"/E/ErJJJJ	K 	Kr1   c                    |                                  D ])}|                     |          \  }}}}t          t          j        |d          t          j                            |d          d           t          t          j        |d          t          j                            |d          d           t          t          j        |d          t          j                            |d          d           t          t          j        |d          t          j                            |d          d           +d S )Nr   rT   r   )
upperlimit)r  r  r   r   tmaxr)   r:  s         r/   	test_tmaxzTestCompareWithStats.test_tmax  s8    
	J 
	JA22155LAq"b
1R 0 0 % 1 1"R 8 8"> > >
1R 0 0 % 1 1"R 8 8"> > >  
1 < < < % 1 1" 1 D DbJ J J
1 < < < % 1 1" 1 D DbJ J J J
	J 
	Jr1   c                 x   |                                  D ]#}|                     |          \  }}}}t          t          j        |          t          j                            |                     t          t          j        |          t          j                            |                     t          t          j        |d          t          j                            |d          d           t          t          j        |d          t          j                            |d          d           %d S )Nr   )
lowerlimitrT   )r  r  r
   r   tminr)   r   r:  s         r/   	test_tminzTestCompareWithStats.test_tmin  s    	K 	KA22155LAq"bA(9(9"(=(=>>>A(9(9"(=(=>>>
1 = = = % 1 1" 1 E ErK K K
1 = = = % 1 1" 1 E ErK K K K	K 	Kr1   c           	          |                                  D ]x}|                     |          \  }}}}t          j        ||          }t          j                            ||          }t          ||dt          |                   d           yd S )Nr   r*  r  )r  r  r   r  r)   r   rU  )r+   r   r?   r   r|  r  r  zms           r/   r  zTestCompareWithStats.test_zmap  s     	9 	9A22155LAq"b
1a  A""2r**BAr!CFF(|%88888		9 	9r1   c                 l   |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           d S Nr]  r  )r  r  r   r   r  r)   r:  s         r/   r  z#TestCompareWithStats.test_variation  s     	, 	,A22155LAq"b 2 2EL4J4J24N4N(*, , , , 2 2EL4J4J24N4N(*, , , , ,		, 	,r1   c                 l   |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           d S rG  )r  r  r   r   tvarr)   r:  s         r/   	test_tvarzTestCompareWithStats.test_tvar  s     	, 	,A22155LAq"b
1u|/@/@/D/D(*, , , ,
1u|/@/@/D/D(*, , , , ,		, 	,r1   c                     t          j        d          }t          j        |d          }t          j                            |d          }t          t          j        |          |j        |j                             d S )NrU   r   )	r'   r   r   ri  r)   r   r  r,   r_   )r+   rP   r  bms       r/   test_trimbothz"TestCompareWithStats.test_trimboth  s`    IbMMN1c""\""1c**

BGRWH$566666r1   c                    |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           t          t          j        |d          t          j                            |d          d           d S )Nrh  r  )r   r   )rZ  )r  r  r   r   tsemr)   r:  s         r/   	test_tsemzTestCompareWithStats.test_tsem  s     	, 	,A22155LAq"b
1u|/@/@/D/D(*, , , ,
1u|/@/@/D/D(*, , , ,
1Y ? ? ? % 1 1"Y 1 G G(*, , , , ,	, 	,r1   c                     |                                  D ]e}|dk    r]|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||           fd S )Nr   )r  r  r   ro  r)   r   r!  s           r/   test_skewtestz"TestCompareWithStats.test_skewtest  s|     	' 	'A1uu#66q991b"N1%%\**2..2&&&	' 	'r1   c                     t          j        d          dz  }t          j        |          }d}t	          ||d           d S r  )r'   r(   r)   ro  r   r  s       r/   test_skewtest_result_attributesz4TestCompareWithStats.test_skewtest_result_attributes  sF    H+,,a/oa  ,
C555555r1   c                    t           j                            d          dz  }t          j        |          }t          j                            |          }t          t          j        |          t          j        |                     d S )N)rU   rH   g      4@)r'   r   r   ro  r)   r   r   )r+   r?   r   r  s       r/   test_skewtest_2D_notmaskedz/TestCompareWithStats.test_skewtest_2D_notmasked	  sf    IW%%+N1\""1%%
1rz"~~66666r1   c                    d}|                                  D ]}|dk    r|                     ||          \  }}}}t          j        |          }t          j                            |          }t          |d         d         |d         d         d           t          |d         d         |d         d         d           d S )NrH   r   r   rM   r:   r   )r  r  r   ro  r)   r   )	r+   r  r   r?   r   r|  r  r   r  s	            r/   test_skewtest_2D_WithMaskz.TestCompareWithStats.test_skewtest_2D_WithMask  s     	? 	?A1uu#88B??1b"N1%%\**2..!QAq>>>>!QAq>>>>	? 	?r1   c           	      "   t          j        d          5  t                      5 }|                    t          d           |                                 D ]}|dk    r|                     |          \  }}}}t          j        |          }t          j	                            |          }t          t          j        |          t          j        |                     	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr  )overz!kurtosistest only valid for n>=20r   )r'   rn   r   r;  UserWarningr  r  r   rn  r)   r   r   )	r+   r<  r   r?   r   r|  r  r   r  s	            r/   test_normaltestz$TestCompareWithStats.test_normaltest  s   [g&&& 	C 	C(9(;(; 	CsJJ{$GHHHZZ\\ C Cq55#'#:#:1#=#=LAq"b(++A0044B#BJqMM2:b>>BBBC	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs5   DB:C, D,C0	0D3C0	4DDDc                    t          j        g d                              d          }t          j        g d                              d          }|dk    }t           j                            ||          }|                                |                                }}t          j        |          }t          j                            |          }t          ||           t          ||           t          ||           t          j                            g           \  }	}
t          |
t          j        dt           j
                             d S )N)r   r   rH   rH   rI   rI   rI   rJ   rJ   rJ   rJ   r  )r   r   rH   rH   rI   rI   rI   rJ   rJ   rJ   rJ   r   r   r   r   r  r^   r   r   )r'   r   ru   rb   r(   r  r   find_repeatsr)   r
   intp)r+   r?   tmpr_   r|  x_origxm_origr   r  rN  r  s              r/   test_find_repeatsz&TestCompareWithStats.test_find_repeats%  s   J88899@@IIjFFFGGNNwWWr	U[[4[((&&((BGGIIq!!\&&r**QQR!!! L--b11	6VRXarw77788888r1   c                 J   |                                  D ]}|                     |          \  }}}}t          j        ||          }t          j                            ||          }t          |d         |d         d           t          |d         |d         d           d S )Nr   rT   r  r   r   )r  r  r   r  r)   r   r!  s           r/   r  z$TestCompareWithStats.test_kendalltau8  s     	8 	8A22155LAq"b A&&A((R00B!beR8888!beQ77777	8 	8r1   c           	      "   |                                  D ]y}|                     |          \  }}}}t          j        |          }t          j                            |          }t          |j        |dt          |                              zd S )Nr   )r  r  r   r  r)   r   r&  rU  r!  s           r/   r  z)TestCompareWithStats.test_obrientransform@  s     	3 	3A22155LAq"b%a((A--b11BR#a&&\2222		3 	3r1   c           
         dD ]L}t                      5  dD ]}|                                 D ]}|                     |          \  }}}}t          j        |t          j        j        ||          }t          j                            |t          j        j        ||          }	t          t          j
        |          t          j
        |	                     t          j        |t          j        j        ||          }
t          t          j
        |          t          j
        |
                      	 ddd           n# 1 swxY w Y   NdS )zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.autor+  asympr   r   r-  r   r  N)r   r  r  r   ks_1samprJ  cdfr)   r
   r'   r   r+   r  r   r   r?   r   r|  r  r  r  r  s              r/   test_ks_1sampz"TestCompareWithStats.test_ks_1sampG  s   . 		I 		ID"$$ I I#C I IK!ZZ\\ I I'+'>'>q'A'A1b"$~a[_cddd$|44RU`gk4ll$RZ%5%5rz$7G7GHHH$~b%*.k`deee$RZ%5%5rz$7G7GHHHHIII I I I I I I I I I I I I I I		I 		Is   D#EE	E	c           
      D   dD ]}t                      5  dD ]}|                                 D ]}|                     |          \  }}}}t          j        |d||          }t          j                            |d||          }	t          t          j        |          t          j        |	                     t          j        |d||          }
t          t          j        |          t          j        |
                     ،	 ddd           n# 1 swxY w Y   dS )zKChecks that 1-sample mstats.kstest and stats.kstest agree on masked arrays.rg  rj  rJ  rk  N)	r   r  r  r   kstestr)   r
   r'   r   rn  s              r/   test_kstest_1sampz&TestCompareWithStats.test_kstest_1sampT  s   . 		I 		ID"$$ I I#C I IK!ZZ\\ I I'+'>'>q'A'A1b"$|Av;UYZZZ$|222v;]a2bb$RZ%5%5rz$7G7GHHH$|BKVZ[[[$RZ%5%5rz$7G7GHHHHIII I I I I I I I I I I I I I I		I 		Is   C2DD	D	c           
         dD ]<}t                      5 }|dv rd}|                    t          |           dD ]}|                                 D ]}|                     |          \  }}}}	t          j        ||||          }
t
          j                            ||	||          }t          t          j
        |
          t          j
        |                     t          j        ||||          }t          t          j
        |
          t          j
        |                     ،	 ddd           n# 1 swxY w Y   >dS )zVChecks that mstats.ks_2samp and stats.ks_2samp agree on masked arrays.
        gh-8431rg  rh  r+  )ks_2samp: Exact calculation unsuccessful.rj  rk  N)r   r;  r   r  r  r   r  r)   r
   r'   r   r+   r  r<  messager   r   r?   r   r|  r  r  r  r  s                r/   r  z"TestCompareWithStats.test_ks_2sampa  s    / 	I 	ID"$$ I,,,IGJJ~w777#C I IK!ZZ\\ I I'+'>'>q'A'A1b"$~aRVWWW$|44R[_4``$RZ%5%5rz$7G7GHHH$~b!SWXXX$RZ%5%5rz$7G7GHHHHII	I I I I I I I I I I I I I I I	I 	I   DD44D8	;D8	c           
         dD ]<}t                      5 }|dv rd}|                    t          |           dD ]}|                                 D ]}|                     |          \  }}}}	t          j        ||||          }
t
          j                            ||	||          }t          t          j
        |
          t          j
        |                     t          j        ||||          }t          t          j
        |
          t          j
        |                     ،	 ddd           n# 1 swxY w Y   >dS )zKChecks that 2-sample mstats.kstest and stats.kstest agree on masked arrays.rg  rt  ru  rj  rk  N)r   r;  r   r  r  r   rq  r)   r
   r'   r   rv  s                r/   test_kstest_2sampz&TestCompareWithStats.test_kstest_2sampr  s   . 	I 	ID"$$ I,,,IGJJ~w777#C I IK!ZZ\\ I I'+'>'>q'A'A1b"$|AqkPTUUU$|222r{Y]2^^$RZ%5%5rz$7G7GHHH$|B{QUVVV$RZ%5%5rz$7G7GHHHHII	I I I I I I I I I I I I I I I	I 	Irx  N))r2   r3   r4   r  r  r  r  r  r   r   r  r"  r%  r'  r  r   r  r  r3  r5  r7  r;  r?  rC  r  r  rJ  rM  rP  rR  rT  rV  rX  r\  rc  r  r  ro  rr  r  rz  r5   r1   r/   r  r    sl        ," " "    F F F3 3 3+ + +A A A	/ 	/ 	/
+ 
+ 
+
+ 
+ 
+
+ 
+ 
+( ( ($	+ 	+ 	+M M M*0 0 09 9 9# # #K K KJ J J	K 	K 	K9 9 9, , ,, , ,7 7 7	, 	, 	,' ' '6 6 67 7 7	? 	? 	?C C C9 9 9&8 8 83 3 3I I II I II I I"I I I I Ir1   r  c                       e Zd Zej                            dddddej        dddddddddej        g          Zej                            ddddej        dddddddg          ZdZ	d Z
d Zd	 Zd
 Zd Zd Zd ZdS )TestBrunnerMunzelr   rH   rJ   rI   r   rh  c                    t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          ||| j                   t          ||k               t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )	Nr   r   r   r  |	&	@|	&	gҏGg?g@-pL?)r)   brunnermunzelXYr   significantr   )	r+   u1r   u2r   u3r  u4p4s	            r/   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sided  s   %dfdf&IIIB%dfdf)LLLB%dfdf)LLLB%dfdf&IIIBBD,<====BD,<====bB 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 5$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6 	6 	6r1   c                 N   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nr-  r   r  r~  r   ҏGw?r)   r  r  r  r   r  r+   r  r   r  r   s        r/   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sided  s    %dfdf+NNNB%dfdf+NNNBBD,<====B 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 5$($4	6 	6 	6 	6 	6 	6r1   c                 F   t          j        | j        | j                  \  }}t          j        | j        | j                  \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nr  r~  r  r  r  r  s        r/   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default  s    %dfdf55B%dfdf55BBD,<====B 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 5$($4	6 	6 	6 	6 	6 	6r1   c                     d}d}t          |dv           t          t          t          j        | j        | j        ||           d S )Nr   r  r,  r   r  r   r)   r  r  r  r+   r   distributions      r/   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error  sT    #CCDDDj*ff!"	$ 	$ 	$ 	$ 	$r1   c                 N   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nnormal)r  r  r~  r  g "H[?r  r  s        r/   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_norm  s    %dfdf8LLLB%dfdf8LLLBBD,<====B 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 5$($4	6 	6 	6 	6 	6 	6r1   c                     d}d}t          |dv           t          t          t          j        | j        | j        ||           d S )Nr-  r   )r  r  r  r  s      r/   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error  sS    !?2333j*ff!"	$ 	$ 	$ 	$ 	$r1   c                 6   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 r  )r)   r  r  r  r   r'   r:  )r+   r  r   r  r   r  r  s          r/   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput  s    %dfb11B%b$&11B%b"--Br1   N)r2   r3   r4   r'   rb   masked_invalidr   r  r  r  r  r  r  r  r  r  r  r5   r1   r/   r|  r|    s        
aAq!RVQAq!Q26; 	< 	<A
aAq"&!Q1aAFGGAK6 6 6.6 6 66 6 6	$ 	$ 	$	6 	6 	6	$ 	$ 	$
 
 
 
 
r1   r|  )NNr6   )?r  r   rO  numpyr'   r   numpy.marb   r   r   scipy.stats.mstatsr   r)   scipycommon_testsr   r   r	   r  numpy.ma.testutilsr
   r   r   r   r   r   r   numpy.testingr   scipy.statsr   r   r@   rC   rE   r   r   r   rU  r  r  r  r  r  r(  r+  r5  r=  rC  rO  rQ  re  ri  rk  r  r  r  r  r  r  r  r  r|  r5   r1   r/   <module>r     s                      # # # # # # # # # # # # # # # # #       - - - - - -  * * * * * *E E E E E E E E E E E E E E E E E E , + + + + + % % % % % %- - - - - - - -*! ! ! !! ! ! !73 73 73 73 73 73 73 73t 3  3  3  3  3  3  3  3F9 9 9 9 9 9 9 9,u6 u6 u6 u6 u6 u6 u6 u6p	u: u: u: u: u: u: u: u:pV/ V/ V/ V/ V/ V/ V/ V/r& & & & & & & &RA A A A A A A A*4 4 4 4 4 4 4 4@-9 -9 -9 -9 -9 -9 -9 -9`F F F,     $0 $0 $0N5 5 50 0 0"8 8 8:. . .8 8 8*E E E\8 \8 \8 \8 \8 \8 \8 \8~6 6 6 6 6 6 6 6.2 .2 .2 .2 .2 .2 .2 .2b6 6 6 6 6 6 6 6X- X- X- X- X- X- X- X-v[- [- [- [- [- [- [- [-|@- @- @- @- @- @- @- @-F7 7 7 7 7 7 7 70[I [I [I [I [I [I [I [I|c c c c c c c c c cr1   