
    doi^                       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Jr  SSKJr  SSK J!r!J"r"   " S S5      r#SAS jr$SAS 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       r.\ " S# S$5      5       r/S% r0S& r1 " S' S(5      r2S) r3S* r4S+ r5S, r6\ " S- S.5      5       r7 " S/ S05      r8 " S1 S25      r9 " S3 S45      r: " S5 S65      r; " S7 S85      r< " S9 S:5      r= " S; S<5      r>\ " S= S>5      5       r? " S? S@5      r@g)Bz?
Tests for the stats.mstats module (support for masked arrays)
    N)nan)maskednomask)stats   )check_named_results)raises)assert_equalassert_almost_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_assert_allcloseassert_array_equal)_mstats_basic	_stats_py)skip_xp_invalid_arg)SmallSampleWarningtoo_small_1d_not_omitc                       \ 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       _/var/www/html/land-ocr/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__r4   __static_attributes__r7   r6   r3   r   r      s    -r6   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_liker1   r)   r?   rA   xs         r3   check_equal_gmeanrF   .   s*    Z%8AAT*% r6   c                 n    [         R                  " XUS9n[        XQUS9  [        UR                  U5        g r>   )r   hmeanr   r
   r?   rC   s         r3   check_equal_hmeanrI   5   s*    J7AAT*% r6   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                     ?+=r@   )r+   powerrF   r/   ar1   s      r3   test_1dTestGeoMean.test_1d=   s!    ((7E*!51r6   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(   <   F   P   Z   d   gsŤF@rN   r   r   r   r   mask   UUUUUU?rT   r@   )mar,   rF   r+   rU   rV   s      r3   
test_1d_maTestGeoMean.test_1d_maB   sH    HH>?!%HH\5((5%(!51r6   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,   rF   rV   s      r3   test_1d_ma_valueTestGeoMean.test_1d_ma_valueL   s,    EEKKA;  =!%r6   c                 `    [         R                  R                  / SQ5      nSn[        X5        g )N)
r\   r]   r^   r_   r(   r`   ra   rb   rc   r   r   ro   rV   s      r3   test_1d_ma0TestGeoMean.test_1d_ma0S   s"    EEKK?@!%r6   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(   r`   ra   rb   rc   ignore)invalid)r+   rj   r,   r   errstaterF   rV   s      r3   test_1d_ma_infTestGeoMean.test_1d_ma_infY   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 )NrN   re   rf   rh   ri   rT   )r?   rA   )rj   r,   r+   rU   astyper|   rF   r/   rW   
desired_dts      r3   test_1d_float96TestGeoMean.test_1d_float96`   sC     HH\5XXeU+222::>
!rzzFr6   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 )NrN   r   r   r   r   r   r   r   r   r   r   r   r   rf   r   rT   r)   rA   rR   rS   rh         ?rQ   rv   r\   r]   r^   r_   r(   r`   ra   rb   rc   rd   n   x   g/,$qJ@)rj   r,   r+   rF   rU   rV   s      r3   
test_2d_maTestGeoMean.test_2d_mag   s    HHlL,?'|DF((<(!159((BHHWe4HHS%0HHS%02 3 	!2E: /1DE"%%++a.'2r6   r7   N)r8   r9   r:   r;   rX   rk   rp   rs   rz   pytestmarkskipifhasattrr+   r   r   r<   r7   r6   r3   rK   rK   ;   s[    2
2&&* [[GB	22@  BGBG
3r6   rK   c                   x    \ rS rSrS r\R                  R                  \" \	S5      (       + SS9S 5       r
S rSrg	)
TestHarMeanr   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 )NrN   re   rf   /袋.?rT   r@   r[   g=b#A@rn   gO?@rj   r,   rI   r+   rV   s      r3   rX   TestHarMean.test_1dz   sk    HH\5+!51EEKKAB!%EEKKA;  =!%r6   r|   r}   r~   c                     [         R                  " / SQ/ SQS9n[        R                  " S[        R                  S9n[        X[        R                  S9  g )NrN   re   rf   r   r?   )rj   r,   r+   asarrayr|   rI   r   s      r3   r   TestHarMean.test_1d_float96   s7     HH\5ZZ 9L
!rzz:r6   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 )NrN   r   r   r   rf   r   rT   r   )gQ?g433333@g?rv   r   r   r   gmWUC@r   rV   s      r3   test_2dTestHarMean.test_2d   sx    HHlL,?'|DF((<(!159L!2E:/1DE"%%++a.'2r6   r7   N)r8   r9   r:   r;   rX   r   r   r   r   r+   r   r   r<   r7   r6   r3   r   r   x   sE    & [[GB	22@  B;B;
3r6   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   rO   rP   rQ      r   rh   )
r   rP   rP   rP   r   rh            !@r   r\   rP   rQ   )
r   r'   r'   r   r   rQ   r         @r      T)use_missing)
r   r'   r'         @r   rQ   r   r   r   r   )
r   r   r   r   rO   rQ   rP   r   r   rh   )
r   rP   r   rP   r   r   rh   r   rP   r\   )r   r   r   r   rO   )rP   rQ   r   r   rh   )r   rP   rP   rP   r   )rh   r   r   r   r\   r   r)   )r   rO         @r   r   r   r   r   r   r   r   rO   rO   rO   rO   rO   )rj   r,   r   r-   rankdatar   r/   rE   s     r3   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	9r6   r7   N)r8   r9   r:   r;   r   r<   r7   r6   r3   r   r      s    9r6   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   rP   rP   rO   ri   )FFFT)r   r   r   g     X@)r   r   rP   rv   )rj   arangewarningscatch_warningssimplefilterRuntimeWarningr   r-   pearsonrr,   r   r   r+   sqrt)
r/   rE   prx1y1rprg   x2y2s
             r3   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   rO   rP   rQ   r   rh   )r   r   r   r   r   r   rf   )	   r   r   rh   r   r   )r   r   r   r   r   r   )r   rQ   r   rh   )r   rh   r   r   )r+   rj   masked_arrayr,   r-   r   r   r
   )	r/   mxmyrE   ymrmpr   r   s	            r3   test_pearsonr_misaligned_mask&TestCorr.test_pearsonr_misaligned_mask   s    UU 29KLUU 29KLHH\"HH\"(~~a#RRr6   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   r/   rE   r   res
attributess        r3   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5r6   c                 L   / 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        [        R                  R                  S
5      nSn[        R                  " SSU5      nSU-  UR	                  U5      -   n[         R                  " X5      u  p[         R                  " XSS9u  p[        XS-  5        [         R                  " XSS9u  p[        USU	S-  -
  5        Xs=: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}?l   MBy rd   r   r   皙?rO   r   zalternative must be 'less'...matchz	ekki-ekki)
r-   r   r   r+   randomdefault_rnglinspacer   r	   
ValueError)r/   rE   r   r_expr   r   rngnstat1p1stat2p2stat3p3s                 r3   test_spearmanr_alternative#TestCorr.test_spearmanr_alternative  sg   00 #%!,-)<!,-&9!?+ ii##J/KK1a ECJJqM!$$Q*	$$QyA	F#$$Qv>	AQJ'&&&&&&]]:-LMQ{; NMMs   6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   rO   r   rh   )rQ   r   r      r   r   r\   gxO~>bananamethodr   rO   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]   r`   r_   rb   !   C      r   -   gXJĿgvPwTk?r   Tr   )rj   r,   r+   r   r   r-   
kendalltaur   assert_raisesr  r   r   r   )r/   rE   r   expectedbzresultr  s           r3   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8r6   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)  )r/   rE   r   s      r3   test_kendalltau_largeTestCorr.test_kendalltau_large  sv     IId%(a&IId%(NNAdeHah/0F--a3A678r6   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 )NrQ   rO         r   r   rP   rQ   rP   r   rP   rO   r   rP   r   r   rO   rP   r   rP   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)r/   rE   outputs      r3   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	3r6   r"  )exactr$  r	  	two-sidedr  r
  c                 8   [         R                  R                  S5      nSnUR                  U5      nUR                  U5      nUR                  U5      S:  n[        R                  " XWS9n[        R                  " XgS9n	[
        R                  " XXS9n
UR                  5       nU	R                  5       n[        R                  " XXS9n[         R                  XW'   [         R                  Xg'   [        R                  " XVUSUS9n[        X5        [        X5        g )Nl   iL r(   r   rf   )r"  r	  omit)r"  
nan_policyr	  )r+   r  r  rj   r,   r-   r)  
compressedr   r   r   )r/   r"  r	  r  r  rE   r   rg   x_maskedy_masked
res_maskedx_compressedy_compressedres_compressedres_nans                  r3   test_kendalltau_mstats_vs_stats(TestCorr.test_kendalltau_mstats_vs_stats  s     ii##J/JJqMJJqMzz!}s"88A)88A)&&vH
  **,**,))vP &&&&""FM 	
30r6   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   )rY  r   )   r   )   iE&  )   i%  r   r   itemsr   _kendall_p_exactr   r/   expectationsncr+  r  s        r3   test_kendall_p_exact_medium$TestCorr.test_kendall_p_exact_medium  s\     &<%;"8"%"8"%%;%;= )..0LB00A1>C. 1r6   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]  r`  s        r3   test_kendall_p_exact_large#TestCorr.test_kendall_p_exact_large  sW     '=&<'='=(>(>@ )..0LB00A1>C. 1r6   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   ffffff
@g	@r    ffffff@r'   g333333@gffffff@g @r   g      ?g?r   g?皙?gffffff?r   r   r?  r  r   g/"?r   r   Tr   )r+   r   r   r-   pointbiserialrr   r  s        r3   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5r6   r7   N)r8   r9   r:   r;   r   r   r  r  r   r   r   platformmachiner/  slowr7  rD  parametrizerT  rc  xslowrf  r   rm  r<   r7   r6   r3   r   r      s!   &>$6L,<\ [[((*i79  ;T9;T9l [[((*i79  ;[[9 ;9
3 [[X'>?[[],LM1 N @1:/ [[/ / 6	 6r6   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   rO   rP   rQ   r   rh   r   r   r   )rO   r   )
NNrO   rP   rQ   r   rh   r   r   NFFlimits	inclusive)
NNNrP   rQ   r   rh   r   NN)r  r?  T)rz  relative)
Nr   rO   rP   rQ   r   rh   r   NN   r   rv   r   )NNrO   rP   rQ   Nrh   r   r   NNNrd   r   ra   r]   )r|  r)   r   r  )
rj   r   r
   r-   trimr   reshape_maskravelr@  )r/   rW   rE   r+  trimxs        r3   	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5r6   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        UR                  S5      n[        [        R                  " U5      R                  5       S5        [        [        R                  " U5      R                  5       S5        g )Nrd   r`   r   )tailrb   r(   ra   0   r   r:  r   "   r]      )r\   r\   )rj   r   r
   r-   trimbothcounttrimtailr   r  r   r  )r/   rE   r  s      r3   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IIgV__Q'--/4V__Q'--/4r6   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?rx  ry  rw  )
r   r   r   r   r   r   r   r   r   r   rf   )rj   r   r-   trimrr,   r
   rg   )r/   rE   r.  r+  s       r3   
test_trimrTestTrimming.test_trimr%  sP    IIbMaO88:!?AV&V[[(--0r6   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r/   r0   s     r3   test_trimmedmeanTestTrimming.test_trimmedmean-  sb    xx @ AF//S93BF//Y?aHF//Y?aHr6   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  r  sortrj   r,   r   r-   trimmed_varvarr/   r  	data_origr0   s       r3   test_trimmedvarTestTrimming.test_trimmedvar4  k     ii##$78JJBJ'	wwy!xx $B C**9c:DHHJGr6   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       r3   test_trimmedstdTestTrimming.test_trimmedstd>  r  r6   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     r3   test_trimmed_stdeTestTrimming.test_trimmed_stdeH  sI    xx @ AF//Y?1MF//S98QGr6   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@rx  gffff7@r   )	rj   r,   r   r-   	winsorizer  r   r
   rg   )r/   r0   
winsorizeds      r3   test_winsorizationTestTrimming.test_winsorizationN  s    xx @ AF,,T)<@@a@H#Q	(T9];??Q?GQ	 Q%%d+
Z__dii0r6   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   rO   )皙?r  raise)rK  )皙?r  r   )rk  rk  rJ  )	rj   r,   r+   r   r*  r  r-   r  r
   r  s     r3   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	:r6   r7   N)r8   r9   r:   r;   r  r  r  r  r  r  r  r  r  r<   r7   r6   r3   ru  ru    s4    #6J51IHHH
1:r6   ru  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  rN   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shaper?   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?   )r/   actualexpectr  r?   s        r3   _assert_equalTestMoments._assert_equal  sL    F#__V3F6*=LLE||u$$$r6   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\   rO         ?rP   rQ        @rN   )r   r  r   r  r   r   )r   rO   rP   r"   r   )r   r   r   r   )r   r  )r   )momentr)   )rO   r   )r  g      $@r   )r-   r  testcaser   r   r*  r  r  r+   r   float64r,   float32zerosr   r
   rj   r   )r/   r   rE   s      r3   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("))4r6   c                 ^    [         R                  " U R                  5      n[        USS5        g )N%?r\   )r-   	variationr  r   )r/   r   s     r3   test_variationTestMoments.test_variation  s#    T]]+A.3r6   c                 v    [         R                  " / SQ5      n[        R                  " USS9n[	        US5        g )N)r   rO   rP   rQ   r   r   r  g<<'?)r+   r,   r-   r  r   )r/   rW   r   s      r3   test_variation_ddofTestMoments.test_variation_ddof  s/     HH_%QQ'A12r6   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FrO   )r-   skewtestmathworksr   r  rj   r,   r+   boolr   testcase_2d	enumerater   r/   r   
correct_2dirowcorrect_2d_bias_correcteds         r3   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:	<r6   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  rO   rQ   )nulp)r-   kurtosisr  r   r  rj   r,   r+   r  r   r  r  r   r   r  s         r3   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,-	/r6   r7   )r8   r9   r:   r;   r  rj   r   r+   r   r  r,   r  r  r  r  r  r  r  r  r<   r7   r6   r3   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%/r6   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   rO   rP   rP   rP   rP   rQ   r   rh   r   )rP   r   r   rP   rO   rO   r   )rP   rQ   r   )r   rP   )r   r   )rO   r   )r   r   r   r   r   r   rv   rP   r   r   )moder  Tr   )	r+   r  r,   rj   masked_wherer
   r-   r  r   )r/   a1a2a3a4ma1ma2ma3ma4a1_resr  s              r3   	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8r6   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
   )r/   imcps      r3   test_mode_modifies_input!TestMode.test_mode_modifies_input!  s]     XXj!
3B36
a

1crc6
a
WWYBRr6   r7   N)r8   r9   r:   r;   r	  r  r<   r7   r6   r3   r  r    s    9:r6   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)rP   rQ   r   r\   rh   )rP   r   r   rQ   rO   r   )r    rQ   r   r\   r  r  r  r   r   r  r  r/   s    r3   setup_methodTestPercentile.setup_method-  s    *,1r6   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     r3   test_percentileTestPercentile.test_percentile2  sY    IIaL3V--a3R8V--a5s;V--a4d;r6   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   )rQ   rQ   rP   r(   )rj   r,   r
   r-   r  r   s     r3   test_2DTestPercentile.test_2D8  s<    HHi	! "
 	V--a4i@r6   r  N)r8   r9   r:   r;   r  r  r"  r<   r7   r6   r3   r  r  ,  s    2
<Ar6   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   rO   rP   rQ   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  rO   )r-   semr  r   r  r   r+   r   )r/   r   r  s      r3   test_semTestVariability.test_semH  so    JJt}}%A|,MM!

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

4==q9	;r6   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   r0   rg   )r/   r   desired_unmaskedvalss      r3   	test_zmapTestVariability.test_zmapP  sG     KKt}}5!D!"6"#&&5"92	Gr6   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   )r/   r   r1   s      r3   test_zscoreTestVariability.test_zscoreY  sF     MM$--(.."24E"2ORVV"M NG3r6   r7   N)r8   r9   r:   r;   __doc__rj   r   r+   r   r  r(  r2  r6  r<   r7   r6   r3   r%  r%  A  s6     ~~q1Qrvv./H;G4r6   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   rP   rO   r\   rQ   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@  )r/   argsr.  s      r3   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	'r6   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 )NrQ   rO   r:  r;  r   r   rP   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)r/   rE   winterspringsummerfalls         r3   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,	.r6   c                 D   / 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  [        R                  R                  nU" / SQ5      U" / SQ5      U" / SQ5      U" / SQ5      /nU" / SQ5      U" / SQ5      U" / SQ5      U" / S Q5      /n[        [         R                  " U6 S!5        [        [         R                  " U6 S"5        [        [        [         R                  US   US   5        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Έ$@rQ   r   g(QGu?rh   rO   r:  r;  r   rP   r<  r=  r   r  r>  gr @g-C6?	statisticr   Tr   )g"~j?g^I+?gI+?gjt?gMbX9?gʡE?x&?-?g?r   gGz?g+?gv?g9v?)g~jt?gx?gOn?rR  g"~j?n?gK7A`?rS  g7A`?r   bX9?gZd;O?g1Zd?gK?)gy&1?gzG?g`"?g!rh?g'1Z?gZd;O?grh|?gjt?gʡE?r   gzG?gS?gJ4?gʡE?)gK7?gh|?5?gl?g/$?g#~j?rT  gQ?g      ?g      ?r   rU  g rh?g333333?g
ףp=
?)r   g#@r   gffffff@g$@)g333333@r   g@r   g@)g@gffffff@g      @rj  g @)g!@g!@g333333 @ri  g333333"@)gNt$@gBv?)g\(\%@g+ԋ?)r-   friedmanchisquarer   r   rj   r   r   r+   r   r   r*  r  )r/   r=  r.  rE   r  r,   r   x3s           r3   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8  C D D E E F D EF& ./-.-.-.0 	"&":":B"?"H	J 	"&":":B"?"=	?j&":":BqE2a5Ir6   r7   N)r8   r9   r:   r;   r>  rI  rX  r<   r7   r6   r3   r:  r:  b  s    '.:Jr6   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   r[  r\  r^  r_  )rE   r   r.  lrr  s        r3   test_regress_simplerf    s    
AsC Abkk!S#&&+AAr3'	((Aq$F 
	#	#BJv"#EJt4V,,, &9:((*<=';<//1DEr6   c                     [         R                  R                  S5      n [         R                  " S5      nU R                  S5      nSn[	        [
        US9   [        R                  " X5        S S S 5        g ! , (       d  f       g = f)Nl   B8k:E r\   zBCannot calculate a linear regression if all x values are identicalr  )r+   r  r  r  r*  r  r-   ra  )r  rE   r   msgs       r3   test_linregress_identical_xri    sY    
))


,C
A

2A
NC	z	-! 
.	-	-s   A77
B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   rO   rP   rQ   r\   r}  r=  )r         r]   r(  7   N   gQ?rQ   r"   gQ@rO   r.  gGz@r   )r-   theilslopesr   r+   rj   r,   )r/   r[  r\  lowerupperr   rE   s          r3   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3r6   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        [        R                  " 5          [        R                  " S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)	NzEAll `x` coordinates.*|Mean of empty slice|invalid value encountered.*r  r   r   rw   zinvalid value encountered...r   r   r   )r   r   r   )r   warnsr   r-   rr  r+   allisnanr   r   filterwarningsr   r   )r/   rh  r  s      r3   test_theilslopes_warnings)TestTheilslopes.test_theilslopes_warnings   s    U\\.4$$aVaV4C66"((3-(((( 5 $$&##8.J$$Y	:CC!Q!78	 '& 54 '&s   AC4A$D4
D
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   rO   rQ   rQ   rh   r   N)r-   rr  r
   r[  r\  	low_slope
high_slope)r/   r   rE   r[  r\  r  r  r.  s           r3   'test_theilslopes_namedtuple_consistency7TestTheilslopes.test_theilslopes_namedtuple_consistency  sk    
 282D2DQ2J/)##A) 	ULL)Y 0 01Y 0 01Z!2!23r6   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   rr  testingr   r[  )r/   r  r   r  s       r3   test_gh19678_uint8"TestTheilslopes.test_gh19678_uint8  s[     ii##$45LLCbL9%


""399a0r6   r7   N)	r8   r9   r:   r;   ru  r}  r  r  r<   r7   r6   r3   rk  rk    s    $4N
94 1r6   rk  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 )NrO   r\   r   )r   r   separater!  r   r    )rM  r  r2  rQ   gffffffr      r  random_stater  r@   )
r+   r   r
   r-   siegelslopesr   normrvsra  r   )r   rE   	slope_olsintercept_ols_r[  r\  s          r3   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7r6   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
   r[  r\  )r   rE   r[  r\  r.  s        r3   (test_siegelslopes_namedtuple_consistencyr  C  sM    
 	AA**10E  &F %,,-r6   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   rQ   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  rE   dydxrg   s         r3   dijk&test_sen_seasonal_slopes.<locals>.dijkX  sn    GIIaLQ

]##1bjj=!!wwrwwvT2a8x  r6   rQ   r   )
r+   r  r  r-   sen_seasonal_slopesr   r   medianr5  r  )r  rE   intra_slopeinter_sloper  r  
all_slopess          r3   test_sen_seasonal_slopesr  R  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 )NrP   r   )rS   r   r#  )r-   plotting_positionsr+   r   r   r0   r,   )poss    r3   test_plotting_positionsr  g  s6    

#
#BIIaL!Q
7Cchh1B(CDr6   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)TestNormalitytestsim  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   rO   rP   r  rv   r   r   rO   rP   r  rv   r   r   rO   rP   r  rv   r   r   rO   rP   rO   rN   r  )r+   r,   r   r-   
normaltestr   skewtestkurtosistestzipr   ry  r   r   r{  rQ  r   r*  r  )r/   rE   funcsmfuncsfuncmfuncr  s          r3   test_vs_nonmasked$TestNormalitytests.test_vs_nonmaskedp  s/   HH+,a/!&"3"3A"6"'"2"21"5	7!&//!"4"'.."3	5!&"5"5a"8"'"4"4Q"7	9 !!5>>53E3EF##V__f6I6IJ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  rO   r   )r+   r,   r   r-   r  r  r  r   s     r3   test_axis_None!TestNormalitytests.test_axis_None  s{    HH&'*))!$79J9J19MN5vq7IJ++AD9++A.	0r6   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  rO   r\   TFrf   )r+   r,   rj   r_infr  r   r-   r  r   r  r  )r/   rE   xms      r3   test_maskedarray_input)TestNormalitytests.test_maskedarray_input  s    HH+,a/UU[[rvvq"}- eeD5'AFF*:D$@A  C))"-u/?/?/BC+U^^A->?++B/1C1CA1FGr6   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  rO   r   r   )	r+   r,   vstackr@  r-   r  r  r  r   )r/   rE   x_2dr  res_1dres_2ds         r3   test_nd_input TestNormalitytests.test_nd_input  s    HH+,a/yy!q!##&&9L9LMD!WF$ZFF1Iq	{Q7F1Iq	{Q7	 Nr6   c                 z    [         R                  " S5      S-  n[        R                  " U5      nSn[	        X#SS9  g Nr  rO   rP  Tr   )r+   r,   r-   r  r   r/   rE   r  r  s       r3   !test_normaltest_result_attributes4TestNormalitytests.test_normaltest_result_attributes  s5    HH+,a/",
C5r6   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       r3   #test_kurtosistest_result_attributes6TestNormalitytests.test_kurtosistest_result_attributes  s5    HH+,a/!!!$,
C5r6   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  )r/   countsr  crE   s        r3   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   r{  rL  )
r/   r  r	  rE   
stats_testmstats_testz_exp_exr-  r   s
             r3   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,r6   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  )r/   rE   rh  s      r3   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/r7   N)r8   r9   r:   r;   r  r  r  r  r  r  r  r   r   rr  r  r  r<   r7   r6   r3   r  r  m  su    0&0H866= [[Vj.%AB[[]VY,?@- A C-&8r6   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   )r/   rW   r,  r  r  s        r3   test_result_attributes"TestFOneway.test_result_attributes  sO    HHc3Zryy1HHc3Zryy1ooa#,
C5r6   r7   Nr8   r9   r:   r;   r  r<   r7   r6   r3   r  r    s    6r6   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-   mannwhitneyurE   r   r   )r/   r  r  s      r3   r  'TestMannwhitneyu.test_result_attributes  s+    !!$&&$&&1,
C5r6   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  rE   r   r   rQ  r   r   )r/   res1res2s      r3   test_against_stats#TestMannwhitneyu.test_against_stats   s`     ""4664662!!$&&$&&1~~///T[[1r6   r7   N)r8   r9   r:   r;   r+   r,   rE   r   r  r  r<   r7   r6   r3   r  r    s4    
 * 	+A& 	 " 	#A6
2r6   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   rP   r   r   r   )rO   rQ   rh   r   r\   rP  Tr   )r-   kruskalr   r  s        r3   r  "TestKruskal.test_result_attributes  s)    nnQ",
C5r6   r7   Nr  r7   r6   r3   r  r  
  s    6r6   r  c                       \ rS 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                 L    [         R                  R                  S5      U l        g )Nl   6Gk] r+   r  r  r  r  s    r3   r  TestTtest_rel.setup_method      99((4r6   c                    U R                   R                  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]   rQ   r   r   r   rO   r   r   r   rO   )r  standard_normalr   	ttest_relr-   r   )r/   outcomer  r  res3s        r3   r  TestTtest_rel.test_vs_nonmasked  sC   ((**73lB 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?#r6   c                 N   [         R                  " U R                  R                  S5      / SQ/ SQ/S9n[        R
                  " 5          [        R                  " S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  p4[        U[        R                  [        R                  45        [        U[        R                  [        R                  45        Mn     S S S 5        g ! , (       d  f       g = fNr  r!  rx  rf   rw   %invalid value encountered in absoluter   r   r   r   )rj   r   r  r  r   r   r|  r   r+   r   r-   r  r   r/   r  pairtr   s        r3   test_fully_maskedTestTtest_rel.test_fully_masked-      //$((":":6"B(19'=?$$&##A>S!!Q$-A766266*S#J79''."1rvvrvv&67"1rvvrvv&67	9 '&&   
CD
D$c                     U R                   R                  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  r   r   rP  Tr   )r  r  r-   r  r   r/   r  r  r  s       r3   r  $TestTtest_rel.test_result_attributes9  L    ((**73lBwq!t}gadm<,
C5r6   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  rR   rO   rP   rQ   r   r   )r*  r  r-   r  r+   r   r  r   s     r3   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r6   c                     [         R                  " / / 5      n[        [        R                  " [        R
                  " U5      5      5        g r  )r-   r  r   r+   rz  r{  r/   r  s     r3   
test_emptyTestTtest_rel.test_emptyI  -    B'rxx~&'r6   c                 j   [         R                  " / SQ/ SQ5      u  p[        [        R                  " U5      U4[        R
                  S45        [        R                  " 5          [        R                  " S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)Nrx  r!  r   rw   r  )r-   	ttest_indr
   r+   absr  r   r   r|  r   r   r,   r   r/   r  r   s      r3   test_zero_division TestTtest_rel.test_zero_divisionM  s    	95bffQi^bffa[1$$&##A>S##Iy9DAq"((BFFBFF+;"<=q"((BFFBFF+;"<= '&&s   %B6D$$
D2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   rO   rP   )rQ   r   rh   foor  r   r	   r  r-   r1  r/   rh  s     r3   r  "TestTtest_rel.test_bad_alternativeX  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   rO   r  rT   r@   r   rf   )r   r  r  r  r-   r   r+   r   rj   r   r{  rL  r/   r	  rE   r   t_exr  r  r   s           r3   r  TestTtest_rel.test_alternative]  s   JJNNr"NEJJNNqND__Q{C
+>e,e, &&!B&&!BEEqrxx{3EEqrxx{3+>__Q\\^Q\\^1<>
e,e,r6   r  N)r8   r9   r:   r;   r  r  r  r  r)  r-  r4  r  r   r   rr  r  r<   r7   r6   r3   r  r    sW    5$(
86F(	>F
 [[]VY,?@- A-r6   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_indis  c                 L    [         R                  R                  S5      U l        g )Nl   };[9 r  r  s    r3   r  TestTtest_ind.setup_methodt  r  r6   c                    U R                   R                  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  r   r   r   rO   T	equal_varF)r  r  r   r1  r-   r   )r/   r  r  r  r  res4res5s          r3   r  TestTtest_ind.test_vs_nonmaskedw  s   ((**73lB 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#r6   c                 N   [         R                  " U R                  R                  S5      / SQ/ SQ/S9n[        R
                  " 5          [        R                  " S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  p4[        U[        R                  [        R                  45        [        U[        R                  [        R                  45        Mn     S S S 5        g ! , (       d  f       g = fr  )rj   r   r  r  r   r   r|  r   r+   r   r-   r1  r   r  s        r3   r  TestTtest_ind.test_fully_masked  r!  r"  c                     U R                   R                  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  r-   r1  r   r%  s       r3   r  $TestTtest_ind.test_result_attributes  r'  r6   c                     [         R                  " / / 5      n[        [        R                  " [        R
                  " U5      5      5        g r  )r-   r1  r   r+   rz  r{  r,  s     r3   r-  TestTtest_ind.test_empty  r/  r6   c                 :   [         R                  " / SQ/ SQ5      u  p[        [        R                  " U5      U4[        R
                  S45        [        R                  " 5          [        R                  " S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)Nrx  r!  r   rw   r  FrK  )r-   r1  r
   r+   r2  r  r   r   r|  r   r   r   r3  s      r3   r4   TestTtest_ind.test_zero_division  s
   	95bffQi^bffa[1$$&##A>S##Iy9DAq266266"23q266266"23 ' 	9FbffQi^bffa[16++Iy6;=?Avvrvv>N	P '&s   %BF
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r7  r;  r<  s     r3   r  "TestTtest_ind.test_bad_alternative  r>  r?  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\   rO   rd   r  r  r   r  rT   r@   r   rb   rc   rf   )r   r  r  r1  r-   r   r+   r   rj   r   r{  rL  rB  s           r3   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,r6   rE  Nr8   r9   r:   r;   r  r  r  r  r-  r4  r  r   r   rr  r  r<   r7   r6   r3   rG  rG  s  sR    5$8
86(P F
 [[]VY,?@- A-r6   rG  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_1sampi  c                 L    [         R                  R                  S5      U l        g )Nl   GzP r  r  s    r3   r  TestTtest_1samp.setup_method  r  r6   c                     U R                   R                  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  r   r   )r  r  r   ttest_1sampr-   r   )r/   r  r  r  s       r3   r  !TestTtest_1samp.test_vs_nonmasked  sY    ((**73lB   A2!!'!Q$-3#r6   c                    [         R                  " U R                  R                  S5      / SQS9n[        R
                  [        R
                  4n[        R                  " 5          [        R                  " SS[        5        [        R
                  [        R
                  4S4US44 H.  n[        R                  " U6 u  pE[        XR5        [        XB5        M0     S S S 5        g ! , (       d  f       g = f)NrP   r!  rf   rw   r  r   )rj   r   r  r  r+   r   r   r   r|  r   r-   rb  r   )r/   r  r+  r  r  r   s         r3   r  !TestTtest_1samp.test_fully_masked  s    //$((":":1"=INFFBFF#$$&##A>S66266*C07C.A))40"1/"1/ B '&&s   &A5C$$
C2c                     U R                   R                  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  r-   rb  r   r%  s       r3   r  &TestTtest_1samp.test_result_attributes  sD    ((**73lB  A2,
C5r6   c                     [         R                  " / S5      n[        [        R                  " [        R
                  " U5      5      5        g )Nr   )r-   rb  r   r+   rz  r{  r,  s     r3   r-  TestTtest_1samp.test_empty  s-    !!"a(rxx~&'r6   c                    [         R                  " / SQS5      u  p[        [        R                  " U5      U4[        R
                  S45        [        R                  " 5          [        R                  " S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)Nrx  r   r   rw   r  )r-   rb  r
   r+   r2  r  r   r   r|  r   r   r{  r   r   r3  s      r3   r4  "TestTtest_1samp.test_zero_division  s    !!)Q/bffQi^bffa[1$$&##A>S%%i3DABHHQK q266266"23 '&&s   #B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)Nr8  r  r9  rQ   r:  r  )r   r	   r  r-   rb  r<  s     r3   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\   rO   rd   r  r  r   r  rT   r@   r   rf   )r   r  r  rb  r-   r   r+   r   rj   r   r{  rL  )r/   r	  rE   rC  r  r  r   s          r3   r   TestTtest_1samp.test_alternative  s    JJNNr3NG&&q!E
!!!QK@e,e, &&!BEEqrxx{3&&q||~q3>@
!!!QK@e,e,r6   rE  Nr\  r7   r6   r3   r^  r^    sQ    5$	06(	4@
 [[]VY,?@- A-r6   r^  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   rO   rP   rQ   r   )r   r   r   r   rP   rP   )r   r   r   r   r   r   )r   r   r   r   r   r   rf   r   r   r   rQ   r   rP   r   r"   r   r   g       )r+   rj   r   r-   describer
   nobsminmaxmeanvarianceskewnessr   r  )r/   rW   r.  aminamaxs        r3   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$6r6   r7   N)r8   r9   r:   r;   r8  r|  r<   r7   r6   r3   rq  rq    s    7r6   rq  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))*TestCompareWithStatsi2  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. )r2  rd   r\   r   r7   r  s    r3   get_nTestCompareWithStats.get_nJ  s    !!r6   c                    [         R                  R                  S5      nUR                  U5      nX2R                  U5      -   n[         R                  " [        U5      S-   S5      n[         R                  " [        U5      S-   S5      nX5S[        U5      & XFS[        U5      & US:  n[         R                  R                  XWS9n[         R                  R                  XgS9nX4XV4$ )Ni r   g 7yACr   g s?Crf   )r+   r  RandomStaterandnr  r  rj   r,   )r/   r  r  rE   r   r  ymrg   s           r3   generate_xy_sample'TestCompareWithStats.generate_xy_sampleN  s     ii##G,IIaL		!WWSVaZ&WWSVaZ&1SV1SVDyUU[[['UU[[['R|r6   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   r  rj   r,   r{  )
r/   r  nxrE   r   r  r  r  r  r  s
             r3   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|r6   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  )r  r  r   ra  r-   r   r+   r   )r/   r  rE   r   r  r  result1result2s           r3   test_linregress$TestCompareWithStats.test_linregressl  sf    A2215LA"&&q,Gll--b5GBJJw/G1DE	 r6   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.  )r  r  r   r   r-   r   
r/   r  rE   r   r  r  r   r   rmpms
             r3   r   "TestCompareWithStats.test_pearsonrs  s`    A2215LA">>!'DA\\**22FBr2r2 r6   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  )r  r  r   r   r-   r   r  s
             r3   r  #TestCompareWithStats.test_spearmanr|  s`    A2215LA"??1(DA\\++B3FBr*r* r6   c                 p    [         R                  " S5      n[        [        [        R
                  XS5        g )Nrh   F)r+   r   r*  r  r-   r   r   s     r3   !test_spearmanr_backcompat_useties6TestCompareWithStats.test_spearmanr_backcompat_useties  s%     IIaLj&"2"2A%@r6   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%<=r@   )r  r  r   rB   r2  r-   r   r/   r  rE   r   r  r  r   r  s           r3   
test_gmeanTestCompareWithStats.test_gmean  s    A2215LA"CF#A##CG,BA.CF#A##CG,BA. r6   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\   )r  r  r   rH   r2  r-   r   r  s           r3   
test_hmeanTestCompareWithStats.test_hmean  s    A2215LA"CF#A##CG,Br*CF#A##CG,Br* r6   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  )r  r  r   r  r-   r   r  s           r3   	test_skewTestCompareWithStats.test_skew  s|    A2215LA"

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

1A""2&Br* r6   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  )r  r  r   r  r-   r   r  s           r3   r   TestCompareWithStats.test_moment  s|    A2215LA"QA$$R(Br*QA$$R(Br* r6   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绽|=r@   r   )	r  r  rw  r  r   r   r5  r-   r  )r/   r  rE   r   r  r  zxzys           r3   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!&( r6   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  )r  r  r   r  r-   r   r  s           r3   r  "TestCompareWithStats.test_kurtosis  s~    A2215LA"q!A&&r*Br*q!A&&r*Br* r6   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   rQ   r   r  g'e@gh㈵>r  r   )r)   r     r.  )r+   r   r  rj   r,   r   r'  r-   r   r  r  r   )
r/   rW   amr   r  r  rE   r   r  r  s
             r3   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 r6   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.  )	r  r  r   rt  r-   r   r   r+   r   )	r/   r  rE   r   r  r  r   r  iis	            r3   test_describe"TestCompareWithStats.test_describe  s    A2215LA"qq)A&&r&2BAh#BJJqu$5$&JJrv$6,.0 	 r6   c                 p    [         R                  " [        R                  " S5      5      nSn[	        XSS9  g )Nr   )ru  rv  rw  rx  ry  r  Tr   )r-   rt  r+   r   r   )r/   r  r  s      r3   test_describe_result_attributes4TestCompareWithStats.test_describe_result_attributes  s)    1."
F48r6   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  )r  r  r   r   r-   r   r  s           r3   test_rankdata"TestCompareWithStats.test_rankdata  sP    A2215LA"q!A&&q)BA"	 r6   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  )r  r  r   r   tmeanr-   r/   r  rE   r   r  r  s         r3   
test_tmeanTestCompareWithStats.test_tmean  sl    A2215LA"Au||/A/A"/ErJAu||/A/A"/ErJ r6   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)r  r  r   r   tmaxr-   r  s         r3   	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 r6   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\   )r  r  r
   r   tminr-   r   r  s         r3   	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 r6   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  )r  r  r   r0  r-   r   r  )r/   r  rE   r   r  r  r-  zms           r3   r2  TestCompareWithStats.test_zmap   s\    A2215LA"

1 A""2*BA!CF|%8	 r6   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.  )r  r  r   r   r  r-   r  s         r3   r  #TestCompareWithStats.test_variation'  st    A2215LA" 2ELL4J4J24N(*, 2ELL4J4J24N(*,	 r6   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  )r  r  r   r   tvarr-   r  s         r3   	test_tvarTestCompareWithStats.test_tvar/  sr    A2215LA"

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

1u||/@/@/D(*,	 r6   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  r0   rg   )r/   rW   r,  bms       r3   test_trimboth"TestCompareWithStats.test_trimboth7  sV    IIbMNN1c"\\""1c*
BGGRWWH$56r6   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.  )rs  r   )rz  )r  r  r   r   tsemr-   r  s         r3   	test_tsemTestCompareWithStats.test_tsem=  s    A2215LA"

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

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

1Y ? % 1 1"Y 1 G(*, r6   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   )r  r  r   r  r-   r   r  s           r3   test_skewtest"TestCompareWithStats.test_skewtestH  sW    A1u#66q9bNN1%\\**2.& r6   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       r3   test_skewtest_result_attributes4TestCompareWithStats.test_skewtest_result_attributesQ  s3    HH+,a/ooa ,
C5r6   c                 <   [         R                  R                  S5      nUR                  S5      S-  n[        R                  " U5      n[        R
                  R	                  U5      n[        [         R                  " U5      [         R                  " U5      5        g )Nl   ]L )r]   rO   g      4@)r+   r  r  r   r  r-   r   r   )r/   r  rE   r   r  s        r3   test_skewtest_2D_notmasked/TestCompareWithStats.test_skewtest_2D_notmaskedW  se    ii##J/JJw#%NN1\\""1%

1rzz"~6r6   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 )NrO   r   r   rT   r@   r   )r  r  r   r  r-   r   )	r/   r  r  rE   r   r  r  r   r  s	            r3   test_skewtest_2D_WithMask.TestCompareWithStats.test_skewtest_2D_WithMask_  s    A1u#88?bNN1%\\**2.!QAq>!QAq> r6   c           	      f   [         R                  " SS9   [        R                  " 5          [        R                  " SS[
        5        [        R                  " SS[
        5        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[        [         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  )overrw   z(`kurtosistest` p-value may be inaccuratez!kurtosistest only valid for n>=20r   )r+   ry   r   r   r|  UserWarningr  r  r   r  r-   r   r   r  s           r3   test_normaltest$TestCompareWithStats.test_normaltestj  s    [[g&(?(?(A##DkS##={LZZ\q5#'#:#:1#=LA"((+A004B#BJJqM2::b>B " )B&&(A(A&&s*   D"AD?BD D"
D	D""
D0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   rO   rO   rP   rP   rP   rQ   rQ   rQ   rQ   r3  )r   r   rO   rO   rP   rP   rP   rQ   rQ   rQ   rQ   r   r   r   r   rM  rf   T)return_countsr   r   r   )r+   r   r   rj   r,   r  uniquer   r-   find_repeatsr
   intp)r/   rE   tmprg   r  x_origxm_origr  unique_countsr   r  r  r  s                r3   test_find_repeats&TestCompareWithStats.test_find_repeatsw  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8r6   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   )r  r  r   r)  r-   r   r  s           r3   r/  $TestCompareWithStats.test_kendalltau  sr    A2215LA"  &A((0B!beR8!beQ7 r6   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   )r  r  r   r<  r-   r   r@  r  r  s           r3   r>  )TestCompareWithStats.test_obrientransform  sb    A2215LA"%%a(A--b1BR#a&\2	 r6   c                    S GHU  n[         R                  " 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MX     g! , (       d  f       GMk  = f)zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.autorF  asympr
  r  rH  r	  r  N)r   r   r  r  r   ks_1sampr  cdfr-   r
   r+   r   r/   r  r	  r  rE   r   r  r  r  r  r  s              r3   test_ks_1samp"TestCompareWithStats.test_ks_1samp  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                 J   S GH	  n[         R                  " 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        G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   r   r  r  r   kstestr-   r
   r+   r   r  s              r3   test_kstest_1samp&TestCompareWithStats.test_kstest_1samp  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                    S GH*  n[         R                  " 5          US;   a  Sn[         R                  " SU[        5        S H  nU R	                  5        H  nU R                  U5      u  pVpx[        R                  " XVX1S9n	[        R                  R                  XxX1S9n
[        [        R                  " U	5      [        R                  " U
5      5        [        R                  " XvX1S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.rw   r  r  N)r   r   r|  r   r  r  r   rD  r-   r
   r+   r   r/   r  messager	  r  rE   r   r  r  r  r  r  s               r3   rI  "TestCompareWithStats.test_ks_2samp  s     /D((*,,IG++Hg~N#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	D33
E	c                    S GH*  n[         R                  " 5          US;   a  Sn[         R                  " SU[        5        S H  nU R	                  5        H  nU R                  U5      u  pVpx[        R                  " XVX1S9n	[        R                  R                  XxX1S9n
[        [        R                  " U	5      [        R                  " U
5      5        [        R                  " XvX1S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  rw   r  r  N)r   r   r|  r   r  r  r   r  r-   r
   r+   r   r  s               r3   test_kstest_2samp&TestCompareWithStats.test_kstest_2samp  s     /D((*,,IG++Hg~N#CK!ZZ\'+'>'>q'Ab$||A8C P$||222?J  3  W$RZZ%5rzz$7GH$||B8C P$RZZ%5rzz$7GH * $D	 +* /**r  r7   N)+r8   r9   r:   r;   r8  r  r  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  r/  r>  r	  r  rI  r  r<   r7   r6   r3   r  r  2  s    ,"F3+A	/
+
+
+($	+M*09#KJ	K9,,7	,'67	?C9(83I I$I(Ir6   r  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   rO   rQ   rP   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   )	r/   u1r  u2r  u3r  u4p4s	            r3   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	6r6   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!  r/   r"  r  r#  r  s        r3   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	6r6   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        r3   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	6r6   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   r/   r	  distributions      r3   $test_brunnermunzel_alternative_error6TestBrunnerMunzel.test_brunnermunzel_alternative_error  sA    #CCDj**ffff!"	$r6   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)r5  r.  r  r  g "H[?r+  r,  s        r3   $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	6r6   c                     SnSn[        US;  5        [        [        [        R                  U R
                  U R                  UU5        g )NrH  r   )r  r9  r3  r4  s      r3   %test_brunnermunzel_distribution_error7TestBrunnerMunzel.test_brunnermunzel_distribution_error4  s@    !?23j**ffff!"	$r6   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+   r{  )r/   r"  r  r#  r  r$  r  s          r3   test_brunnermunzel_empty_imput0TestBrunnerMunzel.test_brunnermunzel_empty_imput?  s    %%dffb1%%b$&&1%%b"-r6   r7   N)r8   r9   r:   r;   r+   rj   masked_invalidr   r  r   r!  r'  r-  r0  r6  r:  r=  r@  r<   r7   r6   r3   r  r    s    
aAq!RVVQAq!Q266; 	<A
aAq"&&!Q1aAFGAK6.66	$	6	$
r6   r  )NNgHz>)Ar8  r   ro  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   scipy.statsr   r   scipy.conftestr   scipy.stats._axis_nan_policyr   r   r   rF   rI   rK   r   r   r   ru  r  r  r  r%  r:  rf  ri  rk  r  r  r  r  r  r  r  r  r  rG  r^  rq  r  r  r7   r6   r3   <module>rL     s        # # #  -  *E E E 1 . R- -*!! 93 93 93x !3 !3 !3H9 9,z6 z6z	 u: u: u:p V/ V/ V/r& &RA A* 4 4 4@ SJ SJ SJlF, K1 K1\8:.8*E _8 _8 _8D6 6.2 .2b6 6[- [-|_- _-DB- B-J7 70 pI pI pIfc cr6   