
    Pi^                       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#dBdZ$dBd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 d0 d1          Z8 G d2 d3          Z9 G d4 d5          Z: G d6 d7          Z; G d8 d9          Z< G d: d;          Z= G d< d=          Z>e G d> d?                      Z? G d@ dA          Z@dS )Cz?
Tests for the stats.mstats module (support for masked arrays)
    N)nan)maskednomask)stats   )check_named_results)raises)assert_equalassert_almost_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_assert_allcloseassert_array_equal)_mstats_basic	_stats_py)skip_xp_invalid_arg)SmallSampleWarningtoo_small_1d_not_omitc                       e Zd Zd ZdS )TestMquantilesc                     t          j        g dg dg dg dg dg dg dg dg d	g d
g dg          }g dg dg dg}t          j        |dd          }t	          ||           d S )N)      @      @      ?)g     G@      .@       @)g     H@      B@      @)r        C@      @)      E@      D@     8)     D@r%   r$   )r   r$   r$   )r    r$   r$   )g     E@r$   r$   )r#   r$   r$   )r   r$   r$   )g3333333@g333333-@g333333?)r#   g     B@      @)gffffffE@gfffffD@gffffff@r   )r   2   )axislimit)nparraymstats
mquantilesr   )selfdatadesiredquantss       w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/stats/tests/test_mstats_basic.pytest_mquantiles_limit_keywordz,TestMquantiles.test_mquantiles_limit_keyword   s    x'''******+++,,,,,,,,,,,,
. 
/ 
/ &%%$$$&&&( "4aw???FG,,,,,    N)__name__
__module____qualname__r3    r4   r2   r   r      s#        - - - - -r4   r   Hz>c                     t          j        | ||          }t          |||           t          |j        |           d S N)r(   dtypertol)r,   gmeanr   r
   r<   
array_liker0   r(   r<   r>   xs         r2   check_equal_gmeanrC   .   sE    Zd%888AAwT****%     r4   c                     t          j        | ||          }t          |||           t          |j        |           d S r;   )r   hmeanr   r
   r<   r@   s         r2   check_equal_hmeanrF   5   sE    JT777AAwT****%     r4   c                       e Zd Zd Zd Zd Zd Zd Zej	        
                     eed           d          d	             Zd
 ZdS )TestGeoMeanc                 \    g d}t          j        dd          }t          ||d           d S )Nr                     ?+=r=   )r*   powerrC   r.   ar0   s      r2   test_1dzTestGeoMean.test_1d=   s7    LL(7E**!W5111111r4   c                     t          j        g d          }d}t          ||           t          j        g dg d          }t          j        dd          }t          ||d	           d S )
N

         (   r'   <   F   P   Z   d   gsŤF@rJ   r   r   r   r   mask   UUUUUU?rP   r=   )mar+   rC   r*   rQ   rR   s      r2   
test_1d_mazTestGeoMean.test_1d_maB   su    H>>>??!W%%%H\\\555(5%((!W5111111r4   c                 t    t           j                            g dg d          }d}t          ||           d S )NrV   
r   r   r   r   r   r   r   r   r   r   ra   gdq_D@r*   re   r+   rC   rR   s      r2   test_1d_ma_valuezTestGeoMean.test_1d_ma_valueL   sI    EKKAAA;;;  = =!W%%%%%r4   c                 l    t           j                            g d          }d}t          ||           d S )N)
rW   rX   rY   rZ   r'   r[   r\   r]   r^   r   r   ri   rR   s      r2   test_1d_ma0zTestGeoMean.test_1d_ma0S   s7    EKK???@@!W%%%%%r4   c                     t           j                            g d          }t           j        }t          j        d          5  t          ||           d d d            d S # 1 swxY w Y   d S )N)
rW   rX   rY   rZ   r'   r[   r\   r]   r^   ignore)invalid)r*   re   r+   r   errstaterC   rR   s      r2   test_1d_ma_infzTestGeoMean.test_1d_ma_infY   s    EKK@@@AA&[*** 	* 	*a)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A!!A%(A%float96cannot find float96 so skippingreasonc                     t          j        g dg d          }t          j        dd                              t          j                  }t          ||t          j        d           d S )NrJ   r`   ra   rc   rd   rP   )r<   r>   )re   r+   r*   rQ   astypers   rC   r.   rS   
desired_dts      r2   test_1d_float96zTestGeoMean.test_1d_float96`   s`     H\\\555XeU++222:>>
!ZrzFFFFF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                             |          |           d S )NrJ   r   r   r   r   r   r   r   r   r   r   r   r   ra   r   rP   r(   r>   rN   rO   rc         ?rM   rn   rW   rX   rY   rZ   r'   r[   r\   r]   r^   r_   n   x   g/,$qJ@)re   r+   r*   rC   rQ   rR   s      r2   
test_2d_mazTestGeoMean.test_2d_mag   s   HlllLLL,,,?'<<|||DF F F(<<<((!W159999(BHWe44HS%00HS%002 3 3 	!W2E:::: ///1D1D1DE"%++a..'22222r4   N)r5   r6   r7   rT   rf   rj   rl   rr   pytestmarkskipifhasattrr*   r{   r   r8   r4   r2   rH   rH   ;   s        2 2 2
2 2 2& & && & &* * * [GGB	222@  B BG GB BG
3 3 3 3 3r4   rH   c                   z    e Zd Zd Zej                             eed           d          d             Z	d Z
dS )TestHarMeanc                 6   t          j        g dg d          }d}t          ||d           t          j                             g d          }d}t          ||           t          j                             g dg d	          }d
}t          ||           d S )NrJ   r`   ra   /袋.?rP   r=   rV   g=b#A@rh   gO?@re   r+   rF   r*   rR   s      r2   rT   zTestHarMean.test_1dz   s    H\\\555+!W51111EKKAAABB!W%%%EKKAAA;;;  = =!W%%%%%r4   rs   rt   ru   c                     t          j        g dg d          }t          j        dt          j                  }t          ||t          j                   d S )NrJ   r`   ra   r   r<   )re   r+   r*   asarrayrs   rF   ry   s      r2   r{   zTestHarMean.test_1d_float96   sT     H\\\555Z 9LLL
!Zrz::::::r4   c                 J   t          j        g dg dg dgg dg dg dg          }t          j        g d          }t          ||dd           g d	}t          ||d
d           g dg dg dg}d}t          t          j                             |          |           d S )NrJ   r}   r~   r   ra   r   rP   r   )gQ?g433333@g?rn   r   r   r   gmWUC@r   rR   s      r2   test_2dzTestHarMean.test_2d   s    HlllLLL,,,?'<<|||DF F F(<<<((!W159999LLL!W2E::::///1D1D1DE"%++a..'22222r4   N)r5   r6   r7   rT   r   r   r   r   r*   r{   r   r8   r4   r2   r   r   x   s        & & & [GGB	222@  B B; ;B B;
3 3 3 3 3r4   r   c                       e Zd Zd ZdS )TestRankingc                    t          j        g d          }t          t          j        |          g d           t
          |ddg<   t          t          j        |          g d           t          t          j        |d          g d           t          j        g d	          }t          t          j        |          g d
           t          j        g dg dg          }t          t          j        |          g dg dg           t          t          j        |d          g dg dg           t          t          j        |d          g dg dg           d S )N)
r   r   r   r   rK   rL   rM      r   rc   )
r   rL   rL   rL   r   rc            !@r   rW   rL   rM   )
r   r&   r&   r   r   rM   r         @r      T)use_missing)
r   r&   r&         @r   rM   r   r   r   r   )
r   r   r   r   rK   rM   rL   r   r   rc   )
r   rL   r   rL   r   r   rc   r   rL   rW   )r   r   r   r   rK   )rL   rM   r   r   rc   )r   rL   rL   rL   r   )rc   r   r   r   rW   r   r(   )r   rK         @r   r   r   r   r   r   r   r   rK   rK   rK   rK   rK   )re   r+   r   r,   rankdatar   r.   rB   s     r2   test_rankingzTestRanking.test_ranking   s   H+++,,FOA..666	8 	8 	81Q%FOA..999	; 	; 	;FOA4@@@===	? 	? 	?H+++,,FOA..666	8 	8 	8Hkkk<<<011FOA..([[*:*:*:;	= 	= 	=FOAA666([[///:	< 	< 	<FOA1555([[,,,7	9 	9 	9 	9 	9r4   N)r5   r6   r7   r   r8   r4   r2   r   r      s#        9 9 9 9 9r4   r   c                      e Zd Zd Zd Zd Zd Zej        	                     e
j                    dk    d          d             Zej        	                     e
j                    dk    d          ej        j        d	                         Zd
 Zej                            dd          ej                            dd          d                         Zd Zej        j        d             Zed             ZdS )TestCorrc           
      (   t          j        d          }t          j                    5  t          j        dt
                     t          t          j        ||          d         d           t          t          j        ||d d d                   d         d           t          j	        |d          }t          j        ||          }t          |d         t          u            t          |d	         t          u            d d d            n# 1 swxY w Y   t          j	        g d
          }t          j	        g d          }t          j        ||          \  }}t          |t          j        d          dz             t          |d           g d}t          j	        g d|          }t          j	        g d|          }	t          j        ||	          \  }}t          |t          j        d          dz             t          |d           d S )NrW   errorr   r   rn         Tra   r   )r           r   )r   r   rL   rL   rK   rd   )FFFT)r   r   r   g     X@)r   r   rL   rn   )re   arangewarningscatch_warningssimplefilterRuntimeWarningr   r,   pearsonrr+   r   r   r*   sqrt)
r.   rB   prx1y1rprb   x2y2s
             r2   test_pearsonrzTestCorr.test_pearsonr   s   IbMM$&& 	% 	% !'>:::1 5 5a 8#>>>1TTrT7 ; ;A >EEE&&&AA&&BBqEVO$$$BqEVO$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% X&&&''Xiii  r2&&1Arwqzz!|,,,Au%%% +**X,,,4888Xmmm$///r2&&1Arwqzz!|,,,Au%%%%%s   CDDDc                    t           j                            g dg d          }t           j                            g dg d          }t          j        g d          }t          j        g d          }t	          j        ||          \  }}t          j        ||          \  }}t          ||           t          ||           d S )Nr   rK   rL   rM   r   rc   )r   r   r   r   r   r   ra   )	   r   r   rc   r   r   )r   r   r   r   r   r   )r   rM   r   rc   )r   rc   r   r   )r*   re   masked_arrayr+   r,   r   r   r
   )	r.   mxmyrB   ymrmpr   r   s	            r2   test_pearsonr_misaligned_maskz&TestCorr.test_pearsonr_misaligned_mask   s    U 2 2 29K9K9KLLU 2 2 29K9K9KLLH\\\""H\\\""R((B~a##1RR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           d S )2N)333333@      @Gz	@HzG@)ffffff?Q@r   @r   gIQ=r   r   r   r   r   r   r   r   33333G@r"   皙%@N@333333?      P@̌O@r   ffffff?皙@333333?333333@r   @皙6@皙 @333333F@'@皙8@333333?@D@r   r   r   ffffff@r   333333?r   gI
?r   r   r"   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     r   i  rW   i  i  gV-?correlationpvalueTre   )
r   r,   	spearmanrr*   r   re   fix_invalidlistranger   r.   rB   r   res
attributess        r2   test_spearmanrzTestCorr.test_spearmanr   sF   ''')>)>)>AF,Qq11!4jAAAT$rv.T$tBF/KA.##R^A%6%6AF,Qq11!4jAAA0 0 00 0 0F,Qq11!4i@@@$dD#tT#sCc383dD#sD#sCc38.##R^A%6%6AF,Qq11!4i@@@
 ttqT1Q4
!ad#""qvD'1S6#$ 	F,Qq11!4e<<< q!$$.
C555555r4   c                    g d}g d}d}t          j        ||          \  }}t          ||           t          |d           t          j        ||d          \  }}t          ||           t          |d           t          j        ||d          \  }}t          ||           t          |d	           t          j                            d
          }d}t          j        dd|          }d|z  |                    |          z   }t          j        ||          \  }}	t          j        ||d          \  }
}t          ||	dz             t          j        ||d          \  }}t          |d|	dz  z
             ||
cxk    r|k    sn J t          j        t          d          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr   r   g+;
?gr?greateralternativegb?lessgcH}?l   MBy r_   r   r   皙?rK   r   zalternative must be 'less'...matchz	ekki-ekki)
r,   r   r   r*   randomdefault_rnglinspacer   r	   
ValueError)r.   rB   r   r_expr   r   rngnstat1p1stat2p2stat3p3s                 r2   test_spearmanr_alternativez#TestCorr.test_spearmanr_alternative  sO   0 0 00 0 0 #1%%15!!!,---1)<<<15!!!,---1&99915!!!?+++ i##J//K1a  ECJJqMM!$Q**	r$QyAAA	rBF###$Qv>>>	rAQJ'''&&&&&&&&&&]:-LMMM 	< 	<Q{;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   *GGGppc64lezfails/crashes on ppc64leru   c                 	   t          j        t          j        g d                    }t          j        t          j        g d                    }ddg}t          t          j        t          j        ||                    |           t          j        t          j        d                    }t          j        t          j        d                    }ddg}t          t          j        t          j        ||                    |           t          t          t
          j        ||d           |d	         }|d
         |d	<   ||d
<   ddg}t          t          j        t          j        ||                    |           |d         }|d         |d<   ||d<   ddg}t          t          j        t          j        ||                    |           t          j        t          j        d                    }t          j        t          j        d          d d d                   }ddg}t          t          j        t          j        ||                    |           |d	         }|d
         |d	<   ||d
<   ddg}t          t          j        t          j        ||                    |           |d         }|d         |d<   ||d<   ddg}t          t          j        t          j        ||                    |           t          j
        ddddt          j        g          }t          j
        ddddt          j        g          }t          j
        ddddt          j        g          }t          t          j        t          j        ||                    dd g           t          t          j        t          j        ||d!                    dd"g           t          t          j        t          j        ||                    d#d$g           t          j
        d%d%d%d%d&d&d%d'd%d&ddd%d(d%d&d%d%d%d%d%t          j        g          }t          j
        d%d)d)d)dd*d'd%d+d,d-d)d)d)d)d)d)d%dd.t          j        d%g          }t          j        ||          }t          t          j        |          d/d0g           d1}t          ||d23           d S )4N)r   rK   r   rc   )rM   r   r      r   r   rW   gxO~>bananamethodr   rK   g?>?gaV>r   rc   g}'}'?go&5>rn   r   g?>g}'}'r   r   r   r   r   g     :@gQgףp=
@r   r   g1UU?      ?
asymptoticglgN?g~ȋgQM?r   rX   r[   rZ   r]   !   C         -   gXJĿgvPwTk?r   Tr   )re   r+   r*   r   r   r,   
kendalltaur   assert_raisesr   r   r   r   )r.   rB   r   expectedbzresultr   s           r2   test_kendalltauzTestCorr.test_kendalltau1  s    HRXlll++,,HRXmmm,,-- :BJv'8A'>'>??JJJ HRYr]]##HRYr]]## +,BJv'8A'>'>??JJJ 	j&"3Q(KKKK aDt!! '(:;BJv'8A'>'>??JJJ aDt!! '(:;BJv'8A'>'>??JJJ HRYr]]##HRYr]]44R4()) ,-BJv'8A'>'>??JJJ aDt!! ();<BJv'8A'>'>??JJJ aDt!! ();<BJv'8A'>'>??JJJ ND$dBF;<<ND$tRV<==ND$dBF;<<BJv'8A'>'>??'.	0 	0 	0BJv'8Al'S'S'STT'3	5 	5 	5BJv'8A'>'>??'3	5 	5 	5 NAq!QB2q"Ar1b!Q1aI J JNAr2r2r2q"bBBB2r261N O O"1a((BJv..Y0GHHH /
FJ488888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                              d S )Nr   r   i    r   )
r*   r   floatre   masked_greaterconcatenater   isfiniter,   r  )r.   rB   r   s      r2   test_kendalltau_largezTestCorr.test_kendalltau_large  s     Id%(((a&&Id%(((NAdeeHah/00F-a33A67788888r4   c                 ~   t           t           dddddddddddgg ddddd	d
ddddt           ddt           gt           d	dddt           d	ddddddgg}t          j        |          j        }t	          j        |          }t          |d         dd           t          |d                             d          g d           d S )NrM   rK         r   r   rL   rM   rL   r   rL   rK   r   rL   r   r   rK   rL   r   rL   rc      r   r
     zglobal p-value (indep)gMb?zseasonal p-value)g
ףp=
?g(\?皙?g{Gz?)r   re   r   Tr,   kendalltau_seasonalr   round)r.   rB   outputs      r2   test_kendalltau_seasonalz!TestCorr.test_kendalltau_seasonal  s    31b"aAq!Q:444Aq"aAq#q!S91b!RaAq!Q:< N1+A..F#;<eQGGGF#56<<Q??111	3 	3 	3 	3 	3r4   r  )exactr  r   	two-sidedr   r   c                    t           j                            d          }d}|                    |          }|                    |          }|                    |          dk    }t          j        ||          }t          j        ||          }	t          j        ||	||          }
|                                }|	                                }t          j        ||||          }t           j	        ||<   t           j	        ||<   t          j        |||d|          }t          |
|           t          ||           d S )Nl   iL r'   r   ra   )r  r   omit)r  
nan_policyr   )r*   r   r   re   r+   r,   r  
compressedr   r   r   )r.   r  r   r   r   rB   r   rb   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  sG    i##J//JJqMMJJqMMzz!}}s"8AD)))8AD)))&hv;H H H
  **,,**,,),v;P P P &$&$"qFM M M 	
N33300000r4   c           	          ddddddddd}|                                 D ]6\  }}t          j        |d         |d	                   }t          ||           7d S )
Ng遣m?g:4W?g,
:H r   gK?g(6?))r_   iY	  )e   i	  )   r   )   r   )rA  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  s     &<%;"8"%"8"%%;%;= = )..00 	/ 	/LB0A1>>CX....	/ 	/r4   c                     ddddddd}|                                 D ]6\  }}t          j        |d         |d	                   }t          ||           7d S )
NgE?gU`Ux<?gve?gZ?g=?gG?))i  i5  )i  i\  )i   idd )i!  ih )i@  i 	 )iA  i 	 r   r   rE  rH  s        r2   test_kendall_p_exact_largez#TestCorr.test_kendall_p_exact_large  s|     '=&<'='=(>(>@ @ )..00 	/ 	/LB0A1>>CX....	/ 	/r4   c                 X   g d}g dddddddd	d
dddddddddddddddddddddddddt           j        }t          t          j        ||          d         d d!           t          j        ||          }d"}t          ||d#$           d S )%N)#r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn   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 5 5BT B4 B Bt BS B# Bs BC B Bc B3 B BBBBB!$B&)B+.B03B58B:=B?BBDGBILBBBBB!$B&)B+.B03B58B:<&B 	F1!Q77:GQGGG #Aq)).
C555555r4   N)r5   r6   r7   r   r   r   r  r   r   r   platformmachiner  slowr"  r.  parametrizer=  rK  xslowrM  r   rS  r8   r4   r2   r   r      s       & & &>  $6 $6 $6L,< ,< ,<\ [((**i79  ; ;T9 T9; ;T9l [((**i79  ; ;[9 9 ; ;9
3 
3 
3 [X'>??[],LMM1 1 NM @?1:/ / / [/ / / 6 6	 6 6 6r4   r   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestTrimmingc                 ~   t          j        d          }t          t          j        |          g d           t          j        d          }t          t          j        |d          g d           t          j        d          }t          t          j        |dd          g d           t          j        d          }t          t          j        |dd	
          g d           t          j        d          }t
          x|ddg<   |d<   t          t          j        |d          g d           t          j        d                              dd          }dgdz  dgdz  z   dgdz  z   }t          j        |dd	d           }t          |j                                        |           t          j        |dd	d          }t          |j                                        |           t          j        |dd	d          }t          |j        j	                                        |           t          j        d                              dd          }t
          |d<   dgdz  dgdz  z   dgdz  z   }t          j        |dd	d           }t          |j                                        |           t          j        |dd	d          }t          |j                                        |           t          j        |j	        dd	d          }t          |j	        j                                        |           d S )NrW   
r   r   rK   rL   rM   r   rc   r   r   r   )rK   r   )
NNrK   rL   rM   r   rc   r   r   NFFlimits	inclusive)
NNNrL   rM   r   rc   r   NN)r   r)  T)r_  relative)
Nr   rK   rL   rM   r   rc   r   NN   r   rn   r   )NNrK   rL   rM   Nrc   r   r   NNNr_   r   r\   rX   )ra  r(   r   r
  )
re   r   r
   r,   trimr   reshape_maskravelr*  )r.   rS   rB   r  trimxs        r2   	test_trimzTestTrimming.test_trim  s   IbMMV[^^%:%:%:;;;IbMMV[5))+I+I+IJJJIbMMV[%-HHH999	; 	; 	;IbMMV[)TBBB333	5 	5 	5 IbMM!!1R&	AaDV[E**KKK	M 	M 	M IcNN""2r**3r6QCF?aSV+Ay4dCCCU[&&(((333Ay4a@@@U[&&(((333Ay4bAAAU[]((**H555 IcNN""2r**!3r6QCF?aSV+Ay4dCCCU[&&(((333Ay4a@@@U[&&(((333ACTCCCUW]((**H55555r4   c                    t          j        d          }t          t          j        |                                          d           t          t          j        |d                                          d           t          |dd<   t          j        |          }t          |                                d           t          |j        d	gd
z  dgdz  z   d	gdz  z   dgdz  z   d	gd
z  z              t          |_        |
                    d          }t          t          j        |                                          d           t          t          j        |                                          d           d S )Nr_   r[   r   )tailr]   r'   r\   0   r   r$  r   "   rX      )rW   rW   )re   r   r
   r,   trimbothcounttrimtailr   re  r   rd  )r.   rB   rg  s      r2   test_trim_oldzTestTrimming.test_trim_old  sA   IcNNV_Q''--//444V_QC0006688"==="R%""U[[]]B'''U[1#b&A3r6/QCF":aSV"Cqc"f"LMMMIIgV_Q''--//444V_Q''--//44444r4   c                     t          j        d          }t          j        |dd          }t          j        g dg d          }t          ||           t          |j        |j                   d S )NrW   )g333333?gQ?r]  r^  r\  )
r   r   r   r   r   r   r   r   r   r   ra   )re   r   r,   trimrr+   r
   rb   )r.   rB   r  r  s       r2   
test_trimrzTestTrimming.test_trimr%  sz    IbMMaOOO8:::!?!?!?A A AVX&&&V[(-00000r4   c                 
   t          j        g d          }t          t          j        |d          dd           t          t          j        |d          dd           t          t          j        |d          dd           d S )NM   W   X   r                  i  i(  i+  i2  ix  i  i  i  i  i3
  r   iW  r   )r   r   r)  r)  i  )re   r+   r   r,   trimmed_meanr.   r/   s     r2   test_trimmedmeanzTestTrimming.test_trimmedmean-  s    x @ @ @ A AF/S993BBBF/Y??aHHHF/Y??aHHHHHr4   c                 2   t           j                            d          }|                    d          }t          j        |          }t	          j        |g d          }t          t          j        |d          |	                                           d S )Nl   l{f0j rX   sizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   r   )
r*   r   r   sortre   r+   r   r,   trimmed_varvarr.   r   	data_origr/   s       r2   test_trimmedvarzTestTrimming.test_trimmedvar4       i##$788JJBJ''	wy!!x $B $B $B C C C*9c::DHHJJGGGGGr4   c                 2   t           j                            d          }|                    d          }t          j        |          }t	          j        |g d          }t          t          j        |d          |	                                           d S )Nl   /{Gzi rX   r  r  ra   r   )
r*   r   r   r  re   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           d S )Nrv  r  g>L@r   r)  )re   r+   r   r,   trimmed_stder  s     r2   test_trimmed_stdezTestTrimming.test_trimmed_stdeH  sk    x @ @ @ A AF/Y??1MMMF/S998QGGGGGr4   c                    t          j        g d          }t          t          j        |d                              d          dd           t          t          j        |dd                              d          dd           t          |d<   t          j        |          }t          |j        |j                   d S )	Nrv  r  r   ddofg@r]  gffff7@r   )	re   r+   r   r,   	winsorizer  r   r
   rb   )r.   r/   
winsorizeds      r2   test_winsorizationzTestTrimming.test_winsorizationN  s    x @ @ @ A AF,T)<<@@a@HH#Q	( 	( 	(T9];;??Q?GGQ	 	 	 Q%d++
Z_di00000r4   c           
      ,   t          j        t          j        t          j        dddg          }t	          t
          t          j        |dd           t          t          j        |d          t          j        g d                     t          t          j        |d	          t          j        t          j        t          j        t          j        t          j        t          j        g                     t          t          j        |dd
          t          j        t          j        t          j        dddg                     t          t          j        |d	d
          t          j        t          j        t          j        dddg                     d S )Nr   r   rK   )皙?r  raise)r4  )皙?r  r   )rQ  rQ  r3  )	re   r+   r*   r   r  r   r,   r  r
   r  s     r2   test_winsorization_nanz#TestTrimming.test_winsorization_nanZ  sM   xAq122j&"2D,!(	* 	* 	* 	* 	V%dJ77Xooo..	0 	0 	0V%dJ77XrvrvrvrvrvFGG	I 	I 	IV%dJ6JJJXrvrvq!Q788	: 	: 	:V%dJ6JJJXrvrvq!Q788	: 	: 	: 	: 	:r4   N)r5   r6   r7   rh  rq  rt  r  r  r  r  r  r  r8   r4   r2   rZ  rZ    s        #6 #6 #6J5 5 51 1 1I I IH H HH H HH H H
1 
1 
1: : : : :r4   rZ  c                      e Zd Zg dZ ej        dddddej        g          Z ej	         ej	        g dg dg d	g d
g dg           ej	        g dg dg dg dg dge
                    ZddddZd Zd Zd Zd Zd ZdS )TestMomentsrJ   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   ra   Nshaper<   c                    t          j        |          }|t          j        ||          }t          ||           ||j        }|j        |k    sJ d S N)r*   r   broadcast_tor   r<   )r.   actualexpectr  r<   s        r2   _assert_equalzTestMoments._assert_equal  s]    F##_VU33F66***=LE|u$$$$$$r4   c                    t          j        | j        d          }t          |dd           t          j        | j        d          }t          |d           t          j        | j        d          }t          |d           t          j        | j        d          }t          |d           t          j        | j        g d	          }t	          |g d
           t          j        | j        d          }t	          |d           t          t          t           j        | j        d           t          j        | j        g d          }t	          |g d
           t          j        g           }|                     |t          j	        t          j
                   t          j        t          j        g t          j                            }|                     |t          j	        t          j                   t          j        t          j        d          d          }|                     |g dt          j
                   t          j        g gd          }|                     |t          j	        dt          j
                   t          j        g gddgd          }|                     |g d           t          j        d          }t          j	        |d<   t          t          j        |d          t           j                   d S )Nr   r   rW   rK         ?rL   rM        @rJ   )r   r  r   r  r   r   )r   rK   rL   r!   r   )r   r   r   r   )r   r  )r   )momentr(   )rK   r   )r  g      $@r   )r,   r  testcaser   r   r  r   r  r*   r   float64r+   float32zerosr   r
   re   r   )r.   r   rB   s      r2   test_momentzTestMoments.test_moment  s   M$-**Ac"%%%M$-**Ad###M$-**Ac"""M$-**Af%%% M$-66///000 M$---3j&-DDDM$-)9)9)9::///000 M"1bfBJ777M"(2RZ888991bfBJ777M"(6**3331bBJ???M2$Q'''1bfD
CCCM2$1vA6661b///IcNNv!V]1a((")44444r4   c                 Z    t          j        | j                  }t          |dd           d S )N%?rW   )r,   	variationr  r   )r.   r   s     r2   test_variationzTestMoments.test_variation  s-    T]++A.33333r4   c                 ~    t          j        g d          }t          j        |d          }t	          |d           d S )N)r   rK   rL   rM   r   r   r  g<<'?)r*   r+   r,   r  r   )r.   rS   r   s      r2   test_variation_ddofzTestMoments.test_variation_ddof  sC     H___%%QQ'''A122222r4   c           	      n   t          j        | j                  }t          |dd           t          j        | j        d          }t          |dd           t          j        | j                  }t          |dd           t          j        t          j        g d          t          j        g dt          	          
          }t          t          j        | j
        d          |           t          | j
                  D ]-\  }}t          t          j        |          ||                    .t          j        t          j        g d          t          j        g dt          	          
          }t          t          j        | j
        dd          |           t          | j
                  D ]/\  }}t          t          j        |d          ||                    0t          t          j        | j
        dd d f                   t          j        | j
        dd d f                              d S )Ng7l*ҿrW   r   biasg2۠ۿr   )gҽr?r   g>HÛe?r   gIǮFFFTFr   ra   r   )g`٨?r   gn?r   g0FrK   )r,   skewtestmathworksr   r  re   r+   r*   boolr   testcase_2d	enumerater   r.   r   
correct_2dirowcorrect_2d_bias_correcteds         r2   test_skewnesszTestMoments.test_skewness  sE   K*++A/333K*222A0444K&&Ac"%%% XH / / / 0 0<<<DIII
 
 


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


a



111crc6


a


WWYYBRr4   N)r5   r6   r7   r  r  r8   r4   r2   r  r    s2        9 9 9:    r4   r  c                        e Zd Zd Zd Zd ZdS )TestPercentilec                 <    g d| _         g d| _        g d| _        d S )N)rL   rM   r   rW   rc   )rL   r   r   rM   rK   r   )r   rM   r   rW   r  r  r  r   )r  r  r  r.   s    r2   setup_methodzTestPercentile.setup_method-  s-    ***,,,111r4   c                    t          j        d          dz  }t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           d S )	Nr   r   r   r   r_   r   r'   g      ?)r*   r   r
   r,   scoreatpercentiler   s     r2   test_percentilezTestPercentile.test_percentile2  sq    IaLL3V-a33R888V-a55s;;;V-a44d;;;;;r4   c                     t          j        g dg dg dg dg dg          }t          t          j        |d          g d           d S )Nr   r   r   )rM   rM   rL   r'   )re   r+   r
   r,   r  r   s     r2   test_2DzTestPercentile.test_2D8  sc    Hiiiiiiiiiii	! " "
 	V-a44iii@@@@@r4   N)r5   r6   r7   r  r  r  r8   r4   r2   r  r  ,  sF        2 2 2
< < <A A A A Ar4   r  c                   X    e Zd ZdZ ej        ddddej        g          Zd Z	d Z
d Zd	S )
TestVariabilityz[  Comparison numbers are found using R v.1.5.1
         note that length(testcase) = 4
    r   rK   rL   rM   c                 D   t          j        | j                  }t          |d           | j                                        }t          t          j        | j        d          t          j        ||dz
  z            z  t          j        | j        d                     d S )Ng㝎?r   r  rK   )r,   semr  r   ro  r   r*   r   )r.   r   r   s      r2   test_semzTestVariability.test_semH  s    Jt}%%A|,,,M!!
4=q999BGAqsG<L<LL
4=q999	; 	; 	; 	; 	;r4   c                     t          j        | j        | j                  }g d}t          ||j        |j        dk             d           d S )N)OT\w%ܿr  OT\w?Frb  decimal)r,   zmapr  r   r/   rb   )r.   r   desired_unmaskedvalss      r2   	test_zmapzTestVariability.test_zmapP  sj     Kt}55!D !D !D!"6"#&5"92	G 	G 	G 	G 	G 	Gr4   c                     t          j        | j                  }t          j        ddddt
          j        g          }t          ||d           d S )Nr  r  r  r  rb  r  )r,   zscorer  re   r   r*   r   r   )r.   r   r0   s      r2   test_zscorezTestVariability.test_zscoreY  sX     M$-((."24E"2ORV"M N NGQ333333r4   N)r5   r6   r7   __doc__re   r   r*   r   r  r  r  r  r8   r4   r2   r  r  A  sn          r~q1Qrv.//H; ; ;G G G4 4 4 4 4r4   r  c                        e Zd Zd Zd Zd ZdS )TestMiscc                    dgdz  dgdz  z   dgdz  z   dgdz  z   dgdz  z   d	gdz  z   dgdgdz  z   dgd
z  z   dgdz  z   d	gdz  z   g}ddgz  ddgz  z   ddgz  z   ddgz  z   ddgz  z   ddgz  z   dgddgz  z   d
dgz  z   ddgz  z   ddgz  z   g}t          t          j        t          j        | j        d
          |d
           d S )Nr   rc   r
  r   r   r   rL   rK   rW   rM   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BHV%;T%B%DaHH"A	' 	' 	' 	' 	'r4   c                 2   t           t           dddddddddddgg ddddd	d
ddddt           ddt           gt           d	dddt           d	ddddddgg}t          j        |          j        }|j        \  }}}}t	          t          j        t          j        ||          d          d           t	          t          j        t          j        ||d          d          d           t	          t          j        t          j        ||d          d          d           d S )NrM   rK   r$  r%  r   r   rL   r&  rc   r'  r   r
  r(  )48E?gsA?g)g%䃞?g 	?l)r  g46<?)	r   re   r   r*  r   r*   r,  r,   ks_2samp)r.   rB   winterspringsummerfalls         r2   test_ks_2sampzTestMisc.test_ks_2sampm  s+   #q!RQ1aAq9444Aq"aAq#q!S91b!RaAq!Q:< N1)*&BHV_VV%D%DaHH,	. 	. 	.BHV_VVS%I%I1MM,	. 	. 	.BHV_VVS%I%I1MM,	. 	. 	. 	. 	.r4   c                    g dg dg df}t          j        | }t          |d         dd           t          |d         dd	           t          t          dd
ddddddd
ddgg ddd
dd	dddddt          ddt          gt          d	dddt          d	ddd
dddgg}t	          j        |          }t          j        | }t          |d         dd           t          |d         dd           d}t          ||d           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                    d S )#N)
g      "@      #@      @      @r  r         @r   r   r   )
r   r   r   r  r  r  r   r   r   r   )
r   r  r!   r   r   r   r   r!   r   r   r   g:pΈ$@rM   r   g(QGu?rc   rK   r$  r%  r   rL   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      @rP  g @)g!@g!@g333333 @rO  g333333"@)gNt$@gBv?)g\(\%@g+ԋ?)r,   friedmanchisquarer   r   re   r   r   r*   r   r   r  r   )r.   r
  r  rB   r   r+   r   x3s           r2   test_friedmanchisqzTestMisc.test_friedmanchisq|  s   999999999; )40F1Iw222F1Ix333#q!RQ1aAq9444Aq"aAqa371b!RQ1aAq9; N1)1-F1Ivq111F1Ivq111 -
FJ48888 e C C C D De D D D E Ee E E E F Fe D D D E EF& e...//e---..e---..e---..0 	"&":B"?"H	J 	J 	J 	"&":B"?"=	? 	? 	?j&":BqE2a5IIIIIr4   N)r5   r6   r7   r  r  r#  r8   r4   r2   r  r  b  sF        ' ' '. . .:J :J :J :J :Jr4   r  c                  2   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           d S )Nr   r_   r)  rW   rX   )slope	interceptrvaluer   stderrTr   intercept_stderrg5E%?g +l$@g4_Qc?g8?)r*   r   sinr,   
linregressr   LinregressResultr   
isinstancer   dirr   r%  r&  r(  r)  )rB   r   r  lrr   s        r2   test_regress_simpler0    s   
AsC  Abk!S#&&&+AAr3''	(	((Aq!$$F 
	#BJvr""###EJ
t4444V,,,, &9:::(*<===';<<</1DEEEEEr4   c                  "   t           j                            d          } t          j        d          }|                     d          }d}t	          t
          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nl   B8k:E rW   zBCannot calculate a linear regression if all x values are identicalr   )r*   r   r   r  r  r   r,   r+  )r   rB   r   msgs       r2   test_linregress_identical_xr3    s    
)


,
,C
A

2A
NC	z	-	-	-    !Q                                   s   !BBBc                   &    e Zd Zd Zd Zd Zd ZdS )TestTheilslopesc                    t          j        g d          \  }}}}t          |d           t          |d           t          j        g dd          \  }}}}t          |d           t          |d           t          j                            g dg d          }t          j        |          \  }}}}t          |d	           t          |d
           t          j        |d          \  }}}}t          |d	           t          |d           g d}g d}t          j        ||d          \  }}}}t          |d           t          |d           t          |dd           t          |dd           t          j        ||dd          \  }}}}t          |d           t          |d           t          |dd           t          |dd           d S )N)r   r   r   r   jointr  r   )r   r   r_   r   )FFTFra   rd   gUUUUUU?)r   rK   rL   rM   rW   rb  r'  )r         rX   r  7   N   gQ?rM   r!   gQ@rK   r  gGz@r   )r,   theilslopesr   r*   re   r+   )r.   r%  r&  lowerupperr   rB   s          r2   test_theilslopesz TestTheilslopes.test_theilslopes  s+   )/);III)F)F&y%E3'''Is+++)/);IIICJ*L *L *L&y%E3'''Is+++ EKK-H-H-HKII)/);A)>)>&y%E4(((It,,,)/);ACJ*L *L *L&y%E4(((Is+++ %$$''')/);Aq$)G)G&y%E1%%%Is+++E43333E43333)/);Aq$CJ*L *L *L&y%E1%%%Is+++E43333E4333333r4   c                    d}t          j        t          |          5  t          j        ddgddg          }t          j        t          j        |                    sJ 	 d d d            n# 1 swxY w Y   t          j	                    5  t          j
        ddt                     t          j        g dg d          }t          |ddt
          j        t
          j        f           d d d            d S # 1 swxY w Y   d S )	NzEAll `x` coordinates.*|Mean of empty slice|invalid value encountered.*r   r   r   ro   zinvalid value encountered...r   r   r   )r   r   r   )r   warnsr   r,   r<  r*   allisnanr   r   filterwarningsr   r   )r.   r2  r   s      r2   test_theilslopes_warningsz)TestTheilslopes.test_theilslopes_warnings   sx   U\.444 	) 	)$aVaV44C6"(3--((((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) $&& 	9 	9#8.J J J$YYY			::CC!Q!7888		9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s%   AA--A14A1AC55C9<C9c                    g d}g d}t          j        ||          \  }}}}t          j        ||          }t          ||j                   t          ||j                   t          ||j                   t          ||j                   dS )zv
        Simple test to ensure tuple backwards-compatibility of the returned
        TheilslopesResult object
        r   rK   rM   rM   rc   r   N)r,   r<  r
   r%  r&  	low_slope
high_slope)r.   r   rB   r%  r&  rJ  rK  r  s           r2   'test_theilslopes_namedtuple_consistencyz7TestTheilslopes.test_theilslopes_namedtuple_consistency  s    
 IIII282DQ2J2J/y)Z#Aq)) 	UFL)))Y 0111Y 0111Z!233333r4   c                     t           j                            d          }|                    dddt           j                  }t          j        ||          }t           j                            |j	        d           d S )Nl   U5<H r      rW   )r  r<   r   )
r*   r   r   integersuint8r   r<  testingr   r%  )r.   r   r   r   s       r2   test_gh19678_uint8z"TestTheilslopes.test_gh19678_uint8  sg     i##$455LLCbL991%%

""39a00000r4   N)r5   r6   r7   r?  rF  rL  rR  r8   r4   r2   r5  r5    sQ        $4 $4 $4N
9 
9 
94 4 4 1 1 1 1 1r4   r5  c                     dt          j        d          z  dz   } t          t          j        |           d           t          t          j        | d          d           dt          j        d          z  }d|z  dz
  } t          t          j        | |          d	           t          t          j        | |d          d	           d
| d d<   t          t          j        | |          d	           t          j        d          }dd|z  z   t
          j                            dd          z   } t          j        ||           \  }}}}}t          j        | |          \  }}t          ||d           t          ||d           t          j        | |d          \  }}t          ||d           t          ||d           d S )NrK   rW   r   )r   r   separater  r   r   )r  r  r  rM   gffffffr      r  random_stater   r=   )
r*   r   r
   r,   siegelslopesr   normrvsr+  r   )r   rB   	slope_olsintercept_ols_r%  r&  s          r2   test_siegelslopesr^  &  s   	BIbMMCA$Q''444$Qz:::JGGG	BIbMMA	AA$Q**K888$Q*==={KKK AbqbE$Q**K888 		"As1uuz~~2C~@@@A(-(8A(>(>%I}aA*1a00E9E93////I}37777*1a
CCCE9E93////I}3777777r4   c                      g d} g d}t          j        | |          \  }}t          j        | |          }t          ||j                   t          ||j                   dS )zl
    Simple test to ensure tuple backwards-compatibility of the returned
    SiegelslopesResult object.
    rH  rI  N)r,   rX  r
   r%  r&  )r   rB   r%  r&  r  s        r2   (test_siegelslopes_namedtuple_consistencyr`  C  sl    
 			A		A*1a00E9 A&&F %%%F,-----r4   c            
         t           j                            d          } |                     d          t          j                  \  }}d t          d          D ]=}t          t          j         d d |f                             ||                    >t          j        fdt          j	        d                   D                       }t          t          j        |          |           d S )Nl   ,'  )r_   rM   r  c                 0   t          |           }t          j        |          }| | d d t          j        f         z
  }||d d t          j        f         z
  }t          j        t          j        ||ft                    d          }||         ||         z  S )Nr   r   )k)lenr*   r   newaxistriuonesr  )yir   rB   dydxrb   s         r2   dijkz&test_sen_seasonal_slopes.<locals>.dijkX  s    GGIaLL"QQQ
]##111bj=!!wrw1vT222a888$x4  r4   rM   c                 :    g | ]} d d |f                   S r  r8   ).0r  rk  rB   s     r2   
<listcomp>z,test_sen_seasonal_slopes.<locals>.<listcomp>c  s-     J J J1a1g J J Jr4   r   )
r*   r   r   r,   sen_seasonal_slopesr   r   medianr   r  )r   intra_slopeinter_sloper  
all_slopesrk  rB   s        @@r2   test_sen_seasonal_slopesrt  R  s    
)

 3
4
4C


!!A%9!<<K! ! ! 1XX B B	$$qAw--00+a.AAAA J J J J Jagaj8I8I J J JKKJBIj));77777r4   c                      t          j        t          j        d          dd          } t	          | j        t          j        g d                     d S )NrL   r   )rO   r   r  )r,   plotting_positionsr*   r   r   r/   r+   )poss    r2   test_plotting_positionsrx  g  sG    

#BIaLL!Q
7
7Cch1B1B1B(C(CDDDDDr4   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	d
g          e
j                            dddg          d                         Zd ZdS )TestNormalitytestsc                 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            n# 1 swxY w Y   t!          t"          ||           d S )Nr  rn   r   r   rK   rL   r  rn   r   r   rK   rL   r  rn   r   r   rK   rL   r  rn   r   r   rK   rL   rK   rJ   r   )r*   r+   r   r,   
normaltestr   skewtestkurtosistestzipr   rB  r   r   rD  r  r   r  r   )r.   rB   funcsmfuncsfuncmfuncr   s          r2   test_vs_nonmaskedz$TestNormalitytests.test_vs_nonmaskedp  s   H+,,a/!&"3A"6"6"'"21"5"5	7 	7 	7!&/!"4"4"'."3"3	5 	5 	5!&"5a"8"8"'"4Q"7"7	9 	9 	9 !5>53EF#V_f6IJLLuf-- 	0 	0KD%08MNNN , ,d1ggx.....x
++++++, , , , , , , , , , , , , , , *eQ////	0 	0s   3AFF		F	c                 x   t          j        d          dz  }t          t          j        |d           t          j        |                     t          t          j        |d           t          j        |                     t          t          j        |d           t          j        |                     d S )Nr|  rK   r   )r*   r+   r   r,   r}  r~  r  r   s     r2   test_axis_Nonez!TestNormalitytests.test_axis_None  s    H&''*)!$7779J19M9MNNN555vq7I7IJJJ+AD999+A..	0 	0 	0 	0 	0r4   c                     t          j        d          dz  }t           j                            t           j        t           j        |df         t           j        ddg|j        z  df                   }t          t          j        |          t          j        |                     t          t          j
        |          t          j
        |                     t          t          j        |          t          j        |                     d S )Nr|  rK   rW   TFra   )r*   r+   re   r_infr  r   r,   r}  r   r~  r  )r.   rB   xms      r2   test_maskedarray_inputz)TestNormalitytests.test_maskedarray_input  s    H+,,a/U[[rvq"}- eD5'AF*:D$@A  C C)"--u/?/B/BCCC++U^A->->???+B//1CA1F1FGGGGGr4   c                 f   t          j        d          dz  }t          j        |gdz            j        }t          j        t          j        t          j        fD ]X} ||          } ||          }t          |d         |d         gdz             t          |d         |d         gdz             Yd S )Nr|  rK   r   r   )	r*   r+   vstackr*  r,   r}  r~  r  r   )r.   rB   x_2dr  res_1dres_2ds         r2   test_nd_inputz TestNormalitytests.test_nd_input  s    H+,,a/y!q!!#&9LM 	8 	8DT!WWFT$ZZFF1Iq	{Q777F1Iq	{Q7777		8 	8r4   c                     t          j        d          dz  }t          j        |          }d}t	          ||d           d S Nr|  rK   r  Tr   )r*   r+   r,   r}  r   r.   rB   r   r   s       r2   !test_normaltest_result_attributesz4TestNormalitytests.test_normaltest_result_attributes  sG    H+,,a/"",
C555555r4   c                     t          j        d          dz  }t          j        |          }d}t	          ||d           d S r  )r*   r+   r,   r  r   r  s       r2   #test_kurtosistest_result_attributesz6TestNormalitytests.test_kurtosistest_result_attributes  sG    H+,,a/!!$$,
C555555r4   c                     g d}t          j        d t          |          D                       }t          t	          j        |          d         dk     d           d S )N)
   r   :   r   r   )   r$  r   r      c                 >    g | ]\  }}t          j        ||          S r8   )r*   full)rm  r  cs      r2   rn  z;TestNormalitytests.test_regression_9033.<locals>.<listcomp>  s&    CCCArwq!}}CCCr4   r   g{Gz?T)r*   hstackr  r
   r,   r  )r.   countsrB   s      r2   test_regression_9033z'TestNormalitytests.test_regression_9033  s`     766ICC61B1BCCCDDV(++A.5t<<<<<r4   testr~  r  r   r   r   c                 \   t           j                            dddd          }t          t           |          }t          t          |          } |||          \  }} |||          \  }}	t          ||d           t          |	|d           t          j        |d	d
<   t          j        	                    |t          j
        |                    } ||                                |          \  }} |||          \  }}	t          ||d           t          |	|d           d S )NrW   r&   rY   {   locscaler  rW  r   g-q=atolr   r   ra   )r   rY  rZ  getattrr,   r   r*   r   re   r   rD  r5  )
r.   r  r   rB   
stats_testmstats_testz_exp_exr  r   s
             r2   test_alternativez#TestNormalitytests.test_alternative  s2    JNNr2CNHHUD))
fd++Z{;;;
d{1+66614e,,,,4e,,,, !A#Eqrx{{33ZKHHH
d{1+66614e,,,,4e,,,,,,r4   c                 r   t           j                            dd          }d}t          j        t
          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        t
          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )NrX   r  rV  z`alternative` must be...r   r   r   )	r   rY  rZ  r   r	   r   r,   r~  r  )r.   rB   r2  s      r2   test_bad_alternativez'TestNormalitytests.test_bad_alternative  s.   JNNN55)]:S111 	4 	4OA73333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 ]:S111 	8 	8w7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s#   A""A&)A&B,,B03B0N)r5   r6   r7   r  r  r  r  r  r  r  r   r   rW  r  r  r8   r4   r2   rz  rz  m  s        0 0 0&0 0 0H H H8 8 86 6 66 6 6= = = [Vj.%ABB[]VY,?@@- - A@ CB-&8 8 8 8 8r4   rz  c                       e Zd Zd ZdS )TestFOnewayc                     t          j        ddgt           j                  }t          j        ddgt           j                  }t          j        ||          }d}t          ||d           d S )	Ni  i  r   i  i  r  Tr   )r*   r+   uint16r,   f_onewayr   )r.   rS   r  r   r   s        r2   test_result_attributesz"TestFOneway.test_result_attributes  sg    Hc3Zry111Hc3Zry111oa##,
C555555r4   Nr5   r6   r7   r  r8   r4   r2   r  r    s#        6 6 6 6 6r4   r  c                   b    e Zd Z ej        g d          Z ej        g d          Zd Zd ZdS )TestMannwhitneyu)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                 l    t          j        | j        | j                  }d}t	          ||d           d S )Nr  Tr   )r,   mannwhitneyurB   r   r   )r.   r   r   s      r2   r  z'TestMannwhitneyu.test_result_attributes  s8    !$&$&11,
C555555r4   c                     t          j        | j        | j                  }t	          j        | j        | j                  }|j        |j        k    sJ t          |j        |j                   d S r  )r,   r  rB   r   r   r  r   r   )r.   res1res2s      r2   test_against_statsz#TestMannwhitneyu.test_against_stats   s_     "464622!$&$&11~////T[11111r4   N)	r5   r6   r7   r*   r+   rB   r   r  r  r8   r4   r2   r  r    sx         * * * 	+ 	+A& 	 " " " 	# 	#A6 6 6
2 2 2 2 2r4   r  c                       e Zd Zd ZdS )TestKruskalc                 h    g d}g d}t          j        ||          }d}t          ||d           d S )N)r   rL   r   r   r   )rK   rM   rc   r   rW   r  Tr   )r,   kruskalr   r   s        r2   r  z"TestKruskal.test_result_attributes  sG    OOnQ"",
C555555r4   Nr  r8   r4   r2   r  r  
  s#        6 6 6 6 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                            d	d
dg          d             ZdS )TestTtest_relc                 N    t           j                            d          | _        d S )Nl   6Gk] r*   r   r   r   r  s    r2   r  zTestTtest_rel.setup_method      9((44r4   c                 *   | 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          ||           d S )NrX   rM   r   r   r   rK   r   r   r   rK   )r   standard_normalr   	ttest_relr,   r   )r.   outcomer  r  res3s        r2   r  zTestTtest_rel.test_vs_nonmasked  s   (**733lllB wqqq!t}gaaadm<<1wqqq!t}==d### wqqq!t}gaaadm$GGG1wqqq!t}4HHHd###wqqq"1"u~wqqq!""u~AFFF2A2122QGGGd### 2A2122??d#####r4   c                 &   t          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 ]_}t          j        | \  }}t          |t          j	        t          j	        f           t          |t          j	        t          j	        f           `	 d d d            d S # 1 swxY w Y   d S Nr  r  rA  ra   ro   %invalid value encountered in absoluter   r   r   r   )re   r   r   r  r   r   rE  r   r*   r   r,   r  r   r.   r  pairtr   s        r2   test_fully_maskedzTestTtest_rel.test_fully_masked-  ^   /$(":":6"B"B(1		999'=? ? ?$&& 	8 	8#A>S S S!!!!Q$-A7626*S#J79 8 8'.1"1rvrv&6777"1rvrv&67777	8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8   B0DD
D
c                     | j                             d          g dz   }t          j        |d d df         |d d df                   }d}t	          ||d           d S Nr  r  r   r   r  Tr   )r   r  r,   r  r   r.   r  r   r   s       r2   r  z$TestTtest_rel.test_result_attributes9  j    (**733lllBwqqq!t}gaaadm<<,
C555555r4   c           
         t          t          t          j        t	          j        d          t	          j        d                     t	          j        d          }t          t          t          j        |                    ddd          |                    ddd          d           t          t          t          j        |                    ddd          |                    ddd          d           d S )	NrW   r
  rN   rK   rL   rM   r   r   )r  r   r,   r  r*   r   rd  r   s     r2   test_invalid_input_sizez%TestTtest_rel.test_invalid_input_size@  s    j&"2immRYr]]	4 	4 	4IbMMj&"2ii1a((!))Aq!*<*<1	F 	F 	F 	Fj&"2ii1a((!))Aq!*<*<1	F 	F 	F 	F 	F 	Fr4   c                     t          j        g g           }t          t          j        t          j        |                               d S r  )r,   r  r   r*   rC  rD  r.   r  s     r2   
test_emptyzTestTtest_rel.test_emptyI  :    B''rx~~&&'''''r4   c                 D   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            d S # 1 swxY w Y   d S )NrA  r  r   ro   r  )r,   	ttest_indr
   r*   absr  r   r   rE  r   r   r+   r   r.   r  r   s      r2   test_zero_divisionz TestTtest_rel.test_zero_divisionM  s9   			999551bfQii^bfa[111$&& 	> 	>#A>S S S#IIIyyy99DAqq"(BFBF+;"<"<===q"(BFBF+;"<"<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s    B(DDDc                     d}t          j        t          |          5  t          j        g dg dd           d d d            d S # 1 swxY w Y   d S N4alternative must be 'less', 'greater' or 'two-sided'r   r   rK   rL   )rM   r   rc   foor   r   r	   r   r,   r  r.   r2  s     r2   r  z"TestTtest_rel.test_bad_alternativeX      E]:S111 	F 	FYYY			uEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F   AAAr   r   r   c                 J   t           j                            dddd          }t           j                            dddd          }t          j        |||          \  }}t	          j        |||          \  }}t          ||d	
           t          ||d	
           t          j        |dd<   t          j        |dd<   t          j        	                    |t          j
        |                    }t          j        	                    |t          j
        |                    }t	          j        |||          \  }}t          j        |                                |                                |          \  }}t          ||d	
           t          ||d	
           d S )NrW   r   r  *   r  r   rK   r   rP   r=   r   ra   )r   rY  rZ  r  r,   r   r*   r   re   r   rD  r5  r.   r   rB   r   t_exr  r  r   s           r2   r  zTestTtest_rel.test_alternative]  sw   JNNr"NEEJNNqNDD_Q{CCC
d1+>>>14e,,,,4e,,,, &!B$&!B$Eqrx{{33Eqrx{{331+>>>1_Q\\^^Q\\^^1<> > >
d4e,,,,4e,,,,,,r4   N)r5   r6   r7   r  r  r  r  r  r  r  r  r   r   rW  r  r8   r4   r2   r  r    s        5 5 5$ $ $(
8 
8 
86 6 6F F F( ( (	> 	> 	>F 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                            dd	d
g          d             ZdS )TestTtest_indc                 N    t           j                            d          | _        d S )Nl   };[9 r  r  s    r2   r  zTestTtest_ind.setup_methodt  r  r4   c                    | 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          ||           d S )
Nr  r  r   r   r   rK   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33lllB wqqq!t}gaaadm<<1wqqq!t}==d### wqqq!t}gaaadm$GGG1wqqq!t}4HHHd###wqqq"1"u~wqqq!""u~AFFF2A2122QGGGd### 2A2122??d### wqqq!t}gaaadmtLLL1wqqq!t}MMMd###wqqq!t}gaaadmuMMM1wqqq!t}NNNd#####r4   c                 &   t          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 ]_}t          j        | \  }}t          |t          j	        t          j	        f           t          |t          j	        t          j	        f           `	 d d d            d S # 1 swxY w Y   d S r  )re   r   r   r  r   r   rE  r   r*   r   r,   r  r   r  s        r2   r  zTestTtest_ind.test_fully_masked  r  r  c                     | j                             d          g dz   }t          j        |d d df         |d d df                   }d}t	          ||d           d S 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        |                               d S r  )r,   r  r   r*   rC  rD  r  s     r2   r  zTestTtest_ind.test_empty  r  r4   c                    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            n# 1 swxY w Y   t          j        g dg dd          \  }}t          t          j        |          |ft          j        df           t          t          j        g dg dd          t          j        t          j        f           d S )NrA  r  r   ro   r  Fr  )r,   r  r
   r*   r  r  r   r   rE  r   r   r   r  s      r2   r  z TestTtest_ind.test_zero_division  s   			999551bfQii^bfa[111$&& 	4 	4#A>S S S#IIIyyy99DAqq2626"2333q2626"2333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 			999FFF1bfQii^bfa[1116+IIIyyy6;= = =?Avrv>N	P 	P 	P 	P 	Ps    BC00C47C4c                     d}t          j        t          |          5  t          j        g dg dd           d d d            d S # 1 swxY w Y   d S r  r  r  s     r2   r  z"TestTtest_ind.test_bad_alternative  r  r  r   r   r   c                 J   t           j                            dddd          }t           j                            dddd          }t          j        |||          \  }}t	          j        |||          \  }}t          ||d	           t          ||d	           t          j        |d
d<   t          j        |dd<   t          j        	                    |t          j
        |                    }t          j        	                    |t          j
        |                    }t          j        |                                |                                |          \  }}t	          j        |||          \  }}t          ||d	           t          ||d	           d S )NrW   rK   r_   r  r  r   r   rP   r=   r   r]   r^   ra   )r   rY  rZ  r  r,   r   r*   r   re   r   rD  r5  r  s           r2   r  zTestTtest_ind.test_alternative  sw   JNNr3NGGJNNq#NFF_Q{CCC
d1+>>>14e,,,,4e,,,, &!B$6"R%Eqrx{{33Eqrx{{33_Q\\^^Q\\^^1<> > >
d1+>>>14e,,,,4e,,,,,,r4   Nr5   r6   r7   r  r  r  r  r  r  r  r   r   rW  r  r8   r4   r2   r  r  s  s        5 5 5$ $ $8
8 
8 
86 6 6( ( (P P P F 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                            dd	d
g          d             ZdS )TestTtest_1sampc                 N    t           j                            d          | _        d S )Nl   GzP r  r  s    r2   r  zTestTtest_1samp.setup_method  r  r4   c                     | j                             d          g dz   }t          j        |d d df         d          }t	          j        |d d df         d          }t          ||           d S )Nr  r  r   r   )r   r  r   ttest_1sampr,   r   )r.   r  r  r  s       r2   r  z!TestTtest_1samp.test_vs_nonmasked  st    (**733lllB  A22!'!!!Q$-33d#####r4   c                    t          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 ]3}t          j        | \  }}t          ||           t          ||           4	 d d d            d S # 1 swxY w Y   d S )NrL   r  ra   ro   r  r   )re   r   r   r  r*   r   r   r   rE  r   r,   r  r   )r.   r  r  r  r  r   s         r2   r  z!TestTtest_1samp.test_fully_masked  s*   /$(":":1"="=IIINNNFBF#$&& 	0 	0#A>S S S626*C07C.A 0 0)401"1h///"1h////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   A.CCCc                     | j                             d          g dz   }t          j        |d d df         d          }d}t	          ||d           d S r  )r   r  r,   r  r   r  s       r2   r  z&TestTtest_1samp.test_result_attributes  s^    (**733lllB A22,
C555555r4   c                     t          j        g d          }t          t          j        t          j        |                               d S )Nr   )r,   r  r   r*   rC  rD  r  s     r2   r  zTestTtest_1samp.test_empty  s:    !"a((rx~~&&'''''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            d S # 1 swxY w Y   d S )NrA  r   r   ro   r  )r,   r  r
   r*   r  r  r   r   rE  r   r   rD  r   r   r  s      r2   r  z"TestTtest_1samp.test_zero_division  s   !)))Q//1bfQii^bfa[111$&& 	4 	4#A>S S S%iii33DAqBHQKK   q2626"2333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   A=C((C,/C,c                     d}t          j        t          |          5  t          j        g ddd           d d d            d S # 1 swxY w Y   d S )Nr  r   r  rM   r  r   )r   r	   r   r,   r  r  s     r2   r  z$TestTtest_1samp.test_bad_alternative  s    E]:S111 	@ 	@yyy!????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AA	A	r   r   r   c                 X   t           j                            dddd          }t          j        |d|          \  }}t	          j        |d|          \  }}t          ||d	           t          ||d	           t          j        |d
d<   t          j        	                    |t          j
        |                    }t          j        |                                d|          \  }}t	          j        |d|          \  }}t          ||d	           t          ||d	           d S )NrW   rK   r_   r  r  r   r   rP   r=   r   ra   )r   rY  rZ  r  r,   r   r*   r   re   r   rD  r5  )r.   r   rB   r  r  r  r   s          r2   r  z TestTtest_1samp.test_alternative  s(   JNNr3NGG&q!EEE
d!!QK@@@14e,,,,4e,,,, &!B$Eqrx{{33&q||~~q3>@ @ @
d!!QK@@@14e,,,,4e,,,,,,r4   Nr  r8   r4   r2   r  r    s        5 5 5$ $ $	0 	0 	06 6 6( ( (	4 	4 	4@ @ @
 []VY,?@@- - A@- - -r4   r  c                       e Zd ZdZd ZdS )TestDescribez
    Tests for mstats.describe.

    Note that there are also tests for `mstats.describe` in the
    class TestCompareWithStats.
    c                    t           j                            g dg dgg dg dg          }t          j        |d          }t          |j        dd	g           |j        \  }}t          |d
dg           t          |d	dg           t          |j        ddg           t          |j	        ddg           t          |j
        ddg           t          |j        ddg           d S )N)r   r   rK   rL   rM   r   )r   r   r   r   rL   rL   )r   r   r   r   r   r   )r   r   r   r   r   r   ra   r   r   r   rM   r   rL   r   r!   r   r   g       )r*   re   r   r,   describer
   nobsminmaxmeanvarianceskewnessr   r  )r.   rS   r  aminamaxs        r2   test_basic_with_axisz!TestDescribe.test_basic_with_axis!  s	   E 2 2 2 2 2 2 4%7%7%7%7%7%7%9  : : +++V[1a&)))]
dTAq6"""TAq6"""V[3*---V_sCj111V_sCj111$66666r4   N)r5   r6   r7   r  r  r8   r4   r2   r  r    s-         7 7 7 7 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(d'S )(TestCompareWithStatsa  
    Class to compare mstats results with stats results.

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

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

    Author: Alexander Loew

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

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

    c                 
    g dS )z9 Returns list of sample sizes to be used for comparison. )r  r_   rW   r   r8   r  s    r2   get_nzTestCompareWithStats.get_nJ  s    !!!!r4   c                    t           j                            d          }|                    |          }||                    |          z   }t          j        t          |          dz   d          }t          j        t          |          dz   d          }||dt          |          <   ||dt          |          <   |dk    }t           j                            ||          }t           j                            ||          }||||fS )Ni r   g 7yACr   g s?Cra   )r*   r   RandomStaterandnr  rd  re   r+   )r.   r   r   rB   r   r  ymrb   s           r2   generate_xy_samplez'TestCompareWithStats.generate_xy_sampleN  s     i##G,,IIaLL		!WSVVaZ&&WSVVaZ&&1SVV81SVV8DyU[[$[''U[[$[''!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 ]*}|                     |          \  |d d |f<   |d d |f<   }}	+|d|         |d|d d f<   |d|         |d|d d f<   t           j                            |t          j        |                    }t           j                            |t          j        |                    }||||fS )Nr   r   ra   )r*   r  r   r   r'  re   r+   rD  )
r.   r   nxrB   r   r  r&  r  rj  ri  s
             r2   generate_xy_sample2Dz)TestCompareWithStats.generate_xy_sample2D]  s9   GQGRV$$GQGRV$$Wac2Y''Wac2Y''r 	B 	BA'+'>'>q'A'A$AaaadGQqqq!tWb""qsV1Q36
qsV1Q36
U[["(2,,[//U[["(2,,[//!R|r4   c                 :   |                                  D ]}|                     |          \  }}}}t          j        ||          }t          j                            ||          }t          t          j        |          t          j        |                     d S r  )r"  r'  r   r+  r,   r   r*   r   )r.   r   rB   r   r  r&  result1result2s           r2   test_linregressz$TestCompareWithStats.test_linregressl  s     	F 	FA22155LAq"b&q!,,Gl--b"55GBJw//G1D1DEEEE		F 	Fr4   c                 &   |                                  D ]{}|                     |          \  }}}}t          j        ||          \  }}t          j                            ||          \  }}	t          ||d           t          ||	d           |d S )Nrm  r  )r"  r'  r   r   r,   r   
r.   r   rB   r   r  r&  r   r   rmpms
             r2   r   z"TestCompareWithStats.test_pearsonrs  s     	3 	3A22155LAq"b>!Q''DAq\**2r22FB2r22222r22222	3 	3r4   c                 "   |                                  D ]y}|                     |          \  }}}}t          j        ||          \  }}t          j                            ||          \  }}	t          ||d           t          ||	d           zd S Nrm  )r"  r'  r   r   r,   r   r0  s
             r2   r   z#TestCompareWithStats.test_spearmanr|  s     	+ 	+A22155LAq"b?1a((DAq\++B33FB2r***2r****	+ 	+r4   c                 r    t          j        d          }t          t          t          j        ||d           d S )Nrc   F)r*   r   r  r   r,   r   r   s     r2   !test_spearmanr_backcompat_usetiesz6TestCompareWithStats.test_spearmanr_backcompat_useties  s0     IaLLj&"2Aq%@@@@@r4   c                    |                                  D ]}|                     |          \  }}}}t          j        t	          |                    }t          j                            t	          |                    }t          ||d           t          j        t	          |                    }t          j                            t	          |                    }t          ||d           d S )NgvIh%<=r=   )r"  r'  r   r?   r  r,   r   r.   r   rB   r   r  r&  r   r1  s           r2   
test_gmeanzTestCompareWithStats.test_gmean  s     	/ 	/A22155LAq"bCFF##A##CGG,,BAr....CFF##A##CGG,,BAr.....	/ 	/r4   c                    |                                  D ]}|                     |          \  }}}}t          j        t	          |                    }t          j                            t	          |                    }t          ||d           t          j        t	          |                    }t          j                            t	          |                    }t          ||d           d S NrW   )r"  r'  r   rE   r  r,   r   r8  s           r2   
test_hmeanzTestCompareWithStats.test_hmean  s     		+ 		+A22155LAq"bCFF##A##CGG,,B2r***CFF##A##CGG,,B2r****		+ 		+r4   c                 x   |                                  D ]}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||d           t          j        |          }t          j                            |          }t          ||d           d S r;  )r"  r'  r   r  r,   r   r8  s           r2   	test_skewzTestCompareWithStats.test_skew  s     		+ 		+A22155LAq"b
1A""2&&B2r***
1A""2&&B2r****		+ 		+r4   c                 x   |                                  D ]}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||d           t          j        |          }t          j                            |          }t          ||d           d S r;  )r"  r'  r   r  r,   r   r8  s           r2   r  z TestCompareWithStats.test_moment  s     		+ 		+A22155LAq"bQA$$R((B2r***QA$$R((B2r****		+ 		+r4   c                    |                                  D ]i}|                     |          \  }}}}||                                z
  |                                z  }||                                z
  |                                z  }t	          t          j        |          |d           t	          t          j        |          |d           t	          t          j        |          t
          j                            |dt          |                             d           t	          t          j        |          t
          j                            |dt          |                             d           kd S )N绽|=r=   r   )	r"  r'  r  r  r   r   r  r,   rd  )r.   r   rB   r   r  r&  zxzys           r2   r  z TestCompareWithStats.test_zscore  sG    	( 	(A22155LAq"b affhh,!%%'')Baffhh,!%%'')B ELOORe<<<<ELOORe<<<< ELOOU\-@-@Ac!ffH-N-N!&( ( ( (ELOOU\-@-@Ac!ffH-N-N!&( ( ( ( (	( 	(r4   c                 x   |                                  D ]}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||d           t          j        |          }t          j                            |          }t          ||d           d S r;  )r"  r'  r   r  r,   r   r8  s           r2   r  z"TestCompareWithStats.test_kurtosis  s     	+ 	+A22155LAq"bq!!A&&r**B2r***q!!A&&r**B2r****	+ 	+r4   c           	         t          j        d                              dd          }t           j                            |          }t          j        |d          }t
          j                            |d          }t          |dd           t          |dd           | 	                                D ]9}| 
                    |          \  }}}}	t          t
          j                            |d d	
          t          j        |d d	
          d           t          t
          j                            |	d d	
          t          j        |d d	
          d           t          t
          j                            |d d
          t          j        |d d
          d           t          t
          j                            |	d d
          t          j        |d d
          d           ;d S )NrX   r   rM   r   r  g'e@gh㈵>r  r   )r(   r     r  )r*   r   rd  re   r+   r   r  r,   r   r"  r'  r   )
r.   rS   amr   r1  r   rB   r   r  r&  s
             r2   r  zTestCompareWithStats.test_sem  s   IbMM!!!Q''U[[^^Iaa   \bq)):D1111JT2222 		M 		MA22155LAq"b 0 0$Q 0 G G %	!$Q ? ? ?M M M M 0 0$Q 0 G G %	!$Q ? ? ?M M M M 0 0$Q 0 G G %	!$Q ? ? ?M M M M 0 0$Q 0 G G %	!$Q ? ? ?M M M M M		M 		Mr4   c           	      ~   |                                  D ]}|                     |          \  }}}}t          j        |d          }t          j                            |d          }t          d          D ]D}t          t          j        ||                   t          j        ||                   d           Ed S )Nr   r  rc   rb  r  )	r"  r'  r   r  r,   r   r   r*   r   )	r.   r   rB   r   r  r&  r   r1  iis	            r2   test_describez"TestCompareWithStats.test_describe  s     	0 	0A22155LAq"bqq)))A&&r&22BAhh 0 0#BJqu$5$5$&Jr"v$6$6,.0 0 0 0 00		0 	0r4   c                 z    t          j        t          j        d                    }d}t	          ||d           d S )Nr   )r  r  r  r  r  r  Tr   )r,   r  r*   r   r   )r.   r  r   s      r2   test_describe_result_attributesz4TestCompareWithStats.test_describe_result_attributes  s;    1.."
FJ4888888r4   c                     |                                  D ]_}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||           `d S r  )r"  r'  r   r   r,   r   r8  s           r2   test_rankdataz"TestCompareWithStats.test_rankdata  su     	# 	#A22155LAq"bq!!A&&q))BAr""""		# 	#r4   c                 h   |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           d S r4  )r"  r'  r   r   tmeanr,   r.   r   rB   r   r  r&  s         r2   
test_tmeanzTestCompareWithStats.test_tmean  s     	K 	KA22155LAq"bAu|/A/A"/E/ErJJJAu|/A/A"/E/ErJJJJ	K 	Kr4   c                    |                                  D ])}|                     |          \  }}}}t          t          j        |d          t          j                            |d          d           t          t          j        |d          t          j                            |d          d           t          t          j        |d          t          j                            |d          d           t          t          j        |d          t          j                            |d          d           +d S )Nr   rW   r   )
upperlimit)r"  r'  r   r   tmaxr,   rQ  s         r2   	test_tmaxzTestCompareWithStats.test_tmax  s8    
	J 
	JA22155LAq"b
1R 0 0 % 1 1"R 8 8"> > >
1R 0 0 % 1 1"R 8 8"> > >  
1 < < < % 1 1" 1 D DbJ J J
1 < < < % 1 1" 1 D DbJ J J J
	J 
	Jr4   c                 x   |                                  D ]#}|                     |          \  }}}}t          t          j        |          t          j                            |                     t          t          j        |          t          j                            |                     t          t          j        |d          t          j                            |d          d           t          t          j        |d          t          j                            |d          d           %d S )Nr   )
lowerlimitrW   )r"  r'  r
   r   tminr,   r   rQ  s         r2   	test_tminzTestCompareWithStats.test_tmin  s    	K 	KA22155LAq"bA(9(9"(=(=>>>A(9(9"(=(=>>>
1 = = = % 1 1" 1 E ErK K K
1 = = = % 1 1" 1 E ErK K K K	K 	Kr4   c           	          |                                  D ]x}|                     |          \  }}}}t          j        ||          }t          j                            ||          }t          ||dt          |                   d           yd S )Nr   rA  r  )r"  r'  r   r  r,   r   rd  )r.   r   rB   r   r  r&  r  zms           r2   r  zTestCompareWithStats.test_zmap   s     	9 	9A22155LAq"b
1a  A""2r**BAr!CFF(|%88888		9 	9r4   c                 l   |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           d S Nrb  r  )r"  r'  r   r   r  r,   rQ  s         r2   r  z#TestCompareWithStats.test_variation'  s     	, 	,A22155LAq"b 2 2EL4J4J24N4N(*, , , , 2 2EL4J4J24N4N(*, , , , ,		, 	,r4   c                 l   |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           d S r^  )r"  r'  r   r   tvarr,   rQ  s         r2   	test_tvarzTestCompareWithStats.test_tvar/  s     	, 	,A22155LAq"b
1u|/@/@/D/D(*, , , ,
1u|/@/@/D/D(*, , , , ,		, 	,r4   c                     t          j        d          }t          j        |d          }t          j                            |d          }t          t          j        |          |j        |j                             d S )NrX   r   )	r*   r   r   rn  r,   r   r  r/   rb   )r.   rS   r  bms       r2   test_trimbothz"TestCompareWithStats.test_trimboth7  s`    IbMMN1c""\""1c**

BGRWH$566666r4   c                    |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           t          t          j        |d          t          j                            |d          d           d S )Nrm  r  )r  r   )r_  )r"  r'  r   r   tsemr,   rQ  s         r2   	test_tsemzTestCompareWithStats.test_tsem=  s     	, 	,A22155LAq"b
1u|/@/@/D/D(*, , , ,
1u|/@/@/D/D(*, , , ,
1Y ? ? ? % 1 1"Y 1 G G(*, , , , ,	, 	,r4   c                     |                                  D ]e}|dk    r]|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||           fd S )Nr   )r"  r'  r   r~  r,   r   r8  s           r2   test_skewtestz"TestCompareWithStats.test_skewtestH  s|     	' 	'A1uu#66q991b"N1%%\**2..2&&&	' 	'r4   c                     t          j        d          dz  }t          j        |          }d}t	          ||d           d S r  )r*   r+   r,   r~  r   r  s       r2   test_skewtest_result_attributesz4TestCompareWithStats.test_skewtest_result_attributesQ  sF    H+,,a/oa  ,
C555555r4   c                 B   t           j                            d          }|                    d          dz  }t          j        |          }t          j                            |          }t          t          j        |          t          j        |                     d S )Nl   ]L )rX   rK   g      4@)r*   r   r   r   r~  r,   r   r   )r.   r   rB   r   r1  s        r2   test_skewtest_2D_notmaskedz/TestCompareWithStats.test_skewtest_2D_notmaskedW  sw    i##J//JJw#%N1\""1%%
1rz"~~66666r4   c                    d}|                                  D ]}|dk    r|                     ||          \  }}}}t          j        |          }t          j                            |          }t          |d         d         |d         d         d           t          |d         d         |d         d         d           d S )NrK   r   r   rP   r=   r   )r"  r*  r   r~  r,   r   )	r.   r)  r   rB   r   r  r&  r   r1  s	            r2   test_skewtest_2D_WithMaskz.TestCompareWithStats.test_skewtest_2D_WithMask_  s     	? 	?A1uu#88B??1b"N1%%\**2..!QAq>>>>!QAq>>>>	? 	?r4   c           	      b   t          j        d          5  t          j                    5  t          j        ddt
                     t          j        ddt
                     |                                 D ]}|dk    r|                     |          \  }}}}t          j	        |          }t          j
        	                    |          }t          t          j        |          t          j        |                     	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr  )overro   z(`kurtosistest` p-value may be inaccuratez!kurtosistest only valid for n>=20r   )r*   rq   r   r   rE  UserWarningr"  r'  r   r}  r,   r   r   r8  s           r2   test_normaltestz$TestCompareWithStats.test_normaltestj  s   [g&&& 
	C 
	C(?(A(A 
	C 
	C#DkS S S#={L L LZZ\\ C Cq55#'#:#:1#=#=LAq"b(++A0044B#BJqMM2:b>>BBBC
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	C 
	Cs5   D$CD D$D	D$D	D$$D(+D(c                    t          j        g d                              d          }t          j        g d                              d          }|dk    }t           j                            ||          }|                                |                                }}t          j        |d          \  }}||dk             ||dk             f}	t          j        	                    |          }
t          |	|
           t          ||           t          ||           t          j        	                    g           \  }}t          |t          j        d	t           j        
                     d S )N)r   r   rK   rK   rL   rL   rL   rM   rM   rM   rM   r  )r   r   rK   rK   rL   rL   rL   rM   rM   rM   rM   r   r   r   r   r  ra   T)return_countsr   r   r   )r*   r   rx   re   r+   r  uniquer   r,   find_repeatsr
   intp)r.   rB   tmprb   r  x_origxm_origrv  unique_countsr   r1  r]  r  s                r2   test_find_repeatsz&TestCompareWithStats.test_find_repeatsw  sA   J88899@@IIjFFFGGNNwWWr	U[[4[((&&((BGGII "	!4 @ @ @=1$%}]Q5F'GG\&&r**QQR!!! L--b11	6VRXarw77788888r4   c                 J   |                                  D ]}|                     |          \  }}}}t          j        ||          }t          j                            ||          }t          |d         |d         d           t          |d         |d         d           d S )Nr   rW   r  r   r   )r"  r'  r   r  r,   r   r8  s           r2   r  z$TestCompareWithStats.test_kendalltau  s     	8 	8A22155LAq"b A&&A((R00B!beR8888!beQ77777	8 	8r4   c           	      "   |                                  D ]y}|                     |          \  }}}}t          j        |          }t          j                            |          }t          |j        |dt          |                              zd S )Nr   )r"  r'  r   r	  r,   r   r*  rd  r8  s           r2   r  z)TestCompareWithStats.test_obrientransform  s     	3 	3A22155LAq"b%a((A--b11BR#a&&\2222		3 	3r4   c           
         dD ]Q}t          j                    5  dD ]}|                                 D ]}|                     |          \  }}}}t	          j        |t          j        j        ||          }t          j                            |t          j        j        ||          }	t          t          j        |          t          j        |	                     t	          j        |t          j        j        ||          }
t          t          j        |          t          j        |
                      	 ddd           n# 1 swxY w Y   SdS )zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.autor/  asympr   r   r1  r   r  N)r   r   r"  r'  r   ks_1samprY  cdfr,   r
   r*   r   r.   r  r   r   rB   r   r  r&  r  r  r  s              r2   test_ks_1sampz"TestCompareWithStats.test_ks_1samp  s   . 	I 	ID(** I I#C 
I 
IK!ZZ\\ 	I 	I'+'>'>q'A'A1b"$~a:ED R  R  R$|44RALSW  5  Y  Y$RZ%5%5rz$7G7GHHH$~b%*.:ED R  R  R$RZ%5%5rz$7G7GHHHH	I
II I I I I I I I I I I I I I I	I 	Is   D#E		E	E	c           
      N   dD ] }t          j                    5  dD ]}|                                 D ]}|                     |          \  }}}}t	          j        |d||          }t          j                            |d||          }	t          t          j	        |          t          j	        |	                     t	          j        |d||          }
t          t          j	        |          t          j	        |
                     ،	 ddd           n# 1 swxY w Y   "dS )z]
        Checks that 1-sample mstats.kstest and stats.kstest agree on masked arrays.
        r  r  rY  r  N)
r   r   r"  r'  r   kstestr,   r
   r*   r   r  s              r2   test_kstest_1sampz&TestCompareWithStats.test_kstest_1samp  s    / 	I 	ID(** I I#C 
I 
IK!ZZ\\ 	I 	I'+'>'>q'A'A1b"$|Av8C$ P  P  P$|222v?JQU  3  W  W$RZ%5%5rz$7G7GHHH$|B8C$ P  P  P$RZ%5%5rz$7G7GHHHH	I
II I I I I I I I I I I I I I I	I 	Is   C2DD	D	c           
         dD ]A}t          j                    5  |dv rd}t          j        d|t                     dD ]}|                                 D ]}|                     |          \  }}}}t          j        ||||          }	t          j                            ||||          }
t          t          j        |	          t          j        |
                     t          j        ||||          }t          t          j        |	          t          j        |                     ،	 ddd           n# 1 swxY w Y   CdS )zVChecks that mstats.ks_2samp and stats.ks_2samp agree on masked arrays.
        gh-8431r  r  r/  )ks_2samp: Exact calculation unsuccessful.ro   r  r  N)r   r   rE  r   r"  r'  r   r  r,   r
   r*   r   r.   r  messager   r   rB   r   r  r&  r  r  r  s               r2   r  z"TestCompareWithStats.test_ks_2samp  s    / 	I 	ID(** I I,,,IG+Hg~NNN#C 
I 
IK!ZZ\\ 	I 	I'+'>'>q'A'A1b"$~a:ED R  R  R$|44RALSW  5  Y  Y$RZ%5%5rz$7G7GHHH$~b!:ED R  R  R$RZ%5%5rz$7G7GHHHH	I
I	I I I I I I I I I I I I I I I	I 	I   DD99D=	 D=	c           
         dD ]A}t          j                    5  |dv rd}t          j        d|t                     dD ]}|                                 D ]}|                     |          \  }}}}t          j        ||||          }	t          j                            ||||          }
t          t          j        |	          t          j        |
                     t          j        ||||          }t          t          j        |	          t          j        |                     ،	 ddd           n# 1 swxY w Y   CdS )z]
        Checks that 2-sample mstats.kstest and stats.kstest agree on masked arrays.
        r  r  r  ro   r  r  N)r   r   rE  r   r"  r'  r   r  r,   r
   r*   r   r  s               r2   test_kstest_2sampz&TestCompareWithStats.test_kstest_2samp  s    / 	I 	ID(** I I,,,IG+Hg~NNN#C 
I 
IK!ZZ\\ 	I 	I'+'>'>q'A'A1b"$|Aq8C$ P  P  P$|222r?JQU  3  W  W$RZ%5%5rz$7G7GHHH$|B8C$ P  P  P$RZ%5%5rz$7G7GHHHH	I
I	I I I I I I I I I I I I I I I	I 	Ir  N))r5   r6   r7   r  r"  r'  r*  r.  r   r   r6  r9  r<  r>  r  r  r  r  rJ  rL  rN  rR  rV  rZ  r  r  ra  rd  rg  ri  rk  rm  ro  rs  r}  r  r  r  r  r  r  r8   r4   r2   r   r   2  sl        ," " "    F F F3 3 3+ + +A A A	/ 	/ 	/
+ 
+ 
+
+ 
+ 
+
+ 
+ 
+( ( ($	+ 	+ 	+M M M*0 0 09 9 9# # #K K KJ J J	K 	K 	K9 9 9, , ,, , ,7 7 7	, 	, 	,' ' '6 6 67 7 7	? 	? 	?C C C9 9 9(8 8 83 3 3I I I I I I$I I I(I I I I Ir4   r   c                       e Zd Zej                            dddddej        dddddddddej        g          Zej                            ddddej        dddddddg          ZdZ	d Z
d Zd	 Zd
 Zd Zd Zd ZdS )TestBrunnerMunzelr   rK   rM   rL   r   rm  c                    t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          ||| j                   t          ||k               t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )	Nr   r   r   r  |	&	@|	&	gҏGg?g@-pL?)r,   brunnermunzelXYr   significantr   )	r.   u1r  u2r  u3r  u4p4s	            r2   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sided  s   %dfdf&IIIB%dfdf)LLLB%dfdf)LLLB%dfdf&IIIBBD,<====BD,<====bB 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 5$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6 	6 	6r4   c                 N   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nr1  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    %dfdf+NNNB%dfdf+NNNBBD,<====B 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 5$($4	6 	6 	6 	6 	6 	6r4   c                 F   t          j        | j        | j                  \  }}t          j        | j        | j                  \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nr  r  r  r  r  r  s        r2   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default  s    %dfdf55B%dfdf55BBD,<====B 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 5$($4	6 	6 	6 	6 	6 	6r4   c                     d}d}t          |dv           t          t          t          j        | j        | j        ||           d S )Nr   r  r0  r   r  r   r,   r  r  r  r.   r   distributions      r2   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error  sT    #CCDDDj*ff!"	$ 	$ 	$ 	$ 	$r4   c                 N   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nnormal)r  r  r  r  g "H[?r  r  s        r2   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_norm)  s    %dfdf8LLLB%dfdf8LLLBBD,<====B 2$($4	6 	6 	6 	6B 3$($4	6 	6 	6 	6B 5$($4	6 	6 	6 	6 	6 	6r4   c                     d}d}t          |dv           t          t          t          j        | j        | j        ||           d S )Nr1  r   )r  r  r  r  s      r2   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error4  sS    !?2333j*ff!"	$ 	$ 	$ 	$ 	$r4   c                 6   t          j        | j        g           \  }}t          j        g | j                  \  }}t          j        g g           \  }}t	          t          j        |                     t	          t          j        |                     t	          t          j        |                     t	          t          j        |                     t	          t          j        |                     t	          t          j        |                     d S r  )r,   r  r  r  r   r*   rD  )r.   r  r  r  r  r  r  s          r2   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput?  s    %dfb11B%b$&11B%b"--Br4   N)r5   r6   r7   r*   re   masked_invalidr   r  r  r  r  r  r  r  r  r  r  r8   r4   r2   r  r    s        
aAq!RVQAq!Q26; 	< 	<A
aAq"&!Q1aAFGGAK6 6 6.6 6 66 6 6	$ 	$ 	$	6 	6 	6	$ 	$ 	$
 
 
 
 
r4   r  )NNr9   )Ar  r   rT  numpyr*   r   numpy.mare   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   rC   rF   rH   r   r   r   rZ  r  r  r  r  r  r0  r3  r5  r^  r`  rt  rx  rz  r  r  r  r  r  r  r  r   r  r8   r4   r2   <module>r     s`                      # # # # # # # # # # # # # # # # #       - - - - - -  * * * * * *E E E E E E E E E E E E E E E E E E 1 0 0 0 0 0 0 0 . . . . . . R R R R R R R R- - - - - - - -*! ! ! !! ! ! ! 93 93 93 93 93 93 93 93x !3 !3 !3 !3 !3 !3 !3 !3H9 9 9 9 9 9 9 9,z6 z6 z6 z6 z6 z6 z6 z6z	 u: u: u: u: u: u: u: u:p V/ V/ V/ V/ V/ V/ V/ V/r& & & & & & & &RA A A A A A A A* 4 4 4 4 4 4 4 4@ SJ SJ SJ SJ SJ SJ SJ SJlF F F,     K1 K1 K1 K1 K1 K1 K1 K1\8 8 8:. . .8 8 8*E E E _8 _8 _8 _8 _8 _8 _8 _8D6 6 6 6 6 6 6 6.2 .2 .2 .2 .2 .2 .2 .2b6 6 6 6 6 6 6 6[- [- [- [- [- [- [- [-|_- _- _- _- _- _- _- _-DB- B- B- B- B- B- B- B-J7 7 7 7 7 7 7 70 pI pI pI pI pI pI pI pIfc c c c c c c c c cr4   