
    5[gS                       d Z ddlZddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddl
mc mZ ddlmZ ddlmZ ddlZddlmZ dd	lmZmZmZmZmZmZmZ dd
lmZ ddlmZmZ ddl m!Z! ddl"m#Z#m$Z$  G d d      Z%dBdZ&dBdZ'e! G d d             Z(e! G d d             Z) G d d      Z* G d d      Z+e! G d d             Z,e! G d d             Z- G d d      Z. G d  d!      Z/e! G d" d#             Z0e! G d$ d%             Z1d& Z2d' Z3 G d( d)      Z4d* Z5d+ Z6d, Z7d- Z8e! G d. d/             Z9 G d0 d1      Z: G d2 d3      Z; G d4 d5      Z< G d6 d7      Z= G d8 d9      Z> G d: d;      Z? G d< d=      Z@e! G d> d?             ZA G d@ dA      ZBy)Cz?
Tests for the stats.mstats module (support for masked arrays)
    N)nan)maskednomask)stats   )check_named_results)raises)assert_equalassert_almost_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_assert_allcloseassert_array_equal)suppress_warnings)_mstats_basic	_stats_py)skip_xp_invalid_arg)SmallSampleWarningtoo_small_1d_not_omitc                       e Zd Zd Zy)TestMquantilesc                     t        j                  g dg dg dg dg dg dg dg dg d	g d
g dg      }g dg dg dg}t        j                  |dd      }t	        ||       y )N)      @      @      ?)g     G@      .@       @)g     H@      B@      @)r        C@      @)      E@      D@     8)     D@r&   r%   )r   r%   r%   )r!   r%   r%   )g     E@r%   r%   )r$   r%   r%   )r   r%   r%   )g3333333@g333333-@g333333?)r$   g     B@      @)gffffffE@gfffffD@gffffff@r   )r   2   )axislimit)nparraymstats
mquantilesr   )selfdatadesiredquantss       ^/var/www/html/bid-api/venv/lib/python3.12/site-packages/scipy/stats/tests/test_mstats_basic.pytest_mquantiles_limit_keywordz,TestMquantiles.test_mquantiles_limit_keyword   sg    xx'''**+,,,,
. 
/ &$&( ""4aw?FG,    N)__name__
__module____qualname__r4    r5   r3   r   r      s    -r5   r   c                 |    t        j                  | ||      }t        |||       t        |j                  |       y N)r)   dtypertol)r-   gmeanr   r
   r<   
array_liker1   r)   r<   r>   xs         r3   check_equal_gmeanrC   /   s.    Zd%8AAwT*% r5   c                 |    t        j                  | ||      }t        |||       t        |j                  |       y r;   )r   hmeanr   r
   r<   r@   s         r3   check_equal_hmeanrF   6   s.    JT7AAwT*% r5   c                       e Zd Zd Zd Zd Zd Zd Zej                  j                   eed       d      d	        Zd
 Zy)TestGeoMeanc                 T    g d}t        j                  dd      }t        ||d       y )Nr                     ?+=r=   )r+   powerrC   r/   ar1   s      r3   test_1dzTestGeoMean.test_1d>   s#    ((7E*!W51r5   c                     t        j                  g d      }d}t        ||       t        j                  g dg d      }t        j                  dd      }t        ||d	       y )
N

         (   r(   <   F   P   Z   d   gsŤF@rJ   r   r   r   r   mask   UUUUUU?rP   r=   )mar,   rC   r+   rQ   rR   s      r3   
test_1d_mazTestGeoMean.test_1d_maC   sL    HH>?!W%HH\5((5%(!W51r5   c                 j    t         j                  j                  g dg d      }d}t        ||       y )NrV   
r   r   r   r   r   r   r   r   r   r   ra   gdq_D@r+   re   r,   rC   rR   s      r3   test_1d_ma_valuezTestGeoMean.test_1d_ma_valueM   s.    EEKKA;  =!W%r5   c                 b    t         j                  j                  g d      }d}t        ||       y )N)
rW   rX   rY   rZ   r(   r[   r\   r]   r^   r   r   ri   rR   s      r3   test_1d_ma0zTestGeoMean.test_1d_ma0T   s$    EEKK?@!W%r5   c                     t         j                  j                  g d      }t         j                  }t        j                  d      5  t        ||       d d d        y # 1 sw Y   y xY w)N)
rW   rX   rY   rZ   r(   r[   r\   r]   r^   ignore)invalid)r+   re   r,   r   errstaterC   rR   s      r3   test_1d_ma_infzTestGeoMean.test_1d_ma_infZ   s@    EEKK@A&&[[*a) +**s   AA'float96cannot find float96 so skippingreasonc                     t        j                  g dg d      }t        j                  dd      j	                  t        j
                        }t        ||t        j
                  d       y )NrJ   r`   ra   rc   rd   rP   )r<   r>   )re   r,   r+   rQ   astypers   rC   r/   rS   
desired_dts      r3   test_1d_float96zTestGeoMean.test_1d_float96a   sE     HH\5XXeU+222::>
!ZrzzFr5   c                    t        j                  g dg dg dgg dg dg dg      }t        j                  g d      }t        ||dd       t        j                  t        j                  d	d
      t        j                  dd      t        j                  dd      g      }t        ||dd       g dg dg dg}d}t        t        j                   j                  |      |       y )NrJ   r   r   r   r   r   r   r   r   r   r   r   r   ra   r   rP   r)   r>   rN   rO   rc         ?rM   rn   rW   rX   rY   rZ   r(   r[   r\   r]   r^   r_   n   x   g/,$qJ@)re   r,   r+   rC   rQ   rR   s      r3   
test_2d_mazTestGeoMean.test_2d_mah   s    HHlL,?'|DF((<(!W159((BHHWe4HHS%0HHS%02 3 	!W2E: /1DE"%%++a.'2r5   N)r6   r7   r8   rT   rf   rj   rl   rr   pytestmarkskipifhasattrr+   r{   r   r9   r5   r3   rH   rH   <   s[    2
2&&* [[GB	22@  BGBG
3r5   rH   c                   n    e Zd Zd Zej
                  j                   eed       d      d        Z	d Z
y)TestHarMeanc                    t        j                  g dg d      }d}t        ||d       t        j                   j                  g d      }d}t        ||       t        j                   j                  g dg d	      }d
}t        ||       y )NrJ   r`   ra   /袋.?rP   r=   rV   g=b#A@rh   gO?@re   r,   rF   r+   rR   s      r3   rT   zTestHarMean.test_1d{   sq    HH\5+!W51EEKKAB!W%EEKKA;  =!W%r5   rs   rt   ru   c                     t        j                  g dg d      }t        j                  dt        j                        }t        ||t        j                         y )NrJ   r`   ra   r   r<   )re   r,   r+   asarrayrs   rF   ry   s      r3   r{   zTestHarMean.test_1d_float96   s9     HH\5ZZ 9L
!Zrzz:r5   c                 4   t        j                  g dg dg dgg dg dg dg      }t        j                  g d      }t        ||dd       g d	}t        ||d
d       g dg dg dg}d}t        t        j                   j                  |      |       y )NrJ   r}   r~   r   ra   r   rP   r   )gQ?g433333@g?rn   r   r   r   gmWUC@r   rR   s      r3   test_2dzTestHarMean.test_2d   s|    HHlL,?'|DF((<(!W159L!W2E:/1DE"%%++a.'2r5   N)r6   r7   r8   rT   r   r   r   r   r+   r{   r   r9   r5   r3   r   r   y   sE    & [[GB	22@  B;B;
3r5   r   c                       e Zd Zd Zy)TestRankingc                    t        j                  g d      }t        t        j                  |      g d       t
        |ddg<   t        t        j                  |      g d       t        t        j                  |d      g d       t        j                  g d	      }t        t        j                  |      g d
       t        j                  g dg dg      }t        t        j                  |      g dg dg       t        t        j                  |d      g dg dg       t        t        j                  |d      g dg dg       y )N)
r   r   r   r   rK   rL   rM      r   rc   )
r   rL   rL   rL   r   rc            !@r   rW   rL   rM   )
r   r'   r'   r   r   rM   r         @r      T)use_missing)
r   r'   r'         @r   rM   r   r   r   r   )
r   r   r   r   rK   rM   rL   r   r   rc   )
r   rL   r   rL   r   r   rc   r   rL   rW   )r   r   r   r   rK   )rL   rM   r   r   rc   )r   rL   rL   rL   r   )rc   r   r   r   rW   r   r)   )r   rK         @r   r   r   r   r   r   r   r   rK   rK   rK   rK   rK   )re   r,   r   r-   rankdatar   r/   rB   s     r3   test_rankingzTestRanking.test_ranking   s    HH+,FOOA.6	81Q%FOOA.9	;FOOA4@=	?HH+,FOOA.6	8HHk<01FOOA.(*:;	=FOOAA6(/:	<FOOA15(,7	9r5   N)r6   r7   r8   r   r9   r5   r3   r   r      s    9r5   r   c                      e Zd Zd Zd Zd Zd Zej                  j                   e
j                         dk(  d      d        Zej                  j                   e
j                         dk(  d      ej                  j                  d	               Zd
 Zej                  j!                  dd      ej                  j!                  dd      d               Zd Zej                  j&                  d        Zd Zy)TestCorrc           
         t        j                  d      }t        j                         5  t        j                  dt
               t        t        j                  ||      d   d       t        t        j                  ||d d d         d   d       t        j                  |d      }t        j                  ||      }t        |d   t        u        t        |d	   t        u        d d d        t        j                  g d
      }t        j                  g d      }t        j                  ||      \  }}t        |t        j                  d      dz         t        |d       g d}t        j                  g d|      }t        j                  g d|      }	t        j                  ||	      \  }}t        |t        j                  d      dz         t        |d       y # 1 sw Y   xY w)NrW   errorr   r   rn         Tra   r   )r           r   )r   r   rL   rL   rK   rd   )FFFT)r   r   r   g     X@)r   r   rL   rn   )re   arangewarningscatch_warningssimplefilterRuntimeWarningr   r-   pearsonrr,   r   r   r+   sqrt)
r/   rB   prx1y1rprb   x2y2s
             r3   test_pearsonrzTestCorr.test_pearsonr   sf   IIbM$$& !!'>:1 5a 8#>1TrT7 ;A >E&AA&BBqEVO$BqEVO$ ' XX&'XXi r2&1Arwwqz!|,Au% +XX,48XXm$/r2&1Arwwqz!|,Au%5 '&s   B<G!!G*c                    t         j                  j                  g dg d      }t         j                  j                  g dg d      }t        j                  g d      }t        j                  g d      }t	        j
                  ||      \  }}t        j
                  ||      \  }}t        ||       t        ||       y )Nr   rK   rL   rM   r   rc   )r   r   r   r   r   r   ra   )	   r   r   rc   r   r   )r   r   r   r   r   r   )r   rM   r   rc   )r   rc   r   r   )r+   re   masked_arrayr,   r-   r   r   r
   )	r/   mxmyrB   ymrmpr   r   s	            r3   test_pearsonr_misaligned_maskz&TestCorr.test_pearsonr_misaligned_mask   s    UU 29KLUU 29KLHH\"HH\"R(B~~a#1RRr5   c                     g dg d}}t        t        j                  ||      d   d       ddddt        j                  gd	d
d
dt        j                  g}}t        j                  |      t        j                  |      }}t        t        j                  ||      d   d       g d}g d}t        t        j                  ||      d   d       dddddddddddddddt        j                  g}dddd d!d"d#d$d%d"dd&dd'dt        j                  g}t        j                  |      t        j                  |      }}t        t        j                  ||      d   d       t        t        d(            }t        t        d(            }|d)   |d   c|d<   |d)<   |d*   |d+   c|d+<   |d*<   |d,   |d-   c|d-<   |d,<   t        t        j                  ||      d   d.       t        j                  ||      }d/}t        ||d01       y )2N)333333@      @Gz	@HzG@)ffffff?Q@r   @r   gIQ=r   r   r   r   r   r   r   r   33333G@r#   皙%@N@333333?      P@̌O@r   ffffff?皙@333333?333333@r   @皙6@皙 @333333F@'@皙8@333333?@D@r   r   r   ffffff@r   333333?r   gI
?r   r   r#   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     r   i  rW   i  i  gV-?correlationpvalueTre   )
r   r-   	spearmanrr+   r   re   fix_invalidlistranger   r/   rB   r   res
attributess        r3   test_spearmanrzTestCorr.test_spearmanr   s   ')>AF,,Qq1!4jAT$rvv.T$tBFF/KA..#R^^A%6AF,,Qq1!4jA00F,,Qq1!4i@$dD#tT#sCc383dD#sD#sCc38..#R^^A%6AF,,Qq1!4i@
 ttqT1Q4
!ad#""qvD'1S6#$ 	F,,Qq1!4e< q!$.
C5r5   c                 R   g d}g d}d}t        j                  ||      \  }}t        ||       t        |d       t        j                  ||d      \  }}t        ||       t        |d       t        j                  ||d      \  }}t        ||       t        |d	       d
}t        j                  dd|      }d|z  t        j
                  j                  |      z   }t        j                  ||      \  }}t        j                  ||d      \  }	}
t        |
|dz         t        j                  ||d      \  }}t        |d|dz  z
         ||	cxk(  r|k(  sJ  J t        j                  t        d      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr   r   g+;
?gr?greateralternativegb?lessgcH}?r_   r   r   皙?rK   r   zalternative must be 'less'...matchz	ekki-ekki)
r-   r   r   r+   linspacerandomrandr   r	   
ValueError)r/   rB   r   r_expr   r   nstat1p1stat2p2stat3p3s                r3   test_spearmanr_alternativez#TestCorr.test_spearmanr_alternative  s|   00 #1%15!,-1)<15!,-1&915!?+ KK1a EBIINN1%%$$Q*	r$$QyA	rBF#$$Qv>	rAQJ'&&&&&&]]:-LMQ{; NMMs   ;FF&ppc64lezfails/crashes on ppc64leru   c                 r	   t        j                  t        j                  g d            }t        j                  t        j                  g d            }ddg}t        t        j                  t        j                  ||            |       t        j                  t        j                  d            }t        j                  t        j                  d            }ddg}t        t        j                  t        j                  ||            |       t        t        t
        j                  ||d       |d	   }|d
   |d	<   ||d
<   ddg}t        t        j                  t        j                  ||            |       |d   }|d   |d<   ||d<   ddg}t        t        j                  t        j                  ||            |       t        j                  t        j                  d            }t        j                  t        j                  d      d d d         }ddg}t        t        j                  t        j                  ||            |       |d	   }|d
   |d	<   ||d
<   ddg}t        t        j                  t        j                  ||            |       |d   }|d   |d<   ||d<   ddg}t        t        j                  t        j                  ||            |       t        j                  ddddt        j                  g      }t        j                  ddddt        j                  g      }t        j                  ddddt        j                  g      }t        t        j                  t        j                  ||            dd g       t        t        j                  t        j                  ||d!            dd"g       t        t        j                  t        j                  ||            d#d$g       t        j                  d%d%d%d%d&d&d%d'd%d&ddd%d(d%d&d%d%d%d%d%t        j                  g      }t        j                  d%d)d)d)dd*d'd%d+d,d-d)d)d)d)d)d)d%dd.t        j                  d%g      }t        j                  ||      }t        t        j                  |      d/d0g       d1}t        ||d23       y )4N)r   rK   r   rc   )rM   r   r      r   r   rW   gxO~>bananamethodr   rK   g?>?gaV>r   rc   g}'}'?go&5>rn   r   g?>g}'}'r   r   r   r   r   g     :@gQgףp=
@r   r   g1UU?      ?
asymptoticglgN?g~ȋgQM?r   rX   r[   rZ   r]   !   C         -   gXJĿgvPwTk?r   Tr   )re   r,   r+   r   r   r-   
kendalltaur   assert_raisesr   r   r   r   )r/   rB   r   expectedbzresultr   s           r3   test_kendalltauzTestCorr.test_kendalltau1  s
    HHRXXl+,HHRXXm,- :BJJv'8'8A'>?J HHRYYr]#HHRYYr]# +,BJJv'8'8A'>?J 	j&"3"3Q(K aDt!! '(:;BJJv'8'8A'>?J aDt!! '(:;BJJv'8'8A'>?J HHRYYr]#HHRYYr]4R4() ,-BJJv'8'8A'>?J aDt!! ();<BJJv'8'8A'>?J aDt!! ();<BJJv'8'8A'>?J NND$dBFF;<NND$tRVV<=NND$dBFF;<BJJv'8'8A'>?'.	0BJJv'8'8Al'ST'3	5BJJv'8'8A'>?'3	5 NNAq!QB2q"Ar1b!Q1aI JNNAr2r2r2q"bBBB2r2661N O""1a(BJJv.Y0GH /
FJ48r5   c                 @   t        j                  dt              }t        j                  |d      }t        j                  dt              }t        j
                  |dd  |d d f      }t        t        j                  t        j                  ||      d                y )Nr   r   i    r   )
r+   r   floatre   masked_greaterconcatenater   isfiniter-   r  )r/   rB   r   s      r3   test_kendalltau_largezTestCorr.test_kendalltau_large  sx     IId%(a&IId%(NNAdeHah/0F--a3A678r5   c                 Z   t         t         dddddddddddgg ddddd	d
ddddt         ddt         gt         d	dddt         d	ddddddgg}t        j                  |      j                  }t	        j
                  |      }t        |d   dd       t        |d   j                  d      g d       y )NrM   rK         r   r   rL   rM   rL   r   rL   rK   r   rL   r   r   rK   rL   r   rL   rc      r   r	     zglobal p-value (indep)gMb?zseasonal p-value)g
ףp=
?g(\?皙?g{Gz?)r   re   r   Tr-   kendalltau_seasonalr   round)r/   rB   outputs      r3   test_kendalltau_seasonalz!TestCorr.test_kendalltau_seasonal  s    31b"aAq!Q:4Aq"aAq#q!S91b!RaAq!Q:< NN1++A.F#;<eQGF#56<<Q?1	3r5   r  )exactr  r   	two-sidedr   r   c                    t         j                  j                  d       d}t         j                  j                  |      }t         j                  j                  |      }t         j                  j                  |      dkD  }t	        j
                  ||      }t	        j
                  ||      }t        j                  ||||      }	|j                         }
|j                         }t        j                  |
|||      }t         j                  ||<   t         j                  ||<   t        j                  |||d|      }t        |	|       t        ||       y )Nr   r(   r   ra   )r  r   omit)r  
nan_policyr   )r+   r   seedr   re   r,   r-   r  
compressedr   r   r   )r/   r  r   r   rB   r   rb   x_maskedy_masked
res_maskedx_compressedy_compressedres_compressedres_nans                 r3   test_kendalltau_mstats_vs_statsz(TestCorr.test_kendalltau_mstats_vs_stats  s    			qIINN1IINN1yy~~a 3&88AD)88AD)&&hv;H
  **,**,)),v;P &&$&&$""qFM 	
N30r5   c           	          ddddddddd}|j                         D ]-  \  }}t        j                  |d   |d	         }t        ||       / y )
Ng遣m?g:4W?g,
:H r   gK?g(6?))r_   iY	  )e   i	  )   r   )   r   )rA  r   )   r   )   iE&  )   i%  r   r   itemsr   _kendall_p_exactr   r/   expectationsncr  r   s        r3   test_kendall_p_exact_mediumz$TestCorr.test_kendall_p_exact_medium  s`     &<%;"8"%"8"%%;%;= )..0LB00A1>CX. 1r5   c                     ddddddd}|j                         D ]-  \  }}t        j                  |d   |d	         }t        ||       / y )
NgE?gU`Ux<?gve?gZ?g=?gG?))i  i5  )i  i\  )i   idd )i!  ih )i@  i 	 )iA  i 	 r   r   rE  rH  s        r3   test_kendall_p_exact_largez#TestCorr.test_kendall_p_exact_large  s[     '=&<'='=(>(>@ )..0LB00A1>CX. 1r5   c                 L   g d}g dddddddd	d
dddddddddddddddddddddddddt         j                  }t        t        j                  ||      d   d d!       t        j                  ||      }d"}t        ||d#$       y )%N)#r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn   g-@g+@g(@g333333$@gffffff@gffffff@g333333@gffffff@g333333@r   gffffff
@g	@r    gffffff@r'   g333333@gffffff@g @r   g      ?g?r   g?皙?gffffff?r   r   r(  r   r   g/"?r   r   Tr   )r+   r   r   r-   pointbiserialrr   r   s        r3   test_pointbiserialzTestCorr.test_pointbiserial  s   5BT B4 B Bt BS B# Bs BC B Bc B3 B BBBBB!$B&)B+.B03B58B:=B?BBDGBILBBBBB!$B&)B+.B03B58B:<&&B 	F11!Q7:GQG ##Aq).
C5r5   N)r6   r7   r8   r   r   r   r  r   r   r   platformmachiner  slowr!  r-  parametrizer=  rK  xslowrM  rQ  r9   r5   r3   r   r      s   &>$6L+<Z [[(((*i79  ;T9;T9l [[(((*i79  ;[[9 ;9
3 [[X'>?[[],LM1 N @1:/ [[/ /6r5   r   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestTrimmingc                 ^   t        j                  d      }t        t        j                  |      g d       t        j                  d      }t        t        j                  |d      g d       t        j                  d      }t        t        j                  |dd      g d       t        j                  d      }t        t        j                  |dd	
      g d       t        j                  d      }t
        x|ddg<   |d<   t        t        j                  |d      g d       t        j                  d      j                  dd      }dgdz  dgdz  z   dgdz  z   }t        j                  |dd	d       }t        |j                  j                         |       t        j                  |dd	d      }t        |j                  j                         |       t        j                  |dd	d      }t        |j                  j                  j                         |       t        j                  d      j                  dd      }t
        |d<   dgdz  dgdz  z   dgdz  z   }t        j                  |dd	d       }t        |j                  j                         |       t        j                  |dd	d      }t        |j                  j                         |       t        j                  |j                  dd	d      }t        |j                  j                  j                         |       y )NrW   
r   r   rK   rL   rM   r   rc   r   r   r   )rK   r   )
NNrK   rL   rM   r   rc   r   r   NFFlimits	inclusive)
NNNrL   rM   r   rc   r   NN)r   r(  T)r]  relative)
Nr   rK   rL   rM   r   rc   r   NN   r   rn   r   )NNrK   rL   rM   Nrc   r   r   NNNr_   r   r\   rX   )r_  r)   r   r	  )
re   r   r
   r-   trimr   reshape_maskravelr)  )r/   rS   rB   r  trimxs        r3   	test_trimzTestTrimming.test_trim  s`   IIbMV[[^%:;IIbMV[[5)+IJIIbMV[[%-H9	;IIbMV[[)TB3	5 IIbM!!1R&	AaDV[[E*K	M IIcN""2r*3r6QCF?aSV+Ay4dCU[[&&((3Ay4a@U[[&&((3Ay4bAU[[]]((*H5 IIcN""2r*!3r6QCF?aSV+Ay4dCU[[&&((3Ay4a@U[[&&((3ACCTCUWW]]((*H5r5   c                    t        j                  d      }t        t        j                  |      j                         d       t        t        j                  |d      j                         d       t        |dd t        j                  |      }t        |j                         d       t        |j                  d	gd
z  dgdz  z   d	gdz  z   dgdz  z   d	gd
z  z          t        |_        d|_
        t        t        j                  |      j                         d       t        t        j                  |      j                         d       y )Nr_   r[   r   )tailr]   r(   r\   0   r   r#  r   "   rX      )rW   rW   )re   r   r
   r-   trimbothcounttrimtailr   rc  r   shape)r/   rB   re  s      r3   test_trim_oldzTestTrimming.test_trim_old  s    IIcNV__Q'--/4V__QC0668"="R"U[[]B'U[[1#b&A3r6/QCF":aSV"Cqc"f"LMV__Q'--/4V__Q'--/4r5   c                     t        j                  d      }t        j                  |dd      }t        j                  g dg d      }t        ||       t        |j                  |j                         y )NrW   )g333333?gQ?r[  r\  rZ  )
r   r   r   r   r   r   r   r   r   r   ra   )re   r   r-   trimrr,   r
   rb   )r/   rB   r  r  s       r3   
test_trimrzTestTrimming.test_trimr!  sR    IIbMaO88:!?AVX&V[[(--0r5   c                     t        j                  g d      }t        t        j                  |d      dd       t        t        j                  |d      dd       t        t        j                  |d      dd       y )NM   W   X   r                  i  i(  i+  i2  ix  i  i  i  i  i3
  r   iW  r   )r   r   r(  r(  i  )re   r,   r   r-   trimmed_meanr/   r0   s     r3   test_trimmedmeanzTestTrimming.test_trimmedmean)  sb    xx @ AF//S93BF//Y?aHF//Y?aHr5   c                    t         j                  j                  d      }|j                  d      }t        j                  |      }t	        j
                  |g d      }t        t        j                  |d      |j                                y )Nl   l{f0j rX   sizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   r   )
r+   r   default_rngsortre   r,   r   r-   trimmed_varvarr/   rng	data_origr0   s       r3   test_trimmedvarzTestTrimming.test_trimmedvar0  k     ii##$78JJBJ'	wwy!xx $B C**9c:DHHJGr5   c                    t         j                  j                  d      }|j                  d      }t        j                  |      }t	        j
                  |g d      }t        t        j                  |d      |j                                y )Nl   /{Gzi rX   r  r  ra   r   )
r+   r   r  r  re   r,   r   r-   trimmed_stdstdr  s       r3   test_trimmedstdzTestTrimming.test_trimmedstd:  r  r5   c                     t        j                  g d      }t        t        j                  |d      dd       t        t        j                  |d      dd       y )Nru  r  g>L@r   r(  )re   r,   r   r-   trimmed_stder  s     r3   test_trimmed_stdezTestTrimming.test_trimmed_stdeD  sI    xx @ AF//Y?1MF//S98QGr5   c                 t   t        j                  g d      }t        t        j                  |d      j                  d      dd       t        t        j                  |dd      j                  d      dd       t        |d<   t        j                  |      }t        |j                  |j                         y )	Nru  r  r   ddofg@r[  gffff7@r   )	re   r,   r   r-   	winsorizer  r   r
   rb   )r/   r0   
winsorizeds      r3   test_winsorizationzTestTrimming.test_winsorizationJ  s    xx @ AF,,T)<@@a@H#Q	(T9];??Q?GQ	 Q%%d+
Z__dii0r5   c           
      r   t        j                  t        j                  t        j                  dddg      }t	        t
        t        j                  |dd       t        t        j                  |d      t        j                  g d             t        t        j                  |d	      t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  g             t        t        j                  |dd
      t        j                  t        j                  t        j                  dddg             t        t        j                  |d	d
      t        j                  t        j                  t        j                  dddg             y )Nr   r   rK   )皙?r  raise)r3  )皙?r  r   )rO  rO  r2  )	re   r,   r+   r   r  r   r-   r  r
   r  s     r3   test_winsorization_nanz#TestTrimming.test_winsorization_nanV  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	:r5   N)r6   r7   r8   rf  rp  rs  r  r  r  r  r  r  r9   r5   r3   rX  rX    s4    #6J51IHHH
1:r5   rX  c                   ,   e Zd Zg dZ ej
                  dddddej                  g      Z ej                   ej                  g dg dg d	g d
g dg       ej                  g dg dg dg dg dge
            ZddddZd Zd Zd Zd Zd Zy)TestMomentsrJ   gp=
ף?g?߾?gD9?gQI?g}?5^I)gq2۪?g{!3?gr!fa?gk?gY?)gSH*:/?g#R/?g>y}zd?gV߯<?gF?)ggˠw?gyZf?g=?g!@Vyȧ?g#1?)geY(9?gD$?g;?gJX<q0?g#d?)g?gA]?g_.?g?g2^9?)TFFTF)TTTFT)FFFFF)TTTTT)FFTFFr   ra   Nro  r<   c                    t        j                  |      }|t        j                  ||      }t        ||       ||j                  }|j                  |k(  sJ y N)r+   r   broadcast_tor   r<   )r/   actualexpectro  r<   s        r3   _assert_equalzTestMoments._assert_equal}  sP    F#__VU3F66*=LLE||u$$$r5   c                 b   t        j                  | j                  d      }t        |dd       t        j                  | j                  d      }t        |d       t        j                  | j                  d      }t        |d       t        j                  | j                  d      }t        |d       t        j                  | j                  g d	      }t	        |g d
       t        j                  | j                  d      }t	        |d       t        t        t         j                  | j                  d       t        j                  | j                  g d      }t	        |g d
       t        j                  g       }| j                  |t        j                  t        j                         t        j                  t        j                  g t        j                              }| j                  |t        j                  t        j                         t        j                  t        j                  d      d      }| j                  |g dt        j                         t        j                  g gd      }| j                  |t        j                  dt        j                         t        j                  g gddgd      }| j                  |g d       t        j                  d      }t        j                  |d<   t        t        j                  |d      t         j"                         y )Nr   r   rW   rK         ?rL   rM        @rJ   )r   r  r   r  r   r   )r   rK   rL   r"   r   )r   r   r   r   )r   r  )r   )momentr)   )rK   r   )ro  g      $@r   )r-   r  testcaser   r   r  r   r  r+   r   float64r,   float32zerosr   r
   re   r   )r/   r   rB   s      r3   test_momentzTestMoments.test_moment  s   MM$--*Ac"%MM$--*Ad#MM$--*Ac"MM$--*Af% MM$--6/0 MM$---3j&--DMM$--)9:/0 MM"1bffBJJ7MM"((2RZZ891bffBJJ7MM"((6*31bBJJ?MM2$Q'1bffD

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


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

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

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

4==q9	;r5   c                     t        j                  | j                  | j                        }g d}t        ||j                  |j
                  dk(     d       y )N)OT\w%ܿr  OT\w?Fr`  decimal)r-   zmapr  r   r0   rb   )r/   r   desired_unmaskedvalss      r3   	test_zmapzTestVariability.test_zmapL  sG     KKt}}5!D!"6"#&&5"92	Gr5   c                     t        j                  | j                        }t        j                  ddddt
        j                  g      }t        ||d       y )Nr  r  r  r  r`  r  )r-   zscorer  re   r   r+   r   r   )r/   r   r1   s      r3   test_zscorezTestVariability.test_zscoreU  sH     MM$--(.."24E"2ORVV"M NGQ3r5   N)r6   r7   r8   __doc__re   r   r+   r   r  r  r   r  r9   r5   r3   r  r  =  s8     r~~q1Qrvv./H;G4r5   r  c                       e Zd Zd Zd Zd Zy)TestMiscc                    dgdz  dgdz  z   dgdz  z   dgdz  z   dgdz  z   d	gdz  z   dgdgdz  z   dgd
z  z   dgdz  z   d	gdz  z   g}ddgz  ddgz  z   ddgz  z   ddgz  z   ddgz  z   ddgz  z   dgddgz  z   d
dgz  z   ddgz  z   ddgz  z   g}t        t        j                  t        j                  | j
                  d
      |d
       y )Nr   rc   r	  r   r   r   rL   rK   rW   rM   r#  g_v	@g1%?g"u?gZӼ?g!u @gq&@g;pΈ$@gTR'p@g9#?gHPx?gQI?)r   r+   r+  r-   obrientransformr)  )r/   argsr  s      r3   test_obrientransformzTestMisc.test_obrientransforma  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	'r5   c                 .   t         t         dddddddddddgg ddddd	d
ddddt         ddt         gt         d	dddt         d	ddddddgg}t        j                  |      j                  }|j                  \  }}}}t	        t        j                  t        j                  ||      d      d       t	        t        j                  t        j                  ||d      d      d       t	        t        j                  t        j                  ||d      d      d       y )NrM   rK   r#  r$  r   r   rL   r%  rc   r&  r   r	  r'  )48E?gsA?g)g%䃞?g 	?l)r  g46<?)	r   re   r   r)  r   r+   r+  r-   ks_2samp)r/   rB   winterspringsummerfalls         r3   test_ks_2sampzTestMisc.test_ks_2sampi  s    #q!RQ1aAq94Aq"aAq#q!S91b!RaAq!Q:< NN1)*&BHHV__VV%DaH,	.BHHV__VVS%I1M,	.BHHV__VVS%I1M,	.r5   c                    g dg dg df}t        j                  | }t        |d   dd       t        |d   dd	       t        t        dd
ddddddd
ddgg ddd
dd	dddddt        ddt        gt        d	dddt        d	ddd
dddgg}t	        j
                  |      }t        j                  | }t        |d   dd       t        |d   dd       d}t        ||d       y )N)
g      "@      #@      @      @r  r         @r   r   r   )
r   r   r   r  r  r  r   r   r   r   )
r   r  r"   r   r   r   r   r"   r   r    r   g:pΈ$@rM   r   g(QGu?rc   rK   r#  r$  r   rL   r%  r&  r   r	  r'  gr @g-C6?	statisticr   Tr   )r-   friedmanchisquarer   r   re   r   r   )r/   r	  r  rB   r   s        r3   test_friedmanchisqzTestMisc.test_friedmanchisqx  s    999; ))40F1Iw2F1Ix3#q!RQ1aAq94Aq"aAqa371b!RQ1aAq9; NN1))1-F1Ivq1F1Ivq1 -
FJ48r5   N)r6   r7   r8   r
  r  r  r9   r5   r3   r  r  ^  s    '.9r5   r  c                  *   t        j                  ddd      } dt        j                  ddd      z  dz   }|t        j                  t        j                  ddd            z  }t        j                  | |      }t
        j                  }t        t        ||             d}t        ||d       d	t        |      v sJ t        |j                  d
       t        |j                  d       t        |j                  d       t        |j                  d       y )Nr   r_   r(  rW   rX   )slope	interceptrvaluer   stderrTr   intercept_stderrg5E%?g +l$@g4_Qc?g8?)r+   r   sinr-   
linregressr   LinregressResultr   
isinstancer   dirr   r  r   r"  r#  )rB   r   r  lrr   s        r3   test_regress_simpler*    s    
AsC Abkk!S#&&+AAr3'	((Aq!$F 
	#	#BJvr"#EJ
t4V,,, &9:((*<=';<//1DEr5   c                      t        j                  d      } t         j                  j                  d      }d}t        t        |      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)NrW   zBCannot calculate a linear regression if all x values are identicalr   )r+   r  r   r  r   r-   r%  )rB   r   msgs      r3   test_linregress_identical_xr-    sN    
A
		A
NC	z	-!Q 
.	-	-s   A((A1c                   $    e Zd Zd Zd Zd Zd Zy)TestTheilslopesc                 B   t        j                  g d      \  }}}}t        |d       t        |d       t        j                  g dd      \  }}}}t        |d       t        |d       t        j                  j                  g dg d      }t        j                  |      \  }}}}t        |d	       t        |d
       t        j                  |d      \  }}}}t        |d	       t        |d       g d}g d}t        j                  ||d      \  }}}}t        |d       t        |d       t        |dd       t        |dd       t        j                  ||dd      \  }}}}t        |d       t        |d       t        |dd       t        |dd       y )N)r   r   r   r   jointr  r   )r   r   r_   r   )FFTFra   rd   gUUUUUU?)r   rK   rL   rM   rW   r`  r&  )r         rX   r  7   N   gQ?rM   r"   gQ@rK   r  gGz@r   )r-   theilslopesr   r+   re   r,   )r/   r  r   lowerupperr   rB   s          r3   test_theilslopesz TestTheilslopes.test_theilslopes  s   )/););I)F&y%E3'Is+)/););ICJ*L&y%E3'Is+ EEKK-HKI)/););A)>&y%E4(It,)/););ACJ*L&y%E4(Is+ %')/););Aq$)G&y%E1%Is+E43E43)/););Aq$CJ*L&y%E1%Is+E43E43r5   c                    d}t        j                  t        |      5  t        j                  ddgddg      }t        j                  t        j                  |            sJ 	 d d d        t               5 }|j                  t        d       t        j                  g dg d      }t        |ddt
        j                  t
        j                  f       d d d        y # 1 sw Y   yxY w# 1 sw Y   y xY w)NzFAll `x` coordinates.*|Mean of empty slice.|invalid value encountered.*r   r   r   zinvalid value encountered...r   r   r   )r   r   r   )r   warnsr   r-   r6  r+   allisnanr   filterr   r   )r/   r,  r   sups       r3   test_theilslopes_warningsz)TestTheilslopes.test_theilslopes_warnings  s    V\\.4$$aVaV4C66"((3-((( 5  CJJ~'EF$$Y	:CC!Q!78 !  54 ! s   AC6AC(C%(C1c                 &   g d}g d}t        j                  ||      \  }}}}t        j                  ||      }t        ||j                         t        ||j                         t        ||j
                         t        ||j                         y)zv
        Simple test to ensure tuple backwards-compatibility of the returned
        TheilslopesResult object
        r   rK   rM   rM   rc   r   N)r-   r6  r
   r  r   	low_slope
high_slope)r/   r   rB   r  r   rE  rF  r  s           r3   'test_theilslopes_namedtuple_consistencyz7TestTheilslopes.test_theilslopes_namedtuple_consistency  s{    
 282D2DQ2J/y)Z##Aq) 	UFLL)Y 0 01Y 0 01Z!2!23r5   c                    t         j                  j                  d      }|j                  dddt         j                        }t        j                  ||      }t         j                  j                  |j                  d       y )Nl   U5<H r      rW   )r  r<   r   )
r+   r   r  integersuint8r   r6  testingr   r  )r/   r  r   r   s       r3   test_gh19678_uint8z"TestTheilslopes.test_gh19678_uint8  s]     ii##$45LLCbL91%


""399a0r5   N)r6   r7   r8   r9  rA  rG  rM  r9   r5   r3   r/  r/    s    $4N	94 1r5   r/  c                  V   dt        j                  d      z  dz   } t        t        j                  |       d       t        t        j                  | d      d       dt        j                  d      z  }d|z  dz
  } t        t        j                  | |      d	       t        t        j                  | |d      d	       d
| d d t        t        j                  | |      d	       t        j                  d      }dd|z  z   t
        j                  j                  dd      z   } t        j                  ||       \  }}}}}t        j                  | |      \  }}t        ||d       t        ||d       t        j                  | |d      \  }}t        ||d       t        ||d       y )NrK   rW   r   )r   r   separater  r   r    )r  r  r  rM   gffffffr      r  random_stater   r=   )
r+   r   r
   r-   siegelslopesr   normrvsr%  r   )r   rB   	slope_olsintercept_ols_r  r   s          r3   test_siegelslopesrY    sg   	BIIbMCA$$Q'4$$Qz:JG	BIIbMA	AA$$Q*K8$$Q*={K AbqE$$Q*K8 			"As1uuzz~~2C~@@A(-(8(8A(>%I}aA**1a0E9E93/I}37**1a
CE9E93/I}37r5   c                      g d} g d}t        j                  | |      \  }}t        j                  | |      }t        ||j                         t        ||j                         y)zl
    Simple test to ensure tuple backwards-compatibility of the returned
    SiegelslopesResult object.
    rC  rD  N)r-   rS  r
   r  r   )r   rB   r  r   r  s        r3   (test_siegelslopes_namedtuple_consistencyr[    sW    
 	AA**1a0E9  A&F %F,,-r5   c            
         t         j                  j                  d      } | j                  d      }t        j                  |      \  }}d }t        d      D ]1  }t        t        j                   ||d d |f               ||          3 t        j                  t        |j                  d         D cg c]  } ||d d |f          c}      }t        t        j                  |      |       y c c}w )Nl   ,'  )r_   rM   r  c                 $   t        |       }t        j                  |      }| | d d t        j                  f   z
  }||d d t        j                  f   z
  }t        j                  t        j
                  ||ft              d      }||   ||   z  S )Nr   r   )k)lenr+   r   newaxistriuonesr  )yir   rB   dydxrb   s         r3   dijkz&test_sen_seasonal_slopes.<locals>.dijk,  sx    GIIaL"Q

]##1bjj=!!wwrww1vT2a8$x4  r5   rM   r   )
r+   r   r  r-   sen_seasonal_slopesr   r   medianr  ro  )r  rB   intra_slopeinter_sloperf  r  
all_slopess          r3   test_sen_seasonal_slopesrl  &  s    
))

 3
4C


!A%99!<K! 1X		$qAw-0+a.A  aggaj8I J8I1a1g8I JKJBIIj);7 !Ks   5C2c                      t        j                  t        j                  d      dd      } t	        | j
                  t        j                  g d             y )NrL   r   )rO   r   r  )r-   plotting_positionsr+   r   r   r0   r,   )poss    r3   test_plotting_positionsrp  ;  s6    

#
#BIIaL!Q
7Cchh1B(CDr5   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	d
g      e
j                  j                  dddg      d               Zd Zy)TestNormalitytestsc                 l   t        j                  d      dz  }t        t        j                  |      t        j                  |             t        t        j                  |      t        j                  |             t        t        j                  |      t        j                  |             t
        j                  t
        j                  t
        j                  g}t        j                  t        j                  t        j                  g}g d}t        ||      D ]  \  }}t        j                  t        t              5   ||      }t        j                  |j                        sJ t        j                  |j                        sJ 	 d d d        t!        t"        ||        y # 1 sw Y   xY w)Nr  rn   r   r   rK   rL   r  rn   r   r   rK   rL   r  rn   r   r   rK   rL   r  rn   r   r   rK   rL   rK   rJ   r   )r+   r,   r   r-   
normaltestr   skewtestkurtosistestzipr   r<  r   r   r>  r  r   r  r   )r/   rB   funcsmfuncsfuncmfuncr   s          r3   test_vs_nonmaskedz$TestNormalitytests.test_vs_nonmaskedD  s/   HH+,a/!&"3"3A"6"'"2"21"5	7!&//!"4"'.."3	5!&"5"5a"8"'"4"4Q"7	9 !!5>>53E3EF##V__f6I6IJuf-KD%08MN1gxx...xx

+++ O *eQ/ .NNs   AF**F3	c                 l   t        j                  d      dz  }t        t        j                  |d       t        j                  |             t        t        j
                  |d       t        j
                  |             t        t        j                  |d       t        j                  |             y )Nrt  rK   r   )r+   r,   r   r-   ru  rv  rw  r   s     r3   test_axis_Nonez!TestNormalitytests.test_axis_NoneW  s{    HH&'*))!$79J9J19MN5vq7IJ++AD9++A.	0r5   c                 *   t        j                  d      dz  }t         j                  j                  t         j                  t         j                  |df   t         j                  ddg|j
                  z  df         }t        t        j                  |      t        j                  |             t        t        j                  |      t        j                  |             t        t        j                  |      t        j                  |             y )Nrt  rK   rW   TFra   )r+   r,   re   r_infr  r   r-   ru  r   rv  rw  )r/   rB   xms      r3   test_maskedarray_inputz)TestNormalitytests.test_maskedarray_input_  s    HH+,a/UU[[rvvq"}- eeD5'AFF*:D$@A  C))"-u/?/?/BC+U^^A->?++B/1C1CA1FGr5   c                 Z   t        j                  d      dz  }t        j                  |gdz        j                  }t        j
                  t        j                  t        j                  fD ]>  } ||      } ||      }t        |d   |d   gdz         t        |d   |d   gdz         @ y )Nrt  rK   r   r   )	r+   r,   vstackr)  r-   ru  rv  rw  r   )r/   rB   x_2dr{  res_1dres_2ds         r3   test_nd_inputz TestNormalitytests.test_nd_inputh  s    HH+,a/yy!q!##&&9L9LMD!WF$ZFF1Iq	{Q7F1Iq	{Q7	 Nr5   c                 ~    t        j                  d      dz  }t        j                  |      }d}t	        ||d       y Nrt  rK   r  Tr   )r+   r,   r-   ru  r   r/   rB   r   r   s       r3   !test_normaltest_result_attributesz4TestNormalitytests.test_normaltest_result_attributesq  s7    HH+,a/",
C5r5   c                 ~    t        j                  d      dz  }t        j                  |      }d}t	        ||d       y r  )r+   r,   r-   rw  r   r  s       r3   #test_kurtosistest_result_attributesz6TestNormalitytests.test_kurtosistest_result_attributesw  s7    HH+,a/!!!$,
C5r5   c           
          g d}t        j                  t        |      D cg c]  \  }}t        j                  ||       c}}      }t	        t        j                  |      d   dk  d       y c c}}w )N)
   r   :   r   r   )   r#  r   r      r   g{Gz?T)r+   hstackr  fullr
   r-   rw  )r/   countsr  crB   s        r3   test_regression_9033z'TestNormalitytests.test_regression_9033}  s`     7II61BC1BArwwq!}1BCDV((+A.5t< Ds    A0
testrv  rw  r   r   r   c                    t         j                  j                  dddd      }t        t         |      }t        t        |      } |||      \  }} |||      \  }}	t        ||d       t        |	|d       t        j                  |d	d
 t        j                  j                  |t        j                  |            } ||j                         |      \  }} |||      \  }}	t        ||d       t        |	|d       y )NrW   r'   rY   {   locscaler  rR  r   g-q=atolr   r   ra   )r   rT  rU  getattrr-   r   r+   r   re   r   r>  r5  )
r/   r  r   rB   
stats_testmstats_testz_exp_exr  r   s
             r3   test_alternativez#TestNormalitytests.test_alternative  s     JJNNr2CNHUD)
fd+{;
d1+614e,4e, !AEEqrxx{3KH
d1+614e,4e,r5   c                 f   t         j                  j                  dd      }d}t        j                  t
        |      5  t        j                  |d       d d d        t        j                  t
        |      5  t        j                  |d       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)NrX   r  rQ  z`alternative` must be...r   r   r   )	r   rT  rU  r   r	   r   r-   rv  rw  )r/   rB   r,  s      r3   test_bad_alternativez'TestNormalitytests.test_bad_alternative  sx    JJNNN5)]]:S1OOA73 2 ]]:S1w7 21 21 21s   B:B'B$'B0N)r6   r7   r8   r}  r  r  r  r  r  r  r   r   rU  r  r  r9   r5   r3   rr  rr  A  su    0&0H866= [[Vj.%AB[[]VY,?@- A C-&8r5   rr  c                       e Zd Zd Zy)TestFOnewayc                     t        j                  ddgt         j                        }t        j                  ddgt         j                        }t        j                  ||      }d}t        ||d       y )	Ni  i  r   i  i  r  Tr   )r+   r,   uint16r-   f_onewayr   )r/   rS   r  r   r   s        r3   test_result_attributesz"TestFOneway.test_result_attributes  sS    HHc3Zryy1HHc3Zryy1ooa#,
C5r5   Nr6   r7   r8   r  r9   r5   r3   r  r    s    6r5   r  c                   h    e Zd Z ej                  g d      Z ej                  g d      Zd Zd Zy)TestMannwhitneyu)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                 x    t        j                  | j                  | j                        }d}t	        ||d       y )Nr  Tr   )r-   mannwhitneyurB   r   r   )r/   r   r   s      r3   r  z'TestMannwhitneyu.test_result_attributes  s-    !!$&&$&&1,
C5r5   c                 "   t        j                  | j                  | j                        }t	        j                  | j                  | j                        }|j
                  |j
                  k(  sJ t        |j                  |j                         y r  )r-   r  rB   r   r   r  r   r   )r/   res1res2s      r3   test_against_statsz#TestMannwhitneyu.test_against_stats  s`     ""4664662!!$&&$&&1~~///T[[1r5   N)	r6   r7   r8   r+   r,   rB   r   r  r  r9   r5   r3   r  r    s8     * 	+A& 	 " 	#A6
2r5   r  c                       e Zd Zd Zy)TestKruskalc                 `    g d}g d}t        j                  ||      }d}t        ||d       y )N)r   rL   r   r   r   )rK   rM   rc   r   rW   r  Tr   )r-   kruskalr   r   s        r3   r  z"TestKruskal.test_result_attributes  s-    nnQ",
C5r5   Nr  r9   r5   r3   r  r    s    6r5   r  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	d
g      d        Zy)TestTtest_relc                    t         j                  j                  d       t         j                  j                  dd      g dz   }t	        j
                  |d d df   |d d df         }t        j
                  |d d df   |d d df         }t        ||       t	        j
                  |d d df   |d d df   d       }t        j
                  |d d df   |d d df   d       }t        ||       t	        j
                  |d d d df   |d d dd f   d      }t        j
                  |d d d df   |d d dd f   d      }t        ||       t        j
                  |d d d df   |d d dd f         }t        ||       y )	N rX   rM   r   r   r   rK   r   r   r   rK   )r+   r   r4  randnr   	ttest_relr-   r   )r/   outcomer  r  res3s        r3   r}  zTestTtest_rel.test_vs_nonmasked  s[   
		w))//"a(<7 wq!t}gadm<1wq!t}=d# wq!t}gadm$G1wq!t}4Hd#wq"1"u~wq!"u~AF2A212QGd# 2A212?d#r5   c                 l   t         j                  j                  d       t        j                  t         j                  j                  dd      g dg dg      }t               5 }|j                  t        d       |d d df   |d d d	f   ft         j                  t         j                  gd
dgffD ]k  }t        j                  | \  }}t        |t         j                  t         j                  f       t        |t         j                  t         j                  f       m 	 d d d        y # 1 sw Y   y xY wNr  rL   rK   r  r;  ra   %invalid value encountered in absoluter   r   r   r   )r+   r   r4  re   r   r  r   r?  r   r   r-   r  r   r/   r  r@  pairtr   s         r3   test_fully_maskedzTestTtest_rel.test_fully_masked  s    
		w//"))//!Q"7(19'=? CJJ~'NO!!Q$-A766266*S#J79''.1"1rvvrvv&67"1rvvrvv&67	9 !     %B;D**D3c                     t         j                  j                  d       t         j                  j                  dd      g dz   }t	        j
                  |d d df   |d d df         }d}t        ||d	       y 
Nr  rX   rM   r  r   r   r  Tr   )r+   r   r4  r  r-   r  r   r/   r  r   r   s       r3   r  z$TestTtest_rel.test_result_attributes  ^    
		w))//"a(<7wq!t}gadm<,
C5r5   c           
         t        t        t        j                  t	        j
                  d      t	        j
                  d             t	        j
                  d      }t        t        t        j                  |j                  ddd      |j                  ddd      d       t        t        t        j                  |j                  ddd      |j                  ddd      d       y )	NrW   r	  rN   rK   rL   rM   r   r   )r  r   r-   r  r+   r   rb  r   s     r3   test_invalid_input_sizez%TestTtest_rel.test_invalid_input_size  s    j&"2"2iimRYYr]	4IIbMj&"2"2ii1a(!))Aq!*<1	Fj&"2"2ii1a(!))Aq!*<1	Fr5   c                     t        j                  g g       }t        t        j                  t        j
                  |                   y r  )r-   r  r   r+   r=  r>  r/   r  s     r3   
test_emptyzTestTtest_rel.test_empty  -    B'rxx~&'r5   c                 8   t        j                  g dg d      \  }}t        t        j                  |      |ft        j
                  df       t               5 }|j                  t        d       t        j                  g dg d      \  }}t        |t        j                  t        j                  t        j                  g             t        |t        j                  t        j                  t        j                  g             d d d        y # 1 sw Y   y xY w)Nr;  r  r   r  )r-   	ttest_indr
   r+   absr  r   r?  r   r   r,   r   r/   r  r   r@  s       r3   test_zero_divisionz TestTtest_rel.test_zero_division   s    	951bffQi^bffa[1 CJJ~'NO##Iy9DAqq"((BFFBFF+;"<=q"((BFFBFF+;"<=	 !  s   B.DDc                     d}t        j                  t        |      5  t        j                  g dg dd       d d d        y # 1 sw Y   y xY wN4alternative must be 'less', 'greater' or 'two-sided'r   r   rK   rL   )rM   r   rc   foor   r   r	   r   r-   r  r/   r,  s     r3   r  z"TestTtest_rel.test_bad_alternative*  3    E]]:S1Y	uE 211   AAr   r   r   c                 ,   t         j                  j                  dddd      }t         j                  j                  dddd      }t        j                  |||      \  }}t	        j                  |||      \  }}t        ||d	
       t        ||d	
       t        j                  |dd t        j                  |dd t        j                  j                  |t        j                  |            }t        j                  j                  |t        j                  |            }t	        j                  |||      \  }}t        j                  |j                         |j                         |      \  }}t        ||d	
       t        ||d	
       y )NrW   r   r  *   r  r   rK   r   rP   r=   r   ra   )r   rT  rU  r  r-   r   r+   r   re   r   r>  r5  r/   r   rB   r   t_exr  r  r   s           r3   r  zTestTtest_rel.test_alternative/  s3   JJNNr"NEJJNNqND__Q{C
d1+>14e,4e, &&!B&&!BEEqrxx{3EEqrxx{31+>1__Q\\^Q\\^1<>
d4e,4e,r5   N)r6   r7   r8   r}  r  r  r  r  r  r  r   r   rU  r  r9   r5   r3   r  r    sR    $*
86F(>F
 [[]VY,?@- A-r5   r  c                   x    e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  ddd	g      d
        Zy)TestTtest_indc                 l   t         j                  j                  d       t         j                  j                  dd      g dz   }t	        j
                  |d d df   |d d df         }t        j
                  |d d df   |d d df         }t        ||       t	        j
                  |d d df   |d d df   d       }t        j
                  |d d df   |d d df   d       }t        ||       t	        j
                  |d d d df   |d d dd f   d      }t        j
                  |d d d df   |d d dd f   d      }t        ||       t        j
                  |d d d df   |d d dd f         }t        ||       t	        j
                  |d d df   |d d df   d	
      }t        j
                  |d d df   |d d df   d	
      }t        ||       t	        j
                  |d d df   |d d df   d
      }t        j
                  |d d df   |d d df   d
      }t        ||       y )Nr  rX   rM   r  r   r   r   rK   T	equal_varF)r+   r   r4  r  r   r  r-   r   )r/   r  r  r  r  res4res5s          r3   r}  zTestTtest_ind.test_vs_nonmaskedF  s   
		w))//"a(<7 wq!t}gadm<1wq!t}=d# wq!t}gadm$G1wq!t}4Hd#wq"1"u~wq!"u~AF2A212QGd# 2A212?d# wq!t}gadmtL1wq!t}Md#wq!t}gadmuM1wq!t}Nd#r5   c                 l   t         j                  j                  d       t        j                  t         j                  j                  dd      g dg dg      }t               5 }|j                  t        d       |d d df   |d d d	f   ft         j                  t         j                  gd
dgffD ]k  }t        j                  | \  }}t        |t         j                  t         j                  f       t        |t         j                  t         j                  f       m 	 d d d        y # 1 sw Y   y xY wr  )r+   r   r4  re   r   r  r   r?  r   r   r-   r  r   r  s         r3   r  zTestTtest_ind.test_fully_maskedc  s    
		w//"))//!Q"7y)>TU CJJ~'NO!!Q$-A766266*S#J79''.1"1rvvrvv&67"1rvvrvv&67	9 !  r  c                     t         j                  j                  d       t         j                  j                  dd      g dz   }t	        j
                  |d d df   |d d df         }d}t        ||d	       y r  )r+   r   r4  r  r-   r  r   r  s       r3   r  z$TestTtest_ind.test_result_attributesn  r  r5   c                     t        j                  g g       }t        t        j                  t        j
                  |                   y r  )r-   r  r   r+   r=  r>  r  s     r3   r  zTestTtest_ind.test_emptyv  r  r5   c                    t        j                  g dg d      \  }}t        t        j                  |      |ft        j
                  df       t               5 }|j                  t        d       t        j                  g dg d      \  }}t        |t        j                  t        j                  f       t        |t        j                  t        j                  f       d d d        t        j                  g dg dd      \  }}t        t        j                  |      |ft        j
                  df       t        t        j                  g dg dd      t        j                  t        j                  f       y # 1 sw Y   xY w)Nr;  r  r   r  Fr  )r-   r  r
   r+   r  r  r   r?  r   r   r   r  s       r3   r  z TestTtest_ind.test_zero_divisionz  s   	951bffQi^bffa[1 CJJ~'NO##Iy9DAqq266266"23q266266"23	 ! 	9F1bffQi^bffa[16++Iy6;=?Avvrvv>N	P ! s   BE>>Fc                     d}t        j                  t        |      5  t        j                  g dg dd       d d d        y # 1 sw Y   y xY wr  r  r  s     r3   r  z"TestTtest_ind.test_bad_alternative  r  r  r   r   r   c                 ,   t         j                  j                  dddd      }t         j                  j                  dddd      }t        j                  |||      \  }}t	        j                  |||      \  }}t        ||d	       t        ||d	       t        j                  |d
d t        j                  |dd t        j                  j                  |t        j                  |            }t        j                  j                  |t        j                  |            }t        j                  |j                         |j                         |      \  }}t	        j                  |||      \  }}t        ||d	       t        ||d	       y )NrW   rK   r_   r  r  r   r   rP   r=   r   r]   r^   ra   )r   rT  rU  r  r-   r   r+   r   re   r   r>  r5  r  s           r3   r  zTestTtest_ind.test_alternative  s3   JJNNr3NGJJNNq#NF__Q{C
d1+>14e,4e, &&!B66"REEqrxx{3EEqrxx{3__Q\\^Q\\^1<>
d1+>14e,4e,r5   Nr6   r7   r8   r}  r  r  r  r  r  r   r   rU  r  r9   r5   r3   r  r  E  sM    $:	86(PF
 [[]VY,?@- A-r5   r  c                   x    e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  ddd	g      d
        Zy)TestTtest_1sampc                    t         j                  j                  d       t         j                  j                  dd      g dz   }t	        j
                  |d d df   d      }t        j
                  |d d df   d      }t        ||       y )Nr  rX   rM   r  r   r   )r+   r   r4  r  r   ttest_1sampr-   r   )r/   r  r  r  s       r3   r}  z!TestTtest_1samp.test_vs_nonmasked  sk    
		w))//"a(<7   A2!!'!Q$-3d#r5   c                 
   t         j                  j                  d       t        j                  t         j                  j                  d      g d      }t         j                  t         j                  f}t               5 }|j                  t        d       t         j                  t         j                  fdf|dffD ]/  }t        j                  | \  }}t        ||       t        ||       1 	 d d d        y # 1 sw Y   y xY w)Nr  rL   r  ra   r  r   )r+   r   r4  re   r   r  r   r   r?  r   r-   r  r   )r/   r  r  r@  r  r  r   s          r3   r  z!TestTtest_1samp.test_fully_masked  s    
		w//"))//!"49EFFBFF# CJJ~'NO66266*C07C.A))401"1h/"1h/ B !  s    A/C99Dc                     t         j                  j                  d       t         j                  j                  dd      g dz   }t	        j
                  |d d df   d      }d}t        ||d	       y r  )r+   r   r4  r  r-   r  r   r  s       r3   r  z&TestTtest_1samp.test_result_attributes  sV    
		w))//"a(<7  A2,
C5r5   c                     t        j                  g d      }t        t        j                  t        j
                  |                   y )Nr   )r-   r  r   r+   r=  r>  r  s     r3   r  zTestTtest_1samp.test_empty  s-    !!"a(rxx~&'r5   c                    t        j                  g dd      \  }}t        t        j                  |      |ft        j
                  df       t               5 }|j                  t        d       t        j                  g dd      \  }}t        t        j                  |             t        |t        j                  t        j                  f       d d d        y # 1 sw Y   y xY w)Nr;  r   r   r  )r-   r  r
   r+   r  r  r   r?  r   r   r>  r   r   r  s       r3   r  z"TestTtest_1samp.test_zero_division  s    !!)Q/1bffQi^bffa[1 CJJ~'NO%%i3DAqBHHQK q266266"23	 !  s   A:CC#c                     d}t        j                  t        |      5  t        j                  g ddd       d d d        y # 1 sw Y   y xY w)Nr  r   r  rM   r  r   )r   r	   r   r-   r  r  s     r3   r  z$TestTtest_1samp.test_bad_alternative  s3    E]]:S1y!? 211s   AAr   r   r   c                 <   t         j                  j                  dddd      }t        j                  |d|      \  }}t	        j                  |d|      \  }}t        ||d	       t        ||d	       t        j                  |d
d t        j                  j                  |t        j                  |            }t        j                  |j                         d|      \  }}t	        j                  |d|      \  }}t        ||d	       t        ||d	       y )NrW   rK   r_   r  r  r   r   rP   r=   r   ra   )r   rT  rU  r  r-   r   r+   r   re   r   r>  r5  )r/   r   rB   r  r  r  r   s          r3   r  z TestTtest_1samp.test_alternative  s    JJNNr3NG&&q!E
d!!!QK@14e,4e, &&!BEEqrxx{3&&q||~q3>@
d!!!QK@14e,4e,r5   Nr  r9   r5   r3   r  r    sL    $	06(4@
 [[]VY,?@- A-r5   r  c                       e Zd ZdZd Zy)TestDescribez
    Tests for mstats.describe.

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

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

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

    Author: Alexander Loew

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

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

    c                 
    g dS )z9 Returns list of sample sizes to be used for comparison. )r  r_   rW   r   r9   r  s    r3   get_nzTestCompareWithStats.get_n  s    !!r5   c                    t         j                  j                  d       t         j                  j                  |      }|t         j                  j                  |      z   }t        j                  t        |      dz   d      }t        j                  t        |      dz   d      }||dt        |       ||dt        |       |dkD  }t         j                  j                  ||      }t         j                  j                  ||      }||||fS )Nr  r   g 7yACr   g s?Cra   )r+   r   r4  r  r  r_  re   r,   )r/   r   rB   r   r  ymrb   s          r3   generate_xy_samplez'TestCompareWithStats.generate_xy_sample  s     			wIIOOA		""WWSVaZ&WWSVaZ&1SV1SVDyUU[[$['UU[[$['!R|r5   c                    t        j                  ||ft         j                        }t        j                  ||ft         j                        }t        j                  |dz   |ft         j                        }t        j                  |dz   |ft         j                        }t        |      D ]&  }| j	                  |      \  |d d |f<   |d d |f<   }}	( |d| |d|d d f<   |d| |d|d d f<   t         j
                  j                  |t        j                  |            }t         j
                  j                  |t        j                  |            }||||fS )Nr   r   ra   )r+   r  r   r   r  re   r,   r>  )
r/   r   nxrB   r   r  r  r  re  rd  s
             r3   generate_xy_sample2Dz)TestCompareWithStats.generate_xy_sample2D*  s   GGQGRVV$GGQGRVV$WWac2Y'WWac2Y'rA'+'>'>q'A$AadGQq!tWb"  qV1Q36
qV1Q36
UU[["((2,[/UU[["((2,[/!R|r5   c                 *   | j                         D ]  }| j                  |      \  }}}}t        j                  ||      }t        j                  j                  ||      }t        t        j                  |      t        j                  |              y r  )r  r  r   r%  r-   r   r+   r   )r/   r   rB   r   r  r  result1result2s           r3   test_linregressz$TestCompareWithStats.test_linregress9  sn    A2215LAq"b&&q!,Gll--b"5GBJJw/G1DE	 r5   c                 
   | j                         D ]p  }| j                  |      \  }}}}t        j                  ||      \  }}t        j                  j                  ||      \  }}	t        ||d       t        ||	d       r y )Nrk  r  )r  r  r   r   r-   r   
r/   r   rB   r   r  r  r   r   rmpms
             r3   r   z"TestCompareWithStats.test_pearsonr@  sp    A2215LAq"b>>!Q'DAq\\**2r2FB2r22r2 r5   c                    | j                         D ]n  }| j                  |      \  }}}}t        j                  ||      \  }}t        j                  j                  ||      \  }}	t        ||d       t        ||	d       p y Nrk  )r  r  r   r   r-   r   r  s
             r3   r   z#TestCompareWithStats.test_spearmanrI  sp    A2215LAq"b??1a(DAq\\++B3FB2r*2r* r5   c                 p    t        j                  d      }t        t        t        j
                  ||d       y )Nrc   F)r+   r   r  r   r-   r   r   s     r3   !test_spearmanr_backcompat_usetiesz6TestCompareWithStats.test_spearmanr_backcompat_usetiesQ  s'     IIaLj&"2"2Aq%@r5   c                    | j                         D ]  }| j                  |      \  }}}}t        j                  t	        |            }t        j
                  j                  t	        |            }t        ||d       t        j                  t	        |            }t        j
                  j                  t	        |            }t        ||d        y )NgvIh%<=r=   )r  r  r   r?   r  r-   r   r/   r   rB   r   r  r  r   r   s           r3   
test_gmeanzTestCompareWithStats.test_gmeanW  s    A2215LAq"bCF#A##CG,BAr.CF#A##CG,BAr. r5   c                    | j                         D ]  }| j                  |      \  }}}}t        j                  t	        |            }t        j
                  j                  t	        |            }t        ||d       t        j                  t	        |            }t        j
                  j                  t	        |            }t        ||d        y NrW   )r  r  r   rE   r  r-   r   r'  s           r3   
test_hmeanzTestCompareWithStats.test_hmeanb  s    A2215LAq"bCF#A##CG,B2r*CF#A##CG,B2r* r5   c                 ^   | j                         D ]  }| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        ||d       t        j                  |      }t        j                  j                  |      }t        ||d        y r*  )r  r  r   r  r-   r   r'  s           r3   	test_skewzTestCompareWithStats.test_skewn  s    A2215LAq"b

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

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

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

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

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

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

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

1 = % 1 1" 1 ErK r5   c           	          | j                         D ]h  }| j                  |      \  }}}}t        j                  ||      }t        j                  j                  ||      }t        ||dt        |       d       j y )Nr   r0  r  )r  r  r   r  r-   r   r_  )r/   r   rB   r   r  r  r  zms           r3   r   zTestCompareWithStats.test_zmap  sf    A2215LAq"b

1a A""2r*BAr!CF|%8	 r5   c                 R   | j                         D ]  }| j                  |      \  }}}}t        t        j                  |      t        j
                  j	                  |      d       t        t        j                  |      t        j
                  j	                  |      d        y Nr`  r  )r  r  r   r   r  r-   r@  s         r3   r  z#TestCompareWithStats.test_variation  sx    A2215LAq"b 2ELL4J4J24N(*, 2ELL4J4J24N(*,	 r5   c                 R   | j                         D ]  }| j                  |      \  }}}}t        t        j                  |      t        j
                  j	                  |      d       t        t        j                  |      t        j
                  j	                  |      d        y rM  )r  r  r   r   tvarr-   r@  s         r3   	test_tvarzTestCompareWithStats.test_tvar  sv    A2215LAq"b

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

1u||/@/@/D(*,	 r5   c                    t        j                  d      }t        j                  |d      }t        j                  j                  |d      }t        t        j                  |      |j                  |j                             y )NrX   r   )	r+   r   r   rl  r-   r   r  r0   rb   )r/   rS   r  bms       r3   test_trimbothz"TestCompareWithStats.test_trimboth  sV    IIbMNN1c"\\""1c*
BGGRWWH$56r5   c                    | j                         D ]  }| j                  |      \  }}}}t        t        j                  |      t        j
                  j	                  |      d       t        t        j                  |      t        j
                  j	                  |      d       t        t        j                  |d      t        j
                  j	                  |d      d        y )Nrk  r  )r  r   )r]  )r  r  r   r   tsemr-   r@  s         r3   	test_tsemzTestCompareWithStats.test_tsem
  s    A2215LAq"b

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

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

1Y ? % 1 1"Y 1 G(*, r5   c                     | j                         D ]^  }|dkD  s	| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        ||       ` y )Nr   )r  r  r   rv  r-   r   r'  s           r3   test_skewtestz"TestCompareWithStats.test_skewtest  s]    A1u#66q91b"NN1%\\**2.2& r5   c                 ~    t        j                  d      dz  }t        j                  |      }d}t	        ||d       y r  )r+   r,   r-   rv  r   r  s       r3   test_skewtest_result_attributesz4TestCompareWithStats.test_skewtest_result_attributes  s5    HH+,a/ooa ,
C5r5   c                    t         j                  j                  d      dz  }t        j                  |      }t        j                  j                  |      }t        t        j                  |      t        j                  |             y )N)rX   rK   g      4@)r+   r   r   rv  r-   r   r   )r/   rB   r   r   s       r3   test_skewtest_2D_notmaskedz/TestCompareWithStats.test_skewtest_2D_notmasked$  sW    IIW%+NN1\\""1%

1rzz"~6r5   c                 <   d}| j                         D ]  }|dkD  s	| j                  ||      \  }}}}t        j                  |      }t        j                  j                  |      }t        |d   d   |d   d   d       t        |d   d   |d   d   d        y )NrK   r   r   rP   r=   r   )r  r  r   rv  r-   r   )	r/   r  r   rB   r   r  r  r   r   s	            r3   test_skewtest_2D_WithMaskz.TestCompareWithStats.test_skewtest_2D_WithMask+  s    A1u#88B?1b"NN1%\\**2.!QAq>!QAq> r5   c           	          t        j                  d      5  t               5 }|j                  t        d       |j                  t        d       | j                         D ]  }|dkD  s	| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        t        j                  |      t        j                  |              	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr  )overz(`kurtosistest` p-value may be inaccuratez!kurtosistest only valid for n>=20r   )r+   rq   r   r?  UserWarningr  r  r   ru  r-   r   r   )	r/   r@  r   rB   r   r  r  r   r   s	            r3   test_normaltestz$TestCompareWithStats.test_normaltest6  s    [[g&(9(;sJJ{$NOJJ{$GHZZ\q5#'#:#:1#=LAq"b((+A004B#BJJqM2::b>B " )<&&(;(;&&s*   DAC8(A>C8'D8D	=DDc                 z   t        j                  g d      j                  d      }t        j                  g d      j                  d      }|dk(  }t         j                  j	                  ||      }|j                         |j                         }}t        j                  |      }t        j                  j                  |      }t        ||       t        ||       t        ||       t        j                  j                  g       \  }	}
t        |
t        j                  dt         j                               y )N)r   r   rK   rK   rL   rL   rL   rM   rM   rM   rM   r  )r   r   rK   rK   rL   rL   rL   rM   rM   rM   rM   r   r   r   r   r  ra   r   r   )r+   r   rx   re   r,   r  r   find_repeatsr-   r
   intp)r/   rB   tmprb   r  x_origxm_origr   r   rX  r  s              r3   test_find_repeatsz&TestCompareWithStats.test_find_repeatsA  s    JJ89@@IjjFGNNwWr	UU[[4[(&&(BGGIq!\\&&r*QQR! LL--b1	6VRXXarww78r5   c                    | j                         D ]v  }| j                  |      \  }}}}t        j                  ||      }t        j                  j                  ||      }t        |d   |d   d       t        |d   |d   d       x y )Nr   rW   r  r   r   )r  r  r   r  r-   r   r'  s           r3   r  z$TestCompareWithStats.test_kendalltauT  sz    A2215LAq"b  A&A((R0B!beR8!beQ7 r5   c           	         | j                         D ]n  }| j                  |      \  }}}}t        j                  |      }t        j                  j                  |      }t        |j                  |dt        |              p y )Nr   )r  r  r   r  r-   r   r)  r_  r'  s           r3   r
  z)TestCompareWithStats.test_obrientransform\  sf    A2215LAq"b%%a(A--b1BR#a&\2	 r5   c           
         dD ]N  }t               5  dD ]1  }| j                         D ]  }| j                  |      \  }}}}t        j                  |t        j
                  j                  ||      }t        j                  j	                  |t        j
                  j                  ||      }	t        t        j                  |      t        j                  |	             t        j                  |t        j
                  j                  ||      }
t        t        j                  |      t        j                  |
              4 	 ddd       Q y# 1 sw Y   ]xY w)zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.autor.  asympr   r   r0  r   r  N)r   r  r  r   ks_1samprT  cdfr-   r
   r+   r   r/   r  r   r   rB   r   r  r  r  r  r  s              r3   test_ks_1sampz"TestCompareWithStats.test_ks_1sampc  s    .D"$#CK!ZZ\'+'>'>q'A1b"$~~a:ED R$||44RALSW  5  Y$RZZ%5rzz$7GH$~~b%**..:ED R$RZZ%5rzz$7GH * $D %$ /$$s   D8EE 	c           
      .   dD ]  }t               5  dD ]  }| j                         D ]  }| j                  |      \  }}}}t        j                  |d||      }t        j
                  j	                  |d||      }	t        t        j                  |      t        j                  |	             t        j                  |d||      }
t        t        j                  |      t        j                  |
               	 ddd        y# 1 sw Y   xY w)z]
        Checks that 1-sample mstats.kstest and stats.kstest agree on masked arrays.
        rm  rp  rT  rq  N)	r   r  r  r   kstestr-   r
   r+   r   rt  s              r3   test_kstest_1sampz&TestCompareWithStats.test_kstest_1samps  s     /D"$#CK!ZZ\'+'>'>q'A1b"$||Av8C$ P$||222v?JQU  3  W$RZZ%5rzz$7GH$||B8C$ P$RZZ%5rzz$7GH * $D %$ /$$s   C,D

D	c           
      f   dD ]  }t               5 }|dv rd}|j                  t        |       dD ]  }| j                         D ]  }| j	                  |      \  }}}}	t        j                  ||||      }
t
        j                  j                  ||	||      }t        t        j                  |
      t        j                  |             t        j                  ||||      }t        t        j                  |
      t        j                  |               	 ddd       ! y# 1 sw Y   -xY w)zVChecks that mstats.ks_2samp and stats.ks_2samp agree on masked arrays.
        gh-8431rm  rn  r.  )ks_2samp: Exact calculation unsuccessful.rp  rq  N)r   r?  r   r  r  r   r  r-   r
   r+   r   r/   r  r@  messager   r   rB   r   r  r  r  r  r  s                r3   r  z"TestCompareWithStats.test_ks_2samp  s     /D"$,,IGJJ~w7#CK!ZZ\'+'>'>q'A1b"$~~a:ED R$||44RALSW  5  Y$RZZ%5rzz$7GH$~~b!:ED R$RZZ%5rzz$7GH * $D	 %$ /$$   DD&&D0	c           
      f   dD ]  }t               5 }|dv rd}|j                  t        |       dD ]  }| j                         D ]  }| j	                  |      \  }}}}	t        j                  ||||      }
t
        j                  j                  ||	||      }t        t        j                  |
      t        j                  |             t        j                  ||||      }t        t        j                  |
      t        j                  |               	 ddd       ! y# 1 sw Y   -xY w)z]
        Checks that 2-sample mstats.kstest and stats.kstest agree on masked arrays.
        rm  rz  r{  rp  rq  N)r   r?  r   r  r  r   rw  r-   r
   r+   r   r|  s                r3   test_kstest_2sampz&TestCompareWithStats.test_kstest_2samp  s     /D"$,,IGJJ~w7#CK!ZZ\'+'>'>q'A1b"$||Aq8C$ P$||222r?JQU  3  W$RZZ%5rzz$7GH$||B8C$ P$RZZ%5rzz$7GH * $D	 %$ /$$r~  N))r6   r7   r8   r  r  r  r  r  r   r   r%  r(  r+  r-  r  r  r  r  r9  r;  r=  rA  rE  rI  r   r  rP  rS  rV  rX  rZ  r\  r^  rb  ri  r  r
  ru  rx  r  r  r9   r5   r3   r  r    s    ,"F3+A	/
+
+
+($	+M*09#KJ	K9,,7	,'67	?	C9&83I I$I(Ir5   r  c                      e Zd Zej                  j                  dddddej                  dddddddddej                  g      Zej                  j                  ddddej                  dddddddg      ZdZ	d Z
d Zd	 Zd
 Zd Zd Zd Zy)TestBrunnerMunzelr   rK   rM   rL   r   rk  c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        ||| j
                         t        ||k7         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )	Nr   r   r   r  |	&	@|	&	gҏGg?g@-pL?)r-   brunnermunzelXYr   significantr   )	r/   u1r  u2r  u3r  u4p4s	            r3   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sided  s6   %%dffdff&IB%%dffdff)LB%%dffdff)LB%%dffdff&IBBD,<,<=BD,<,<=bB 2$($4$4	6B 3$($4$4	6B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6B 3$($4$4	6r5   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr0  r   r  r  r   ҏGw?r-   r  r  r  r   r  r/   r  r  r  r  s        r3   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sided  s    %%dffdff+NB%%dffdff+NBBD,<,<=B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6r5   c                 x   t        j                  | j                  | j                        \  }}t        j                  | j                  | j                        \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr  r  r  r  r  r  s        r3   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default  s    %%dffdff5B%%dffdff5BBD,<,<=B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6r5   c                     d}d}t        |dv       t        t        t        j                  | j
                  | j                  ||       y )Nr   r  r/  r   r  r   r-   r  r  r  r/   r   distributions      r3   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error  sA    #CCDj**ffff!"	$r5   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nnormal)r  r  r  r  g "H[?r  r  s        r3   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_norm  s    %%dffdff8LB%%dffdff8LBBD,<,<=B 2$($4$4	6B 3$($4$4	6B 5$($4$4	6r5   c                     d}d}t        |dv       t        t        t        j                  | j
                  | j                  ||       y )Nr0  r   )r  r  r  r  s      r3   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error  s@    !?23j**ffff!"	$r5   c                 *   t        j                  | j                  g       \  }}t        j                  g | j                        \  }}t        j                  g g       \  }}t	        t        j                  |             t	        t        j                  |             t	        t        j                  |             t	        t        j                  |             t	        t        j                  |             t	        t        j                  |             y r  )r-   r  r  r  r   r+   r>  )r/   r  r  r  r  r  r  s          r3   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput  s    %%dffb1B%%b$&&1B%%b"-Br5   N)r6   r7   r8   r+   re   masked_invalidr   r  r  r  r  r  r  r  r  r  r  r9   r5   r3   r  r    s    
aAq!RVVQAq!Q266; 	<A
aAq"&&!Q1aAFGAK6.66	$	6	$
r5   r  )NNgHz>)Cr  r   rR  numpyr+   r   numpy.mare   r   r   scipy.stats.mstatsr   r-   scipycommon_testsr   r   r	   r  numpy.ma.testutilsr
   r   r   r   r   r   r   numpy.testingr   scipy.statsr   r   scipy.conftestr   scipy.stats._axis_nan_policyr   r   r   rC   rF   rH   r   r   r   rX  r  r  r  r  r  r*  r-  r/  rY  r[  rl  rp  rr  r  r  r  r  r  r  r  r  r  r9   r5   r3   <module>r     s        # # #  -  *E E E , 0 . R- -*!! 93 93 93x !3 !3 !3H9 9,u6 u6p	 u: u: u:p V/ V/ V/r& &RA A* 4 4 4@ -9 -9 -9`F, J1 J1Z8:.8*E _8 _8 _8D6 6.2 .2b6 6Y- Y-x\- \-~@- @-F7 70 lI lI lI^c cr5   