
    (phT                    "   S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJrJ	r	  SSK
Js  Jr  SSKJr  SSKJr  SSKrSSKJr  SS	KJrJrJrJrJrJrJr  SS
KJr  SSKJrJr  SSK J!r!  SSK"J#r#J$r$   " S S5      r%SBS jr&SBS jr'\! " S S5      5       r(\! " S S5      5       r) " S S5      r* " S S5      r+\! " S S5      5       r,\! " S S5      5       r- " S S5      r. " S  S!5      r/\! " S" S#5      5       r0\! " S$ S%5      5       r1S& r2S' r3 " S( S)5      r4S* r5S+ r6S, r7S- r8\! " S. S/5      5       r9 " S0 S15      r: " S2 S35      r; " S4 S55      r< " S6 S75      r= " S8 S95      r> " S: S;5      r? " S< S=5      r@\! " S> S?5      5       rA " S@ SA5      rBg)Cz?
Tests for the stats.mstats module (support for masked arrays)
    N)nan)maskednomask)stats   )check_named_results)raises)assert_equalassert_almost_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_assert_allcloseassert_array_equal)suppress_warnings)_mstats_basic	_stats_py)skip_xp_invalid_arg)SmallSampleWarningtoo_small_1d_not_omitc                       \ rS rSrS rSrg)TestMquantiles   c                     [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/5      n/ SQ/ SQ/ SQ/n[        R                  " USSS9n[	        X25        g )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       V/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_mstats_basic.pytest_mquantiles_limit_keyword,TestMquantiles.test_mquantiles_limit_keyword   se    xx'''**+,,,,
. 
/ &$&( ""4aw?F,     N)__name__
__module____qualname____firstlineno__r5   __static_attributes__r8   r7   r4   r   r      s    -r7   r   c                 n    [         R                  " XUS9n[        XQUS9  [        UR                  U5        g N)r*   dtypertol)r.   gmeanr   r
   r@   
array_liker2   r*   r@   rB   xs         r4   check_equal_gmeanrG   /   s*    Z%8AAT*% r7   c                 n    [         R                  " XUS9n[        XQUS9  [        UR                  U5        g r?   )r   hmeanr   r
   r@   rD   s         r4   check_equal_hmeanrJ   6   s*    J7AAT*% r7   c                       \ rS rSrS rS rS rS rS r\	R                  R                  \" \S5      (       + SS	9S
 5       rS rSrg)TestGeoMean<   c                 N    / SQn[         R                  " SS5      n[        XSS9  g )Nr                     ?+=rA   )r,   powerrG   r0   ar2   s      r4   test_1dTestGeoMean.test_1d>   s!    ((7E*!51r7   c                     [         R                  " / SQ5      nSn[        X5        [         R                  " / SQ/ SQS9n[        R                  " SS5      n[        XSS	9  g )
N

         (   r)   rM   F   P   Z   d   gsŤF@rO   r   r   r   r   mask   UUUUUU?rU   rA   )mar-   rG   r,   rV   rW   s      r4   
test_1d_maTestGeoMean.test_1d_maC   sH    HH>?!%HH\5((5%(!51r7   c                 b    [         R                  R                  / SQ/ SQS9nSn[        X5        g )Nr\   
r   r   r   r   r   r   r   r   r   r   rf   gdq_D@r,   rj   r-   rG   rW   s      r4   test_1d_ma_valueTestGeoMean.test_1d_ma_valueM   s,    EEKKA;  =!%r7   c                 `    [         R                  R                  / SQ5      nSn[        X5        g )N)
r]   r^   r_   r`   r)   rM   ra   rb   rc   r   r   ro   rW   s      r4   test_1d_ma0TestGeoMean.test_1d_ma0T   s"    EEKK?@!%r7   c                     [         R                  R                  / SQ5      n[         R                  n[         R                  " SS9   [        X5        S S S 5        g ! , (       d  f       g = f)N)
r]   r^   r_   r`   r)   rM   ra   rb   rc   ignore)invalid)r,   rj   r-   r   errstaterG   rW   s      r4   test_1d_ma_infTestGeoMean.test_1d_ma_infZ   s>    EEKK@A&&[[*a) +**s   A
A)float96cannot find float96 so skippingreasonc                     [         R                  " / SQ/ SQS9n[        R                  " SS5      R	                  [        R
                  5      n[        X[        R
                  SS9  g )NrO   re   rf   rh   ri   rU   )r@   rB   )rj   r-   r,   rV   astyper|   rG   r0   rX   
desired_dts      r4   test_1d_float96TestGeoMean.test_1d_float96a   sC     HH\5XXeU+222::>
!rzzFr7   c                    [         R                  " / SQ/ SQ/ SQ// SQ/ SQ/ SQ/S9n[        R                  " / SQ5      n[        XSSS9  [         R                  " [        R                  " S	S
5      [        R                  " SS5      [        R                  " SS5      /5      n[        XSSS9  / SQ/ SQ/ SQ/nSn[        [        R                   R                  U5      U5        g )NrO   r   r   r   r   r   r   r   r   r   r   r   r   rf   r   rU   r*   rB   rS   rT   rh         ?rR   rv   r]   r^   r_   r`   r)   rM   ra   rb   rc   rd   n   x   g/,$qJ@)rj   r-   r,   rG   rV   rW   s      r4   
test_2d_maTestGeoMean.test_2d_mah   s    HHlL,?'|DF((<(!159((BHHWe4HHS%0HHS%02 3 	!2E: /1DE"%%++a.'2r7   r8   N)r9   r:   r;   r<   rY   rk   rp   rs   rz   pytestmarkskipifhasattrr,   r   r   r=   r8   r7   r4   rL   rL   <   s[    2
2&&* [[GB	22@  BGBG
3r7   rL   c                   x    \ rS rSrS r\R                  R                  \" \	S5      (       + SS9S 5       r
S rSrg	)
TestHarMeany   c                    [         R                  " / SQ/ SQS9nSn[        XSS9  [        R                   R                  / SQ5      nSn[        X5        [        R                   R                  / SQ/ S	QS9nS
n[        X5        g )NrO   re   rf   /袋.?rU   rA   r\   g=b#A@rn   gO?@rj   r-   rJ   r,   rW   s      r4   rY   TestHarMean.test_1d{   sk    HH\5+!51EEKKAB!%EEKKA;  =!%r7   r|   r}   r~   c                     [         R                  " / SQ/ SQS9n[        R                  " S[        R                  S9n[        X[        R                  S9  g )NrO   re   rf   r   r@   )rj   r-   r,   asarrayr|   rJ   r   s      r4   r   TestHarMean.test_1d_float96   s7     HH\5ZZ 9L
!rzz:r7   c                 "   [         R                  " / SQ/ SQ/ SQ// SQ/ SQ/ SQ/S9n[         R                  " / SQ5      n[        XSSS9  / S	Qn[        XS
SS9  / SQ/ SQ/ SQ/nSn[        [        R                   R                  U5      U5        g )NrO   r   r   r   rf   r   rU   r   )gQ?g433333@g?rv   r   r   r   gmWUC@r   rW   s      r4   test_2dTestHarMean.test_2d   sx    HHlL,?'|DF((<(!159L!2E:/1DE"%%++a.'2r7   r8   N)r9   r:   r;   r<   rY   r   r   r   r   r,   r   r   r=   r8   r7   r4   r   r   y   sE    & [[GB	22@  B;B;
3r7   r   c                       \ rS rSrS rSrg)TestRanking   c                    [         R                  " / SQ5      n[        [        R                  " U5      / SQ5        [
        USS/'   [        [        R                  " U5      / SQ5        [        [        R                  " USS9/ SQ5        [         R                  " / S	Q5      n[        [        R                  " U5      / S
Q5        [         R                  " / SQ/ SQ/5      n[        [        R                  " U5      / SQ/ SQ/5        [        [        R                  " USS9/ SQ/ SQ/5        [        [        R                  " USS9/ SQ/ SQ/5        g )N)
r   r   r   r   rP   rQ   rR      r   rh   )
r   rQ   rQ   rQ   r   rh            !@r   r]   rQ   rR   )
r   r(   r(   r   r   rR   r         @r      T)use_missing)
r   r(   r(         @r   rR   r   r   r   r   )
r   r   r   r   rP   rR   rQ   r   r   rh   )
r   rQ   r   rQ   r   r   rh   r   rQ   r]   )r   r   r   r   rP   )rQ   rR   r   r   rh   )r   rQ   rQ   rQ   r   )rh   r   r   r   r]   r   r*   )r   rP         @r   r   r   r   r   r   r   r   rP   rP   rP   rP   rP   )rj   r-   r   r.   rankdatar   r0   rF   s     r4   test_rankingTestRanking.test_ranking   s    HH+,FOOA.6	81Q%FOOA.9	;FOOA4@=	?HH+,FOOA.6	8HHk<01FOOA.(*:;	=FOOAA6(/:	<FOOA15(,7	9r7   r8   N)r9   r:   r;   r<   r   r=   r8   r7   r4   r   r      s    9r7   r   c                      \ rS rSrS rS rS rS r\R                  R                  \R                  " 5       S:H  SS9S	 5       r\R                  R                  \R                  " 5       S:H  SS9\R                  R                  S
 5       5       rS r\R                  R#                  SS5      \R                  R#                  SS5      S 5       5       rS r\R                  R(                  S 5       r\S 5       rSrg)TestCorr   c           
         [         R                  " S5      n[        R                  " 5          [        R                  " S[
        5        [        [        R                  " X5      S   S5        [        [        R                  " XS S S2   5      S   S5        [         R                  " USS9n[        R                  " X5      n[        US   [        L 5        [        US	   [        L 5        S S S 5        [         R                  " / S
Q5      n[         R                  " / SQ5      n[        R                  " X45      u  pV[        U[        R                  " S5      S-  5        [        US5        / SQn[         R                  " / SQUS9n[         R                  " / SQUS9n	[        R                  " X5      u  pV[        U[        R                  " S5      S-  5        [        US5        g ! , (       d  f       N= f)Nr]   errorr   r   rv         Trf   r   )r           r   )r   r   rQ   rQ   rP   ri   )FFFT)r   r   r   g     X@)r   r   rQ   rv   )rj   arangewarningscatch_warningssimplefilterRuntimeWarningr   r.   pearsonrr-   r   r   r,   sqrt)
r0   rF   prx1y1rprg   x2y2s
             r4   test_pearsonrTestCorr.test_pearsonr   sX   IIbM$$& !!'>: 5a 8#>TrT7 ;A >E&A&BBqEVO$BqEVO$ ' XX&'XXi r&Arwwqz!|,Au% +XX,48XXm$/r&Arwwqz!|,Au%5 '&s   B;G  
G.c                 x   [         R                  R                  / SQ/ SQS9n[         R                  R                  / SQ/ SQS9n[         R                  " / SQ5      n[         R                  " / SQ5      n[        R
                  " X5      u  pV[        R
                  " X45      u  px[        XW5        [        Xh5        g )Nr   rP   rQ   rR   r   rh   )r   r   r   r   r   r   rf   )	   r   r   rh   r   r   )r   r   r   r   r   r   )r   rR   r   rh   )r   rh   r   r   )r,   rj   masked_arrayr-   r.   r   r   r
   )	r0   mxmyrF   ymrmpr   r   s	            r4   test_pearsonr_misaligned_mask&TestCorr.test_pearsonr_misaligned_mask   s    UU 29KLUU 29KLHH\"HH\"(~~a#RRr7   c                    / SQ/ SQp![        [        R                  " X5      S   S5        SSSS[        R                  /S	S
S
S[        R                  /p![
        R                  " U5      [
        R                  " U5      p![        [        R                  " X5      S   S5        / SQn/ SQn[        [        R                  " X5      S   S5        SSSSSSSSSSSSSSS[        R                  /nSSSS S!S"S#S$S%S"SS&SS'S[        R                  /n[
        R                  " U5      [
        R                  " U5      p![        [        R                  " X5      S   S5        [        [        S(5      5      n[        [        S(5      5      nUS)   US   sUS'   US)'   US*   US+   sUS+'   US*'   US,   US-   sUS-'   US,'   [        [        R                  " X5      S   S.5        [        R                  " X5      nS/n[        X4S0S19  g )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  r]   i  i  gV-?correlationpvalueTrj   )
r   r.   	spearmanrr,   r   rj   fix_invalidlistranger   r0   rF   r   res
attributess        r4   test_spearmanrTestCorr.test_spearmanr   s   ')>AF,,Q1!4jAT$rvv.T$tBFF/KA..#R^^A%6AF,,Q1!4jA00F,,Q1!4i@$dD#tT#sCc383dD#sD#sCc38..#R^^A%6AF,,Q1!4i@
 ttqT1Q4
!ad#""qvD'1S6#$ 	F,,Q1!4e< q$.
C5r7   c                 *   / SQn/ SQnSn[         R                  " X5      u  pE[        XC5        [        US5        [         R                  " XSS9u  pE[        XC5        [        US5        [         R                  " XSS9u  pE[        XC5        [        US	5        S
n[        R                  " SSU5      nSU-  [        R
                  R                  U5      -   n[         R                  " X5      u  px[         R                  " XSS9u  p[        XS-  5        [         R                  " XSS9u  p[        USUS-  -
  5        Xys=:X  a  U:X  d   e   e[        R                  " [        SS9   [         R                  " XSS9  S S S 5        g ! , (       d  f       g = f)Nr   r   g+;
?gr?greateralternativegb?lessgcH}?rd   r   r   皙?rP   r   zalternative must be 'less'...matchz	ekki-ekki)
r.   r   r   r,   linspacerandomrandr   r	   
ValueError)r0   rF   r   r_expr   r   nstat1p1stat2p2stat3p3s                r4   test_spearmanr_alternative#TestCorr.test_spearmanr_alternative  sX   00 #%!,-)<!,-&9!?+ KK1a EBIINN1%%$$Q*	$$QyA	F#$$Qv>	AQJ'&&&&&&]]:-LMQ{; NMMs   %F
Fppc64lezfails/crashes on ppc64ler~   c                 	   [         R                  " [        R                  " / SQ5      5      n[         R                  " [        R                  " / SQ5      5      nSS/n[        [        R                  " [
        R                  " X5      5      U5        [         R                  " [        R                  " S5      5      n[         R                  " [        R                  " S5      5      nSS/n[        [        R                  " [
        R                  " X5      5      U5        [        [        [
        R                  XSS9  US	   nUS
   US	'   XBS
'   SS/n[        [        R                  " [
        R                  " X5      5      U5        US   nUS   US'   XBS'   SS/n[        [        R                  " [
        R                  " X5      5      U5        [         R                  " [        R                  " S5      5      n[         R                  " [        R                  " S5      S S S2   5      nSS/n[        [        R                  " [
        R                  " X5      5      U5        US	   nUS
   US	'   XBS
'   SS/n[        [        R                  " [
        R                  " X5      5      U5        US   nUS   US'   XBS'   SS/n[        [        R                  " [
        R                  " X5      5      U5        [         R                  " SSSS[        R                  /5      n[         R                  " SSSS[        R                  /5      n[         R                  " SSSS[        R                  /5      n[        [        R                  " [
        R                  " X5      5      SS /5        [        [        R                  " [
        R                  " XS!S95      SS"/5        [        [        R                  " [
        R                  " X5      5      S#S$/5        [         R                  " S%S%S%S%S&S&S%S'S%S&SSS%S(S%S&S%S%S%S%S%[        R                  /5      n[         R                  " S%S)S)S)SS*S'S%S+S,S-S)S)S)S)S)S)S%SS.[        R                  S%/5      n[
        R                  " X5      n[        [        R                  " U5      S/S0/5        S1n[        XgS2S39  g )4N)r   rP   r   rh   )rR   r   r      r   r   r]   gxO~>bananamethodr   rP   g?>?gaV>r   rh   g}'}'?go&5>rv   r   g?>g}'}'r   r   r   r   r   g     :@gQgףp=
@r   r   g1UU?      ?
asymptoticglgN?g~ȋgQM?r   r^   rM   r`   rb   !   C         -   gXJĿgvPwTk?r   Tr   )rj   r-   r,   r   r   r.   
kendalltaur   assert_raisesr  r   r   r   )r0   rF   r   expectedbzresultr  s           r4   test_kendalltauTestCorr.test_kendalltau1  s    HHRXXl+,HHRXXm,- :BJJv'8'8'>?J HHRYYr]#HHRYYr]# +,BJJv'8'8'>?J 	j&"3"3Q(K aDt!! '(:;BJJv'8'8'>?J aDt!! '(:;BJJv'8'8'>?J HHRYYr]#HHRYYr]4R4() ,-BJJv'8'8'>?J aDt!! ();<BJJv'8'8'>?J aDt!! ();<BJJv'8'8'>?J NND$dBFF;<NND$tRVV<=NND$dBFF;<BJJv'8'8'>?'.	0BJJv'8'8l'ST'3	5BJJv'8'8'>?'3	5 NNAq!QB2q"Ar1b!Q1aI JNNAr2r2r2q"bBBB2r2661N O""1(BJJv.Y0GH /
F48r7   c                 >   [         R                  " S[        S9n[        R                  " US5      n[         R                  " S[        S9n[         R
                  " USS  US S 45      n[        [         R                  " [        R                  " X5      S   5      5        g )Nr   r   i    r   )
r,   r   floatrj   masked_greaterconcatenater   isfiniter.   r*  )r0   rF   r   s      r4   test_kendalltau_largeTestCorr.test_kendalltau_large  sv     IId%(a&IId%(NNAdeHah/0F--a3A678r7   c                 ^   [         [         SSSSSSSSSSS// SQSSSS	S
SSSS[         SS[         /[         S	SSS[         S	SSSSSS//n[        R                  " U5      R                  n[        R
                  " U5      n[        US   SS5        [        US   R                  S5      / SQ5        g )NrR   rP      r   r   r   rQ   rR   rQ   r   rQ   rP   r   rQ   r   r   rP   rQ   r   rQ   rh      r   r     zglobal p-value (indep)gMb?zseasonal p-value)g
ףp=
?g(\?皙?g{Gz?)r   rj   r   Tr.   kendalltau_seasonalr   round)r0   rF   outputs      r4   test_kendalltau_seasonal!TestCorr.test_kendalltau_seasonal  s    31b"aAq!Q:4Aq"aAq#q!S91b!RaAq!Q:< NN1++A.F#;<eQGF#56<<Q?1	3r7   r"  )exactr$  r
  	two-sidedr  r  c                    [         R                  R                  S5        Sn[         R                  R                  U5      n[         R                  R                  U5      n[         R                  R                  U5      S:  n[        R
                  " XFS9n[        R
                  " XVS9n[        R                  " XxXS9n	UR                  5       n
UR                  5       n[        R                  " XXS9n[         R                  XF'   [         R                  XV'   [        R                  " XEUSUS9n[        X5        [        X5        g )Nr   r)   r   rf   )r"  r
  omit)r"  
nan_policyr
  )r,   r  seedr  rj   r-   r.   r*  
compressedr   r   r   )r0   r"  r
  r  rF   r   rg   x_maskedy_masked
res_maskedx_compressedy_compressedres_compressedres_nans                 r4   test_kendalltau_mstats_vs_stats(TestCorr.test_kendalltau_mstats_vs_stats  s     			qIINN1IINN1yy~~a 3&88A)88A)&&vH
  **,**,))vP &&&&""FM 	
30r7   c           	          SSSSSSSSS.nUR                  5        H-  u  p#[        R                  " US   US	   5      n[        XC5        M/     g )
Ng遣m?g:4W?g,
:H r   gK?g(6?))rd   iY	  )e   i	  )   r   )   r   )rZ  r   )   r   )   iE&  )   i%  r   r   itemsr   _kendall_p_exactr   r0   expectationsncr,  r  s        r4   test_kendall_p_exact_medium$TestCorr.test_kendall_p_exact_medium  s\     &<%;"8"%"8"%%;%;= )..0LB00A1>C. 1r7   c                     SSSSSSS.nUR                  5        H-  u  p#[        R                  " US   US	   5      n[        XC5        M/     g )
NgE?gU`Ux<?gve?gZ?g=?gG?))i  i5  )i  i\  )i   idd )i!  ih )i@  i 	 )iA  i 	 r   r   r^  ra  s        r4   test_kendall_p_exact_large#TestCorr.test_kendall_p_exact_large  sW     '=&<'='=(>(>@ )..0LB00A1>C. 1r7   c                 D   / SQn/ SPSPSPSPSPSPSPS	PS
PSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSP[         R                  Pn[        [        R                  " X5      S   S S!5        [        R                  " X5      nS"n[        X4S#S$9  g )%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   rv   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        r4   test_pointbiserialTestCorr.test_pointbiserial  s   
5BT B4 B Bt BS B# Bs BC B Bc B3 B BBBBB!$B&)B+.B03B58B:=B?BBDGBILBBBBB!$B&)B+.B03B58B:<&&B 	F11!7:GQG ##A).
C5r7   r8   N)r9   r:   r;   r<   r   r   r  r  r   r   r   platformmachiner0  slowr8  rD  parametrizerU  rd  xslowrg  r   rl  r=   r8   r7   r4   r   r      s!   &>$6L+<Z [[((*i79  ;T9;T9l [[((*i79  ;[[9 ;9
3 [[X'>?[[],LM1 N @1:/ [[/ / 6	 6r7   r   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestTrimmingi  c                 R   [         R                  " S5      n[        [        R                  " U5      / SQ5        [         R                  " S5      n[        [        R                  " US5      / SQ5        [         R                  " S5      n[        [        R                  " USSS9/ SQ5        [         R                  " S5      n[        [        R                  " USS	S
9/ SQ5        [         R                  " S5      n[
        =USS/'   US'   [        [        R                  " US5      / SQ5        [         R                  " S5      R                  SS5      nS/S-  S/S-  -   S/S-  -   n[        R                  " USS	S S9n[        UR                  R                  5       U5        [        R                  " USS	SS9n[        UR                  R                  5       U5        [        R                  " USS	SS9n[        UR                  R                  R                  5       U5        [         R                  " S5      R                  SS5      n[
        US'   S/S-  S/S-  -   S/S-  -   n[        R                  " USS	S S9n[        UR                  R                  5       U5        [        R                  " USS	SS9n[        UR                  R                  5       U5        [        R                  " UR                  SS	SS9n[        UR                  R                  R                  5       U5        g )Nr]   
r   r   rP   rQ   rR   r   rh   r   r   r   )rP   r   )
NNrP   rQ   rR   r   rh   r   r   NFFlimits	inclusive)
NNNrQ   rR   r   rh   r   NN)r  r?  T)ry  relative)
Nr   rP   rQ   rR   r   rh   r   NN   r   rv   r   )NNrP   rQ   rR   Nrh   r   r   NNNrd   r   ra   r^   )r{  r*   r   r  )
rj   r   r
   r.   trimr   reshape_maskravelr@  )r0   rX   rF   r,  trimxs        r4   	test_trimTestTrimming.test_trim  s`   IIbMV[[^%:;IIbMV[[5)+IJIIbMV[[%-H9	;IIbMV[[)TB3	5 IIbM!!1R&	AaDV[[E*K	M IIcN""2r*3r6QCF?aSV+Ay4dCU[[&&((3Ay4a@U[[&&((3Ay4bAU[[]]((*H5 IIcN""2r*!3r6QCF?aSV+Ay4dCU[[&&((3Ay4a@U[[&&((3ACCTCUWW]]((*H5r7   c                    [         R                  " S5      n[        [        R                  " U5      R                  5       S5        [        [        R                  " USS9R                  5       S5        [        USS& [        R                  " U5      n[        UR                  5       S5        [        UR                  S	/S
-  S/S-  -   S	/S-  -   S/S-  -   S	/S
-  -   5        [        Ul        SUl
        [        [        R                  " U5      R                  5       S5        [        [        R                  " U5      R                  5       S5        g )Nrd   rM   r   )tailrb   r)   ra   0   r   r;  r   "   r^      )r]   r]   )rj   r   r
   r.   trimbothcounttrimtailr   r  r   shape)r0   rF   r  s      r4   test_trim_oldTestTrimming.test_trim_old  s    IIcNV__Q'--/4V__QC0668"="R"U[[]B'U[[1#b&A3r6/QCF":aSV"Cqc"f"LMV__Q'--/4V__Q'--/4r7   c                     [         R                  " S5      n[        R                  " USSS9n[         R                  " / SQ/ SQS9n[        X#5        [        UR                  UR                  5        g )Nr]   )g333333?gQ?rw  rx  rv  )
r   r   r   r   r   r   r   r   r   r   rf   )rj   r   r.   trimrr-   r
   rg   )r0   rF   r/  r,  s       r4   
test_trimrTestTrimming.test_trimr%  sP    IIbMaO88:!?AV&V[[(--0r7   c                     [         R                  " / SQ5      n[        [        R                  " US5      SS5        [        [        R                  " US5      SS5        [        [        R                  " US5      SS5        g )NM   W   X   r                  i  i(  i+  i2  ix  i  i  i  i  i3
  r  iW  r   )r  r  r?  r?  i  )rj   r-   r   r.   trimmed_meanr0   r1   s     r4   test_trimmedmeanTestTrimming.test_trimmedmean-  sb    xx @ AF//S93BF//Y?aHF//Y?aHr7   c                    [         R                  R                  S5      nUR                  SS9n[         R                  " U5      n[        R
                  " U/ SQS9n[        [        R                  " US5      UR                  5       5        g )Nl   l{f0j r^   sizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rf   r  )
r,   r  default_rngsortrj   r-   r   r.   trimmed_varvarr0   rng	data_origr1   s       r4   test_trimmedvarTestTrimming.test_trimmedvar4  k     ii##$78JJBJ'	wwy!xx $B C**9c:DHHJGr7   c                    [         R                  R                  S5      nUR                  SS9n[         R                  " U5      n[        R
                  " U/ SQS9n[        [        R                  " US5      UR                  5       5        g )Nl   /{Gzi r^   r  r  rf   r  )
r,   r  r  r  rj   r-   r   r.   trimmed_stdstdr  s       r4   test_trimmedstdTestTrimming.test_trimmedstd>  r  r7   c                     [         R                  " / SQ5      n[        [        R                  " US5      SS5        [        [        R                  " US5      SS5        g )Nr  r  g>L@r   r?  )rj   r-   r   r.   trimmed_stder  s     r4   test_trimmed_stdeTestTrimming.test_trimmed_stdeH  sI    xx @ AF//Y?1MF//S98QGr7   c                 p   [         R                  " / SQ5      n[        [        R                  " US5      R                  SS9SS5        [        [        R                  " USS5      R                  SS9SS5        [        US'   [        R                  " U5      n[        UR                  UR                  5        g )	Nr  r  r   ddofg@rw  gffff7@r   )	rj   r-   r   r.   	winsorizer  r   r
   rg   )r0   r1   
winsorizeds      r4   test_winsorizationTestTrimming.test_winsorizationN  s    xx @ AF,,T)<@@a@H#Q	(T9];??Q?GQ	 Q%%d+
Z__dii0r7   c           
      r   [         R                  " [        R                  [        R                  SSS/5      n[	        [
        [        R                  USSS9  [        [        R                  " US5      [         R                  " / SQ5      5        [        [        R                  " US	5      [         R                  " [        R                  [        R                  [        R                  [        R                  [        R                  /5      5        [        [        R                  " USS
S9[         R                  " [        R                  [        R                  SSS/5      5        [        [        R                  " US	S
S9[         R                  " [        R                  [        R                  SSS/5      5        g )Nr   r   rP   )皙?r  raise)rK  )皙?r  r   )rj  rj  rJ  )	rj   r-   r,   r   r+  r  r.   r  r
   r  s     r4   test_winsorization_nan#TestTrimming.test_winsorization_nanZ  s   xxAq12j&"2"2D,!(	* 	V%%dJ7XXo.	0V%%dJ7XXrvvrvvrvvrvvrvvFG	IV%%dJ6JXXrvvrvvq!Q78	:V%%dJ6JXXrvvrvvq!Q78	:r7   r8   N)r9   r:   r;   r<   r  r  r  r  r  r  r  r  r  r=   r8   r7   r4   rt  rt    s4    #6J51IHHH
1:r7   rt  c                   *   \ rS rSr/ SQr\R                  " SSSSS\R                  /5      r	\R                  " \R                  " / SQ/ S	Q/ S
Q/ SQ/ SQ/5      \R                  " / SQ/ SQ/ SQ/ SQ/ SQ/\S9S9rSSS.S jrS rS rS rS rS rSrg)TestMomentsii  rO   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   rf   Nr  r@   c                    [         R                  " U5      nUb  [         R                  " X#5      n[        X5        Uc  UR                  nUR                  U:X  d   eg N)r,   r   broadcast_tor   r@   )r0   actualexpectr  r@   s        r4   _assert_equalTestMoments._assert_equal  sL    F#__V3F6*=LLE||u$$$r7   c                 L   [         R                  " U R                  S5      n[        USS5        [         R                  " U R                  S5      n[        US5        [         R                  " U R                  S5      n[        US5        [         R                  " U R                  S5      n[        US5        [         R                  " U R                  / S	Q5      n[	        U/ S
Q5        [         R                  " U R                  S5      n[	        US5        [        [        [         R                  U R                  S5        [         R                  " U R                  / SQ5      n[	        U/ S
Q5        [         R                  " / 5      nU R                  U[        R                  [        R                  S9  [         R                  " [        R                  " / [        R                  S95      nU R                  U[        R                  [        R                  S9  [         R                  " [        R                  " S5      SS9nU R                  U/ S[        R                  S9  [         R                  " / /SS9nU R                  U[        R                  S[        R                  S9  [         R                  " / /SS/SS9nU R                  U/ SS9  [        R                  " S5      n[        R                  US'   [        [         R                  " US5      [         R"                  5        g )Nr   r   r]   rP         ?rQ   rR        @rO   )r   r  r   r  r   r   )r   rP   rQ   r#   r   )r   r   r   r   )r   r  )r   )momentr*   )rP   r   )r  g      $@r   )r.   r  testcaser   r   r+  r  r  r,   r   float64r-   float32zerosr   r
   rj   r   )r0   r   rF   s      r4   test_momentTestMoments.test_moment  s   MM$--*Ac"%MM$--*Ad#MM$--*Ac"MM$--*Af% MM$--6/0 MM$---3j&--DMM$--)9:/0 MM"1bffBJJ7MM"((2RZZ891bffBJJ7MM"((6*31bBJJ?MM2$Q'1bffD

CMM2$1vA61b/IIcNvv!V]]1a("))4r7   c                 ^    [         R                  " U R                  5      n[        USS5        g )N%?r]   )r.   	variationr  r   )r0   r   s     r4   test_variationTestMoments.test_variation  s#    T]]+A.3r7   c                 v    [         R                  " / SQ5      n[        R                  " USS9n[	        US5        g )N)r   rP   rQ   rR   r   r   r  g<<'?)r,   r-   r.   r  r   )r0   rX   r   s      r4   test_variation_ddofTestMoments.test_variation_ddof  s/     HH_%QQ'A12r7   c           	      t   [         R                  " U R                  5      n[        USS5        [         R                  " U R                  SS9n[        USS5        [         R                  " U R                  5      n[        USS5        [
        R                  " [        R                  " / SQ5      [        R                  " / SQ[        S	9S
9n[        [         R                  " U R                  S5      U5        [        U R                  5       H'  u  p4[        [         R                  " U5      X#   5        M)     [
        R                  " [        R                  " / SQ5      [        R                  " / SQ[        S	9S
9n[        [         R                  " U R                  SSS9U5        [        U R                  5       H&  u  p4[        [         R                  " USS9XS   5        M(     [        [         R                  " U R                  SS S 24   5      [        R                  " U R                  SS S 24   5      5        g )Ng7l*ҿr]   r   biasg2۠ۿr   )gҽr?r   g>HÛe?r   gIǮFFFTFr   rf   r   )g`٨?r   gn?r   g0FrP   )r.   skewtestmathworksr   r  rj   r-   r,   boolr   testcase_2d	enumerater   r0   r   
correct_2dirowcorrect_2d_bias_correcteds         r4   test_skewnessTestMoments.test_skewness  s   KK**+A/3KK**2A04KK&Ac"% XXHH / 0<DI


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

4#3#3AqD#9:	<r7   c           	      x   [         R                  " U R                  SSSS9n[        USS5        [         R                  " U R                  SSS9n[        USS5        [         R                  " U R                  SS5      n[        US5        [
        R                  " [        R                  " / SQ5      [        R                  " / S	Q[        S
9S9n[        [         R                  " U R                  S5      U5        [        U R                  5       H'  u  p4[        [         R                  " U5      X#   5        M)     [
        R                  " [        R                  " / SQ5      [        R                  " / S	Q[        S
9S9n[        [         R                  " U R                  SSS9U5        [        U R                  5       H&  u  p4[        [         R                  " USS9XS   5        M(     [        [         R                  " U R                  SS S 24   5      [        R                  " U R                  SS S 24   5      SS9  g )Nr   r   )fisherr  gO߻S@r]   gx|N@g=
ףp=?)            g'@=r   gt
Qr  r   rf   )r  r  g?<r   g`@7Fr  rP   rR   )nulp)r.   kurtosisr  r   r  rj   r-   r,   r  r   r  r  r   r   r  s         r4   test_kurtosisTestMoments.test_kurtosis  s    OOD..!!DA3
 OOD..qqAA0"5OODMM1a0At$ XXbhh (8 9#%88 -4;?$AB
 	"&//$2B2BA"F",	. 0 01FA 4jmD 2 %'HHHHIJ<DI%K! 	"&//$2B2BA7<#>";	=   0 01FA% @ 9 <> 2
 	'vt7G7G17M'N',~~d6F6Fq!t6L'M,-	/r7   r8   )r9   r:   r;   r<   r  rj   r   r,   r   r  r-   r  r  r  r  r  r  r  r  r=   r8   r7   r4   r  r  i  s     HNNE6667$&FF$, -M((
NNNNM	O 	P
 XX86:59	; CG	H
IK 6: %#5J43<B%/r7   r  c                        \ rS rSrS rS rSrg)TestModei  c                    / SQn[         R                  " US5      n[         R                  " / SQ5      n[         R                  " US5      n[        R                  " [        R                  " U5      S:  U5      n[        R                  " US:  U5      n[        R                  " US:  U5      n[        R                  " [        R                  " U5      S:  U5      n[        [        R                  " US S9S5        [        [        R                  " USS9S5        [        [        R                  " US S9S	5        [        [        R                  " US S9S5        [        [        R                  " US S9S	5        [        [        R                  " US S9S
5        [        [        R                  " US S9S5        [        [        R                  " USS9/ SQ// SQ/45        [        [        R                  " USS9/ SQ// SQ/45        [        [        R                  " USS9S/S/S//S/S/S//45        [        [        R                  " USS9S/S/S//S/S/S//45        [        [        R                  " USS9SS//SS//45        [        [        R                  " USS9S/S/S//S/S/S//45        [        R                  " US S9n	Sn
[        XSS9  g )N)r   r   r   r   r   r   rP   rQ   rQ   rQ   rQ   rR   r   rh   r   )rQ   r   r   )rQ   rP   rP   r   )rQ   rR   r   )r   rQ   )r   r   )rP   r   )r   r   r   r   r   r   rv   rQ   r   r   )moder  Tr   )	r,   r~  r-   rj   masked_wherer
   r.   r  r   )r0   a1a2a3a4ma1ma2ma3ma4a1_resr  s              r4   	test_modeTestMode.test_mode  sC   ,ZZE"XXm$ZZE"oobhhrlQ.3oob1fb)oob1fb)oobhhrlQ.3V[[$/7V[[!,e4V[[40%8V[[$/7V[[40%8V[[$/7V[[40%8V[[!,}{m.LMV[[1-}/MNV[["-!aS!QC}/MNV[[2.1#qc1#!aS!0NOV[[1-!A1Q%/ABV[[2.1#qc1#!aS!0NORd+ '
F48r7   c                     [         R                  " S5      nUS S2S S 24==   S-  ss'   US S 2S S24==   S-  ss'   UR                  5       n[        R                  " US 5        [        X5        g )N)rd   rd   r)   r   )r,   r  copyr.   r  r
   )r0   imcps      r4   test_mode_modifies_input!TestMode.test_mode_modifies_input!  s]     XXj!
3B36
a

1crc6
a
WWYBRr7   r8   N)r9   r:   r;   r<   r	  r  r=   r8   r7   r4   r  r    s    9:r7   r  c                   &    \ rS rSrS rS rS rSrg)TestPercentilei,  c                 :    / SQU l         / SQU l        / SQU l        g )N)rQ   rR   r   r]   rh   )rQ   r   r   rR   rP   r   )r!   rR   r   r]   r  r  r  r   r   r  r  r0   s    r4   setup_methodTestPercentile.setup_method-  s    *,1r7   c                     [         R                  " S5      S-  n[        [        R                  " US5      S5        [        [        R                  " US5      S5        [        [        R                  " US5      S5        g )	Nr   r   r   r   rd   r   r)   g      ?)r,   r   r
   r.   scoreatpercentiler   s     r4   test_percentileTestPercentile.test_percentile2  sY    IIaL3V--a3R8V--a5s;V--a4d;r7   c                     [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        [        R                  " US5      / SQ5        g )Nr   r   r   )rR   rR   rQ   r)   )rj   r-   r
   r.   r  r   s     r4   test_2DTestPercentile.test_2D8  s<    HHi	! "
 	V--a4i@r7   r  N)r9   r:   r;   r<   r  r  r"  r=   r8   r7   r4   r  r  ,  s    2
<Ar7   r  c                   l    \ rS rSrSr\R                  " SSSS\R                  /5      r	S r
S rS	 rS
rg)TestVariabilityiA  zLComparison numbers are found using R v.1.5.1
note that length(testcase) = 4
r   rP   rQ   rR   c                 T   [         R                  " U R                  5      n[        US5        U R                  R	                  5       n[        [         R                  " U R                  SS9[        R                  " X"S-
  -  5      -  [         R                  " U R                  SS95        g )Ng㝎?r   r  rP   )r.   semr  r   r  r   r,   r   )r0   r   r  s      r4   test_semTestVariability.test_semH  so    JJt}}%A|,MM!

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

4==q9	;r7   c                     [         R                  " U R                  U R                  5      n/ SQn[        UUR                  UR
                  S:H     SS9  g )N)OT\w%ܿr  OT\w?Fr|  decimal)r.   zmapr  r   r1   rg   )r0   r   desired_unmaskedvalss      r4   	test_zmapTestVariability.test_zmapP  sG     KKt}}5!D!"6"#&&5"92	Gr7   c                     [         R                  " U R                  5      n[        R                  " SSSS[
        R                  /5      n[        X!SS9  g )Nr+  r,  r  r-  r|  r.  )r.   zscorer  rj   r   r,   r   r   )r0   r   r2   s      r4   test_zscoreTestVariability.test_zscoreY  sF     MM$--(.."24E"2ORVV"M NG3r7   r8   N)r9   r:   r;   r<   __doc__rj   r   r,   r   r  r(  r2  r6  r=   r8   r7   r4   r%  r%  A  s6     ~~q1Qrvv./H;G4r7   r%  c                   &    \ rS rSrS rS rS rSrg)TestMiscib  c                    S/S-  S/S-  -   S/S-  -   S/S-  -   S/S-  -   S	/S-  -   S/S/S-  -   S/S
-  -   S/S-  -   S	/S-  -   /nSS/-  SS/-  -   SS/-  -   SS/-  -   SS/-  -   SS/-  -   S/SS/-  -   S
S/-  -   SS/-  -   SS/-  -   /n[        [        R                  " [        R                  " U6 R
                  S
5      US
5        g )Nr   rh   r  r   r   r   rQ   rP   r]   rR   r;  g_v	@g1%?g"u?gZӼ?g!u @gq&@g;pΈ$@gTR'p@g9#?gHPx?gQI?)r   r,   rB  r.   obrientransformr@  )r0   argsr/  s      r4   test_obrientransformTestMisc.test_obrientransforme  s   Aqc"faSU"A3q5(!Q.tAv5QCE	1#a%A%rd2g-/VH*R[(F83AvhJ>q&zI!WI+U)AvhJ&q&z1!VH*<R[HJBHHV%;%;T%B%D%DaH"A	'r7   c                 2   [         [         SSSSSSSSSSS// SQSSSS	S
SSSS[         SS[         /[         S	SSS[         S	SSSSSS//n[        R                  " U5      R                  nUR                  u  p#pE[	        [
        R                  " [        R                  " X#5      S5      S5        [	        [
        R                  " [        R                  " X#S5      S5      S5        [	        [
        R                  " [        R                  " X#S5      S5      S5        g )NrR   rP   r;  r   r   r   rQ   r<  rh   r=  r   r  r>  )48E?gsA?g)g%䃞?g 	?l)rA  g46<?)	r   rj   r   r@  r   r,   rB  r.   ks_2samp)r0   rF   winterspringsummerfalls         r4   test_ks_2sampTestMisc.test_ks_2sampm  s    #q!RQ1aAq94Aq"aAq#q!S91b!RaAq!Q:< NN1)*&BHHV__V%DaH,	.BHHV__VS%I1M,	.BHHV__VS%I1M,	.r7   c                    / SQ/ SQ/ SQ4n[         R                  " U6 n[        US   SS5        [        US   SS	5        [        [        SS
SSSSSSS
SS// SQSS
SS	SSSSS[        SS[        /[        S	SSS[        S	SSS
SSS//n[        R
                  " U5      n[         R                  " U6 n[        US   SS5        [        US   SS5        Sn[        X$SS9  g )N)
g      "@      #@      @      @rL  rN         @r   r   r   )
r   r   r   rN  rM  rO  r   r   r   r   )
r   rO  r#   r   r   r   r   r#   r   r!   r   g:pΈ$@rR   r   g(QGu?rh   rP   r;  r   r   rQ   r<  r=  r   r  r>  gr @g-C6?	statisticr   Tr   )r.   friedmanchisquarer   r   rj   r   r   )r0   r=  r/  rF   r  s        r4   test_friedmanchisqTestMisc.test_friedmanchisq|  s    999; ))40F1Iw2F1Ix3#q!RQ1aAq94Aq"aAqa371b!RQ1aAq9; NN1))1-F1Ivq1F1Ivq1 -
F48r7   r8   N)r9   r:   r;   r<   r>  rI  rS  r=   r8   r7   r4   r:  r:  b  s    '.9r7   r:  c                  ,   [         R                  " SSS5      n S[         R                  " SSS5      -  S-   nU[         R                  " [         R                  " SSS5      5      -  n[        R                  " X5      n[
        R                  n[        [        X#5      5        Sn[        X$SS9  S	[        U5      ;   d   e[        UR                  S
5        [        UR                  S5        [        UR                  S5        [        UR                  S5        g )Nr   rd   r?  r]   r^   )slope	interceptrvaluer   stderrTr   intercept_stderrg5E%?g +l$@g4_Qc?g8?)r,   r  sinr.   
linregressr   LinregressResultr   
isinstancer   dirr   rV  rW  rY  rZ  )rF   r   r/  lrr  s        r4   test_regress_simplera    s    
AsC Abkk!S#&&+AAr3'	((Aq$F 
	#	#BJv"#EJt4V,,, &9:((*<=';<//1DEr7   c                      [         R                  " S5      n [         R                  R                  S5      nSn[        [        US9   [
        R                  " X5        S S S 5        g ! , (       d  f       g = f)Nr]   zBCannot calculate a linear regression if all x values are identicalr  )r,   r  r  r+  r  r.   r\  )rF   r   msgs      r4   test_linregress_identical_xrd    sL    
A
		A
NC	z	-! 
.	-	-s   A&&
A4c                   ,    \ rS rSrS rS rS rS rSrg)TestTheilslopesi  c                    [         R                  " / SQ5      u  pp4[        US5        [        US5        [         R                  " / SQSS9u  pp4[        US5        [        US5        [        R                  R                  / SQ/ SQS9n[         R                  " U5      u  pp4[        US	5        [        US
5        [         R                  " USS9u  pp4[        US	5        [        US5        / SQn/ SQn[         R                  " XVS5      u  pp4[        US5        [        US5        [        USSS9  [        USSS9  [         R                  " XVSSS9u  pp4[        US5        [        US5        [        USSS9  [        USSS9  g )N)r   r   r   r   jointr!  r   )r   r   rd   r   )FFTFrf   ri   gUUUUUU?)r   rP   rQ   rR   r]   r|  r=  )r         r^   r)  7   N   gQ?rR   r#   gQ@rP   r.  gGz@r   )r.   theilslopesr   r,   rj   r-   )r0   rV  rW  lowerupperr   rF   s          r4   test_theilslopes TestTheilslopes.test_theilslopes  sc   )/););I)F&%E3'Is+)/););ICJ*L&%E3'Is+ EEKK-HKI)/););A)>&%E4(It,)/););ACJ*L&%E4(Is+ %')/););A$)G&%E1%Is+E43E43)/););A$CJ*L&%E1%Is+E43E43r7   c                 
   Sn[         R                  " [        US9   [        R                  " SS/SS/5      n[
        R                  " [
        R                  " U5      5      (       d   e S S S 5        [        5        nUR                  [        S5        [        R                  " / SQ/ SQ5      n[        USS[
        R                  [
        R                  45        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)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.   rm  r,   allisnanr   filterr   r   )r0   rc  r  sups       r4   test_theilslopes_warnings)TestTheilslopes.test_theilslopes_warnings  s    V\\.4$$aVaV4C66"((3-(((( 5  CJJ~'EF$$Y	:CC!Q!78 !  54 ! s   AC#<AC4#
C14
Dc                    / SQn/ SQn[         R                  " X5      u  p4pV[         R                  " X5      n[        X7R                  5        [        XGR                  5        [        XWR
                  5        [        XgR                  5        g)z^
Simple test to ensure tuple backwards-compatibility of the returned
TheilslopesResult object
r   rP   rR   rR   rh   r   N)r.   rm  r
   rV  rW  	low_slope
high_slope)r0   r   rF   rV  rW  r~  r  r/  s           r4   'test_theilslopes_namedtuple_consistency7TestTheilslopes.test_theilslopes_namedtuple_consistency  sk    
 282D2DQ2J/)##A) 	ULL)Y 0 01Y 0 01Z!2!23r7   c                    [         R                  R                  S5      nUR                  SSS[         R                  S9n[
        R                  " X"5      n[         R                  R                  UR                  S5        g )Nl   U5<H r      r]   )r  r@   r   )
r,   r  r  integersuint8r   rm  testingr   rV  )r0   r  r   r  s       r4   test_gh19678_uint8"TestTheilslopes.test_gh19678_uint8  s[     ii##$45LLCbL9%


""399a0r7   r8   N)	r9   r:   r;   r<   rp  ry  r  r  r=   r8   r7   r4   rf  rf    s    $4N	94 1r7   rf  c                  "   S[         R                  " S5      -  S-   n [        [        R                  " U 5      S5        [        [        R                  " U SS9S5        S[         R                  " S5      -  nSU-  S-
  n [        [        R                  " X5      S	5        [        [        R                  " XSS9S	5        S
U S S& [        [        R                  " X5      S	5        [         R                  " S5      nSSU-  -   [
        R                  R                  SSS9-   n [
        R                  " X5      u  p#    n[        R                  " X5      u  pV[        XRSS9  [        XcSS9  [        R                  " XSS9u  pV[        XRSS9  [        XcSS9  g )NrP   r]   r   )r   r   separater!  r   r!   )rM  r  r3  rR   gffffffr      r  random_stater  rA   )
r,   r   r
   r.   siegelslopesr   normrvsr\  r   )r   rF   	slope_olsintercept_ols_rV  rW  s          r4   test_siegelslopesr    sM   	BIIbMCA$$Q'4$$Qz:JG	BIIbMA	AA$$Q*K8$$Q*={K AbqE$$Q*K8 			"As1uuzz~~2C~@@A(-(8(8(>%IaA**10EE3/I37**1
CEE3/I37r7   c                      / SQn / SQn[         R                  " X5      u  p#[         R                  " X5      n[        X$R                  5        [        X4R                  5        g)z`
Simple test to ensure tuple backwards-compatibility of the returned
SiegelslopesResult object.
r|  r}  N)r.   r  r
   rV  rW  )r   rF   rV  rW  r/  s        r4   (test_siegelslopes_namedtuple_consistencyr    sM    
 	AA**10E  &F %,,-r7   c            
         [         R                  R                  S5      n U R                  SS9n[        R                  " U5      u  p#S n[        S5       H2  n[        [         R                  " U" US S 2U4   5      5      X%   5        M4     [         R                  " [        UR                  S   5       Vs/ s H  oT" US S 2U4   5      PM     sn5      n[        [         R                  " U5      U5        g s  snf )Nl   ,'  )rd   rR   r  c                    [        U 5      n[        R                  " U5      nX S S 2[        R                  4   -
  nX"S S 2[        R                  4   -
  n[        R                  " [        R
                  " X4[        S9SS9nX5   XE   -  $ )Nr   r   )k)lenr,   r   newaxistriuonesr  )yir  rF   dydxrg   s         r4   dijk&test_sen_seasonal_slopes.<locals>.dijk0  sn    GIIaLQ

]##1bjj=!!wwrwwvT2a8x  r7   rR   r   )
r,   r  r  r.   sen_seasonal_slopesr  r   medianr6  r  )r  rF   intra_slopeinter_sloper  r  
all_slopess          r4   test_sen_seasonal_slopesr  *  s    
))

 3
4C


!A%99!<K! 1X		$qAw-0+.A  aggaj8I J8I1a1g8I JKJBIIj);7 !Ks   5C5c                      [         R                  " [        R                  " S5      SS5      n [	        U R
                  [        R                  " / SQ5      5        g )NrQ   r   )rT   r   r#  )r.   plotting_positionsr,   r   r   r1   r-   )poss    r4   test_plotting_positionsr  ?  s6    

#
#BIIaL!Q
7Cchh1B(CDr7   c                       \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	S
S/5      \R                  R                  SSS/5      S 5       5       rS rSrg)TestNormalitytestsiE  c                    [         R                  " S5      S-  n[        [        R                  " U5      [
        R                  " U5      5        [        [        R                  " U5      [
        R                  " U5      5        [        [        R                  " U5      [
        R                  " U5      5        [
        R                  [
        R                  [
        R                  /n[        R                  [        R                  [        R                  /n/ SQn[        X#5       H  u  pE[        R                  " [        [        S9   U" U5      n[         R                  " UR                  5      (       d   e[         R                  " UR                  5      (       d   e S S S 5        [!        ["        XQ5        M     g ! , (       d  f       N#= f)Nr  rv   r   r   rP   rQ   r  rv   r   r   rP   rQ   r  rv   r   r   rP   rQ   r  rv   r   r   rP   rQ   rP   rO   r  )r,   r-   r   r.   
normaltestr   skewtestkurtosistestzipr   rt  r   r   rv  rQ  r   r+  r  )r0   rF   funcsmfuncsfuncmfuncr  s          r4   test_vs_nonmasked$TestNormalitytests.test_vs_nonmaskedH  s/   HH+,a/!&"3"3A"6"'"2"21"5	7!&//!"4"'.."3	5!&"5"5a"8"'"4"4Q"7	9 !!5>>53E3EF##V__f6I6IJu-KD08MN1gxx....xx

++++ O *e/ .NNs   AF::
G	c                 h   [         R                  " S5      S-  n[        [        R                  " US S9[        R                  " U5      5        [        [        R
                  " US S9[        R
                  " U5      5        [        [        R                  " US S9[        R                  " U5      5        g )Nr  rP   r   )r,   r-   r   r.   r  r  r  r   s     r4   test_axis_None!TestNormalitytests.test_axis_None[  s{    HH&'*))!$79J9J19MN5vq7IJ++AD9++A.	0r7   c                 2   [         R                  " S5      S-  n[         R                  R                  [         R                  [         R                  US4   [         R                  SS/UR
                  -  S4   S9n[        [        R                  " U5      [        R                  " U5      5        [        [        R                  " U5      [        R                  " U5      5        [        [        R                  " U5      [        R                  " U5      5        g )Nr  rP   r]   TFrf   )r,   r-   rj   r_infr  r   r.   r  r   r  r  )r0   rF   xms      r4   test_maskedarray_input)TestNormalitytests.test_maskedarray_inputc  s    HH+,a/UU[[rvvq"}- eeD5'AFF*:D$@A  C))"-u/?/?/BC+U^^A->?++B/1C1CA1FGr7   c                 b   [         R                  " S5      S-  n[         R                  " U/S-  5      R                  n[        R
                  [        R                  [        R                  4 H?  nU" U5      nU" U5      n[        US   US   /S-  5        [        US   US   /S-  5        MA     g )Nr  rP   r   r   )	r,   r-   vstackr@  r.   r  r  r  r   )r0   rF   x_2dr  res_1dres_2ds         r4   test_nd_input TestNormalitytests.test_nd_inputl  s    HH+,a/yy!q!##&&9L9LMD!WF$ZFF1Iq	{Q7F1Iq	{Q7	 Nr7   c                 z    [         R                  " S5      S-  n[        R                  " U5      nSn[	        X#SS9  g Nr  rP   rP  Tr   )r,   r-   r.   r  r   r0   rF   r  r  s       r4   !test_normaltest_result_attributes4TestNormalitytests.test_normaltest_result_attributesu  s5    HH+,a/",
C5r7   c                 z    [         R                  " S5      S-  n[        R                  " U5      nSn[	        X#SS9  g r  )r,   r-   r.   r  r   r  s       r4   #test_kurtosistest_result_attributes6TestNormalitytests.test_kurtosistest_result_attributes{  s5    HH+,a/!!!$,
C5r7   c           
          / SQn[         R                  " [        U5       VVs/ s H  u  p#[         R                  " X25      PM     snn5      n[	        [
        R                  " U5      S   S:  S5        g s  snnf )N)
   r   :   r   r   )   r;  r   r      r   g{Gz?T)r,   hstackr  fullr
   r.   r  )r0   countsr  crF   s        r4   test_regression_9033'TestNormalitytests.test_regression_9033  s\     7II61BC1Brwwq}1BCDV((+A.5t< Ds   "A4
testr  r  r
  r  r  c                    [         R                  R                  SSSSS9n[        [         U5      n[        [        U5      nU" X2S9u  pgU" X2S9u  p[        XSS9  [        XSS9  [        R                  US	S
& [        R                  R                  U[        R                  " U5      S9nU" UR                  5       US9u  pgU" X2S9u  p[        XSS9  [        XSS9  g )Nr]   r(   r_   {   locscaler  r  r	  g-q=atolr   r   rf   )r   r  r  getattrr.   r   r,   r   rj   r   rv  rM  )
r0   r  r
  rF   
stats_testmstats_testz_exp_exr.  r   s
             r4   test_alternative#TestNormalitytests.test_alternative  s     JJNNr2CNHUD)
fd+;
16e,e, !AEEqrxx{3KH
16e,e,r7   c                 d   [         R                  R                  SSS9nSn[        R                  " [
        US9   [        R                  " USS9  S S S 5        [        R                  " [
        US9   [        R                  " USS9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)Nr^   r  r  z`alternative` must be...r  r   r	  )	r   r  r  r   r	   r  r.   r  r  )r0   rF   rc  s      r4   test_bad_alternative'TestNormalitytests.test_bad_alternative  sx    JJNNN5)]]:S1OOA73 2 ]]:S1w7 21 21 21s   B1B!
B!
B/r8   N)r9   r:   r;   r<   r  r  r  r  r  r  r  r   r   rq  r  r  r=   r8   r7   r4   r  r  E  su    0&0H866= [[Vj.%AB[[]VY,?@- A C-&8r7   r  c                       \ rS rSrS rSrg)TestFOnewayi  c                     [         R                  " SS/[         R                  S9n[         R                  " SS/[         R                  S9n[        R                  " X5      nSn[        X4SS9  g )	Ni  i  r   i  i  rP  Tr   )r,   r-   uint16r.   f_onewayr   )r0   rX   r-  r  r  s        r4   test_result_attributes"TestFOneway.test_result_attributes  sO    HHc3Zryy1HHc3Zryy1ooa#,
C5r7   r8   Nr9   r:   r;   r<   r  r=   r8   r7   r4   r  r    s    6r7   r  c                   p    \ rS rSr\R
                  " / SQ5      r\R
                  " / SQ5      rS rS r	Sr
g)TestMannwhitneyui  )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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                 r    [         R                  " U R                  U R                  5      nSn[	        XSS9  g )NrP  Tr   )r.   mannwhitneyurF   r   r   )r0   r  r  s      r4   r  'TestMannwhitneyu.test_result_attributes  s+    !!$&&$&&1,
C5r7   c                 (   [         R                  " U R                  U R                  5      n[        R                  " U R                  U R                  5      nUR
                  UR
                  :X  d   e[        UR                  UR                  5        g r  )r.   r  rF   r   r   rQ  r   r   )r0   res1res2s      r4   test_against_stats#TestMannwhitneyu.test_against_stats  s`     ""4664662!!$&&$&&1~~///T[[1r7   r8   N)r9   r:   r;   r<   r,   r-   rF   r   r  r   r=   r8   r7   r4   r  r    s4    
 * 	+A& 	 " 	#A6
2r7   r  c                       \ rS rSrS rSrg)TestKruskali  c                 X    / SQn/ SQn[         R                  " X5      nSn[        X4SS9  g )N)r   rQ   r   r   r   )rP   rR   rh   r   r]   rP  Tr   )r.   kruskalr   r  s        r4   r  "TestKruskal.test_result_attributes  s)    nnQ",
C5r7   r8   Nr  r8   r7   r4   r  r    s    6r7   r  c                       \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	S
S/5      S 5       rSrg)TestTtest_reli  c                    [         R                  R                  S5        [         R                  R                  SS5      / SQ-   n[        R
                  " US S 2S4   US S 2S4   5      n[        R
                  " US S 2S4   US S 2S4   5      n[        X#5        [        R
                  " US S 2S4   US S 2S4   S S9n[        R
                  " US S 2S4   US S 2S4   S S9n[        X#5        [        R
                  " US S 2S S24   US S 2SS 24   SS9n[        R
                  " US S 2S S24   US S 2SS 24   SS9n[        X#5        [        R
                  " US S 2S S24   US S 2SS 24   5      n[        X45        g )	N r^   rR   r   r   r   rP   r   r   r   rP   )r,   r  rL  randnr   	ttest_relr.   r   )r0   outcomer  r  res3s        r4   r  TestTtest_rel.test_vs_nonmasked  sS   
		w))//"a(<7 wq!t}gadm<1wq!t}=# wq!t}gadm$G1wq!t}4H#wq"1"u~wq!"u~AF2A212QG# 2A212?#r7   c                 t   [         R                  R                  S5        [        R                  " [         R                  R                  SS5      / SQ/ SQ/S9n[        5        nUR                  [        S5        US S 2S4   US S 2S	4   4[         R                  [         R                  /S
S/44 Hl  n[        R                  " U6 u  pE[        U[         R                  [         R                  45        [        U[         R                  [         R                  45        Mn     S S S 5        g ! , (       d  f       g = fNr
  rQ   rP   r!  rs  rf   %invalid value encountered in absoluter   r   r   r   )r,   r  rL  rj   r   r  r   rw  r   r   r.   r  r   r0   r  rx  pairtr   s         r4   test_fully_maskedTestTtest_rel.test_fully_masked  s    
		w//"))//!Q"7(19'=? CJJ~'NO!!Q$-A766266*S#J79''."1rvvrvv&67"1rvvrvv&67	9 !     #B=D))
D7c                     [         R                  R                  S5        [         R                  R                  SS5      / SQ-   n[        R
                  " US S 2S4   US S 2S4   5      nSn[        X#SS	9  g 
Nr
  r^   rR   r  r   r   rP  Tr   )r,   r  rL  r  r.   r  r   r0   r  r  r  s       r4   r  $TestTtest_rel.test_result_attributes  \    
		w))//"a(<7wq!t}gadm<,
C5r7   c           
         [        [        [        R                  [        R
                  " S5      [        R
                  " S5      5        [        R
                  " S5      n[        [        [        R                  UR                  SSS5      UR                  SSS5      SS9  [        [        [        R                  UR                  SSS5      UR                  SSS5      SS9  g )	Nr]   r  rS   rP   rQ   rR   r   r   )r+  r  r.   r  r,   r   r~  r   s     r4   test_invalid_input_size%TestTtest_rel.test_invalid_input_size  s    j&"2"2iimRYYr]	4IIbMj&"2"2ii1a(!))Aq!*<1	Fj&"2"2ii1a(!))Aq!*<1	Fr7   c                     [         R                  " / / 5      n[        [        R                  " [        R
                  " U5      5      5        g r  )r.   r  r   r,   ru  rv  r0   r  s     r4   
test_emptyTestTtest_rel.test_empty   -    B'rxx~&'r7   c                 H   [         R                  " / SQ/ SQ5      u  p[        [        R                  " U5      U4[        R
                  S45        [        5        nUR                  [        S5        [         R                  " / SQ/ SQ5      u  p[        U[        R                  " [        R                  [        R                  /5      5        [        U[        R                  " [        R                  [        R                  /5      5        S S S 5        g ! , (       d  f       g = f)Nrs  r!  r   r  )r.   	ttest_indr
   r,   absr  r   rw  r   r   r-   r   r0   r  r   rx  s       r4   test_zero_division TestTtest_rel.test_zero_division$  s    	95bffQi^bffa[1 CJJ~'NO##Iy9DAq"((BFFBFF+;"<=q"((BFFBFF+;"<=	 !  s   B0D
D!c                     Sn[         R                  " [        US9   [        R                  " / SQ/ SQSS9  S S S 5        g ! , (       d  f       g = fN4alternative must be 'less', 'greater' or 'two-sided'r  r   rP   rQ   )rR   r   rh   foor	  r   r	   r  r.   r(  r0   rc  s     r4   r  "TestTtest_rel.test_bad_alternative.  3    E]]:S1Y	uE 211   A  
Ar
  r  r  c                    [         R                  R                  SSSSS9n[         R                  R                  SSSSS9n[         R                  " X#US9u  pE[        R                  " X#US9u  pg[        XdS	S
9  [        XuS	S
9  [        R                  USS& [        R                  USS& [        R                  R                  U[        R                  " U5      S9n[        R                  R                  U[        R                  " U5      S9n[        R                  " X#US9u  pg[         R                  " UR                  5       UR                  5       US9u  pE[        XdS	S
9  [        XuS	S
9  g )Nr]   r   r(  *   r  r   rP   r	  rU   rA   r   rf   )r   r  r  r  r.   r   r,   r   rj   r   rv  rM  r0   r
  rF   r   t_exr  r  r   s           r4   r  TestTtest_rel.test_alternative3  s   JJNNr"NEJJNNqND__Q{C
+>e,e, &&!B&&!BEEqrxx{3EEqrxx{3+>__Q\\^Q\\^1<>
e,e,r7   r8   N)r9   r:   r;   r<   r  r  r  r   r$  r+  r  r   r   rq  r  r=   r8   r7   r4   r  r    sR    $*
86F(>F
 [[]VY,?@- A-r7   r  c                       \ rS rSrS rS rS rS rS rS r	\
R                  R                  SS	S
/5      S 5       rSrg)TestTtest_indiI  c                 F   [         R                  R                  S5        [         R                  R                  SS5      / SQ-   n[        R
                  " US S 2S4   US S 2S4   5      n[        R
                  " US S 2S4   US S 2S4   5      n[        X#5        [        R
                  " US S 2S4   US S 2S4   S S9n[        R
                  " US S 2S4   US S 2S4   S S9n[        X#5        [        R
                  " US S 2S S24   US S 2SS 24   SS9n[        R
                  " US S 2S S24   US S 2SS 24   SS9n[        X#5        [        R
                  " US S 2S S24   US S 2SS 24   5      n[        X45        [        R
                  " US S 2S4   US S 2S4   S	S
9n[        R
                  " US S 2S4   US S 2S4   S	S
9n[        XV5        [        R
                  " US S 2S4   US S 2S4   SS
9n[        R
                  " US S 2S4   US S 2S4   SS
9n[        XV5        g )Nr
  r^   rR   r  r   r   r   rP   T	equal_varF)r,   r  rL  r  r   r(  r.   r   )r0   r  r  r  r  res4res5s          r4   r  TestTtest_ind.test_vs_nonmaskedJ  s   
		w))//"a(<7 wq!t}gadm<1wq!t}=# wq!t}gadm$G1wq!t}4H#wq"1"u~wq!"u~AF2A212QG# 2A212?# wq!t}gadmtL1wq!t}M#wq!t}gadmuM1wq!t}N#r7   c                 t   [         R                  R                  S5        [        R                  " [         R                  R                  SS5      / SQ/ SQ/S9n[        5        nUR                  [        S5        US S 2S4   US S 2S	4   4[         R                  [         R                  /S
S/44 Hl  n[        R                  " U6 u  pE[        U[         R                  [         R                  45        [        U[         R                  [         R                  45        Mn     S S S 5        g ! , (       d  f       g = fr  )r,   r  rL  rj   r   r  r   rw  r   r   r.   r(  r   r  s         r4   r  TestTtest_ind.test_fully_maskedg  s    
		w//"))//!Q"7y)>TU CJJ~'NO!!Q$-A766266*S#J79''."1rvvrvv&67"1rvvrvv&67	9 !  r  c                     [         R                  R                  S5        [         R                  R                  SS5      / SQ-   n[        R
                  " US S 2S4   US S 2S4   5      nSn[        X#SS	9  g r  )r,   r  rL  r  r.   r(  r   r  s       r4   r  $TestTtest_ind.test_result_attributesr  r  r7   c                     [         R                  " / / 5      n[        [        R                  " [        R
                  " U5      5      5        g r  )r.   r(  r   r,   ru  rv  r#  s     r4   r$  TestTtest_ind.test_emptyz  r&  r7   c                    [         R                  " / SQ/ SQ5      u  p[        [        R                  " U5      U4[        R
                  S45        [        5        nUR                  [        S5        [         R                  " / SQ/ SQ5      u  p[        U[        R                  [        R                  45        [        U[        R                  [        R                  45        S S S 5        [         R                  " / SQ/ SQSS9u  p[        [        R                  " U5      U4[        R
                  S45        [        [         R                  " / SQ/ SQSS9[        R                  [        R                  45        g ! , (       d  f       N= f)Nrs  r!  r   r  Fr?  )r.   r(  r
   r,   r)  r  r   rw  r   r   r   r*  s       r4   r+   TestTtest_ind.test_zero_division~  s    	95bffQi^bffa[1 CJJ~'NO##Iy9DAq266266"23q266266"23	 ! 	9FbffQi^bffa[16++Iy6;=?Avvrvv>N	P ! s   BE;;
F	c                     Sn[         R                  " [        US9   [        R                  " / SQ/ SQSS9  S S S 5        g ! , (       d  f       g = fr.  r2  r3  s     r4   r  "TestTtest_ind.test_bad_alternative  r5  r6  r
  r  r  c                    [         R                  R                  SSSSS9n[         R                  R                  SSSSS9n[         R                  " X#US9u  pE[        R                  " X#US9u  pg[        XdSS	9  [        XuSS	9  [        R                  US
S& [        R                  USS& [        R                  R                  U[        R                  " U5      S9n[        R                  R                  U[        R                  " U5      S9n[         R                  " UR                  5       UR                  5       US9u  pE[        R                  " X#US9u  pg[        XdSS	9  [        XuSS	9  g )Nr]   rP   rd   r  r  r   r	  rU   rA   r   rb   rc   rf   )r   r  r  r(  r.   r   r,   r   rj   r   rv  rM  r9  s           r4   r  TestTtest_ind.test_alternative  s   JJNNr3NGJJNNq#NF__Q{C
+>e,e, &&!B66"REEqrxx{3EEqrxx{3__Q\\^Q\\^1<>
+>e,e,r7   r8   Nr9   r:   r;   r<   r  r  r  r$  r+  r  r   r   rq  r  r=   r8   r7   r4   r=  r=  I  sM    $:	86(PF
 [[]VY,?@- A-r7   r=  c                       \ rS rSrS rS rS rS rS rS r	\
R                  R                  SS	S
/5      S 5       rSrg)TestTtest_1sampi  c                    [         R                  R                  S5        [         R                  R                  SS5      / SQ-   n[        R
                  " US S 2S4   S5      n[        R
                  " US S 2S4   S5      n[        X#5        g )Nr
  r^   rR   r  r   r   )r,   r  rL  r  r   ttest_1sampr.   r   )r0   r  r  r  s       r4   r  !TestTtest_1samp.test_vs_nonmasked  si    
		w))//"a(<7   A2!!'!Q$-3#r7   c                    [         R                  R                  S5        [        R                  " [         R                  R                  S5      / SQS9n[         R                  [         R                  4n[        5        nUR                  [        S5        [         R                  [         R                  4S4US44 H.  n[        R                  " U6 u  pV[        Xb5        [        XR5        M0     S S S 5        g ! , (       d  f       g = f)Nr
  rQ   r!  rf   r  r   )r,   r  rL  rj   r   r  r   r   rw  r   r.   rT  r   )r0   r  r,  rx  r  r  r   s          r4   r  !TestTtest_1samp.test_fully_masked  s    
		w//"))//!"49EFFBFF# CJJ~'NO66266*C07C.A))40"1/"1/ B !  s   >A/C66
Dc                     [         R                  R                  S5        [         R                  R                  SS5      / SQ-   n[        R
                  " US S 2S4   S5      nSn[        X#SS	9  g r  )r,   r  rL  r  r.   rT  r   r  s       r4   r  &TestTtest_1samp.test_result_attributes  sT    
		w))//"a(<7  A2,
C5r7   c                     [         R                  " / S5      n[        [        R                  " [        R
                  " U5      5      5        g )Nr   )r.   rT  r   r,   ru  rv  r#  s     r4   r$  TestTtest_1samp.test_empty  s-    !!"a(rxx~&'r7   c                    [         R                  " / SQS5      u  p[        [        R                  " U5      U4[        R
                  S45        [        5        nUR                  [        S5        [         R                  " / SQS5      u  p[        [        R                  " U5      5        [        U[        R                  [        R                  45        S S S 5        g ! , (       d  f       g = f)Nrs  r   r   r  )r.   rT  r
   r,   r)  r  r   rw  r   r   rv  r   r   r*  s       r4   r+  "TestTtest_1samp.test_zero_division  s    !!)Q/bffQi^bffa[1 CJJ~'NO%%i3DABHHQK q266266"23	 !  s   A;C
C*c                     Sn[         R                  " [        US9   [        R                  " / SQSSS9  S S S 5        g ! , (       d  f       g = f)Nr/  r  r0  rR   r1  r	  )r   r	   r  r.   rT  r3  s     r4   r  $TestTtest_1samp.test_bad_alternative  s3    E]]:S1y!? 211s	   >
Ar
  r  r  c                    [         R                  R                  SSSSS9n[         R                  " USUS9u  p4[        R                  " USUS9u  pV[        XSSS	9  [        XdSS	9  [        R                  US
S& [        R                  R                  U[        R                  " U5      S9n[         R                  " UR                  5       SUS9u  p4[        R                  " USUS9u  pV[        XSSS	9  [        XdSS	9  g )Nr]   rP   rd   r  r  r   r	  rU   rA   r   rf   )r   r  r  rT  r.   r   r,   r   rj   r   rv  rM  )r0   r
  rF   r:  r  r  r   s          r4   r   TestTtest_1samp.test_alternative  s    JJNNr3NG&&q!E
!!!QK@e,e, &&!BEEqrxx{3&&q||~q3>@
!!!QK@e,e,r7   r8   NrP  r8   r7   r4   rR  rR    sL    $	06(4@
 [[]VY,?@- A-r7   rR  c                       \ rS rSrSrS rSrg)TestDescribei  zu
Tests for mstats.describe.

Note that there are also tests for `mstats.describe` in the
class TestCompareWithStats.
c                    [         R                  R                  / SQ/ SQ// SQ/ SQ/S9n[        R                  " USS9n[        UR                  SS	/5        UR                  u  p4[        US
S/5        [        US	S/5        [        UR                  SS/5        [        UR                  SS/5        [        UR                  SS/5        [        UR                  SS/5        g )N)r   r   rP   rQ   rR   r   )r   r   r   r   rQ   rQ   )r   r   r   r   r   r   )r   r   r   r   r   r   rf   r   r   r   rR   r   rQ   r   r#   r   r   g       )r,   rj   r   r.   describer
   nobsminmaxmeanvarianceskewnessr   r  )r0   rX   r/  aminamaxs        r4   test_basic_with_axis!TestDescribe.test_basic_with_axis  s    EE 2 2 4%7%7%9  : +V[[1a&)]]
TAq6"TAq6"V[[3*-V__sCj1V__sCj1$6r7   r8   N)r9   r:   r;   r<   r8  rn  r=   r8   r7   r4   rc  rc    s    7r7   rc  c                       \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S(r*g))*TestCompareWithStatsi  a  
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                 
    / SQ$ )z8Returns list of sample sizes to be used for comparison. )r3  rd   r]   r   r8   r  s    r4   get_nTestCompareWithStats.get_n  s    !!r7   c                    [         R                  R                  S5        [         R                  R                  U5      nU[         R                  R                  U5      -   n[         R                  " [        U5      S-   S5      n[         R                  " [        U5      S-   S5      nX$S[        U5      & X5S[        U5      & US:  n[         R                  R                  XFS9n[         R                  R                  XVS9nX#XE4$ )Nr
  r   g 7yACr   g s?Crf   )r,   r  rL  r  r  r  rj   r-   )r0   r  rF   r   r  ymrg   s          r4   generate_xy_sample'TestCompareWithStats.generate_xy_sample  s     			wIIOOA		""WWSVaZ&WWSVaZ&1SV1SVDyUU[[['UU[[['R|r7   c                    [         R                  " X4[         R                  5      n[         R                  " X4[         R                  5      n[         R                  " US-   U4[         R                  5      n[         R                  " US-   U4[         R                  5      n[        U5       H&  nU R	                  U5      u  US S 2U4'   US S 2U4'   pM(     USU USU2S S 24'   USU USU2S S 24'   [         R
                  R                  U[         R                  " U5      S9n[         R
                  R                  U[         R                  " U5      S9nX4XV4$ )Nr   r   rf   )r,   r  r   r  rw  rj   r-   rv  )
r0   r  nxrF   r   r  rv  r  r  r  s
             r4   generate_xy_sample2D)TestCompareWithStats.generate_xy_sample2D.  s   GGQGRVV$GGQGRVV$WWac2Y'WWac2Y'rA'+'>'>q'A$AadGQq!tWb"  qV1Q36
qV1Q36
UU[["((2,[/UU[["((2,[/R|r7   c                 ,   U R                  5        H  nU R                  U5      u  p#pE[        R                  " X#5      n[        R                  R                  XE5      n[        [        R                  " U5      [        R                  " U5      5        M     g r  )rs  rw  r   r\  r.   r   r,   r   )r0   r  rF   r   r  rv  result1result2s           r4   test_linregress$TestCompareWithStats.test_linregress=  sf    A2215LA"&&q,Gll--b5GBJJw/G1DE	 r7   c                     U R                  5        Hd  nU R                  U5      u  p#pE[        R                  " X#5      u  pg[        R                  R                  XE5      u  p[        XhSS9  [        XySS9  Mf     g )Nr  r.  )rs  rw  r   r   r.   r   
r0   r  rF   r   r  rv  r   r   rmpms
             r4   r   "TestCompareWithStats.test_pearsonrD  s`    A2215LA">>!'DA\\**22FBr2r2 r7   c                     U R                  5        Hh  nU R                  U5      u  p#pE[        R                  " X#5      u  pg[        R                  R                  XE5      u  p[        XhS5        [        XyS5        Mj     g Nr  )rs  rw  r   r   r.   r   r  s
             r4   r  #TestCompareWithStats.test_spearmanrM  s`    A2215LA"??1(DA\\++B3FBr*r* r7   c                 p    [         R                  " S5      n[        [        [        R
                  XS5        g )Nrh   F)r,   r   r+  r  r.   r   r   s     r4   !test_spearmanr_backcompat_useties6TestCompareWithStats.test_spearmanr_backcompat_usetiesU  s%     IIaLj&"2"2A%@r7   c                    U R                  5        H  nU R                  U5      u  p#pE[        R                  " [	        U5      5      n[        R
                  R                  [	        U5      5      n[        XgSS9  [        R                  " [	        U5      5      n[        R
                  R                  [	        U5      5      n[        XgSS9  M     g )NgvIh%<=rA   )rs  rw  r   rC   r)  r.   r   r0   r  rF   r   r  rv  r   r  s           r4   
test_gmeanTestCompareWithStats.test_gmean[  s    A2215LA"CF#A##CG,BA.CF#A##CG,BA. r7   c                    U R                  5        H  nU R                  U5      u  p#pE[        R                  " [	        U5      5      n[        R
                  R                  [	        U5      5      n[        XgS5        [        R                  " [	        U5      5      n[        R
                  R                  [	        U5      5      n[        XgS5        M     g Nr]   )rs  rw  r   rI   r)  r.   r   r  s           r4   
test_hmeanTestCompareWithStats.test_hmeanf  s    A2215LA"CF#A##CG,Br*CF#A##CG,Br* r7   c                 ^   U R                  5        H  nU R                  U5      u  p#pE[        R                  " U5      n[        R                  R                  U5      n[        XgS5        [        R                  " U5      n[        R                  R                  U5      n[        XgS5        M     g r  )rs  rw  r   r  r.   r   r  s           r4   	test_skewTestCompareWithStats.test_skewr  s|    A2215LA"

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

1A""2&Br* r7   c                 ^   U R                  5        H  nU R                  U5      u  p#pE[        R                  " U5      n[        R                  R                  U5      n[        XgS5        [        R                  " U5      n[        R                  R                  U5      n[        XgS5        M     g r  )rs  rw  r   r  r.   r   r  s           r4   r   TestCompareWithStats.test_moment~  s|    A2215LA"QA$$R(Br*QA$$R(Br* r7   c                    U R                  5        GH,  nU R                  U5      u  p#pEX"R                  5       -
  UR                  5       -  nX3R                  5       -
  UR                  5       -  n[	        [
        R                  " U5      USS9  [	        [
        R                  " U5      USS9  [	        [
        R                  " U5      [
        R                  R                  US[        U5       5      SS9  [	        [
        R                  " U5      [
        R                  R                  US[        U5       5      SS9  GM/     g )N绽|=rA   r   )	rs  rw  ri  r  r   r   r5  r.   r  )r0   r  rF   r   r  rv  zxzys           r4   r6   TestCompareWithStats.test_zscore  s    A2215LA" ffh,!%%')Bffh,!%%')B ELLORe<ELLORe< ELLOU\\-@-@Ac!f-N!&(ELLOU\\-@-@Ac!f-N!&( r7   c                 ^   U R                  5        H  nU R                  U5      u  p#pE[        R                  " U5      n[        R                  R                  U5      n[        XgS5        [        R                  " U5      n[        R                  R                  U5      n[        XgS5        M     g r  )rs  rw  r   r  r.   r   r  s           r4   r  "TestCompareWithStats.test_kurtosis  s~    A2215LA"q!A&&r*Br*q!A&&r*Br* r7   c           
      Z   [         R                  " S5      R                  SS5      n[         R                  R	                  U5      n[
        R                  " USS9n[
        R                  R                  USS9n[        USSS9  [        USSS9  U R                  5        GH  nU R                  U5      u  pgp[        [
        R                  R                  US S	S
9[
        R                  " US S	S
9SS9  [        [
        R                  R                  U	S S	S
9[
        R                  " US S	S
9SS9  [        [
        R                  R                  US SS
9[
        R                  " US SS
9SS9  [        [
        R                  R                  U	S SS
9[
        R                  " US SS
9SS9  GM     g )Nr^   r   rR   r   r  g'e@gh㈵>r  r   )r*   r     r.  )r,   r   r~  rj   r-   r   r'  r.   r   rs  rw  r   )
r0   rX   amr   r  r  rF   r   r  rv  s
             r4   r(  TestCompareWithStats.test_sem  s^   IIbM!!!Q'UU[[^IIaa \\bq):D1JT2A2215LA" 0 0$Q 0 G %		!$Q ?M 0 0$Q 0 G %		!$Q ?M 0 0$Q 0 G %		!$Q ?M 0 0$Q 0 G %		!$Q ?M r7   c           	      R   U R                  5        H  nU R                  U5      u  p#pE[        R                  " USS9n[        R                  R                  USS9n[        S5       H:  n[        [        R                  " Xh   5      [        R                  " Xx   5      SS9  M<     M     g )Nr   r  rh   r|  r.  )	rs  rw  r   rf  r.   r  r   r,   r   )	r0   r  rF   r   r  rv  r   r  iis	            r4   test_describe"TestCompareWithStats.test_describe  s    A2215LA"qq)A&&r&2BAh#BJJqu$5$&JJrv$6,.0 	 r7   c                 p    [         R                  " [        R                  " S5      5      nSn[	        XSS9  g )Nr   )rg  rh  ri  rj  rk  r  Tr   )r.   rf  r,   r   r   )r0   r  r  s      r4   test_describe_result_attributes4TestCompareWithStats.test_describe_result_attributes  s)    1."
F48r7   c                     U R                  5        HW  nU R                  U5      u  p#pE[        R                  " U5      n[        R                  R                  U5      n[        Xg5        MY     g r  )rs  rw  r   r   r.   r   r  s           r4   test_rankdata"TestCompareWithStats.test_rankdata  sP    A2215LA"q!A&&q)BA"	 r7   c                 R   U R                  5        H  nU R                  U5      u  p#pE[        [        R                  " U5      [        R
                  R	                  U5      S5        [        [        R                  " U5      [        R
                  R	                  U5      S5        M     g r  )rs  rw  r   r   tmeanr.   r0   r  rF   r   r  rv  s         r4   
test_tmeanTestCompareWithStats.test_tmean  sl    A2215LA"Au||/A/A"/ErJAu||/A/A"/ErJ r7   c           	      N   U R                  5        GH  nU R                  U5      u  p#pE[        [        R                  " US5      [        R
                  R	                  US5      S5        [        [        R                  " US5      [        R
                  R	                  US5      S5        [        [        R                  " USS9[        R
                  R	                  USS9S5        [        [        R                  " USS9[        R
                  R	                  USS9S5        GM     g )Nr   r]   r!   )
upperlimit)rs  rw  r   r   tmaxr.   r  s         r4   	test_tmaxTestCompareWithStats.test_tmax  s    A2215LA"

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

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

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

1 < % 1 1" 1 DbJ r7   c           	      B   U R                  5        GH
  nU R                  U5      u  p#pE[        [        R                  " U5      [        R
                  R	                  U5      5        [        [        R                  " U5      [        R
                  R	                  U5      5        [        [        R                  " USS9[        R
                  R	                  USS9S5        [        [        R                  " USS9[        R
                  R	                  USS9S5        GM     g )Nr   )
lowerlimitr]   )rs  rw  r
   r   tminr.   r   r  s         r4   	test_tminTestCompareWithStats.test_tmin  s    A2215LA"A(9(9"(=>A(9(9"(=>

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

1 = % 1 1" 1 ErK r7   c           	          U R                  5        Hb  nU R                  U5      u  p#pE[        R                  " X#5      n[        R                  R                  XE5      n[        XgS[        U5       SS9  Md     g )Nr   r  r  )rs  rw  r   r0  r.   r   r  )r0   r  rF   r   r  rv  r.  zms           r4   r2  TestCompareWithStats.test_zmap  s\    A2215LA"

1 A""2*BA!CF|%8	 r7   c                 J   U R                  5        H  nU R                  U5      u  p#pE[        [        R                  " U5      [        R
                  R	                  U5      SS9  [        [        R                  " U5      [        R
                  R	                  U5      SS9  M     g Nr|  r.  )rs  rw  r   r   r  r.   r  s         r4   r  #TestCompareWithStats.test_variation  st    A2215LA" 2ELL4J4J24N(*, 2ELL4J4J24N(*,	 r7   c                 J   U R                  5        H  nU R                  U5      u  p#pE[        [        R                  " U5      [        R
                  R	                  U5      SS9  [        [        R                  " U5      [        R
                  R	                  U5      SS9  M     g r  )rs  rw  r   r   tvarr.   r  s         r4   	test_tvarTestCompareWithStats.test_tvar   sr    A2215LA"

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

1u||/@/@/D(*,	 r7   c                    [         R                  " S5      n[        R                  " US5      n[        R                  R                  US5      n[        [         R                  " U5      UR                  UR                  )    5        g )Nr^   r  )	r,   r   r   r  r.   r   r  r1   rg   )r0   rX   r-  bms       r4   test_trimboth"TestCompareWithStats.test_trimboth  sV    IIbMNN1c"\\""1c*
BGGRWWH$56r7   c           	         U R                  5        H  nU R                  U5      u  p#pE[        [        R                  " U5      [        R
                  R	                  U5      SS9  [        [        R                  " U5      [        R
                  R	                  U5      SS9  [        [        R                  " USS9[        R
                  R	                  USS9SS9  M     g )Nr  r.  )re  r   )ry  )rs  rw  r   r   tsemr.   r  s         r4   	test_tsemTestCompareWithStats.test_tsem  s    A2215LA"

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

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

1Y ? % 1 1"Y 1 G(*, r7   c                     U R                  5        H_  nUS:  d  M  U R                  U5      u  p#pE[        R                  " U5      n[        R                  R                  U5      n[        Xg5        Ma     g )Nr   )rs  rw  r   r  r.   r   r  s           r4   test_skewtest"TestCompareWithStats.test_skewtest  sW    A1u#66q9bNN1%\\**2.& r7   c                 z    [         R                  " S5      S-  n[        R                  " U5      nSn[	        X#SS9  g r  )r,   r-   r.   r  r   r  s       r4   test_skewtest_result_attributes4TestCompareWithStats.test_skewtest_result_attributes"  s3    HH+,a/ooa ,
C5r7   c                    [         R                  R                  S5      S-  n[        R                  " U5      n[        R                  R                  U5      n[        [         R                  " U5      [         R                  " U5      5        g )N)r^   rP   g      4@)r,   r  r   r  r.   r   r   )r0   rF   r   r  s       r4   test_skewtest_2D_notmasked/TestCompareWithStats.test_skewtest_2D_notmasked(  sW    IIW%+NN1\\""1%

1rzz"~6r7   c                 4   SnU R                  5        H  nUS:  d  M  U R                  X!5      u  p4pV[        R                  " U5      n[        R                  R                  U5      n[        US   S   US   S   SS9  [        US   S   US   S   SS9  M     g )NrP   r   r   rU   rA   r   )rs  r{  r   r  r.   r   )	r0   rz  r  rF   r   r  rv  r   r  s	            r4   test_skewtest_2D_WithMask.TestCompareWithStats.test_skewtest_2D_WithMask/  s    A1u#88?bNN1%\\**2.!QAq>!QAq> r7   c           	      8   [         R                  " SS9   [        5        nUR                  [        S5        UR                  [        S5        U R                  5        H  nUS:  d  M  U R                  U5      u  p4pV[        R                  " U5      n[        R                  R                  U5      n[        [         R                  " U5      [         R                  " U5      5        M     S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr  )overz(`kurtosistest` p-value may be inaccuratez!kurtosistest only valid for n>=20r   )r,   ry   r   rw  UserWarningrs  rw  r   r  r.   r   r   )	r0   rx  r  rF   r   r  rv  r   r  s	            r4   test_normaltest$TestCompareWithStats.test_normaltest:  s    [[g&(9(;sJJ{$NOJJ{$GHZZ\q5#'#:#:1#=LA"((+A004B#BJJqM2::b>B " )<&&(;(;&&s*   DAC:(BC:)D:
D	D
Dc                    [         R                  " / SQ5      R                  S5      n[         R                  " / SQ5      R                  S5      nUS:H  n[         R                  R	                  X#S9nUR                  5       UR                  5       pe[         R                  " USS9u  pxXxS:     XS:     4n	[        R                  R                  U5      n
[        X5        [        X5        [        XF5        [        R                  R                  / 5      u  p[        U[         R                  " S	[         R                  S
95        g )N)r   r   rP   rP   rQ   rQ   rQ   rR   rR   rR   rR   r4  )r   r   rP   rP   rQ   rQ   rQ   rR   rR   rR   rR   r   r   r   r   rM  rf   T)return_countsr   r   r   )r,   r   r   rj   r-   r  uniquer   r.   find_repeatsr
   intp)r0   rF   tmprg   r  x_origxm_origr  unique_countsr   r  r  r  s                r4   test_find_repeats&TestCompareWithStats.test_find_repeatsE  s    JJ89@@IjjFGNNwWr	UU[[[(&&(BGGI "		!4 @1$%}Q5F'GG\\&&r*QQR! LL--b1	VRXXarww78r7   c                    U R                  5        Hn  nU R                  U5      u  p#pE[        R                  " X#5      n[        R                  R                  XE5      n[        US   US   SS9  [        US   US   SS9  Mp     g )Nr   r]   r.  r   r   )rs  rw  r   r*  r.   r   r  s           r4   r0  $TestCompareWithStats.test_kendalltauY  sr    A2215LA"  &A((0B!beR8!beQ7 r7   c           	         U R                  5        Hn  nU R                  U5      u  p#pE[        R                  " U5      n[        R                  R                  U5      n[        UR                  US[        U5       5        Mp     g )Nr   )rs  rw  r   r<  r.   r   r@  r  r  s           r4   r>  )TestCompareWithStats.test_obrientransforma  sb    A2215LA"%%a(A--b1BR#a&\2	 r7   c                    S GHJ  n[        5          S GH,  nU R                  5        GH  nU R                  U5      u  pEpg[        R                  " U[        R
                  R                  X!S9n[        R                  R	                  U[        R
                  R                  X!S9n	[        [        R                  " U5      [        R                  " U	5      5        [        R                  " U[        R
                  R                  X!S9n
[        [        R                  " U5      [        R                  " U
5      5        GM     GM/     SSS5        GMM     g! , (       d  f       GM`  = f)zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.autorF  asympr  r  rH  r
  r  N)r   rs  rw  r   ks_1sampr  cdfr.   r
   r,   r   r0   r  r
  r  rF   r   r  rv  r  r  r  s              r4   test_ks_1samp"TestCompareWithStats.test_ks_1samph  s    .D"$#CK!ZZ\'+'>'>q'Ab$~~a:E R$||44RAL  5  Y$RZZ%5rzz$7GH$~~b%**..:E R$RZZ%5rzz$7GH * $D %$ /$$s   D4E
E#	c                 0   S H  n[        5          S H  nU R                  5        H  nU R                  U5      u  pEpg[        R                  " USX!S9n[        R
                  R	                  USX!S9n	[        [        R                  " U5      [        R                  " U	5      5        [        R                  " USX!S9n
[        [        R                  " U5      [        R                  " U
5      5        M     M     SSS5        M     g! , (       d  f       GM  = f)zM
Checks that 1-sample mstats.kstest and stats.kstest agree on masked arrays.
r  r  r  r  N)	r   rs  rw  r   kstestr.   r
   r,   r   r  s              r4   test_kstest_1samp&TestCompareWithStats.test_kstest_1sampx  s     /D"$#CK!ZZ\'+'>'>q'Ab$||Av8C P$||222v?J  3  W$RZZ%5rzz$7GH$||B8C P$RZZ%5rzz$7GH * $D %$ /$$s   C(D
D	c                 j   S GH  n[        5        nUS;   a  SnUR                  [        U5        S H  nU R                  5        H  nU R	                  U5      u  pgp[
        R                  " XgXAS9n
[
        R                  R                  XXAS9n[        [        R                  " U
5      [        R                  " U5      5        [
        R                  " XXAS9n[        [        R                  " U
5      [        R                  " U5      5        M     M     SSS5        GM     g! , (       d  f       GM/  = f)zNChecks that mstats.ks_2samp and stats.ks_2samp agree on masked arrays.
gh-8431r  r  rF  )ks_2samp: Exact calculation unsuccessful.r  r  N)r   rw  r   rs  rw  r   rD  r.   r
   r,   r   r0   r  rx  messager
  r  rF   r   r  rv  r  r  r  s                r4   rI  "TestCompareWithStats.test_ks_2samp  s     /D"$,,IGJJ~w7#CK!ZZ\'+'>'>q'Ab$~~a:E R$||44RAL  5  Y$RZZ%5rzz$7GH$~~b:E R$RZZ%5rzz$7GH * $D	 %$ /$$   DD""
D2	c                 j   S GH  n[        5        nUS;   a  SnUR                  [        U5        S H  nU R                  5        H  nU R	                  U5      u  pgp[
        R                  " XgXAS9n
[
        R                  R                  XXAS9n[        [        R                  " U
5      [        R                  " U5      5        [
        R                  " XXAS9n[        [        R                  " U
5      [        R                  " U5      5        M     M     SSS5        GM     g! , (       d  f       GM/  = f)zM
Checks that 2-sample mstats.kstest and stats.kstest agree on masked arrays.
r  r   r  r  r  N)r   rw  r   rs  rw  r   r  r.   r
   r,   r   r  s                r4   test_kstest_2samp&TestCompareWithStats.test_kstest_2samp  s     /D"$,,IGJJ~w7#CK!ZZ\'+'>'>q'Ab$||A8C P$||222?J  3  W$RZZ%5rzz$7GH$||B8C P$RZZ%5rzz$7GH * $D	 %$ /$$r  r8   N)+r9   r:   r;   r<   r8  rs  rw  r{  r  r   r  r  r  r  r  r  r6  r  r(  r  r  r  r  r  r  r2  r  r  r  r  r  r  r  r  r  r  r0  r>  r  r  rI  r  r=   r8   r7   r4   rq  rq    s    ,"F3+A	/
+
+
+($	+M*09#KJ	K9,,7	,'67	?	C9(83I I$I(Ir7   rq  c                   "   \ rS rSr\R
                  R                  SSSSS\R                  SSSSSSSSS\R                  /5      r\R
                  R                  SSSS\R                  SSSSSSS/5      r	Sr
S rS	 rS
 rS rS rS rS rSrg)TestBrunnerMunzeli  r   rP   rR   rQ   r   r  c                    [         R                  " U R                  U R                  SS9u  p[         R                  " U R                  U R                  SS9u  p4[         R                  " U R                  U R                  SS9u  pV[         R                  " U R                  U R                  SS9u  px[	        X$U R
                  S9  [	        XhU R
                  S9  [        X&:g  5        [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  g )	Nr  r	  r  r.  |	&	@|	&	gҏGg?g@-pL?)r.   brunnermunzelXYr   significantr   )	r0   u1r  u2r  u3r  u4p4s	            r4   test_brunnermunzel_one_sided.TestBrunnerMunzel.test_brunnermunzel_one_sided  s(   %%dffdff&I%%dffdff)L%%dffdff)L%%dffdff&IBD,<,<=BD,<,<=B 2$($4$4	6B 3$($4$4	6B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6B 3$($4$4	6r7   c                 Z   [         R                  " U R                  U R                  SS9u  p[         R                  " U R                  U R                  SS9u  p4[	        X$U R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  g )NrH  r	  r.  r  r   ҏGw?r.   r  r  r  r   r  r0   r  r  r  r  s        r4   test_brunnermunzel_two_sided.TestBrunnerMunzel.test_brunnermunzel_two_sided  s    %%dffdff+N%%dffdff+NBD,<,<=B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6r7   c                 ^   [         R                  " U R                  U R                  5      u  p[         R                  " U R                  U R                  5      u  p4[	        X$U R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  g )Nr.  r  r  r  r  r  s        r4   test_brunnermunzel_default,TestBrunnerMunzel.test_brunnermunzel_default  s    %%dffdff5%%dffdff5BD,<,<=B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6r7   c                     SnSn[        US;  5        [        [        [        R                  U R
                  U R                  UU5        g )Nr   r  rG  r   r+  r  r.   r  r  r  r0   r
  distributions      r4   $test_brunnermunzel_alternative_error6TestBrunnerMunzel.test_brunnermunzel_alternative_error  sA    #CCDj**ffff!"	$r7   c                 Z   [         R                  " U R                  U R                  SS9u  p[         R                  " U R                  U R                  SS9u  p4[	        X$U R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  g )Nnormal)r%  r.  r  r  g "H[?r  r  s        r4   $test_brunnermunzel_distribution_norm6TestBrunnerMunzel.test_brunnermunzel_distribution_norm  s    %%dffdff8L%%dffdff8LBD,<,<=B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6r7   c                     SnSn[        US;  5        [        [        [        R                  U R
                  U R                  UU5        g )NrH  r   )r  r)  r#  r$  s      r4   %test_brunnermunzel_distribution_error7TestBrunnerMunzel.test_brunnermunzel_distribution_error  s@    !?23j**ffff!"	$r7   c                 6   [         R                  " U R                  / 5      u  p[         R                  " / U R                  5      u  p4[         R                  " / / 5      u  pV[	        [
        R                  " U5      5        [	        [
        R                  " U5      5        [	        [
        R                  " U5      5        [	        [
        R                  " U5      5        [	        [
        R                  " U5      5        [	        [
        R                  " U5      5        g r  )r.   r  r  r  r   r,   rv  )r0   r  r  r  r  r  r  s          r4   test_brunnermunzel_empty_imput0TestBrunnerMunzel.test_brunnermunzel_empty_imput  s    %%dffb1%%b$&&1%%b"-r7   r8   N)r9   r:   r;   r<   r,   rj   masked_invalidr   r  r  r  r  r  r   r&  r*  r-  r0  r=   r8   r7   r4   r
  r
    s    
aAq!RVVQAq!Q266; 	<A
aAq"&&!Q1aAFGAK6.66	$	6	$
r7   r
  )NNgHz>)Cr8  r   rn  numpyr,   r   numpy.marj   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   rG   rJ   rL   r   r   r   rt  r  r  r  r%  r:  ra  rd  rf  r  r  r  r  r  r  r  r  r  r=  rR  rc  rq  r
  r8   r7   r4   <module>r=     s        # # #  -  *E E E , 0 . R- -*!! 93 93 93x !3 !3 !3H9 9,y6 y6x	 u: u: u:p V/ V/ V/r& &RA A* 4 4 4@ -9 -9 -9`F, J1 J1Z8:.8*E _8 _8 _8D6 6.2 .2b6 6Y- Y-x\- \-~@- @-F7 70 mI mI mI`c cr7   