
    _MhT                       d Z ddlZddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddl
mc mZ ddlmZ ddlmZ ddlZddlmZ dd	lmZmZmZmZmZmZmZ dd
lmZ ddlmZmZ ddl m!Z! ddl"m#Z#m$Z$  G d d          Z%dCdZ&dCd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$                      Z0e! G d% d&                      Z1d' Z2d( Z3 G d) d*          Z4d+ Z5d, Z6d- Z7d. Z8e! G d/ d0                      Z9 G d1 d2          Z: G d3 d4          Z; G d5 d6          Z< G d7 d8          Z= G d9 d:          Z> G d; d<          Z? G d= d>          Z@e! G d? d@                      ZA G dA dB          ZBdS )Dz?
Tests for the stats.mstats module (support for masked arrays)
    N)nan)maskednomask)stats   )check_named_results)raises)assert_equalassert_almost_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_assert_allcloseassert_array_equal)suppress_warnings)_mstats_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       c/var/www/html/test/jupyter/venv/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__r4    r5   r3   r   r      s#        - - - - -r5   r   Hz>c                     t          j        | ||          }t          |||           t          |j        |           d S N)r)   dtypertol)r-   gmeanr   r
   r=   
array_liker1   r)   r=   r?   xs         r3   check_equal_gmeanrD   /   sE    Zd%888AAwT****%     r5   c                     t          j        | ||          }t          |||           t          |j        |           d S r<   )r   hmeanr   r
   r=   rA   s         r3   check_equal_hmeanrG   6   sE    JT777AAwT****%     r5   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+   powerrD   r/   ar1   s      r3   test_1dzTestGeoMean.test_1d>   s7    LL(7E**!W5111111r5   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@rK   r   r   r   r   mask   UUUUUU?rQ   r>   )mar,   rD   r+   rR   rS   s      r3   
test_1d_mazTestGeoMean.test_1d_maC   su    H>>>??!W%%%H\\\555(5%((!W5111111r5   c                 t    t           j                            g dg d          }d}t          ||           d S )NrW   
r   r   r   r   r   r   r   r   r   r   rb   gdq_D@r+   rf   r,   rD   rS   s      r3   test_1d_ma_valuezTestGeoMean.test_1d_ma_valueM   sI    EKKAAA;;;  = =!W%%%%%r5   c                 l    t           j                            g d          }d}t          ||           d S )N)
rX   rY   rZ   r[   r(   r\   r]   r^   r_   r   r   rj   rS   s      r3   test_1d_ma0zTestGeoMean.test_1d_ma0T   s7    EKK???@@!W%%%%%r5   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)
rX   rY   rZ   r[   r(   r\   r]   r^   r_   ignore)invalid)r+   rf   r,   r   errstaterD   rS   s      r3   test_1d_ma_infzTestGeoMean.test_1d_ma_infZ   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 )NrK   ra   rb   rd   re   rQ   )r=   r?   )rf   r,   r+   rR   astypert   rD   r/   rT   
desired_dts      r3   test_1d_float96zTestGeoMean.test_1d_float96a   s`     H\\\555XeU++222:>>
!ZrzFFFFFFr5   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 )NrK   r   r   r   r   r   r   r   r   r   r   r   r   rb   r   rQ   r)   r?   rO   rP   rd         ?rN   ro   rX   rY   rZ   r[   r(   r\   r]   r^   r_   r`   n   x   g/,$qJ@)rf   r,   r+   rD   rR   rS   s      r3   
test_2d_mazTestGeoMean.test_2d_mah   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2r5   N)r6   r7   r8   rU   rg   rk   rm   rs   pytestmarkskipifhasattrr+   r|   r   r9   r5   r3   rI   rI   <   s        2 2 2
2 2 2& & && & &* * * [GGB	222@  B BG GB BG
3 3 3 3 3r5   rI   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 )NrK   ra   rb   /袋.?rQ   r>   rW   g=b#A@ri   gO?@rf   r,   rG   r+   rS   s      r3   rU   zTestHarMean.test_1d{   s    H\\\555+!W51111EKKAAABB!W%%%EKKAAA;;;  = =!W%%%%%r5   rt   ru   rv   c                     t          j        g dg d          }t          j        dt          j                  }t          ||t          j                   d S )NrK   ra   rb   r   r=   )rf   r,   r+   asarrayrt   rG   rz   s      r3   r|   zTestHarMean.test_1d_float96   sT     H\\\555Z 9LLL
!Zrz::::::r5   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 )NrK   r~   r   r   rb   r   rQ   r   )gQ?g433333@g?ro   r   r   r   gmWUC@r   rS   s      r3   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2r5   N)r6   r7   r8   rU   r   r   r   r   r+   r|   r   r9   r5   r3   r   r   y   s        & & & [GGB	222@  B B; ;B B;
3 3 3 3 3r5   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   rL   rM   rN      r   rd   )
r   rM   rM   rM   r   rd            !@r   rX   rM   rN   )
r   r'   r'   r   r   rN   r         @r      T)use_missing)
r   r'   r'         @r   rN   r   r   r   r   )
r   r   r   r   rL   rN   rM   r   r   rd   )
r   rM   r   rM   r   r   rd   r   rM   rX   )r   r   r   r   rL   )rM   rN   r   r   rd   )r   rM   rM   rM   r   )rd   r   r   r   rX   r   r)   )r   rL         @r   r   r   r   r   r   r   r   rL   rL   rL   rL   rL   )rf   r,   r   r-   rankdatar   r/   rC   s     r3   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 	9r5   N)r6   r7   r8   r   r9   r5   r3   r   r      s#        9 9 9 9 9r5   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 )NrX   errorr   r   ro         Trb   r   )r           r   )r   r   rM   rM   rL   re   )FFFT)r   r   r   g     X@)r   r   rM   ro   )rf   arangewarningscatch_warningssimplefilterRuntimeWarningr   r-   pearsonrr,   r   r   r+   sqrt)
r/   rC   prx1y1rprc   x2y2s
             r3   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   rL   rM   rN   r   rd   )r   r   r   r   r   r   rb   )	   r   r   rd   r   r   )r   r   r   r   r   r   )r   rN   r   rd   )r   rd   r   r   )r+   rf   masked_arrayr,   r-   r   r   r
   )	r/   mxmyrC   ymrmpr   r   s	            r3   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r5   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  rX   i  i  gV-?correlationpvalueTrf   )
r   r-   	spearmanrr+   r   rf   fix_invalidlistranger   r/   rC   r   res
attributess        r3   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5r5   c                    g d}g d}d}t          j        ||          \  }}t          ||           t          |d           t          j        ||d          \  }}t          ||           t          |d           t          j        ||d          \  }}t          ||           t          |d	           d
}t          j        dd|          }d|z  t          j                            |          z   }t          j        ||          \  }}t          j        ||d          \  }	}
t          |
|dz             t          j        ||d          \  }}t          |d|dz  z
             ||	cxk    r|k    sn J t          j        t          d          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr   r   g+;
?gr?greateralternativegb?lessgcH}?r`   r   r   皙?rL   r   zalternative must be 'less'...matchz	ekki-ekki)
r-   r   r   r+   linspacerandomrandr   r	   
ValueError)r/   rC   r   r_expr   r   nstat1p1stat2p2stat3p3s                r3   test_spearmanr_alternativez#TestCorr.test_spearmanr_alternative  s>   0 0 00 0 0 #1%%15!!!,---1)<<<15!!!,---1&99915!!!?+++ K1a  EBINN1%%%$Q**	r$QyAAA	rBF###$Qv>>>	rAQJ'''&&&&&&&&&&]:-LMMM 	< 	<Q{;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   F::F>F>ppc64lezfails/crashes on ppc64lerv   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   rL   r   rd   )rN   r   r      r   r   rX   gxO~>bananamethodr   rL   g?>?gaV>r   rd   g}'}'?go&5>ro   r   g?>g}'}'r   r   r   r   r   g     :@gQgףp=
@r   r   g1UU?      ?
asymptoticglgN?g~ȋgQM?r   rY   r\   r[   r^   !   C         -   gXJĿgvPwTk?r   Tr   )rf   r,   r+   r   r   r-   
kendalltaur   assert_raisesr   r   r   r   )r/   rC   r   expectedbzresultr   s           r3   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8r5   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   floatrf   masked_greaterconcatenater   isfiniter-   r  )r/   rC   r   s      r3   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8r5   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 )NrN   rL         r   r   rM   rN   rM   r   rM   rL   r   rM   r   r   rL   rM   r   rM   rd      r   r
     zglobal p-value (indep)gMb?zseasonal p-value)g
ףp=
?g(\?皙?g{Gz?)r   rf   r   Tr-   kendalltau_seasonalr   round)r/   rC   outputs      r3   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 	3r5   r  )exactr  r   	two-sidedr   r   c                    t           j                            d           d}t           j                            |          }t           j                            |          }t           j                            |          dk    }t	          j        ||          }t	          j        ||          }t          j        ||||          }	|                                }
|                                }t          j        |
|||          }t           j
        ||<   t           j
        ||<   t          j        |||d|          }t          |	|           t          ||           d S )Nr   r(   r   rb   )r  r   omit)r  
nan_policyr   )r+   r   seedr   rf   r,   r-   r  
compressedr   r   r   )r/   r  r   r   rC   r   rc   x_maskedy_masked
res_maskedx_compressedy_compressedres_compressedres_nans                 r3   test_kendalltau_mstats_vs_statsz(TestCorr.test_kendalltau_mstats_vs_stats  sR    		qINN1INN1y~~a  3&8AD)))8AD)))&hv;H H H
  **,,**,,),v;P P P &$&$"qFM M M 	
N33300000r5   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   )rB  r   )   r   )   iE&  )   i%  r   r   itemsr   _kendall_p_exactr   r/   expectationsncr  r   s        r3   test_kendall_p_exact_mediumz$TestCorr.test_kendall_p_exact_medium  s     &<%;"8"%"8"%%;%;= = )..00 	/ 	/LB0A1>>CX....	/ 	/r5   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   rF  rI  s        r3   test_kendall_p_exact_largez#TestCorr.test_kendall_p_exact_large  s|     '=&<'='=(>(>@ @ )..00 	/ 	/LB0A1>>CX....	/ 	/r5   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   ro   g-@g+@g(@g333333$@gffffff@gffffff@g333333@gffffff@g333333@r   gffffff
@g	@r    gffffff@r'   g333333@gffffff@g @r   g      ?g?r   g?皙?gffffff?r   r   r)  r   r   g/"?r   r   Tr   )r+   r   r   r-   pointbiserialrr   r   s        r3   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5r5   N)r6   r7   r8   r   r   r   r  r   r   r   platformmachiner  slowr"  r.  parametrizer>  rL  xslowrN  r   rR  r9   r5   r3   r   r      s       & & &>  $6 $6 $6L+< +< +<Z [((**i79  ; ;T9 T9; ;T9l [((**i79  ; ;[9 9 ; ;9
3 
3 
3 [X'>??[],LMM1 1 NM @?1:/ / / [/ / / 6 6	 6 6 6r5   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 )NrX   
r   r   rL   rM   rN   r   rd   r   r   r   )rL   r   )
NNrL   rM   rN   r   rd   r   r   NFFlimits	inclusive)
NNNrM   rN   r   rd   r   NN)r   r)  T)r^  relative)
Nr   rL   rM   rN   r   rd   r   NN   r   ro   r   )NNrL   rM   rN   Nrd   r   r   NNNr`   r   r]   rY   )r`  r)   r   r
  )
rf   r   r
   r-   trimr   reshape_maskravelr*  )r/   rT   rC   r  trimxs        r3   	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5r5   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   "   rY      )rX   rX   )rf   r   r
   r-   trimbothcounttrimtailr   rd  r   shape)r/   rC   rf  s      r3   test_trim_oldzTestTrimming.test_trim_old  s7   IcNNV_Q''--//444V_QC0006688"==="R%""U[[]]B'''U[1#b&A3r6/QCF":aSV"Cqc"f"LMMMV_Q''--//444V_Q''--//44444r5   c                     t          j        d          }t          j        |dd          }t          j        g dg d          }t          ||           t          |j        |j                   d S )NrX   )g333333?gQ?r\  r]  r[  )
r   r   r   r   r   r   r   r   r   r   rb   )rf   r   r-   trimrr,   r
   rc   )r/   rC   r  r  s       r3   
test_trimrzTestTrimming.test_trimr%  sz    IbMMaOOO8:::!?!?!?A A AVX&&&V[(-00000r5   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  )rf   r,   r   r-   trimmed_meanr/   r0   s     r3   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Hr5   c                 2   t           j                            d          }|                    d          }t          j        |          }t	          j        |g d          }t          t          j        |d          |	                                           d S )Nl   l{f0j rY   sizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rb   r   )
r+   r   default_rngsortrf   r,   r   r-   trimmed_varvarr/   rng	data_origr0   s       r3   test_trimmedvarzTestTrimming.test_trimmedvar4       i##$788JJBJ''	wy!!x $B $B $B C C C*9c::DHHJJGGGGGr5   c                 2   t           j                            d          }|                    d          }t          j        |          }t	          j        |g d          }t          t          j        |d          |	                                           d S )Nl   /{Gzi rY   r  r  rb   r   )
r+   r   r  r  rf   r,   r   r-   trimmed_stdstdr  s       r3   test_trimmedstdzTestTrimming.test_trimmedstd>  r  r5   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)  )rf   r,   r   r-   trimmed_stder  s     r3   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Gr5   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   )	rf   r,   r   r-   	winsorizer  r   r
   rc   )r/   r0   
winsorizeds      r3   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0r5   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   rL   )皙?r  raise)r4  )皙?r  r   )rP  rP  r3  )	rf   r,   r+   r   r  r   r-   r  r
   r  s     r3   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	: 	: 	: 	: 	:r5   N)r6   r7   r8   rg  rq  rt  r  r  r  r  r  r  r9   r5   r3   rY  rY    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: : : : :r5   rY  c                      e Zd Zg dZ ej        dddddej        g          Z ej	         ej	        g dg dg d	g d
g dg           ej	        g dg dg dg dg dge
                    ZddddZd Zd Zd Zd Zd ZdS )TestMomentsrK   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   rb   Nrp  r=   c                    t          j        |          }|t          j        ||          }t          ||           ||j        }|j        |k    sJ d S N)r+   r   broadcast_tor   r=   )r/   actualexpectrp  r=   s        r3   _assert_equalzTestMoments._assert_equal  s]    F##_VU33F66***=LE|u$$$$$$r5   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   rX   rL         ?rM   rN        @rK   )r   r  r   r  r   r   )r   rL   rM   r"   r   )r   r   r   r   )r   r  )r   )momentr)   )rL   r   )rp  g      $@r   )r-   r  testcaser   r   r  r   r  r+   r   float64r,   float32zerosr   r
   rf   r   )r/   r   rC   s      r3   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4r5   c                 Z    t          j        | j                  }t          |dd           d S )N%?rX   )r-   	variationr  r   )r/   r   s     r3   test_variationzTestMoments.test_variation  s-    T]++A.33333r5   c                 ~    t          j        g d          }t          j        |d          }t	          |d           d S )N)r   rL   rM   rN   r   r   r  g<<'?)r+   r,   r-   r  r   )r/   rT   r   s      r3   test_variation_ddofzTestMoments.test_variation_ddof  sC     H___%%QQ'''A122222r5   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*ҿrX   r   biasg2۠ۿr   )gҽr?r   g>HÛe?r   gIǮFFFTFr   rb   r   )g`٨?r   gn?r   g0FrL   )r-   skewtestmathworksr   r  rf   r,   r+   boolr   testcase_2d	enumerater   r/   r   
correct_2dirowcorrect_2d_bias_correcteds         r3   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::	< 	< 	< 	< 	<r5   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@rX   gx|N@g=
ףp=?)            g'@=r   gt
Qr  r   rb   )r  r  g?<r   g`@7Fr  rL   rN   )nulp)r-   kurtosisr  r   r  rf   r,   r+   r  r   r  r  r   r   r  s         r3   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,-	/ 	/ 	/ 	/ 	/ 	/r5   )r6   r7   r8   r  rf   r   r+   r   r  r,   r  r  r  r  r  r  r  r  r9   r5   r3   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%/ %/ %/ %/ %/r5   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   rL   rM   rM   rM   rM   rN   r   rd   r   )rM   r   r   )rM   rL   rL   r   )rM   rN   r   )r   rM   )r   r   )rL   r   )r   r   r   r   r   r   ro   rM   r   r   )modern  Tr   )	r+   rc  r,   rf   masked_wherer
   r-   r  r   )r/   a1a2a3a4ma1ma2ma3ma4a1_resr   s              r3   	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8r5   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      r3   test_mode_modifies_inputz!TestMode.test_mode_modifies_input!  s     Xj!!
3B36


a



111crc6


a


WWYYBRr5   N)r6   r7   r8   r  r  r9   r5   r3   r  r    s2        9 9 9:    r5   r  c                        e Zd Zd Zd Zd ZdS )TestPercentilec                 <    g d| _         g d| _        g d| _        d S )N)rM   rN   r   rX   rd   )rM   r   r   rN   rL   r   )r    rN   r   rX   r  r  r  r   )r  r  r  r/   s    r3   setup_methodzTestPercentile.setup_method-  s-    ***,,,111r5   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     r3   test_percentilezTestPercentile.test_percentile2  sq    IaLL3V-a33R888V-a55s;;;V-a44d;;;;;r5   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   )rN   rN   rM   r(   )rf   r,   r
   r-   r  r   s     r3   test_2DzTestPercentile.test_2D8  sc    Hiiiiiiiiiii	! " "
 	V-a44iii@@@@@r5   N)r6   r7   r8   r  r  r  r9   r5   r3   r  r  ,  sF        2 2 2
< < <A A A A Ar5   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   rL   rM   rN   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  rL   )r-   semr  r   rn  r   r+   r   )r/   r   r   s      r3   test_semzTestVariability.test_semH  s    Jt}%%A|,,,M!!
4=q999BGAqsG<L<LL
4=q999	; 	; 	; 	; 	;r5   c                     t          j        | j        | j                  }g d}t          ||j        |j        dk             d           d S )N)OT\w%ܿr  OT\w?Fra  decimal)r-   zmapr  r   r0   rc   )r/   r   desired_unmaskedvalss      r3   	test_zmapzTestVariability.test_zmapP  sj     Kt}55!D !D !D!"6"#&5"92	G 	G 	G 	G 	G 	Gr5   c                     t          j        | j                  }t          j        ddddt
          j        g          }t          ||d           d S )Nr  r  r  r  ra  r  )r-   zscorer  rf   r   r+   r   r   )r/   r   r1   s      r3   test_zscorezTestVariability.test_zscoreY  sX     M$-((."24E"2ORV"M N NGQ333333r5   N)r6   r7   r8   __doc__rf   r   r+   r   r  r  r  r  r9   r5   r3   r  r  A  sn          r~q1Qrv.//H; ; ;G G G4 4 4 4 4r5   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   rd   r
  r   r   r   rM   rL   rX   rN   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      r3   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	' 	' 	' 	' 	'r5   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 )NrN   rL   r$  r%  r   r   rM   r&  rd   r'  r   r
  r(  )48E?gsA?g)g%䃞?g 	?l)r  g46<?)	r   rf   r   r*  r   r+   r,  r-   ks_2samp)r/   rC   winterspringsummerfalls         r3   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,	. 	. 	. 	. 	.r5   c                    g dg dg df}t          j        | }t          |d         dd           t          |d         dd	           t          t          dd
ddddddd
ddgg ddd
dd	dddddt          ddt          gt          d	dddt          d	ddd
dddgg}t	          j        |          }t          j        | }t          |d         dd           t          |d         dd           d}t          ||d           d S )N)
g      "@      #@      @      @r  r         @r   r   r   )
r   r   r   r  r  r  r   r   r   r   )
r   r  r"   r   r   r   r   r"   r   r    r   g:pΈ$@rN   r   g(QGu?rd   rL   r$  r%  r   rM   r&  r'  r   r
  r(  gr @g-C6?	statisticr   Tr   )r-   friedmanchisquarer   r   rf   r   r   )r/   r
  r  rC   r   s        r3   test_friedmanchisqzTestMisc.test_friedmanchisq|  s5   999999999; )40F1Iw222F1Ix333#q!RQ1aAq9444Aq"aAqa371b!RQ1aAq9; N1)1-F1Ivq111F1Ivq111 -
FJ4888888r5   N)r6   r7   r8   r  r  r  r9   r5   r3   r  r  b  sA        ' ' '. . .9 9 9 9 9r5   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)  rX   rY   )slope	interceptrvaluer   stderrTr   intercept_stderrg5E%?g +l$@g4_Qc?g8?)r+   r   sinr-   
linregressr   LinregressResultr   
isinstancer   dirr   r   r!  r#  r$  )rC   r   r  lrr   s        r3   test_regress_simpler+    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Er5   c                      t          j        d          } t           j                            d          }d}t          t          |          5  t          j        | |           d d d            d S # 1 swxY w Y   d S )NrX   zBCannot calculate a linear regression if all x values are identicalr   )r+   r  r   r  r   r-   r&  )rC   r   msgs      r3   test_linregress_identical_xr.    s    
A
	A
NC	z	-	-	-    !Q                                   s   A//A36A3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   )FFTFrb   re   gUUUUUU?)r   rL   rM   rN   rX   ra  r'  )r         rY   r  7   N   gQ?rN   r"   gQ@rL   r  gGz@r   )r-   theilslopesr   r+   rf   r,   )r/   r   r!  lowerupperr   rC   s          r3   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3r5   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                      5 }|	                    t          d           t          j        g dg d          }t          |ddt
          j        t
          j        f           d d d            d S # 1 swxY w Y   d S )NzFAll `x` coordinates.*|Mean of empty slice.|invalid value encountered.*r   r   r   zinvalid value encountered...r   r   r   )r   r   r   )r   warnsr   r-   r7  r+   allisnanr   filterr   r   )r/   r-  r   sups       r3   test_theilslopes_warningsz)TestTheilslopes.test_theilslopes_warnings  sg   V\.444 	) 	)$aVaV44C6"(3--((((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)    	9CJJ~'EFFF$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C00C47C4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   rL   rN   rN   rd   r   N)r-   r7  r
   r   r!  	low_slope
high_slope)r/   r   rC   r   r!  rF  rG  r  s           r3   '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3r5   c                     t           j                            d          }|                    dddt           j                  }t          j        ||          }t           j                            |j	        d           d S )Nl   U5<H r      rX   )r  r=   r   )
r+   r   r  integersuint8r   r7  testingr   r   )r/   r  r   r   s       r3   test_gh19678_uint8z"TestTheilslopes.test_gh19678_uint8  sg     i##$455LLCbL991%%

""39a00000r5   N)r6   r7   r8   r:  rB  rH  rN  r9   r5   r3   r0  r0    sQ        $4 $4 $4N	9 	9 	94 4 4 1 1 1 1 1r5   r0  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 )NrL   rX   r   )r   r   separater  r   r    )r  r  r  rN   gffffffr      r  random_stater   r>   )
r+   r   r
   r-   siegelslopesr   normrvsr&  r   )r   rC   	slope_olsintercept_ols_r   r!  s          r3   test_siegelslopesrZ    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7r5   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.
    rD  rE  N)r-   rT  r
   r   r!  )r   rC   r   r!  r  s        r3   (test_siegelslopes_namedtuple_consistencyr\    sl    
 			A		A*1a00E9 A&&F %%%F,-----r5   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`   rN   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   rC   dydxrc   s         r3   dijkz&test_sen_seasonal_slopes.<locals>.dijk0  s    GGIaLL"QQQ
]##111bj=!!wrw1vT222a888$x4  r5   rN   c                 :    g | ]} d d |f                   S r  r9   ).0r  rg  rC   s     r3   
<listcomp>z,test_sen_seasonal_slopes.<locals>.<listcomp>;  s-     J J J1a1g J J Jr5   r   )
r+   r   r  r-   sen_seasonal_slopesr   r   medianr   rp  )r  intra_slopeinter_sloper  
all_slopesrg  rC   s        @@r3   test_sen_seasonal_slopesrp  *  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7r5   c                      t          j        t          j        d          dd          } t	          | j        t          j        g d                     d S )NrM   r   )rP   r   r  )r-   plotting_positionsr+   r   r   r0   r,   )poss    r3   test_plotting_positionsrt  ?  sG    

#BIaLL!Q
7
7Cch1B1B1B(C(CDDDDDr5   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  ro   r   r   rL   rM   r  ro   r   r   rL   rM   r  ro   r   r   rL   rM   r  ro   r   r   rL   rM   rL   rK   r   )r+   r,   r   r-   
normaltestr   skewtestkurtosistestzipr   r=  r   r   r?  r  r   r  r   )r/   rC   funcsmfuncsfuncmfuncr   s          r3   test_vs_nonmaskedz$TestNormalitytests.test_vs_nonmaskedH  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 )Nrx  rL   r   )r+   r,   r   r-   ry  rz  r{  r   s     r3   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 	0r5   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 )Nrx  rL   rX   TFrb   )r+   r,   rf   r_infr  r   r-   ry  r   rz  r{  )r/   rC   xms      r3   test_maskedarray_inputz)TestNormalitytests.test_maskedarray_inputc  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Gr5   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 )Nrx  rL   r   r   )	r+   r,   vstackr*  r-   ry  rz  r{  r   )r/   rC   x_2dr  res_1dres_2ds         r3   test_nd_inputz TestNormalitytests.test_nd_inputl  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 	8r5   c                     t          j        d          dz  }t          j        |          }d}t	          ||d           d S Nrx  rL   r  Tr   )r+   r,   r-   ry  r   r/   rC   r   r   s       r3   !test_normaltest_result_attributesz4TestNormalitytests.test_normaltest_result_attributesu  sG    H+,,a/"",
C555555r5   c                     t          j        d          dz  }t          j        |          }d}t	          ||d           d S r  )r+   r,   r-   r{  r   r  s       r3   #test_kurtosistest_result_attributesz6TestNormalitytests.test_kurtosistest_result_attributes{  sG    H+,,a/!!$$,
C555555r5   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 r9   )r+   full)ri  r  cs      r3   rj  z;TestNormalitytests.test_regression_9033.<locals>.<listcomp>  s&    CCCArwq!}}CCCr5   r   g{Gz?T)r+   hstackr  r
   r-   r{  )r/   countsrC   s      r3   test_regression_9033z'TestNormalitytests.test_regression_9033  s`     766ICC61B1BCCCDDV(++A.5t<<<<<r5   testrz  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 )NrX   r'   rZ   {   locscaler  rS  r   g-q=atolr   r   rb   )r   rU  rV  getattrr-   r   r+   r   rf   r   r?  r6  )
r/   r  r   rC   
stats_testmstats_testz_exp_exr  r   s
             r3   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,,,,,,r5   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 )NrY   r  rR  z`alternative` must be...r   r   r   )	r   rU  rV  r   r	   r   r-   rz  r{  )r/   rC   r-  s      r3   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)r6   r7   r8   r  r  r  r  r  r  r  r   r   rV  r  r  r9   r5   r3   rv  rv  E  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 8r5   rv  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/   rT   r  r   r   s        r3   test_result_attributesz"TestFOneway.test_result_attributes  sg    Hc3Zry111Hc3Zry111oa##,
C555555r5   Nr6   r7   r8   r  r9   r5   r3   r  r    s#        6 6 6 6 6r5   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-   mannwhitneyurC   r   r   )r/   r   r   s      r3   r  z'TestMannwhitneyu.test_result_attributes  s8    !$&$&11,
C555555r5   c                     t          j        | j        | j                  }t	          j        | j        | j                  }|j        |j        k    sJ t          |j        |j                   d S r  )r-   r  rC   r   r   r  r   r   )r/   res1res2s      r3   test_against_statsz#TestMannwhitneyu.test_against_stats  s_     "464622!$&$&11~////T[11111r5   N)	r6   r7   r8   r+   r,   rC   r   r  r  r9   r5   r3   r  r    sx         * * * 	+ 	+A& 	 " " " 	# 	#A6 6 6
2 2 2 2 2r5   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   rM   r   r   r   )rL   rN   rd   r   rX   r  Tr   )r-   kruskalr   r   s        r3   r  z"TestKruskal.test_result_attributes  sG    OOnQ"",
C555555r5   Nr  r9   r5   r3   r  r    s#        6 6 6 6 6r5   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	d
g          d             ZdS )TestTtest_relc                 t   t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         |d d df                   }t          j        |d d df         |d d df                   }t          ||           t	          j        |d d df         |d d df         d           }t          j        |d d df         |d d df         d           }t          ||           t	          j        |d d d df         |d d dd f         d          }t          j        |d d d df         |d d dd f         d          }t          ||           t          j        |d d d df         |d d dd f                   }t          ||           d S )	N rY   rN   r   r   r   rL   r   r   r   rL   )r+   r   r5  randnr   	ttest_relr-   r   )r/   outcomer  r  res3s        r3   r  zTestTtest_rel.test_vs_nonmasked  s   
	w)//"a((<<<7 wqqq!t}gaaadm<<1wqqq!t}==d### wqqq!t}gaaadm$GGG1wqqq!t}4HHHd###wqqq"1"u~wqqq!""u~AFFF2A2122QGGGd### 2A2122??d#####r5   c                 f   t           j                            d           t          j        t           j                            dd          g dg dg          }t                      5 }|                    t          d           |d d df         |d d d	f         ft           j	        t           j	        gd
dgffD ]_}t          j        | \  }}t          |t           j	        t           j	        f           t          |t           j	        t           j	        f           `	 d d d            d S # 1 swxY w Y   d S Nr  rM   rL   r  r<  rb   %invalid value encountered in absoluter   r   r   r   )r+   r   r5  rf   r   r  r   r@  r   r   r-   r  r   r/   r  rA  pairtr   s         r3   test_fully_maskedzTestTtest_rel.test_fully_masked  sa   
	w/")//!Q"7"7(1		999'=? ? ?   	8CJJ~'NOOO!!!!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                    t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         |d d df                   }d}t          ||d	           d S 
Nr  rY   rN   r  r   r   r  Tr   )r+   r   r5  r  r-   r  r   r/   r  r   r   s       r3   r  z$TestTtest_rel.test_result_attributes  ~    
	w)//"a((<<<7wqqq!t}gaaadm<<,
C555555r5   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 )	NrX   r
  rO   rL   rM   rN   r   r   )r  r   r-   r  r+   r   rc  r   s     r3   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r5   c                     t          j        g g           }t          t          j        t          j        |                               d S r  )r-   r  r   r+   r>  r?  r/   r  s     r3   
test_emptyzTestTtest_rel.test_empty   :    B''rx~~&&'''''r5   c                 :   t          j        g dg d          \  }}t          t          j        |          |ft          j        df           t                      5 }|                    t          d           t          j        g dg d          \  }}t          |t          j
        t          j        t          j        g                     t          |t          j
        t          j        t          j        g                     d d d            d S # 1 swxY w Y   d S )Nr<  r  r   r  )r-   	ttest_indr
   r+   absr  r   r@  r   r   r,   r   r/   r  r   rA  s       r3   test_zero_divisionz TestTtest_rel.test_zero_division$  s(   			999551bfQii^bfa[111   	>CJJ~'NOOO#IIIyyy99DAqq"(BFBF+;"<"<===q"(BFBF+;"<"<===		> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   B(DDDc                     d}t          j        t          |          5  t          j        g dg dd           d d d            d S # 1 swxY w Y   d S N4alternative must be 'less', 'greater' or 'two-sided'r   r   rL   rM   )rN   r   rd   foor   r   r	   r   r-   r  r/   r-  s     r3   r  z"TestTtest_rel.test_bad_alternative.      E]:S111 	F 	FYYY			uEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F   AAAr   r   r   c                 J   t           j                            dddd          }t           j                            dddd          }t          j        |||          \  }}t	          j        |||          \  }}t          ||d	
           t          ||d	
           t          j        |dd<   t          j        |dd<   t          j        	                    |t          j
        |                    }t          j        	                    |t          j
        |                    }t	          j        |||          \  }}t          j        |                                |                                |          \  }}t          ||d	
           t          ||d	
           d S )NrX   r   r  *   r  r   rL   r   rQ   r>   r   rb   )r   rU  rV  r  r-   r   r+   r   rf   r   r?  r6  r/   r   rC   r   t_exr  r  r   s           r3   r  zTestTtest_rel.test_alternative3  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,,,,,,r5   N)r6   r7   r8   r  r  r  r  r  r  r  r   r   rV  r  r9   r5   r3   r  r    s        $ $ $*
8 
8 
86 6 6F F F( ( (> > >F F F
 []VY,?@@- - A@- - -r5   r  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            ddd	g          d
             ZdS )TestTtest_indc                    t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         |d d df                   }t          j        |d d df         |d d df                   }t          ||           t	          j        |d d df         |d d df         d           }t          j        |d d df         |d d df         d           }t          ||           t	          j        |d d d df         |d d dd f         d          }t          j        |d d d df         |d d dd f         d          }t          ||           t          j        |d d d df         |d d dd f                   }t          ||           t	          j        |d d df         |d d df         d	
          }t          j        |d d df         |d d df         d	
          }t          ||           t	          j        |d d df         |d d df         d
          }t          j        |d d df         |d d df         d
          }t          ||           d S )Nr  rY   rN   r  r   r   r   rL   T	equal_varF)r+   r   r5  r  r   r  r-   r   )r/   r  r  r  r  res4res5s          r3   r  zTestTtest_ind.test_vs_nonmaskedJ  s   
	w)//"a((<<<7 wqqq!t}gaaadm<<1wqqq!t}==d### wqqq!t}gaaadm$GGG1wqqq!t}4HHHd###wqqq"1"u~wqqq!""u~AFFF2A2122QGGGd### 2A2122??d### wqqq!t}gaaadmtLLL1wqqq!t}MMMd###wqqq!t}gaaadmuMMM1wqqq!t}NNNd#####r5   c                 f   t           j                            d           t          j        t           j                            dd          g dg dg          }t                      5 }|                    t          d           |d d df         |d d d	f         ft           j	        t           j	        gd
dgffD ]_}t          j        | \  }}t          |t           j	        t           j	        f           t          |t           j	        t           j	        f           `	 d d d            d S # 1 swxY w Y   d S r  )r+   r   r5  rf   r   r  r   r@  r   r   r-   r  r   r  s         r3   r  zTestTtest_ind.test_fully_maskedg  sZ   
	w/")//!Q"7"7yyy)))>TUUU   	8CJJ~'NOOO!!!!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 	8r  c                    t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         |d d df                   }d}t          ||d	           d S r  )r+   r   r5  r  r-   r  r   r  s       r3   r  z$TestTtest_ind.test_result_attributesr  r  r5   c                     t          j        g g           }t          t          j        t          j        |                               d S r  )r-   r  r   r+   r>  r?  r  s     r3   r  zTestTtest_ind.test_emptyz  r  r5   c                 
   t          j        g dg d          \  }}t          t          j        |          |ft          j        df           t                      5 }|                    t          d           t          j        g dg d          \  }}t          |t          j
        t          j
        f           t          |t          j
        t          j
        f           d d d            n# 1 swxY w Y   t          j        g dg dd          \  }}t          t          j        |          |ft          j        df           t          t          j        g dg dd          t          j
        t          j
        f           d S )Nr<  r  r   r  Fr  )r-   r  r
   r+   r  r  r   r@  r   r   r   r  s       r3   r  z TestTtest_ind.test_zero_division~  s   			999551bfQii^bfa[111   	4CJJ~'NOOO#IIIyyy99DAqq2626"2333q2626"2333		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 			999FFF1bfQii^bfa[1116+IIIyyy6;= = =?Avrv>N	P 	P 	P 	P 	Ps   BC++C/2C/c                     d}t          j        t          |          5  t          j        g dg dd           d d d            d S # 1 swxY w Y   d S r  r  r  s     r3   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 )NrX   rL   r`   r  r  r   r   rQ   r>   r   r^   r_   rb   )r   rU  rV  r  r-   r   r+   r   rf   r   r?  r6  r  s           r3   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,,,,,,r5   Nr6   r7   r8   r  r  r  r  r  r  r   r   rV  r  r9   r5   r3   r  r  I  s        $ $ $:	8 	8 	86 6 6( ( (P P PF F F
 []VY,?@@- - A@- - -r5   r  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            ddd	g          d
             ZdS )TestTtest_1sampc                 *   t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         d          }t          j        |d d df         d          }t          ||           d S )Nr  rY   rN   r  r   r   )r+   r   r5  r  r   ttest_1sampr-   r   )r/   r  r  r  s       r3   r  z!TestTtest_1samp.test_vs_nonmasked  s    
	w)//"a((<<<7  A22!'!!!Q$-33d#####r5   c                    t           j                            d           t          j        t           j                            d          g d          }t           j        t           j        f}t                      5 }|                    t          d           t           j        t           j        fdf|dffD ]3}t          j        | \  }}t          ||           t          ||           4	 d d d            d S # 1 swxY w Y   d S )Nr  rM   r  rb   r  r   )r+   r   r5  rf   r   r  r   r   r@  r   r-   r  r   )r/   r  r  rA  r  r  r   s          r3   r  z!TestTtest_1samp.test_fully_masked  s+   
	w/")//!"4"4999EEEFBF#   	0CJJ~'NOOO626*C07C.A 0 0)401"1h///"1h////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   ;A.C77C;>C;c                     t           j                            d           t           j                            dd          g dz   }t	          j        |d d df         d          }d}t          ||d	           d S r  )r+   r   r5  r  r-   r  r   r  s       r3   r  z&TestTtest_1samp.test_result_attributes  sr    
	w)//"a((<<<7 A22,
C555555r5   c                     t          j        g d          }t          t          j        t          j        |                               d S )Nr   )r-   r  r   r+   r>  r?  r  s     r3   r  zTestTtest_1samp.test_empty  s:    !"a((rx~~&&'''''r5   c                    t          j        g dd          \  }}t          t          j        |          |ft          j        df           t                      5 }|                    t          d           t          j        g dd          \  }}t          t          j
        |                     t          |t          j        t          j        f           d d d            d S # 1 swxY w Y   d S )Nr<  r   r   r  )r-   r  r
   r+   r  r  r   r@  r   r   r?  r   r   r  s       r3   r  z"TestTtest_1samp.test_zero_division  s	   !)))Q//1bfQii^bfa[111   	4CJJ~'NOOO%iii33DAqBHQKK   q2626"2333		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   A=C##C'*C'c                     d}t          j        t          |          5  t          j        g ddd           d d d            d S # 1 swxY w Y   d S )Nr  r   r  rN   r  r   )r   r	   r   r-   r  r  s     r3   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 )NrX   rL   r`   r  r  r   r   rQ   r>   r   rb   )r   rU  rV  r  r-   r   r+   r   rf   r   r?  r6  )r/   r   rC   r  r  r  r   s          r3   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,,,,,,r5   Nr  r9   r5   r3   r  r    s        $ $ $	0 	0 	06 6 6( ( (4 4 4@ @ @
 []VY,?@@- - A@- - -r5   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   rL   rM   rN   r   )r   r   r   r   rM   rM   )r   r   r   r   r   r   )r   r   r   r   r   r   rb   r   r   r   rN   r   rM   r   r"   r   r   g       )r+   rf   r   r-   describer
   nobsminmaxmeanvarianceskewnessr   r  )r/   rT   r  aminamaxs        r3   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6r5   N)r6   r7   r8   r  r  r9   r5   r3   r	  r	    s-         7 7 7 7 7r5   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`   rX   r   r9   r  s    r3   get_nzTestCompareWithStats.get_n  s    !!!!r5   c                 B   t           j                            d           t           j                            |          }|t           j                            |          z   }t          j        t          |          dz   d          }t          j        t          |          dz   d          }||dt          |          <   ||dt          |          <   |dk    }t           j                            ||          }t           j                            ||          }||||fS )Nr  r   g 7yACr   g s?Crb   )r+   r   r5  r  r  r`  rf   r,   )r/   r   rC   r   r  ymrc   s          r3   generate_xy_samplez'TestCompareWithStats.generate_xy_sample  s     		wIOOA	"""WSVVaZ&&WSVVaZ&&1SVV81SVV8DyU[[$[''U[[$[''!R|r5   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   rb   )r+   r  r   r   r  rf   r,   r?  )
r/   r   nxrC   r   r  r  r  rf  re  s
             r3   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|r5   c                 :   |                                  D ]}|                     |          \  }}}}t          j        ||          }t          j                            ||          }t          t          j        |          t          j        |                     d S r  )r  r  r   r&  r-   r   r+   r   )r/   r   rC   r   r  r  result1result2s           r3   test_linregressz$TestCompareWithStats.test_linregress=  s     	F 	FA22155LAq"b&q!,,Gl--b"55GBJw//G1D1DEEEE		F 	Fr5   c                 &   |                                  D ]{}|                     |          \  }}}}t          j        ||          \  }}t          j                            ||          \  }}	t          ||d           t          ||	d           |d S )Nrl  r  )r  r  r   r   r-   r   
r/   r   rC   r   r  r  r   r   rmpms
             r3   r   z"TestCompareWithStats.test_pearsonrD  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 	3r5   c                 "   |                                  D ]y}|                     |          \  }}}}t          j        ||          \  }}t          j                            ||          \  }}	t          ||d           t          ||	d           zd S Nrl  )r  r  r   r   r-   r   r$  s
             r3   r   z#TestCompareWithStats.test_spearmanrM  s     	+ 	+A22155LAq"b?1a((DAq\++B33FB2r***2r****	+ 	+r5   c                 r    t          j        d          }t          t          t          j        ||d           d S )Nrd   F)r+   r   r  r   r-   r   r   s     r3   !test_spearmanr_backcompat_usetiesz6TestCompareWithStats.test_spearmanr_backcompat_usetiesU  s0     IaLLj&"2Aq%@@@@@r5   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   rC   r   r  r  r   r%  s           r3   
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.....	/ 	/r5   c                    |                                  D ]}|                     |          \  }}}}t          j        t	          |                    }t          j                            t	          |                    }t          ||d           t          j        t	          |                    }t          j                            t	          |                    }t          ||d           d S NrX   )r  r  r   rF   r  r-   r   r,  s           r3   
test_hmeanzTestCompareWithStats.test_hmeanf  s     		+ 		+A22155LAq"bCFF##A##CGG,,B2r***CFF##A##CGG,,B2r****		+ 		+r5   c                 x   |                                  D ]}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||d           t          j        |          }t          j                            |          }t          ||d           d S r/  )r  r  r   r  r-   r   r,  s           r3   	test_skewzTestCompareWithStats.test_skewr  s     		+ 		+A22155LAq"b
1A""2&&B2r***
1A""2&&B2r****		+ 		+r5   c                 x   |                                  D ]}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||d           t          j        |          }t          j                            |          }t          ||d           d S r/  )r  r  r   r  r-   r   r,  s           r3   r  z TestCompareWithStats.test_moment~  s     		+ 		+A22155LAq"bQA$$R((B2r***QA$$R((B2r****		+ 		+r5   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-   r`  )r/   r   rC   r   r  r  zxzys           r3   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!&( ( ( ( (	( 	(r5   c                 x   |                                  D ]}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||d           t          j        |          }t          j                            |          }t          ||d           d S r/  )r  r  r   r  r-   r   r,  s           r3   r  z"TestCompareWithStats.test_kurtosis  s     	+ 	+A22155LAq"bq!!A&&r**B2r***q!!A&&r**B2r****	+ 	+r5   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 )NrY   r   rN   r   r  g'e@gh㈵>r  r   )r)   r     r  )r+   r   rc  rf   r,   r   r  r-   r   r  r  r   )
r/   rT   amr   r%  r   rC   r   r  r  s
             r3   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r5   c           	      ~   |                                  D ]}|                     |          \  }}}}t          j        |d          }t          j                            |d          }t          d          D ]D}t          t          j        ||                   t          j        ||                   d           Ed S )Nr   r  rd   ra  r  )	r  r  r   r  r-   r   r   r+   r   )	r/   r   rC   r   r  r  r   r%  iis	            r3   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 	0r5   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      r3   test_describe_result_attributesz4TestCompareWithStats.test_describe_result_attributes  s;    1.."
FJ4888888r5   c                     |                                  D ]_}|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||           `d S r  )r  r  r   r   r-   r   r,  s           r3   test_rankdataz"TestCompareWithStats.test_rankdata  su     	# 	#A22155LAq"bq!!A&&q))BAr""""		# 	#r5   c                 h   |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           d S r(  )r  r  r   r   tmeanr-   r/   r   rC   r   r  r  s         r3   
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r5   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   rX   r    )
upperlimit)r  r  r   r   tmaxr-   rE  s         r3   	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r5   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   )
lowerlimitrX   )r  r  r
   r   tminr-   r   rE  s         r3   	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r5   c           	          |                                  D ]x}|                     |          \  }}}}t          j        ||          }t          j                            ||          }t          ||dt          |                   d           yd S )Nr   r5  r  )r  r  r   r  r-   r   r`  )r/   r   rC   r   r  r  r  zms           r3   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 	9r5   c                 l   |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           d S Nra  r  )r  r  r   r   r  r-   rE  s         r3   r  z#TestCompareWithStats.test_variation  s     	, 	,A22155LAq"b 2 2EL4J4J24N4N(*, , , , 2 2EL4J4J24N4N(*, , , , ,		, 	,r5   c                 l   |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           d S rR  )r  r  r   r   tvarr-   rE  s         r3   	test_tvarzTestCompareWithStats.test_tvar   s     	, 	,A22155LAq"b
1u|/@/@/D/D(*, , , ,
1u|/@/@/D/D(*, , , , ,		, 	,r5   c                     t          j        d          }t          j        |d          }t          j                            |d          }t          t          j        |          |j        |j                             d S )NrY   r   )	r+   r   r   rm  r-   r   r  r0   rc   )r/   rT   r  bms       r3   test_trimbothz"TestCompareWithStats.test_trimboth  s`    IbMMN1c""\""1c**

BGRWH$566666r5   c                    |                                  D ]}|                     |          \  }}}}t          t          j        |          t          j                            |          d           t          t          j        |          t          j                            |          d           t          t          j        |d          t          j                            |d          d           d S )Nrl  r  )r  r   )r^  )r  r  r   r   tsemr-   rE  s         r3   	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(*, , , , ,	, 	,r5   c                     |                                  D ]e}|dk    r]|                     |          \  }}}}t          j        |          }t          j                            |          }t          ||           fd S )Nr   )r  r  r   rz  r-   r   r,  s           r3   test_skewtestz"TestCompareWithStats.test_skewtest  s|     	' 	'A1uu#66q991b"N1%%\**2..2&&&	' 	'r5   c                     t          j        d          dz  }t          j        |          }d}t	          ||d           d S r  )r+   r,   r-   rz  r   r  s       r3   test_skewtest_result_attributesz4TestCompareWithStats.test_skewtest_result_attributes"  sF    H+,,a/oa  ,
C555555r5   c                    t           j                            d          dz  }t          j        |          }t          j                            |          }t          t          j        |          t          j        |                     d S )N)rY   rL   g      4@)r+   r   r   rz  r-   r   r   )r/   rC   r   r%  s       r3   test_skewtest_2D_notmaskedz/TestCompareWithStats.test_skewtest_2D_notmasked(  sf    IW%%+N1\""1%%
1rz"~~66666r5   c                    d}|                                  D ]}|dk    r|                     ||          \  }}}}t          j        |          }t          j                            |          }t          |d         d         |d         d         d           t          |d         d         |d         d         d           d S )NrL   r   r   rQ   r>   r   )r  r  r   rz  r-   r   )	r/   r  r   rC   r   r  r  r   r%  s	            r3   test_skewtest_2D_WithMaskz.TestCompareWithStats.test_skewtest_2D_WithMask/  s     	? 	?A1uu#88B??1b"N1%%\**2..!QAq>>>>!QAq>>>>	? 	?r5   c           	      X   t          j        d          5  t                      5 }|                    t          d           |                    t          d           |                                 D ]}|dk    r|                     |          \  }}}}t          j        |          }t          j	                            |          }t          t          j        |          t          j        |                     	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr  )overz(`kurtosistest` p-value may be inaccuratez!kurtosistest only valid for n>=20r   )r+   rr   r   r@  UserWarningr  r  r   ry  r-   r   r   )	r/   rA  r   rC   r   r  r  r   r%  s	            r3   test_normaltestz$TestCompareWithStats.test_normaltest:  s   [g&&& 	C 	C(9(;(; 	CsJJ{$NOOOJJ{$GHHHZZ\\ C Cq55#'#:#:1#=#=LAq"b(++A0044B#BJqMM2:b>>BBBC	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs5   D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   rL   rL   rM   rM   rM   rN   rN   rN   rN   r  )r   r   rL   rL   rM   rM   rM   rN   rN   rN   rN   r   r   r   r   r  rb   T)return_countsr   r   r   )r+   r   ry   rf   r,   r  uniquer   r-   find_repeatsr
   intp)r/   rC   tmprc   r  x_origxm_origrj  unique_countsr   r%  rY  r  s                r3   test_find_repeatsz&TestCompareWithStats.test_find_repeatsE  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8r5   c                 J   |                                  D ]}|                     |          \  }}}}t          j        ||          }t          j                            ||          }t          |d         |d         d           t          |d         |d         d           d S )Nr   rX   r  r   r   )r  r  r   r  r-   r   r,  s           r3   r  z$TestCompareWithStats.test_kendalltauY  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 	8r5   c           	      "   |                                  D ]y}|                     |          \  }}}}t          j        |          }t          j                            |          }t          |j        |dt          |                              zd S )Nr   )r  r  r   r	  r-   r   r*  r`  r,  s           r3   r  z)TestCompareWithStats.test_obrientransforma  s     	3 	3A22155LAq"b%a((A--b11BR#a&&\2222		3 	3r5   c           
         dD ]L}t                      5  dD ]}|                                 D ]}|                     |          \  }}}}t          j        |t          j        j        ||          }t          j                            |t          j        j        ||          }	t          t          j
        |          t          j
        |	                     t          j        |t          j        j        ||          }
t          t          j
        |          t          j
        |
                      	 ddd           n# 1 swxY w Y   NdS )zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.autor/  asympr   r   r1  r   r  N)r   r  r  r   ks_1samprU  cdfr-   r
   r+   r   r/   r  r   r   rC   r   r  r  r  r  r  s              r3   test_ks_1sampz"TestCompareWithStats.test_ks_1samph  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           
      D   dD ]}t                      5  dD ]}|                                 D ]}|                     |          \  }}}}t          j        |d||          }t          j                            |d||          }	t          t          j        |          t          j        |	                     t          j        |d||          }
t          t          j        |          t          j        |
                     ،	 ddd           n# 1 swxY w Y   dS )z]
        Checks that 1-sample mstats.kstest and stats.kstest agree on masked arrays.
        ru  rx  rU  ry  N)	r   r  r  r   kstestr-   r
   r+   r   r|  s              r3   test_kstest_1sampz&TestCompareWithStats.test_kstest_1sampx  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 ]<}t                      5 }|dv rd}|                    t          |           dD ]}|                                 D ]}|                     |          \  }}}}	t          j        ||||          }
t
          j                            ||	||          }t          t          j
        |
          t          j
        |                     t          j        ||||          }t          t          j
        |
          t          j
        |                     ،	 ddd           n# 1 swxY w Y   >dS )zVChecks that mstats.ks_2samp and stats.ks_2samp agree on masked arrays.
        gh-8431ru  rv  r/  )ks_2samp: Exact calculation unsuccessful.rx  ry  N)r   r@  r   r  r  r   r  r-   r
   r+   r   r/   r  rA  messager   r   rC   r   r  r  r  r  r  s                r3   r  z"TestCompareWithStats.test_ks_2samp  s    / 	I 	ID"$$ I,,,IGJJ~w777#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D44D8	;D8	c           
         dD ]<}t                      5 }|dv rd}|                    t          |           dD ]}|                                 D ]}|                     |          \  }}}}	t          j        ||||          }
t
          j                            ||	||          }t          t          j
        |
          t          j
        |                     t          j        ||||          }t          t          j
        |
          t          j
        |                     ،	 ddd           n# 1 swxY w Y   >dS )z]
        Checks that 2-sample mstats.kstest and stats.kstest agree on masked arrays.
        ru  r  r  rx  ry  N)r   r@  r   r  r  r   r  r-   r
   r+   r   r  s                r3   test_kstest_2sampz&TestCompareWithStats.test_kstest_2samp  s    / 	I 	ID"$$ I,,,IGJJ~w777#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))r6   r7   r8   r  r  r  r  r"  r   r   r*  r-  r0  r2  r  r  r  r  r>  r@  rB  rF  rJ  rN  r  r  rU  rX  r[  r]  r_  ra  rc  rg  rq  r  r  r}  r  r  r  r9   r5   r3   r  r    sl        ," " "    F F F3 3 3+ + +A A A	/ 	/ 	/
+ 
+ 
+
+ 
+ 
+
+ 
+ 
+( ( ($	+ 	+ 	+M M M*0 0 09 9 9# # #K K KJ J J	K 	K 	K9 9 9, , ,, , ,7 7 7	, 	, 	,' ' '6 6 67 7 7	? 	? 	?	C 	C 	C9 9 9(8 8 83 3 3I I I I I I$I I I(I I I I Ir5   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   rL   rN   rM   r   rl  c                    t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          ||| j                   t          ||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	            r3   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 	6r5   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        r3   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 	6r5   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        r3   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 	6r5   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      r3   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error  sT    #CCDDDj*ff!"	$ 	$ 	$ 	$ 	$r5   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        r3   $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 	6r5   c                     d}d}t          |dv           t          t          t          j        | j        | j        ||           d S )Nr1  r   )r  r  r  r  s      r3   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error  sS    !?2333j*ff!"	$ 	$ 	$ 	$ 	$r5   c                 6   t          j        | j        g           \  }}t          j        g | j                  \  }}t          j        g g           \  }}t	          t          j        |                     t	          t          j        |                     t	          t          j        |                     t	          t          j        |                     t	          t          j        |                     t	          t          j        |                     d S r  )r-   r  r  r  r   r+   r?  )r/   r  r  r  r  r  r  s          r3   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput  s    %dfb11B%b$&11B%b"--Br5   N)r6   r7   r8   r+   rf   masked_invalidr   r  r  r  r  r  r  r  r  r  r  r9   r5   r3   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	$ 	$ 	$
 
 
 
 
r5   r  )NNr:   )Cr  r   rS  numpyr+   r   numpy.marf   r   r   scipy.stats.mstatsr   r-   scipycommon_testsr   r   r	   r  numpy.ma.testutilsr
   r   r   r   r   r   r   numpy.testingr   scipy.statsr   r   scipy.conftestr   scipy.stats._axis_nan_policyr   r   r   rD   rG   rI   r   r   r   rY  r  r  r  r  r  r+  r.  r0  rZ  r\  rp  rt  rv  r  r  r  r  r  r  r	  r  r  r9   r5   r3   <module>r     sb                      # # # # # # # # # # # # # # # # #       - - - - - -  * * * * * *E E E E E E E E E E E E E E E E E E , + + + + + 0 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,y6 y6 y6 y6 y6 y6 y6 y6x	 u: u: u: u: u: u: u: u:p V/ V/ V/ V/ V/ V/ V/ V/r& & & & & & & &RA A A A A A A A* 4 4 4 4 4 4 4 4@ -9 -9 -9 -9 -9 -9 -9 -9`F F F,     J1 J1 J1 J1 J1 J1 J1 J1Z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Y- Y- Y- Y- Y- Y- Y- Y-x\- \- \- \- \- \- \- \-~@- @- @- @- @- @- @- @-F7 7 7 7 7 7 7 70 mI mI mI mI mI mI mI mI`c c c c c c c c c cr5   