
    bi^                       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mZ ddlmZ ddl m!Z!m"Z"  G d d      Z#dAdZ$dAdZ%e G d d             Z&e G d d             Z' G d d      Z( G d d      Z)e G d d             Z*e G d d             Z+ G d d      Z, G d d       Z-e G d! d"             Z.e G d# d$             Z/d% Z0d& Z1 G d' d(      Z2d) Z3d* Z4d+ Z5d, Z6e G d- d.             Z7 G d/ d0      Z8 G d1 d2      Z9 G d3 d4      Z: G d5 d6      Z; G d7 d8      Z< G d9 d:      Z= G d; d<      Z>e G d= d>             Z? G d? d@      Z@y)Bz?
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)_mstats_basic	_stats_py)skip_xp_invalid_arg)SmallSampleWarningtoo_small_1d_not_omitc                       e Zd Zd Zy)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	        ||       y )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       ^/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/scipy/stats/tests/test_mstats_basic.pytest_mquantiles_limit_keywordz,TestMquantiles.test_mquantiles_limit_keyword   sg    xx'''**+,,,,
. 
/ &$&( ""4aw?FG,    N)__name__
__module____qualname__r3    r4   r2   r   r      s    -r4   r   c                 |    t        j                  | ||      }t        |||       t        |j                  |       y N)r(   dtypertol)r,   gmeanr   r
   r;   
array_liker0   r(   r;   r=   xs         r2   check_equal_gmeanrB   .   s.    Zd%8AAwT*% r4   c                 |    t        j                  | ||      }t        |||       t        |j                  |       y r:   )r   hmeanr   r
   r;   r?   s         r2   check_equal_hmeanrE   5   s.    JT7AAwT*% r4   c                       e Zd Zd Zd Zd Zd Zd Zej                  j                   eed       d      d	        Zd
 Zy)TestGeoMeanc                 T    g d}t        j                  dd      }t        ||d       y )Nr                     ?+=r<   )r*   powerrB   r.   ar0   s      r2   test_1dzTestGeoMean.test_1d=   s#    ((7E*!W51r4   c                     t        j                  g d      }d}t        ||       t        j                  g dg d      }t        j                  dd      }t        ||d	       y )
N

         (   r'   <   F   P   Z   d   gsŤF@rI   r   r   r   r   mask   UUUUUU?rO   r<   )mar+   rB   r*   rP   rQ   s      r2   
test_1d_mazTestGeoMean.test_1d_maB   sL    HH>?!W%HH\5((5%(!W51r4   c                 j    t         j                  j                  g dg d      }d}t        ||       y )NrU   
r   r   r   r   r   r   r   r   r   r   r`   gdq_D@r*   rd   r+   rB   rQ   s      r2   test_1d_ma_valuezTestGeoMean.test_1d_ma_valueL   s.    EEKKA;  =!W%r4   c                 b    t         j                  j                  g d      }d}t        ||       y )N)
rV   rW   rX   rY   r'   rZ   r[   r\   r]   r   r   rh   rQ   s      r2   test_1d_ma0zTestGeoMean.test_1d_ma0S   s$    EEKK?@!W%r4   c                     t         j                  j                  g d      }t         j                  }t        j                  d      5  t        ||       d d d        y # 1 sw Y   y xY w)N)
rV   rW   rX   rY   r'   rZ   r[   r\   r]   ignore)invalid)r*   rd   r+   r   errstaterB   rQ   s      r2   test_1d_ma_infzTestGeoMean.test_1d_ma_infY   sI    EEKK@A&&[[* 	*a)	* 	* 	*s   AA'float96cannot find float96 so skippingreasonc                     t        j                  g dg d      }t        j                  dd      j	                  t        j
                        }t        ||t        j
                  d       y )NrI   r_   r`   rb   rc   rO   )r;   r=   )rd   r+   r*   rP   astyperr   rB   r.   rR   
desired_dts      r2   test_1d_float96zTestGeoMean.test_1d_float96`   sE     HH\5XXeU+222::>
!ZrzzFr4   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                   j                  |      |       y )NrI   r   r   r   r   r   r   r   r   r   r   r   r   r`   r   rO   r(   r=   rM   rN   rb         ?rL   rm   rV   rW   rX   rY   r'   rZ   r[   r\   r]   r^   n   x   g/,$qJ@)rd   r+   r*   rB   rP   rQ   s      r2   
test_2d_mazTestGeoMean.test_2d_mag   s    HHlL,?'|DF((<(!W159((BHHWe4HHS%0HHS%02 3 	!W2E: /1DE"%%++a.'2r4   N)r5   r6   r7   rS   re   ri   rk   rq   pytestmarkskipifhasattrr*   rz   r   r8   r4   r2   rG   rG   ;   s[    2
2&&* [[GB	22@  BGBG
3r4   rG   c                   n    e Zd Zd Zej
                  j                   eed       d      d        Z	d Z
y)TestHarMeanc                    t        j                  g dg d      }d}t        ||d       t        j                   j                  g d      }d}t        ||       t        j                   j                  g dg d	      }d
}t        ||       y )NrI   r_   r`   /袋.?rO   r<   rU   g=b#A@rg   gO?@rd   r+   rE   r*   rQ   s      r2   rS   zTestHarMean.test_1dz   sq    HH\5+!W51EEKKAB!W%EEKKA;  =!W%r4   rr   rs   rt   c                     t        j                  g dg d      }t        j                  dt        j                        }t        ||t        j                         y )NrI   r_   r`   r   r;   )rd   r+   r*   asarrayrr   rE   rx   s      r2   rz   zTestHarMean.test_1d_float96   s9     HH\5ZZ 9L
!Zrzz:r4   c                 4   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                   j                  |      |       y )NrI   r|   r}   r~   r`   r   rO   r   )gQ?g433333@g?rm   r   r   r   gmWUC@r   rQ   s      r2   test_2dzTestHarMean.test_2d   s|    HHlL,?'|DF((<(!W159L!W2E:/1DE"%%++a.'2r4   N)r5   r6   r7   rS   r   r   r   r   r*   rz   r   r8   r4   r2   r   r   x   sE    & [[GB	22@  B;B;
3r4   r   c                       e Zd Zd Zy)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       y )N)
r   r   r   r   rJ   rK   rL      r   rb   )
r   rK   rK   rK   r   rb            !@r   rV   rK   rL   )
r   r&   r&   r   r   rL   r         @r      T)use_missing)
r   r&   r&         @r   rL   r   r   r   r   )
r   r   r   r   rJ   rL   rK   r   r   rb   )
r   rK   r   rK   r   r   rb   r   rK   rV   )r   r   r   r   rJ   )rK   rL   r   r   rb   )r   rK   rK   rK   r   )rb   r   r   r   rV   r   r(   )r   rJ         @r   r   r   r   r   r   r   r   rJ   rJ   rJ   rJ   rJ   )rd   r+   r   r,   rankdatar   r.   rA   s     r2   test_rankingzTestRanking.test_ranking   s    HH+,FOOA.6	81Q%FOOA.9	;FOOA4@=	?HH+,FOOA.6	8HHk<01FOOA.(*:;	=FOOAA6(/:	<FOOA15(,7	9r4   N)r5   r6   r7   r   r8   r4   r2   r   r      s    9r4   r   c                       e Zd Zd Zd Zd Zd Zej                  j                   e
j                         dk(  d      d        Zej                  j                   e
j                         dk(  d      ej                  j                  d	               Zd
 Zej                  j!                  dd      ej                  j!                  dd      d               Zd Zej                  j&                  d        Zed        Zy)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        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       y # 1 sw Y   xY w)NrV   errorr   r   rm         Tr`   r   )r           r   )r   r   rK   rK   rJ   rc   )FFFT)r   r   r   g     X@)r   r   rK   rm   )rd   arangewarningscatch_warningssimplefilterRuntimeWarningr   r,   pearsonrr+   r   r   r*   sqrt)
r.   rA   prx1y1rpra   x2y2s
             r2   test_pearsonrzTestCorr.test_pearsonr   sm   IIbM$$& 	% !!'>:1 5a 8#>1TrT7 ;A >E&AA&BBqEVO$BqEVO$	% XX&'XXi r2&1Arwwqz!|,Au% +XX,48XXm$/r2&1Arwwqz!|,Au%5	% 	%s   B<G!!G*c                    t         j                  j                  g dg d      }t         j                  j                  g dg d      }t        j                  g d      }t        j                  g d      }t	        j
                  ||      \  }}t        j
                  ||      \  }}t        ||       t        ||       y )Nr   rJ   rK   rL   r   rb   )r   r   r   r   r   r   r`   )	   r   r   rb   r   r   )r   r   r   r   r   r   )r   rL   r   rb   )r   rb   r   r   )r*   rd   masked_arrayr+   r,   r   r   r
   )	r.   mxmyrA   ymrmpr   r   s	            r2   test_pearsonr_misaligned_maskz&TestCorr.test_pearsonr_misaligned_mask   s    UU 29KLUU 29KLHH\"HH\"R(B~~a#1RRr4   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       y )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  rV   i  i  gV-?correlationpvalueTrd   )
r   r,   	spearmanrr*   r   rd   fix_invalidlistranger   r.   rA   r   res
attributess        r2   test_spearmanrzTestCorr.test_spearmanr   s   ')>AF,,Qq1!4jAT$rvv.T$tBFF/KA..#R^^A%6AF,,Qq1!4jA00F,,Qq1!4i@$dD#tT#sCc383dD#sD#sCc38..#R^^A%6AF,,Qq1!4i@
 ttqT1Q4
!ad#""qvD'1S6#$ 	F,,Qq1!4e< q!$.
C5r4   c                 t   g d}g d}d}t        j                  ||      \  }}t        ||       t        |d       t        j                  ||d      \  }}t        ||       t        |d       t        j                  ||d      \  }}t        ||       t        |d	       t        j                  j                  d
      }d}t        j                  dd|      }d|z  |j	                  |      z   }t        j                  ||      \  }}	t        j                  ||d      \  }
}t        ||	dz         t        j                  ||d      \  }}t        |d|	dz  z
         ||
cxk(  r|k(  sJ  J t        j                  t        d      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr   r   g+;
?gr?greateralternativegb?lessgcH}?l   MBy r^   r   r   皙?rJ   r   zalternative must be 'less'...matchz	ekki-ekki)
r,   r   r   r*   randomdefault_rnglinspacer   r	   
ValueError)r.   rA   r   r_expr   r   rngnstat1p1stat2p2stat3p3s                 r2   test_spearmanr_alternativez#TestCorr.test_spearmanr_alternative  s   00 #1%15!,-1)<15!,-1&915!?+ ii##J/KK1a ECJJqM!$$Q*	r$$QyA	rBF#$$Qv>	rAQJ'&&&&&&]]:-LM 	<Q{;	< 	< 	<s   F..F7ppc64lezfails/crashes on ppc64lert   c                 r	   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       y )4N)r   rJ   r   rb   )rL   r   r      r   r   rV   gxO~>bananamethodr   rJ   g?>?gaV>r   rb   g}'}'?go&5>rm   r   g?>g}'}'r   r   r   r   r   g     :@gQgףp=
@r   r   g1UU?      ?
asymptoticglgN?g~ȋgQM?r   rW   rZ   rY   r\   !   C         -   gXJĿgvPwTk?r   Tr   )rd   r+   r*   r   r   r,   
kendalltaur   assert_raisesr   r   r   r   )r.   rA   r   expectedbzresultr   s           r2   test_kendalltauzTestCorr.test_kendalltau1  s
    HHRXXl+,HHRXXm,- :BJJv'8'8A'>?J HHRYYr]#HHRYYr]# +,BJJv'8'8A'>?J 	j&"3"3Q(K aDt!! '(:;BJJv'8'8A'>?J aDt!! '(:;BJJv'8'8A'>?J HHRYYr]#HHRYYr]4R4() ,-BJJv'8'8A'>?J aDt!! ();<BJJv'8'8A'>?J aDt!! ();<BJJv'8'8A'>?J NND$dBFF;<NND$tRVV<=NND$dBFF;<BJJv'8'8A'>?'.	0BJJv'8'8Al'ST'3	5BJJv'8'8A'>?'3	5 NNAq!QB2q"Ar1b!Q1aI JNNAr2r2r2q"bBBB2r2661N O""1a(BJJv.Y0GH /
FJ48r4   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                y )Nr   r   i    r   )
r*   r   floatrd   masked_greaterconcatenater   isfiniter,   r  )r.   rA   r   s      r2   test_kendalltau_largezTestCorr.test_kendalltau_large  sx     IId%(a&IId%(NNAdeHah/0F--a3A678r4   c                 Z   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   j                  d      g d       y )NrL   rJ         r   r   rK   rL   rK   r   rK   rJ   r   rK   r   r   rJ   rK   r   rK   rb      r   r	     zglobal p-value (indep)gMb?zseasonal p-value)g
ףp=
?g(\?皙?g{Gz?)r   rd   r   Tr,   kendalltau_seasonalr   round)r.   rA   outputs      r2   test_kendalltau_seasonalz!TestCorr.test_kendalltau_seasonal  s    31b"aAq!Q:4Aq"aAq#q!S91b!RaAq!Q:< NN1++A.F#;<eQGF#56<<Q?1	3r4   r  )exactr  r   	two-sidedr   r   c                 b   t         j                  j                  d      }d}|j                  |      }|j                  |      }|j                  |      dkD  }t        j                  ||      }t        j                  ||      }	t        j                  ||	||      }
|j                         }|	j                         }t        j                  ||||      }t         j                  ||<   t         j                  ||<   t        j                  |||d|      }t        |
|       t        ||       y )Nl   iL r'   r   r`   )r  r   omit)r  
nan_policyr   )r*   r   r   rd   r+   r,   r  
compressedr   r   r   )r.   r  r   r   r   rA   r   ra   x_maskedy_masked
res_maskedx_compressedy_compressedres_compressedres_nans                  r2   test_kendalltau_mstats_vs_statsz(TestCorr.test_kendalltau_mstats_vs_stats  s	    ii##J/JJqMJJqMzz!}s"88AD)88AD)&&hv;H
  **,**,)),v;P &&$&&$""qFM 	
N30r4   c           	          ddddddddd}|j                         D ]-  \  }}t        j                  |d   |d	         }t        ||       / y )
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        r2   test_kendall_p_exact_mediumz$TestCorr.test_kendall_p_exact_medium  se     &<%;"8"%"8"%%;%;= )..0 	/LB00A1>CX.	/r4   c                     ddddddd}|j                         D ]-  \  }}t        j                  |d   |d	         }t        ||       / y )
NgE?gU`Ux<?gve?gZ?g=?gG?))i  i5  )i  i\  )i   idd )i!  ih )i@  i 	 )iA  i 	 r   r   rD  rG  s        r2   test_kendall_p_exact_largez#TestCorr.test_kendall_p_exact_large  s`     '=&<'='=(>(>@ )..0 	/LB00A1>CX.	/r4   c                 L   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#$       y )%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   rm   g-@g+@g(@g333333$@gffffff@gffffff@g333333@gffffff@g333333@r   ffffff
@g	@r   ffffff@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        r2   test_pointbiserialzTestCorr.test_pointbiserial  s   
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1!Q7:GQG ##Aq).
C5r4   N)r5   r6   r7   r   r   r   r  r   r   r   platformmachiner  slowr!  r-  parametrizer<  rJ  xslowrL  r   rR  r8   r4   r2   r   r      s'   &>$6L,<\ [[(((*i79  ;T9;T9l [[(((*i79  ;[[9 ;9
3 [[X'>?[[],LM1 N @1:/ [[/ / 6	 6r4   r   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)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      j                  dd      }dgdz  dgdz  z   dgdz  z   }t        j                  |dd	d       }t        |j                  j                         |       t        j                  |dd	d      }t        |j                  j                         |       t        j                  |dd	d      }t        |j                  j                  j                         |       t        j                  d      j                  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                  j                         |       t        j                  |dd	d      }t        |j                  j                         |       t        j                  |j                  dd	d      }t        |j                  j                  j                         |       y )NrV   
r   r   rJ   rK   rL   r   rb   r   r   r   )rJ   r   )
NNrJ   rK   rL   r   rb   r   r   NFFlimits	inclusive)
NNNrK   rL   r   rb   r   NN)r   r(  T)r^  relative)
Nr   rJ   rK   rL   r   rb   r   NN   r   rm   r   )NNrJ   rK   rL   Nrb   r   r   NNNr^   r   r[   rW   )r`  r(   r   r	  )
rd   r   r
   r,   trimr   reshape_maskravelr)  )r.   rR   rA   r  trimxs        r2   	test_trimzTestTrimming.test_trim  s`   IIbMV[[^%:;IIbMV[[5)+IJIIbMV[[%-H9	;IIbMV[[)TB3	5 IIbM!!1R&	AaDV[[E*K	M IIcN""2r*3r6QCF?aSV+Ay4dCU[[&&((3Ay4a@U[[&&((3Ay4bAU[[]]((*H5 IIcN""2r*!3r6QCF?aSV+Ay4dCU[[&&((3Ay4a@U[[&&((3ACCTCUWW]]((*H5r4   c                    t        j                  d      }t        t        j                  |      j                         d       t        t        j                  |d      j                         d       t        |dd t        j                  |      }t        |j                         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        |_        |j                  d      }t        t        j                  |      j                         d       t        t        j                  |      j                         d       y )Nr^   rZ   r   )tailr\   r'   r[   0   r   r#  r   "   rW      )rV   rV   )rd   r   r
   r,   trimbothcounttrimtailr   rd  r   rc  )r.   rA   rf  s      r2   test_trim_oldzTestTrimming.test_trim_old  s    IIcNV__Q'--/4V__QC0668"="R"U[[]B'U[[1#b&A3r6/QCF":aSV"Cqc"f"LMIIgV__Q'--/4V__Q'--/4r4   c                     t        j                  d      }t        j                  |dd      }t        j                  g dg d      }t        ||       t        |j                  |j                         y )NrV   )g333333?gQ?r\  r]  r[  )
r   r   r   r   r   r   r   r   r   r   r`   )rd   r   r,   trimrr+   r
   ra   )r.   rA   r  r  s       r2   
test_trimrzTestTrimming.test_trimr%  sR    IIbMaO88:!?AVX&V[[(--0r4   c                     t        j                  g d      }t        t        j                  |d      dd       t        t        j                  |d      dd       t        t        j                  |d      dd       y )NM   W   X   r                  i  i(  i+  i2  ix  i  i  i  i  i3
  r   iW  r   )r   r   r(  r(  i  )rd   r+   r   r,   trimmed_meanr.   r/   s     r2   test_trimmedmeanzTestTrimming.test_trimmedmean-  sb    xx @ AF//S93BF//Y?aHF//Y?aHr4   c                    t         j                  j                  d      }|j                  d      }t        j                  |      }t	        j
                  |g d      }t        t        j                  |d      |j                                y )Nl   l{f0j rW   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   r   sortrd   r+   r   r,   trimmed_varvarr.   r   	data_origr/   s       r2   test_trimmedvarzTestTrimming.test_trimmedvar4  k     ii##$78JJBJ'	wwy!xx $B C**9c:DHHJGr4   c                    t         j                  j                  d      }|j                  d      }t        j                  |      }t	        j
                  |g d      }t        t        j                  |d      |j                                y )Nl   /{Gzi rW   r  r  r`   r   )
r*   r   r   r  rd   r+   r   r,   trimmed_stdstdr  s       r2   test_trimmedstdzTestTrimming.test_trimmedstd>  r  r4   c                     t        j                  g d      }t        t        j                  |d      dd       t        t        j                  |d      dd       y )Nru  r  g>L@r   r(  )rd   r+   r   r,   trimmed_stder  s     r2   test_trimmed_stdezTestTrimming.test_trimmed_stdeH  sI    xx @ AF//Y?1MF//S98QGr4   c                 t   t        j                  g d      }t        t        j                  |d      j                  d      dd       t        t        j                  |dd      j                  d      dd       t        |d<   t        j                  |      }t        |j                  |j                         y )	Nru  r  r   ddofg@r\  gffff7@r   )	rd   r+   r   r,   	winsorizer  r   r
   ra   )r.   r/   
winsorizeds      r2   test_winsorizationzTestTrimming.test_winsorizationN  s    xx @ AF,,T)<@@a@H#Q	(T9];??Q?GQ	 Q%%d+
Z__dii0r4   c           
      r   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             y )Nr   r   rJ   )皙?r  raise)r3  )皙?r  r   )rP  rP  r2  )	rd   r+   r*   r   r  r   r,   r  r
   r  s     r2   test_winsorization_nanz#TestTrimming.test_winsorization_nanZ  s   xxAq12j&"2"2D,!(	* 	V%%dJ7XXo.	0V%%dJ7XXrvvrvvrvvrvvrvvFG	IV%%dJ6JXXrvvrvvq!Q78	:V%%dJ6JXXrvvrvvq!Q78	:r4   N)r5   r6   r7   rg  rp  rs  r  r  r  r  r  r  r8   r4   r2   rY  rY    s4    #6J51IHHH
1:r4   rY  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y)TestMomentsrI   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shaper;   c                    t        j                  |      }|t        j                  ||      }t        ||       ||j                  }|j                  |k(  sJ y N)r*   r   broadcast_tor   r;   )r.   actualexpectr  r;   s        r2   _assert_equalzTestMoments._assert_equal  sP    F#__VU3F66*=LLE||u$$$r4   c                 b   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       }| j                  |t        j                  t        j                         t        j                  t        j                  g t        j                              }| j                  |t        j                  t        j                         t        j                  t        j                  d      d      }| j                  |g dt        j                         t        j                  g gd      }| j                  |t        j                  dt        j                         t        j                  g gddgd      }| j                  |g d       t        j                  d      }t        j                  |d<   t        t        j                  |d      t         j"                         y )Nr   r   rV   rJ         ?rK   rL        @rI   )r   r  r   r  r   r   )r   rJ   rK   r!   r   )r   r   r   r   )r   r  )r   )momentr(   )rJ   r   )r  g      $@r   )r,   r  testcaser   r   r  r   r  r*   r   float64r+   float32zerosr   r
   rd   r   )r.   r   rA   s      r2   test_momentzTestMoments.test_moment  s   MM$--*Ac"%MM$--*Ad#MM$--*Ac"MM$--*Af% MM$--6/0 MM$---3j&--DMM$--)9:/0 MM"1bffBJJ7MM"((2RZZ891bffBJJ7MM"((6*31bBJJ?MM2$Q'1bffD

CMM2$1vA61b/IIcNvv!V]]1a("))4r4   c                 \    t        j                  | j                        }t        |dd       y )N%?rV   )r,   	variationr  r   )r.   r   s     r2   test_variationzTestMoments.test_variation  s#    T]]+A.3r4   c                 x    t        j                  g d      }t        j                  |d      }t	        |d       y )N)r   rJ   rK   rL   r   r   r  g<<'?)r*   r+   r,   r  r   )r.   rR   r   s      r2   test_variation_ddofzTestMoments.test_variation_ddof  s/     HH_%QQ'A12r4   c           	         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      ||          + t        t        j                  | j                  dd d f         t        j                  | j                  dd d f                y )Ng7l*ҿrV   r   biasg2۠ۿr   )gҽr?r   g>HÛe?r   gIǮFFFTFr   r`   r   )g`٨?r   gn?r   g0FrJ   )r,   skewtestmathworksr   r  rd   r+   r*   boolr   testcase_2d	enumerater   r.   r   
correct_2dirowcorrect_2d_bias_correcteds         r2   test_skewnesszTestMoments.test_skewness  s   KK**+A/3KK**2A04KK&Ac"% XXHH / 0<DI


 	D$4$4a8*E 0 01 	AFAsC 0*Q-@	A %'HHHH , -<DI%
!
 	D$4$4aeD1	3 0 01 	>FAsCe < 9! <>	>
 	D$4$4QT$:;

4#3#3AqD#9:	<r4   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      ||          + t        t        j                  | j                  dd d f         t        j                  | j                  dd d f         d       y )Nr   r   )fisherr  gO߻S@rV   gx|N@g=
ףp=?)            g'@=r   gt
Qr  r   r`   )r  r  g?<r   g`@7Fr  rJ   rL   )nulp)r,   kurtosisr  r   r  rd   r+   r*   r  r   r  r  r   r   r  s         r2   test_kurtosiszTestMoments.test_kurtosis  s    OOD..!!DA3
 OOD..qqAA0"5OODMM1a0At$ XXbhh (8 9#%88 -4;?$AB
 	"&//$2B2BA"F",	. 0 01 	EFAs 4jmD	E %'HHHHIJ<DI%K! 	"&//$2B2BA7<#>";	=   0 01 	>FAs% @ 9! <>	>
 	'vt7G7G17M'N',~~d6F6Fq!t6L'M,-	/r4   )r5   r6   r7   r  rd   r   r*   r   r  r+   r  r  r  r  r  r  r  r  r8   r4   r2   r  r  i  s     H"BNNE6667$&FF$, -M"((NNNNM	O 	P
 RXX86:59	; CG	H
IK 6: %#5J43<B%/r4   r  c                       e Zd Zd Zd Zy)TestModec                    g d}t        j                  |d      }t        j                  g d      }t        j                  |d      }t        j                  t        j                  |      dkD  |      }t        j                  |dkD  |      }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       y )N)r   r   r   r   r   r   rJ   rK   rK   rK   rK   rL   r   rb   r   )rK   r   r   rK   rJ   rJ   r   )rK   rL   r   )r   rK   )r   r   )rJ   r   )r   r   r   r   r   r   rm   rK   r   r   )modern  Tr   )	r*   rc  r+   rd   masked_wherer
   r,   r  r   )r.   a1a2a3a4ma1ma2ma3ma4a1_resr   s              r2   	test_modezTestMode.test_mode  sE   ,ZZE"XXm$ZZE"oobhhrlQ.3oob1fb)oob1fb)oobhhrlQ.3V[[$/7V[[!,e4V[[40%8V[[$/7V[[40%8V[[$/7V[[40%8V[[!,}{m.LMV[[1-}/MNV[["-!aS!QC}/MNV[[2.1#qc1#!aS!0NOV[[1-!A1Q%/ABV[[2.1#qc1#!aS!0NORd+ '
FJ48r4   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<   |j                         }t        j                  |d        t        ||       y )N)r^   r^   r'   r   )r*   r  copyr,   r  r
   )r.   imcps      r2   test_mode_modifies_inputz!TestMode.test_mode_modifies_input!  s_     XXj!
3B36
a

1crc6
a
WWYBRr4   N)r5   r6   r7   r  r  r8   r4   r2   r  r    s    9:r4   r  c                       e Zd Zd Zd Zd Zy)TestPercentilec                 :    g d| _         g d| _        g d| _        y )N)rK   rL   r   rV   rb   )rK   r   r   rL   rJ   r   )r   rL   r   rV   r  r  r  r   )r  r  r  r.   s    r2   setup_methodzTestPercentile.setup_method-  s    *,1r4   c                     t        j                  d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       y )	Nr   r   r   r   r^   r   r'   g      ?)r*   r   r
   r,   scoreatpercentiler   s     r2   test_percentilezTestPercentile.test_percentile2  sY    IIaL3V--a3R8V--a5s;V--a4d;r4   c                     t        j                  g dg dg dg dg dg      }t        t        j                  |d      g d       y )Nr   r   r   )rL   rL   rK   r'   )rd   r+   r
   r,   r  r   s     r2   test_2DzTestPercentile.test_2D8  s<    HHi	! "
 	V--a4i@r4   N)r5   r6   r7   r  r  r  r8   r4   r2   r  r  ,  s    2
<Ar4   r  c                   d    e Zd ZdZ ej
                  ddddej                  g      Zd Z	d Z
d Zy	)
TestVariabilityz[  Comparison numbers are found using R v.1.5.1
         note that length(testcase) = 4
    r   rJ   rK   rL   c                 Z   t        j                  | j                        }t        |d       | j                  j	                         }t        t        j                  | j                  d      t        j                  ||dz
  z        z  t        j                  | j                  d             y )Ng㝎?r   r  rJ   )r,   semr  r   rn  r   r*   r   )r.   r   r   s      r2   test_semzTestVariability.test_semH  sq    JJt}}%A|,MM!

4==q9BGGAqsG<LL

4==q9	;r4   c                     t        j                  | j                  | j                        }g d}t        ||j                  |j
                  dk(     d       y )N)OT\w%ܿr  OT\w?Fra  decimal)r,   zmapr  r   r/   ra   )r.   r   desired_unmaskedvalss      r2   	test_zmapzTestVariability.test_zmapP  sG     KKt}}5!D!"6"#&&5"92	Gr4   c                     t        j                  | j                        }t        j                  ddddt
        j                  g      }t        ||d       y )Nr  r  r  r  ra  r  )r,   zscorer  rd   r   r*   r   r   )r.   r   r0   s      r2   test_zscorezTestVariability.test_zscoreY  sH     MM$--(.."24E"2ORVV"M NGQ3r4   N)r5   r6   r7   __doc__rd   r   r*   r   r  r  r   r  r8   r4   r2   r  r  A  s8     r~~q1Qrvv./H;G4r4   r  c                       e Zd Zd Zd Zd Zy)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
       y )Nr   rb   r	  r   r   r   rK   rJ   rV   rL   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      r2   test_obrientransformzTestMisc.test_obrientransforme  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BHHV%;%;T%B%D%DaH"A	'r4   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                  }|j                  \  }}}}t	        t        j                  t        j                  ||      d      d       t	        t        j                  t        j                  ||d      d      d       t	        t        j                  t        j                  ||d      d      d       y )NrL   rJ   r#  r$  r   r   rK   r%  rb   r&  r   r	  r'  )48E?gsA?g)g%䃞?g 	?l)r  g46<?)	r   rd   r   r)  r   r*   r+  r,   ks_2samp)r.   rA   winterspringsummerfalls         r2   test_ks_2sampzTestMisc.test_ks_2sampm  s    #q!RQ1aAq94Aq"aAq#q!S91b!RaAq!Q:< NN1)*&BHHV__VV%DaH,	.BHHV__VVS%I1M,	.BHHV__VVS%I1M,	.r4   c                 B   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       t        j                  j                  } |g d       |g d       |g d       |g d      g} |g d       |g d       |g d       |g d       g}t        t        j                  | d!       t        t        j                  | d"       t        t        t         j                  |d   |d          y )#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Έ$@rL   r   g(QGu?rb   rJ   r#  r$  r   rK   r%  r&  r   r	  r'  gr @g-C6?	statisticr   Tr   )g"~j?g^I+?gI+?gjt?gMbX9?gʡE?x&?-?g?r   gGz?g+?gv?g9v?)g~jt?gx?gOn?r  g"~j?n?gK7A`?r  g7A`?r   bX9?gZd;O?g1Zd?gK?)gy&1?gzG?g`"?g!rh?g'1Z?gZd;O?grh|?gjt?gʡE?r   gzG?gS?gJ4?gʡE?)gK7?gh|?5?gl?g/$?g#~j?r  gQ?g      ?g      ?r   r  g rh?g333333?g
ףp=
?)r   g#@r   gffffff@g$@)g333333@r   g@r   g@)g@gffffff@g      @rO  g @)g!@g!@g333333 @rN  g333333"@)gNt$@gBv?)g\(\%@g+ԋ?)r,   friedmanchisquarer   r   rd   r   r   r*   r   r   r  r   )r.   r	  r  rA   r   r+   r   x3s           r2   test_friedmanchisqzTestMisc.test_friedmanchisq|  s   999; ))40F1Iw2F1Ix3#q!RQ1aAq94Aq"aAqa371b!RQ1aAq9; NN1))1-F1Ivq1F1Ivq1 -
FJ48  C D D E E F D EF& ./-.-.-.0 	"&":":B"?"H	J 	"&":":B"?"=	?j&":":BqE2a5Ir4   N)r5   r6   r7   r
  r  r"  r8   r4   r2   r  r  b  s    '.:Jr4   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                  }t        t        ||             d}t        ||d       d	t        |      v sJ t        |j                  d
       t        |j                  d       t        |j                  d       t        |j                  d       y )Nr   r^   r(  rV   rW   )slope	interceptrvaluer   stderrTr   intercept_stderrg5E%?g +l$@g4_Qc?g8?)r*   r   sinr,   
linregressr   LinregressResultr   
isinstancer   dirr   r$  r%  r'  r(  )rA   r   r  lrr   s        r2   test_regress_simpler/    s    
AsC Abkk!S#&&+AAr3'	((Aq!$F 
	#	#BJvr"#EJ
t4V,,, &9:((*<=';<//1DEr4   c                  
   t         j                  j                  d      } t        j                  d      }| j                  d      }d}t	        t
        |      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nl   B8k:E rV   zBCannot calculate a linear regression if all x values are identicalr   )r*   r   r   r  r  r   r,   r*  )r   rA   r   msgs       r2   test_linregress_identical_xr2    sd    
))


,C
A

2A
NC	z	-  !Q     s   A99Bc                   $    e Zd Zd Zd Zd Zd Zy)TestTheilslopesc                 B   t        j                  g d      \  }}}}t        |d       t        |d       t        j                  g dd      \  }}}}t        |d       t        |d       t        j                  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       y )N)r   r   r   r   jointr  r   )r   r   r^   r   )FFTFr`   rc   gUUUUUU?)r   rJ   rK   rL   rV   ra  r&  )r         rW   r  7   N   gQ?rL   r!   gQ@rJ   r  gGz@r   )r,   theilslopesr   r*   rd   r+   )r.   r$  r%  lowerupperr   rA   s          r2   test_theilslopesz TestTheilslopes.test_theilslopes  s   )/););I)F&y%E3'Is+)/););ICJ*L&y%E3'Is+ EEKK-HKI)/););A)>&y%E4(It,)/););ACJ*L&y%E4(Is+ %')/););Aq$)G&y%E1%Is+E43E43)/););Aq$CJ*L&y%E1%Is+E43E43r4   c                    d}t        j                  t        |      5  t        j                  ddgddg      }t        j                  t        j                  |            sJ 	 d d d        t        j                         5  t        j                  ddt               t        j                  g dg d      }t        |ddt
        j                  t
        j                  f       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	NzEAll `x` coordinates.*|Mean of empty slice|invalid value encountered.*r   r   r   rn   zinvalid value encountered...r   r   r   )r   r   r   )r   warnsr   r,   r;  r*   allisnanr   r   filterwarningsr   r   )r.   r1  r   s      r2   test_theilslopes_warningsz)TestTheilslopes.test_theilslopes_warnings   s    U\\.4 	)$$aVaV4C66"((3-(((	) $$& 	9##8.J$$Y	:CC!Q!78		9 	9	) 	)	9 	9s   AC+ A"C7+C47D c                 &   g d}g d}t        j                  ||      \  }}}}t        j                  ||      }t        ||j                         t        ||j                         t        ||j
                         t        ||j                         y)zv
        Simple test to ensure tuple backwards-compatibility of the returned
        TheilslopesResult object
        r   rJ   rL   rL   rb   r   N)r,   r;  r
   r$  r%  	low_slope
high_slope)r.   r   rA   r$  r%  rI  rJ  r  s           r2   'test_theilslopes_namedtuple_consistencyz7TestTheilslopes.test_theilslopes_namedtuple_consistency  s{    
 282D2DQ2J/y)Z##Aq) 	UFLL)Y 0 01Y 0 01Z!2!23r4   c                    t         j                  j                  d      }|j                  dddt         j                        }t        j                  ||      }t         j                  j                  |j                  d       y )Nl   U5<H r      rV   )r  r;   r   )
r*   r   r   integersuint8r   r;  testingr   r$  )r.   r   r   r   s       r2   test_gh19678_uint8z"TestTheilslopes.test_gh19678_uint8  s]     ii##$45LLCbL91%


""399a0r4   N)r5   r6   r7   r>  rE  rK  rQ  r8   r4   r2   r4  r4    s    $4N
94 1r4   r4  c                  V   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                  j                  dd      z   } t        j                  ||       \  }}}}}t        j                  | |      \  }}t        ||d       t        ||d       t        j                  | |d      \  }}t        ||d       t        ||d       y )NrJ   rV   r   )r   r   separater  r   r   )r  r  r  rL   gffffffr      r  random_stater   r<   )
r*   r   r
   r,   siegelslopesr   normrvsr*  r   )r   rA   	slope_olsintercept_ols_r$  r%  s          r2   test_siegelslopesr]  &  sg   	BIIbMCA$$Q'4$$Qz:JG	BIIbMA	AA$$Q*K8$$Q*={K AbqE$$Q*K8 			"As1uuzz~~2C~@@A(-(8(8A(>%I}aA**1a0E9E93/I}37**1a
CE9E93/I}37r4   c                      g d} g d}t        j                  | |      \  }}t        j                  | |      }t        ||j                         t        ||j                         y)zl
    Simple test to ensure tuple backwards-compatibility of the returned
    SiegelslopesResult object.
    rG  rH  N)r,   rW  r
   r$  r%  )r   rA   r$  r%  r  s        r2   (test_siegelslopes_namedtuple_consistencyr_  C  sW    
 	AA**1a0E9  A&F %F,,-r4   c            
         t         j                  j                  d      } | j                  d      }t        j                  |      \  }}d }t        d      D ]1  }t        t        j                   ||d d |f               ||          3 t        j                  t        |j                  d         D cg c]  } ||d d |f          c}      }t        t        j                  |      |       y c c}w )Nl   ,'  )r^   rL   r  c                 $   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   rA   dydxra   s         r2   dijkz&test_sen_seasonal_slopes.<locals>.dijkX  sx    GIIaL"Q

]##1bjj=!!wwrww1vT2a8$x4  r4   rL   r   )
r*   r   r   r,   sen_seasonal_slopesr   r   medianr  r  )r   rA   intra_slopeinter_sloperj  r  
all_slopess          r2   test_sen_seasonal_slopesrp  R  s    
))

 3
4C


!A%99!<K! 1X B		$qAw-0+a.AB aggaj8I J1a1g JKJBIIj);7 !Ks   5C2c                      t        j                  t        j                  d      dd      } t	        | j
                  t        j                  g d             y )NrK   r   )rN   r   r  )r,   plotting_positionsr*   r   r   r/   r+   )poss    r2   test_plotting_positionsrt  g  s6    

#
#BIIaL!Q
7Cchh1B(CDr4   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	d
g      e
j                  j                  dddg      d               Zd Zy)TestNormalitytestsc                 l   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 ]  \  }}t        j                  t        t              5   ||      }t        j                  |j                        sJ t        j                  |j                        sJ 	 d d d        t!        t"        ||        y # 1 sw Y   xY w)Nr  rm   r   r   rJ   rK   r  rm   r   r   rJ   rK   r  rm   r   r   rJ   rK   r  rm   r   r   rJ   rK   rJ   rI   r   )r*   r+   r   r,   
normaltestr   skewtestkurtosistestzipr   rA  r   r   rC  r  r   r  r   )r.   rA   funcsmfuncsfuncmfuncr   s          r2   test_vs_nonmaskedz$TestNormalitytests.test_vs_nonmaskedp  s<   HH+,a/!&"3"3A"6"'"2"21"5	7!&//!"4"'.."3	5!&"5"5a"8"'"4"4Q"7	9 !!5>>53E3EF##V__f6I6IJuf- 	0KD%08MN ,1gxx...xx

+++, *eQ/	0, ,s   AF**F3	c                 l   t        j                  d      dz  }t        t        j                  |d       t        j                  |             t        t        j
                  |d       t        j
                  |             t        t        j                  |d       t        j                  |             y )Nrx  rJ   r   )r*   r+   r   r,   ry  rz  r{  r   s     r2   test_axis_Nonez!TestNormalitytests.test_axis_None  s{    HH&'*))!$79J9J19MN5vq7IJ++AD9++A.	0r4   c                 *   t        j                  d      dz  }t         j                  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                  |             y )Nrx  rJ   rV   TFr`   )r*   r+   rd   r_infr  r   r,   ry  r   rz  r{  )r.   rA   xms      r2   test_maskedarray_inputz)TestNormalitytests.test_maskedarray_input  s    HH+,a/UU[[rvvq"}- eeD5'AFF*:D$@A  C))"-u/?/?/BC+U^^A->?++B/1C1CA1FGr4   c                 Z   t        j                  d      dz  }t        j                  |gdz        j                  }t        j
                  t        j                  t        j                  fD ]>  } ||      } ||      }t        |d   |d   gdz         t        |d   |d   gdz         @ y )Nrx  rJ   r   r   )	r*   r+   vstackr)  r,   ry  rz  r{  r   )r.   rA   x_2dr  res_1dres_2ds         r2   test_nd_inputz TestNormalitytests.test_nd_input  s    HH+,a/yy!q!##&&9L9LM 	8D!WF$ZFF1Iq	{Q7F1Iq	{Q7		8r4   c                 ~    t        j                  d      dz  }t        j                  |      }d}t	        ||d       y Nrx  rJ   r  Tr   )r*   r+   r,   ry  r   r.   rA   r   r   s       r2   !test_normaltest_result_attributesz4TestNormalitytests.test_normaltest_result_attributes  s7    HH+,a/",
C5r4   c                 ~    t        j                  d      dz  }t        j                  |      }d}t	        ||d       y r  )r*   r+   r,   r{  r   r  s       r2   #test_kurtosistest_result_attributesz6TestNormalitytests.test_kurtosistest_result_attributes  s7    HH+,a/!!!$,
C5r4   c           
          g d}t        j                  t        |      D cg c]  \  }}t        j                  ||       c}}      }t	        t        j                  |      d   dk  d       y c c}}w )N)
   r   :   r   r   )   r#  r   r      r   g{Gz?T)r*   hstackr  fullr
   r,   r{  )r.   countsr  crA   s        r2   test_regression_9033z'TestNormalitytests.test_regression_9033  sZ     7II61BCArwwq!}CDV((+A.5t< Ds    A0
testrz  r{  r   r   r   c                    t         j                  j                  dddd      }t        t         |      }t        t        |      } |||      \  }} |||      \  }}	t        ||d       t        |	|d       t        j                  |d	d
 t        j                  j                  |t        j                  |            } ||j                         |      \  }} |||      \  }}	t        ||d       t        |	|d       y )NrV   r&   rX   {   locscaler  rV  r   g-q=atolr   r   r`   )r   rX  rY  getattrr,   r   r*   r   rd   r   rC  r4  )
r.   r  r   rA   
stats_testmstats_testz_exp_exr  r   s
             r2   test_alternativez#TestNormalitytests.test_alternative  s     JJNNr2CNHUD)
fd+{;
d1+614e,4e, !AEEqrxx{3KH
d1+614e,4e,r4   c                 f   t         j                  j                  dd      }d}t        j                  t
        |      5  t        j                  |d       d d d        t        j                  t
        |      5  t        j                  |d       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)NrW   r  rU  z`alternative` must be...r   r   r   )	r   rX  rY  r   r	   r   r,   rz  r{  )r.   rA   r1  s      r2   test_bad_alternativez'TestNormalitytests.test_bad_alternative  s    JJNNN5)]]:S1 	4OOA73	4 ]]:S1 	8w7	8 	8	4 	4	8 	8s   B:B'B$'B0N)r5   r6   r7   r  r  r  r  r  r  r  r   r   rV  r  r  r8   r4   r2   rv  rv  m  su    0&0H866= [[Vj.%AB[[]VY,?@- A C-&8r4   rv  c                       e Zd Zd Zy)TestFOnewayc                     t        j                  ddgt         j                        }t        j                  ddgt         j                        }t        j                  ||      }d}t        ||d       y )	Ni  i  r   i  i  r  Tr   )r*   r+   uint16r,   f_onewayr   )r.   rR   r  r   r   s        r2   test_result_attributesz"TestFOneway.test_result_attributes  sS    HHc3Zryy1HHc3Zryy1ooa#,
C5r4   Nr5   r6   r7   r  r8   r4   r2   r  r    s    6r4   r  c                   h    e Zd Z ej                  g d      Z ej                  g d      Zd Zd Zy)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                 x    t        j                  | j                  | j                        }d}t	        ||d       y )Nr  Tr   )r,   mannwhitneyurA   r   r   )r.   r   r   s      r2   r  z'TestMannwhitneyu.test_result_attributes  s-    !!$&&$&&1,
C5r4   c                 "   t        j                  | j                  | j                        }t	        j                  | j                  | j                        }|j
                  |j
                  k(  sJ t        |j                  |j                         y r  )r,   r  rA   r   r   r  r   r   )r.   res1res2s      r2   test_against_statsz#TestMannwhitneyu.test_against_stats   s`     ""4664662!!$&&$&&1~~///T[[1r4   N)	r5   r6   r7   r*   r+   rA   r   r  r  r8   r4   r2   r  r    s8     * 	+A& 	 " 	#A6
2r4   r  c                       e Zd Zd Zy)TestKruskalc                 `    g d}g d}t        j                  ||      }d}t        ||d       y )N)r   rK   r   r   r   )rJ   rL   rb   r   rV   r  Tr   )r,   kruskalr   r   s        r2   r  z"TestKruskal.test_result_attributes  s-    nnQ",
C5r4   Nr  r8   r4   r2   r  r  
  s    6r4   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ej                  j                  d	d
dg      d        Zy)TestTtest_relc                 L    t         j                  j                  d      | _        y )Nl   6Gk] r*   r   r   r   r  s    r2   r  zTestTtest_rel.setup_method      99((4r4   c                    | j                   j                  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        ||       y )NrW   rL   r   r   r   rJ   r   r   r   rJ   )r   standard_normalr   	ttest_relr,   r   )r.   outcomer  r  res3s        r2   r  zTestTtest_rel.test_vs_nonmasked  sK   ((**73lB wq!t}gadm<1wq!t}=d# wq!t}gadm$G1wq!t}4Hd#wq"1"u~wq!"u~AF2A212QGd# 2A212?d#r4   c                 B   t        j                  | j                  j                  d      g dg dg      }t	        j
                         5  t	        j                  ddt               |d d df   |d d df   ft        j                  t        j                  gd	d
gffD ]k  }t        j                  | \  }}t        |t        j                  t        j                  f       t        |t        j                  t        j                  f       m 	 d d d        y # 1 sw Y   y xY wNr  r  r@  r`   rn   %invalid value encountered in absoluter   r   r   r   )rd   r   r   r  r   r   rD  r   r*   r   r,   r  r   r.   r  pairtr   s        r2   test_fully_maskedzTestTtest_rel.test_fully_masked-      //$((":":6"B(19'=?$$& 	8##A>S!!Q$-A766266*S#J79 8''.1"1rvvrvv&67"1rvvrvv&67	8	8 	8 	8   C DDc                     | j                   j                  d      g dz   }t        j                  |d d df   |d d df         }d}t	        ||d       y Nr  r  r   r   r  Tr   )r   r  r,   r  r   r.   r  r   r   s       r2   r  z$TestTtest_rel.test_result_attributes9  N    ((**73lBwq!t}gadm<,
C5r4   c           
         t        t        t        j                  t	        j
                  d      t	        j
                  d             t	        j
                  d      }t        t        t        j                  |j                  ddd      |j                  ddd      d       t        t        t        j                  |j                  ddd      |j                  ddd      d       y )	NrV   r	  rM   rJ   rK   rL   r   r   )r  r   r,   r  r*   r   rc  r   s     r2   test_invalid_input_sizez%TestTtest_rel.test_invalid_input_size@  s    j&"2"2iimRYYr]	4IIbMj&"2"2ii1a(!))Aq!*<1	Fj&"2"2ii1a(!))Aq!*<1	Fr4   c                     t        j                  g g       }t        t        j                  t        j
                  |                   y r  )r,   r  r   r*   rB  rC  r.   r  s     r2   
test_emptyzTestTtest_rel.test_emptyI  -    B'rxx~&'r4   c                 V   t        j                  g dg d      \  }}t        t        j                  |      |ft        j
                  df       t        j                         5  t        j                  ddt               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        y # 1 sw Y   y xY w)Nr@  r  r   rn   r  )r,   	ttest_indr
   r*   absr  r   r   rD  r   r   r+   r   r.   r  r   s      r2   test_zero_divisionz TestTtest_rel.test_zero_divisionM  s    	951bffQi^bffa[1$$& 	>##A>S##Iy9DAqq"((BFFBFF+;"<=q"((BFFBFF+;"<=	> 	> 	>s   #B3DD(c                     d}t        j                  t        |      5  t        j                  g dg dd       d d d        y # 1 sw Y   y xY wN4alternative must be 'less', 'greater' or 'two-sided'r   r   rJ   rK   )rL   r   rb   foor   r   r	   r   r,   r  r.   r1  s     r2   r  z"TestTtest_rel.test_bad_alternativeX  @    E]]:S1 	FY	uE	F 	F 	F   AAr   r   r   c                 ,   t         j                  j                  dddd      }t         j                  j                  dddd      }t        j                  |||      \  }}t	        j                  |||      \  }}t        ||d	
       t        ||d	
       t        j                  |dd t        j                  |dd t        j                  j                  |t        j                  |            }t        j                  j                  |t        j                  |            }t	        j                  |||      \  }}t        j                  |j                         |j                         |      \  }}t        ||d	
       t        ||d	
       y )NrV   r   r  *   r  r   rJ   r   rO   r<   r   r`   )r   rX  rY  r  r,   r   r*   r   rd   r   rC  r4  r.   r   rA   r   t_exr  r  r   s           r2   r  zTestTtest_rel.test_alternative]  s3   JJNNr"NEJJNNqND__Q{C
d1+>14e,4e, &&!B&&!BEEqrxx{3EEqrxx{31+>1__Q\\^Q\\^1<>
d4e,4e,r4   N)r5   r6   r7   r  r  r  r  r  r  r  r  r   r   rV  r  r8   r4   r2   r  r    sW    5$(
86F(	>F
 [[]VY,?@- A-r4   r  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	d
g      d        Zy)TestTtest_indc                 L    t         j                  j                  d      | _        y )Nl   };[9 r  r  s    r2   r  zTestTtest_ind.setup_methodt  r  r4   c                 $   | j                   j                  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        ||       y )
Nr  r  r   r   r   rJ   T	equal_varF)r   r  r   r  r,   r   )r.   r  r  r  r  res4res5s          r2   r  zTestTtest_ind.test_vs_nonmaskedw  s   ((**73lB wq!t}gadm<1wq!t}=d# wq!t}gadm$G1wq!t}4Hd#wq"1"u~wq!"u~AF2A212QGd# 2A212?d# wq!t}gadmtL1wq!t}Md#wq!t}gadmuM1wq!t}Nd#r4   c                 B   t        j                  | j                  j                  d      g dg dg      }t	        j
                         5  t	        j                  ddt               |d d df   |d d df   ft        j                  t        j                  gd	d
gffD ]k  }t        j                  | \  }}t        |t        j                  t        j                  f       t        |t        j                  t        j                  f       m 	 d d d        y # 1 sw Y   y xY wr  )rd   r   r   r  r   r   rD  r   r*   r   r,   r  r   r  s        r2   r  zTestTtest_ind.test_fully_masked  r  r  c                     | j                   j                  d      g dz   }t        j                  |d d df   |d d df         }d}t	        ||d       y r  )r   r  r,   r  r   r  s       r2   r  z$TestTtest_ind.test_result_attributes  r  r4   c                     t        j                  g g       }t        t        j                  t        j
                  |                   y r  )r,   r  r   r*   rB  rC  r  s     r2   r  zTestTtest_ind.test_empty  r  r4   c                 2   t        j                  g dg d      \  }}t        t        j                  |      |ft        j
                  df       t        j                         5  t        j                  ddt               t        j                  g dg d      \  }}t        |t        j                  t        j                  f       t        |t        j                  t        j                  f       d d d        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       y # 1 sw Y   xY w)Nr@  r  r   rn   r  Fr  )r,   r  r
   r*   r  r  r   r   rD  r   r   r   r  s      r2   r  z TestTtest_ind.test_zero_division  s   	951bffQi^bffa[1$$& 	4##A>S##Iy9DAqq266266"23q266266"23	4 	9F1bffQi^bffa[16++Iy6;=?Avvrvv>N	P	4 	4s   #BFFc                     d}t        j                  t        |      5  t        j                  g dg dd       d d d        y # 1 sw Y   y xY wr  r  r  s     r2   r  z"TestTtest_ind.test_bad_alternative  r  r  r   r   r   c                 ,   t         j                  j                  dddd      }t         j                  j                  dddd      }t        j                  |||      \  }}t	        j                  |||      \  }}t        ||d	       t        ||d	       t        j                  |d
d t        j                  |dd t        j                  j                  |t        j                  |            }t        j                  j                  |t        j                  |            }t        j                  |j                         |j                         |      \  }}t	        j                  |||      \  }}t        ||d	       t        ||d	       y )NrV   rJ   r^   r  r  r   r   rO   r<   r   r\   r]   r`   )r   rX  rY  r  r,   r   r*   r   rd   r   rC  r4  r  s           r2   r  zTestTtest_ind.test_alternative  s3   JJNNr3NGJJNNq#NF__Q{C
d1+>14e,4e, &&!B66"REEqrxx{3EEqrxx{3__Q\\^Q\\^1<>
d1+>14e,4e,r4   Nr5   r6   r7   r  r  r  r  r  r  r  r   r   rV  r  r8   r4   r2   r  r  s  sR    5$8
86(P F
 [[]VY,?@- A-r4   r  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	d
g      d        Zy)TestTtest_1sampc                 L    t         j                  j                  d      | _        y )Nl   GzP r  r  s    r2   r  zTestTtest_1samp.setup_method  r  r4   c                     | j                   j                  d      g dz   }t        j                  |d d df   d      }t	        j                  |d d df   d      }t        ||       y )Nr  r  r   r   )r   r  r   ttest_1sampr,   r   )r.   r  r  r  s       r2   r  z!TestTtest_1samp.test_vs_nonmasked  s[    ((**73lB   A2!!'!Q$-3d#r4   c                    t        j                  | j                  j                  d      g d      }t        j
                  t        j
                  f}t        j                         5  t        j                  ddt               t        j
                  t        j
                  fdf|dffD ]/  }t        j                  | \  }}t        ||       t        ||       1 	 d d d        y # 1 sw Y   y xY w)NrK   r  r`   rn   r  r   )rd   r   r   r  r*   r   r   r   rD  r   r,   r  r   )r.   r  r  r  r  r   s         r2   r  z!TestTtest_1samp.test_fully_masked  s    //$((":":1"=INFFBFF#$$& 	0##A>S66266*C07C.A 0))401"1h/"1h/0	0 	0 	0s   'A4C%%C.c                     | j                   j                  d      g dz   }t        j                  |d d df   d      }d}t	        ||d       y r  )r   r  r,   r  r   r  s       r2   r  z&TestTtest_1samp.test_result_attributes  sF    ((**73lB  A2,
C5r4   c                     t        j                  g d      }t        t        j                  t        j
                  |                   y )Nr   )r,   r  r   r*   rB  rC  r  s     r2   r  zTestTtest_1samp.test_empty  s-    !!"a(rxx~&'r4   c                    t        j                  g dd      \  }}t        t        j                  |      |ft        j
                  df       t        j                         5  t        j                  ddt               t        j                  g dd      \  }}t        t        j                  |             t        |t        j                  t        j                  f       d d d        y # 1 sw Y   y xY w)Nr@  r   r   rn   r  )r,   r  r
   r*   r  r  r   r   rD  r   r   rC  r   r   r  s      r2   r  z"TestTtest_1samp.test_zero_division  s    !!)Q/1bffQi^bffa[1$$& 	4##A>S%%i3DAqBHHQK q266266"23	4 	4 	4s   !A?C))C2c                     d}t        j                  t        |      5  t        j                  g ddd       d d d        y # 1 sw Y   y xY w)Nr  r   r  rL   r  r   )r   r	   r   r,   r  r  s     r2   r  z$TestTtest_1samp.test_bad_alternative  s@    E]]:S1 	@y!?	@ 	@ 	@s   AAr   r   r   c                 <   t         j                  j                  dddd      }t        j                  |d|      \  }}t	        j                  |d|      \  }}t        ||d	       t        ||d	       t        j                  |d
d t        j                  j                  |t        j                  |            }t        j                  |j                         d|      \  }}t	        j                  |d|      \  }}t        ||d	       t        ||d	       y )NrV   rJ   r^   r  r  r   r   rO   r<   r   r`   )r   rX  rY  r  r,   r   r*   r   rd   r   rC  r4  )r.   r   rA   r  r  r  r   s          r2   r  z TestTtest_1samp.test_alternative  s    JJNNr3NG&&q!E
d!!!QK@14e,4e, &&!BEEqrxx{3&&q||~q3>@
d!!!QK@14e,4e,r4   Nr  r8   r4   r2   r  r    sQ    5$	06(	4@
 [[]VY,?@- A-r4   r  c                       e Zd ZdZd Zy)TestDescribez
    Tests for mstats.describe.

    Note that there are also tests for `mstats.describe` in the
    class TestCompareWithStats.
    c                    t         j                  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       y )N)r   r   rJ   rK   rL   r   )r   r   r   r   rK   rK   )r   r   r   r   r   r   )r   r   r   r   r   r   r`   r   r   r   rL   r   rK   r   r!   r   r   g       )r*   rd   r   r,   describer
   nobsminmaxmeanvarianceskewnessr   r  )r.   rR   r  aminamaxs        r2   test_basic_with_axisz!TestDescribe.test_basic_with_axis!  s    EE 2 2 4%7%7%9  : +V[[1a&)]]
dTAq6"TAq6"V[[3*-V__sCj1V__sCj1$6r4   N)r5   r6   r7   r  r  r8   r4   r2   r  r    s    7r4   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(y')(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^   rV   r   r8   r  s    r2   get_nzTestCompareWithStats.get_nJ  s    !!r4   c                    t         j                  j                  d      }|j                  |      }||j                  |      z   }t        j                  t        |      dz   d      }t        j                  t        |      dz   d      }||dt        |       ||dt        |       |dkD  }t         j                  j                  ||      }t         j                  j                  ||      }||||fS )Ni r   g 7yACr   g s?Cr`   )r*   r   RandomStaterandnr  rc  rd   r+   )r.   r   r   rA   r   r  ymra   s           r2   generate_xy_samplez'TestCompareWithStats.generate_xy_sampleN  s     ii##G,IIaL		!WWSVaZ&WWSVaZ&1SV1SVDyUU[[$['UU[[$['!R|r4   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 ]&  }| j	                  |      \  |d d |f<   |d d |f<   }}	( |d| |d|d d f<   |d| |d|d d f<   t         j
                  j                  |t        j                  |            }t         j
                  j                  |t        j                  |            }||||fS )Nr   r   r`   )r*   r  r   r   r"  rd   r+   rC  )
r.   r   nxrA   r   r  r!  r  ri  rh  s
             r2   generate_xy_sample2Dz)TestCompareWithStats.generate_xy_sample2D]  s"   GGQGRVV$GGQGRVV$WWac2Y'WWac2Y'r 	BA'+'>'>q'A$AadGQq!tWb"	B qV1Q36
qV1Q36
UU[["((2,[/UU[["((2,[/!R|r4   c                 *   | j                         D ]  }| j                  |      \  }}}}t        j                  ||      }t        j                  j                  ||      }t        t        j                  |      t        j                  |              y r  )r  r"  r   r*  r,   r   r*   r   )r.   r   rA   r   r  r!  result1result2s           r2   test_linregressz$TestCompareWithStats.test_linregressl  su     	FA2215LAq"b&&q!,Gll--b"5GBJJw/G1DE		Fr4   c                 
   | j                         D ]p  }| j                  |      \  }}}}t        j                  ||      \  }}t        j                  j                  ||      \  }}	t        ||d       t        ||	d       r y )Nrl  r  )r  r"  r   r   r,   r   
r.   r   rA   r   r  r!  r   r   rmpms
             r2   r   z"TestCompareWithStats.test_pearsonrs  su     	3A2215LAq"b>>!Q'DAq\\**2r2FB2r22r2	3r4   c                    | j                         D ]n  }| j                  |      \  }}}}t        j                  ||      \  }}t        j                  j                  ||      \  }}	t        ||d       t        ||	d       p y Nrl  )r  r"  r   r   r,   r   r+  s
             r2   r   z#TestCompareWithStats.test_spearmanr|  su     	+A2215LAq"b??1a(DAq\\++B3FB2r*2r*	+r4   c                 p    t        j                  d      }t        t        t        j
                  ||d       y )Nrb   F)r*   r   r  r   r,   r   r   s     r2   !test_spearmanr_backcompat_usetiesz6TestCompareWithStats.test_spearmanr_backcompat_useties  s'     IIaLj&"2"2Aq%@r4   c                    | j                         D ]  }| j                  |      \  }}}}t        j                  t	        |            }t        j
                  j                  t	        |            }t        ||d       t        j                  t	        |            }t        j
                  j                  t	        |            }t        ||d        y )NgvIh%<=r<   )r  r"  r   r>   r  r,   r   r.   r   rA   r   r  r!  r   r,  s           r2   
test_gmeanzTestCompareWithStats.test_gmean  s     	/A2215LAq"bCF#A##CG,BAr.CF#A##CG,BAr.	/r4   c                    | j                         D ]  }| j                  |      \  }}}}t        j                  t	        |            }t        j
                  j                  t	        |            }t        ||d       t        j                  t	        |            }t        j
                  j                  t	        |            }t        ||d        y NrV   )r  r"  r   rD   r  r,   r   r3  s           r2   
test_hmeanzTestCompareWithStats.test_hmean  s     		+A2215LAq"bCF#A##CG,B2r*CF#A##CG,B2r*		+r4   c                 ^   | j                         D ]  }| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        ||d       t        j                  |      }t        j                  j                  |      }t        ||d        y r6  )r  r"  r   r  r,   r   r3  s           r2   	test_skewzTestCompareWithStats.test_skew  s     		+A2215LAq"b

1A""2&B2r*

1A""2&B2r*		+r4   c                 ^   | j                         D ]  }| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        ||d       t        j                  |      }t        j                  j                  |      }t        ||d        y r6  )r  r"  r   r  r,   r   r3  s           r2   r  z TestCompareWithStats.test_moment  s     		+A2215LAq"bQA$$R(B2r*QA$$R(B2r*		+r4   c                    | j                         D ]7  }| j                  |      \  }}}}||j                         z
  |j                         z  }||j                         z
  |j                         z  }t	        t        j                  |      |d       t	        t        j                  |      |d       t	        t        j                  |      t
        j                  j                  |dt        |             d       t	        t        j                  |      t
        j                  j                  |dt        |             d       : y )N绽|=r<   r   )	r  r"  r  r  r   r   r  r,   rc  )r.   r   rA   r   r  r!  zxzys           r2   r  z TestCompareWithStats.test_zscore  s     	(A2215LAq"b affh,!%%')Baffh,!%%')B ELLORe<ELLORe< ELLOU\\-@-@Ac!f-N!&(ELLOU\\-@-@Ac!f-N!&(	(r4   c                 ^   | j                         D ]  }| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        ||d       t        j                  |      }t        j                  j                  |      }t        ||d        y r6  )r  r"  r   r  r,   r   r3  s           r2   r  z"TestCompareWithStats.test_kurtosis  s     	+A2215LAq"bq!A&&r*B2r*q!A&&r*B2r*	+r4   c           	         t        j                  d      j                  dd      }t         j                  j	                  |      }t        j                  |d      }t
        j                  j                  |d      }t        |dd       t        |dd       | j                         D ])  }| j                  |      \  }}}}	t        t
        j                  j                  |d d	
      t        j                  |d d	
      d       t        t
        j                  j                  |	d d	
      t        j                  |d d	
      d       t        t
        j                  j                  |d d
      t        j                  |d d
      d       t        t
        j                  j                  |	d d
      t        j                  |d d
      d       , y )NrW   r   rL   r   r  g'e@gh㈵>r  r   )r(   r     r  )r*   r   rc  rd   r+   r   r  r,   r   r  r"  r   )
r.   rR   amr   r,  r   rA   r   r  r!  s
             r2   r  zTestCompareWithStats.test_sem  si   IIbM!!!Q'UU[[^IIaa \\bq):D1JT2 		MA2215LAq"b 0 0$Q 0 G %		!$Q ?M 0 0$Q 0 G %		!$Q ?M 0 0$Q 0 G %		!$Q ?M 0 0$Q 0 G %		!$Q ?M		Mr4   c           	      ^   | j                         D ]  }| j                  |      \  }}}}t        j                  |d      }t        j                  j                  |d      }t        d      D ]<  }t        t        j                  ||         t        j                  ||         d       >  y )Nr   r  rb   ra  r  )	r  r"  r   r  r,   r   r   r*   r   )	r.   r   rA   r   r  r!  r   r,  iis	            r2   test_describez"TestCompareWithStats.test_describe  s     	0A2215LAq"bqq)A&&r&2BAh 0#BJJqu$5$&JJr"v$6,.00		0r4   c                 t    t        j                  t        j                  d            }d}t	        ||d       y )Nr   )r  r  r  r  r  r  Tr   )r,   r  r*   r   r   )r.   r  r   s      r2   test_describe_result_attributesz4TestCompareWithStats.test_describe_result_attributes  s+    1."
FJ48r4   c                     | j                         D ]X  }| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        ||       Z y r  )r  r"  r   r   r,   r   r3  s           r2   test_rankdataz"TestCompareWithStats.test_rankdata  s[     	#A2215LAq"bq!A&&q)BAr"		#r4   c                 N   | j                         D ]  }| j                  |      \  }}}}t        t        j                  |      t        j
                  j	                  |      d       t        t        j                  |      t        j
                  j	                  |      d        y r/  )r  r"  r   r   tmeanr,   r.   r   rA   r   r  r!  s         r2   
test_tmeanzTestCompareWithStats.test_tmean  sw     	KA2215LAq"bAu||/A/A"/ErJAu||/A/A"/ErJ	Kr4   c                 ^   | j                         D ]  }| j                  |      \  }}}}t        t        j                  |d      t        j
                  j	                  |d      d       t        t        j                  |d      t        j
                  j	                  |d      d       t        t        j                  |d      t        j
                  j	                  |d      d       t        t        j                  |d      t        j
                  j	                  |d      d        y )Nr   rV   r   )
upperlimit)r  r"  r   r   tmaxr,   rL  s         r2   	test_tmaxzTestCompareWithStats.test_tmax  s     
	JA2215LAq"b

1R 0 % 1 1"R 8">

1R 0 % 1 1"R 8">  

1 < % 1 1" 1 DbJ

1 < % 1 1" 1 DbJ
	Jr4   c                 R   | j                         D ]  }| j                  |      \  }}}}t        t        j                  |      t        j
                  j	                  |             t        t        j                  |      t        j
                  j	                  |             t        t        j                  |d      t        j
                  j	                  |d      d       t        t        j                  |d      t        j
                  j	                  |d      d        y )Nr   )
lowerlimitrV   )r  r"  r
   r   tminr,   r   rL  s         r2   	test_tminzTestCompareWithStats.test_tmin  s     	KA2215LAq"bA(9(9"(=>A(9(9"(=>

1 = % 1 1" 1 ErK

1 = % 1 1" 1 ErK	Kr4   c           	          | j                         D ]h  }| j                  |      \  }}}}t        j                  ||      }t        j                  j                  ||      }t        ||dt        |       d       j y )Nr   r<  r  )r  r"  r   r  r,   r   rc  )r.   r   rA   r   r  r!  r  zms           r2   r   zTestCompareWithStats.test_zmap   sk     	9A2215LAq"b

1a A""2r*BAr!CF|%8		9r4   c                 R   | j                         D ]  }| j                  |      \  }}}}t        t        j                  |      t        j
                  j	                  |      d       t        t        j                  |      t        j
                  j	                  |      d        y Nra  r  )r  r"  r   r   r  r,   rL  s         r2   r  z#TestCompareWithStats.test_variation'  s}     	,A2215LAq"b 2ELL4J4J24N(*, 2ELL4J4J24N(*,		,r4   c                 R   | j                         D ]  }| j                  |      \  }}}}t        t        j                  |      t        j
                  j	                  |      d       t        t        j                  |      t        j
                  j	                  |      d        y rY  )r  r"  r   r   tvarr,   rL  s         r2   	test_tvarzTestCompareWithStats.test_tvar/  s{     	,A2215LAq"b

1u||/@/@/D(*,

1u||/@/@/D(*,		,r4   c                    t        j                  d      }t        j                  |d      }t        j                  j                  |d      }t        t        j                  |      |j                  |j                             y )NrW   r   )	r*   r   r   rm  r,   r   r  r/   ra   )r.   rR   r  bms       r2   test_trimbothz"TestCompareWithStats.test_trimboth7  sV    IIbMNN1c"\\""1c*
BGGRWWH$56r4   c                    | j                         D ]  }| j                  |      \  }}}}t        t        j                  |      t        j
                  j	                  |      d       t        t        j                  |      t        j
                  j	                  |      d       t        t        j                  |d      t        j
                  j	                  |d      d        y )Nrl  r  )r  r   )r^  )r  r"  r   r   tsemr,   rL  s         r2   	test_tsemzTestCompareWithStats.test_tsem=  s     	,A2215LAq"b

1u||/@/@/D(*,

1u||/@/@/D(*,

1Y ? % 1 1"Y 1 G(*,	,r4   c                     | j                         D ]^  }|dkD  s	| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        ||       ` y )Nr   )r  r"  r   rz  r,   r   r3  s           r2   test_skewtestz"TestCompareWithStats.test_skewtestH  sb     	'A1u#66q91b"NN1%\\**2.2&	'r4   c                 ~    t        j                  d      dz  }t        j                  |      }d}t	        ||d       y r  )r*   r+   r,   rz  r   r  s       r2   test_skewtest_result_attributesz4TestCompareWithStats.test_skewtest_result_attributesQ  s5    HH+,a/ooa ,
C5r4   c                 6   t         j                  j                  d      }|j                  d      dz  }t        j                  |      }t        j
                  j	                  |      }t        t        j                  |      t        j                  |             y )Nl   ]L )rW   rJ   g      4@)r*   r   r   r   rz  r,   r   r   )r.   r   rA   r   r,  s        r2   test_skewtest_2D_notmaskedz/TestCompareWithStats.test_skewtest_2D_notmaskedW  se    ii##J/JJw#%NN1\\""1%

1rzz"~6r4   c                 <   d}| j                         D ]  }|dkD  s	| j                  ||      \  }}}}t        j                  |      }t        j                  j                  |      }t        |d   d   |d   d   d       t        |d   d   |d   d   d        y )NrJ   r   r   rO   r<   r   )r  r%  r   rz  r,   r   )	r.   r$  r   rA   r   r  r!  r   r,  s	            r2   test_skewtest_2D_WithMaskz.TestCompareWithStats.test_skewtest_2D_WithMask_  s     	?A1u#88B?1b"NN1%\\**2.!QAq>!QAq>	?r4   c           	      H   t        j                  d      5  t        j                         5  t        j                  ddt
               t        j                  ddt
               | j                         D ]  }|dkD  s	| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        t        j                  |      t        j                  |              	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr  )overrn   z(`kurtosistest` p-value may be inaccuratez!kurtosistest only valid for n>=20r   )r*   rp   r   r   rD  UserWarningr  r"  r   ry  r,   r   r   r3  s           r2   test_normaltestz$TestCompareWithStats.test_normaltestj  s    [[g& 
	C(?(?(A 
	C##DkS##={LZZ\ Cq5#'#:#:1#=LAq"b((+A004B#BJJqM2::b>BC
	C 
	C 
	C 
	C 
	C 
	Cs*   DAD<A>D;DD	DD!c                    t        j                  g d      j                  d      }t        j                  g d      j                  d      }|dk(  }t         j                  j	                  ||      }|j                         |j                         }}t        j                  |d      \  }}||dkD     ||dkD     f}	t        j                  j                  |      }
t        |	|
       t        ||       t        ||       t        j                  j                  g       \  }}t        |t        j                  d	t         j                  
             y )N)r   r   rJ   rJ   rK   rK   rK   rL   rL   rL   rL   r  )r   r   rJ   rJ   rK   rK   rK   rL   rL   rL   rL   r   r   r   r   r  r`   T)return_countsr   r   r   )r*   r   rw   rd   r+   r  uniquer   r,   find_repeatsr
   intp)r.   rA   tmpra   r  x_origxm_origrq  unique_countsr   r,  r\  r  s                r2   test_find_repeatsz&TestCompareWithStats.test_find_repeatsw  s   JJ89@@IjjFGNNwWr	UU[[4[(&&(BGGI "		!4 @=1$%}]Q5F'GG\\&&r*QQR! LL--b1	6VRXXarww78r4   c                    | j                         D ]v  }| j                  |      \  }}}}t        j                  ||      }t        j                  j                  ||      }t        |d   |d   d       t        |d   |d   d       x y )Nr   rV   r  r   r   )r  r"  r   r  r,   r   r3  s           r2   r  z$TestCompareWithStats.test_kendalltau  s     	8A2215LAq"b  A&A((R0B!beR8!beQ7	8r4   c           	         | j                         D ]n  }| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        |j                  |dt        |              p y )Nr   )r  r"  r   r  r,   r   r)  rc  r3  s           r2   r
  z)TestCompareWithStats.test_obrientransform  sk     	3A2215LAq"b%%a(A--b1BR#a&\2		3r4   c           
         dD ]X  }t        j                         5  dD ]1  }| j                         D ]  }| j                  |      \  }}}}t	        j
                  |t        j                  j                  ||      }t        j                  j                  |t        j                  j                  ||      }	t        t        j                  |      t        j                  |	             t	        j
                  |t        j                  j                  ||      }
t        t        j                  |      t        j                  |
              4 	 ddd       [ y# 1 sw Y   gxY w)zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.autor.  asympr   r   r0  r   r  N)r   r   r  r"  r   ks_1samprX  cdfr,   r
   r*   r   r.   r  r   r   rA   r   r  r!  r  r  r  s              r2   test_ks_1sampz"TestCompareWithStats.test_ks_1samp  s"   . 	ID((* I#C 
IK!ZZ\ 	I'+'>'>q'A1b"$~~a:ED R$||44RALSW  5  Y$RZZ%5rzz$7GH$~~b%**..:ED R$RZZ%5rzz$7GH	I
II I	II Is   D8E  E*	c           
      B   dD ]  }t        j                         5  dD ]  }| j                         D ]  }| j                  |      \  }}}}t	        j
                  |d||      }t        j                  j                  |d||      }	t        t        j                  |      t        j                  |	             t	        j
                  |d||      }
t        t        j                  |      t        j                  |
               	 ddd        y# 1 sw Y   xY w)z]
        Checks that 1-sample mstats.kstest and stats.kstest agree on masked arrays.
        r|  r  rX  r  N)
r   r   r  r"  r   kstestr,   r
   r*   r   r  s              r2   test_kstest_1sampz&TestCompareWithStats.test_kstest_1samp  s    / 	ID((* I#C 
IK!ZZ\ 	I'+'>'>q'A1b"$||Av8C$ P$||222v?JQU  3  W$RZZ%5rzz$7GH$||B8C$ P$RZZ%5rzz$7GH	I
II I	II Is   C,DD	c           
         dD ]-  }t        j                         5  |dv rd}t        j                  d|t               dD ]  }| j	                         D ]  }| j                  |      \  }}}}t        j                  ||||      }	t        j                  j                  ||||      }
t        t        j                  |	      t        j                  |
             t        j                  ||||      }t        t        j                  |	      t        j                  |               	 ddd       0 y# 1 sw Y   <xY w)zVChecks that mstats.ks_2samp and stats.ks_2samp agree on masked arrays.
        gh-8431r|  r}  r.  )ks_2samp: Exact calculation unsuccessful.rn   r  r  N)r   r   rD  r   r  r"  r   r  r,   r
   r*   r   r.   r  messager   r   rA   r   r  r!  r  r  r  s               r2   r  z"TestCompareWithStats.test_ks_2samp  s,    / 	ID((* I,,IG++Hg~N#C 
IK!ZZ\ 	I'+'>'>q'A1b"$~~a:ED R$||44RALSW  5  Y$RZZ%5rzz$7GH$~~b!:ED R$RZZ%5rzz$7GH	I
I	I I	II I   DD55D?	c           
         dD ]-  }t        j                         5  |dv rd}t        j                  d|t               dD ]  }| j	                         D ]  }| j                  |      \  }}}}t        j                  ||||      }	t        j                  j                  ||||      }
t        t        j                  |	      t        j                  |
             t        j                  ||||      }t        t        j                  |	      t        j                  |               	 ddd       0 y# 1 sw Y   <xY w)z]
        Checks that 2-sample mstats.kstest and stats.kstest agree on masked arrays.
        r|  r  r  rn   r  r  N)r   r   rD  r   r  r"  r   r  r,   r
   r*   r   r  s               r2   test_kstest_2sampz&TestCompareWithStats.test_kstest_2samp  s,    / 	ID((* I,,IG++Hg~N#C 
IK!ZZ\ 	I'+'>'>q'A1b"$||Aq8C$ P$||222r?JQU  3  W$RZZ%5rzz$7GH$||B8C$ P$RZZ%5rzz$7GH	I
I	I I	II Ir  N))r5   r6   r7   r  r  r"  r%  r)  r   r   r1  r4  r7  r9  r  r  r  r  rE  rG  rI  rM  rQ  rU  r   r  r\  r_  rb  rd  rf  rh  rj  rn  rx  r  r
  r  r  r  r  r8   r4   r2   r  r  2  s    ,"F3+A	/
+
+
+($	+M*09#KJ	K9,,7	,'67	?C9(83I I$I(Ir4   r  c                      e Zd Zej                  j                  dddddej                  dddddddddej                  g      Zej                  j                  ddddej                  dddddddg      ZdZ	d Z
d Zd	 Zd
 Zd Zd Zd Zy)TestBrunnerMunzelr   rJ   rL   rK   r   rl  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        ||k7         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )	Nr   r   r   r  |	&	@|	&	gҏGg?g@-pL?)r,   brunnermunzelXYr   significantr   )	r.   u1r  u2r  u3r  u4p4s	            r2   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sided  s6   %%dffdff&IB%%dffdff)LB%%dffdff)LB%%dffdff&IBBD,<,<=BD,<,<=bB 2$($4$4	6B 3$($4$4	6B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6B 3$($4$4	6r4   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr0  r   r  r  r   ҏGw?r,   r  r  r  r   r  r.   r  r  r  r  s        r2   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sided  s    %%dffdff+NB%%dffdff+NBBD,<,<=B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6r4   c                 x   t        j                  | j                  | j                        \  }}t        j                  | j                  | j                        \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr  r  r  r  r  r  s        r2   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default  s    %%dffdff5B%%dffdff5BBD,<,<=B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6r4   c                     d}d}t        |dv       t        t        t        j                  | j
                  | j                  ||       y )Nr   r  r/  r   r  r   r,   r  r  r  r.   r   distributions      r2   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error  sA    #CCDj**ffff!"	$r4   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nnormal)r  r  r  r  g "H[?r  r  s        r2   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_norm)  s    %%dffdff8LB%%dffdff8LBBD,<,<=B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6r4   c                     d}d}t        |dv       t        t        t        j                  | j
                  | j                  ||       y )Nr0  r   )r  r  r  r  s      r2   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error4  s@    !?23j**ffff!"	$r4   c                 *   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                  |             y r  )r,   r  r  r  r   r*   rC  )r.   r  r  r  r  r  r  s          r2   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput?  s    %%dffb1B%%b$&&1B%%b"-Br4   N)r5   r6   r7   r*   rd   masked_invalidr   r  r  r  r  r  r  r  r  r  r  r8   r4   r2   r  r    s    
aAq!RVVQAq!Q266; 	<A
aAq"&&!Q1aAFGAK6.66	$	6	$
r4   r  )NNgHz>)Ar  r   rS  numpyr*   r   numpy.mard   r   r   scipy.stats.mstatsr   r,   scipycommon_testsr   r   r	   r  numpy.ma.testutilsr
   r   r   r   r   r   r   scipy.statsr   r   scipy.conftestr   scipy.stats._axis_nan_policyr   r   r   rB   rE   rG   r   r   r   rY  r  r  r  r  r  r/  r2  r4  r]  r_  rp  rt  rv  r  r  r  r  r  r  r  r  r  r8   r4   r2   <module>r     s        # # #  -  *E E E 1 . R- -*!! 93 93 93x !3 !3 !3H9 9,z6 z6z	 u: u: u:p V/ V/ V/r& &RA A* 4 4 4@ SJ SJ SJlF, K1 K1\8:.8*E _8 _8 _8D6 6.2 .2b6 6[- [-|_- _-DB- B-J7 70 pI pI pIfc cr4   