
    S_f~                       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	c m
Z ddlZddlZddlmZmZmZmZmZmZmZmZmZmZ ddlZddlmZ ddlmc mZ ddl
m Z m!Z!m"Z"m#Z#m$Z$ ddl
Z%ddl&m'Z' ddl(m'c m)Z) ddl*m'c m+Z, ddl-m.Z. dd	l/m0Z0 dd
l1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> 	  e g de?      Z@ e g de?      ZA e g de?      ZB e g de?      ZC e g de?      ZD e g de?      ZE e g de?      ZF G d d      ZG G d d      ZH G d d      ZI G d d       ZJ G d! d"      ZKd# ZLd$ ZMd% ZNd& ZOd' ZP G d( d)      ZQd* ZRd+ ZSd, ZTd- ZU G d. d/      ZV G d0 d1      ZWd2 ZXd3 ZYd4 ZZ G d5 d6      Z[ej                  j                  d7       G d8 d9             Z^ G d: d;      Z_ G d< d=      Z` G d> d?      Zad@ Zb G dA dB      Zc G dC dD      Zdej                  j                  dE        Zg G dF dG      Zh G dH dI      Zi edJg dK      Zj ejg dLddddMdNdM e%j                  dO      z  dP e%j                  dQ      z  z   z  dNdR e%j                  dS      z  dR e%j                  dT      z  z   z  dUK       ejg dLg dVdddWdNdM e%j                  dS      z  dR e%j                  dO      z  z   dR e%j                  dX      z  z   z  dNdN e%j                  dO      z  dY e%j                  dS      z  z   dN e%j                  dZ      z  z   z  d[K       ejg dLdRdddMdNdM e%j                  dO      z  dP e%j                  dQ      z  z   z  dNdR e%j                  dS      z  dR e%j                  dT      z  z   z  dUK       ejg d\g d\ddddddK      gZl ejg dddddddK       ej e%j@                  g g g g      j                  dddg d]g d]g d]g d]K       ej e%j@                  g g g g      dddg g g g K      gZn G d^ d_      Zod` Zpej                  j                  dadbe%j                  fdce%j                  fg      dd        Ztde Zudf Zvdg Zw G dh di      Zx G dj dk      Zy G dl dm      Zzdn Z{do Z|dp Z}ej                  j                  dq e%j                  dr      dsf e%j                  dt      dufg      dv        Zdw Zej                  j                  dxg dy      dz        Zej                  j                  d{e'j                   e%jB                  d|      dffe'j                   e%jB                  d|       e%jB                  d|      ffg      d}        Zdd~Zd Z G d d      Z G d d      Z G d d      Z G d d      Zd Zd Zd Zd Zej                  j                  dq e%j                  dr      dsf e%j                  dt      dufg      d        Zd Zd Zd Zd Zd Zd Zd Z G d d      Zd Z G d d      Z G d d      Zd Zd Z G d d      Zd Zd Z	 	 ddZ	 	 ddZ	 	 ddZ G d d      Z G d d      Z G d d      Z G d d      Zd Zd Zd Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d«      Z G dÄ dī      Z G dń dƫ      Z G dǄ dȫ      Z G dɄ dʫ      Z G d˄ d̫      Z G d̈́ dΫ      Ze%jt                  jw                  dϫ      Zeju                  d|      Zeju                  d|      Zej                  j                  de'j~                  effe'j                  ee'j                  j                  ffe'j                  eeffe'j                  eeffg      dф        Z G d҄ dӫ      Zy)z Test functions for stats module

    WRITTEN BY LOUIS LUANGKESORN <lluang@yahoo.com> FOR THE STATS MODULE
    BASED ON WILKINSON'S STATISTICS QUIZ
    https://www.stanford.edu/~clint/bench/wilk.txt

    Additional tests by a host of SciPy developers.
    N)
namedtuple)product)
assert_assert_equalassert_almost_equalassert_array_almost_equalassert_array_equalassert_approx_equalassert_allcloseassert_warnssuppress_warningsassert_array_less)raises)arrayarangefloat32float64power)kolmogn)FuncData)binom)optimize   )check_named_results)cdist)_broadcast_concatenate)_permutation_distribution_t)	AxisError)	r                        	   )	r   r   r   r   r   r   r   r   r   )	iiiiiiiii)	g~?g<?gEk?g?ge(?gq?g?g8C?gG?)	g   mBg   }Bg  yӅBg   Bg  @0Bg  yӕBg  BwBg   Bg   ^B)	-q=g-=gAfc=g-=gdy=gAfc=gYLɞ=g-=gSSʣ=)	      ?      ?      @      @      @      @      @      @      !@c                   |    e Zd Z ej                  ej
                        j                  Zd Zd Z	d Z
d Zd Zd Zy)TestTrimmedStatsc           
         t        j                  t        dd      }t        |d| j                         t        j                  t        dd      }t        j                  t        d       }t        ||| j                         t        dt        	      j                  d
d      }t        j                  |d       }t        ||j                         | j                         t        j                  |d      }t        ||j                  d      d       t        j                  |d      }t        ||j                  d      d       t        j                  |dd       }t        |d| j                         t        j                  |dd      }g d}t        ||d       t        j                  |ddd      }g d}t        ||d       t        j                  |      }t        j                  |ddd f<   t        j                  |dd      }ddddt        j                  t        j                  t        j                  g}t        ||d       t               5 }|j                  t        d       t        j                  |dd      }d d!d"d#t        j                  t        j                  t        j                  t        j                  t        j                  g	}t        ||d       t        j                  |dd$d      }dd!d"d#t        j                  t        j                  t        j                  t        j                  t        j                  g	}t        ||d       d d d        y # 1 sw Y   y xY w)%Nr   r%   TT      @significant)FFlimits	inclusiver:   ?   dtyper&   r$   axisr   r%   decimalr   )r   =   )r:   rA   g     ?@)r      )         '@r&   
            TF)r:   r;   rA   )      %@rG   r&   rH   rI   rJ   rK   )r   rK   r,   r-   r.   Mean of empty slicer!   rH      rE   FT)statstmeanXr
   dprecr   r   reshapemeanr   npr   nanr   recordRuntimeWarning)selfyy1y2x_2dy_truex_2d_with_nansups           <lib/python3.12/site-packages/scipy/stats/tests/test_stats.py
test_tmeanzTestTrimmedStats.test_tmeanH   sq   KK6<0As

;[[6^D[[4(B

;b(00A6KK4(Atyy{

CKK1%!!TYYAY%6BKK1%!!TYYAY%6BKKW48At<KKW15.!!VQ7KKWAN0!!VQ7!#b"#gKKgA>S#sBFFBFFBFF;!!VQ7  
	<CJJ~'<=Dq9ARRVVRVVRVVRVVRVVLF%a;D&3!=A2r2rvvrvvrvvrvvrvvNF%a;
	< 
	< 
	<s   DM..M7c                    t        j                  t        dd      }t        |d| j                         t        j                  t        d       }t        |t        j                  d      | j                         t        d	t        
      j                  d      }t        j                  |d       }t        ||j                  d      | j                         t        j                  |d      }t        |d   t        j                  dd      d       t        j                  |d      }t        |d   t        j                  dd      d       t        j                  |dd d f         }t        |d| j                         t               5 }|j                  t        d       t        j                  |ddd      }t        |d   d| j                         t        j                  |ddd      }t        |d   d| j                         t        |d   t        j                          d d d        y # 1 sw Y   y xY w)Nr4   r5   r9   g@r7   r<   r   ddofr=   r>   )r&   r$   r@   r   )r   r$   g     v@r%   rB   )r   r&   g㪪@r    g@z"Degrees of freedom <= 0 for slice.)r   r"   )r:   rA   r;   r*   r   r#   )rS   tvarrU   r
   rV   varr   r   rW   r   rY   fullr   r[   r\   r   rZ   )r]   r^   ra   rd   s       re   	test_tvarzTestTrimmedStats.test_tvarw   s   JJq<@A1tzzJJJq&Aquu!u}$**Eb(008JJt$'AtxxQx/TZZHJJt!$!!A$(EqQJJt!$!!A$
(CQOJJtAqDz"A0djjI  
	'CJJ~'KL 

4Q,OA!ctzzB 

4Q,OA!&7TZZP1rvv&
	' 
	' 
	's   BH66H?c                     t        j                  t        dd      }t        |d| j                         t        j                  t        d       }t        |t        j                  d      | j                         y )Nr4   r5   gBĆ/H@r7   r<   r   rh   )rS   tstdrU   r
   rV   stdr]   r^   s     re   	test_tstdzTestTrimmedStats.test_tstd   sO    JJq&,/A1tzzJJJq&Aquu!u}$**E    c                    t        t        j                  d      d       t        j                  d      }t        t        j                  |      d       t        t        j                  |d      d       t        t        j                  |dd      d       |j                  d      }t        t        j                  |dd      d	dg       t        t        j                  |d
      g d       t        t        j                  |d 
      d       t        j                  d      }t        j                  |d<   t               5 }|j                  t        d       t        t        j                  |      t        j                         t        t        j                  |d      d       t        t        t        j                  |d       t        t        t        j                  |d       d}t        t        |      5  t        j                  |d       d d d        d d d        t               5 }|j                  t        d       t        j                  d      j                  dd      }t        j                  |dd      }t        |t        j                  dddg       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr!   rH   r   )
lowerlimitF)rv   r;   r   r"   r   r   r@   )r   r   r!   r#   r%         $@r&   invalid value*omit
nan_policy        raisefoobarz'propagate', 'raise', 'omit'matchfooAll-NaN slice encountered   )rv   rA   r%   rJ   )r   rS   tminrY   r   rW   rZ   r   r[   r\   assert_raises
ValueErrorfilter)r]   xrd   msgress        re   	test_tminzTestTrimmedStats.test_tmin   s   UZZ]A&IIbMUZZ]A&UZZa0!4UZZa5A1EIIfUZZa5AAq6JUZZ*O<UZZ-q1IIcNvv!  	0CJJ~'78A/A&92>*ejj!H*ejj!I0Cz5 0

1/0	0   	2CJJ~'BC		"%%a+A**Q115Crvvq!R01		2 	20 0	0 	0	2 	2s2   B:J5<J)J5.A2K)J2	.J55J>K
c                    t        t        j                  d      d       t        j                  d      }t        t        j                  |      d       t        t        j                  |d      d       t        t        j                  |dd      d       |j                  d      }t        t        j                  |dd      dd	g       t        t        j                  |d
      g d       t        t        j                  |d       d       t        j                  d      }t        j                  |d<   t               5 }|j                  t        d       t        t        j                  |      t        j                         t        t        j                  |d      d       t        t        t        j                  |d       t        t        t        j                  |d       d d d        t               5 }|j                  t        d       t        j                  d      j                  dd      }t        j                  |dd
      }t        |dd	dt        j                  g       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr!   rH   r&   )
upperlimitF)r   r;   r%   rw   r$   r   r@   r   r    r"   r$   r&   rx   r#   ry   rz   r{         "@r~   r   r   r   rI   )r   rA   r    )r   rS   tmaxrY   r   rW   rZ   r   r[   r\   r   r   r   )r]   r   rd   r   s       re   	test_tmaxzTestTrimmedStats.test_tmax   s   UZZ]A&IIbMUZZ]A&UZZa0!4UZZa5A1EIIfUZZa5AAq6JUZZ*O<UZZ-q1IIcNvv!  	JCJJ~'78A/A&92>*ejj!H*ejj!I	J   	2CJJ~'BC		"%%a+A**Q2A6Cq!R01		2 	2	J 	J	2 	2s   B'I6;A2J6I?Jc                    t        j                  t        dd      }t        j                  g d      }t        ||j                  d      t        j                  |j                        z  | j                         t        t        j                  t        dd	g
      t        j                  t        d 
      | j                         y )N)r    r%   rR   r9   )r!   r"   r#   r$   r%   r   rh   r7   rN   rH   r<   )
rS   tsemrU   rY   r   r
   rq   sqrtsizerV   )r]   r^   y_refs      re   	test_tsemzTestTrimmedStats.test_tsem   s    JJq=A)Auyyay02775::3FF(,

	4 	EJJq"b:!JJq6(,

	4rt   N)__name__
__module____qualname__rY   finfor   	precisionrV   rf   rn   rs   r   r   r    rt   re   r2   r2   D   s>    BHHRZZ **E-<^'@F2B2<4rt   r2   c                   f   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#e$jJ                  jM                  d"g d#      d$        Z'd% Z(d& Z)d' Z*d( Z+d) Z,e$jJ                  jZ                  e$jJ                  jM                  d*d+      e$jJ                  jM                  d,d-      d.                      Z.e$jJ                  jZ                  e$jJ                  jM                  d*d+      d/               Z/d0 Z0y1)2TestCorrPearsonrE   W.II.D. Compute a correlation matrix on all the variables.

        All the correlations, except for ZERO and MISS, should be exactly 1.
        ZERO and MISS should have undefined or missing correlations with the
        other variables.  The same should go for SPEARMAN correlations, if
        your program has them.
    c                 b    t        j                  t        t              }|d   }t        |d       y Nr         ?)rS   pearsonrrU   r
   r]   r^   rs      re   test_pXXzTestCorrPearsonr.test_pXX   s%    NN1QaDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   rU   BIGr
   r   s      re   
test_pXBIGzTestCorrPearsonr.test_pXBIG   s%    NN1S!aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   rU   LITTLEr
   r   s      re   test_pXLITTLEzTestCorrPearsonr.test_pXLITTLE   s%    NN1V$aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   rU   HUGEr
   r   s      re   test_pXHUGEzTestCorrPearsonr.test_pXHUGE   %    NN1T"aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   rU   TINYr
   r   s      re   test_pXTINYzTestCorrPearsonr.test_pXTINY  r   rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   rU   ROUNDr
   r   s      re   test_pXROUNDzTestCorrPearsonr.test_pXROUND
  s%    NN1U#aDAc"rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r   r   r
   r   s      re   test_pBIGBIGzTestCorrPearsonr.test_pBIGBIG  s%    NN3s#aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pBIGLITTLEz TestCorrPearsonr.test_pBIGLITTLE  s%    NN3v&aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pBIGHUGEzTestCorrPearsonr.test_pBIGHUGE  %    NN3t$aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pBIGTINYzTestCorrPearsonr.test_pBIGTINY  r   rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pBIGROUNDzTestCorrPearsonr.test_pBIGROUND#  s%    NN3u%aDAc"rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r   r   r
   r   s      re   test_pLITTLELITTLEz#TestCorrPearsonr.test_pLITTLELITTLE(  s%    NN6&)aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pLITTLEHUGEz!TestCorrPearsonr.test_pLITTLEHUGE-  %    NN6$'aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pLITTLETINYz!TestCorrPearsonr.test_pLITTLETINY2  r   rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pLITTLEROUNDz"TestCorrPearsonr.test_pLITTLEROUND7  s%    NN6%(aDAc"rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r   r   r
   r   s      re   test_pHUGEHUGEzTestCorrPearsonr.test_pHUGEHUGE<  %    NN4%aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pHUGETINYzTestCorrPearsonr.test_pHUGETINYA  r   rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pHUGEROUNDz TestCorrPearsonr.test_pHUGEROUNDF  %    NN4&aDAc"rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r   r   r
   r   s      re   test_pTINYTINYzTestCorrPearsonr.test_pTINYTINYK  r   rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r   r   r   r
   r   s      re   test_pTINYROUNDz TestCorrPearsonr.test_pTINYROUNDP  r   rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r   r   r
   r   s      re   test_pROUNDROUNDz!TestCorrPearsonr.test_pROUNDROUNDU  s%    NN5'aDAc"rt   c                     t        j                  t        t              }d}t        ||       t	        |j
                  |j                         y Ncorrelationpvalue)rS   r   rU   r   r   r   	statisticr]   r   
attributess      re   test_pearsonr_result_attributesz0TestCorrPearsonr.test_pearsonr_result_attributesZ  s3    nnQ".
C,S__cmm4rt   c           
          t        d      }t        j                  ||      \  }}t        |dd       t        |dt	        j
                  dt	        j                  d      z               y )N      @r   V瞯<atolr}   r   r   rS   r   r   rY   r   spacingr]   ar   probs       re   test_r_almost_exactly_pos1z+TestCorrPearsonr.test_r_almost_exactly_pos1`  sO    3K..A&43U+ 	c"**S/0A(BCrt   c           
          t        d      }t        j                  ||       \  }}t        |dd       t        |dt	        j
                  dt	        j                  d      z               y )Nr         r   r   r}   r   r   r   r   s       re   test_r_almost_exactly_neg1z+TestCorrPearsonr.test_r_almost_exactly_neg1i  sQ    3K..QB'44e, 	c"**S/0A(BCrt   c                     t        g d      }t        g d      }t        j                  ||      \  }}t        |t	        j
                  d      dz         t        |d       y )NrN   r   r   )r   r   r    r    r   UUUUUU?)r   rS   r   r
   rY   r   )r]   r   br   r   s        re   
test_basiczTestCorrPearsonr.test_basicr  sL     *)..A&4Arwwqz!|,D#&rt   c                    d}t        j                  t        j                  |      5  t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         d d d        y # 1 sw Y   y xY w)NAn input array is constantr   MbX?r   r   grh|?gv/?gsh|??)pytestwarnsrS   ConstantInputWarningr   r   rY   rZ   )r]   r   r   ps       re   test_constant_inputz$TestCorrPearsonr.test_constant_input{  sd     +\\%44C@ 	$>>"79NODAqBFF#BFF#	$ 	$ 	$s   ABBc                     dddt        j                  d      z   g}ddddt        j                  d      z  z   g}d}t        j                  t        j
                  |      5  t	        j                  ||      \  }}d d d        y # 1 sw Y   y xY w)Nr   r    r#   z/An input array is nearly constant; the computedr   )rY   r   r   r   rS   NearConstantInputWarningr   )r]   r   r^   r   r   r   s         re   test_near_constant_inputz)TestCorrPearsonr.test_near_constant_input  s|    1rzz!}$%1qA&'?\\%88D 	( >>!Q'DAq	( 	( 	(s   !BBc                 v    g d}g d}t        j                  ||      \  }}t        |d       t        |d       y )N)gy)r?gxd{s?gnp?g$9"o?ge =:k?)goȟg`
,gzg2l?g>??'ge;E?g3R?)rS   r   r   r]   r   r^   r   r   s        re   test_very_small_input_valuesz-TestCorrPearsonr.test_very_small_input_values  s;     LC~~a"1 	-.-.rt   c                     dt        j                  g d      z  }dt        j                  d      z  }t        j                  ||      \  }}t        |d       t        |d       y )NgY)	kR)r   r   r   r   r   r   r   r$   gLXz?g͗~-?)rY   r   r   rS   r   r   r  s        re   test_very_large_input_valuesz-TestCorrPearsonr.test_very_large_input_values  sV     /001~~a#1 	-./0rt   c                     t        j                  g d      }t        j                  g d      }t        j                  ||      \  }}t	        |d       t	        |d       y )N)g7	igNig_b4igZbi)gDig<'(½igmQiZbtig*D{?gݣ?)rY   r   rS   r   r   r  s        re   !test_extremely_large_input_valuesz2TestCorrPearsonr.test_extremely_large_input_values  sN     HH78HH9:~~a#1 	,-,-rt   c                     t        j                  ddgddg      }|\  }}t        |d       t        |d       t        |j                         d       y )Nr   r   r    r"   rN   r   )rS   r   r   confidence_interval)r]   r   r   r   s       re   test_length_two_pos1z%TestCorrPearsonr.test_length_two_pos1  sL     nnaVaV,1QQS,,.8rt   c                 n    t        j                  ddgddg      \  }}t        |d       t        |d       y )Nr   r   r    r"   rN   )rS   r   r   )r]   r   r   s      re   test_length_two_neg2z%TestCorrPearsonr.test_length_two_neg2  s4     ~~q!fq!f-1QQrt   z$alternative, pval, rlow, rhigh, sign))	two-sided?gmgƎ?r   )lessK˅?rN   g?
?r   )greater.?gդζr   r   )r  r  gfǎgl?rN   )r  r  r   gդζ?rN   )r  r  g?
r   rN   c                    g d}t        j                  g d      |z  }t        j                  |||      }t	        |j
                  d|z  d       t	        |j                  |d       |j                         }	t	        |	||fd       y )Nr   r   r    r!   )r   r   r(   r   alternativeg?r'   rtolư>)rY   r   rS   r   r   r   r   r  )
r]   r  pvalrlowrhighsignr   r^   resultcis
             re   test_basic_examplez#TestCorrPearsonr.test_basic_example  st     HH^$t+1+>((*<T*ANt$7'')T5M5rt   c                     t        j                  d      }| }t        j                  ||d      }t        j                  ||d      }t	        |j
                  d       t	        |j
                  dd       y )	NrH   r  r  r  r   r   g#B;r   )rY   r   rS   r   r   r   )r]   r   r^   test_greater	test_lesss        re   (test_negative_correlation_pvalue_gh17795z9TestCorrPearsonr.test_negative_correlation_pvalue_gh17795  s\    IIbMB~~a	BNN1aV<	++Q/	((!%8rt   c                     g d}g d}t        j                  ||      }|\  }}t        |d       t        |dd       t        |j	                         d       y )Nr   r   r    )r"   ir   r}   Hz>r   r  )rS   r   r   r   r  )r]   r   r^   r   r   r   s         re   #test_length3_r_exactly_negative_onez4TestCorrPearsonr.test_length3_r_exactly_negative_one  sP    nnQ" 14 3T*S,,.8rt   c                 T    g d}ddg}t        t        t        j                  ||       y )Nr+  r!   r"   r   r   rS   r   r]   r   r^   s      re   test_unequal_lengthsz%TestCorrPearsonr.test_unequal_lengths  s"    Fj%..!Q7rt   c                 P    dg}dg}t        t        t        j                  ||       y Nr   r   r0  r1  s      re   	test_len1zTestCorrPearsonr.test_len1  s"    CCj%..!Q7rt   c                     g d}g d}d}t        j                  t        |      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)N)y             y              y             z+This function does not support complex datar   )r   r   r   rS   r   )r]   r   r^   messages       re   test_complex_dataz"TestCorrPearsonr.test_complex_data  sB    ?]]:W5 	!NN1a 	! 	! 	!s   AAr  r  r  r  methodpermutationmonte_carloc                    t         j                  j                  d      }|dk(  rdnd}|j                  |      }|j                  |      }t	        j
                  |      t	        j                  |j                  fdz        d	}||   }t	        j                  ||||
      }t	        j                  |||      }	t        |j                  |	j                  d       t        |j                  |	j                  dd       y )N   o#[mr<  d     r   random_stater   )rvsr;  )r  r:  r  r   r  {Gz?MbP?r  r   )rY   randomdefault_rngnormalrS   PermutationMethodMonteCarloMethodr   r   r   r   )
r]   r:  r  rngr   r   r^   methodsr   refs
             re   test_resampling_pvaluez'TestCorrPearsonr.test_resampling_pvalue  s     ii##$56-s4JJDJ!JJDJ!"'"9"9s"K"'"8"8cjj]1_"MOnnQ{6JnnQ{;s}}5A

CJJTErt   c                 F   t         j                  j                  d      }|j                  d      }|j                  d      }t	        j
                  |||      }t	        j                  |      }|j                  |      }|j                         }t        ||d       y )	Nr?  r@  rB  r  rC  r:  rF  r   )	rY   rI  rJ  rK  rS   r   BootstrapMethodr  r   )	r]   r  rN  r   r^   r   r:  res_ciref_cis	            re   test_bootstrap_ciz"TestCorrPearsonr.test_bootstrap_ci  s     ii##$56JJCJ JJCJ nnQ{;&&C8(((7((*T2rt   c                 X   d}t        j                  t        |      5  t        j                  ddgddgd       d d d        t        j                  ddgddg      }t        j                  t        |      5  |j                  d	       d d d        y # 1 sw Y   ZxY w# 1 sw Y   y xY w)
Nz"`method` must be an instance of...r   r   r   r    r!   
asymptoticrS  exact)r   r   r   rS   r   r  )r]   r7  r   s      re   test_invalid_methodz$TestCorrPearsonr.test_invalid_method   s    6]]:W5 	@NNAq6Aq6,?	@ nnaVaV,]]:W5 	4##7#3	4 	4		@ 	@	4 	4s   B8B B B)N)1r   r   r   __doc__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   markparametrizer%  r)  r.  r2  r5  r8  xslowrQ  rW  r[  r   rt   re   r   r      s   #
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
5DD'$(/1.9 [[CHI6I69
98
8
! [[[[],LM[[X'EFF G N F [[[[],LM
3 N 
34rt   r   c                       e Zd ZdZd Zd Zd Zd Zej                  j                  d        Zd Zd Zd	 Zd
 Zej                  j!                  dg d      d        Zy)TestFisherExacta  Some tests to show that fisher_exact() works correctly.

    Note that in SciPy 0.9.0 this was not working well for large numbers due to
    inaccuracy of the hypergeom distribution (see #1218). Fixed now.

    Also note that R and SciPy have different argument formats for their
    hypergeometric distribution functions.

    R:
    > phyper(18999, 99000, 110000, 39000, lower.tail = FALSE)
    [1] 1.701815e-09
    c                    t         j                  } |ddgddgg      d   }t        |dd        |d	d
gddgg      d   }t        |dd        |d
dgdd
gg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgdd
gg      d   }t        |d        |dd
gddgg      d   }t        |d        |d
dgdd
gg      }t        |d   dd       t        |d   d       y ) N8   N  0u  @  r   g؞Y?r!   r7   r@  r   rA  r"   g,Ԛ?r$   r%   g2c?r#   rH   gY
A?      g_?r      gO^M?r   gօa?r    r   ggE?g$I$I?)rS   fisher_exactr
   )r]   rj  r   s      re   r   zTestFisherExact.test_basic8  s   ))UENUEN;<Q?Ca8S!HtQi01!4CQ7QFQF+,Q/C:QFRH-.q1C:QGb"X./2C:QGb"X./2C:RGb!W-.q1C:QFQF+,Q/C;QFQF+,Q/C%QFQF+,Q/C.QFQF+,CFI1=CFH-rt   c                    ddgddggdfddgddggdfdd	gd
d
ggdfddgddggdfddgddggdfd
dgd
d	ggdfd
dgd
dggdfddgd	dggt         j                  dffddgd	dggdfdd	gddggt         j                  dffdd	gddggdfg}|D ]V  \  }}t        j                  t        j                  |            }t         j
                  j                  |d	   |d	   dd       X y )Nr@  r   rA  r"   )gAn&	?g}K
T?r$   r%   )g	7?g?r   rH   )g!@j)A?rg  rh  )gU!a?gKY?r   ri  )g7X?g~ltP?)gFu|?rl  r   )r}   gQN^?r!   gaa?r}   r   gaa?r    rI   T)rC   verbose)rY   infrS   rj  asarraytestingr   )r]   tablisttableres_rr   s        re   test_precisezTestFisherExact.test_preciseS  se    Ahq	"$TU!fq!fOP!fr2h!QR"gBx "RS"gBx "RS1gAw!QR1gAw!QR!fq!f(>?@!fq!fOP!fq!f(>?@!fq!fOP $ 	9LE5$$RZZ%67CJJ**3q658R37 + 9	9rt   c                    ddgddgg}t        j                  |      }t        |d   d       ddgdd	gg}t        j                  |      }t        |d   d
       ddgddgg}t        j                  |      }t        |d   d       y )Nr#   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rS   rj  r   r]   r   r   s      re   test_gh4130zTestFisherExact.test_gh4130k  s     WsCj!  #A 12 !Wq#h  #A 56 "Xe}%  #A 56rt   c                 `    ddgddgg}t        j                  |      }t        |d   dd       y )NiiX iV iW r   r   gѧRr   r~  r  s      re   test_gh9231zTestFisherExact.test_gh9231  s8     w'7!34  #A/rt   c                     g d}t        |g d      D ]1  \  }}t        j                  ddgd|gg      d   }t        ||d       3 t        j                  d	d
gddgg      d   }t        |dd       y )N)g?=gNuP=gs=)K   L   M   i(E  i  i)  r   r!   r7   iPF  i8 rd  i_ g^K=?)ziprS   rj  r
   )r]   pvalsr  numr   s        re   test_large_numbersz"TestFisherExact.test_large_numbers  s     1UL1 	:ID#$$uclT3K%@A!DCTq9	:   5%.5%.!AB1ECQ7rt   c                     t        t        t        j                  t	        j
                  d      j                  dd             y )Nr#   r   r    )r   r   rS   rj  rY   r   rW   r]   s    re   test_raiseszTestFisherExact.test_raises  s,    j%"4"4iil**1a0	2rt   c                     ddgddggddgddggddgddggddgddggf}|D ]@  }t        j                  |      \  }}t        |d       t        |t        j                         B y )Nr   r"   rH   r   )rS   rj  r   rY   rZ   )r]   tablesrs  	oddsratior  s        re   test_row_or_col_zeroz$TestFisherExact.test_row_or_col_zero  s    q6Ar7#r7QF#q6Ar7#q6B7#%  	,E#007OIts#BFF+	,rt   c                    ddgddggddgddggddgdd	ggd
dgddggddgddggddgddggddgddggddgddggddgddggf	}ddgddgddgddgddgddgddgddgddgf	}t        ||      D ]h  \  }}g }|j                  t        j                  |d      d          |j                  t        j                  |d       d          t	        ||dd!"       j y )#Nr   r$   r%   ry  ,     rE   r#   i     i   i  r   r    r   r!   gI[?gq}!?r   g2\&gQp6g:O_?g a?皙?ffffff??333333?UUUUUU?r   r  r  r  r-  )r   r  )r  appendrS   rj  r   )r]   r  r  rs  r  r   s         re   test_less_greaterz!TestFisherExact.test_less_greater  sW    VaV1X3x "X4y!3Z#s$ VaVVaVVaVVaVVaV  "#56)*()	"#J#J#J3K$K vu- 	:KE4CJJu))%VDQGHJJu))%YGJKCAD9		:rt   c                 @    t        j                  ddgddgg      \  }}y )Nr   r   r&   i")rS   rj  )r]   oddsr   s      re   test_gh3014zTestFisherExact.test_gh3014  s%     ))Aq6Ax=*ABfrt   r  r  r  r  c                     t        j                  ddgddgg      }t        j                  ||      }t	        |j
                  |j                  f|       y )Nrc  rd  re  rf  r  )rY   r   rS   rj  r   r   r   )r]   r  rs  r   s       re   test_resultzTestFisherExact.test_result  sF    5%.5%.9:  K@cmmSZZ0#6rt   N)r   r   r   r\  r   ru  r  r  r   r]  slowr  r  r  r  r  r^  r  r   rt   re   ra  ra  *  sv    .6907,0 [[8 82
, :DC
 [[],LM7 N7rt   ra  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%y$)%TestCorrSpearmanrr   c                     t        j                  dd      }t        t        j                  |      j                                y )N      @       @)rS   	spearmanrr   rY   isnanallrr   s     re   test_scalarzTestCorrSpearmanr.test_scalar  s)    OOB#!"rt   c                     t        t        t        j                  g dddg       t        t        t        j                  g dd       y )Nr   r   r   r%   r&   )r   r   rS   r  r  s    re   test_uneven_lengthsz%TestCorrSpearmanr.test_uneven_lengths  s*    j%//9q!fEj%//9a@rt   c                 V   t         j                  j                  d       t         j                  j                  dd      }t         j                  j                  dd      }t	        j
                  ||      j                  j                  dk(  sJ t	        j
                  |j                  |j                  d      j                  j                  dk(  sJ t        t        t        j
                  ||d       t        t        t        j
                  |j                  |j                         y )N鄋 r!   r    r   r"   r"   r   r@   )rY   rI  seedrandnrS   r  r   shapeTr   r   r   r1  s      re   test_uneven_2d_shapesz'TestCorrSpearmanr.test_uneven_2d_shapes  s    
		vIIOOAq!IIOOAq!q!$..44>>>qssACCa077==GGGj%//1aa@j%//133<rt   c                    t         j                  j                  d       t         j                  j                  ddd      }t	        t
        t        j                  |       t	        t
        t        j                  ||       t	        t
        t        j                  |d d        t        t        j                  ||d       t        j                  |j                         |j                         d             y )Nr  r!   r    r   r@   r   )
rY   rI  r  r  r   r   rS   r  r   flattenr]   r   s     re   test_ndim_too_highz$TestCorrSpearmanr.test_ndim_too_high  s    
		vIIOOAq!$j%//15j%//1a8j%//1dDA148		QYY[qI	Krt   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  ||      t         j                  t         j                  f       t        t	        j
                  ||d      d       t        t        t        j
                  ||d       t        t        t        j
                  ||d       y )Nrx   r&   rz   r{   )r   r}   r~   r   )rY   r   rZ   r	   rS   r  r   r   r  s     re   test_nan_policyz!TestCorrSpearmanr.test_nan_policy  s    IIcNvv!5??1a02662662BC5??1aFC%	'j%//1aGLj%//1aHMrt   c                 8   t         j                  j                  d       t         j                  j                  dd      }d}t         j                  |d d |f<   t        j
                  ||d      }t        j                  |d      \  }}t        j                  |      \  }}t        j
                  t        j
                  ||d      |d      }t        j
                  t        j
                  ||d      |d      }t        ||d	
       t        ||d	
       y )Nr"   rH   r#   r   r@   rz   r{   r   +=r   )	rY   rI  r  randrZ   deleterS   r  r   )r]   r   kr^   corxpxcorypys           re   test_nan_policy_bug_12458z+TestCorrSpearmanr.test_nan_policy_bug_12458  s    
		qIINN1b!&&!Q$IIa#??18b??1%byy43QQ?YYryyQQ/;d/BU+rt   c                    t         j                  j                  d       d}d}t         j                  j                  ||      }t         j                  |d<   t         j                  |d<   t        j                  |dd      \  }}t        |      D cg c]G  }t        |      D cg c]0  }t        j                  ||d d f   ||d d f         j                  2 c}I }}}t        ||       y c c}w c c}}w )Nr"   rH   r   r   )r    rN   r   	propagaterA   r|   )
rY   rI  r  r  rZ   rS   r  ranger   r   )	r]   mnr   corrr   jir   s	            re   test_nan_policy_bug_12411z+TestCorrSpearmanr.test_nan_policy_bug_12411  s    
		qIIOOAq!&&$66%qq[Ifa" FK1XN!Q$1a41;;N " "c" O "s   C4%5C/C4/C4c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r  rU   r
   r   s      re   test_sXXzTestCorrSpearmanr.test_sXX  s%    OOAa aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  rU   r   r
   r   s      re   
test_sXBIGzTestCorrSpearmanr.test_sXBIG  s%    OOAc"aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  rU   r   r
   r   s      re   test_sXLITTLEzTestCorrSpearmanr.test_sXLITTLE"  s%    OOAf%aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  rU   r   r
   r   s      re   test_sXHUGEzTestCorrSpearmanr.test_sXHUGE'  %    OOAd#aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  rU   r   r
   r   s      re   test_sXTINYzTestCorrSpearmanr.test_sXTINY,  r  rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  rU   r   r
   r   s      re   test_sXROUNDzTestCorrSpearmanr.test_sXROUND1  s%    OOAe$aDAc"rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r  r   r
   r   s      re   test_sBIGBIGzTestCorrSpearmanr.test_sBIGBIG6  s%    OOC$aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sBIGLITTLEz!TestCorrSpearmanr.test_sBIGLITTLE;  s%    OOC'aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sBIGHUGEzTestCorrSpearmanr.test_sBIGHUGE@  %    OOC%aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sBIGTINYzTestCorrSpearmanr.test_sBIGTINYE  r  rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sBIGROUNDz TestCorrSpearmanr.test_sBIGROUNDJ  s%    OOC&aDAc"rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r  r   r
   r   s      re   test_sLITTLELITTLEz$TestCorrSpearmanr.test_sLITTLELITTLEO  s%    OOF6*aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sLITTLEHUGEz"TestCorrSpearmanr.test_sLITTLEHUGET  %    OOF4(aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sLITTLETINYz"TestCorrSpearmanr.test_sLITTLETINYY  r  rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sLITTLEROUNDz#TestCorrSpearmanr.test_sLITTLEROUND^  s%    OOF5)aDAc"rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r  r   r
   r   s      re   test_sHUGEHUGEz TestCorrSpearmanr.test_sHUGEHUGEc  %    OOD&aDAc"rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sHUGETINYz TestCorrSpearmanr.test_sHUGETINYh  r  rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sHUGEROUNDz!TestCorrSpearmanr.test_sHUGEROUNDm  %    OOD'aDAc"rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r  r   r
   r   s      re   test_sTINYTINYz TestCorrSpearmanr.test_sTINYTINYr  r  rt   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rS   r  r   r   r
   r   s      re   test_sTINYROUNDz!TestCorrSpearmanr.test_sTINYROUNDw  r  rt   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rS   r  r   r
   r   s      re   test_sROUNDROUNDz"TestCorrSpearmanr.test_sROUNDROUND|  s%    OOE%(aDAc"rt   c                     t        j                  t        t              }d}t        ||       t	        |j
                  |j                         y r   )rS   r  rU   r   r   r   r   r   s      re    test_spearmanr_result_attributesz2TestCorrSpearmanr.test_spearmanr_result_attributes  s3    ooa#.
C,S__cmm4rt   c                     g d}g d}t        j                  ||      }t        j                  t        j                  ||g      j                        }t        ||       y )Nr   r   r    r!   r"   r#   )r   r   r    r!   r#   r"   )rS   r  rY   rp  r  r   r]   x1x2res1res2s        re   test_1d_vs_2dzTestCorrSpearmanr.test_1d_vs_2d  sG    r2&rzz2r(3556d#rt   c                    dD ]  }dt         j                  ddddg}dddddt         j                  g}t        j                  |||      }t        j                  t        j                  ||g      j
                  |      }t        ||        y )	N)r  rz   r   r    r!   r"   r#   r   r{   )rY   rZ   rS   r  rp  r  r   )r]   r|   r  r  r	  r
  s         re   test_1d_vs_2d_nansz$TestCorrSpearmanr.test_1d_vs_2d_nans  s|    / 	(JRVVQ1a(BQ1a(B??2rjAD??2::r2h#7#9#9jQDD$'	(rt   c                    t        j                  d      }| }t        j                  g d      }t        j                  |||g      j                  }t        j                  |      }t        j                  g dg dg dg      }t        j                  dt              }d|d	d
d	f<   d|d
d	d	f<   t        |j                  |       t        |j                  |       y )Nr#   )r   r   r   r    r"   r!   )r   rN   3+?)rN   r   3+)r  r  r   r    r    r>   g+Hs]s?r   r   )rY   r   r   rp  r  rS   r  zerosfloatr   r   r   )r]   r  r  x3r   actualexpected_correxpected_pvalues           re   
test_3colszTestCorrSpearmanr.test_3cols  s    YYq\SXX()JJB|$&&#"5"6">"@ A ((67"/1Q3"/!Q((-87rt   c           
         t        j                  t         j                  ddddddgdt         j                  ddd	ddgg d
g      j                  }t        j                  t         j                  t         j                  t         j                  gt         j                  t         j                  t         j                  gt         j                  t         j                  dgg      }t	        t        j                  |d      j                  |       t        j                  |d      j                  }t	        |d   d   |d   d   |d   d   fdd       y )Nr   r  r6   ffffff@      @ffffff"@ffffff@g333333@皙@)r(   r  ffffff@ffffff@       @r  ffffff@r   r  r{   rz   r   r   r   )gacJC?g%ln?g_0nYt!޿r  r  )rY   r   rZ   r  r   rS   r  r   )r]   r   r  r   s       re   test_gh_9103zTestCorrSpearmanr.test_gh_9103  s   HHrvvsCc3<BFFCc3<9; <<=A 	
 xx"&&"&&"&&1&&"&&"&&1&&"&&"-/ 0 	kBLL	 ooaF3==QCF1Is1vay9:	Grt   c                 R   d}t         j                  j                  d       t         j                  j                  |      }t         j                  j                  |      dkD  }|dkD  }t        j                  |      }t        j                  ||d      j                  }t         j                  ||<   t        j                  ||d      j                  }|j                  t         j                        }t        j                  ||d      j                  }g d}	t        |||g|	       y )Nr@  iH r  r(   rz   r{   )gonj?)Wn%?r%  )rY   rI  r  r  r   rS   r  r   rZ   astypeint32r   )
r]   r  r   r  r   r   r	  r
  res3expecteds
             re   test_gh_8111zTestCorrSpearmanr.test_gh_8111  s    
		vIINN1IINN1# VHHQKq!7AA vv!q!7AA HHRXXq!7AA:tT*H5rt   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  r  r  r#  r*  r   rt   re   r  r    s    #A	=KN,
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
5$(8 G6rt   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ej(                  j+                  dd      d        Zy)TestCorrSpearmanr2z-Some further tests of the spearmanr function.c                     g d}g d}d}t        j                  ||      }t        |d   |d          t        |d   |d          y )Nr   r   r    r!   r"   r"   r#   r$   r%   r$   gh
C?gR?r   r   )rS   r  r
   r]   r  r  r)  r   s        re   test_spearmanr_vs_rz&TestCorrSpearmanr2.test_spearmanr_vs_r  sG     >oob"%CFHQK0CFHQK0rt   c                     t        t        j                  g g       t        j                  t        j                  f       y N)r   rS   r  rY   rZ   r  s    re   test_empty_arraysz$TestCorrSpearmanr2.test_empty_arrays  s$    U__R,rvvrvv.>?rt   c                    t         j                  j                  d       t        j                  t         j                  j	                  ddd      t         j                  j	                  ddd      g      }ddgddgg}t        j
                  t         j                  j                  |      |      }d}t        j                  |d   |d         }t        |d   |d          t        |d   |d          y )	Nz  r     locscaler   r   r  )gCzYW?ge*=r   )rY   rI  r  r   rK  dotlinalgcholeskyrS   r  r
   )r]   r   r  r)  r   s        re   test_normal_drawsz$TestCorrSpearmanr2.test_normal_draws  s    
		tHHbii&&1AC&@ii&&1AC&@B Cc
c
FF299%%d+Q/?ooadAaD)CFHQK0CFHQK0rt   c                 R    t        t        j                  g dg d      d   d       y )Nr   r   r   r   r   )r
   rS   r  r  s    re   test_corr_1zTestCorrSpearmanr2.test_corr_1  s    EOOIyA!DcJrt   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  ||      t         j                  t         j                  f       t        t	        j
                  ||d      d       t        t        t        j
                  ||d       t        t        t        j
                  ||d       y )Nrx   r&   rz   r{   )r   r   r~   r   )	rY   r   rZ   r	   rS   r  r   r   r   r  s     re   test_nan_policiesz$TestCorrSpearmanr2.test_nan_policies  s    IIcNvv!5??1a02662662BC1@ 	"j%//1aGLj%//1aHMrt   c                     t        j                  d      }t        j                  d      }t        t        t        j
                  ||       y )Nrx         4@)rY   r   r   r   rS   r  r1  s      re   r2  z'TestCorrSpearmanr2.test_unequal_lengths  s.    IIcNIIcNj%//1a8rt   c                     g d}dddt         j                  g}t        j                  ||d      }t        j                  |d d |d d d      }t	        ||       y )Nr  r%   r$   r#   rz   r{   r    )rY   rZ   rS   r  r   r  s        re   test_omit_paired_valuez)TestCorrSpearmanr2.test_omit_paired_value  sS    Arvvr2&9r"1vr"1v&AT4 rt   c                 d   t        t        d            }t        t        d            }|d   |d   c|d<   |d<   |d   |d   c|d<   |d<   |d   |d   c|d<   |d<   |j                  t        j                         |j                  d       t        t        j                  ||d	
      d   d       y )N  r&   r   i  rH   i  i  r   rz   r{   gV-?)listr  r  rY   rZ   r   rS   r  r1  s      re   #test_gh_issue_6061_windows_overflowz6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflow  s    ttqT1Q4
!ad#""qvD'1S6#$ 	
	EOOAqVDQGOrt   c                 b   d}t        j                  t        j                  |      5  t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   r   r   r   )r   r   rS   r   r  r   rY   rZ   )r]   warn_msgr   r   s       re   	test_tie0zTestCorrSpearmanr2.test_tie0  s    /\\%44HE 		$??9i8DAqBFF#BFF#??9i8DAqBFF#BFF#??9i8DAqBFF#BFF#		$ 		$ 		$s   C4D%%D.c                     g d}g d}g d}g d}t        j                  ||      }t        j                  ||      }t        ||       y )Nr   r  r   r  )r   r  r  r   )r   r*   r*   r  )rS   r  r   r   )r]   r   r^   xryrsrprs          re   	test_tie1zTestCorrSpearmanr2.test_tie1  sB      !! __Q"^^B#B#rt   c                     g d}g d}ddddt         j                  g}ddddt         j                  g}t        j                  ||      }t        j                  ||d	      }t	        ||       y )
N)r   r   r*   r   )r   r    r*   r!   r   r   r*   r    r!   rz   r{   )rY   rZ   rS   r  r   )r]   r  r_   r  r`   sr1sr2s          re   	test_tie2zTestCorrSpearmanr2.test_tie2*  sd     CBFF#CBFF# oob"%oob"8C%rt   c                    t        j                  g dg dg      }t        j                  g dg dg      }t        j                  g dg dg      }d}t        j                  t        j
                  |      5  t	        j                  |d      \  }}t        |t         j                         t        |t         j                         t	        j                  |d      \  }}t        |t         j                         t        |t         j                         t	        j                  |d      \  }}t        |t         j                         t        |t         j                         d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r  r   r   r   r@   	rY   r   r   r   rS   r   r  r   rZ   )r]   z1z2z3rP  r   r   s          re   test_ties_axis_1z#TestCorrSpearmanr2.test_ties_axis_18  s    XX|\23XX|\23XX|\23/\\%44HE 		$??2A.DAqBFF#BFF#??2A.DAqBFF#BFF#??2A.DAqBFF#BFF#		$ 		$ 		$s   9C+E--E6c                 r   t        j                  g d      }t        j                  g d      }d}t        j                  t        j
                  |      5  t	        j                  ||      \  }}t        |t         j                         t        |t         j                         d d d        y # 1 sw Y   y xY w)N)
r   r   r   r   r   r   r   r   r   r   
r   gN}	?r   r   g	/`?gY%uX-H?gC1tq1?r   r   g*I?r   r   r_  )r]   r   r^   rP  r   r   s         re   test_gh_11111z TestCorrSpearmanr2.test_gh_11111H  s    HHGHHH - . 0\\%44HE 	$??1a(DAqBFF#BFF#	$ 	$ 	$s   AB--B6c                     t        j                  g d      }t        j                  g d      }t        t        t        j
                  ||d       y )N)
r         @r  r   r   r   r   r   r   r   re  r   r@   )rY   r   r   r   rS   r  r1  s      re   test_index_errorz#TestCorrSpearmanr2.test_index_errorS  s:    HHGHHH - . 	j%//1aa@rt   c                    g d}g d}d}t        j                  ||d      }t        |d   |d          t        |d   d|d   dz  z
         t        j                  ||d	      }t        |d   |d          t        |d   |d   dz         t        j                  t
        d
      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr.  r/  r0  r  r  r   r   r   r  `alternative` must be 'less'...r   	ekki-ekki)rS   r  r
   r   r   r   r1  s        re   test_alternativez#TestCorrSpearmanr2.test_alternativeZ  s      ? oob"&9CFHQK0CFA!q$9: oob")<CFHQK0CFHQK!O4]]:-NO 	=OOB<	= 	= 	=s   'C		Cr  r  c                    g d}g d}|t         j                  gz   }|t         j                  gz   }t        t        j                  ||      t         j                  t         j                  f       t        j                  ||d|      }t        j                  |||      }t        ||       d}t        j                  t        |      5  t        j                  ||d|       d d d        d	}t        j                  t        |      5  t        j                  ||d
|       d d d        y # 1 sw Y   IxY w# 1 sw Y   y xY w)Nr.  r/  rz   r|   r  r  The input contains nan valuesr   r~   nan_policy must be one of...rl  )	rY   rZ   r	   rS   r  r   r   r   r   )	r]   r  r  r  x1nanx2nan
res_actualres_expectedr7  s	            re   test_alternative_nan_policyz.TestCorrSpearmanr2.test_alternative_nan_policyq  s    bffXbffX 	5??5%8266266:JK __UEf1<>
r2;G
L1 2]]:W5 	5OOE5W(35	5
 1]]:W5 	5OOE5[(35	5 	5	5 	5	5 	5s   	D+D7+D47E N)r   r   r   r\  r2  r5  r?  rB  rD  r2  rH  rL  rQ  rX  r\  rc  rf  ri  rm  r   r]  r^  rv  r   rt   re   r,  r,    s|    71@
1KN9
!P$$&$ 	$A=. [[],LM5 N5rt   r,  c                  \   d} g d}g d}d}| D ]<  }t        j                  ||      }t        |d   |d          t        |d   |d          > g d}g d}d}| D ]<  }t        j                  ||      }t        |d   |d          t        |d   |d          > g d	}g d
}d}| D ]<  }t        j                  ||      }t        |d   |d          t        |d   |d          > g d}g d}d}| D ]<  }t        j                  ||      }t        |d   |d          t        |d   |d          > t        j                  d      }t        j                  d      }d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ |d   }|d   |d<   ||d<   d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ |d   }|d   |d<   ||d<   d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ t        j                  d      }t        j                  d      d d d   }d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ |d   }|d   |d<   ||d<   d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ |d   }|d   |d<   ||d<   d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ t        g d      }t        g d      }d}t        t        j                  ||d      d   |       d}t        t        j                  ||d       d   |       |d   |d<   t        t        t         j                  ||d!"       t        t        t         j                  ||d#"       t        t        t         j                  ||d$       g d%}g d&}d'}t        j                  ||      }t        |d   |d          t        |d   |d          d(}	| D ]F  }t        j                  |||      }t        ||	       t        |j                  |j                         H | D ]  }t        t        j                  g d)g d)|      t        j                  t        j                  f       t        t        j                  g d*g d)|      t        j                  t        j                  f       t        t        j                  g d)g d*|      t        j                  t        j                  f        t        t        j                  g g       t        j                  t        j                  f       t        j                  j                  d+       t        j
                  t        j                  j                  ddd,-      t        j                  j                  ddd,-      g      }d.d/gd/d.gg}
t        j                   t        j"                  j%                  |
      |      }d0}t        j                  |d   |d         }t        |d   |d          t        |d   |d          t        t        j                  g d1g d1d      d   d.       t        t        j                  g d1g d1d       d   d2       t        j                  d3      }t        j                  |d4<   t'        t        j                  ||      t        j                  t        j                  f       t)        t        j                  ||d56      d7d89       t)        t        j                  ||d5d:;      d<d89       t        t        t         j                  ||d=6       t        t        t         j                  ||d>6       t        j                  d3      }t        j                  d?      }t        t        t         j                  ||       t        j                  g g       \  }}t        t        j                  |       t        t        j                  |       t        j                  dgdg      \  }}t        t        j                  |       t        t        j                  |       t        j                  d@t*        A      }t        j,                  j/                  |dB      }t        j                  d@t*        A      }t        j0                  |dCd  |d dC f      }t3        t        j4                  t        j                  ||      d                y )DN)r   c)r"   r   r   r    r#   r!   r$   r%   )r"   r   r#   r    r   r%   r$   r!   rm  r   r   )	r   r"   r   r   r    r#   r!   r$   r%   )	r"   r   r   r#   r    r   r%   r$   r!   )r"   r   r   r    r#   r!   r$   )r"   r   r#   r    r   r$   r!   )gJ$I¿gmK?)r   r   r    r#   r!   r$   r%   )r   r#   r    r   r%   r$   r!   )gJkaa?r   rH   )r   紞xO~>)variantr   )g?>?aV>r"   r#   )g}'}'?o&5>rN   )r   ry  )g?>r{  )g}'}'r|  )
r   r   r   r!   r!   r#   r#   r%   r&   r&   )
r   r   r!   r!   r!   r!   r%   r%   r%   rH   gok|?r   gffffff?rx  rZ  rS  bananarmsrJ   r   r   rJ   r   r   r!   r$   r   r   )g}+޿g`=i?r   rN  rO  r7  r8  r9  r   r  )g\zf?g^n)=rA  g#q?rx   r&   rz   r{   )r   g/>r  r  rY  )r|   r:  )r   g&?r~   r   rF  rJ  r>   i  rA  )rS   
kendalltaur
   rY   r   r   r   r   r   r   r   r   rZ   rI  r  rK  r<  r=  r>  r	   r   r  mamasked_greaterconcatenater   isfinite)variantsr   r^   r)  tauxr   r   r  r  r   r  taup_values                re   test_kendalltaur    s    H 	!A A H 1q!$CFHQK0CFHQK01 	$A#A H 1q!$CFHQK0CFHQK01 	AA /H 1q!$CFHQK0CFHQK01 	AA %H 1q!$CFHQK0CFHQK01 			"A
		"A )H 1q!T2CFHQK0CFHQK01 	
!AQ4AaDAaD 8H 1q!T2CFHQK0CFHQK01 	
!AQ4AaDAaD 8H 1q!T2CFHQK0CFHQK01 			"A
		"ddA *H 1q!T2CFHQK0CFHQK01 	
!AQ4AaDAaD 9H 1q!T2CFHQK0CFHQK01 	
!AQ4AaDAaD 9H 1q!T2CFHQK0CFHQK01 	,-A-.AH((As;A>IH((As;A>I Q4AaD*e..1WE *e..1XF *e..1eD
 
B	B:H


2r
"CA,A, +J 5r2t4C,S__cmm45  'U%%iDIffbff%	'U%%iDIffbff%	'U%%iDIffbff%	'' !!"b)BFFBFF+;< IINN4
"))""q"<))""q"<> 	?A#J#JD
ryy!!$'+A<H


1Q41
&CA,A, ((IsKAN((IsKAN"$ 			#A66AaDu''1-/?@E$$Qf='e5E$$Qf\R1?*e..1I*e..1J 			#A
		#A*e..15 ##B+LC!##QC!-LC! 			$e$A
Q%A
		$e$A
$%!ET(+,ABKK((1-a012rt   c                     t         j                  j                  d       t        dd      D ]  } g }t        |       D ]  }||g|z  z  } t	        |      }t         j                  j                  |       t         j                  j                  |       t        j                  ||      }t        j                  ||      }t        |d   |d          t        |d   |d           y )N*   r   rH   r   r   )
rY   rI  r  r  rK  shufflemstats_basicr  rS   r
   )sr   r  r   r)  r  s         re   test_kendalltau_vs_mstats_basicr  s  s    IINN21R[ 4q 	A!QJA	G
		!
		!**1a0!!!Q'F1Ix{3F1Ix{34rt   c                      g d} t         j                  dddg}t        j                  | |d      }t        j                  | dd  |dd        }t	        |j
                  |j
                  d       y )	NrS  333333@333333@rz   r{   r   r   r   )rY   rZ   rS   r  r   r   )r   r^   r1r2s       re   test_kendalltau_nan_2nd_argr    s_    A	c3A			!Q6	2B			!AB%12	'BBLL",,U;rt   c                     d} t        j                  |       5  t        j                  g g d       d d d        t        j                  d|        5  t        j                  g g d       d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)Nz"keyword argument 'initial_lexsort'r   T)initial_lexsortzuse keyword arguments|)r   deprecated_callrS   r  )msg_deps    re   test_kendalltau_deprecationsr    s~    2G			g	. 7R67			(>wi&H	I 'R&' '7 7' 's   A4B 4A= B	c                     dd l } | j                  d       g d}d}| j                  ||      }| j                  ||      }t        j                  ||      }t        |j                  d       t        |j                  dd	       y )
Nr   i_ r   r   r    r!   r"   r#   r$   i@ r  g*8_2\S?gd`TR?gMb`?r   )rI  r  choicesrS   r  r   r   r   )rI  classes	n_samplesr   r^   r   s         re    test_kendalltau_gh18139_overflowr    st     
KK#GIw),Aw),A


1a
 CCMM#89 CJJT2rt   c            	       h   e Zd Zd ZdZej                  ej                  ej                  gZg dZg dZ	g dZ
g dZg dZg dZg d	Zg d
Zd Z e eeedgdz               e ee ee      dgdz              z   Zej,                  j/                  de      d        Z e eeedgdz               e ee ee      dgdz              z   Zej,                  j/                  de      d        Z e eee	dgdz               e ee ee	      dgdz              z   Zej,                  j/                  de      d        Z e eee
dgdz               e ee ee
      dgdz              z   Zej,                  j/                  de      d        Z e eeedgdz               e ee ee      dgdz              z   Zej,                  j/                  de      d        Z  e eeedgdz               e ee ee      dgdz              z   Z!ej,                  j/                  de!      d        Z" e eeedgdz               e ee ee      dgdz              z   Z#ej,                  j/                  de#      d        Z$ e eeedgdz               e ee ee      dgdz              z   Z%ej,                  j/                  de%      d        Z& e eeedgdz               e ee ee      dgdz              z   Z'ej,                  j/                  de'      d        Z( e eedgdz               e eedgdz              z   Z)ej,                  j/                  de)      d        Z*ej,                  j/                  dd      ej,                  j/                  dd      d               Z+y )!TestKendallTauAlternativec                 P   g d}g d}t        j                  ||d      }|d   dkD  sJ t        j                  ||d      }t        |d   |d          t        |d   d|d   dz  z
         t        j                  ||d	      }t        |d   |d          t        |d   |d   dz         |j	                          t        j                  ||d      }|d   dk  sJ t        j                  ||d	      }t        |d   |d          t        |d   d|d   dz  z
         t        j                  ||d      }t        |d   |d          t        |d   |d   dz         t        j                  t        d
      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr.  r/  r  r  r   r  r   r   r  rk  r   rl  )rS   r  r   r   reverser   r   r   r1  s        re   &test_kendalltau_alternative_asymptoticz@TestKendallTauAlternative.test_kendalltau_alternative_asymptotic  s     ##BD{Q r26:SVXa[)AXa[1_ 56 r29=SVXa[)Aa0 	

 ##BD{Q r29=SVXa[)AXa[1_ 56 r26:SVXa[)Aa0]]:-NO 	>R=	> 	> 	>s   :FF%)r  r  r  )r   r   r(   )r   RUUUU?ZUUUU?)g~?r  r  )?r   r  )ˮ[?r   r  )g?gSǌ?gSǌ?)g:
?g3
?g<t'.?)gN  A?gss?gYss?c                     |rt        j                  |       }|dz  }t        j                  ||d|      }||f}t	        ||       y )NrN   rZ  r:  r  )rY   rp  rS   r  r   )	r]   r   r^   r  revstat_expected
p_expectedr   ru  s	            re   
exact_testz$TestKendallTauAlternative.exact_test  sH    AARMq!GM$j0\*rt   Fr    Tzalternative, p_expected, revc                 \    dgdg}}t         j                  }| j                  ||||||       y r4  )rY   rZ   r  r]   r  r  r  r   r^   r  s          re   test_against_R_n1z+TestKendallTauAlternative.test_against_R_n1  s.    sQC11k3zJrt   c                 D    ddgddg}}d}| j                  ||||||       y )Nr   r   r    r!   g?r  r  s          re   test_against_R_n2z+TestKendallTauAlternative.test_against_R_n2  s.    1v1v1*1k3zJrt   c                 D    g dg d}}d}| j                  ||||||       y )Nr+  r   r  r  s          re   test_against_R_c0z+TestKendallTauAlternative.test_against_R_c0  s&    )11k3zJrt   c                 D    g dg d}}d}| j                  ||||||       y )Nr  )r   r   r!   r    gVUUUUU?r  r  s          re   test_against_R_c1z+TestKendallTauAlternative.test_against_R_c1  s&    \1*1k3zJrt   c                 D    g dg d}}d}| j                  ||||||       y )Nr.  )r   r"   r!   r   r    r   r  r  s          re   test_against_R_no_correlationz7TestKendallTauAlternative.test_against_R_no_correlation  s&    11k3zJrt   c                 D    g dg d}}d}| j                  ||||||       y )Nr   r   r    r!   r"   r#   r$   r%   )r%   r#   r   r    r   r"   r!   r$   r   r  r  s          re   test_against_R_no_correlationbz8TestKendallTauAlternative.test_against_R_no_correlationb!  s'    ')A11k3zJrt   c                 D    g d}g d}d}| j                  ||||||       y )N)	g333333F@g33333F@g33333D@gfffffJ@gYF@gF@gYI@gF@gN@)	g@@r*   r6   @r  g@ffffff@r   gqq?r  r  s          re   test_against_R_lt_171z/TestKendallTauAlternative.test_against_R_lt_171*  s*     C9*1k3zJrt   c                     t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }d}| j	                  ||||||       y )Nr   r@  gUm*,rY   rI  r  r  r  r  s          re   test_against_R_lt_171bz0TestKendallTauAlternative.test_against_R_lt_171b7  sQ    
		qIINN3IINN3,1k3zJrt   c                     t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }d}| j	                  ||||||       y )Nr      gH4?r  r  s          re   test_against_R_lt_171cz0TestKendallTauAlternative.test_against_R_lt_171cC  sQ    
		qIINN3IINN3*1k3zJrt   zalternative, revc                 n   t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }t	        j
                  ||d|      }t	        j
                  ||d|      }t        |d   |d          t        |d   |d   d       y )	Nr   i  rZ  r  rY  r   rG  r  )rY   rI  r  r  rS   r  r   r   )r]   r  r  r   r^   res0r	  s          re   test_gt_171z%TestKendallTauAlternative.test_gt_171N  s    
		qIINN3IINN31W,791\,79T!Wd1g&Qat4rt   r:  )rZ  rY  r  r  c                    g d}g d}|t         j                  gz   }|t         j                  gz   }t        j                  ||||      }t         j                  t         j                  f}t	        ||       t        j                  ||d||      }t        j                  ||||      }t	        ||       d}	t        j                  t        |	      5  t        j                  ||d||       d d d        d	}	t        j                  t        |	      5  t        j                  ||d
||       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr.  r"   r#   r$   r%   r&   r  rz   )r|   r:  r  rp  r   r~   rq  rl  )rY   rZ   rS   r  r   r   r   r   )
r]   r:  r  r  r  rr  rs  rt  ru  r7  s
             re   r  z)TestKendallTauAlternative.test_nan_policyZ  s<    bffXbffX %%eU-3N
'
L1 %%eUv-3N
''Bv4?A
L1 2]]:W5 	EUEg$*E	E
 1]]:W5 	EUEk$*E	E 	E	E 	E	E 	Es   D6E6D?EN),r   r   r   r  alternativesrY   rZ   p_n1p_n2p_c0p_c1p_no_correlationp_no_correlationb
p_n_lt_171p_n_lt_171bp_n_lt_171cr  rK  r  reversed	case_R_n1r   r]  r^  r  	case_R_n2r  	case_R_c0r  	case_R_c1r  case_R_no_corrr  case_no_cor_br  case_R_lt_171r  case_R_lt_171br  case_R_lt_171cr  case_gt_171r  r  r   rt   re   r  r    s   '>h 4LFFBFFBFF#DD0D>D<=DJCKGK+ c,ugai89L(4.4&(CDEI [[;YGK HK
 c,ugai89L(4.4&(CDEI [[;YGK HK
 c,ugai89L(4.4&(CDEI [[;YGK HK
 c,ugai89L(4.4&(CDEI [[;YGK HK
 3|-=wqyIJSx8H/I"&+ ,,N [[;^LK MK
 #l,=wqyIJCh7H.I!%q* ++M [[;]KK LK
 #lJ	BCChz.BTF1HMNOM [[;]KK LK 3|[5'!)DESx/D"&+ ,,N [[;^LK MK 3|[5'!)DESx/D"&+ ,,N [[;^LK MK L5'!)45L4&(345K [[/=	5 >	5 [[X'>?[[],LME N @Ert   r  c                     g d} g d}t        j                  | |      \  }}t        |d       t        t        j
                  |       t        j                  | |d      \  }}t        |d       t        t        j
                  |       t        j                  | |d       \  }}t        |d	       t        t        j
                  |       t        j                  | |      }d
}t        ||       t        |j                  |j                         t        j                  | |d       \  }}t        |d       t        t        j
                  |       t        j                  || d       \  }}t        |d       t        t        j
                  |       t        j                  | |d d      \  }}t        |d       t        t        j
                  |       t        j                  || d d      \  }}t        |d       t        t        j
                  |       t        j                  | |d      \  }}t        |d       t        t        j
                  |       t        j                  | |dd       \  }}t        |d	       t        t        j
                  |       t        j                  || dd       \  }}t        |d	       t        t        j
                  |       t        j                  t	        j                  | t        j                        |      \  }}t        |d       t        j                  t	        j                  | t        j                        |      \  }}t        |d       t        j                  t	        j                  | t        j                        t	        j                  |t        j                              \  }}t        |d       t        j                  g g       \  }}t        t        j
                  |       t        t        j
                  |       t        j                  dgdg      \  }}t        t        j
                  |       t        t        j
                  |       t        t        t         j                  ddgg d       t        t        t         j                  ddgddgdg       g d} ddddt        j
                  g}t        j                  | |      \  }}t        |d       ddt        j
                  ddg} t        j                  | |      \  }}t        |d       g d} dd d!dt        j
                  g}t        j                  | |      \  }}t        |d       d"d#t        j
                  d"d#g} t        j                  | |      \  }}t        |d       g d$} g d%}t        j                  | |      \  }}t        |d&       d"d#t        j
                  d"t        j
                  g} t        j                  | |      \  }}t        |d&       t        j
                  d d!t        j
                  t        j
                  g}t        j                  | |      \  }}t        |d&       y )'Nr  r  gs$F)additivegROoc                      yNr   r   r   s    re   <lambda>z"test_weightedtau.<locals>.<lambda>      rt   )weigherr  r   )rankgڿgn)r  r  g @ڿg[đ(gIکnTc                      yr  r   r  s    re   r  z"test_weightedtau.<locals>.<lambda>  r  rt   )r  r  c                      yr  r   r  s    re   r  z"test_weightedtau.<locals>.<lambda>  r  rt   r>   r   r   r   r   r   r!   r$   rJ   r   )      (@r  r   r  r  r   r  rh  r  r  )r  r  r   r  r   )r   r  rh  r   r   gt34+)rS   weightedtaur
   r   rY   rZ   r   r   r   rp  r   int16r   r   )r   r^   r  r  r   r   s         re   test_weightedtaur  }  s   AA$$Q*LC12!$$QE:LC12!$$Q;?LC12! 

Aq
!C*JZ(#--0 $$Q5LC01!$$Q5LC01!$$QuELC12!$$QuELC12!$$Q6LC12!$$QkJLC12!$$QkJLC12!$$RZZ%DaHLC12$$RZZ%BAFLC12$$RZZ%D%'ZZ%DFLC12$$R,LC!$$aS1#.LC!*e//!QC*e//!Q!Q!EA	
Aq!RVVA$$Q*LC12	QAA$$Q*LC12#A	c3RVV$A$$Q*LC12	sBFFD#&A$$Q*LC12#A!A$$Q*LC01	sBFFD"&&)A$$Q*LC01	c266266*A$$Q*LC01rt   c                      t        j                  dgdg       t        j                  dgdg       t        j                  t        j                  gdg       y )Nr   r   4   )rS   r  rY   rZ   r   rt   re   test_segfault_issue_9710r    sD     
qcC5!	qcC5!	rvvh%rt   c                  *   d} t        j                  | dz         j                  t              }t        j                  | dz         j                  t              }t         j                  |d<   t        j                  ||dd      \  }}t        |d       y )N   r   rN   rZ  rz   )r:  r|   r}   )rY   r   r&  r  rZ   rS   r  r   )r  r   r^   _r  s        re   test_kendall_tau_larger    sr    A
		!a%&A
		!a%&AFFAbEq!GGGAtsrt   c            
      z   d } d }t         j                  j                  d       t        dd      D ]  }g }t        |      D ]  }||g|z  z  } t	        |      }t         j                  j                  |       t         j                  j                  |       t        j                  t        |      t         j                        }t        d      D ]c  }dD ]=  } | |||||      }	t        j                  |||||      j                  }
t        |	|
       ? t         j                  j                  |       e 	 y )	Nc                 h   dx}x}x}x}}	t        t        t        |             t        t        |                   D ]  \  }
}|r |||
          |||         z   n |||
          |||         z  }||z  }| |
   | |   k(  r||z  }||
   ||   k(  r|	|z  }	| |
   | |   k  r||
   ||   k  s| |
   | |   kD  r||
   ||   kD  r||z  }| |
   | |   k  r||
   ||   kD  s| |
   | |   kD  s||
   ||   k  s||z  } ||z
  t        j                  ||z
        z  t        j                  ||	z
        z  S Nr   )r   r  lenrY   r   )r   r^   r  r  addtotconcdiscuvr  r  ws                re   wkqz*test_weightedtau_vs_quadratic.<locals>.wkq  sm   $%%%d%T%AeCFmU3q6]; 	FQ7:Q 747#33T!W%Q(88 1HCtqt|Qtqt|Qtad{qtad{adQqTkadQqTk	1!1!!qt!qt		 trwwsQw//"''#'2BBBrt   c                     d| dz   z  S )Nr   r   r   r  s    re   r  z.test_weightedtau_vs_quadratic.<locals>.weigher  s    QU|rt   r  r    rH   r>   r   rL   )rY   rI  r  r  rK  r  r   r  intprS   r  r   r
   )r	  r  r  r   r  r   r  r  r  r)  r  s              re   test_weightedtau_vs_quadraticr    s   C  IINN21R[ $q 	A!QJA	G
		!
		!yyQrww/q 	$A$ 6q!T7C8**1awDNN#Hf56
 IId#	$$rt   c                       e Zd Zd Zd Zy)TestFindRepeatsc                 t    g d}t        j                  |      \  }}t        |g d       t        |g d       y )N)r   r   r    r!   r   r   r    r!   r   r   r"   r  )r    r    r   r   rS   find_repeatsr	   )r]   r   r   numss       re   r   zTestFindRepeats.test_basic  s/    -&&q)	T3-4.rt   c                 z    g dg fD ]2  }t        j                  |      \  }}t        |g        t        |g        4 y )N)rH   rh  2      (   r  )r]   r   repeatedcountss       re   test_empty_resultz!TestFindRepeats.test_empty_result  s?    &+ 	+A$11!4Hfx,vr*	+rt   N)r   r   r   r   r  r   rt   re   r  r    s    /+rt   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y)TestRegressionc                     t        j                  t        t              }t	        |j
                  d       t	        |j                  d       t	        |j                  d       t	        |j                  d       y )Nir   r}   )	rS   
linregressrU   r   r   	interceptrvaluestderrintercept_stderrr]   r#  s     re   test_linregressBIGXz"TestRegression.test_linregressBIGX&  sR    !!!S)F,,h7FMM3/ 	FMM3/F33S9rt   c                     t        j                  t        t              }t        |j                  d       t        |j
                  d       t        |j                  d       t        |j                  d       y )Nr}   r   )rS   r  rU   r   r  r  r   r!  r"  s     re   test_regressXXzTestRegression.test_regressXX0  sR    
 !!!Q'F,,c2FMM3/FMM3/F33S9rt   c                     t        j                  t        t              }t	        |j
                  d       t	        |j                  d       y )Nr}   )rS   r  rU   ZEROr   r  r  r"  s     re   test_regressZEROXz TestRegression.test_regressZEROXE  s4    
 !!!T*F,,c2FMM3/rt   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
                  j                  }t        t        ||             t        |j                  d       y )Nr   r@  皙?rH   rh  穷4_Qc?)rY   linspacesinrS   r  _stats_mstats_commonLinregressResultr   
isinstancer   r   )r]   r   r^   r#  lrs        re   test_regress_simplez"TestRegression.test_regress_simpleN  s    KK3$"++ac**R/	RVVBKK2s+,,!!!Q'''88
62&'FMM+@Art   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
        d      5  t        j                  ||d	       d d d        t        j                  ||d
	      }t        j                  ||d	      }t        |j                  d|j                  dz  z
         t        j                  ||d	      }t        |j                  |j                  dz         |j                  |j                  cxk(  r|j                  k(  sJ  J y # 1 sw Y   xY w)Nr   r@  r*  rH   rh  zalternative must be 'less'...r   rl  r  r  r  r   r   r  )rY   r,  r-  r   r   r   rS   r  r   r   r  )r]   r   r^   r	  r
  r(  s         re   test_regress_alternativez'TestRegression.test_regress_alternativeY  s   KK3$"++ac**R/	RVVBKK2s+,,]]:-LM 	<Q{;	< 1+> 1&9Q$++/%:; 1)<T[[1_5{{dkk8T[[88888	< 	<s   =EE'c                 r   g d}g d}t        j                  ||d      }t        |j                  d       t        |j                  d       t        |j
                  t        j                  d             t        |j                  d       t        |j                  d	       t        |j                  d
       y )N)
                              )
r=   Q   8   [   /   9   r  H   >   r}  r  r  gؗh?gJK@:Cgag?g->g5ՒO?g]؊E @)rS   r  r   sloper  r  rY   r   r   r   r!  r]   r   r^   r   s       re   test_regress_against_Rz%TestRegression.test_regress_against_Rn  s     ?4q!=		?3'89

BGGM$:;

$56

O4,,o>rt   c                 v   t        j                  ddd      }dt        j                  ddd      z  dz   }|t        j                  t        j                  ddd            z  }t        j                  ||f      }t	        j
                  |      }t        |j                  d       t        |j                  d       y )Nr   r@  r*  rH   rh  r+  8?)	rY   r,  r-  vstackrS   r  r   r   r!  )r]   r   r^   rowsr#  s        re   test_regress_simple_onearg_rowsz.TestRegression.test_regress_simple_onearg_rows  s     KK3$"++ac**R/	RVVBKK2s+,,yy!Q !!$'FMM+@AF335JKrt   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                  |d      t        j                  |d      f      }t        j                  |      }t        |j                  d       t        |j                  d       y )	Nr   r@  r*  rH   rh  r   r+  rK  )
rY   r,  r-  hstackexpand_dimsrS   r  r   r   r!  )r]   r   r^   columnsr#  s        re   test_regress_simple_onearg_colsz.TestRegression.test_regress_simple_onearg_cols  s    KK3$"++ac**R/	RVVBKK2s+,,))R^^Aq12>>!Q3GHI!!'*FMM+@AF335JKrt   c                 h    t        t        t        j                  t	        j
                  d             y )Nr  )r   r   rS   r  rY   onesr  s    re   test_regress_shape_errorz'TestRegression.test_regress_shape_error  s     	j%"2"2BGGFODrt   c                    t        j                  d      }t        j                  dd      }|ddgxx   dz  cc<   |ddgxx   dz  cc<   t        j                  ||      }d } ||j                  d	        ||j
                  d
        ||j                  d        ||j                  d        ||j                  d        ||j                  d       y )NrI   r"   r   r   r   rN   c                     t        | |d      S )NrF   rB   )r   )r   r^   s     re   	assert_aez1TestRegression.test_linregress.<locals>.assert_ae  s    &q!R88rt   r   r6   gePUn?g.bt>gڽE?gʺL7?)
rY   r   rS   r  rG  r  r  r   r   r!  )r]   r   r^   r#  rZ  s        re   test_linregresszTestRegression.test_linregress  s    IIbMIIa	A+!	A+!!!!Q'	9&,,$&""C(&--!12&--1&--!56&))+>?rt   c                    d\  }}t        j                  |d|z  |      }t        j                  d|z  ||      }t        j                  ||      }t	        |j
                  dk\         t        |j
                  d       t	        t        j                  |j                                t	        t        j                  |j                                y )N)gJr 11順 r   rN   )
rY   r,  rS   r  r   r  r   r  r   r!  )r]   r   r  r   r^   r#  s         re    test_regress_simple_negative_corz/TestRegression.test_regress_simple_negative_cor  s     1KK1q5!$KKAq!$!!!Q' 	#$FMM2. 	BHHV]]++,BHHV44556rt   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
                  j                  }t        t        ||             d}t        ||       dt        |      v sJ y )Nr   r@  r*  rH   rh  )rG  r  r  r   r   r!  )rY   r,  r-  rS   r  r.  r/  r   r0  r   dir)r]   r   r^   r#  r1  r   s         re   !test_linregress_result_attributesz0TestRegression.test_linregress_result_attributes  s    KK3$"++ac**R/	RVVBKK2s+,,!!!Q' ''88
62&' J
FJ/!S[000rt   c                 
   t        j                  d      }t        j                  dd      }t        j                  ||      }t	        |j
                  d       t	        |j                  d       t	        |j                  d       y )Nr   r    r"   r}   )rY   r   rS   r  r   r   r   r!  r]   r   r^   r#  s       re   test_regress_two_inputsz&TestRegression.test_regress_two_inputs  s`    IIaLIIaO!!!Q' 	FMM3/ 	FMM3/F33S9rt   c                    t        j                  d      }t        j                  d      }t        j                  ||      }t        |j                  d       t        |j                  d       t        |j                  d       y )Nr   r   r}   )	rY   r   rU  rS   r  r   r   r   r!  rc  s       re   'test_regress_two_inputs_horizontal_linez6TestRegression.test_regress_two_inputs_horizontal_line  s^    IIaLGGAJ!!!Q' 	FMM3/ 	FMM3/F33S9rt   c                 N   g d}g d}t        j                  ||      }t        |j                  d       t        |j                  d       t        |j
                  dz  d       t        |j                  d       t        |j                  d       t        |j                  d	       y )
N)$r*  gfffffu@ǧ]@g̤@333333$@g     Pl@gfffff҄@gfffff"@g	|@g     H@gq@皙?333333?g     <@g33333ׄ@g      u@g     {@g333333'@g     `@33333l@gfffff@g̼@g^@r  r  gffffff@g1u@g@g     8@g     X@g333333&@g33333]@gfffffl@g@fffff|@r(   )$r  g,u@gfffff]@     @r  rk  g     @     4@g|@33333W@gy@r  r  gP@gfffff@4u@rl  g%@gm@gl@g     0@gfffffƋ@gfffff]@r  rj  gl@rp  rm  rn  ro  gffffff$@gffffff]@g̜l@g33333@g33333|@r*  g?g!пr   gpX?r}   gh-h*<?gg?)	rS   r  r   rG  r  r  r   r   r!  rc  s       re   test_nist_norriszTestRegression.test_nist_norris  s    4
4
 !!!Q'FLL*:;F,,.@AFMM1,.?@FMM3/FMM+;<F335EFrt   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
                  ||d      }t        |j                  |d          t        |j                  |d          y )Nr   r@  r*  rH   rh  r   )	rY   r,  r-  rS   r  polyfitr   rG  r  )r]   r   r^   r#  polys        re   test_compare_to_polyfitz&TestRegression.test_compare_to_polyfit  s    KK3$"++ac**R/	RVVBKK2s+,,!!!Q'zz!Q" 	FLL$q'2F,,d1g6rt   c                 D    t        t        t        j                  g g        y r4  )r   r   rS   r  r  s    re   test_empty_inputzTestRegression.test_empty_input  s    j%"2"2B;rt   c                    t        j                  d      }t         j                  |d<   t        j                  d      5  t	        j
                  ||      }d d d        t        j                  j                  }t        t        |             t        |t         j                  fdz         t        |j                  t         j                         y # 1 sw Y   {xY w)Nrx   r&   ignoreinvalidr"   )rY   r   rZ   errstaterS   r  r.  r/  r   r0  r	   r   r!  )r]   r   r#  r1  s       re   test_nan_inputzTestRegression.test_nan_input  s    IIcNvv![[* 	,%%a+F	, ''88
62&'6BFF9Q;/V,,bff5	, 	,s   CC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)NrH   z$Cannot calculate a linear regressionr   )rY   r  rI  r   r   rS   r  r]   r   r^   r   s       re   test_identical_xzTestRegression.test_identical_x  sW    HHRLIIR 4:S1 	#Q"	# 	# 	#s   A((A1N)r   r   r   r#  r%  r(  r2  r4  rI  rN  rS  rV  r[  r^  ra  rd  rf  rq  ru  rw  r}  r  r   rt   re   r  r  $  sg    :
:*0	B9*?&
LLE
@,7$1 ::G(
7<6#rt   r  c                     t        j                  g d      \  } }}}t        | d       t        |d       d}t        j                  t
        |      5  t        j                  g dd       d d d        t        j                  g dd      \  } }}}t        | d       t        |d       g d	}g d
}t        j                  ||d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 # 1 sw Y   xY w)Nr   r   r   r(   zHmethod must be either 'joint' or 'separate'.'joint_separate' is invalid.r   joint_separaterS  jointr}   )r   r   r    r!   rH   rJ      )r&   rg     rh  -   7   N   gQ?separater!   r  gQ@r   rB   gGz@r  )rS   theilslopesr   r   r   r   )rG  r  lowerupperr   r   r^   s          re   test_theilslopesr  &  sI   %*%6%6w%?"E9eUs#	3'*C	z	- >),<=> &+%6%6y>E&G"E9eUs#	3' 	!A#A%*%6%6q!T>H&J"E9eUq!	3'tQ/tQ/%*%6%6q!T>E&G"E9eUq!	3'tQ/tQ//> >s   EE c                  (   g d} t        j                  | d      \  }}}}t        |t        j                  g d             t        j                  | dd      \  }}}}t        |dk(         d}t        j                  | dd      }t        ||       y )	Nr   r!   r   r   r    r   r!   numbins)r   r  r6   r  )r)   r"   )r  defaultreallimitsr    )cumcountrv   binsizeextrapoints)rS   cumfreqr   rY   r   r   r   )r   cumfreqslowlimr  r  r   r   s          re   test_cumfreqr  H  s    A-2]]1a-H*Hfg{h1A(BC-2]]	1.2*Hfg{K1 FJ
--1
ACZ(rt   c                  6   t        j                  g d      } t        j                  | d      \  }}}}t	        |t        g d             d}t        j                  | d      }t        ||       t        j                  g dd      \  }}}}t	        ||       y )Nr  r!   r  )r(   K}\UU?r  r  )	frequencyrv   r  r  )rY   r   rS   relfreqr   r   )r   relfreqsr  r  r  r   r   	relfreqs2s           re   test_relfreqr  V  s    
#$A-2]]1a-H*Hfg{h#$MNP GJ
--1
%CZ( /4mm<NDE/G+Ivwh	2rt   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestScoreatpercentilec                 :    g d| _         g d| _        g d| _        y )N)r    r!   r"   rH   rO   r#   )r    rX  r%   r$   r!   r   r   )r   r!   r"   rH   rO   r  r  rh  )a1a2a3r  s    re   setup_methodz"TestScoreatpercentile.setup_methodh  s    *,1rt   c                     t        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        ?)r   r   rS   scoreatpercentiler  s     re   r   z TestScoreatpercentile.test_basicm  sT    1IOU,,Q2B7U,,Q4c:U,,Q3T:rt   c           	      F   t         j                  }t         |t        t	        d            d      d       t         |t        t	        d            dd      d       t         |t        t	        d            dd      d       t         |t        j                  g d      dd	      d
       t         |t        j                  g d      dd      d       t         |t        t	        d            dd      d       t         |t        t	        d            ddd      d       t         |t        t	        d            ddd      d       t         |t        j                  g d      dd	d      d
       t         |t        j                  g d      ddd      d       y )NrH   r  r,   r   r$   r@  r   r%   )limitr   rH   r@  rH   r@  r  r   rH   r-   fractioninterpolation_methodr  r  rS   r  r   rK  r  rY   r   r]   scoreatpercs     re   test_fractionz#TestScoreatpercentile.test_fractions  sP   -- 	[eBi"5s;[eBi"e<cB[eCj!12VDcJ[+!6HErJ[+!6FCSI 	[eBi":V	[eBi"F6@B	 	[eCj!12V6@B	 	[+!6I6@B	 	[+!6F6@B	rt   c           	      X   t         j                  }t         |t        t	        d            dd      d       t         |t        t	        d            dd      d       t         |t        t	        d            ddd      d       t         |t        t	        d            ddd	      d       t         |t        t	        d
            ddd      d       t         |t        t	        d
            ddd      d       t         |t        j                  g d      ddd      d       t         |t        j                  g d      ddd	      d
       t         |t        j                  g d      ddd      d       t         |t        j                  g d      ddd	      d       y )NrH   r  r  r  r!   higherr"   r  r  r@  r  r  r  r  r   r  r  s     re   test_lower_higherz'TestScoreatpercentile.test_lower_higher  s~   -- 	[eBi"6=?@A	C[eBi"6>@AB	D[eBi"e6=?@A	C[eBi"E6>@AB	D[eCj!12u6=?@A	C[eCj!12u6>@AB	D[,!7Y6=?@B	D[,!796>@AD	F[,!7W6=?@A	C[,!776>@AC	Ert   c           	      *   t        d      dz  }t        j                  g d      }t        j                  |g d      }t        ||       t        t        |t        j                               t        t        j                  |t        j                  g d            |       t        j                  t        j                   d      j                  d      t        j                  g d      d	      }t        g d
g dg dg dg      }t        ||       y )Nr%   r(   )r   r+   r  )r   r@  r  rJ   r    r!   )r   r   r@  r@  r   r@   )r   r!   r%   )Q?gQ@g(\ @r    r$   rI   )
r   rY   r   rS   r  r   r   r0  ndarrayrW   )r]   r   r)  r   r
  	expected2s         re   test_sequence_perz'TestScoreatpercentile.test_sequence_per  s    1IO88N+%%a6X&
3

+,//288L3IJ 	" &&ryy}'<'<U'C')xx0@'AK9-%%' (	 	i(rt   c                     t         j                  }t        d      j                  dd      }t	         ||d      g d       g dg dg dg}t	         ||dd	
      |       g dg dg dg}t	         ||dd
      |       t        g dg dg dg dg dg      }t        j                  |d      }t	        |j                  d       t	        |d       t        j                  |dd	
      }t	        |j                  d       t	        |g d       y )NrJ   r    r!   )ri  r  r@  )g      @r-         &@)r   r    r!   r"   r!   r"   r#   r$   )r%   r&   rH   rI   r   r@   )      ?g      @g     !@)r)   r-         #@r  r   r   r   r   )r!   r!   r    r  r   r   r    )rS   r  r   rW   r   r   r  )r]   r  r   r0r  scores         re   	test_axiszTestScoreatpercentile.test_axis  s    --2Jq!$[M24EFL.9[M:B? /:>[M:B?9	 
 ''2.U[["%UC ''2A6U[[$'UI&rt   c                     t        t        t        j                  ddgdd       t        t        t        j                  dgd       t        t        t        j                  dgd       y )Nr   r   rA  r   r  e   rN   )r   r   rS   r  r  s    re   test_exceptionz$TestScoreatpercentile.test_exception  sK    j%"9"9Aq62+3	5j%"9"9A3Dj%"9"9A3Crt   c                 f   t        t        j                  g d      t        j                         t        t        j                  t        j
                  g g g      d      t        j                         t        t        j                  g ddg      t        j                  t        j                  g       y )Nr  c   )r   rS   r  rY   rZ   r   r  s    re   
test_emptyz TestScoreatpercentile.test_empty  sm    U,,R4bff=U,,RXXr2h-?DbffMU,,R"b:RVVRVV<LMrt   N)r   r   r   r  r   r  r  r  r  r  r  r   rt   re   r  r  g  s-    2
;4E2)$'0DNrt   r  zignore::FutureWarningc            
       
   e Zd Zd Zd Zd Zd Zej                  j                  d e
j                  dd            d        Zd	 Zd
 Zej                  j                  dg dde
j                  ddddgg dde
j                  ddgg      ej                  j                  dddg      d               Zej                  j                  d e
j                  dd            e
j"                  fd       Zd Zd Zej                  j                  dddg      d        Zd Zej                  j/                  d      ej                  j                  d e
j0                  d        e
j0                  d!      g      d"               Zd# Zy$)%TestModec                     t        j                  g       \  }}t        |t        j                  g              t        |t        j                  g              y r4  rS   moder   rY   r   r]   valsr  s      re   r  zTestMode.test_empty  s7    zz"~fT288B<(VRXXb\*rt   c                     t        j                  d      \  }}t        |t        j                  dg             t        |t        j                  dg             y )Nr  r   r  r  s      re   r  zTestMode.test_scalar  s;    zz"~fT288RD>*VRXXqc]+rt   c                 r    g d}t        j                  |      }t        |d   d       t        |d   d       y )Nr    r"   r   rH      r    r   r#   r%   r#   rH   r#   r   r#   r   r    rS   r  r   )r]   data1r  s      re   r   zTestMode.test_basic  s1    7zz% T!Wa T!Wa rt   c           
         g d}g d}g d}g d}g d}t        j                  |||||g      }t        j                  |d d      }t	        |d   t        j                  d	gg             t	        |d
   t        j                  dgg             t        j                  |dd      }t	        |d   t        j                  g dg             t	        |d
   t        j                  g dg             t        j                  |d
d      }t	        |d   t        j                  dgdgdgd	gd	gg             t	        |d
   t        j                  dgdgdgdgdgg             y )N)rH   rH   r  r  )rH   rH   rH   rH   )rh  rH   rh  rh  )r  r  r  r  )r  r  r  r  TrA   keepdimsr   r  r   r%   )rH   rH   r  r  )r   r    r    r   rH   rh  r   r!   r    )rY   r   rS   r  r   )r]   r  data2data3data4data5arrr  s           re   	test_axeszTestMode.test_axes  s+        hhueUE:;zz#D48T!Wbhhv./T!Wbhhuo.zz#A5T!Wbhh(8'9:;T!Wbhh~67zz#A5T!WbhhrdRD2$'EFGT!WbhhaS1#sQC'@ABrt   rA   r,  r   c                 <   t         j                  j                  d       t         j                  j                  dddd      }t	        j
                  ||j                  |z         }t	        j
                  ||      }t         j                  j                  ||       y )N:rH   rI   rJ   rK   r@   )	rY   rI  r  r  rS   r  ndimrq  r	   )r]   rA   r   r  r	  s        re   test_negative_axes_gh_15375z$TestMode.test_negative_axes_gh_15375	  sf    
		y!IINN2r2r*zz!!&&+.zz!$'


%%dD1rt   c                     g d}g }t        j                  |      }d}t        ||       t        j                  |      }t        ||       y )Nr  )r  count)rS   r  r   )r]   r  r  r  r   actual2s         re   test_mode_result_attributesz$TestMode.test_mode_result_attributes	  sA    7E"&
FJ/**U#GZ0rt   c                 J   dt         j                  dddddddddddg}t        j                  |      }t	        |d	       t        j                  |d
      }t	        |d	       t        t        t        j                  |d       t        t        t        j                  |d       y )Nr    r"   r   rH   r  r   r#   r%   )r#   r    rz   r{   r~   r   )rY   rZ   rS   r  r   r   r   )r]   r  r  s      re   test_mode_nanzTestMode.test_mode_nan	  s|    BFFAq"b!Q1aQ?E"VV$Ef5VV$j%**eHj%**eIrt   data)r    r"   r   r   r    r    r"   r   )r    r"   r   r  FTc                 |    t        j                  |d|      }|rt        |d   d   d       y t        |d   d       y )Nrz   )r|   r  r   r   r  )r]   r  r  r#  s       re   test_smallest_equalzTestMode.test_smallest_equal	  s9     DVhG1q)A&rt   rO   c                    t         j                  j                  d      }|j                  d      j	                  |      }t        j                  ||d      }t        |j                        }|j                  |       t         j                  j                  |j                  j                  |       t         j                  j                  |j                  j                  |       y )Nr  )r    r!   r"   rB  Fr  )rY   rI  rJ  uniformr&  rS   r  rK  r  poprq  r	   r  )r]   rA   r?   rN  r   r   reference_shapes          re   test_mode_shape_gh_9955z TestMode.test_mode_shape_gh_9955,	  s    ii##I.KKYK'..u5jj6qww-D!


%%chhnnoF


%%ciiooGrt   c                     dt         j                  dt         j                  g}t        j                  |      }t        j                  |j                        r|j
                  dk(  sJ y Nr   r   )rY   rZ   rS   r  r  r  )r]   r   r   s      re   !test_nan_policy_propagate_gh_9815z*TestMode.test_nan_policy_propagate_gh_98156	  sI     266"jjmxx!cii1n44nrt   c                 .   t        j                  d      }t        j                  |dd      }|j                  j                  |j
                  j                  cxk(  rdk(  sJ  J t        j                  |dd      }|j                  j                  |j
                  j                  cxk(  rdk(  sJ  J dddt         j                  gddt         j                  dgg}t        j                  |dd      }t        |j                  ddg       t        |j
                  d	dg       t        j                  |dd      }t        |j                  dgdgg       t        |j
                  d	gdgg       t        j                  |      }t        j                  |d d      }t        j                  |j                         d
      }t        ||       |j                  j                  |j                  j                  cxk(  rdk(  sJ  J t        j                  |d d      }t        j                  |j                         d
      }t        |j                  j                         |j                  j                                |j                  j                  dk(  sJ t        |j
                  j                         |j
                  j                                |j
                  j                  dk(  sJ dt         j                  t         j                  t         j                  dgt         j                  t         j                  t         j                  t         j                  d	gdd	t         j                  ddgg}t        j                  |ddd      }t        |j                  g d       t        |j
                  g d       t        j                  |ddd      }t        |j                  dgd	gdgg       t        |j
                  d	gdgd	gg       t        j                  |      }t        j                  |d dd      }t        j                  |j                         dd      }t        ||       |j                  j                  |j                  j                  cxk(  rdk(  sJ  J t        j                  |d dd      }t        j                  |j                         dd      }t        |j                  j                         |j                  j                                |j                  j                  dk(  sJ t        |j
                  j                         |j
                  j                                |j
                  j                  dk(  sJ y )N)r   r   r    r   r   Fr  )r   r    r   T)r   r   r    r   r    r   r  r   r   r   r"   rz   )rA   r  r|   )r   r   r"   )r   r   r   )r  r|   )rY   r  rS   r  r  r  rZ   r	   r   ravelr   )r]   r   r   rP  s       re   test_keepdimszTestMode.test_keepdims=	  s   HH\"jjU3xx~~=I=====jjT2xx~~@L@@@@@ ArvvArvvq 12jjU3388aV,399q!f-jjT2388qcA3Z0399sQCj1HHQKjj6jjU33$xx~~5255555jj5jjT2SXX^^%sxx~~'78xx~~'''SYY__&		(9:yy&((( +ffbffbffbffa0BFFAq!# jjUvF388Y/399i0jjTfE388qcA3_5399sQC!o6HHQKjj&IjjUvF3$xx~~5255555jjHjjTfESXX^^%sxx~~'78xx~~'''SYY__&		(9:yy&(((rt   r|   r  rz   c                    d}t        j                  |      }t         j                  |d<   t        j                  |dd|      }t        |j                  g d       t        |j                  g d       t        j                  dt         j                  fd	t         j                  d
fg      }t        j                  d|      }t        j                  t        d      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)N)r!   r    r   r   r   F)r   rA   r  r|   r^  r   r    r    r    asdfqwerr  rH   r>   zArgument `a` is not...r   r{   )rY   rU  rZ   rS   r  r	   r  r?   uint8r   r  r   r   	TypeError)r]   r|   r  r  r   my_dtypetests          re   test_gh16955zTestMode.test_gh16955y	  s     wwu~VVT
jj4a%JO388\2399l3 88fbhh/&"**d1KLMxx(+]]9,DE 	4JJt
3	4 	4 	4s   C??Dc                    t        j                  g       }t        j                  df}t	        ||       t        j                  t        j                  gd      }t	        ||       g dt        j                  t        j                  t        j                  gg}t        j                  |dd      }dt        j                  gddgf}t	        ||       t        j                  |dd	      }dt        j                  gdd
gf}t	        ||       t        j
                  g g g      }t        j                  |d      }t        j                  t        j                  gddgf}t	        ||       y )Nr   rz   r{   )rx   rF  rF  r   r  rh  r   r  r    r@   )rS   r  rY   rZ   r   r   )r]   r   rP  r   zs        re   test_gh9955zTestMode.test_gh9955	  s    jjnvvqkS#jj"&&f5S#rvvrvvrvv67jjv6BFF|aV$S#jj{;BFF|aV$S#HHb"Xjj#!Q(S#rt   zignore::RuntimeWarningr  r  rA  c                     t        j                  |d d      }t        j                  |d d      }|d   j                  |d   j                  cxk(  r|j                  cxk(  rdk(  sJ  J y )NTr  r   r   r  )rS   r  rY   rX   r  )r]   r  r   rP  s       re   test_gh17214zTestMode.test_gh17214	  sZ     jj5ggadT21v||s1v||EsyyEIEEEEErt   c                    d} G d d      }t        j                  t        |      5  t        j                   |t        j                  d                   d d d        t        j                  t        |      5  t        j                  t        j                  dt                     d d d        y # 1 sw Y   \xY w# 1 sw Y   y xY w)Nz*Argument `a` is not recognized as numeric.c                       e Zd Zd ZddZy)8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikec                     || _         y r4  )_xr  s     re   __init__zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__	  s	    rt   Nc                 @    | j                   j                  t              S r4  )r  r&  object)r]   r?   copys      re   	__array__zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__	  s    ww~~f--rt   )NN)r   r   r   r  r  r   rt   re   ArrLiker  	  s    .rt   r   r   r    r>   )r   r   r  rS   r  rY   r   r  )r]   r7  r   s      re   test_raise_non_numeric_gh18254z'TestMode.test_raise_non_numeric_gh18254	  s    >	. 	. ]]9G4 	.JJwryy|,-	.]]9G4 	3JJryy&12	3 	3	. 	.	3 	3s   /B2:/B>2B;>CN)r   r   r   r  r  r   r  r   r]  r^  rY   r   r  r  r  rZ   r  r   r  r  r  r  r  filterwarningsemptyr  r!  r   rt   re   r  r    s   +
,
!C( [[VYRYYr1%562 721J [[V	
BFFAq!Q	
BFFAq	&  [[Z%7' 8' [[VYRYYr1%5624** H 7H5:)x [[\K+@A4 B4 2 [[ 89[[S8288I#68K"LMF N :F
3rt   r  c                       e Zd Zg dZdZd Zy)TestSEMr  r  c                    t               5 }t        j                  d      5  |j                  t        d       t        j                  | j                        }d d d        d d d        t        t        j                               t        j                  | j                        }t        |d       t        | j                        }t        t        j                  | j                  d      t        j                  ||dz
  z        z  t        j                  | j                  d             t        j                  d      }t        j                   |d	<   t#        t        j                  |      t        j                          t#        t        j                  |d
      d       t%        t&        t
        j                  |d       t%        t&        t
        j                  |d       y # 1 sw Y   xY w# 1 sw Y   xY w)Nry  rz  !Degrees of freedom <= 0 for sliceg㝎?r   rh   r   rx   r&   rz   r{   gH=6?r~   r   )r   rY   r|  r   r\   rS   semscalar_testcaser   r  testcaser
   r  r   r   r   rZ   r   r   r   )r]   rd   r^   r  r   s        re   test_semzTestSEM.test_sem	  sM      	0CX)F 	0JJ~'JK		$../A	0 	0 	IIdmm$A|,		$--a82771ac7;KK		$--a8	: IIcNvv!UYYq\266*UYYqV46HIj%))Q7Cj%))Q8D!	0 	0 	0 	0s"   G26G%G2%G/	*G22G<N)r   r   r   r*  r)  r+  r   rt   re   r%  r%  	  s    HOErt   r%  c                      e Zd Zej                  j                  dg dg dfg dg dfg      d        Zd Zd Zej                  j                  dd	d
g      d        Z	ej                  j                  dd	d
g      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ej                  j                  d ej2                  g        ej4                  d      g      d        Zd Zd Zd Zy )!TestZmapZscorezx, yr  r+  )r   r   r   r    r!   c                     t        j                  ||      }|t        j                  |      z
  t        j                  |      z  }t        ||d       y )Nr'   r  )rS   zmaprY   rX   rq   r   )r]   r   r^   r  r)  s        re   	test_zmapzTestZmapZscore.test_zmap	  s@     JJq! 
NBFF1I-8%0rt   c                    t        j                  g dg dg dg      }dt        j                  d      z  }t        j                  d      dz  }t        j                  d      }t        j                  ||d	
      }t        j                  ||d
      }| | dz  | dz  dgd|| dz  |g|| dz  || gg}g d| | | t        j                  d      gg dg}t        ||       t        ||       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   )rY   r   r   rS   r/  r   	r]   r   t1t2t3z0r`  z0_expectedz1_expecteds	            re   test_zmap_axiszTestZmapZscore.test_zmap_axis	  s    HH***, - WWR[]WWR[ZZ11%ZZ11%bSURCE3/R"Q+RCE2s+- .bS2#rwwr{3-/ 	""k2!"k2rt   c                 b   t        j                  g dg dg      }t        j                  ||dd      }t        j                  g d      dt        j                  d      z  z  }t        j                  g d      t        j                  d	      z  }t        |d
   |       t        |d   |       y Nr3  )r}   r   r  r   r   rA   ri   )      r@  r(   r(   r   r    )      r@  r(   r)   g?r   )rY   r   rS   r/  r   r   r]   r   r  r:  r;  s        re   test_zmap_ddofzTestZmapZscore.test_zmap_ddof	  s    HH**, - JJq!!!,hh56BGGAJGhh56F!!A$4!!A$4rt   ri   r   r   c           
      H   t        j                  dddt         j                  g      }t        j                  dddddt         j                  g      }t        j                  |||d      }t        |t        j                  ||t        j                  |          |	             y )
NrO   rN   r   r$   rJ   rz   ri   r|   rh   )rY   r   rZ   rS   r/  r   r  )r]   ri   scorescomparer  s        re   test_zmap_nan_policy_omitz(TestZmapZscore.test_zmap_nan_policy_omit
  s     2r1bff-.((BAq"bff56JJvwTfE5::fgrxx7H6H.I+/1 	2rt   c                 f   t        j                  dd      j                  dd      }t        j                  ddd      j                  dd      }t         j                  |d<   t         j                  |d	<   t         j                  |d
<   t        j                  ||dd|      }t        j                  t        j                  |d   |d   t        j                  |d             |      t        j                  |d   |d   t        j                  |d             |      g      }t        ||d       y )N      r   r   rN   rE  r#      )r   r!   rj   r  rz   r   )r|   rA   ri   r   rh   r  r  )
rY   r   rW   r,  rZ   rS   r/  r   r  r   )r]   ri   rG  rH  r  r)  s         re   #test_zmap_nan_policy_omit_with_axisz2TestZmapZscore.test_zmap_nan_policy_omit_with_axis
  s    4%--a4++b!R(00B7JJvw6M88UZZq	(/
BHHWQZ4H3H(I-13 #ZZq	(/
BHHWQZ4H3H(I-134 5 	8%0rt   c                    t        j                  g d      }t        j                  dddddt         j                  g      }t        j                  t
        d      5  t        j                  ||d	
       d d d        y # 1 sw Y   y xY w)Nr+  rE  rO   r   r$   rJ   zinput contains nanr   r~   r{   )rY   r   rZ   r   r   r   rS   r/  )r]   rG  rH  s      re   test_zmap_nan_policy_raisez)TestZmapZscore.test_zmap_nan_policy_raise"
  sc    )$((BAq"bff56]]:-AB 	<JJvw7;	< 	< 	<s   A>>Bc                 V    t        j                  g d      }g d}t        ||d       y )Nr  )gOT\wg%ܿg%?gOT\w?rJ   rB   )rS   zscorer   )r]   r^   desireds      re   test_zscorezTestZmapZscore.test_zscore(
  s%     LL&%!'1b9rt   c                    t        j                  g dg dg dg      }dt        j                  d      z  }t        j                  d      dz  }t        j                  d      }t        j                  |d	
      }t        j                  |d
      }| | dz  | dz  dgd|| dz  |g|| dz  || gg}g d| | | t        j                  d      gg dg}t        ||       t        ||       y r2  )rY   r   r   rS   rQ  r   r5  s	            re   test_zscore_axiszTestZmapZscore.test_zscore_axis0
  s    HH***, - WWR[]WWR[\\!!$\\!!$bSURCE3/R"Q+RCE2s+- .bS2#rwwr{3-/ 	""k2!"k2rt   c                 `   t        j                  g dg dg      }t        j                  |dd      }t        j                  g d      dt        j                  d      z  z  }t        j                  g d      t        j                  d	      z  }t        |d
   |       t        |d   |       y r>  )rY   r   rS   rQ  r   r   rB  s        re   test_zscore_ddofzTestZmapZscore.test_zscore_ddofG
  s    HH**, - LL+hh56BGGAJGhh56F!!A$4!!A$4rt   c                     t        j                  ddt         j                  ddg      }t        j                  |d      }t        t        j                  |            sJ y )Nr   r   r!   r"   r  r{   )rY   r   rZ   rS   rQ  r  r  r]   r   r  s      re   test_zscore_nan_propagatez(TestZmapZscore.test_zscore_nan_propagateS
  sE    HHaBFFAq)*LL{3288A;rt   c                     t        j                  ddt         j                  ddg      }t        j                  |d      }t        j                  ddt         j                  d	d
g      }t        ||       y )Nr   r   r!   r"   rz   r{   gIHb=gIHb=gIHb=?gIHb=?)rY   r   rZ   rS   rQ  r   r]   r   r  r)  s       re   test_zscore_nan_omitz#TestZmapZscore.test_zscore_nan_omitX
  sa    HHaBFFAq)*LLv.8800VV//	   	"!X.rt   c                    t        j                  t         j                  dddddg      }t        j                  |dd      }t         j
                  t         j                  t        j                  |dd  d	      f   }t        ||d
       y )Nr   r   r6   rh  r   r   rz   rF  rh   vIh%<=r  )rY   r   rZ   rS   rQ  r_r   r\  s       re   test_zscore_nan_omit_with_ddofz-TestZmapZscore.test_zscore_nan_omit_with_ddofe
  sg    HHbffc3S#67LLv655ae!!<<=8%0rt   c                     t        j                  ddt         j                  ddg      }t        t        t
        j                  |d       y )Nr   r   r!   r"   r~   r{   )rY   r   rZ   r   r   rS   rQ  r  s     re   test_zscore_nan_raisez$TestZmapZscore.test_zscore_nan_raisek
  s1    HHaBFFAq)*j%,,gFrt   c                     dgdz  }t        j                  |      }t        |t        j                  t        |      t        j                               y )NgʡEr    )rS   rQ  r   rY   rm   r  rZ   rY  s      re   test_zscore_constant_input_1dz,TestZmapZscore.test_zscore_constant_input_1dp
  s7    HqLLLOQA/0rt   c           
         t        j                  g dg dg      }t        j                  |d      }t	        |t        j                  t         j
                  dddgt         j
                  dddgg             t        j                  |d      }t	        |t        j                  t         j
                  t         j
                  t         j
                  t         j
                  gt        j                  |d         g             t        j                  |d       }t	        |t        j                  |j                               j                  |j                               t        j                  d      }t        j                  |d       }t	        |t        j                  |j                  t         j
                               y )	Nrx   rx   rx   rx   rx   r  r        *@r   r@   r   r   r   )r    r#   )rY   r   rS   rQ  r   rZ   r  rW   r  rU  rm   )r]   r   r9  r`  r  r^   s         re   test_zscore_constant_input_2dz,TestZmapZscore.test_zscore_constant_input_2du
  s+   HH..0 1\\!!$RBFFD$#=$&FFCc#:#< = 	>\\!!$RBFFBFFBFFBFF#C#(<<!#5#7 8 	9LL&QQWWY/77@AGGFOLL&Q01rt   c                 l   t        j                  g ddddt         j                  gddt         j                  dgg      }t        j                  |dd      }t        j
                  d      }t        j
                  d	      }t        |t        j                  t         j                  | d
t         j                  gt         j                  ddt         j                  gt         j                  |t         j                  t         j                  gg             t        j                  |dd      }t        |t        j                  t         j                  t         j                  t         j                  t         j                  g| d|t         j                  g| d	z  |t         j                  | d	z  gg             y )Nrg  rx   r  r  rz   r   r|   rA   r)   r   r   r   r   )rY   r   rZ   rS   rQ  r   r   )r]   r   r9  r  s2r`  s         re   -test_zscore_constant_input_2d_nan_policy_omitz<TestZmapZscore.test_zscore_constant_input_2d_nan_policy_omit
  s>   HH.T40T266402 3 \\!Q7GGCLWWQZBHHrvvr4&@')vvq#rvv&>')vvq"&&"&&&A&C D 	E \\!Q7BHHrvvrvvrvvrvv&F()r1a&8(*s1ub"&&2#a%&@&B C 	Drt   c           	         t        j                  t         j                  t         j                  t         j                  t         j                  gg dg      }t        j                  |dd      }t        |t        j                  t         j                  t         j                  t         j                  t         j                  gg dg             y )N)rx   rx   r  r  rz   r   rl  r4  )rY   r   rZ   rS   rQ  r   rY  s      re   test_zscore_2d_all_nan_rowz)TestZmapZscore.test_zscore_2d_all_nan_row
  s}    HHrvvrvvrvvrvv6.0 1LLvA6Q266266266266"B"8": ; 	<rt   c                     t        j                  dt         j                        }t        j                  |dd       }t        ||       y )Nr   r    rz   rl  )rY   rm   rZ   rS   rQ  r   )r]   r^   r  s      re   test_zscore_2d_all_nanz%TestZmapZscore.test_zscore_2d_all_nan
  s2    GGFBFF#LLvD9Qrt   r   )r    r   r"   c                 F    t        j                  |      }t        ||       y r4  )rS   rQ  r   rY  s      re   test_zscore_empty_inputz&TestZmapZscore.test_zscore_empty_input
  s    LLOQrt   c                     t        j                  g d      }t        j                  |      }t        j                  |t        j
                  |      z        t        j                  t        j                  |d            z  }t        ||       y )Nr  r   rh   )rY   r   rS   gzscoreloggmeangstdr   )r]   r   r  rR  s       re   test_gzscore_normal_arrayz(TestZmapZscore.test_gzscore_normal_array
  s\    HH\"MM!&&U[[^+,rvvejj6K/LL#rt   c                     t        j                  g d      }t         j                  j                  |g d      }t	        j
                  |      }ddt         j                  ddg}t        ||       y )N)r   r   rN   r    r!   )r   r   r   r   r   maskg0jg`ȿg/A?g(/?)rY   r   r  masked_arrayrS   rw  ro  r   )r]   r   mxr  rR  s        re   test_gzscore_masked_arrayz(TestZmapZscore.test_gzscore_masked_array
  sY    HH%&UU8MM"#_bffn"$#rt   c                    t         j                  j                  d      }|j                  d      }t        j                  |      }t         j
                  j                  ||      }d|j                  d<   t        j                  |dd        }t        j                  t        j                  |            rJ t        j                  |      }t        |dd  |       t        j                  |d       }t        |dd  |       |d   |dd  t        j                  |      }t        |dd  t         j                         t        j                  |d       }t        |dd  t         j                         y )Ni_ rH   Tr   r   r@   )rY   rI  rJ  standard_normal
zeros_liker  r  r~  rS   rQ  anyr  r   r   rZ   )r]   rN  r   r~  r^   rP  r   s          re   $test_zscore_masked_element_0_gh19039z3TestZmapZscore.test_zscore_masked_element_0_gh19039
  s   ii##G,#}}QEEq$'q	ll1QR5!66"((3-(((ll1oAB%ll14(AB%!!"ll1oSWbff%ll14(SWbff%rt   N)r   r   r   r   r]  r^  r0  r<  rC  rI  rM  rO  rS  rU  rW  rZ  r]  ra  rc  re  rj  rn  rp  rs  rY   r   r  ru  r{  r  r  r   rt   re   r-  r-  	  s)   [[
	%
_	%	'
1
13.
5 [[VaV,2 -2 [[VaV,1 -1<:3.
5 
/1G
1
2 D< [[S8288B<)1D"EF G$$&rt   r-  c            
          e Zd Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  d	d
 ej                  ej                  ddg      fd ej                  ej                  ej                  dg      fg      d        Zej                  j                  ddg dfdg      d        Zd Zy)TestMedianAbsDeviationc                     t        j                  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                  g      | _        t        j                  g d      | _        y )N皙@r  r*   皙@r  333333@=
ףp=@r  (\
@r  r+   r  皙@)\(@Q@)r  r  r  r  r*   r  r  r  r  r  r  r  r  r  r  r+   r  r  r  r  r  r  r  g33333<@)rY   r   rZ   dat_nandatr  s    re   setup_classz"TestMedianAbsDeviation.setup_class
  sg    xxtS#sCc!%tT4c3!$c3S$bff!N O 88 ? @rt   c                    t        t        j                  | j                  d       d       | j                  j	                  dd      }t        j                  |d      }t        j                  g d      }t        ||       y )Nr@   gQ?r#   r!   r   )gףp=
?r(   ?ri  )r   rS   median_abs_deviationr  rW   rY   rp  r   )r]   r  madmad_expecteds       re   test_median_abs_deviationz0TestMedianAbsDeviation.test_median_abs_deviation
  sa    E66txxdK!	#hhq!$((15zz"9:!#|4rt   c                 ^    t        j                  | j                  d      }t        |d       y )Nrz   r{   g(\?)rS   r  r  r   )r]   r  s     re   test_mad_nan_omitz(TestMedianAbsDeviation.test_mad_nan_omit
  s"    ((&IC&rt   c                     t        j                  ddddt         j                  gg dg      }t        j                  |d      }t        |t        j                  t         j                  dg             y )Nr   r  r   r  )r   r  r6   r!  r   r   r@   rY   r   rZ   rS   r  r   )r]   r   r  s      re   test_axis_and_nanz(TestMedianAbsDeviation.test_axis_and_nan
  sV    HHsCc2662/1 2((3S"((BFFC=12rt   c           	          t        j                  dddddt         j                  t         j                  g      }t	        j
                  |d      }t        |d       y )	Nr   r    r!   r#   r  rz   r{   r   )rY   r   rZ   ro  rS   r  r   )r]   r  r  s      re   test_nan_policy_omit_with_infz4TestMedianAbsDeviation.test_nan_policy_omit_with_inf
  sC    HHaAq"bffbff56((v>S#rt   rA   )r   r   r   Nc                     t        j                  d      }t        j                  ||      }t	        |t        j
                  |j                  |      t         j                               y )N)r    r   r!   r@   
fill_value)rY   r  rS   r  r   	full_likesumrZ   )r]   rA   r   r  s       re   test_size_zero_with_axisz/TestMedianAbsDeviation.test_size_zero_with_axis
  sF    HHY((6S",,quu$u'7BFFKLrt   znan_policy, expectedrz   r)   r  c           	      x   t        j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  gddddt         j                  t         j                  gg dg      }t        j                  ||d      }t        ||       y )Nr   r"   r    r#   )r"   r#   r$   r&   r&   rH   rl  r  )r]   r|   r)  r   r  s        re   test_nan_policy_with_axisz0TestMedianAbsDeviation.test_nan_policy_with_axis
  sy     HHrvvrvvrvvrvvrvvrvvF!Q2662662)+ , ((zJS(#rt   zaxis, expectedr   )r*   r  r  )Nr,   c                     t        j                  ddddt         j                  gg dg dg      }t        j                  |t         j
                  d|      }t        ||d	d	
       y )Nr   r   r!   r&   )r   r   r   r   rJ   )r  r  rh  rh  rz   )centerr|   rA   r   rH  )rY   r   rZ   rS   r  rX   r   )r]   rA   r)  r   r  s        re   test_center_mean_with_nanz0TestMedianAbsDeviation.test_center_mean_with_nan
  s[     HHq!Q266*&-/ 0 ((277v.24XE>rt   c                     t        j                  t        d      5  t        j                  g dd       d d d        y # 1 sw Y   y xY w)Ncallabler   )r   r   r    r"   r  r  )r   r   r  rS   r  r  s    re   test_center_not_callablez/TestMedianAbsDeviation.test_center_not_callable  s9    ]]9J7 	@&&|B?	@ 	@ 	@	   ?AN)r   r   r   r  r  r  r  r  r   r]  r^  r  rY   r   rZ   r  r  r  r   rt   re   r  r  
  s    @5'3
 [[V_5M 6M
 [[3%xrxxc0B'CD*HBHHbffbffc5J,KLNO$O$ [[- "23[AC?C?@rt   r  c                 l    t        t        |       |d       | D ]  }t        |j                  |u         y)z
    Checks that all of the warnings from a list returned by
    `warnings.catch_all(record=True)` are of the required type and that the list
    contains expected number of warnings.
    znumber of warningsN)r   r  r   category)	warn_listexpected_typeexpected_lenwarn_s       re   _check_warningsr  	  s5     Y/CD 1-/01rt   c                   T    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y)TestIQRc                     t        j                  d      dz  }t         j                  j                  |       t	        t        j                  |      d       y )Nr%   r(   r  )rY   r   rI  r  r   rS   iqrr  s     re   r   zTestIQR.test_basic  s8    IIaL3
		!UYYq\4(rt   c           	         t        j                  d      }t        j                  |       t        j                  |d        t        j                  |d       t        j                  |d       t        j                  |d d       t        j                  |d dd       t        j                  |d ddd	       t        j                  |d d
ddd       t        j                  |d ddddd       y )Nr  r   r   r   )rH   Z   )r  rh  r   )ri  r  r)   r  )r  r  rK  r~   lineargٿrz   r  T)rY   rU  rS   r  )r]   ds     re   test_apizTestIQR.test_api  s    GGFO		!		!T		!Q		!V		!T8$		!T8S)		!T8S+6		!T8XwA		!T8T67DArt   c                     t        t        j                  g       t        j                         t        t        j                  t        j
                  d            t        j                         y r   )r   rS   r  rY   rZ   r   r  s    re   r  zTestIQR.test_empty'  s7    UYYr]BFF+UYYryy|,bff5rt   c                 R   t        j                  d      }t        t        j                  |      d       t        t        j                  |d      t        j                  d             t        t        j                  |d      t        j                  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        j                  d      t        j                  d      z  }t        t        j                  |d      t        j                  d             t        t        j                  |d      t        j                  d             t        t        j                  |d      t        j                  dd             t        t        j                  |d      t        j                  d             t        t        j                  |d      t        j                  dd             t        t        j                  |d      t        j                  dd             y )N)r$   r!   r}   r   r@   r!   r   r$   r  interpolationmidpointnearestr  r  )r!   r"   r#   r#   )r"   r#   )r!   r#   r   )r!   r"   r*   r  r   r   r"   r   r   r   )	rY   rU  r   rS   r  r	   r  r   rm   r1  s      re   test_constantzTestIQR.test_constant+  s   GGFOUYYq\3'599QQ/!=599QQ/!=UYYq93?UYYq
;SAUYYq	:C@UYYq8#>UYYq93? GGI1-599QQ/&1AB599QQ/&1AB599QQ/1EF599QV4bhhqkB599QV4bgganE599QV4bgganErt   c                     t        j                  d      dz   }t        t        j                  |d         d       t        t        j                  |      d       t        t        j                  |d      dg       y )Nr   rh  r   r}   Tr  )rY   r   r   rS   r  r	   r  s     re   test_scalarlikezTestIQR.test_scalarlikeA  sS    IIaL3UYYqt_c*UYYq\3'599Q6>rt   c                    t        j                  d      j                  d      }t        t	        j
                  |      d       t        t	        j
                  |d      t        j                  dd             t        t	        j
                  |d      t        j                  d	d
             t        t	        j
                  |d      d       t        t	        j
                  |d      d       y )Nrg  r    r"   rh  r   r@   r"   r6   r   r    r  r  r  )rY   r   rW   r   rS   r  r	   rm   r  s     re   test_2DzTestIQR.test_2DG  s    IIbM!!&)UYYq\3'599QQ/B@599QQ/B@599QV4c:599QV4c:rt   c                 2   t         j                  j                  d      }t        j                  |gdz        }t	        j
                  |      }t        t	        j
                  |d      |       t        j                  |dd      }t        t	        j
                  |d      |       |j                  dd	      }t        t	        j
                  |d
      |       |j                  dd	      }t        t	        j
                  |d      t	        j
                  |d              t        t	        j
                  |d      t	        j
                  |d             t        j                  d      }t         j                  j                  |       |j                  d      }t        t	        j
                  |d      d   t	        j
                  |d d d d d d df   j                                      t        t	        j
                  |d      d	   t	        j
                  |d d d d d	d d f   j                                      t        t	        j
                  |d      d   t	        j
                  |d d d d dd d f   j                                      t        t	        j
                  |d      d   t	        j
                  |dd d d d d d f   j                                      t        t	        j
                  |d      d   t	        j
                  |dd	d d d d f   j                                      t        t	        j
                  |d      d   t	        j
                  |dd d d d d	f   j                                      t        t	        j
                  |d      d   t	        j
                  |dd d dd d f   j                                      t        t        t        j
                  |d       t        t        t        j
                  |d       y )N)G   r  rB  rH   r  r@   rN   r   r   r   r   r  r  r   i  r    r"   r$   rI   r   r   r    )r    r   r,  r   )r    r   r   r    r   )r   rX  )r   r    r   r   r!   r  )rY   rI  rK  dstackrS   r  r   moveaxisswapaxesr   r  rW   r  r   r   r   )r]   or   qr  s        re   r  zTestIQR.test_axisO  s   II(+IIqcBhIIaLUYYqv.2KK2q!UYYqv.2JJq!UYYqv.2JJq!UYYqy1YYqt,	.UYYqt,YYqq)	+ IIn% 			!IIm$UYYqy1!4YYq1Q{0023	5UYYqy1!4YYq1a{0023	5UYYqz215YYq1a{0023	5UYYqy1!4YYq1Qqz//12	4UYYqv.t4YYqAa{0023	5UYYqw/5YYqAq!}2245	7UYYqv.t4YYqAq|1134	6 	iAA6j%))QV<rt   c                    t        j                  d      }t        t        j                  |      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        t        j                  |d	       t        t        t        j                  |t         j                  d
f       t        t        t        j                  |d       y )Nr"   r   )ri  g     U@)rN  r*   )g      )@r  )rH   r  g?)r   r  ri  )r   r  <   )
rY   r   r   rS   r  r   r   r   rZ   r  r  s     re   test_rngzTestIQR.test_rngx  s    IIaLUYYq\1%UYYqj137UYYqj137EIIaX6<j%))QH=j%))QRVVRLAiA;?rt   c                    t        j                  d      }t        j                  d      }t        t        j                  |      d       t        t        j                  |      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |dd	      d
       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d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	      d       t        t        j                  |d      d       dD ]  }t        j                  ||        t        t        t        j                  |d       y )Nr"   r!   r   r)   r  r  r  )ri  P   )rN  r  r    r  r  r   r  r*   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedr   )rY   r   r   rS   r  r   r   )r]   r   r^   r:  s       re   test_interpolationzTestIQR.test_interpolation  s   IIaLIIaLUYYq\1%UYYq\3'UYYq91=UYYq93?UYYq91=UYYqhhGKUYYq91=UYYq8!<UYYqhgFJUYYq8!<UYYq	:A>UYYq	:A>UYYq
;Q?UYYqhjI3OUYYq
;Q?* 	/F IIav.		/ 	j%))QhGrt   c                    t        j                  d      }t        t        j                  |d d      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |d	d      j
                  d
       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |d d      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |d	d      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       y )Nr  Fr  r   r   )r    r"   rI   r  )r$   rI   )r   r    )r"   r$   r   r  r   r   r   r    r  r  )r$   Tr^  )r    r"   r   rI   )r   r   r$   rI   )r   r"   r$   r   )r    r   r$   rI   )r   r   r$   r   )rY   rU  r   rS   r  r  r  s     re   r  zTestIQR.test_keepdims  s   GGM"UYYqte<BBBGUYYqq59??LUYYqv>DDgNUYYqv>DDfMUYYqte<BBJOUYYq,?EErJUYYqy5AGGNUYYqtd;AA<PUYYqq48>>NUYYqv=CC]SUYYqv=CC\RUYYqtd;AA=QUYYq,>DDlSUYYqy4@FFUrt   c           	      j   t        j                  d      j                  d      }t        t	        j
                  |d      d       t        t	        j
                  |d      d       t        t	        j
                  |d      d       t         j                  |d<   t        j                  d	
      5  t        j                  d       t        t	        j
                  |d      t         j                         t        t	        j
                  |dd      ddt         j                  ddg       t        t	        j
                  |dd      dt         j                  dg       d d d        t        j                  d	
      5  t        j                  d       t        t	        j
                  |d      d       t        t	        j
                  |dd      t        j                  dd             t        t	        j
                  |dd      g d       d d d        t        t        t        j
                  |d       t        t        t        j
                  |dd       t        t        t        j
                  |dd       t        t        t        j
                  |d       y # 1 sw Y   @xY w# 1 sw Y   xY w)N      .@r  r  r{   r$   rz   r~   r  Tr[   alwaysr   r  r"   r   r   r/   )r   r*   r   barfood)rY   r   rW   r   rS   r  rZ   warningscatch_warningssimplefilterrm   r   r   r  s     re   test_nanpolicyzTestIQR.test_nanpolicy  s   IIdO##F+ 	UYYq[91=UYYqV4a8UYYqW5q9 &&$$$D1 	)!!(+1=!11EQ1-/11ERVVQ)	) $$D1 	O!!(+18#>11@"''!Q-P11@+N		O 	j%))Q7Cj%))QQ7Kj%))QQ7K 	j%))Q9E)	) 	)	O 	Os   1B-J<BJ)J&)J2c           	      J   t        j                  d      j                  d      }t        t	        j
                  |d      d       t        t	        j
                  |d      d       t        t	        j
                  |d      d	       t         j                  |d
<   t        j                  d      5  t        j                  d       t        t	        j
                  |dd      t         j                         t        t	        j
                  |dd      t         j                         t        t	        j
                  |dd      t         j                         t        t	        j
                  |ddd      dt         j                  dg       t        t	        j
                  |ddd      t        j                  dt         j                  dg      dz         t        t	        j
                  |ddd      dt         j                  dg       d d d        t        t	        j
                  |dd      d       t        t	        j
                  |dd      d       t        t	        j
                  |dd      d       t        t        t        j
                  |d       y # 1 sw Y   xY w)Nr  r  r   r;  r$   rK  g=V^w@r  r+   r  Tr  r  r  )r;  r|   r   )rA   r;  r|   r   gF7k?rz   r/   g	I1=@g      @r   )rY   r   rW   r   rS   r  r   rZ   r  r  r  r   r   r   r  s     re   
test_scalezTestIQR.test_scale  s   IIdO##F+ 	UYYq,a0EIIax8-HUYYq,c2 &&$$$D1 	)!!(+1CKH"&&Q1HMrvvV1CKH"&&Q11C.9;=>NL		!!85@!B "!RVVQ 89 DF 11CKPRVVQ)	)" 	UYYq?EEIIaxFK+	-UYYq?F 	j%))Qh?/	) 	)s   1EJJ"N)r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r   rt   re   r  r    sH    )

B6F,?;'=R	@ HDV&F@!@rt   r  c                      e Zd ZdZg dZdZej                  j                  d       ej                  j                  d      Z
g dZdddd	Zej                  j                  d
ddg      ej                  j                  d edd            d               Zej                  j                  d
ddg      ej                  j                  dd      d               Zd Zej                  j                  dej(                  ej*                  ej,                  g      ej                  j                  dddg      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)'TestMomentsa  
        Comparison numbers are found using R v.1.5.1
        note that length(testcase) = 4
        testmathworks comes from documentation for the
        Statistics Toolbox for Matlab and can be found at both
        https://www.mathworks.com/help/stats/kurtosis.html
        https://www.mathworks.com/help/stats/skewness.html
        Note that both test cases came from here.
    r  r    r  )gp=
ף?g?߾?gD9?gQI?g}?5^INr  r?   c                    t        j                  |      }|t        j                  ||      }t        ||       ||j                  }|j                  |k(  sJ y r4  )rY   rp  broadcast_tor	   r?   )r]   r  expectr  r?   s        re   _assert_equalzTestMoments._assert_equal  sP    F#__VU3F66*=LLE||u$$$rt   r   rH   )rH   r   zm, cr  )Nr   r   c                 :   t         j                  j                  d      }|j                  |      }t        j                  |||      }|t        j
                  |d      n|}t        j                  ||z
  |z  d      t        |      z  }t        ||d       y )Nl   rHZ rB  r  r   r@   缉ؗҜ<r   )	rY   rI  rJ  rS   momentrX   r  r  r   )r]   r   r  rx  rN  r   r   rP  s           re    test_moment_center_scalar_momentz,TestMoments.test_moment_center_scalar_moment  s~     ii##$78JJDJ!ll1a*"#)BGGAAffa!eaZa(Q/Su-rt   rx  c                 
   t         j                  j                  d      }|j                  |      }g d}t        j                  |||      }|D cg c]  }t        j                  |||       }}t        ||       y c c}w )Nl   %~.}~= rB  r  r  )rY   rI  rJ  rS   r  r   )	r]   r   rx  rN  r   r  r   r  rP  s	            re   test_moment_center_array_momentz+TestMoments.test_moment_center_array_moment  so     ii##$78JJDJ!ll1a*567u||Aq+77S# 8s   B c                 :   t        j                  | j                        }t        |d       t        j                  | j                  d      }t        |d       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       d}t        j                  t        |      5  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       d d d        t        j$                  d      }t        j                  |d<   t'        t        j                  |d      t        j                         t)        t        j                  |d      d       t        t        t         j                  |d       t        t        t         j                  |d       y # 1 sw Y   xY w) Nr}   r   r   r   rH   r         ?r    r!        @r  )r   r  r   r  333333?)r   r   r    r  1Mean of empty slice\.|invalid value encountered.*r   r>   r  r@   r  r  r  orderrA   )r   r   r  rx   r&   rz   r{   r~   r   )rS   r  r)  r
   r*  r   r   r   r   r   r\   r  rY   rZ   r   r   r   r  r   r   r   )r]   r^   r7  r   s       re   test_momentzTestMoments.test_moment)  s   LL--.As#LL*As#LL*AsB'LL*At$LL*As#LL*Av& LL5/0 LL,As#j%,,sCLL(89/0 G\\.8 
	4R Aq"&&

;RXXb

;<Aq"&&

;RXXf-A6Aq"D

CbT*Aq"&&BJJGbT!Qa8Aq"F3
	4 IIcNvv!U\\!Q'0ELLv>Dj%,,gFj%,,hG#
	4 
	4s   E3PPr?   zexpect, orderr  r  c                 <   t         j                  j                  d      j                  |      }t	        j
                  ||      }| j                  |||       t	        j
                  t        j                  |d      d|      }| j                  ||d|       t	        j
                  t        j                  |d	      d
|      }| j                  ||d|       t	        j
                  t        j                  |d	      d |      }| j                  ||d|       y )Nr"   r  r>   )r#   r"   r   )rA   r  )r"   r  r.  r   )r   r   r!   r"   r   )rY   rI  r  r&  rS   r  r  r  )r]   r?   r  r  r   r^   s         re   test_constant_momentsz!TestMoments.test_constant_momentsX  s     IINN1$$U+LL%(1fE2LLF3!5I1fD>LLO<1$&1fLFLLO<4$&1fBe<rt   c                 0   t        j                  d      j                  dd      j                  t              }t         j
                  |d<   t        j                  |ddd      }t         j                  j                  |dt         j
                  gd	
       y )Nr%   r   rN   r  r   r  r  r  r   r   )
rY   r   rW   r&  r  rZ   rS   r  rq  r   )r]   r   mms      re   test_moment_propagate_nanz%TestMoments.test_moment_propagate_nanj  sk     IIaL  B'..u5&&$\\!QQ;?


""2bff~E"Brt   c                     t        j                  t        d      5  t        j                  g dg        d d d        y # 1 sw Y   y xY w)Nz6'order' must be a scalar or a non-empty 1D list/array.r   r  r  )r   r   r   rS   r  r  s    re   test_moment_empty_orderz#TestMoments.test_moment_empty_orderr  s:    ]]: .J K 	1LLR0	1 	1 	1r  c                     t        j                  d      }t        j                  |d      }t        j                  |d      }t         j                  j                  ||       y )NrH   r    )r  r  )rY   r   rS   r  rq  r   )r]   r   r   rP  s       re   test_rename_moment_orderz$TestMoments.test_rename_moment_orderx  sE     IIbMll1Q'll1A&


S)rt   c                 B   t        j                  | j                        }t        j                  |      sJ t        j                  | j
                        }t        |dd       t        j                  | j
                  d      }t        |dd       t        j                  | j                        }t        |dd       t        j                  d      }t        j                  |d<   t        j                  d	
      5  t        t        j                  |      t        j                         d d d        t        t        j                  |d      d       t        t        t         j                  |d       t        t        t         j                  |d       y # 1 sw Y   mxY w)Ng7l*ҿrH   r   biasg2۠ۿr}   rx   r&   ry  rz  rz   r{   r~   r   )rS   skewr)  rY   r  testmathworksr
   r*  r   rZ   r|  r   r   r   r]   r^   r   s      re   test_skewnesszTestMoments.test_skewness  s   JJt++,xx{{ JJt))*A0"5JJt))2A126JJt}}%AsB'IIcNvv![[* 	0A/	0UZZf5r:j%**aGDj%**aHE		0 	0s   ;.FFc                 T    t        t        j                  t        d            d       y )NrH   r}   )r   rS   r   r   r  s    re   test_skewness_scalarz TestMoments.test_skewness_scalar  s    UZZr
+S1rt   c                    t        j                  d      j                  dd      j                  t              }t         j
                  |d<   t        j                  d      5  t        j                  |dd	      }d d d        t         j                  j                  d
t         j
                  gd       y # 1 sw Y   <xY w)Nr%   r   rN   r  ry  rz  r   r  r  r   r   r   )rY   r   rW   r&  r  rZ   r|  rS   r   rq  r   )r]   r   r  s      re   test_skew_propagate_nanz#TestMoments.test_skew_propagate_nan  s     IIaL  B'..u5&&$[[* 	>

11=A	>


""1q"&&k">	> 	>s   "B66B?c           
         t        j                  t        d      5  t        j                  dd      }t        j
                  t        j                  |            sJ t        j
                  t        j                  |t        d      z              sJ t        j
                  t        j                  |t        d      z              sJ t        j
                  t        j                  |d            sJ t        j
                  t        j                  dgd	z              sJ t        j
                  t        j                  d
t        j                  dd      dz  z               sJ 	 d d d        y # 1 sw Y   y xY w)NPrecision loss occurredr   9ѿrH              Fr  g,@r$   r   rO   r!   r  )
r   r   r\   rY   repeatr  rS   r   r  r   r]   r   s     re   test_skew_constant_valuez$TestMoments.test_skew_constant_value  s    \\.0IJ 		D		+r*A88EJJqM***88EJJq5<'7899988EJJq5<'7899988EJJqu5666 88EJJvax011188EJJq299R+;E+A'ABCCC		D 		D 		Ds   EE11E:c                    t        j                  | j                        }t        j                  |      sJ 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                  d      }t        j                  |d	<   t        t        j                  |      t        j                         t        t        j                  |d
      d       t        t        t         j                  |d       t        t        t         j                  |d       y )Nr   r   fisherr  gO߻S@rH   gx|N@g=
ףp=?rx   r&   rz   r{   Gzr~   r   )rS   kurtosisr)  rY   r  r!  r
   r*  r   rZ   r   r   r   r   r"  s      re   test_kurtosiszTestMoments.test_kurtosis  s    NN4//0xx{{ NN4--qCA3 NN4--aa@A0"5NN4==!Q/At$IIcNvv!U^^A&/ENN1@)Lj%..!Hj%..!Irt   c                 t    t        t        t        j                  g d            t        j
                         y )Nr+  )r   typerS   r3  rY   r   r  s    re   test_kurtosis_array_scalarz&TestMoments.test_kurtosis_array_scalar  s    T%..34bjjArt   c                 .   t        j                  d      j                  dd      j                  t              }t         j
                  |d<   t        j                  |dd      }t         j                  j                  |dt         j
                  gd	
       y )Nr%   r   rN   r  r   r  r  g(\r   r   )
rY   r   rW   r&  r  rZ   rS   r3  rq  r   )r]   r   r  s      re   test_kurtosis_propagate_nanz'TestMoments.test_kurtosis_propagate_nan  si     IIaL  B'..u5&&$NN11=


""1ubffoE"Brt   c           	      $   t        j                  dd      }t        j                  t        d      5  t        j
                  t        j                  |d            sJ t        j
                  t        j                  |t        d      z  d            sJ t        j
                  t        j                  |t        d      z  d            sJ t        j
                  t        j                  |dd            sJ 	 d d d        y # 1 sw Y   y xY w)	Nr*  rH   r)  r   F)r1  r+  r0  )	rY   r,  r   r   r\   r  rS   r3  r  r-  s     re   test_kurtosis_constant_valuez(TestMoments.test_kurtosis_constant_value  s     IIk2&\\.0IJ 	I88ENN1U;<<<88ENN1uU|+;EJKKK88ENN1uU|+;EJKKK88ENN1UGHHH		I 	I 	Is   C
DDc                     | j                   t        j                  | j                         z
  }t        t        j                  |d      j                         t        j                  | j                   d             y )Nr  )testcase_moment_accuracyrY   rX   r   r   rS   r  )r]   
tc_no_means     re   test_moment_accuracyz TestMoments.test_moment_accuracy  sY     22WWT::;<
R0557T%B%BBG	Irt   c                    t        j                  t        d      5  t        j                  j                  d      }|j	                  d      }d|d d df<   t        j                  |      d    d d d        y # 1 sw Y   y xY w)Nr)  r   l   :"z` )r@  rH   rB  )\(?r   )r   r   r\   rY   rI  rJ  rS   r   )r]   rN  r   s      re   test_precision_loss_gh15554z'TestMoments.test_precision_loss_gh15554  si     \\.0IJ 	))''4C

	
*AAadGJJqM!		 	 	s   AA88Bc                    d}t        j                  t        |      5  t        j                  g        d d d        t        j                  t        |      5  t        j
                  g        d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)Nr  r   )r   r   r\   rS   r   r3  r]   r7  s     re   test_empty_1dzTestMoments.test_empty_1d  si    F\\.8 	JJrN	\\.8 	NN2	 		 		 	s   A6B6A?B)&r   r   r   r\  r*  r)  rY   rI  r  r  r=  r!  r  r   r]  r^  r   r  r	  r  r   r   
complex128r  r  r  r  r#  r%  r'  r.  r4  r7  r9  r;  r?  rB  rE  r   rt   re   r  r    s    HOIINN4!yy~~b1<M59 % [[Vb']3[[VW\<%HI. J 4. [[Vb']3[[S,/ 0 4-H^ [[Wrzz2::r}}&MN[[_vv.>?= @ O= C1*F*2?D JDBCIIrt   r  c                     t        j                         }t        dd      }t        j                  dd      } | t        j                  |||            }g }t        j                         5  t        j                  d       t        t        |j                              D ]  }t        j                  t              5  t        j                  |d|      }t!        j"                  |d	kD        r9t!        j"                  t!        j$                  |            r|j'                  |       d d d         	 d d d        t)        j*                  |        | t(        j,                  j/                  |            }||fS # 1 sw Y   xY w# 1 sw Y   SxY w)
NF)	allow_nanallow_infinityr   r   )min_dimsmin_side)r?   elementsr  errorr  r   )npstfloating_dtypesdictarray_shapesarraysr  r  r  r  r  r  
contextlibsuppress	ExceptionrS   r  rY   r  r  r  
hypothesisassume
strategiessampled_from)drawr?   rL  r  r  ok_axesrA   rl   s           re   ttest_data_axis_strategyr\    s;      "EeE:Hq15E%(%HID G 
	 	 	" )g&#djj/* 	)D$$Y/ )ll4qt<66#'?rvvbkk#.>'?NN4() )	)) g 
%%227;<D:) )) )s&   -AF=A*E8'
F8F=FFc                      e Zd Z ej                  g d      Z ej                  g d      ZdZdZdZ	dZ
dZdZd	Zd
Ze
dz  Zde
dz  z
  Zd Zd Zej(                  j+                  dg d      d        Zd Zej(                  j0                   ej4                  ej6                  j9                  dd       e             ej(                  j+                  dddg      d                      Zy)TestStudentTestr   r  r   r   gSzgE.?g {gB4t?g {?g?r   c                 R   t               5 }t        j                  dd      5  |j                  t        d       t        j                  dd      \  }}d d d        d d d        t        t        j                               t        t        j                               t        j                  | j                  d      \  }}t        || j                         t        || j                         t        j                  | j                  d      }d}t        ||       t        j                  | j                  d      \  }}t        || j                         t        || j                          t        j                  | j                  d      \  }}t        || j"                         t        || j$                         t        j                  | j                  d	      \  }}t        || j&                         t        || j(                         t
        j*                  j-                  d
ddd      }t        j.                  |d<   t        j                  d      5  t1        t        j                  |d      t        j.                  t        j.                  f       t        t        j                  |dd      d       t3        t4        t
        j                  |dd       t3        t4        t
        j                  |dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nry  r{  divider'  r  r   r   r   r   r   r   r"   rH   3   it r:  r;  r   rD  r  rz  r6   rz   r{   )g̈́^Bg/kCm?r~   r   )r   rY   r|  r   r\   rS   ttest_1sampr   r  X1r   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2normrE  rZ   r	   r   r   )r]   rd   tr   r   r   r   s          re   test_onesamplezTestStudentTest.test_onesample,  sG     	-CHX>	-JJ~'JK$$R,DAq	- 	- 	  !,1!!TYY/!!TYY/+,
C,  !,1!!TYY/!!TYY/  !,1!!TYY/!!TYY/  !,1!!TYY/!!TYY/ JJNNq'NJ"[[* 	/u00C8266266:JK%e&7&736&R&QS*e&7&7CGT*e&7&7C%-/	/ 	/E	- 	- 	- 	-D	/ 	/s/   L0LLB%LL	LLL&c                    t        t        t        j                  | j                  dd       t        j                  | j                  dd      \  }}t        || j                         t        || j                         t        j                  | j                  dd      \  }}t        || j                         t        || j                         y )Nr   rM  r  r   r  r  )	r   r   rS   re  rf  r   P1_1_lrl  P1_1_g)r]   rq  r   s      re   test_1samp_alternativez&TestStudentTest.test_1samp_alternativeX  s    j%"3"3TWWa")	+   !@14;;'499%  !C14;;'499%rt   r  r  c                    t         j                  j                  d      }d}|j                  |dd      }|j                         }ddgdt         j                  gt         j                   d	gd
}t        j                  |||      }|j                  d      }t        |||          t        |j                  |dz
         y )Nl   <PleH rH   r)   r   r   r:  r;  gÍ]?g$(}w@gS1?g]@r  r  r  )popmeanr  333333?confidence_levelr   )rY   rI  rJ  rK  ro  rS   re  r  r   r   df)	r]   r  rN  r  r   rz  rP  r   r$  s	            re   test_1samp_ci_1dz TestStudentTest.test_1samp_ci_1dd  s     ii##$78JJA3aJ0**, 01CD-rvv6!235 7L$$d$;C,-SVVQqS!rt   c                     t        j                  t        j                  d      d      }d}t	        j
                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)NrH   r   4`confidence_level` must be a number between 0 and 1.r   r|  )rS   re  rY   r   r   r   r   r  )r]   r   r7  s      re   test_1samp_ci_ivz TestStudentTest.test_1samp_ci_ivy  sU    		"q1H]]:W5 	9##R#8	9 	9 	9s   A##A,r   g?)alpha	data_axisr  r  c                 6   |\  }}t        j                  |d||      }|j                  |      \  }}|dk(  r|n|}	t        j                  |	|      }	t        j                  ||	||      }t        j
                  j                  |j                  d|z
         y )Nr   )r  rA   r|  r  r@   r   )rS   re  r  rY   rQ  rq  r   r   )
r]   r  r  r  r  rA   r   lr  rz  s
             re   test_pvalue_cizTestStudentTest.test_pvalue_ci  s     
da,7dD&&&>1"i/!Q..t4g,7dD


""3::qw7rt   N)r   r   r   rY   r   rf  ri  rg  rh  rl  rm  rn  ro  rj  rk  rt  ru  rr  rv  r   r]  r^  r  r  r_  rV  givenrX  floatsr\  r  r   rt   re   r^  r^    s   	*	B	)	BDDDDDDDDAXF$(^F*/X
& [[],LM" N"(9 [[ZJ1188H 8 :<[[]VY,?@
8 A< 
8rt   r^  c                      e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Z	ej
                  j                  dg d	      d
        Z
ej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d	      d        Zej
                  j                  ddg dfdg dfdg dfdg dfg      d        Zej
                  j                  ddg dfdg dfdg dfdg dfg      d        Zdg dej"                  fdej"                  gdej"                  fdej"                  gg dej"                  ej"                  ej"                  gfdddgddej"                  gddej"                  gfd ddej"                  gg dg d!fd ddgd"dej"                  gd"dej"                  gfd ej"                  ej"                  gg dej"                  ej"                  ej"                  gfgZej
                  j                  d#e      d$        Zd%ddd&ej"                  gg d'd(fd%g d'ddd&ej"                  gd(fgZej
                  j                  d)e      d*        Zej
                  j                  d+g d,      d-        Zy.)/TestPercentileOfScorec                 ,    t        j                  |i |S r4  )rS   percentileofscore)r]   argskwargss      re   fzTestPercentileOfScore.f  s    &&777rt   zkind, result))r  r  )rX   #   strictr  )weakr  c                 H    g d}t        | j                  |d|      |       y )N
r   r   r    r!   r"   r#   r$   r%   r&   rH   r!   kindr   r  r]   r  r#  r   s       re   test_uniquez!TestPercentileOfScore.test_unique  s"    
 ,TVVAqtV,f5rt   ))r  r  )rX   r  r  )r  r  c                 H    g d}t        | j                  |d|      |       y )N)
r   r   r    r!   r!   r"   r#   r$   r%   r&   r!   r  r  r  s       re   test_multiple2z$TestPercentileOfScore.test_multiple2  "    
 +TVVAqtV,f5rt   ))r  r  )rX   r  r  )r  r  c                 H    g d}t        | j                  |d|      |       y )N)
r   r   r    r!   r!   r!   r"   r#   r$   r%   r!   r  r  r  s       re   test_multiple3z$TestPercentileOfScore.test_multiple3  r  rt   ))r  r  )rX   r  r  )r  r  c                 H    g d}t        | j                  |d|      |       y )N)
r   r   r    r"   r#   r$   r%   r&   rH   rI   r!   r  r  r  s       re   test_missingz"TestPercentileOfScore.test_missing  s"    
 -TVVAqtV,f5rt   c                 H    g d}t        | j                  |d|      |       y )N
rH   rh  r  r  r  r  F   r  r  r@  r  r  r  r  s       re   r  z(TestPercentileOfScore.test_large_numbers  s"    
 6TVVArV-v6rt   c                 H    g d}t        | j                  |d|      |       y )N)
rH   rh  r  r  r  r  r  r  r  r  r  r  r  r  s       re   test_large_numbers_multiple3z2TestPercentileOfScore.test_large_numbers_multiple3  s"    
 5TVVArV-v6rt   c                 H    g d}t        | j                  |d|      |       y )N
rH   rh  r  r  r  r  r  r  r@  n   r  r  r  r  s       re   test_large_numbers_missingz0TestPercentileOfScore.test_large_numbers_missing  s"    
 7TVVArV-v6rt   r  )r   rH   r@  r@  rX   )r   r"   _   r@  r  )r   r   r  r@  r  c                 L    g d}t        | j                  |g d|      |       y )Nr  )r   rH   r  ry  r  r  r  s       re   test_boundariesz%TestPercentileOfScore.test_boundaries  s#    
 7TVVA0tV<fErt   )r   rH   r@  )r   r"   r  )r   r   r  c           
          ddddddddd	t         j                  g
}t        | j                  |t         j                   dt         j                  g|
      |       y )Nr   r   r    r!   r"   r#   r$   r%   r&   r  )rY   ro  r   r  r  s       re   test_infzTestPercentileOfScore.test_inf  sP    
 1aAq!Q0TVVARVVG44V@&Irt   r  r   r  r   r  r@  rz   )r   r  r@  r   zpolicy, a, score, resultc                 @    t        | j                  |||      |       y )Nr{   r  )r]   policyr   r  r#  s        re   test_nans_okz"TestPercentileOfScore.test_nans_ok  s    TVVAuV8&Art   r~   r    r+  rp  zpolicy, a, score, messagec                 x    t        t        |      5  | j                  |||       d d d        y # 1 sw Y   y xY w)Nr   r{   )r   r   r  )r]   r  r   r  r7  s        re   test_nans_failz$TestPercentileOfScore.test_nans_fail  s3    :W5 	0FF1eF/	0 	0 	0s   09r  ))r#   rr  r   r   r    )r   r   r   r    c                     t        j                  g d      }|j                  |      }|dz  }g d}t        | j	                  ||d      |       y )N)r   r   r   r    r!   r"   rH   r  r  r  )rY   r   rW   r   r  )r]   r  r   rG  resultss        re   test_ndzTestPercentileOfScore.test_nd  sH     HH'(5!)+TVVAvFV3W=rt   N)r   r   r   r  r   r]  r^  r  r  r  r  r  r  r  r  r  rY   rZ   casesr  r  r  r   rt   re   r  r    sf   8 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =7	=7 [[^ .< =7	=7 [[^ .< =7	=7 [[^v7H.I/5.G/7.I/57H.I.K LF	LF [[^v|.D/5z.B/7.D/5|.D.F GJ	GJ 2q"&&)BFF8Q/BFF8Y0HIAq6Aq"&&>BRVV3DEq!RVVni>q!fq!RVVnq"bffo>rvvrvv&	BFFBFFBFF3KLNE [[7?B @B 
1aBFF#Y	(	*	)aArvv.	(	*E [[8%@0 A0 [[W ' >>rt   r  Case)f_obsf_expri   rA   chi2rx  mod_logcr)r!   r%   rJ   r%   r!   r   r(   rJ   r)   r%   r  r  gfx(@)r   r   rJ   r   rL  r  r         ?g{T4@)r    r"   r$   r&   r   r   r   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestPowerDivergencec                 X   t        j                  |      }||j                  }n%t        j                  ||      }|j                  |   }t               5 }	|	j                  t        d       t        j                  |||||      \  }
}t        |
|       |dk(  s|dk(  r(t        j                  ||||      \  }
}t        |
|       d d d        t        j                  |      }t        j                  j                  j                  ||dz
  |z
        }t        |       y # 1 sw Y   [xY w)NrP   r  r  ri   rA   lambda_r   pearson)r  r  ri   rA   )rY   rp  r   	broadcastr  r   r   r\   rS   power_divergencer   	chisquaredistributionsr  sf)r]   r  r  ri   rA   r  expected_statnum_obsr   rd   statr   
expected_ps                re   check_power_divergencez*TestPowerDivergence.check_power_divergenceE  s   

5!<jjGUE*AggdmG  	5CJJ~'<=,,&+5t%)7<GD! D-0!|w)3//U/35am4	5 zz$((--00181t1CE
:&!	5 	5s   A2D  D)c           	         t         D ]  }| j                  |j                  |j                  |j                  |j
                  d |j                         | j                  |j                  |j                  |j                  |j
                  d|j                         | j                  |j                  |j                  |j                  |j
                  d|j                         | j                  |j                  |j                  |j                  |j
                  d|j                         | j                  |j                  |j                  |j                  |j
                  d|j                         | j                  |j                  |j                  |j                  |j
                  d|j                         | j                  |j                  |j                  |j                  |j
                  d|j                          y Nr  r   log-likelihoodmod-log-likelihoodcressie-readr  )
power_div_1d_casesr  r  r  ri   rA   r  rx  r  r  r]   cases     re   r   zTestPowerDivergence.test_basic`  sm   & 	!D''::tzz499dii$ ''::tzz499diidii) ''::tzz499diidii! ''::tzz499dii#TXX/ ''::tzz499dii'7 ''::tzz499dii!477, ''::tzz499dii!'	!rt   c           	         t         D ]  }t        j                  j                  |j                        }| j                  ||j                  |j                  |j                  d |j                         | j                  ||j                  |j                  |j                  d|j                         | j                  ||j                  |j                  |j                  d|j                         | j                  ||j                  |j                  |j                  d|j                         | j                  ||j                  |j                  |j                  d|j                         | j                  ||j                  |j                  |j                  d|j                         | j                  ||j                  |j                  |j                  d|j                          y r  )r  rY   r  r   r  r  r  ri   rA   r  rx  r  r  )r]   r  mobss      re   test_basic_maskedz%TestPowerDivergence.test_basic_maskedx  sg   & 	!D55;;tzz*D''TYY		$ ''TYY		dii) ''TYY		dii! ''TYY		#TXX/ ''TYY		'7 ''TYY		!477, ''TYY		!)	!rt   c           	      4   t         d   }t         d   }t        j                  |j                  |j                  f      }t        j                  t        j                  |j                        t        j
                  |j                        z  |j                  f      }| j                  ||ddd|j                  |j                  g       | j                  ||ddd|j                  |j                  g       | j                  ||ddd|j                  |j                  g       | j                  ||ddd|j                  |j                  g       | j                  t        j                  |j                        j                  dd      d dd d|j                         y )Nr   r   r  r  r  r  r   )r  rY   rL  r  	ones_likerX   r  r  r  rx  r  r  r   rW   )r]   case0case1r  r  s        re   r  zTestPowerDivergence.test_axis  sU   "1%"1%		5;;45		2<<4RWWU[[5II ;;( ) 	##eQ5::uzz2	4 	##eQ%))UYY!7	9 	##eQ#emmU]]%C	E 	##eQ%((3	5
 	##xx$,,Q2D!T%**	&rt   c                    t         d   }t         d   }t        j                  |j                  |j                  f      j                  }t        j                  t        j
                  |j                        t        j                  |j                        z  |j                  f      j                  }|j                  |j                  g}t        j                  dgdgg      }t        j                  |||      \  }}t        ||       t        j                  |||d         \  }	}
t        j                  |||d         \  }}t        |t        j                  |
|f             y )Nr   r   rh   r  r  )r  rY   rL  r  r  r  rX   r  r  r   rS   r  r   r	   )r]   r  r  r  r  expected_chi2ri   r  r   stat0p0stat1p1s                re   test_ddof_broadcastingz*TestPowerDivergence.test_ddof_broadcasting  s    #1%"1%		5;;4577		2<<4RWWU[[5II ;;( ))* 	 UZZ0 xx!qc
#((DAam, **5%d3iH	r**5%d3iH	r1biiR12rt   c           
         t        j                         5  t        D ]#  }| j                  |j                  |j
                  |j                  |j                  d|j                         | j                  |j                  |j
                  |j                  |j                  d|j                         | j                  |j                  |j
                  |j                  |j                  d|j                         | j                  |j                  |j
                  |j                  |j                  d|j                         & 	 d d d        y # 1 sw Y   y xY w)Nr  r  r  r  )r  r  power_div_empty_casesr  r  r  ri   rA   r  rx  r  r  r  s     re   test_empty_casesz$TestPowerDivergence.test_empty_cases  s    $$& 	0- 0++zz4::tyy$)) $))- ++zz4::tyy$))'3 ++zz4::tyy$))+T\\; ++zz4::tyy$))%tww00	0 	0 	0s   D.EEc                     t         d   j                  }t         d   j                  }t         d   j                  }t         d   j                  }t        j                  ||||d      }d}t        ||       y )Nr   r  r  rb  )r  r  r  ri   rA   rS   r  r   )r]   r  r  ri   rA   r   r   s          re   'test_power_divergence_result_attributesz;TestPowerDivergence.test_power_divergence_result_attributes  sm    "1%++"1%++!!$))!!$))$$5D*.	C,
C,rt   c                    t        j                  ddgddgg      }t        j                  ddgddgg      }t        t        d	      5  t	        j
                  ddgdd
g       d d d        t        t        d	      5  t	        j
                  ||d       d d d        t	        j
                  ||      \  }}t        |ddg       t        |ddg       y # 1 sw Y   rxY w# 1 sw Y   LxY w)NrH   rh  r  r"   rg  r  ri  For each axis slice...r   r  r  r  r   )r  r  rA   g̑m@gUUU@gj^4;?g4;?)rY   r   r   r   rS   r  r   )r]   r  r  r  r  s        re   test_power_divergence_gh_12282z2TestPowerDivergence.test_power_divergence_gh_12282  s    2r(RH-.1b'B8,-:-EF 	C"""b"bB	C:-EF 	E""e!D	E++%uE
dz:67z:67	C 	C	E 	Es   C=C!C!C*N)r   r   r   r  r   r  r  r  r  r  r  r   rt   re   r  r  C  s*    '6!0!2&4380 	-
8rt   r  c                      t        t        d      5  t        j                  ddgddg       d d d        y # 1 sw Y   y xY w)Nr  r   rH   rh  r  r  r  )r   r   rS   r  r   rt   re   test_gh_chisquare_12282r    s:     
z)A	B 8r2hr2h78 8 8s	   7A zn, dtypery  i@B c                    t        j                  | dg|      }t        j                  | dz  | dz  g|      }t        j                  ||      }|\  }}t	        || d       t        |j                  |       t        |j                  |       y )Nr   r>   r   r_  r  )rY   r   rS   r  r   r   r   r   )r  r?   obsexpr   r  r   s          re   #test_chiquare_data_types_attributesr    sv     ((Aq6
'C
((AFAF#5
1C
//#s
#CGD!D!%(%Qrt   c            	         t        j                  g dg dg      j                  } t        j                  g dg dg      j                  }t         j                  j	                  | |      }t        j                  ddg      }t        j                  ddt        j
                  d      z  d	t        j
                  d
      z  z   z  ddt        j
                  d      z  dt        j
                  d      z  z   z  g      }t        j                  j                  }t        j                  |      \  }}t        j                  ||       t        j                  ||j                  ||j                  d      dz
               t        j                  |d      \  }}t        j                  ||d       t        j                  ||j                  ||j                  d      dz
               t        j                  |j                  d      \  }}t        j                  ||       t        j                  ||j                  ||j                  j                  d      dz
               t        j                  |j                  dd      \  }}t        j                  ||d       t        j                  ||j                  ||j                  d      dz
               t         j                  j                  g dg d      }	t         j                  j                  g dg d      }
t        j                  |	|
      \  }}t        j                  |d       t        j                  t         j                  j                  g d      d       \  }}t!        t#        |t         j$                               t!        t#        |t         j$                               t'        |d       t)        |t        j                  j                  j                  dd             t        j*                  d      5  t-               5 }|j/                  t0        d        t        j                  t         j                  j                  g             \  }}d d d        d d d        t!        t#        |t         j                  j2                               t'        |j4                  d!       t!        |j6                         t         j                  j                  g g g g      }t        j                  |      \  }}t!        t#        |t         j                  j2                               t        j                  |g        t        j*                  d      5  t-               5 }|j/                  t0        d        t        j                  |j                        \  }}d d d        d d d        t!        t#        |t         j                  j2                               t'        |j4                  d"       t!        t        j8                  |j6                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)#N)r%   r%   r       rN   )rN   rN   r    r!   r"   )r   r   r   r   r   )r   r   r   r   r   g      8@r(   r   r   r  r  r    r  r"   r  r   r@   r   r  r  rg  rB   )rA   r  )r    r"   r#   r  rH   )r   r   r   r   r   r}  )r   r!   r%   rH   r  )r  r+  r   ry  rz  rP   r   r  )rY   r   r  r  r  rx  rS   r  r  r  matr	   r   r  r  r  r   r0  r   r   r   r|  r   r   r\   MaskedArrayr  r~  r  )r  r~  r  expected_chisq
expected_gr  chisqr   gobs1exp1rd   empty3s                re   test_chisquare_masked_arraysr    s   
((&(9:
;
=
=C88_o6799D55c4(DXXtSk*N1c"&&+o266#;>?atnq~=>@ AJ ##Dt$HE15.1!!!TWW^-1ZZQZ-?!-C&E F !!$0@ADAq!!!Z<!!!TWWZ-1ZZQZ-?!-C&E F tvvA.HE15.1!!!TWW^-1VV\\q\-AA-E&G H!!$&&q:JKDAq!!!Z<!!!TWWZ-1ZZQZ-?!-C&E F 55;;(;?D55;;(;?Dood$/GD! 41 ruu{{73$?HE1Jubjj)*Jq"**%&5..3366sA>? 
X	& 8  	8CJJ~'<=ruu{{27HE1	88 Jubee//01b!EJJUU[["R$F v&HE1Jubee//015"% 
X	& 1  	1CJJ~'<=vxx0HE1	11
 Jubee//01d#BFF5::1	8 	88 8&	1 	11 1sI   +Y
6AX=Y
=Y#9YY#=Y	Y

YY 	Y##Y,c                  V   t        j                  g d      } d}t        j                  dt        |       dz         }t        j                  | j                         t        j                  ||z        j                         z        }t        j                  |||z  z         }t        j                  | |f      j                  }t        j                  g d      j                  dd      }|D ]<  \  }}t        j                  |d d df   |d d df   |      \  }	}
t        |	|d	
       > y )N)rg  rI   rF   rQ   r"   rI   rH   r!   r%   rH   r$   r&   rI   r    r#   r   r   r!   g*kqr   ) g      $g    @rK  g     r@g      gffffffP@g       gLD@rA  g      A@r   g     =@r@  g     :@r}   g8@r(   gffffff7@gq=
ףp?g7@r   g333336@r)   g6@r  gfffff6@r   g8@r6   g     A@rx   g     j@rN   r   r   r  g{Gzt?r  )rY   r   r   r  rx  r  r  rL  r  rW   rS   r  r   )r  betar  r  expected_countstable4table5r  r  r  r   s              re   /test_power_divergence_against_cressie_read_datar
  O  s    (( 1 2CD
		!SX\"AFF3779rvvd1f~11334EffUT!V^,O YY_-.00FXX 
 $ 72q>% ( #) 8((!fQqSk18:am$78rt   c            	         t        g d      t        g d      t        g d      t        g d      g} t        g d      t        g d      t        g d      t        g d      g}t        g d	      t        g d
      t        g d      t        g d      g}t        t        j                  | d   | d   | d   | d         d       t        t        j                  |d   |d   |d   |d         d       t        t        j                  |d   |d   |d   |d         d       t	        t
        t        j                  |d   |d          d}t        j                  |  }t        ||       t        t        j                  | d   | d   | d   | d         d       t        t        j                  |d   |d   |d   |d         d       t	        t
        t        j                  |d   |d          y )N)g"~j?g^I+?gI+?gjt?gMbX9?gʡE?x&?-?g?r   gGz?g+?gv?g9v?)g~jt?gx?gOn?r  g"~j?n?gK7A`?r  g7A`?r   bX9?gZd;O?g1Zd?gK?)gy&1?gzG?g`"?g!rh?g'1Z?gZd;O?grh|?gjt?gʡE?r   gzG?gS?gJ4?gʡE?)gK7?gh|?5?gl?g/$?g#~j?r  gQ?      ?g      ?r   r  g rh?g333333?
ףp=
?)r!   r    r"   r    r"   r    r   r"   r!   r!   r!   r    )r   r   r   r   r    r   r   r    r   r   r   r    )r   r!   r    r    r!   r    r    r!   r!   r   r   r   )r    r"   r!   r    r!   r!   r    r    r    r!   r!   r!   )rh  g#@r0   r  g$@)g333333@g@g@r+   g@)r  r"  r-   r   @)g!@g!@333333 @ffffff
@g333333"@r   r   r   r    )gNt$@gBv?)g
__2@g5"]i2?)g\(\%@g+ԋ?rb  )r   r   rS   friedmanchisquarer   r   r   mstats)r  r  r  r   r   s        re   test_friedmanchisquarer  |  s   
  8 9
 9 :
 : ;
 9 :
;B )
*
)
*
)
*
)
*
,B &
'
%
&
%
&
%
&
(B
 e55beBqE"Q%1NDFe55beBqE"Q%1NFHe55beBqE"Q%1N9;*e55beBqEB )J

!
!2
&CZ( f66r!ube79!ubeEDF f66r!ube79!ubeE9; *f66r!uRUCrt   c                   .    e Zd ZdZ	 ddZddZd Zd Zy)
TestKSTestzLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.c                     t        j                  |d||      }t        j                  ||g      }t	        t        j                  |      ||       y Nrp  r  r  rB   )rS   kstestrY   r   r   	r]   r   r  expected_statisticexpected_probr  rC   r#  r)  s	            re   _testOnezTestKSTest._testOne  s?    a[tL88/?@!"((6"2HgNrt   c                     t        j                  |d||      }t        j                  |t         j                  j                  ||      }t        t        j                  |      ||       y r  )rS   r  ks_1samprp  cdfr   rY   r   )r]   r   r  r  rC   r#  result_1samps          re   _test_kstest_and_ks1sampz#TestKSTest._test_kstest_and_ks1samp  sK    a[tL~~a2=DJ!"((6"2L'Rrt   c                 z    t        j                  ddd      }d}t        j                  |d      }t	        ||       y )NrN   r   r&   rb  rp  )rY   r,  rS   r  r   r]   r   r   r   s       re   test_namedtuple_attributesz%TestKSTest.test_namedtuple_attributes  s3    KKAq!,
ll1f%C,rt   c                 $   t        j                  ddd      }| j                  |d       t        j                  ddd      }| j                  |d       g d}| j                  |d       | j                  |dd	
       | j                  |dd	
       y )NrN   r   r&   r  rg  
r2  gQ?g333333g(\?gQ?g(\ſg{GzgHzG?g\(\gGzr  rZ  r  r  )rY   r,  r&  r  s     re   test_agree_with_ks_1sampz#TestKSTest.test_agree_with_ks_1samp  s    KKAq!%%a5KKR#%%a5N%%a5%%a%A%%ag%>rt   NautorF   )r   r   r   r\  r!  r&  r)  r.  r   rt   re   r  r    s     V ')OS-
?rt   r  c                       e Zd ZdZ	 ddZd Zd Zd Zd Ze	j                  j                  dej                  ej                  g      e	j                  j                  dg d	      d
               Zy)TestKSOneSamplezY
    Tests kstest and ks_samp 1-samples with K-S various sizes, alternatives, modes.
    c                     t        j                  |t         j                  j                  ||      }t	        j
                  ||g      }t        t	        j
                  |      ||       y )Nr  rB   )rS   r#  rp  r$  rY   r   r   r  s	            re   r!  zTestKSOneSample._testOne  sH    5::>>{QUV88/?@!"((6"2HgNrt   c                     t        j                  ddd      }d}t        j                  |t        j                  j
                        }t        ||       y )NrN   r   r&   rb  )rY   r,  rS   r#  rp  r$  r   r(  s       re   r)  z*TestKSOneSample.test_namedtuple_attributes  s;    KKAq!,
nnQ

/C,rt   c                 8   t        j                  ddd      }| j                  |ddd       t        j                  ddd      }| j                  |dd	d
       g d}| j                  |ddd       | j                  |dddd       | j                  |dddd       y )NrN   r   r&   r  g|N?g7.s?r+  rg  g{CTp?g M<b*?r,  gZL?g86J4?r  g+?rZ  r-  r  gHD?gr?rY   r,  r!  r  s     re   test_agree_with_rz!TestKSOneSample.test_agree_with_r  s    KKAq!a&9;NOKKR#a&9;OPNa&79JKa$57HwWa!24EGTrt   c                     t         j                  j                  ddd      }| j                  |dddd	       | j                  |d
dd       | j                  |ddd       y )Nr*  r@  h:)r:  r   rD  r  ghх?g7?asympr-  r  g^h?r  gv!ԉ}?g*z)?)rS   rp  rE  r!  r  s     re   test_known_examplesz#TestKSOneSample.test_known_examples  s`    JJNNs9NEa&9;O" 	 	$a!46JKa$9;NOrt   c           	         t        t        j                  t        t        j                  dd                   t        t        d      5  t        ddd       d d d        t        t        j                  t        ddd                   t        j                  g d      }t        t        |dd	      j                  t        t        t        g
       y # 1 sw Y   {xY w)Nr   Tzn is not integral: 1.5r   r)   rN   ))r  r   Tr   )r  皙?Tr   )r  r   Tr}   )r  gTr}   )r        ?Tr}   )r  r>  Fr   )r  r(   Tgb?)r  r(   FgiNq>)r        ?Tgv(?)r  r  TgT	?)@  g\(\?Fr}   )r@        ?Fg(>)r@  gQ?Fg@c?)r@        ?FgX+ʳP?r  r    )dtypes)r   rY   r  r   rZ   r   r   rp  r   checkintr  bool)r]   datasets     re   test_ks1samp_allpathsz%TestKSOneSample.test_ks1samp_allpaths  s    D123:-EF 	"CD!	"Q-./** 
 4 	'9a066sE4>P6Q=	" 	"s   	CCksfunc*alternative, x6val, ref_location, ref_sign))r  r#   r#   r   )r  r$   r$   rN   )r  r#   r#   r   )r  r$   r$   rN   c                    t        j                  d      dz   }||d<   t        j                  d      j                  } ||||      }t        |j                  dd       |j                  |k(  sJ |j                  |k(  sJ y )	NrH   r(   r#   r  r  r  r   r  )	rY   r   rS   r  r$  r   r   statistic_locationstatistic_sign)	r]   rI  r  x6valref_locationref_signr   r$  r   s	            re   test_location_signz"TestKSOneSample.test_location_sign"  sy     IIbMC!mm"%))Q5s7%%555!!X---rt   Nr/  )r   r   r   r\  r!  r)  r7  r;  rH  r   r]  r^  rS   r  r#  rQ  r   rt   re   r2  r2    s|    
 ')O-UP!RF [[Xenn'EF[[I78

.8 G
.rt   r2  c                      e Zd ZdZ	 ddZd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
        Zej                  j                  d        Zd Zd Zej                  j&                  d        Zej                  j&                  d        Zej                  j                  d        Zd Zej                  j                  d        Zd Zej                  j                  d        Zd Zej                  j9                  dej<                  ej>                  g      ej                  j9                  dg d      d               Z y)TestKSTwoSamplesz<Tests 2-samples with K-S various sizes, alternatives, modes.c                     t        j                  ||||      }t        j                  ||g      }t	        t        j                  |      |       y )Nr-  )rS   ks_2samprY   r   r   )	r]   r  r  r  r  r   r  r#  r)  s	            re   r!  zTestKSTwoSamples._testOne:  s=    B$?88/?@!"((6"2H=rt   c                    | j                  dgdgddd       | j                  dgdgddd       | j                  dgdgddd       | j                  dgdgddd       | j                  dgdgddd       | j                  dgdgddd       y )	Nr   r   r  r   r  r(   r  r}   )r!  r  s    re   	testSmallzTestKSTwoSamples.testSmall@  s    qcA3UC8qcA3	5#6qcA3s3qcA3UC8qcA3	5#6qcA3s3rt   c                 p   t        j                  ddg      }|dz   }|dz
  }t        j                  g d      }| j                  ||ddd       | j                  ||ddd       | j                  ||d	dd       | j                  ||dd
d       | j                  ||dd
d       | j                  ||d	dd       y )Nr   r  rF  r   r  r   r  r   r  r  r  r  rj  r  r   rY   r   r!  r]   r  data1pdata1mr  s        re   testTwoVsThreezTestKSTwoSamples.testTwoVsThreeH  s    #s$)fe['3?feY=feVWc:fe['3?feY=feVQ4rt   c                 p   t        j                  ddg      }|dz   }|dz
  }t        j                  g d      }| j                  ||ddd       | j                  ||ddd	       | j                  ||d
dd       | j                  ||ddd       | j                  ||ddd       | j                  ||d
dd       y )Nr   r  rF  rS  r  r(   g?r  g?r  r  皙?r  ri  r*  r   rZ  r[  s        re   testTwoVsFourzTestKSTwoSamples.testTwoVsFourT  s    #s$-.fe['7CfeY@feVWg>fe['6BfeY@feVQ4rt   c                 N   t        j                  ddd      }|dz   dz   }|dz   dz
  }| j                  ||ddd       | j                  ||ddd	       | j                  ||d
dd       | j                  ||ddd       | j                  ||ddd       | j                  ||d
dd       y )Nr   r@  r   r  r  r  g~z?r  gz;.B?r  r   r   {Gz?gn2IU?r6  )r]   x100	x100_2_p1	x100_2_m1s       re   test100_100zTestKSTwoSamples.test100_100a  s    {{1c3'1HsN	1HsN	dI{I?QRdIy)=OPdIvq#6dI{IsCdIy)=NOdIvq#6rt   c                 |   t        j                  ddd      }t        j                  ddd      }|dz   dz   }|dz   dz
  }| j                  ||ddd       | j                  ||d	dd
       | j                  ||ddd       | j                  ||ddd       | j                  ||d	dd       | j                  ||ddd       y )Nr   r@  r  rh  r  r  g?g@߿?r  g}n?r  r   g:[?g]O);?gѫ);?r}   r   r6  )r]   rd  x110
x110_20_p1
x110_20_m1s        re   test100_110zTestKSTwoSamples.test100_110l  s    {{1c3'{{1c3'BY_
BY_
dJ\CWXdJ	<AUVdJ15dJ\CWXdJ	<AUVdJS9rt   c                 B   t        j                  dgdz  dgdz  z   dgdz  z   dgdz  z   t              }|dz   }t        j                  dgdz  dgdz  z   dgdz  z   dgdz  z   t              }t        j                  dgdz  dgdz  z   dgdz  z   d	gdz  z   t              }| j                  ||d
dd       | j                  ||ddd       | j                  ||ddd       | j                  ||d
dd       | j                  ||ddd       | j                  ||ddd       y )Nr   r    r!   r"   r#   r>   r   rH   r$   r  g      ?g^dH?r  gQl6y?r  r}   r   gVdEVdE?g(f^?g!?gii?g+ ϖ?)rY   r   rE  r!  )r]   x2233x3344x2356x3467s        re   testRepeatedValuesz#TestKSTwoSamples.testRepeatedValuesy  s-   !qA37*aS1W4sQw>cJ	!qA37*aS2X5a?sK!rQC!G+qcBh6!q@LeUK9KLeUIv7JKeUFFC8eUK>PQeUI{<NOeUFJ8JKrt   c                    t        j                  g d      }| j                  ||dz   ddd       | j                  ||dz   ddd       | j                  ||dz   dd	d       | j                  ||d
z   ddd       | j                  ||d
z   ddd       | j                  ||d
z   dd	d       | j                  ||d
z
  ddd       | j                  ||d
z
  dd	d       | j                  ||d
z
  ddd       y )NrY  r   r  r   r   r  r  r  r}   r(   rZ  )r]   r  s     re   testEqualSizeszTestKSTwoSamples.testEqualSizes  s    )eU1Wk5#>eU1Wi=eU1WfeR8eU3YUC@eU3Y	5$?eU3Yr:eU3YUC@eU3Y	5#>eU3Yt<rt   c           	      2   d\  }}d|z  |z  dz  dz  }t        j                  dd|      |z
  }t        j                  dd|      }| j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd
	       | j                  ||dd|z  |z  dd
	       | j                  ||dd|z  |z  dd
	       t               5 }d}|j	                  t
        |       | j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd	       d d d        t        j                  d      5 }t        j                  d       | j                  ||dd|z  |z  dd	       t        |t
        d       d d d        y # 1 sw Y   lxY w# 1 sw Y   y xY w)N)r8  iX  r   r   r   ry  r  g     @@r0  r-  r:  r  g2JE?r  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.rZ  Tr  r  
rY   r,  r!  r   r   r\   r  r  r  r  	r]   n1n2deltar   r^   rd   r7  r  s	            re   testMiddlingBothz!TestKSTwoSamples.testMiddlingBoth  s    BBr	!AKK3#e+KK3#aK"r)93! 	 	#aK"r)93" 	 	$aIv{R'79K" 	 	$aFEBJO5G" 	 	$  	(CAGJJ~w/MM!Q	6B;+;=O&  (MM!Q
R9K&  (	( $$D1 	2Q!!(+MM!Q
R9K&  (A~q1		2 	2	( 	(	2 	2   AF4AFF
Fc           	      2   d\  }}d|z  |z  dz  dz  }t        j                  dd|      |z
  }t        j                  dd|      }| j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd
	       | j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd	       t               5 }d}|j	                  t
        |       | j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd	       d d d        t        j                  d      5 }t        j                  d       | j                  ||dd|z  |z  dd	       t        |t
        d       d d d        y # 1 sw Y   lxY w# 1 sw Y   y xY w)N)rA  L  r   r   r   ry  r  g     ȹ@r:  r-  r0  r  gZ?r  g     @@g@J?rv  rZ  Tr  r  rw  rx  s	            re   testMediumBothzTestKSTwoSamples.testMediumBoth  s    BBr	!AKK3#e+KK3#aK"r)93" 	 	$aK"r)93! 	 	#aIv{R'79K" 	 	$aFFRK"$46H" 	 	$   	(CAGJJ~w/MM!Q	6B;+;=O&  (MM!Qb(8:L&  (	( $$D1 	2Q!!(+MM!Qb(8:L&  (A~q1		2 	2	( 	(	2 	2r}  c                 &   d\  }}|dz  }d|z  |z  dz  dz  }t        j                  dd|      |z
  }t        j                  dd|      }| j                  ||dd	|z  d
       | j                  ||dd|z  d       | j                  ||dd	|z  d       y )N)'  r  r  r   r   r   ry  r@  r  g    `@g      <r  g     @g򼉷?r  gimb:r6  )r]   ry  rz  lcmr{  r   r^   s          re   	testLargezTestKSTwoSamples.testLarge  s    BgBr	!AKK3#e+KK3#aK38NOaIus{4GHaFGcM3IJrt   c                 $   t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      dz  }| j	                  ||dddd	
       | j	                  ||dddd
       y )N@ i  rB  i  r)   r  gC?      <r:  r-  rZ  rY   rI  r  rK  r!  r1  s      re   test_gh11184zTestKSTwoSamples.test_gh11184  s    
		vII$'II$'#-aK)<>T" 	 	$aK)<>T" 	 	$rt   c                    t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      dz  }| j	                  ||dddd	
       | j	                  ||dddd
       | j	                  ||dddd	
       | j	                  ||dddd	
       y )Nr  r  rB  i'  r)   r  g 	_r!?gAD5r:  r-  r  rZ  r  gלN#y7r  gvqw?r  r1  s      re   test_gh11184_biggerz$TestKSTwoSamples.test_gh11184_bigger  s     			vII%(II%(3.aK)<>T" 	 	$aK)<>T" 	 	$aI':<R" 	 	$aF$79O" 	 	$rt   c                    t         j                  j                  d       t        ddd      D ]  }t         j                  j	                  |      }t         j                  j	                  |dz   d      }t        j                  ||d	      j                  }t        j                  ||d
	      j                  }t        |d|z         t        |d|z          y )Nr  rA  i.  rB  rH   r(   r   r:  rZ  r-  r:  r    )	rY   rI  r  r  rK  rS   rU  r   r   )r]   r   vals1vals2rZ  r:  s         re   test_gh12999zTestKSTwoSamples.test_gh12999  s    
		vtUD) 	0AII$$1$.EII$$1r6$<ENN5%g>EEENN5%g>EEEeQY/eQY/	0rt   c           	      h   d\  }}|dz  }d|z  |z  dz  dz  }t        j                  dd|      |z
  }t        j                  dd|      }| j                  ||dd|z  d	d
       | j                  ||dd|z  dd       | j                  ||dd|z  d	d       | j                  ||dd|z  d       | j                  ||dd|z  d       t               5 }d}|j	                  t
        |       | j                  ||dd|z  dd       | j                  ||dd|z  dd       d d d        y # 1 sw Y   y xY w)N)r  i*  r  r   r   r   ry  r  g     @gkHY?r:  r-  gLɔ.?rZ  r0  r  g.LbG2?r  rx   gr?֎?rv  )rY   r,  r!  r   r   r\   )	r]   ry  rz  r  r{  r   r^   rd   r7  s	            re   testLargeBothzTestKSTwoSamples.testLargeBoth  se    BgBr	!AKK3#e+KK3#aK6H" 	 	$aK6H" 	 	$aK6H! 	 	#aIus{4FGaFD3J0BC  	(CAGJJ~w/MM!Q	53;8J&  (MM!Qs
4F&  (	( 	( 	(s   AD((D1c                 R    d}t        j                  ddgdg      }t        ||       y )Nrb  r   r   r    )rS   rU  r   r]   r   r   s      re   testNamedAttributesz$TestKSTwoSamples.testNamedAttributes  s'    ,
nnaVaS)C,rt   c           	          ddl m}m}  |dddd        |dddd       t        j                  d      5  t        t        |dd	dd       t        t        |d
ddd       d d d        y # 1 sw Y   y xY w)Nr   )_count_paths_outside_method!_compute_outer_prob_inside_methodr   rA  i  r~   rz  r  iK  rJ  )scipy.stats._stats_pyr  r  rY   r|  r   FloatingPointError)r]   r  r  s      re   test_some_code_pathsz%TestKSTwoSamples.test_some_code_paths  st    	

 	*!Q15#D!Q5[[) 	,,.Ia,,.Ia,	, 	, 	,s   )A''A0c                     t        t        t        j                  g dg       t        t        t        j                  dgg        t        t        t        j                  g g        y r  )r   r   rS   rU  r  s    re   test_argument_checkingz'TestKSTwoSamples.test_argument_checking)  s<    j%.."qc:j%..1#r:j%.."b9rt   c                 *   t         j                  j                  d       d}t        j                  j                  |dd      }|dz   }t        j                  ||dd       t        j                  ||d	d       t        j                  ||d
d       y)zEnsure gh-12218 is fixed.Na i    r}   r   rx  r  r:  r  r  r  N)rY   rI  r  rS   r  rE  rU  )r]   ry  rvs1rvs2s       re   test_gh12218zTestKSTwoSamples.test_gh12218/  ss    
 			x }}  bb :axtTywGtTvGDtT{Irt   c                 V   t         j                  j                  d      }|j                  d      dz   }|j                  d      }d}t        j                  t
        |      5  t        j                  ||d	
      }t        |j                  dd       d d d        y # 1 sw Y   y xY w)Ni{fr  iq  rB  r(   iq  z(ks_2samp: Exact calculation unsuccessfulr   r  r  r   r  r   )
rY   rI  RandomStater   r   r\   rS   rU  r   r   )r]   rN  r  r  r7  r   s         re   test_warnings_gh_14019z'TestKSTwoSamples.test_warnings_gh_14019<  s     ii###2


$s*


$<\\.8 	7..6BCCJJ6	7 	7 	7s   %1BB(rI  rJ  ))r  皙@r  r   )r  ffffff@r  rN   )r  r  r  r   )r  r  r  rN   c                    t        j                  dt         j                        }|j                         }||d<   t	        j
                  |||      }|j                  dk(  sJ |j                  |k(  sJ |j                  |k(  sJ y )NrH   r>   r#   r  r  )	rY   r   r   r  rS   rU  r   rL  rM  )	r]   rI  r  rN  rO  rP  r   r^   r   s	            re   rQ  z#TestKSTwoSamples.test_location_signH  sx     IIb

+FFH!nnQ{;}}###%%555!!X---rt   N)r0  )!r   r   r   r\  r!  rW  r^  ra  rg  rl  rr  rt  r   r]  r  r|  r  r  r  r_  r  r  r  r  r  r  r  r  r^  rS   r  rU  rQ  r   rt   re   rS  rS  7  ss   F >4
55	7:
L
= [[2 26 [[2 28	K$ [[$ $ [[	0 	0 [[( (.- [[, , : [[
J 
J
7 [[Xenn'EF[[I;<

.< G
.rt   rS  c            	         d\  } }| |  g||gf}t        j                  ddd      }t        j                  ddd      }t        j                  t        j                  ddd      t        j                  ddd      g      }t        j                  t        j                  ddd      t        j                  ddd      g      }t        j                  ||d      \  }}t        ||g| |f       t        j                  |j                  |j                  d      \  }}t        ||g|       t        j                  ||d      \  }}t        ||g|       t               5 }	t        j                  dd	      5  |	j                  t        d
       t        j                  dd      \  }}d d d        d d d        t        t        j                  |             t        t        j                  |             d}
t        j                  ||d      }t        ||
       t        j                  |||g      }t        j                  |||g      }t        j                  ||d      \  }}t        t        j                  |      |        t        t        j                  |      |       t!        |j"                  d       t        j                  t        j$                  |dd      t        j$                  |dd      d      \  }}t        t        j                  |      |        t        t        j                  |      |       t!        |j"                  d       t'        t(        t        j                  ||d       t        j                  ||dd      \  }}t+        |d|dz  z
         t+        ||        t        j                  ||dd      \  }}t+        ||dz         t+        ||        t         j,                  j/                  d      }t        j0                  j3                  ddd|      }t         j4                  |d<   t        j0                  j3                  ddd|      t        j0                  j3                  dd|      z   }t         j4                  |d<   t        j                  d      5  t7        t        j                  ||      t         j4                  t         j4                  f       d d d        t        t        j                  ||d       d!       t'        t(        t        j                  ||d"        t'        t(        t        j                  ||d#        t9        j:                  t        d$%      5  t        j                  g d&g d'      \  }}d d d        t!        t        j                  |      |ft         j<                  df       t        j                  d      5  t!        t        j                  g d&g d&      t         j4                  t         j4                  f       t        j                  dt         j4                  gd(dgg      }t!        t        j                  |t        j>                  d)            dt         j4                  gdt         j4                  gf       d d d        t        j@                  d*      }t'        t(        t        j                  |jC                  d+      |jC                  d,             d- }t        jD                  |      }t         j4                  |d d d.d/f<   t         j4                  |d d d0d1f<   t        j                  ||dd       \  } }t        j                  ||ddd2      \  }}t+        || d34       t        j                  d      5  t+        | || |d      d34       d d d        t        j                  ||ddd2      \  }}t+        || d34       t        j                  d      5  t+        | || |d      d34       d d d        y # 1 sw Y   {xY w# 1 sw Y   xY w# 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)5N)gu?gȵI?r   r@  rA  gKX@r   r@   ry  r`  r'  r  r   rb  rr  r   r  rM  r  r  rA   r  r  r  r"   rH     rd  r8  r*  )r;  r   rD  rz  rz   r{   )ghm#1?gry̧?r~   r   r)  r   r  r  rN   r  rL  )r%   r    r   r    r!   c                 D    | dk  r|dk(  s
| dkD  r
|dk(  r|dz  S d|dz  z
  S Nr   r  r  r   r   r   rq  r   alts      re   convertztest_ttest_rel.<locals>.convert  3    EcVmQ3)3Cq5LAE{rt   rh  r  rg  ri  ro  r  r  )#rY   r,  r   rS   	ttest_relr   r  r   r|  r   r\   r   r  r   r  absr   r  r  r   r   r   rI  r  rp  rE  rZ   r	   r   r   ro  r  r   rW   	vectorize)trrW  tprr  r  rvs1_2Drvs2_2Drq  r   rd   r   r   rvs1_3Drvs2_3DrN  r   r^   ananr  	converters                       re   test_ttest_relr  [  sq   4EBrs8RG
C;;qS!D;;tF3'DhhAc#.D0LMNGhhD4bkk!C6LMNG
//$1
-CAaqeRG,
//'))WYYQ
7CAaqeC(
//'7
3CAaqeC( 
	 'KK:'

>#FGr2&1' ' BHHQKBHHQK )J
//$1
-CZ( ii12Gii12G
//'7
3CAabffQi,bffQi,&!??2;;w15;;w15 !#DAq bffQi,bffQi,&! *eootTwO??4A6BDAqAq2a4x Ar??4A9EDAqAr!tAr ))


)C

1BSsCAVVAcF	ARc	D	c#	>
?AVVAcF	X	& D5??1a02662662BCD eooavFGI*eooq!H*eooq!I 
n,E	F 5y)415"&&)Q"&&!-	X	& 1U__Y	:RVVRVV<LM xx!RVVr1g./U__T288F+;<"&&kArvv;/	11 			"A*eooqyy/@))I&( W%IGAr"uHGAr"uH__WgqVDFB??7GQ6'-/DAqAr&	X	& B9RV45AB ??7GQ6'02DAqAr&	X	& E9RY7eDE Ey' ' ' '\D D5 51 18B BE Esa   `(20`"`(#?`5+aCaa;a(`%	 `((`25`?aaa%(a1c                     t         j                  dddg} g d}t        j                  | |d      }t        j                  || d      }t	        |j
                  |j
                   d       t	        |j                  |j                  d       t        j                  |d	d  | d	d        }t	        ||d       t	        |d
d       y )Nr  r   r  r   r  r   r  rz   r{   r   r   r   )rX  grh|?-C6?)rY   rZ   rS   r  r   r   r   r   r^   r  r  r3s        re   test_ttest_rel_nan_2nd_argr    s    	c3AA	A&	1B	A&	1BBLL2<<-e<BIIryyu5 
12!"	&BB' B40rt   c                      t        j                  g g       } t        | t         j                  j                        sJ t        | t        j                  t        j                  f       y r4  )rS   r  r0  	_stats_pyTtestResultr   rY   rZ   r#  s    re   #test_ttest_rel_empty_1d_returns_nanr    E     __R$Ffeoo99:::"&&"&&)*rt   zb, expected_shape)r   r"   r   r  r   r   r   )r    r   c                 L   t        j                  d      }t        j                  || d      }t	        |t        j
                  j                        sJ t        j                  |t         j                        }t        |j                  |       t        |j                  |       y N)r    r   r   rN   r@   r  )rY   r#  rS   r  r0  r  r  rm   rZ   r   r   r   r   expected_shaper   r#  expected_values        re   test_ttest_rel_axis_size_zeror    p     	A__Q+Ffeoo99:::WW^?N!!>2/rt   c                  T   t        j                  d      } t        j                  d      }t        j                  | |d      }t	        |t        j
                  j                        sJ t        |j                  j                  d       t        |j                  j                  d       y N)r   r%   r   r"   r%   r   r   r@   r"   r   )rY   r#  rS   r  r0  r  r  r   r   r  r   r   r   r#  s      re    test_ttest_rel_nonaxis_size_zeror    v    
 	A
A__Q*Ffeoo99:::!!''0$$f-rt   r  r  c                    t         j                  j                  d      }d}|j                  |dd      }|j                  |dd      }ddgdt         j                  gt         j                   d	gd
}t        j                  |||       }|j                  d      }t        |||           t        |j                  |dz
         y )Nl   C67l:  rH   r)   r   rx  gZ?Ygi{a?g8 gC?ry  r  r{  r|  r   )rY   rI  rJ  rK  ro  rS   r  r  r   r   r~  )r  rN  r  r   r^   rP  r   r$  s           re   test_ttest_rel_ci_1dr    s     ))

 3
4C
A

s!
,A

q
*A ,->?)2662VVG013C //!QK
8C		 	 $	 	7BBK()1rt   ztest_fun, argsrH   c                      | | }d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr  r   rH   r|  )r   r   r   r  )test_funr  r   r7  s       re   test_ttest_ci_ivr    sF    
 D/CDG	z	1 545 5 5s	   ?Ac                 0    dd} || |       |||      z   S )Nc                     t        j                  |       } t        j                  | |      }t        j                  | |d      }| j                  |   }|||fS )Nr@   r   r?  )rY   rp  rX   rq   r  )r   rA   murq   nobss        re   _statsz_desc_stats.<locals>._stats*  sJ    JJqMWWQT"ffQT*wwt}3}rt   r  r   )r  r  rA   r  s       re   _desc_statsr  )  s"     "dfR...rt   c            	         d} d}| |  g||gf}t        j                  ddd      }t        j                  ddd      }t        j                  ||g      }t        j                  ||g      }t        j                  ||d      \  }}t        ||g| |f       t        t        j                  t        ||       ||g       t        j                  |j                  |j                  d      \  }}t        ||g|       t        |j                  |j                        }	t        t        j                  |	 ||g       t        j                  ||d      \  }}t        ||g|       t        ||d      }	t        t        j                  |	 ||g       t               5 }
t        j                  d	
      5  |
j                  t        d       t        j                  dd      \  }}d d d        d d d        t        t        j                  |             t        t        j                  |             t        j                  |||g      }t        j                  |||g      }t        j                  ||d      \  }}t!        t        j"                  |      t        j"                  |              t        t        j"                  |      |       t%        |j&                  d       t        j                  t        j(                  |dd      t        j(                  |dd      d      \  }}t        t        j"                  |      t        j"                  |              t        t        j"                  |      |       t%        |j&                  d       t+        t,        t        j                  ||d       t+        t,        t        j                  gt        |j                  |j                        ddi t        j                  ||d      \  }}t/        |d|dz  z
         t/        ||        t        j                  ||d      \  }}t/        ||dz         t/        ||        t        j                  |j                  |j                  dd      \  }}t        |j                  |j                        }	t/        t        j                  |	ddi||g       t        j                  |j                  |j                  dd      \  }}t        |j                  |j                        }	t/        t        j                  |	ddi||g       t         j0                  j3                  d      }t        j4                  j7                  ddd|      }t         j8                  |d<   t        j4                  j7                  ddd|      }t        j                  d	
      5  t;        t        j                  ||      t         j8                  t         j8                  f       d d d        t        t        j                  ||d      d       t+        t,        t        j                  ||d       t+        t,        t        j                  ||d        t=        j>                  t        d!"      5  t        j                  g d#g d$      \  }}d d d        t%        t        j"                  |      |ft         j@                  df       t        j                  d	
      5  t%        t        j                  g d#g d#      t         j8                  t         j8                  f       t        j                  dt         j8                  gd%dgg      }t%        t        j                  |t        jB                  d&            dt         j8                  gdt         j8                  gf       d d d        t         j8                  |d d d d dd'f<   t         j8                  |d d d d d(d)f<   d* }t        jD                  |      }t        j                  ||dd      \  } }t        j                  ||ddd+      \  }}t/        || d,-       t/        | || |d      d,-       t        j                  ||ddd+      \  }}t/        || d,-       t/        | || |d      d,-       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   0xY w# 1 sw Y   -xY w).N	ru?g8Mѱ?r   r@  r"   i   r   r@   ry  rz  r'  r  r   rr  r   r  rM  r  r  r  r  r  r  rH   r  rd  r8  rz   r{   )guͷ?g*,?r~   r   r)  r   r  r  rN   r  rg  r#   rJ   c                 D    | dk  r|dk(  s
| dkD  r
|dk(  r|dz  S d|dz  z
  S r  r   r  s      re   r  ztest_ttest_ind.<locals>.convert  r  rt   ro  r  r  )#rY   r,  r   rS   	ttest_indr   ttest_ind_from_statsr  r  r   r|  r   r\   r   r  r  r   r  r   r  r  r   r   r   rI  r  rp  rE  rZ   r	   r   r   ro  r  r  )r  rW  r  r  r  r  r  rq  r   r  rd   r  r  rN  r   r^   r  r  r  s                      re   test_ttest_indr  3  s   	B	Bs8RG
C;;qS!D;;qS!Dhhd|$Ghhd|$G
//$1
-CAaqeRG,e88+dFJ;L M !f& //'))WYYQ
7CAaqeC(wyy')),De88$? !f&
//'7
3CAaqeC(wa0De88$? !f& 
	 'R[[%B '

>#FGr2&1' ' BHHQKBHHQK ii12Gii12G
//'7
3CAaq	266":.bffQi,&!??2;;w15;;w15 !#DAq bffQi4bffQi,&! *eootTwO*e88 Kwyy'))4KBIK ??46:DAqAqBqDz"Ar??49=DAqAr!tAr ??799giiaVLDAqwyy')),D""D=f=1vG ??799giiaYODAqwyy')),D""D@i@1a&J ))


)C

1BSsCAVVAcF

1BSsCA	X	& D5??1a02662662BCD eooavFHJ*eooq!H*eooq!I 
n,E	F 5y)415"&&)Q"&&!-	X	& 1U__Y	:RVVRVV<LM xx!RVVr1g./U__T288F+;<"&&kArvv;/	11 66GAq"R%K&&GAq!B$J W%I__WgqVDFB??7GQ6'-/DAqAr&AyR0u=??7GQ6'02DAqAr&AyR3%@{' ' ' 'hD D5 51 1sI   c.0b6c	?cc>Cc*6c 	;cccc'*c4c                      e Zd ZdZej
                  j                  d        ej                   ej                  dez  dz        ej
                  j                  dez  dz        f      Z	 ej                   ej                  edz        dz   ej
                  j                  edz        f      Z
 ej                  d      Z ej                  d      dz   ZddgZddgZej
                  j                  d       ej                   j#                  d	dd
      j%                  dd	      j&                  Zej                   j#                  ddd      ZddgZddgZg dZe	e
ddiefe	j&                  e
j&                  ddiefe	dddf   e
dddf   ddied   fe	dddf   j3                         e
dddf   j3                         ddied   fe	e
dddefe	e
ej
                  j5                  d      ddefeeddidfeedddefeei dfe	e
ej
                  j7                  d      ddefg
Zej<                  j?                  de      d        Z d Z!d Z"d Z#d Z$ej<                  jK                         d        Z&d  Z'd! Z(d" Z)y)#Test_ttest_ind_permutationsrh  r   r    r!   r@  rH   r   r   r"   r8  r9  r%   '^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rA   N)rD  rA   	equal_varTrN   )rA   rD  r   za,b,update,p_dc                     d dd}d dddd}|j                  |       |j                  |       t        j                  ||fi |\  }}t        j                  ||fi |\  }	}
t        ||	d       t        |
|       y )NFrA   r  rA  r   )rA   r  permutationsrD  r"   )updaterS   r  r   )r]   r   r   r  p_d	options_a	options_pstat_ar  stat_pr   s              re   test_ttest_ind_permutationsz7Test_ttest_ind_permutations.test_ttest_ind_permutations  s    !6	!%)1>	  OOAq6I6	A;;!&&!4!&#.rt   c                 V   t         j                  j                  d       d}t         j                  j                  d|d      }t         j                  j                  d|d      }ddd}|j	                  d       t        j                  ||fi |}t        j                  ||fi |}|j	                  d	       t        j                  ||fi |}t        j                  ||fi |}|j	                  d
       t        j                  ||fi |}	t        j                  ||fi |}
t        |j                  |j                         t        |j                  |	j                         t        |j                  |j                          t        |j                  |j                          t        |	j                  |
j                          t        |	j                  |
j                         t        |j                  |j                         t        |j                  |j                         |j                  dk  }t        |j                  |   |j                  |   z   |	j                  |          t        |j                  |    |j                  |    z   |	j                  |           y )Nr   r    r   r   rA  )rA   r  r  r  r  r  r(   
rY   rI  r  r  r  rS   r  r   r   r   )r]   Nr   r   r  res_g_abres_g_bares_l_abres_l_bares_2_abres_2_bar~  s               re    test_ttest_ind_exact_alternativez<Test_ttest_ind_permutations.test_ttest_ind_exact_alternative  s!   
		qIINN1a#IINN1a#5	Y/??1a595??1a595V,??1a595??1a595[1??1a595??1a595 	X''););<X''););< 	X''(*<*<)<=X''(*<*<)<=X''(*<*<)<= 	X__hoo6 	X__hoo6X__hoo6#%X__T*X__T-BB__T*	,X__dU+hoote.DD__dU+	-rt   c                 <   t         j                  j                  d       d}t         j                  j                  |      }t         j                  j                  |      }t	        j
                  ||      }t	        j
                  ||d      }t	        j
                  ||d      }t	        j
                  ||t         j                        }|j                  |j                  k7  sJ |j                  |j                  k(  sJ |j                  |j                  k(  sJ y )Nr   r    rA  r  )rY   rI  r  r  rS   r  ro  r   )r]   r  r   r   r  r	  r
  r(  s           re   test_ttest_ind_exact_selectionz:Test_ttest_ind_permutations.test_ttest_ind_exact_selection  s    
		qIINN1IINN1q!$q!$7q!!4q!"&&9{{dkk))){{dkk))){{dkk)))rt   c                    t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }t        j                  ||f      }t        |      t        |      }}d}t        |||d      \  }}}t        t        |            }	|	t        ||z   |      k(  sJ t        |      |	k(  sJ y )Nr   r    r!   r]  T)	rY   rI  r  r  r  r  r   setr   )
r]   r   r   r  nanbr  t_statr  n_uniques
             re   !test_ttest_ind_exact_distributionz=Test_ttest_ind_permutations.test_ttest_ind_exact_distribution  s     			qIINN1IINN1~~q!f%QQB24r3791 s6{#5b"----6{h&&&rt   c                 T   t         j                  j                  d       d}t         j                  j                  dd|      }t         j                  j                  d|      }dddd}|j	                  d	       t        j                  ||fi |}t        j                  ||fi |}|j	                  d
	       t        j                  ||fi |}t        j                  ||fi |}t        |j                  |j                         t        |j                  |j                          t        |j                  |j                          t        |j                  |j                  z   dd|d   dz   z  z          t        |j                  |j                  z   dd|d   dz   z  z          y )Nr   r  r   r    rN   rA  )rA   r  rD  r  r  r  r   r  r  )	r]   r  r   r   r  r  r  r   r  s	            re   #test_ttest_ind_randperm_alternativez?Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative1  sm   
		qIINN1a#IINN1a qI	Y/??1a595??1a595V,??1a595??1a595 	X''););< 	X''(*<*<)<=X''(*<*<)<= 	X__x6In59::	<X__x6In59::	<rt   c                    t         j                  j                  d       d}t         j                  j                  |d      }t         j                  j                  |d      }ddd}|j	                  d       t        j                  ||fi |}|j	                  d       t        j                  ||fi |}|j	                  d	       t        j                  ||fi |}t        |j                  |j                  z   d
d
|d   d
z   z  z          |j                  dk  }t        d|j                  |   z  |j                  |   d       t        dd
|j                  |    z
  z  |j                  |    d       t        d|j                  |    z  |j                  |    d       t        dd
|j                  |   z
  z  |j                  |   d       y )Nr   r  r!   rd  r  rD  r  r  r  r  r   r  r(   r   rc  r   )
rY   rI  r  r  r  rS   r  r   r   r   )	r]   r  r   r   r  r  r   r  r~  s	            re   $test_ttest_ind_randperm_alternative2z@Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative2N  s   
		qIINN1a IINN1a %*A>	Y/??1a595V,??1a595[1??1a595 	X__x6In59::	<
 #%HOOD11 -D	:Qxu556 .T	;HOOTE22 .T	;Qxt445 -D	:rt   c                    t         j                  j                  d       d}t         j                  j                  |d      }t         j                  j                  |d      }t         j                  |d<   t         j                  |d<   t         j                  |d<   t         j                  |d<   ddd}|j                  d	
       t        t        d      5  t        j                  ||fi |}d d d        t               5 }|j                  t        d       |j                  d
       t        j                  ||fi |}t        j                  |      j                  d      t        j                  |      j                  d      z  }t        j                  |d d | f   |d d | f   fi |}t        |j                   |   t         j                         t        |j"                  |   t         j                         t%        |j                   |    |j                          t%        |j"                  |    |j"                         t        j                  |j'                         |j'                         fi |}t        j                  |j                         sJ t        j                  |j"                        sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r  r"   r"   r   )r%   r   )r&   r    rA  r  r~   r{   rp  r   ry   r  r@   )rY   rI  r  r  rZ   r  r   r   rS   r  r   r[   r\   r  r  r   r   r   r   r  )	r]   r  r   r   r  r   rd   r~  r
  s	            re   $test_ttest_ind_permutation_nanpolicyz@Test_ttest_ind_permutations.test_ttest_ind_permutation_nanpolicyp  s&   
		qIINN1a IINN1a &&$&&$&&$&&$%)1=	 	G,:-LM 	5//!Q4)4C	5   	+CJJ~'784//!Q4)4C88A;???*RXXa[__!_-DDD??1QX;!dU(IyIDD)2662t,bff5CJJu-t{{;CMM4%0$..A //!'')QWWYD)DC88CJJ'''88CMM***#	+ 	+		5 	5	+ 	+s   K F=KKKc                    t        t        d      5  t        j                  | j                  | j
                  d       d d d        t        t        d      5  t        j                  | j                  | j
                  d       d d d        t        t        d      5  t        j                  | j                  | j                  ddd	       d d d        y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)
NzPermutations must ber   rO   r  r)   z'hello' cannot be usedr   hello)r  rD  rA   )r   r   rS   r  r  b2r   r   r  s    re   'test_ttest_ind_permutation_check_inputszCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputs  s    :-CD 	?OODGGTWW2>	?:-CD 	@OODGGTWW3?	@:-EF 	:OODFFDFF)0q:	: 	:		? 	?	@ 	@	: 	:s#   -C-C"/C.C"C+.C7c                     d}t         j                  j                  |d      }t         j                  j                  |d      }t        j                  ||d      j
                  }t        d|v       d|vsJ y )NrH   rh  r   r  r}   )rY   rI  r  rS   r  r   print)r]   r  r   r   p_valuess        re   )test_ttest_ind_permutation_check_p_valueszETest_ttest_ind_permutations.test_ttest_ind_permutation_check_p_values  sb    IINN1b!IINN1b!??1aa8??c!"("""rt   )*r   r   r   r  rY   rI  r  rL  r   r   r   r  r  r  b3rS   rp  rE  rW   r  r  r  r  p_d_genp_d_bigtolistr  rJ  paramsr   r]  r^  r  r  r  r  r  r  r  r  r  r  r   rt   re   r  r    s   
A IINN1		9299QqS!V$bii&6&6qsAv&>?@A		9299QT?S("))*:*:1a4*@ABA 
2B	2	B QB
QB IINN1::>>ar"  $$+GCOAA 	::>>ar>4D<
 C~&G+G 
A{C 	
accFA;$	
1a4!AqD'FD>3q62	
1a4	1QT7>>+fd^SVD	
A1-s3	
A		 5 5a 8!DcJ	R+t$f-	tb!4g>	RS	
A		 5 5a 8!DgN
F [[-v6
/ 7
/(-T*'&<: [[: :B"+H:#rt   r  c                      e Zd Zej                  j                         ej                  j                  ddddddii gg d      ej                  j                  d	d
dgd	dg      d                      Zej                  j                  ddddddii gg d      ej                  j                  dddg      d               Zy)Test_ttest_ind_commonkwdsry  r   r  trimr*  )r  r'  basic)idsr  TFunequal_varc           	      R   t         j                  j                  d       t         j                  j                  dddddd      }t         j                  j                  ddddd      }t	        j
                  ||fd	d
i|}d\  }}}||d d |d d dd d f   }	|d d dd d |d d f   }
t	        j
                  |	|
fd	di|}t        |j                  |d d ||d d f   |j                         t        |j                  |d d ||d d f   |j                         t        j                  t        j                  |d      d
d      }t        j                  t        j                  |d      d
d      }|j                  d d }t        j                  |      }t        j                  |      }t        d |D         D ]C  }||   }||   }t	        j
                  ||fd	di|}|j                  ||<   |j                  ||<   E t        ||j                         t        ||j                         y )Nr   r"   r!   r$   r   r#   r%   r   rA   rO   )r   r    r   rX  r   r   r   r   r   r   rN   r"   r   r!   r   r   r   c              3   2   K   | ]  }t        |        y wr4  r  .0r  s     re   	<genexpr>z=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>  s      9aq 9   )rY   rI  r  r  rS   r  r   r   r   r  tiler  r  r   r   )r]   r&  r  r   r   r   r  r  r  r  r  r
  r   r^   r  
statisticspvaluesindicesxiyir(  s                        re   test_ttest_many_dimsz*Test_ttest_ind_common.test_ttest_many_dims  s    			qIINN1aAq!,IINN1aAq)ooa44t4 1aq!Q1a q!Q1}r27B7$7S]]1aAq=1^^	%SZZ1aA.[[	" KK#56B?KK#56B?XXe_
((5/ 95 9: 	+G7B7B??2r;;d;D"&..Jw#{{GG	+ 	
CMM2,rt   )r'  r  r(  rA   rN   c                 L   t         j                  j                  dd      j                  d      }t         j                  j                  dd      j                  d      }t         j                  |d   d   d<   t         j                  |d   d   d<   t        j
                  t        j                  ||z   |	            }t               5 }t        j                  d
      5  |j                  t        d       |j                  t        d       t        j                  ||fd|i|}d d d        d d d        t        j
                  j                        }t        ||       t        j
                  |j                        }	t        |	|       y # 1 sw Y   hxY w# 1 sw Y   lxY w)NrH   )r"   r    rH   rB  r  r   r   r    r#   r@   ry  rz  z'invalid value encountered in less_equalr)  rA   )rY   rI  randintr&  rZ   r  r  r   r|  r   r\   rS   r  r   r	   r   )
r]   r&  rA   r   r   r)  rd   r   p_nansstatistic_nanss
             re   test_nans_on_axisz'Test_ttest_ind_common.test_nans_on_axis  sI    IIbz299'BIIbz299'BVV!Q
VV!Q
 88BFF1q5t45   	;CX)F 	;JJ~@BJJ~'@A//!Q:T:T:C		; 	;
 #**%68,#--0>84	; 	; 	; 	;s%   
F!AF'FF	FF#N)	r   r   r   r   r]  r  r^  r:  r?  r   rt   re   r%  r%    s     [[[[VsA&N'-rlB&8!B  D [[[4-"-}!=  ?!-?D !-F [[VsA&N'-rlB&8!B  D [[Vb!W-5 .D5rt   r%  c            	       V   e Zd Zg dg ddddgg dg ddddgg dg dd	d
dgg dg ddddgg dg ddddggZej
                  j                  de      d        Zd Zd Z	ej
                  j                  dd      d        Z
d Zej
                  j                  dg d      d        Zy) Test_ttest_trimr+  r=  r  g@9(?er*  )rA  g33333`@rJ   g33333^@g(\P@r  gfffffڇ@gBM)u?g]@gyd?g	s5v@g{Gz?r  r  r=  r   ffffff?r   r   r   r  rF  rF  r.   g@r  r+   r(   r   g333333@r  r  g@r  gn4aƂg?^)g,
gm?giI@gE|x!gvwQ?glfPg_)gXG~?g=n@g8$mg({g]:m?gYv gb?gb	gSTß}g9yg.Ͽv?g޺i?g	'X@)g>_\?g hO?gau?@g׌g+?g:؜^gz54g7f?gDO%@g#xG@g\F?g4E?gnfg>P"ۿguX@gvR?g%?g2Ydzgo?gih?gn?g!nu?gJ+bza,b,pr,tr,trimc                 t    t        j                  |||d      \  }}t        ||d       t        ||d       y)a  
        Using PairedData's yuen.t.test method. Something to note is that there
        are at least 3 R packages that come with a trimmed t-test method, and
        comparisons were made between them. It was found that PairedData's
        method's results match this method, SAS, and one of the other R
        methods. A notable discrepancy was the DescTools implementation of the
        function, which only sometimes agreed with SAS, WRS2, PairedData and
        this implementation. For this reason, most comparisons in R are made
        against PairedData's method.

        Rather than providing the input and output for all evaluations, here is
        a representative example:
        > library(PairedData)
        > a <- c(1, 2, 3)
        > b <- c(1.1, 2.9, 4.2)
        > options(digits=16)
        > yuen.t.test(a, b, tr=.2)

            Two-sample Yuen test, trim=0.2

        data:  x and y
        t = -0.68649512735573, df = 3.4104431643464, p-value = 0.5361949075313
        alternative hypothesis: true difference in trimmed means is not equal
        to 0
        95 percent confidence interval:
         -3.912777195645217  2.446110528978550
        sample estimates:
        trimmed mean of x trimmed mean of y
        2.000000000000000 2.73333333333333
        Fr'  r  r   r   NrS   r  r   )r]   r   r   rW  r  r'  r   r   s           re   test_ttest_compare_rz$Test_ttest_trim.test_ttest_compare_r  s6    @ "OOAqtuM	6	2E2/rt   c                     g d}g d}t        j                  ||dd      \  }}t        |dd       t        |d	d       y )
N)rJ   rF   r  ri  r  ,   rJ   rF   r  ri  r  rN  )rQ   rz  rF   rJ   r     r  rQ   rz  rF   rJ   r  rO  r  g
ףp=
?FrJ  gRbv?r  r   gOi?rK  r]   r   r   r   r   s        re   test_compare_SASz Test_ttest_trim.test_compare_SAS(  sA     =D "OOAqseL	6t4	8$7rt   c                     g d}g d}t        j                  ||d      \  }}t        |dd       t        |dd       y	)
a  
        The PairedData library only supports unequal variances. To compare
        samples with equal variances, the multicon library is used.
        > library(multicon)
        > a <- c(2.7, 2.7, 1.1, 3.0, 1.9, 3.0, 3.8, 3.8, 0.3, 1.9, 1.9)
        > b <- c(6.5, 5.4, 8.1, 3.5, 0.5, 3.8, 6.8, 4.9, 9.5, 6.2, 4.1)
        > dv = c(a,b)
        > iv = c(rep('a', length(a)), rep('b', length(b)))
        > yuenContrast(dv~ iv, EQVAR = TRUE)
        $Ms
           N                 M wgt
        a 11 2.442857142857143   1
        b 11 5.385714285714286  -1

        $test
                              stat df              crit                   p
        results -4.246116897032513 12 2.178812829667228 0.00113508833897713
        rE  rG  r*  r'  gR?绽|=r   g^NrK  rP  s        re   test_equal_varzTest_ttest_trim.test_equal_var7  s@    & DC!OOAqr:	6 3%@	#5EBrt   z	alt,pr,tr))r  gjΜ>5?rH  )r  gn4aƂW?rH  c                     g d}g d}t        j                  ||dd|      \  }}t        ||d       t        ||d       y)	z
        > library(PairedData)
        > a <- c(2.7,2.7,1.1,3.0,1.9,3.0,3.8,3.8,0.3,1.9,1.9)
        > b <- c(6.5,5.4,8.1,3.5,0.5,3.8,6.8,4.9,9.5,6.2,4.1)
        > options(digits=16)
        > yuen.t.test(a, b, alternative = 'greater')
        rE  rG  r*  F)r'  r  r  rT  r   NrK  )r]   r  rW  r  r   r   r   r   s           re   test_alternativesz!Test_ttest_trim.test_alternativesQ  sE     DC!OOAqrU8;=	6/	2E2rt   c                     d}t        t        |      5  t        j                  ddgddgdd       d d d        y # 1 sw Y   y xY w)Nz7Permutations are currently not supported with trimming.r   r   r   r    r*  )r'  r  r   r   rS   r  )r]   r   s     re   test_errors_unsupportedz'Test_ttest_trim.test_errors_unsupportede  sG     J:U3 	EOOQFQF!D	E 	E 	Es	   ;Ar'  )gɿr(   r   c                     d}t        t        |      5  t        j                  ddgddg|       d d d        y # 1 sw Y   y xY w)Nz/Trimming percentage should be 0 <= `trim` < .5.r   r   r   rS  rY  )r]   r'  r   s      re   test_trim_bounds_errorz&Test_ttest_trim.test_trim_bounds_errorl  s>    A:U3 	7OOQFQF6	7 	7 	7s	   :AN)r   r   r   r#  r   r]  r^  rL  rQ  rU  rW  rZ  r\  r   rt   re   rA  rA    s    	O%8:M			1?	/	5	1?	/	6	@	@	,b	2
H
  "34Db	JKF& [[-v6!0 7!0F8C4 [[[N3	3 E [[V\27 37rt   rA  c                      e Zd Z ej                  d      Zg ded<   dddej                   dged	<   ddd
dej                  ged<   g ded<   dddej                   dged<   ddddej                  ged<   g ded<   g ded<   g ded<   g ded<   g ded <   g d!ed"<   ej                  j                  d#g d$      ej                  j                  d%d&d'g      ej                  j                  d(d)d*g      d+                      Z
y,)-Test_ttest_CI)r    r   r   r"   r  )gͿe13@gv7?gę"Ͽg8 {M(?r  r_  r`  gv7?gx_?r  g
/?gD .ɿ)r   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   ra  rb  g?JJ?gF?)r   r   r   g{?gads2ѿ)r   r   r   )s"%οrz  gW"?NN)r   r   r   )rc  rz  gW"?NNr   r   r   )rc  rz  g:T'?NN)r   r   r   ):пrF   g0:5?NNr  )re  rF   g0:5?NNr  )re  rF   g be?NN)r   r   r   r  r  r  FTr'  r   r*  c                    |r|rt        j                  d       t        j                  j	                  d      }|j                  d      }|j                  d      }t        j                  |||||      }dddd	}| j                  ||   t        |      t        t        j                  |            f   }	|	\  }
}}}}t        |j                  |
       t        |j                  |       t        |j                  |       |s>|j                  d
      }t        |j                  |       t        |j                   |       y y )Nz3Discrepancy in `main`; needs further investigation.l   'Nk' rI   rK   )r  r  r'  r   r   r   r  r  )r   xfailrY   rI  rJ  rS   r  r   rE  ceilr   r   r~  r   r  lowhigh)r]   r  r  r'  rN  r   r^   r   r  rP  r   r~  r   ri  rj  r$  s                   re   test_confidence_intervalz&Test_ttest_CI.test_confidence_interval  s    LLNOii##$78JJrNJJrNooa(1> &'a@ff\+.IBGGDM@RRS+.(	2vsDy1#

F+((-BBFFC(BGGT* rt   N)r   r   r   rY   r#  r   ro  r   r]  r^  rk  r   rt   re   r^  r^  s  s   : 	|$ANAgJibffWlKAgJiM266JAgJLAgJibffWlKAgJiL"&&IAgJJAgJJAgJJAgJJAgJJAgJJAgJ[[],LM[[[5$-8[[VaX.+ / 9 N+rt   r^  c            	      D   t         j                  j                  d       t         j                  j                  dddddd      } t         j                  j                  ddddd      }t	        | |fd	
      }t        j
                  | d      } t        j
                  |d   d      }t        d |j                  D         D ]`  }|\  }}}}}}	|| j                  d	   k  r| ||||||	f   |||||||	f   k(  r6J |||||| j                  d	   z
  ||	f   |||||||	f   k(  r`J  y )Nr   r"   r!   r    r   r#   r%   r   rO   r@   r,  )N.r-  c              3   2   K   | ]  }t        |        y wr4  r/  r0  s     re   r2  z.test__broadcast_concatenate.<locals>.<genexpr>  s     5585r3  )rY   rI  r  r  r   r4  r   r  )
r   r   rx  indexr  r  r  r  r  r  s
             re   test__broadcast_concatenatero    s1    IINN1
		q!Q1a(A
		q!Q1%A1vB/A
%&A
)01A5QWW56 L 1aAqqwwr{?Q1aA%&!Aq!Q1,<*====Q1a!''"+oq!34!Q1a:J8KKKKLrt   c            	         d} d}d}d}t        j                  | |d      \  }}t        ||g||g       t        t        j                  t	        | |      ddi||g       d} d	}d
}t        j                  | |d      \  }}t        ||g||g       t        t        j                  t	        | |      ddi||g       d}d}d}d}|| g||gf}t        j                  ddd      }	t        j                  ddd      }
t        j                  ddd      }t        j                  ||
g      }t        j                  |
|g      }t        j                  ||
dd      \  }}t        ||g||f       t        t        j                  t	        ||
      ddi||f       t        j                  ||	dd      \  }}t        ||g||f       t        t        j                  t	        ||	      ddi||f       t        j                  |j                  |j                  dd      \  }}t        ||g|       t	        |j                  |j                        }t        t        j                  |ddi||f       t        j                  ||dd      \  }}t        ||g|       t	        ||d      }t        t        j                  |ddi||f       d}t        j                  ||
dd      }t        ||       t        j                  |||g      }t        j                  |||g      }t        j                  ||dd      \  }}t        t        j                  |      t        j                  |             t        t        j                  |      |       t        |j                  d       t	        ||d      }t        j                  |ddi\  }}t        t        j                  |      t        j                  |             t        t        j                  |      |       t        |j                  d       t        j                  t        j                  |dd      t        j                  |dd      dd      \  }}t        t        j                  |      t        j                  |             t        t        j                  |      |       t        |j                  d       t	        t        j                  |dd      t        j                  |dd      d      }t        j                  |ddi\  }}t        t        j                  |      t        j                  |             t        t        j                  |      |       t        |j                  d       t!        j"                  t$        d      5  t        j                  g dg dd      \  }}d d d        t        t        j                  |      |ft
        j&                  df       t        j(                  d       5  t        t        j                  g dg dd      t
        j*                  t
        j*                  f       t        j                  dt
        j*                  gd!dgg      }t        t        j                  |t        j,                  d"      d      dt
        j*                  gdt
        j*                  gf       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)#Nr+  rB  rC  rD  Fr  r  r  gJ?g*ʿr  g@[?gωұ?ghG?r   r@  ri  r"   r  r   r  r@   rb  rr  r   r  r)  r   r  r  ry  r  rN   r  )rS   r  r   r  r  rY   r,  r   r  r   r  r   r  r   r  r  r   r   r\   ro  r|  rZ   r  )r   r   rW  r  rq  r   	tr_uneq_n	pr_uneq_nr  rvs3r  r  r  r  r  r   r   r  r  r  s                       re   test_ttest_ind_with_uneq_varrv    s   AA	B	B??1a51DAqqeb"X.e88+a:K JCHJ !f& 	A	B	B??1a51DAqqeb"X.e88+a:K JCHJ !f&
 
B#I	B#Is8RG
C;;qb!D;;qS!D;;qS!Dhhd|$Ghhd|$G
//$1
>CAaqeRG,e88+dFJ;L JCHJ  !!f&
 //$1
>CAaqei%;<e88+dFJ;L JCHJ  !!f&
 //'))WYYQ%
HCAaqeC(wyy')),De88$ JCHJ !f& //'7e
DCAaqeC(wa0De88$ JCHJ !f&
 )J
//$1
>CZ( ii12Gii12G
//'7e
DCAaq	266":.bffQi,&!wa0D%%t=u=DAqq	266":.bffQi,&!??2;;w15;;w15 !U4DAq bffQi4bffQi,&!r{{7Aq1{{7Aq1;D%%t=u=DAqbffQi4bffQi,&! 
n,E	F Fy)uE1F"&&)Q"&&!-		" 1U__Y	UKffbff%	' xx!RVVr1g./U__T288F+;uM"&&kArvv;/	11 1F F1 1s   + [(C[5([25[>c                     t         j                  dddg} g d}t        j                  | |d      }t        j                  || d      }t	        |j
                  |j
                   d       t	        |j                  |j                  d       t        j                  || d	d        }t	        ||d       t	        |d
d       y )Nr  r   r  r  rz   r{   r   r   r   )g8HgW@?)rY   rZ   rS   r  r   r   r   r  s        re   test_ttest_ind_nan_2nd_argrx  7  s    	c3AA	A&	1B	A&	1BBLL2<<-e<BIIryyu5 
AabE	"BB' BC rt   c                      t        j                  g g       } t        | t         j                  j                        sJ t        | t        j                  t        j                  f       y r4  )rS   r  r0  r  r  r   rY   rZ   r  s    re   #test_ttest_ind_empty_1d_returns_nanrz  M  r  rt   c                 L   t        j                  d      }t        j                  || d      }t	        |t        j
                  j                        sJ t        j                  |t         j                        }t        |j                  |       t        |j                  |       y r  )rY   r#  rS   r  r0  r  r  rm   rZ   r   r   r   r  s        re   test_ttest_ind_axis_size_zeror|  U  r  rt   c                  T   t        j                  d      } t        j                  d      }t        j                  | |d      }t	        |t        j
                  j                        sJ t        |j                  j                  d       t        |j                  j                  d       y r  rY   r#  rS   r  r0  r  r  r   r   r  r   r  s      re    test_ttest_ind_nonaxis_size_zeror  d  r  rt   c                  T   t        j                  d      } t        j                  d      }t        j                  | |d      }t	        |t        j
                  j                        sJ t        |j                  j                  d       t        |j                  j                  d       y )N)r   r$   r   r  r   r@   r  r~  r  s      re   2test_ttest_ind_nonaxis_size_zero_different_lengthsr  q  sv     	A
A__Q*Ffeoo99:::!!''0$$f-rt   c                  L   t        j                  ddg      t        j                  ddg      }} t        j                  ddg      t        j                  ddg      }}t        j                  ddg      t        j                  dd	g      }}t        j                  | |||||       y )
Nr   r   r    r!   r"         r@     )rY   r   rS   r  )mean1mean2std1std2nobs1nobs2s         re   test_gh5686r    s    88QF#RXXq!f%55E1a&!288QF#3$D88S#J'3*)=5E	udE5$Frt   c            	          t        j                  ddddddd      } t        | t        j                  t        j                  g       y )Nr   r#   Frq  )rS   r  r   rY   rZ   r  s    re   %test_ttest_ind_from_stats_inputs_zeror    s5    ''1aAqEJF"&&"&&)*rt   c                  L   t         j                  j                  d      } | j                  d      }| j                  d      }| j	                  d      }t        j                  ||dd      }t        j                  |j                  t        j                         j                        j                  d	kD  sJ t        t        j                  |j                  |dz        |d
       t        j                  ||dd      }t        j                  |j                  t        j                         j                        j                  d	kD  sJ t        t        j                  |j                  |dz        |d
       t        j                  g ddgd      }t        |dd       y )Nl   bQ )r  r   rB  )r  r   r@  TrN   )r  rA   r  rF  r   )r   r    r"   r)   rq  )gzNd?gJ?rT  r  )rY   rI  rJ  rK  r  rS   r  r#  r   r$  r   
percentile)rN  r   r^   r  r   s        re   test_ttest_single_observationr    s-   
))


0C



#A



#AA
//!Q$R
8C>>#**emmo&9&9:AACGGGBMM#**ae4adC
//!Q$R
8C>>#**emmo&9&9:AACGGGBMM#**ae4adC
 //)cUd
;CC:Grt   c                  P
   d\  } }}t         j                  j                  dd| ||f      }t        j                  |d d d d d d f   t	        j
                  ||f      d      \  }}t        j                  |d d d d d d f   dd      \  }}t        j                  |d d ddf   d      \  }}	t        ||d	       t        |d
   |d	       t        |j                  ||f       t        j                  |d d d d d d f   t	        j
                  | d|f      d      \  }}t        j                  |d d d d d d f   dd      \  }}t        j                  |dd d df   d      \  }}	t        ||d	       t        |d
   |d	       t        |j                  | |f       t        j                  |d d d d d d f   t	        j
                  | |df      d      \  }}t        j                  |d d d d d d f   dd      \  }}t        j                  |ddd d f   d      \  }}	t        ||d	       t        |d
   |d	       t        |j                  | |f       t        j                  g dd      \  }
}t        t	        j                  |
      |ft        j                  df       d }t	        j                  |      }t        j                  |d d d d d d f   d      \  }}t        j                  |d d d d d d f   dd      \  }
} |||d      }t        ||       t        |
|       t        j                  |d d d d d d f   dd      \  }
} |||d      }t        ||       t        |
|       t	        j                  d      5  t        t        j                  g dd      t        j                  t        j                  f       t	        j                   dt        j                  gddgg      }t        t        j                  |d      dt        j                  gdt        j                  gf       d d d        t        j                  |ddddddf<   t        j                  |d d d d d d f   dd      \  }}t        j                  |d d d d d d f   ddd      \  }
} |||d      }t        ||       t        |
|       t        j                  |d d d d d d f   ddd      \  }
} |||d      }t        ||       t        |
|       y # 1 sw Y   xY w)NrH   rg  rh  r"   rH   r9  r   r@   r   rF   rB   r  r   r  c                 D    | dk  r|dk(  s
| dkD  r
|dk(  r|dz  S d|dz  z
  S r  r   r  s      re   r  z%test_ttest_1samp_new.<locals>.convert  r  rt   r  r  r  ry  rr  rN   r    r!   r%   rz   r{   ro  )rS   rp  rE  re  rY   rU  r   r   r   r  r  ro  r  r   r|  rZ   r   )ry  rz  n3rvn1r6  r  r7  p2r8  p3rq  r   r  r  r  rW  pcr  s                     re   test_ttest_1samp_newr    sm   JBB::>>abr"Rj>9D d1Qq5k277Br7+;CEBrd1Qq5k1!4EBrd1Qq5k1-EBrbR03B/Br7#d1Qq5k277B2;+?QGEBrd1Qq5k1!4EBrd1Qq5k1-EBrbR03B/Br7#d1Qq5k277Br!9+=1EEBrd1Qq5k1!4EBrd1Qq5k1-EBrbR03B/Br7# Y*DAq"&&)Q"&&!- W%ItAq!G}a0FBT!Q']A9EDAq	2r9	%BArArT!Q']A6BDAq	2r6	"BArAr		" MU&&y!4rvvrvv6FG xx!RVVb!W-.U&&tQ/1bff+266{1KLM &&D1ac1Q3tAq!G}aFCFBT!Q']A&)24DAq	2r9	%BArArT!Q']A&)/1DAq	2r6	"BArAr+M Ms   B,TT%c                  N   t         j                  j                  d      } | j                  d      }d}| j                  d      }t        j                  t
        |      5  t        j                  ||d       d d d        | j                  d	      }t        j                  ||d      }|j                  j                  d
k(  sJ t        j                  |j                         d      }t        j                  ||d      }t        |j                  d       y # 1 sw Y   xY w)Nl   iI}pC )r   rg  rh  rB  z%`popmean.shape\[axis\]` must equal 1.)r"   r   rh  r   rX  )rz  rA   )r"   r   rh  )r"   rh  r@   g?)rY   rI  rJ  r   r   r   rS   re  r   r  rQ  r  r   r   )rN  r   r7  rz  r   r$  s         re   test_ttest_1samp_popmean_arrayr    s     ))

 3
4C


$A6Gjjjj)G	z	1 7!W267 jjjj)G


AwR
8C==')))	//1	;B


Ar
3CCJJ%7 7s   !DD$c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestDescribec                    t               5 }t        j                  dd      5  |j                  t        d       t        j                  d      \  }}}}}}d d d        d d d        t        d       t        d       t        d       t        j                        sJ t        j                        sJ t        j                        sJ y # 1 sw Y   {xY w# 1 sw Y   xY w)Nry  r`  r'  r  r   )r  r  )	r   rY   r|  r   r\   rS   describer   r  )r]   rd   r  r  r  r  skkurts           re   test_describe_scalarz!TestDescribe.test_describe_scalar  s      	7Ckk(8<	7JJ~'JK$)NN2$6!Ar1aT	7 	7 	QR$Qxx{{xx||xx~~	7 	7 	7 	7s"   C3CCC	CC%c                 ~   t        j                  t        j                  d      t        j                  dd      f      }dg dg df}}t        j                  g d      }t        j                  g d      }d	gd
z  }dgd
z  }t        j                  |      \  }}	}
}}}t        ||       t        |	|       t        |
|       t        ||       t        ||d       t        ||d       t        j                  |j                  d      \  }}	}
}}}t        ||       t        |	|       t        |
|       t        ||       t        ||d       t        ||d       t        j                  d      }t         j                  |d<   d\  }}d}d}d}d}t        j                  |d      \  }}	}
}}}t        ||       t        |	|       t        |
|       t        ||       t        ||       t        ||d       t        t        t
        j                  |d       t        t        t
        j                  |d       y )Nr  r   r!   r   r"   r   r   r   r   r  r  r  r  ffffff?r  r  r  )r  r  r  r  H,p ?r!   TUUUUUrK   rB   r   r@   rx   r&   )r&   )r}   r!  r  r/   r}   gGzrz   r{   r~   r   )rY   rL  rU  rm   r   rS   r  r   r   r  r   rZ   r   r   r]   r   ncmmcmcvcskckurtcr  r  r  r  r  r  s                 re   test_describe_numbersz"TestDescribe.test_describe_numbers  s   IIrwwu~rwwvq'9:;')9:CXX*+XX*+"#a'#$q( %q 12q!RQRQQ!"c26!$r: %qss ;2q!RQRQQ!"c26!$r:IIcNvv!!C# %qV D2q!RQRQQ!"c*!$r:j%..!Hj%..!Irt   c                 p    t        j                  t        j                  d            }d}t	        ||       y )Nr"   )r  minmaxrX   varianceskewnessr3  )rS   r  rY   r   r   )r]   r  r   s      re   test_describe_result_attributesz,TestDescribe.test_describe_result_attributes8  s)    		!-"
FJ/rt   c                    t        j                  t        j                  d      t        j                  dd      f      }dg dg df}}t        j                  g d      }t        j                  g d      }d	gd
z  }dgd
z  }t        j                  |d      \  }}	}
}}}t        ||       t        |	|d       t        |
|d       t        ||d       t        ||d       t        ||d       y )Nr  r  r   r"   r  r  r  )Q?r  r  r  r  r!   r  r   rh   r   r  rK   rB   )
rY   rL  rU  rm   r   rS   r  r   r   r   r  s                 re   test_describe_ddofzTestDescribe.test_describe_ddof>  s    IIrwwv(:;<')9:CXX*+XX./"#a'#$q( %qq 92q!RQCe,2E*2E*!"c26!$r:rt   c                    t        j                  t        j                  d      t        j                  dd      f      }d\  }}d}d}d}d}t	        j
                  |d 	      }t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |d
       t        |j                  |d
       y )Nr  r  r   )rh  )r   r  r  ga+?gE,p ?gUUUUUUr@   rK   rB   )rY   rL  rU  rm   rS   r  r   r  r   r  rX   r  r   r  r3  )	r]   r   e_nobse_minmaxe_meane_vare_skewe_kurtr   s	            re   test_describe_axis_nonez$TestDescribe.test_describe_axis_noneM  s    IIrwwv(:;< ,###$ NN14(QVVV$AHHh/AFFF+AJJ.!!**fbA!!**fbArt   c                 B    t        t        t        j                  g        y r4  )r   r   rS   r  r  s    re   test_describe_emptyz TestDescribe.test_describe_emptya  s    j%.."5rt   N)	r   r   r   r  r  r  r  r  r  r   rt   re   r  r    s#    
'JR0;B(6rt   r  c            
         t        t        t        j                  d       t        t        t        j                  d       t        t        t        j
                  d       d\  } }}d\  }}}d|dz  z
  |dz  }}|dz  d|dz  z
  }	}t        j                  d      dz  }
d}t        t        j
                  |
      | |f       t        t        j
                  |
      |       t        t        j                  |
      ||f       t        t        j                  |
d	      ||f       t        t        j                  |
d
	      ||f       t        t        j                  |
      |       t        t        j                  |
      ||f       t        t        j                  |
d	      ||f       t        t        j                  |
d
	      ||	f       t        t        j                  |
      |       t        j                  j                  ddd      }t        j                  |d
	      j                  }t        |dd       t        j                  j                  dd      }t        j                  |d
	      j                  }t        |d       t        t        j
                  |
d       | |f       t        t        j                  |
d       ||f       t        t        j                  |
d       ||f       t        j                  d      }
t        j                   |
d<   t        j"                  d      5  t%        t        j                  |
      t        j                   t        j                   f       d d d        d}t        t        j                  |
d      |       t        j                   |dd t        j                  |d      \  }}t        j                  |dd      \  }}t        j                  |dd
      \  }}t'        ||d       t'        ||d       t'        |d|dz  z
  d       t'        ||dz  d       t        j"                  d      5  t        t        t        j                  |
d        d d d        t        t        t        j                  |
d!       t        t        t        j                  t)        t+        d"            d!	       t        j                  d#      }
t        j                   |
d$<   t        j"                  d      5  t%        t        j                  |
      t        j                   t        j                   f       d d d        d%}t        t        j                  |
d      |       t        j                   |dd& t        j                  |d d d      \  }}t        j                  |d d dd      \  }}t        j                  |d d dd
      \  }}t'        ||d       t'        ||d       t'        |d|dz  z
  d       t'        ||dz  d       t        t        t        j                  |
d        t        t        t        j                  |
d!       t        t        t        j                  t)        t+        d&            d!	       t        j"                  d      5  t%        t        j
                  |
      t        j                   t        j                   f       d d d        d'}t        t        j
                  |
d      |       t        t        t        j
                  |
d        t        t        t        j
                  |
d!       g d(}t        j,                  t/        |      D cg c]  \  }}t        j0                  ||       c}}      }
t3        t        j                  |
      d   d)k  d*       y # 1 sw Y   ^xY w# 1 sw Y   dxY w# 1 sw Y   xY w# 1 sw Y   xY wc c}}w )+Nr  )gMc@gO?g{\᛿)g2$?gגe`?gǃK@?r   r   )rX  rN   r   r   r   r    rX  rN   r   r   r   r    rX  rN   r   r   r   r    rX  rN   r   r   r   r    rb  r  r  r  r  {   )r   r   rD  r}   r"   rB   r   rD  r@   rx   r&   ry  rz  )geGK?gZ^<ý?rz   r{   rH   r@  ro  r   r   rr  r~   r   r%   g      >@rO  )g9+%g?*ݗ?rh  )gwGw@g{8NĦ?)
r:  r   :   r$   r   )   r   r   r      rF  T)r   r   rS   skewtestkurtosistest
normaltestrY   r   r   r   skewnormrE  r   r   laplacer   rZ   r|  r	   r   rK  r  rP  	enumeraterm   r   )	st_normalst_skewst_kurt	pv_normalpv_skewpv_kurtpv_skew_lesspv_kurt_lesspv_skew_greaterpv_kurt_greaterr   r   r  r  r  r)  r  r   zlplzgpgr  r  rx  s                            re   test_normalitytestsr  e  s9   *ennb1*e00"5*e..3 #HIw"FIw!"Wq['A+,L'.{A!O_O
'(!+A(Je..q1Iy3IJ((+Z8ennQ/'71CDennQFC&57ennQIF&8:q):6e003gw5GHe00G&57e00	J&8:**1-z:
 
		ae#		>B>>")4;;Dc1-			C		8Bbi8??Dc" e..qt<()46ennQT:&02e00>&02 			#A66AaD	X	& @5>>!,rvvrvv.>?@ 9HennQ6BHM Br#J>>"0DAq^^B6vFFB^^B6yIFBB&B&BAaCe,B!%(		" Ij%..!HI*ennaHE*ennd58n&( 			#AFFAbE		" D5--a02662662BCD ;He00vF&( Br"Ib#h6:DAq4CV,24FB4CV,57FBB&B&BAaCe,B!%(*e00!H*e00!I*e00$uRy/&( 
	" B5++A.0@AB 9He..qVDhO*e..gF*e..hG 3F
		Yv->?TQ2771a=?@A##A&q)D0$7{@ @ I ID D0B B @s6   0>_
"_>_$0>_1< _>

__!$_.1_;c                       e Zd Zej                  j                  d       ej                  j                  dd      \  ZZe	j                  j                  dg d      d        Zd Zd Zy	)
TestRankSumsr   r   rH   r  r9  c                     t        j                  | j                  | j                  |      j                  }t        j
                  | j                  | j                  d|      j                  }t        ||       y )Nr  F)use_continuityr  )rS   ranksumsr   r^   r   mannwhitneyur   )r]   r  r	  r
  s       re   test_ranksums_result_attributesz,TestRankSums.test_ranksums_result_attributes  s\     ~~dffdff*577=v 	!!$&&$&&.9;;A6 	d#rt   c                 p    t        j                  | j                  | j                        }t	        |d       y )Nrb  )rS   r  r   r^   r   )r]   r   s     re   test_ranksums_named_resultsz(TestRankSums.test_ranksums_named_results  s%    nnTVVTVV,C!89rt   c                     t        t        d      5  t        j                  | j                  | j
                  d       d d d        y # 1 sw Y   y xY w)Nz`alternative` must be 'less'r   r   r  )r   r   rS   r  r   r^   r  s    re   test_input_validationz"TestRankSums.test_input_validation  s>    :-KL 	ANN466466x@	A 	A 	As   -AAN)r   r   r   rY   rI  r  r  r   r^   r   r]  r^  r  r  r  r   rt   re   r  r    sZ    IINN199>>!R DAq[[],LM$ N$:Art   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestJarqueBerac                    t         j                  j                  d       t         j                  j                  ddd      }t         j                  j	                  dd      }t         j                  j                  dd      }t        t        j                  |      d   t        j                  |      j                         t        t        j                  |      d   t        j                  |      j                         t        t        j                  |      d   t        j                  |      j                         t        t        j                  |      d   t        j                  |      j                         t        t        j                  |      d   t        j                  |      j                         t        t        j                  |      d   t        j                  |      j                         t        t        j                  |      d   t        j                  |      d   kD         t        t        j                  |      j                  t        j                  |      j                  kD         t        t        j                  |      d   t        j                  |      d   kD         t        t        j                  |      j                  t        j                  |      j                  kD         t        t        j                  |      d   t        j                  |      d   kD         t        t        j                  |      j                  t        j                  |      j                  kD         y )Nr9  r   r   r]  r  )rY   rI  r  rK  r  rayleighr   rS   jarque_berar   r   r   r]   r   r^   r  s       re   test_jarque_bera_statsz%TestJarqueBera.test_jarque_bera_stats  sl   
		y!IIQ6*IIv.IIq&)U&&q)!,e.?.?.B.L.LMU&&q)!,e.?.?.B.I.IJU&&q)!,e.?.?.B.L.LMU&&q)!,e.?.?.B.I.IJU&&q)!,e.?.?.B.L.LMU&&q)!,e.?.?.B.I.IJ!!!$Q'%*;*;A*>q*AAB!!!$++e.?.?.B.I.IIJ!!!$Q'%*;*;A*>q*AAB!!!$++e.?.?.B.I.IIJ!!!$Q'%*;*;A*>q*AAB!!!$++e.?.?.B.I.IIJrt   c                 d   t         j                  j                  d       t         j                  j                  ddd      }t	        j
                  t        |            x}\  }}t	        j
                  t        |            x}\  }}t	        j
                  |j                  dd            x}\  }	}
||cxk(  r6|	cxk(  r0|j                  cxk(  r |j                  cxk(  r|j                  k(  sJ  J ||cxk(  r6|
cxk(  r0|j                  cxk(  r |j                  cxk(  r|j                  k(  sJ  J y )Nr9  r   r   r]  r   P  )rY   rI  r  rK  rS   r  rK  tuplerW   r   r   )r]   r   jb_test1JB1r  jb_test2JB2r  jb_test3JB3r  s              re   test_jarque_bera_array_likez*TestJarqueBera.test_jarque_bera_array_like  s    
		y!IIQ6*"..tAw7773"..uQx8873"..qyyE/BCC73cbSbH$6$6b(:L:LbPXPbPbbbbbbRV2VVHOOVxVVVVVrt   c                 B    t        t        t        j                  g        y r4  )r   r   rS   r  r  s    re   test_jarque_bera_sizez$TestJarqueBera.test_jarque_bera_size  s    j%"3"3R8rt   c                 P   t         j                  j                  d      }|j                  d      }t        t	        j
                  |d       t	        j
                  |j                                      t	        j
                  |d      }t	        j
                  |dd d f         \  }}t	        j
                  |dd d f         \  }}t        |j                  ||g       t        |j                  ||g       t	        j
                  |j                  d      }t        ||       y )NiKr  )r   r  rB  r@   r   r   )rY   rI  r  r   rS   r  r  r   r   r   r  )	r]   rN  r   r   s0r  s1r  resTs	            re   r  zTestJarqueBera.test_axis  s    ii###3JJGJ$U&&qt4&&qwwy1	3 *""1QT7+B""1QT7+BBx0

RH-  1-T"rt   N)r   r   r   r  r  r  r  r   rt   re   r  r    s    K0	W9#rt   r  c                  l    t        j                  d      } t        t        t        j
                  |        y )Nrh  )rY   r   r   r   rS   r  r  s    re   test_skewtest_too_few_samplesr  %  s!     			#A*enna0rt   c                  l    t        j                  d      } t        t        t        j
                  |        y )Nr  )rY   r   r   r   rS   r  r  s    re   !test_kurtosistest_too_few_samplesr  ,  s#     			#A*e00!4rt   c                   D    e Zd Zg dZg dZdZd Zd Zd Zd Z	d Z
d	 Zy
)TestMannWhitneyU)g	U3@g^3@gt3@g]o5@gzS4@gt< 4@gM	X3@gXmCk4@gLo&3@gfɘ2@g{m;^3@ga A$|3@gMѢ_4@g#3@g19T_3@ggC2@gqR4@gKk/4@g܁3@gZ2@g_
3@g$`3@g
x4@g3#л5@g;VND1@g >H2@gr4@gyܤ2@g?4@g=bɇ3@)gpG3@gL:j0@g2@gJNnC1@gR;`(3@g+Pi,2@g6:Z2@gZ"3=2@gF	uSa	3@gXҀ2@gX3^83@g21@gJ2@gZ)E2@gU83@g50@gԆ3@gFz33@gz3@gڴ3@rF   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||       t	        ||       t        ||k7         t	        |d       t	        |d       t	        |d       t	        |d       t        |d| j                         t        |d| j                         y )	Nr  r  r    r{  g=_A?r7   glPz.?rS   r  rU   Yr   r   r
   r8   	r]   u1r  u2r  u3r  u4p4s	            re   test_mannwhitneyu_one_sidedz,TestMannWhitneyU.test_mannwhitneyu_one_sidedE  s    ##DFFDFFGB##DFFDFF	JB##DFFDFF	JB##DFFDFFGBRRbRRRRB 1t?O?OPB 3AQAQRrt   c                 8   t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||       t	        |d       t	        |d       t        |d| j                         y )Nr  r  r
  r{  glPz.?r7   rS   r  rU   r  r   r
   r8   r]   r  r  r  r  s        re   test_mannwhitneyu_two_sidedz,TestMannWhitneyU.test_mannwhitneyu_two_sidedU  sv    ##DFFDFFLB##DFFDFFLBRRRB 2(,(8(8	:rt   c                    t        j                  | j                  | j                  dd      \  }}t        j                  | j                  | j                  dd      \  }}t        j                  | j                  | j                  dd      \  }}t        j                  | j                  | j                  dd      \  }}t	        ||       t	        ||       t        ||k7         t	        |d       t	        |d       t	        |d       t	        |d       t        |d| j                         t        |d	| j                         y )
NFr  r  r  r
  r{  gii5?r7   g22?r  r  s	            re   &test_mannwhitneyu_no_correct_one_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_one_sided_  s   ##DFFDFFE068B##DFFDFFE09;B##DFFDFFE09;B##DFFDFFE068B 	RRbRRRRB 1t?O?OPB 4$BRBRSrt   c                 <   t        j                  | j                  | j                  dd      \  }}t        j                  | j                  | j                  dd      \  }}t	        ||       t	        |d       t	        |d       t        |d| j                         y )NFr  r  r
  r{  g22?r7   r  r  s        re   &test_mannwhitneyu_no_correct_two_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sideds  s    ##DFFDFFE0;=B##DFFDFFE0;=B 	RRRB 4(,(8(8	:rt   c                 ,   t        j                  g d      }t        j                  g d      }t        t        j                  ||d      d       t        t        j                  ||d      d       t        t        j                  ||d      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   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   r  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r  r   r  r   r   r   r   r  r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r  r  r   r   r  r   r   r  r   r  r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   r   r  r   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 ?չ>r  )r  g&)E?r  )r  g?չ?)rY   r   r   rS   r  r1  s      re   test_mannwhitneyu_onesz'TestMannWhitneyU.test_mannwhitneyu_ones  s    HH . /& HH & ' 	**1aVD:	< 	**1aYG2	4**1a[I5	7rt   c                 x    d}t        j                  | j                  | j                  d      }t	        ||       y )Nrb  r  r  )rS   r  rU   r  r   r  s      re   #test_mannwhitneyu_result_attributesz4TestMannWhitneyU.test_mannwhitneyu_result_attributes  s-    ,
  VDC,rt   N)r   r   r   rU   r  r8   r  r  r  r  r  r   r   rt   re   r  r  3  s9    	-A	NA KS :T(
:)7V-rt   r  c                      g d} g d}t        t        j                  | |      d   dd       d}t        j                  | |      }t        ||       t	        |j
                  |j                         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   )"g-@g+@g(@rh  r  r  g333333@ffffff@g333333@r+   r  皙	@r   r  r  r*   r  gffffff@ @333333?r%  r)   ?r&  r  r  r=  r`  r  rj  r(   r*  r*  r  r   g/"?r"   r   )r   rS   pointbiserialrr   r   r   r   )r   r^   r   r   s       re   test_pointbiserialr(    se    	A	&A ,,Q215wB +J


q!
$CZ(#--0rt   c                     t        j                  g d      } t        j                  |       }g d}t	        |d   |       t        j                  g d      }t        j                  |      }t        j                  g d      }t	        |d   |       t        j                  | |      \  }}t        ||d          t        ||d          t        j                  | ||       \  }}}t        ||d          t        ||d          t        ||d          t        j                  d      } t        j                  g dg dg      }t        t        j                  | d	| z        |d
       t        dd      }	t        j                  g d      }
t        j                  |	|
      }t        j                  g d      }t        j                  ||
      }t        j                  |      }t        |d   |d       y )N)r   r   r!   )r$   rX  r$   r   )r   r    r#   r&   )r  r   r   r  r"   )㪪@I?g&>ڿr+  r*  )5@㪪@gIr-  r,  r   r%   rB   rI   )r"   rI   r&   r    r   r   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r!   )
rY   r   rS   obrientransformr   r   r   r   r  r,  )r  r6  r)  r  r7  r   r   rx  r#  valuesrepsr  transformed_valuess                re   test_obrientransformr2    s   	)	B			r	"BHBqE8$	,	B			r	"Bxx'HBqE8$   R(DAqBqEBqE ##BB/GAq!BqEBqEBqE 
1BXXDFHIF e33B"=vqQ 1b\F88'(D99VT"D #< =yy+T2H""4(FfQi1=rt   c                 ~    t        j                  | |||      }t        |||       t        |j                  |       y N)rA   r?   weightsr  )rS   ry  r   r   r?   
array_likerR  rA   r?   r  r5  r   s          re   check_equal_gmeanr8    s2     	JTHAAwT*% rt   c                 ~    t        j                  | |||      }t        |||       t        |j                  |       y r4  )rS   hmeanr   r   r?   r6  s          re   check_equal_hmeanr;    s0    JTHAAwT*% rt   c                     t        j                  | ||||      }t        |||       t        |j                  |       y r4  )rS   pmeanr   r   r?   )r7  r  rR  rA   r?   r  r5  r   s           re   check_equal_pmeanr>    s2    J$eWMAAwT*% rt   c                   f    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y)TestHarMeanc                 (    g d}d}t        ||       y N)r   r   r   r   r;  r]   r   rR  s      re   test_0zTestHarMean.test_0      !W%rt   c                 L    g d}d}t        ||       g d}d}t        ||       y )Nr  =b#A@r  gQ?rC  rD  s      re   test_1d_listzTestHarMean.test_1d_list	  s*    5!W%:!W%rt   c                 N    t        j                  g d      }d}t        ||       y )Nr  rH  rY   r   r;  rD  s      re   test_1d_arrayzTestHarMean.test_1d_array  s     HH>?!W%rt   c                 t    t        j                  ddg      }d}t        t        j                  |      |       y )Nr   r   r}   )rY   r   r   rS   r:  rD  s      re   test_1d_array_with_zeroz#TestHarMean.test_1d_array_with_zero  s+    HHaVU[[^W-rt   c                 p    t        j                  g d      }t        t        t        j
                  |       y )Nr   r   rN   )rY   r   r   r   rS   r:  r-  s     re   !test_1d_array_with_negative_valuez-TestHarMean.test_1d_array_with_negative_value  s     HHZ j%++q1rt   c                 6    g dg dg dg}d}t        ||       y NrH   rh  r  r  r  r  r  r  r  r@  r  x   gmWUC@rC  rD  s      re   test_2d_listzTestHarMean.test_2d_list#  s    /1DE!W%rt   c                 \    g dg dg dg}d}t        t        j                  |      |       y rS  )r;  rY   r   rD  s      re   test_2d_arrayzTestHarMean.test_2d_array)  s'    /1DE"((1+w/rt   c                 d    g dg dg dg}t        j                  g d      }t        ||d       y )NrT  rU  rV  )U|ϊ6@g4.=C@JQ6LsJ@E]P@r   r@   rK  rD  s      re   test_2d_axis0zTestHarMean.test_2d_axis0/  s+    /1DE((OP!W1-rt   c                     g dg dg dg}t        j                  g d      }t        t        j                  |d      |       y )NrH   r   r  r  rU  rV  )r\  r}   r]  r^  r   r@   rY   r   r   rS   r:  rD  s      re   test_2d_axis0_with_zeroz#TestHarMean.test_2d_axis0_with_zero5  s4    .0CD((GHAA.8rt   c                 d    g dg dg dg}t        j                  g d      }t        ||d       y )NrT  rU  rV  )g3333333@O@y@Y@r   r@   rK  rD  s      re   test_2d_axis1zTestHarMean.test_2d_axis1:  s+    /1DE((<=!W1-rt   c                     g dg dg dg}t        j                  g d      }t        t        j                  |d      |       y )Nra  rU  rV  )r}   re  rf  r   r@   rb  rD  s      re   test_2d_axis1_with_zeroz#TestHarMean.test_2d_axis1_with_zero@  s4    .0CD((;<AA.8rt   c                 6    g d}g d}d}t        |||d       y )Nr   rH   r#   rH   r"   r    r    h㈵>r5  r  rC  r]   r   r5  rR  s       re   test_weights_1d_listz TestHarMean.test_weights_1d_listE  s!     !WgDArt   c                     t        j                  ddgddgddgg      }t        j                  ddgddgddgg      }t        j                  ddg      }t        ||d|d	       y )
Nr   r"   rH   r#   r   r    r   rm  rA   r5  r  rK  ro  s       re   test_weights_2d_array_axis0z'TestHarMean.test_weights_2d_array_axis0M  sh     HHq!fr1g1v./((RGaVaV45((Aq6"!W1gDIrt   c                     t        j                  g dg dg      }t        j                  g dg dg      }t        j                  ddg      }t        ||d|d	       y )
Nrk  r$   r$   r$   rl  r  r    r$   r   rm  rr  rK  ro  s       re   test_weights_2d_array_axis1z'TestHarMean.test_weights_2d_array_axis1U  sL     HHj),-((J	23((Aq6"!W1gDIrt   c                     t        j                  g d      }t         j                  j                  g dg d      }d}t        |||d       y )Nr   rH   r#   r  rH   r"   r    r  r   r   r   r   r}  r    rm  rn  )rY   r   r  r;  ro  s       re   test_weights_masked_1d_arrayz(TestHarMean.test_weights_masked_1d_array]  s;     HH^$%%++n<+@!WgDArt   N)r   r   r   rE  rI  rL  rN  rQ  rX  rZ  r_  rc  rg  ri  rp  rs  rv  r{  r   rt   re   r@  r@    sQ    &
&&.
2
&0.9
.9
BJJBrt   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y)TestGeoMeanc                 (    g d}d}t        ||       y rB  r8  rD  s      re   rE  zTestGeoMean.test_0g  rF  rt   c                 d    g d}d}t        ||       g d}t        dd      }t        ||d       y )Nr  sŤF@r  rL  r  r  r  )r8  r   rD  s      re   rI  zTestGeoMean.test_1d_listl  s3    5!W%w/!W51rt   c                     t        j                  g d      }d}t        ||       t        g dt              }t	        dd      }t        ||t               y )Nr  r  r  rL  r  r>   )rY   r   r8  r   r   rD  s      re   rL  zTestGeoMean.test_1d_arrayv  sD    HH>?!W%,(w/!WG4rt   c                 6    g dg dg dg}d}t        ||       y NrT  rU  rV  g/,$qJ@r  rD  s      re   rX  zTestGeoMean.test_2d_list  s    /1DE!W%rt   c                 H    g dg dg dg}d}t        t        |      |       y r  )r8  r   rD  s      re   rZ  zTestGeoMean.test_2d_array  s#    /1DE%(G,rt   c                     g dg dg dg}t        j                  g d      }t        ||d       t        g dg dg dg      }t        g d      }t        ||dd	       y )
NrT  rU  rV  )g4@A@g5H@g`8|wЭN@gm~&+R@r   r@   r  r  rA   r  rY   r   r8  rD  s      re   r_  zTestGeoMean.test_2d_axis0  sT    /1DE((NO!W1-<|<=%!W159rt   c                     g dg dg dg}t        j                  g d      }t        ||d       t        g dg dg dg      }t        dd	      }t        |||g      }t        ||dd
       y )NrT  rU  rV  )gD" 6"6@gcP@g
ҧZ@r   r@   r  rL  r  r  r  )rY   r   r8  r   )r]   r   rR  r  s       re   rg  zTestGeoMean.test_2d_axis1  sf    /1DE((CD!W1-<|<=-)Aq	"!W159rt   c                 >    t        g d      }d}t        ||d       y )N)g}Ô%ITr
  gu <7~r
  r_  r  )r   r8  rD  s      re   test_large_valueszTestGeoMean.test_large_values  s    '(!W51rt   c                 ~    g d}d}t        j                  d      5  t        ||       d d d        y # 1 sw Y   y xY w)N
rH   rh  r  r  r  r  r  r  r  r   r}   ry  rr  )rY   r|  r8  rD  s      re   test_1d_list0zTestGeoMean.test_1d_list0  s7    3[[X& 	*a)	* 	* 	*s   3<c                     t        j                  g d      }d}t        j                  d      5  t        ||       d d d        y # 1 sw Y   y xY w)Nr  r}   ry  )ra  )rY   r   r|  r8  rD  s      re   test_1d_array0zTestGeoMean.test_1d_array0  sA    HH<=[[) 	*a)	* 	* 	*s   AAc                     g d}t         j                  }t        j                  d      5  t        ||       d d d        y # 1 sw Y   y xY w)N)
rH   rh  r  r  r  r  r  r  r  rN   ry  rz  )rY   rZ   r|  r8  rD  s      re   test_1d_list_negzTestGeoMean.test_1d_list_neg  s;    4&&[[* 	*a)	* 	* 	*s   AA
c                 6    g d}g d}d}t        |||d       y Nr.  )r   r"   r#   r!   r    GZ*oG8@rm  rn  r  ro  s       re   rp  z TestGeoMean.test_weights_1d_list  s!     !!WgDArt   c                     t        j                  g d      }t        j                  g d      }d}t        |||d       y r  r  ro  s       re   test_weights_1d_arrayz!TestGeoMean.test_weights_1d_array  s3     HH_%((?+!WgDArt   c                     t        j                  g d      }t         j                  j                  g dg d      }d}t        |||d       y )Nr  )r   r"   r#   r!   r    r"   )r   r   r   r   r   r   r}  r  rm  rn  )rY   r   r  r8  ro  s       re   r{  z(TestGeoMean.test_weights_masked_1d_array  s>     HH'(%%++07I+J!WgDArt   N)r   r   r   rE  rI  rL  rX  rZ  r_  rg  r  r  r  r  rp  r  r{  r   rt   re   r}  r}  f  sK    &
25&-:	:2
***BBBrt   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dgddggdf ej                  d	d
gddgddgg      dfg      d        Ze
j                  j                  dg dg dg dgdfg dg dg dgdfg      d        Ze
j                  j                  dg dg dg dgdfg dg dg dgdfg      d        Zd Zd Ze
j                  j                  dg d      d        Zy)TestPowMeanc                 X    t        j                  | |z        | j                  z  d|z  z  S r  )rY   r  r   r   r   s     re   pmean_referencezTestPowMean.pmean_reference  s&    q!tqvv%1--rt   c                 p    t        j                  || |z  z        t        j                  |      z  d|z  z  S r  )rY   r  )r   r   r5  s      re   wpmean_referencezTestPowMean.wpmean_reference  s/    wA~&8AaC@@rt   c                 N   t        j                  t        d      5  t        j                  g ddg       d d d        t        j                  t        d      5  t        j                  g dt        j                  dg             d d d        y # 1 sw Y   ZxY w# 1 sw Y   y xY w)NzPower mean only defined forr   r+  r   )r   r   r   rS   r=  rY   r   r  s    re   test_bad_exponentzTestPowMean.test_bad_exponent  sw    ]]:-JK 	(KK	A3'	(]]:-JK 	2KK	288QC=1	2 	2	( 	(	2 	2s   B-BBB$c                     g dd}}t         j                  t        j                  |      |      }t	        |||       g dd}}t        j
                  d      }t	        |||       y )Nr  r+   r  r   r/   )r  r  rY   r   r>  r   r]   r   r   rR  s       re   rI  zTestPowMean.test_1d_list  sU    8#1--bhhqk1=!Q(Q1''9:!Q(rt   c                 |    t        j                  g d      d}}t        j                  ||      }t	        |||       y )Nr  g      )rY   r   r  r  r>  r  s       re   rL  zTestPowMean.test_1d_array  s3    xxABD1--a3!Q(rt   c                 z    t        j                  ddg      d}}d}t        t        j                  ||      |       y )Nr   r   rN   r}   )rY   r   r   rS   r=  r  s       re   rN  z#TestPowMean.test_1d_array_with_zero  s2    xxA1U[[A&0rt   c                     t        j                  g d      d}}t        j                  t        d      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)NrP  gGz?zPower mean only defined if allr   )rY   r   r   r   r   rS   r=  )r]   r   r   s      re   rQ  z-TestPowMean.test_1d_array_with_negative_value  sF    xx
#T1]]:-MN 	KK1	 	 	s   AAr  rH   rh  r  r  r  r@  r@  r(   c                 p    t         j                  t        j                  |      |      }t	        |||       y r4  r  r  rY   r   r>  r  s       re   test_2d_axisnonezTestPowMean.test_2d_axisnone  s*     --bhhqk1=!Q(rt   rT  rU  rV  ra  c                    t        t        |d               D cg c]Q  }t        j                  t	        j
                  t        t        |            D cg c]
  }||   |    c}      |      S }}}t        |||d       y c c}w c c}}w )Nr   r@   )r  r  r  r  rY   r   r>  )r]   r   r   r  r  rR  s         re   test_2d_list_axis0zTestPowMean.test_2d_list_axis0  s~     3qt9%	
  ''5Q=9a!A$q'9:A
 
 	!Qa0	 :
s   9B	B#B	B	c                     |D cg c]+  }t         j                  t        j                  |      |      - }}t	        |||d       y c c}w )Nr   r@   r  )r]   r   r   a_rR  s        re   test_2d_list_axis1zTestPowMean.test_2d_list_axis1  sB     KLLB;..rxx|Q?LL!Qa0 Ms   0Ac                     g dd}}g d}t         j                  t        j                  |      ||      }t	        ||||d       y )Nrk  gރBrl  rm  rn  )r  r  rY   r   r>  r]   r   r   r5  rR  s        re   rp  z TestPowMean.test_weights_1d_list  s<    ;1..rxx{AwG!QtDrt   c                     t        j                  g d      d}}t         j                  j                  g dg d      }t        j                  ||      }t	        ||||d       y )	Nrx  r   ry  rz  r}  r5  rm  rn  )rY   r   r  averager>  r  s        re   r{  z(TestPowMean.test_weights_masked_1d_array!  sJ    xx'1%%++n<+@**Q0!QtDrt   )rA   fun_namer   ))Nr  g3E#@)r   ry  r   )r   r:  rN   c                     |dk(  rfd}nt        t        |      }t        j                  ddgddgddgg      }t        j                  ddgddgddgg      } ||||	      }t	        ||||d
       y )Nr  c                 2    t         j                  | |      S r4  )r  r  )r   rA   r5  r   s      re   funz.TestPowMean.test_weights_2d_array.<locals>.fun/  s    "33Aq'BBrt   r   r"   rH   r#   r   r    )rA   r5  rm  rr  )getattrrS   rY   r   r>  )r]   rA   r  r   r  r   r5  rR  s      `    re   test_weights_2d_arrayz!TestPowMean.test_weights_2d_array'  s     ))C %*CHHq!fr1g1v./((RGaVaV45adG4!QdG$Ort   N)r   r   r   r  r  r  rI  rL  rN  rQ  r   r]  r^  rY   r   r  r  r  rp  r{  r  r   rt   re   r  r    sg   .A2))
1

 [[8b"XCy
)4	0
"((RHr2hS	2
3S	9	;
)
) [[-/B
CT	J,.A
BC	H	J
1
1 [[-/B
CT	J,.A
BC	H	J
1
1EE [[!		P	Prt   r  c                       e Zd Z ej                  d      dz   ZdZej                  dd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)TestGeometricStandardDeviationrL  r   gv aZ@r   r    r!   c                 n    t        j                  | j                        }t        || j                         y r4  )rS   rz  array_1dr   gstd_array_1dr]   gstd_actuals     re   rL  z,TestGeometricStandardDeviation.test_1d_array?  s$    jj/T%7%78rt   c                     t        j                  t        | j                              }t	        || j
                         y r4  )rS   rz  r  r  r   r  r  s     re    test_1d_numeric_array_like_inputz?TestGeometricStandardDeviation.test_1d_numeric_array_like_inputC  s)    jjt}}!56T%7%78rt   c                     t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   y xY w)NzInvalid array inputr   z3This should fail as it can not be cast to an array.)r   r   r   rS   rz  r  s    re   ,test_raises_value_error_non_array_like_inputzKTestGeometricStandardDeviation.test_raises_value_error_non_array_like_inputG  s7    ]]:-BC 	NJJLM	N 	N 	Ns	   ;Ac                     t        j                  t        d      5  t        j                  t        j                  | j                  dg             d d d        y # 1 sw Y   y xY w)NNon positive valuer   r   r   r   r   rS   rz  rY   r  r  r  s    re   "test_raises_value_error_zero_entryzATestGeometricStandardDeviation.test_raises_value_error_zero_entryK  sC    ]]:-AB 	6JJryy45	6 	6 	6   5AA#c                     t        j                  t        d      5  t        j                  t        j                  | j                  dg             d d d        y # 1 sw Y   y xY w)Nr  r   rN   r  r  s    re   &test_raises_value_error_negative_entryzETestGeometricStandardDeviation.test_raises_value_error_negative_entryO  sC    ]]:-AB 	7JJryy56	7 	7 	7r  c                     t        j                  t        d      5  t        j                  t        j                  | j                  t
        j                  g             d d d        y # 1 sw Y   y xY w)NzInfinite valuer   )	r   r   r   rS   rz  rY   r  r  ro  r  s    re   !test_raises_value_error_inf_entryz@TestGeometricStandardDeviation.test_raises_value_error_inf_entryS  sG    ]]:-=> 	;JJryy9:	; 	; 	;s   AA((A1c                     t        g dt        j                  dddgg      }t        j                  |d      }t        |t        j                   dt        j                  g             y )N)r   r   r   r   r   r   r    r@   r!   )r   rY   rZ   rS   rz  r   )r]   r   r  s      re   test_propagates_nan_valuesz9TestGeometricStandardDeviation.test_propagates_nan_valuesW  sI    =2661a"345jj+RXXq"&&k%:;rt   c                     t        j                  t        d      5  t        j                  | j
                  | j
                  j                         d d d        y # 1 sw Y   y xY w)NzDegrees of freedom <= 0r   rh   )r   r   r   rS   rz  r  r   r  s    re   )test_ddof_equal_to_number_of_observationszHTestGeometricStandardDeviation.test_ddof_equal_to_number_of_observations\  sB    ]]:-FG 	?JJt}}4==+=+=>	? 	? 	?s   6AA$c                 r    t        j                  | j                  d       }t        || j                         y )Nr@   )rS   rz  array_3dr   r  r  s     re   test_3d_arrayz,TestGeometricStandardDeviation.test_3d_array`  s&    jjT:T%7%78rt   c                 b    t        j                  | j                  d      }t        |ddg       y )Nr  r@   g~d@g<
?)rS   rz  r  r   r  s     re   test_3d_array_axis_type_tuplez<TestGeometricStandardDeviation.test_3d_array_axis_type_tupled  s%    jjU;j*%=>rt   c                     t        j                  | j                  d      }t        j                  g dg dg dg      }t        ||       y )Nr   r@   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?rS   rz  r  rY   r   r   r]   r  gstd_desireds      re   test_3d_array_axis_0z3TestGeometricStandardDeviation.test_3d_array_axis_0h  s>    jjQ7xxOOO!
 
 	\2rt   c                     t        j                  | j                  d      }t        j                  g dg dg      }t        ||       y )Nr   r@   )gN@g85@g'ĥ?gwth?)gHnaX?gG?gBu?gE?r  r  s      re   test_3d_array_axis_1z3TestGeometricStandardDeviation.test_3d_array_axis_1q  s;    jjQ7xxLL!
  	\2rt   c                     t        j                  | j                  d      }t        j                  g dg dg      }t        ||       y )Nr   r@   )gt80?gі?g?)gۘ]~?gmT6(?g	G?r  r  s      re   test_3d_array_axis_2z3TestGeometricStandardDeviation.test_3d_array_axis_2y  s;    jjQ7xx??!
  	\2rt   c                 6   t         j                  j                  | j                  dkD  | j                        }t	        j
                  |d      }t	        j
                  | j                  d      }g dg dg}t        ||       t        |j                  |       y )Nr   r   r@   r  r  )	rY   r  masked_wherer  rS   rz  r   r   r~  )r]   r  r  r  r~  s        re   test_masked_3d_arrayz3TestGeometricStandardDeviation.test_masked_3d_array  sm    UU 2DMMBjj!,zz$--a89%\2[%%t,rt   N)r   r   r   rY   r   r  r  rW   r  rL  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rt   re   r  r  9  sw    ryy#a'H"M1a(H99N67;<
?9?333-rt   r  c            	         t        j                  t        j                  ddd      t        j                  ddd      t        j                  ddd      f      } d}d	}g d
}t        | |      D ]6  \  }}t	        t        j                  |||      j                  |dd|z         8 t	        t        j                  ddd      j                  dd       y )Nr  r*  r"   r  g?r{  ffffff?r  i  )r}   r}   gs  gG|G{g	ɺM>6g>
ztt+g#ӌRM/gF׸fz2gU8u5g8M8gФ)Ba?g%վ?g*+a5?gś?gڒJ|>rJ   zfail forp=%f)r8   err_msgr  r@  gVݶ3;r7   )rY   r  r,  r  r
   rS   	binomtestr   )ppr  r   r  r   r   s         re   test_binomtestr    s    	S#q1T43T435 
6B 	AA(G b'" H3EOOAq!4;;S(*NQ4F	HH C5<</$&(rt   c                     ddgg dg dg dg dg dg dg dg d	g d
g
} t        dd      D ]P  }t        |dz         D cg c]#  }t        j                  ||d      j                  % }}t	        || |dz
     d       R y c c}w )Nr   )r(   r   r(   )r  r   r   r  )r?  r  r   r  r?  )rA        ?r   r   r  rA  )rB        ?      ?r   r  r  rB  )r>  r?        ?r   r   r  r?  r>  )	      ?      ?     ?     @?r   r  r  r  r  )
      p?      ?      ?     @?r   r   r  r  r  r  )      `?      ?      ?      ?      ?r   r  r  r  r  r  r   rI   r(   rH   rB   )r  rS   r  r   r   )r
  r  r  r	  s       re   test_binomtest2r    s     
c
 +8G		*	E	D" 1b\ 9;@Q<Ha1c*11HHD$qs)R89Hs    (Bc                     t        dd      D  cg c]:  } t        dd      D ])  }t        j                  | | |z  d|z        j                  + < }} }t	        |t        j                  t        |      t                     t        j                  g d      }t        j                  g d      }t        dd      D  cg c]=  } t        dd      D ],  }t        j                  | dz   | |z  d|z        j                  . ? }} }t        dd      D  cg c]=  } t        dd      D ],  }t        j                  | dz
  | |z  d|z        j                  . ? }} }t        ||d       t        ||d       y c c}} w c c}} w c c}} w )	Nr   rI   r   r   )Zr(   grq?g     ?glq?gx0f#?g%d)MO?g   	o?g6?g:X@?r  gsw?g    ?gR'jMV?gEf?gF5a?gAQU?g'W?gk?r  g
ņB?g  ?g$?g{dU'?gD:B?gwV?gR0Nf?gOq?r  g[k^?g T+?gO?gggh(?gP-@?gOQ?g}^?gV7_i?r  ge$?gр?g#>?g5z@?g:?gf?gzP?g  ?     ?gg*),?g}A_?g}aA?gH]@_?g
y7s?gPG?g>)\R?gjc6?K?go; ,?g!O0?g?g}e?g5?g?!A^?gN/#?g*?    @?g?g?g3?g.1?gdT\1-?gt0W59?goQC?gX4J?   ?g
?gf?C"?g\6I?g4b?g|$or?gWNS~?gT?gXnc?   \?gY\?gp ^a?gX-K?g#c?g
3?g75Q?gMJ[?gP8R?)Zr(   gw	%?g     ?gS g?gv^?g*uCi?g  a?g]?gE9Q?r  g/?g     ?g	x&~?g#?g5B?g	A'9?gpZ?gWV$u?r  gqIb?g  @N?g1Y?g5?gO?gc-?gk?g )?r  glMV?g?$?gT*r?gCqRv?grx?gωZ?gExY?g<T ?r  gJ9Ͻd?g `Ԗt?gT?gEz?gQ?g7C<*?g<?g~ K?r  g8?g~ȍEt?g⿒?g<v?gHE:?g8Z$?gbº5?gvC?r  g`Yw?gA?$??gE=?g4?g3?g{G9?gp?gH ?r  gz6f?g¯F?g(+?g	$V?gq^ws?g!?gXNJ?gK?r 	  g4P?g<q?gdV;?gy?g$w?gU<vO?gMX?g	șz*?r	  giqSp?gMM?g0V$)?g]
yi/Q?gl?gl?g3Ȇ?gѾ_c?rK   rB   )r  rS   r  r   r   rY   rU  r  rE  r   r   )r  r  r(  binom_testm1binom_testp1res4_p1res4_m1s          re   test_binomtest3r	    s    1b\95B<9&' OOAqsBqD)00 90 9D 9rwws4y#./ 88 
 LP 88 
 L@ a<eArl<)* qsAaCA.55 <5 <G < a<eArl<)* qsAaCA.55 <5 <G < r:r:q9d<<s   ?E2<AE8AE>c                       e Zd Zd Zd Zd Zy)TestTrimc           	      `   t        j                  d      }t        t        j                  t	        j
                  |d            t        j                  d             t        t        j                  t	        j
                  |d            t        j                  d             t        t        j                  t	        j
                  |dd            t        j                  dd             t        t        j                  t	        j
                  |d	d            t        j                  d
d             t        t	        j
                  |d      g        t        t	        j
                  |dd      g        t        t	        j
                  g d      g        t        t	        j
                  g d	d      g        t        t	        j
                  g d      g        t        j                  d      j                  dd      }t        j                  dd      j                  dd      }d}t	        j
                  |dd|      }t        t        j                  ||      |       d}t	        j
                  |j                  dd|      }t        t        j                  ||      |j                         y )NrI   r  rH   r*  r&   left)tailr   tE]t?r    r   r  rL  r#   r!   r"   r   )r	  rA   r@   r   )rY   r   r   sortrS   trim1rW   r  )r]   r   rP  rA   trimmeds        re   
test_trim1zTestTrim.test_trim1  s   IIbMRWWU[[C01299R=ARWWU[[C01299Q<@RWWU[[Cf=>YYq"%	'RWWU[[E?@YYq"%	'U[[C("-U[[Cf5r: 	U[[S)2.U[[U8"=U[[T*B/ IIbM!!!Q'ii2&&q!,++a6=RWWW40#6++acc3V$?RWWW40#%%8rt   c           
         t        j                  d      }t        t        j                  t	        j
                  |d            t        j                  dd             t        t        j                  t	        j
                  |d            t        j                  g d             t        t        j                  t	        j
                  t        j                  d      j                  dd	      d            t        j                  d	d
      j                  d	d	             t        t        j                  t	        j
                  t        j                  d      j                  d	d      j                  d            t        j                  g dg dg             t        t        t        j
                  t        j                  d      j                  d	d      j                  d       t        t	        j
                  g d      g        t        t	        j
                  g d      g        t        t	        j
                  g d      g        y )NrI   r	  r    r%   r*  )r   r    r!   r"   r#   r$   r%   rL  r#   r!   rh  r   )r   r%   rF   rh  )r    r&   rg  rE   r  r  )rY   r   r   r	  rS   trimbothr   rW   r  r   r   r-  s     re   test_trimbothzTestTrim.test_trimboth5  ss   IIbMRWWU^^Au56		!QHRWWU^^As34XX34	6RWWU^^BIIbM,A,A!Q,GMNYYq"%--a3	5RWWU^^BIIbM,A,A!Q,G,I,I,02 3XX~~>?	A 	j%..iim++Aq133T	; 	U^^B,b1U^^B.3U^^B-r2rt   c                    t        j                  g d      }t        j                  g d      }t        j                  d      j                  dd      |d d f   }t        j                  d      j                  ddd      |d d f   }t	        t        j                  |d      t        j                  g d	             t	        t        j                  |d      t        j                  g d
             t        j                  g d      }t        j                  d      j                  dd      |d d f   }t	        t        j                  |d      t        j                  g d             g d}t	        t        j                  |d      d       t	        t        j                  g dd      d       t         j                  j                  d       t         j                  j                  dd      }dD ]Q  }t        j                  |d|      }t        j                  t        j                  ||d      d      }	t	        ||	       S t        j                  |dd       }t        j                  |j                         d      }	t	        ||	       t        t        t
        j                  |d       t	        t        j                  g d      t         j                         t	        t        j                  g d      t         j                         y )N)r!   r%   r   r   r&   r"   rH   r   r$   r    r#   )r    r"   r   r   r   r!   rL  r#   r!   Fr  r   )r*   r0   g      -@g     4@rh  )r   r   r    r   )r   rx   r  r  ri  g      ,@)r$   rI   rJ   rE   r   r#   rz  r   r"   r   r  rH   rQ   r&   r  rg  r  rh  r   rF   r!   rK   r%   r    rG   )r"   r!   r    r   r   r   r*   r  rh  )r"   r#   r!   r$   rB  )r   r   r   r    rN   r@   r   rj  r}   )rY   r   r   rW   r   rS   	trim_meanrI  r  r<  r  r  r   r   rZ   )
r]   r   idxr  r  idx4a4rA   r	  r
  s
             re   test_trim_meanzTestTrim.test_trim_meanG  s    HH78hh)*YYr]""1a(a0YYr]""1as"3CF;U__R.XX45	7U__R.XX23	5xx%YYr]""1a(q1U__R.XX;<	>%U__Q-t4U__]D93? 			tIIb|4$ 	%D??1d6D??2;;q$#:DADt$	%
 q$T2qwwy$/T4 j%//1c: 	U__R-rvv6U__R-rvv6rt   N)r   r   r   r	  r	  r	  r   rt   re   r	  r	    s    983$$7rt   r	  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestSigmaClipc                 $   t        j                  t        j                  ddd      t        j                  ddd      f      }d}t        j                  |      \  }}}t        |j                         |kD         t        |j                         |k         t        ||j                         ||j                         z  z
         t        ||j                         ||j                         z  z          t        |j                  |j                         y )Nr  rM      r   rh  r"   r!   rY   r  r,  rS   	sigmaclipr   minmaxr   rX   rq   r   r]   r   factrx  ri  upps         re   test_sigmaclip1zTestSigmaClip.test_sigmaclip1o  s    NNBKKT26Ar18MNOooa(3##S!&&(T!%%'\12S!&&(T!%%'\12QVVQVV$rt   c                 @   t        j                  t        j                  ddd      t        j                  ddd      f      }d}t        j                  |||      \  }}}t        |j                         |kD         t        |j                         |k         t        ||j                         ||j                         z  z
         t        ||j                         ||j                         z  z          t        |j                  d       t        |j                  d	       y )
Nr  rM   r	  r   rh  r"   r)   r!   $   r	  r#	  s         re   test_sigmaclip2zTestSigmaClip.test_sigmaclip2y  s    NNBKKT26Ar18MNOooat43##S!&&(T!%%'\12S!&&(T!%%'\12QVVQQVVR rt   c                 *   t        j                  t        j                  ddd      t        j                  ddd      f      }d}t        j                  |||      \  }}}t        |j                         |kD         t        |j                         |k         t        ||j                         ||j                         z  z
         t        ||j                         ||j                         z  z          t        |t        j                  ddd             y )Nr  rM   rI   r    ?)rY   r  r,  rS   r 	  r   r!	  r"	  r   rX   rq   r#	  s         re   test_sigmaclip3zTestSigmaClip.test_sigmaclip3  s    NNBKKT26KKc157 8ooat43##S!&&(T!%%'\12S!&&(T!%%'\12QCr23rt   c                     t        j                  t        j                  ddd      t        j                  ddd      f      }d}t        j                  |||      }d}t        ||       y )	Nr  rM   rI   r+	  r,	  r    r-	  )clippedr  r  )rY   r  r,  rS   r 	  r   )r]   r   r$	  r   r   s        re    test_sigmaclip_result_attributesz.TestSigmaClip.test_sigmaclip_result_attributes  sZ    NNBKKT26KKc157 8ooat,2
C,rt   c                 r    t        j                  d      }t        t        j                  |      d   |       y )NrH   r   )rY   rU  r   rS   r 	  r  s     re   test_std_zerozTestSigmaClip.test_std_zero  s'    GGBKU__Q'*A.rt   N)r   r   r   r&	  r)	  r.	  r1	  r3	  r   rt   re   r	  r	  n  s    %	!	4-/rt   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
)TestAlexanderGovernc                    g dg dg dg dg}t        j                  |t         j                        }t        j                  |t         j                        }t        j                  |t         j                        }t        j                  |t         j
                        }t        j                  | }t        j                  | }t        j                  | }t        j                  | }	|j                  |j                  cxk(  r |j                  cxk(  r|	j                  k(  sJ  J |j                  |j                  cxk(  r |j                  cxk(  r|	j                  k(  sJ  J y )N)	rK   rK   rK   rK   rK   rK   rK   rJ   rJ   )	rF   rK   rJ   rJ   rJ   rJ   rJ   rI   rI   )	rF   rF   rK   rK   rK   rK   rK   rJ   rJ   )	rg  rF   rK   rK   rK   rJ   rJ   rJ   rI   r>   )
rY   r   r  r'  r  r   rS   alexandergovernr   r   )
r]   r  
args_int16
args_int32
args_uint8args_float64	res_int16	res_int32	res_unit8res_float64s
             re   test_compare_dtypesz'TestAlexanderGovern.test_compare_dtypes  s3   44446 XXd"((3
XXd"((3
XXd"((3
xxBJJ7)):6	)):6	)):6	++\:  I$4$4 7  7$/$6$67 	8 7 	8 7##y':': =##='2'<'<= 	> = 	> =rt   c                 2   t        t        d      5  t        j                  ddgg        d d d        t        t        d      5  t        j                  ddgd       d d d        t        t        d      5  t        j                  ddgdg       d d d        t        t        d      5  t        j                  ddgt        j
                  t        j
                  g       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   y xY w)Nz+Input sample size must be greater than one.r   r   r   zInput samples must be finite.)r   r   rS   r7	  rY   ro  r  s    re   test_bad_inputsz#TestAlexanderGovern.test_bad_inputs  s    : .B C 	.!!1a&"-	. : .B C 	-!!1a&!,	- : .B C 	/!!1a&1#.	/ :-LM 	<!!1a&266266*:;	< 	<	. 	.	- 	-	/ 	/	< 	<s/   C)C56D)7D)C25C>D
Dc                     g d}g d}g d}t        j                  |||      }t        |j                  d       t        |j                  d       y)a  
        Data generated in R with
        > set.seed(1)
        > library("onewaytests")
        > library("tibble")
        > y <- c(rnorm(40, sd=10),
        +        rnorm(30, sd=15),
        +        rnorm(20, sd=20))
        > x <- c(rep("one", times=40),
        +        rep("two", times=30),
        +        rep("eight", times=20))
        > x <- factor(x)
        > ag.test(y ~ x, tibble(y,x))

        Alexander-Govern Test (alpha = 0.05)
        -------------------------------------------------------------
        data : y and x

        statistic  : 1.359941
        parameter  : 2
        p.value    : 0.5066321

        Result     : Difference is not statistically significant.
        -------------------------------------------------------------
        Example adapted from:
        https://eval-serv2.metpsy.uni-jena.de/wiki-metheval-hp/index.php/R_FUN_Alexander-Govern

        )(g5gb?gl"k g^s/@gQ\
@gRh gIF@gpZ>q@g7D @g-ѪZng(Q<.@gON/@g	Ogҷ%6gs&@gw)ܿg789Ŀgzp"@gzl @g57@g>m@*a"@g,ZbI@gX9
]?g3g1@gg"Jbgy:@j-g2A g;@gL97vp,+@gp/rg"@gfT|7g^v+g٘Yg0/gglA! &@go@)g!_5*gqTEgg1$@g	a, @gˤ$g9%gZ@gT6U'@gS g6aGn*@gO@g\\"g^4w@g0gr~5@gDP=@gٿԙg:4R/gOx]r!@gU4 gta)B@g,Gg2$@gD%?gI,VL&g@gч
;g5@gWJc@gYjK@@)gj7#@g<e,g}m(@gr2g#^9gr/P@g:RO!g'9?g6F
?gcʱ'gt*&gg~*0Ώ7@gWzx>gIK'@g?Ң@g7C5@g;C>ϯUg7@g)n}.^@gFQ?gsdlT6?NrS   r7	  r   r   r   )r]   onetwoeightsolns        re   test_compare_rz"TestAlexanderGovern.test_compare_r  sL    :"	I7 $$S#u5(=>%;<rt   c                    g d}g d}g d}t        j                  |||      }t        |j                  dd       t        |j                  dd       	 t        |j                  d	       t        |j                  d
       y)z
        Data taken from 'The Modification and Evaluation of the
        Alexander-Govern Test in Terms of Power' by Kingsley Ochuko, T.,
        Abdullah, S., Binti Zain, Z., & Soaad Syed Yahaya, S. (2015).
        )g{G&~@g(\E~@g=
ףp~@gfffff~@gp=
~@gףp=
k@gR@gQ2@g8@g`@g)\`@g=
ףp@g(\#@g@g=
ףpE@gQ@g
ףp=@gףp=
Մ@g33333#@)g=
ףpt@g{G&u@gq=
ףv@gQDy@g     X{@g\(P}@g]~@gt~@gzG~@g)\~@g1@gzG@)gGz8@g     @gp=
ב@g
ףp=@gGzԀ@gq=
ףր@gRi@g{Gt@gw@g=
ףp@gQS@gQ@g(\©@gQ-@gQ@g]FxK@rG  r   g R8߱?r  g.UikL@g&Zݱ?NrD	  )r]   youngmiddleoldrH	  s        re   test_compare_scholarz(TestAlexanderGovern.test_compare_scholar  so    08G$$UFC8T:W48	: 	1Z0rt   c                     g d}g d}t        j                  ||      }t        |j                  dd       t        |j                  dd       	 t        |j                  d       t        |j                  d       y	)
aA  
        Data taken from 'Robustness And Comparative Power Of WelchAspin,
        Alexander-Govern And Yuen Tests Under Non-Normality And Variance
        Heteroscedasticity', by Ayed A. Almoied. 2017. Page 34-37.
        https://digitalcommons.wayne.edu/cgi/viewcontent.cgi?article=2775&context=oa_dissertations
        )gQhgMOgY9gnSgdȿg}"Ogиp $?g8~4?g
p?gZ?g)J=?gX?gpG?gᛦ?gg?gh8en?g?guwg?gbX?g9SI?)gN]g	cZgAJigMg'gk,	Pg<gΈ׿g%zrKտg0BxҿgPNg:ǀgvꭁg?k~?gI\߇?gi?g<)?g0Xr?g
F%u?gsFZ*o?g7n:?g[z4?rm  r   gOZ}?g9$?g6MDd}?NrD	  )r]   r  r  rH	  s       re   test_compare_scholar3z)TestAlexanderGovern.test_compare_scholar37  sg    "! $$R,t<XD9	8 		2Y/rt   c                     g ddt         j                  gg}t        j                  | }t	        |j
                  t         j                         t	        |j                  t         j                         y )Nr  r   rY   rZ   rS   r7	  r   r   r   )r]   r  r   s      re   test_nan_policy_propogatez-TestAlexanderGovern.test_nan_policy_propogatei  sH    q"&&k*##T*SZZ(S]]BFF+rt   c                     g ddt         j                  gg}t        t        d      5  t	        j
                  |ddi d d d        y # 1 sw Y   y xY w)Nr  r   rp  r   r|   r~   )rY   rZ   r   r   rS   r7	  r]   r  s     re   test_nan_policy_raisez)TestAlexanderGovern.test_nan_policy_raisep  sG    q"&&k*:-LM 	=!!4<G<	= 	= 	=s   AAc                 4   dddt         j                  dgdt         j                  ddgg}g dg dg}t        j                  |d	d
i}t        j                  | }t	        |j
                  |j
                         t	        |j                  |j                         y )Nr   r   r    r!   r  ri  r  )r   r  ri  r|   rz   rR	  )r]   args_nanargs_no_nanres_nan
res_no_nans        re   test_nan_policy_omitz(TestAlexanderGovern.test_nan_policy_omitu  s    1bffa(1bffb"*=>#[1''EfE**K8
W^^Z%6%67W&&
(<(<=rt   c                 @   d}t        j                  t        j                  |      5  t        j                  g dg d      }t        |j                  t        j                         t        |j                  t        j                         d d d        y # 1 sw Y   y xY w)Nz9An input array is constant; the statistic is not defined.r   r   r   )
r   r   rS   r   r7	  r   r   rY   rZ   r   )r]   r   r   s      re   r   z'TestAlexanderGovern.test_constant_input}  sj    I\\%44C@ 	-''(=(=?C/RVV,		- 	- 	-s   A#BBN)r   r   r   r@	  rB	  rI	  rN	  rP	  rS	  rV	  r\	  r   r   rt   re   r5	  r5	    s3    >(<"@=D01d00d,=
>-rt   r5	  c            	          e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  d ej                  g d       ej                  g d	      ej                  d
ff ej                  g d       ej                  g d      ej                  ej                  ffg      d        Ze	j                  j                  dg d      d        Zd Zd Zd Zd Ze	j                  j                  ddg dfg      d        Zd Zd Zy)TestFOneWayc                 n    t        j                  ddgddg      \  }}t        |d       t        |d       y )Nr   r   r}   r   rS   f_onewayr   r]   r	  r   s      re   test_trivialzTestFOneWay.test_trivial  s2    ~~q!fq!f-1QQrt   c                     t        j                  ddgddg      \  }}t        |d       t        |dt	        j
                  d      z
  d       y )	Nr   r   r!   r  r   r(   r  r  )rS   rb	  r   r   rY   r   rc	  s      re   r   zTestFOneWay.test_basic  sC     ~~q!fq!f-1Q1rwws|+%8rt   c                 p    t        j                  dgdgg d      \  }}t        |d       t        |d       y )Nr   r  rj  r  ra	  rc	  s      re   test_known_exactzTestFOneWay.test_known_exact  s4     ~~qcA3	21 	QQrt   c                     t        j                  ddgt         j                        }t        j                  ddgt         j                        }t        j                  ||      \  }}t        |dd       y )	N    r>       gŸ?r  r  )rY   r   uint16rS   rb	  r   )r]   r   r   r	  r   s        re   test_large_integer_arrayz$TestFOneWay.test_large_integer_array  sU    HHc3Zryy1HHc3Zryy1~~a#1 	.U;rt   c                     t        j                  ddgt         j                        }t        j                  ddgt         j                        }t        j                  ||      }d}t        ||       y )Nri	  rj	  r>   rk	  rl	  rb  )rY   r   rm	  rS   rb	  r   )r]   r   r   r   r   s        re   test_result_attributesz"TestFOneWay.test_result_attributes  sQ    HHc3Zryy1HHc3Zryy1nnQ",
C,rt   c                    g d}|D ]l  }d}t         j                  j                  t         j                  j                  t         j                  j	                  t
              d|            }t        |      5 }|j                         j                  d      }d d d        dd D cg c]"  }|j                         r|j                         $ }}t        j                  |d      }	|	j                  \  }
}|
j                  t              }
t        j                  |
      }t!        |d	   d
         }|D cg c]
  }||
|k(      }}t#        j$                  | }d}||v rd}t'        |d	   ||d|z         o y # 1 sw Y   xY wc c}w c c}w )N)z
SiRstv.datz
SmLs01.datz
SmLs02.datz
SmLs03.datzAtmWtAg.datz
SmLs04.datz
SmLs05.datz
SmLs06.dat
SmLs07.dat
SmLs08.dat
SmLs09.datr-  zdata/nist_anova
r  r}  r  )skiprowsr   rN   )rr	  rs	  rt	  r  zFailing testcase: %s)r  r  )ospathabspathjoindirname__file__openreadsplitstriprY   loadtxtr  r&  rE  uniquer  rS   rb	  r   )r]   	filenames	test_caser  fnamer  contentline	certifieddatafr^   r   catyr  xlistr   hard_tcs                    re   	test_nistzTestFOneWay.test_nist  sg   ?	 # 	HIDGGOOBGGLL1J1BI%O PEe /&&(.../29"R. *$ JJL  *I *JJur2E77DAqA99Q<Dil2&'A(,-1QqAvY-E-..%(C AGG#CFAD$:Y$FH-	H/ /* .s   7 E8&'F4F	8F	za, b, expected)r  r  r  ru  r   c                     d}t        j                  t        j                  |      5  t        j                  ||      \  }}|s
J ||k(         	 d d d        y # 1 sw Y   y xY w)N%Each of the input arrays is constant;r   )r   r   rS   r   rb	  )r]   r   r   r)  r   r  r   s          re   r   zTestFOneWay.test_constant_input  sW     6\\%44C@ 	$>>!Q'DAq#a8m#1	$ 	$ 	$s   &AA!rA   )rX  rN   r   r   c                 h   t        j                  g dg dg dg dg dg      }t        j                  g dg dg dg dg d	g d
g dg dg      }t        j                  g dg dg dg dg      }|dv r'|j                  }|j                  }|j                  }d}nd}d}t        j                  t
        j                  |      5  t        j                  ||||      \  }}d d d        dD ]}  }	t        j                  t        j                  ||	|      t        j                  ||	|      t        j                  ||	|            \  }
}t        |	   |
d       t        |	   |d        dD ]  }	t        j                  t
        j                  |      5  t        j                  t        j                  ||	|      t        j                  ||	|      t        j                  ||	|            \  }
}t        |	   |
       t        |	   |       d d d         y # 1 sw Y   9xY w# 1 sw Y   xY w)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   r    r"   r    )r%   r   r"   r    )r   r   r"   r    )r!   r    r!   r    )r!   r   r!   r    )r"   r!   r!   r    r  r   r   r	  r   r@   r  r  r  rr  )rY   r   r  r   r   rS   r   rb	  taker   r   )r]   rA   r   r   rx  	take_axisrP  r  r   r  fjpjs               re   test_2d_inputszTestFOneWay.test_2d_inputs  s   HHl""""	$ %
 HHl"""""""$ % HHl"""$ %
 7?AAAII:\\%44HE 	6>>!Q5DAq	6
  	2A^^BGGAq)$<$&GGAq)$<$&GGAq)$<>FB AaD"51AaD"51	2  	'Ae88I '1i(@(*1i(@(*1i(@BB QqT2&QqT2&' '	'	6 	6' 's   HA8H(H%(H1	c           
         dt        j                  dd      j                  ddd      z  }dt        j                  dd      j                  dd	d      z  }t        j                  dt        j                  dd
      j                  ddd      z        }t	        j
                  |||d      \  }}|j                  dk(  sJ |j                  dk(  sJ t        |j                  d         D ]s  }t        |j                  d         D ]V  }t	        j
                  ||d d |f   ||d d |f   ||d d |f         \  }}	t        ||||f          t        |	|||f          X u y )Nr   r      r!   r"   r$   r      r%   q   r@   )r!   r$   r   )	rY   r   rW   cosrS   rb	  r  r  r   )
r]   r   r   rx  r  r   r  r  fijpijs
             re   test_3d_inputszTestFOneWay.test_3d_inputs
  sC   biiY'//1a88biiY'//1a88FF1RYYsI.66q!Q??@~~aAA.1ww&   ww&   qwwqz" 	.A1771:& . >>!Aq!G*a1aj!Aq!G*MSQq!tW-Qq!tW-.	.rt   c                    d}t        j                  t        j                  |      5  t        j                  g dg g d      }t        |t        j                  t        j                  f       d d d        y # 1 sw Y   y xY w)Nat least one input has length 0r   r+  r  r   r   rS   DegenerateDataWarningrb	  r   rY   rZ   r]   r   r#  s      re   test_length0_1d_errorz!TestFOneWay.test_length0_1d_error  sY    /\\%55SA 	3^^Ir<@F"&&"&&!12	3 	3 	3s   AA77B c                    d}t        j                  t        j                  |      5  d}t	        j
                  d|f      }t	        j
                  d|f      }t	        j
                  d|f      }t        j                  |||      \  }}t	        j                  |ft        j                        }t        ||       t        ||       d d d        y # 1 sw Y   y xY w)Nr	  r   r    r!   r   r"   r  )
r   r   rS   r	  rY   rU  rb	  rm   rZ   r   )	r]   r   ncolsr   r   rx  r  r   nanss	            re   test_length0_2d_errorz!TestFOneWay.test_length0_2d_error"  s    /\\%55SA 	"EE
#AE
#AE
#A>>!Q*DAq77E87DD!D!	" 	" 	"s   B CCc                    d}t        j                  t        j                  |      5  t        j                  dgdgdgdg      }t        |t        j                  t        j                  f       d d d        y # 1 sw Y   y xY w)Nzall input arrays have length 1.r   rH   rI   rJ   rK   r	  r	  s      re   test_all_length_onezTestFOneWay.test_all_length_one.  sc    /\\%55SA 	3^^RD2$rd;F"&&"&&!12	3 	3 	3s   AA88Br  r   r+  c                 p    t        t              5  t        j                  |  d d d        y # 1 sw Y   y xY wr4  )r   r  rS   rb	  rU	  s     re   test_too_few_inputszTestFOneWay.test_too_few_inputs4  s+    9% 	"NND!	" 	" 	"s   ,5c                     t        j                  d      }t        j                  d      }t        t              5  t	        j
                  ||d       d d d        y # 1 sw Y   y xY w)Nr  r"   r!   r   r@   )rY   rU  r   r   rS   rb	  r]   r   r   s      re   test_axis_errorzTestFOneWay.test_axis_error9  sI    GGFOGGFO9% 	)NN1aa(	) 	) 	)   AA%c                     t        j                  d      }t        j                  d      }t        t              5  t	        j
                  ||d       d d d        y # 1 sw Y   y xY w)Nr  r	  r   r@   )rY   rU  r   r   rS   rb	  r	  s      re   test_bad_shapeszTestFOneWay.test_bad_shapes?  sI    GGFOGGFO:& 	)NN1aa(	) 	) 	)r	  N)r   r   r   rd	  r   rg	  rn	  rp	  r	  r   r]  r^  rY   r   ro  rZ   r   r	  r	  r	  r	  r	  r	  r	  r	  r   rt   re   r_	  r_	    s   9<-H@ [[-	,	)!4rvvqkB	,	,!7"&&"&&9IJ0
 $	$ [[V^4-' 5-'^."3
"3 [[Vb9,%78" 9"))rt   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
)TestKruskalc                    dg}dg}t        j                  ||      \  }}t        |d       t        |t         j                  j
                  j                  |d             t        j                  t        j                  |      t        j                  |            \  }}t        |d       t        |t         j                  j
                  j                  |d             y )Nr   r   r   )	rS   kruskalr   r
   r  r  r  rY   r   r]   r   r^   hr   s        re   test_simplezTestKruskal.test_simpleG  s    CC}}Q"1QAu2277::1a@A}}RXXa["((1+61QAu2277::1a@Art   c                    g d}g d}t        j                  ||      \  }}t        |dd       t        |t         j                  j                  j                  dd             t        j                  t        j                  |      t        j                  |            \  }}t        |dd       t        |t         j                  j                  j                  dd             y )Nr   r   r!   r#   r%   rH   r	  rH   r7   r   )rS   r	  r
   r  r  r  rY   r   r	  s        re   r   zTestKruskal.test_basicQ  s    }}Q"1Au"5Au2277::5!DE}}RXXa["((1+61Au"5Au2277::5!DErt   c                 n    dg}ddg}d}d}||z  }t        j                  ||      \  }}t        ||       y )Nr   r   r  r  )rS   r	  r   r]   r   r^   h_uncorrr  r)  r	  r   s           re   test_simple_tiezTestKruskal.test_simple_tie[  sE    CF*d?}}Q"1 	Q!rt   c                     g d}g d}d}dt        d      dz  z
  }||z  }t        j                  ||      \  }}t        ||       y )N)r   r   r   r   )r   r   r   r   r   r        )r  rS   r	  r
   r	  s           re   test_another_tiezTestKruskal.test_another_tief  sM    >5,-::d?}}Q"1Ax(rt   c                     g d}g d}ddg}d}dt        d      dz  z
  }||z  }t        j                  |||      \  }}t        ||       t        |t        j                  j
                  j                  |d             y )Nr  rN  r   r6   r   r	  r	  )r  rS   r	  r
   r  r  r  )	r]   r   r^   r  r	  r  r)  r	  r   s	            re   test_three_groupszTestKruskal.test_three_groupso  s{    FG5,-::d?}}Q1%1Ax(Au2277::1a@Art   c                     g d}g d}g }t        t        j                  |||      t        j                  t        j                  f       y )Nr  rN  )r   rS   r	  rY   rZ   r  s       re   r  zTestKruskal.test_empty{  s5    U]]1a+bffbff-=>rt   c                 \    g d}g d}t        j                  ||      }d}t        ||       y )Nr   r	  rb  )rS   r	  r   )r]   r   r^   r   r   s        re   test_kruskal_result_attributesz*TestKruskal.test_kruskal_result_attributes  s+    mmAq!,
C,rt   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  ||      t         j                  t         j                  f       t        t	        j
                  ||d      d       t        t        t        j
                  ||d       t        t        t        j
                  ||d       y )Nrx   r&   rz   r{   rm  r~   r   )	rY   r   rZ   r   rS   r	  r   r   r   r  s     re   r  zTestKruskal.test_nan_policy  s}    IIcNvv!U]]1a(266266*:;EMM!Q6BJOj%--A'Jj%--A(Krt   c                     d}t         j                  j                  |      }t         j                  j                  |      dz   }t        j                  ||      \  }}d}t        ||       y )Nr  r  r   )rY   rI  r  rS   r	  r
   )r]   r  r   r^   r	  r   r)  s          re   test_large_no_samplesz!TestKruskal.test_large_no_samples  sS    IIOOAIIOOA#}}Q"1Ax(rt   N)r   r   r   r	  r   r	  r	  r	  r  r	  r  r	  r   rt   re   r	  r	  F  s3    BF	")
B?-L)rt   r	  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zg d
Zej                  j                  dg d      ej                  j                  de      d               Zej                  j                  de      d        Zy)TestCombinePvaluesc                 X    t        j                  g dd      \  }}t        |dd       y )NrF  r*  r  r1  rS  gf?r!   r7   rS   combine_pvaluesr
   )r]   xsqr   s      re   test_fisherzTestCombinePvalues.test_fisher  s$    &&}XFQAwA6rt   c                 X    t        j                  g dd      \  }}t        |dd       y )Nr	  stoufferrS  S:X?r!   r7   r	  r]   Zr   s      re   test_stoufferz TestCombinePvalues.test_stouffer  s$    $$]:F1AwA6rt   c                 X    t        j                  g dd      \  }}t        |dd       y )N)r(   r(   r(   r	  rS  r(   r!   r7   r	  r	  s      re   test_stouffer2z!TestCombinePvalues.test_stouffer2  s$    $$\*E1As2rt   c                     t        j                  g ddt        j                  d            \  }}t	        |dd       y )Nr	  r	  r    r:  r5  r	  r!   r7   )rS   r	  rY   rU  r
   r	  s      re   test_weighted_stoufferz)TestCombinePvalues.test_weighted_stouffer  s1    $$]:-/WWQZ91AwA6rt   c                     t        j                  g ddt        j                  d            \  }}t	        |dd       y )Nr	  r	  )r   r!   r&   r	  g46<?r!   r7   )rS   r	  rY   r   r
   r	  s      re   test_weighted_stouffer2z*TestCombinePvalues.test_weighted_stouffer2  s3    $$]:-/XXi-@B1Av15rt   c                 X    t        j                  g dd      \  }}t        |dd       y )Nr	  r  rS  gE
)??r!   r7   r	  r	  s      re   test_pearsonzTestCombinePvalues.test_pearson  s$    $$]9E1AwA6rt   c                 X    t        j                  g dd      \  }}t        |dd       y )Nr	  tippettrS  gBi?r!   r7   r	  r	  s      re   test_tippettzTestCombinePvalues.test_tippett  s$    $$]9E1Av15rt   c                 X    t        j                  g dd      \  }}t        |dd       y )N)r  r  r  mudholkar_georgerS  g&?r!   r7   r	  r	  s      re   test_mudholkar_georgez(TestCombinePvalues.test_mudholkar_george  s%    $$\:LM1AxQ7rt   c                     t        j                  g dd      \  }}t        j                  g dd      \  }}t        j                  g dd      \  }}t        d||z   z  |d       y )	Nr	  r	  rS  r1  r  r(   r!   r7   r	  )r]   r	  r   Z_fp_fZ_pp_ps          re   2test_mudholkar_george_equal_fisher_pearson_averagezETestCombinePvalues.test_mudholkar_george_equal_fisher_pearson_average  sY    $$];MN1((xHS((yISC3s7OQA>rt   )r1  r  r	  r	  r	  rz  )singler  rI  r:  c                 n   d\  }}t         j                  j                  d      }|dk(  rFt        j                  ||f|j                  |            }t        j                  dd|      |d d df<   nm|dk(  r8t        j                  ||ft        j                  dd|            j
                  }n0|dk(  r+t        j                  |j                  dd	||f
      d      }D cg c]  }t        j                  ||      d	    }}t        j                  t        j                  |      dk\        sJ y c c}w )N)rH   r$   l	   TrU(	"b-= r	  r  r  r   r  rI  r   rB  r@   rS  )rY   rI  rJ  rm   r,  r  r	  r  rS   r	  r  diff)	r]   rz  r:  r  r  rN  pvaluessr6  combined_pvaluess	            re   test_monotonicityz$TestCombinePvalues.test_monotonicity  s    1ii##$KL hww1vszz!}5H[[c15HQTNww1vr{{3Q'?@BBH wws{{1aq!f{=AFH $
 !!'&9!<
 
 vvbgg./14555	
s   !!D2c                 z    t        j                  g d|      }t        |j                  |j                  f|       y )Nr	  rS  )rS   r	  r   r   r   )r]   r:  r   s      re   r  zTestCombinePvalues.test_result  s+    ##M&AcmmSZZ0#6rt   N)r   r   r   r	  r	  r	  r	  r	  r	  r	  r	  r	  rO  r   r]  r^  r	  r  r   rt   re   r	  r	    s    7
737
6
768? OG[[Y(CD[[Xw/6 0 E6. [[Xw/7 07rt   r	  c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)TestCdfDistanceValidationzg
    Test that _cdf_distance() (via wasserstein_distance()) raises ValueErrors
    for bad inputs.
    c           	          t        t        t        j                  dgdgdgddg       t        t        t        j                  dgdgddg       y )Nr   r   r!   r    r   r   r   rS   wasserstein_distancer  s    re   &test_distinct_value_and_weight_lengthsz@TestCdfDistanceValidation.test_distinct_value_and_weight_lengths  sG     	j%"<"<cA3aV	-j%"<"<qcA3AOrt   c                     t        t        t        j                  ddgdgddg       t        t        t        j                  ddgdgddgdg       y )Nr   r   r   r    r	  r  s    re   test_zero_weightz*TestCdfDistanceValidation.test_zero_weight  sN     	j%"<"<!fqcAq6	+j%"<"<!fqcAq6A3	0rt   c           	      X    t        t        t        j                  ddgddgddgddg       y )Nr   r   r   r    rN   r	  r  s    re   test_negative_weightsz/TestCdfDistanceValidation.test_negative_weights  s-    j%"<"<!fq!fq!fq"g	7rt   c                     t        t        t        j                  g ddg       t        t        t        j                  dgg        y r   r	  r  s    re   test_empty_distributionz1TestCdfDistanceValidation.test_empty_distribution  s2     	j%"<"<b1a&Ij%"<"<qc2Frt   c           	      v    t        t        t        j                  g dddgdt        j
                  dgddg       y )Nr  r   )r   r   rS   r	  rY   ro  r  s    re   test_inf_weightz)TestCdfDistanceValidation.test_inf_weight  s0    j%"<"<!Q!RVVQ!Q	Art   N)	r   r   r   r\  r	  r	  r	  r
  r
  r   rt   re   r	  r	    s#    
P07
GArt   r	  c                   l   e Zd ZdZd Zej                  j                  dd      ej                  j                  dd      ej                  j                  dd      d	                      Zej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Z	ej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Z
d Zej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Zej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Zd Zej                  j                  dg d      ej                  j                  dg d      d               Zy) TestWassersteinDistanceNDz8 Tests for wasserstein_distance_nd() output values.
    c                    g d}g d}t        j                  ||      }t        j                  g d      }t        j                  g d      }t        j                  ||z        t        j                  |      z  }t        ||       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   r6   r   r   r   )r   gw@r  g;f?r   r   )rS   wasserstein_distance_ndrY   r   r  r   )r]   r  r  r   flowdistrP  s          re   test_published_valuesz/TestWassersteinDistanceND.test_published_values  sm    
"" ++Aq1 xx01xx@AffTD[!"&&,.S!rt   n_value)r!   rg  r  r  )r    r!   r$   max_repeats)r"   rH   c                 :   t         j                  j                  d      }|j                  d||t              }|j                  ||f      }t        j
                  ||d      }|j                  t        j                  |            }t        j
                  t        j                  t        |            |      }	t        j                  |	|      }
|j                  t        |            }||   ||   }}t        j                  |||
|      }t        |dd	       y )
Nl   na{F.aP	 r   )r   r?   rB  r   r@   r  r   r   )rY   rI  rJ  integersrE  r,  r  r   r  bincountr<  rS   r
  r   )r]   r  r
  r
  rN  repeatsu_valuesv_values	v_weightsrange_repeat	u_weightsrn  r   s                re   test_same_distribution_nDz3TestWassersteinDistanceND.test_same_distribution_nD$  s     ii##$<=,,q+G3,G::GT?:399XwQ7JJrvvg/	yy3w<!8'BKKi@	I/&uoy/?)++Hh	9UQU+rt   nu)r%   r&   &   nv)r%   rJ   rQ   )r    r"   r  c                    t         j                  j                  d      }|j                  ||f      }t        j                  ||f      }|j                  |      }|j                  |      }t        j                  t         j
                  j                  |d      |      }	t        j                  ||||      }
t        |
|	       y )N   }&=:! rB  r   r@   r  )
rY   rI  rJ  r  r  r=  rp  rS   r
  r   )r]   r
  r
  r  rN  r
  r
  r
  r
  rP  r   s              re   test_collapse_nDz*TestWassersteinDistanceND.test_collapse_nD8  s     ii##$89::B::.88RJ'JJBJ'	JJBJ'	jjq99M++Hh	9US!rt   )r%   r   r  )r   r   r#   c                 2   t         j                  j                  d      }|j                  ||f      }|j                  ||f      }|j                  |      }|j                  |      }t        j                  ||||      }	|j                  d|d      \  }
}|j                  ||f      }t        j                  ||
|d      }t        j                  ||
t        j                  |      d      }t        j                  ||||      }t        ||	       y )Nr
  rB  r   r   r@   )	rY   rI  rJ  rS   r
  r
  insertr  r   )r]   r
  r
  r  rN  r
  r
  r
  r
  rP  add_rownrows	add_valuer   s                 re   test_zero_weight_nDz-TestWassersteinDistanceND.test_zero_weight_nDH  s    
 ii##$89::B::.::B::.JJBJ'	JJBJ'	++Hh	9Ua!4JJUDMJ2	99Xw	BIIi"((5/J	++Hh	9US!rt   c                    ddgddggt         j                  t         j                   ggddg}}}t        j                  |||      }t	        |t         j                         t        j
                  d      5  t         j                  t         j                  ggt         j                  t         j                   gg}}t        j                  ||      }t	        |t         j                         d d d        y # 1 sw Y   y xY w)Nr   r   ry  rz  )rY   ro  rS   r
  r   r|  rZ   )r]   uvvvuwdistances        re   test_inf_valuesz)TestWassersteinDistanceND.test_inf_values[  s     !fq!f%"&&(9':QFB00R<Xrvv&[[* 	+vvrvv&'266BFF7*;)<B44R<H266*	+ 	+ 	+s   6A4C33C<r  )r   r    r"   c                    t         j                  j                  d      }|j                  ||f      }|j                  ||f      }|j                  |      }|j                  |      }t        j                  ||||      }	|j                  d|      }
|j                         }t        j                  ||
|d      }t        j                  ||
|d      }t        j                  ||||      }t        ||	       y )Nl   Lq/ rB  r   r   r@   )rY   rI  rJ  rS   r
  r
  r
  r   )r]   r
  r
  r  rN  r
  r
  r
  r
  rP  add_dimr"
  r   s                re   test_multi_dim_nDz+TestWassersteinDistanceND.test_multi_dim_nDf  s    
 ii##$78::B::.::B::.JJBJ'	JJBJ'	++Hh	9U,,q$'JJL	99Xw	B99Xw	B++Hh	9US!rt   )r$   rK   r  )r   r!   r$   c                    t         j                  j                  d      }|j                  ||f      }|j                  ||f      }|j                  |      }|j                  |      }t        j                  ||||      }	t        j
                  |      }
|
j                  |      }|j                  |      }t        j                  ||z  |z   ||z  |z   ||      }t        ||	       y )Nl   uAh~rB  rC  )rY   rI  rJ  rS   r
  ortho_grouprE  r   )r]   r
  r
  r  rN  r
  r
  r
  r
  rP  r

  	transformshiftr   s                 re   test_orthogonal_nDz,TestWassersteinDistanceND.test_orthogonal_nDz  s     ii##N3::B::.::B::.JJBJ'	JJBJ'	++Hh	9U  &HH#H.	


%++Hy,@5,H)1I)=)E)2I? 	S!rt   c                    t         j                  j                  d      }t        j                  t
        d      5  |j                  d      }|j                  d      }t        j                  ||      }d d d        t        j                  t
        d      5  |j                  d      }|j                  d	      }t        j                  ||      }d d d        t        j                  t
        d
      5  |j                  d      }|j                  d      }t        j                  ||      }d d d        y # 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)Nl   e36^[Y{lz Invalid input values. The inputsr   )r!   rH   rg  rB  )r#   r   r$   z Invalid input values. Dimensions)rg  )r    rg  z(Invalid input values. If two-dimensional)r   rH   r  )rY   rI  rJ  r   r   r   rS   r
  )r]   rN  r
  r
  r  s        re   test_error_codez)TestWassersteinDistanceND.test_error_code  s1   ii##$>?]]:-OP 	Bzz{z3Hzzyz1H--hAA	B ]]:-OP 	Bzzuz-Hzzwz/H--hAA	B ]]:<> 	Bzzwz/Hzzvz.H--hAA		B 	B	B 	B	B 	B	B 	Bs#   ;D;;E7;E;EEEu_size)r   rH   r  v_sizec                    t         j                  j                  d      }|j                  |df      }|j                  |df      }|j                         }|j                         }t	        j
                  ||      }t	        j                  ||      }	t	        j                  ||      }
t        |	|       t        |
|       |j                  |      }|j                  |      }t	        j
                  ||||      }t	        j                  ||||      }	t	        j                  ||||      }
t        |	|       t        |
|       y )Nl   Ku@* r   rB  )rY   rI  rJ  r  rS   r	  r
  r   )r]   r4
  r5
  rN  r
  r
  u_values_flatv_values_flatd1d2d3r
  r
  s                re   test_optimization_vs_analyticalz9TestWassersteinDistanceND.test_optimization_vs_analytical  s#    ii##K0::FA;:/::FA;:/ ( ( ''}E**8X>**=-HBBJJFJ+	JJFJ+	''}(19>**8X(19>**=-(19>BBrt   N)r   r   r   r\  r
  r   r]  r^  r
  r
  r#
  r)
  r,
  r1
  r3
  r<
  r   rt   re   r
  r
    s   "& [[Y4[[VY/[[]G4, 5 0 5," [[T:.[[T;/[[VZ0" 1 0 /" [[T;/[[T;/[[VY/" 0 0 0" 	+ [[T<0[[T<0[[VY/" 0 1 1"" [[T;/[[T;/[[VY/" 0 0 0"$B  [[X|4[[X|4  5 5 rt   r
  c                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y	)
TestWassersteinDistancez5 Tests for wasserstein_distance() output values.
    c                 <   t        t        j                  ddgdgddgdg      d       t        t        j                  ddgdgddgdg      d       t        t        j                  ddgdgddgdg      d       t        t        j                  g dg d      d       y )	Nr   r   r(   r    r  r   r  r+  r   rS   r	  r  s    re   r	  z#TestWassersteinDistance.test_simple  s     	&&1vsQFQC@	 	22FQC!Q!&	 	22FQC!Q!&	 	22y"	rt   c           	          t        t        j                  g dg d      d       t        t        j                  g dddgg dddg      d       y 	Nr+  r  r   )r   r   r   r!   r!   r   r^  r    )r   rS   r	  r  s    re   test_same_distributionz.TestWassersteinDistance.test_same_distribution  sE     	U//	9EqI&&|aV'3aV=	rt   c           	      (   t        t        j                  dgdg      d       t        t        j                  dgdg      d       t        t        j                  g dg d      d       t        t        j                  g dg d	g d
g d      d       y )Nr   r   r  r"   rH   r.  )rI   rJ   rK   rF   rg  )r,   g@r$  )r"  r$   r  )r    r   r   )r   r    r   r*   r@
  r  s    re   
test_shiftz"TestWassersteinDistance.test_shift  sz     	22A3<a@22B4!=rB&&8LM	 	&&'0)=	rt   c           
          t        t        j                  g dg dg dg d      t        j                  g dg dg dg 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  s    re   test_combine_weightsz,TestWassersteinDistance.test_combine_weights  s?     	&&%'<%'<> &&y)'0)=		>rt   c                    t        j                  ddd      }t        j                  |      }t        t	        j
                  ||      t        j                  t        j                  |                   t        j                  t        |            }|d d d   }t        t	        j
                  ||||      t        j                  t        j                  |      |             y )Nr  r  r  rN   r  )
rY   r   r  r   rS   r	  rX   r  r  r  )r]   r  r  r
  r
  s        re   test_collapsez%TestWassersteinDistance.test_collapse  s     IIc2s#MM!&&q!,GGBFF1I	  IIc!f%	ddO	&&q!Y	BJJrvvay)4	6rt   c           
          t        t        j                  g dddgg dddg      t        j                  ddgddgddgddg             y N)r   r   r]  r   rd  r   r@
  r  s    re   r	  z(TestWassersteinDistance.test_zero_weight   sN    &&~1v'01a&:&&1v1v1v1vF	Hrt   c                    t        t        j                  ddt        j                  gddg      t        j                         t        t        j                  ddt        j                  gt        j                   dg      t        j                         t        t        j                  dt        j                   t        j                  gddg      t        j                         t               5 }|j                  t        d       t        t        j                  ddt        j                  gt        j                  dg      t        j                         d d d        y # 1 sw Y   y xY wNr   r   ry   )	r   rS   r	  rY   ro  r   r[   r\   rZ   r]   rd   s     re   r)
  z'TestWassersteinDistance.test_inf_values  s     	&&1bff~1v>FF	 	&&1bff~|DFF	 	&&BFF7BFF';aVDFF	   	CJJ~'78**Aq"&&>BFFA;G	 	 	   ,A&EE$N)r   r   r   r\  r	  rC
  rE
  rI
  rK
  r	  r)
  r   rt   re   r>
  r>
    s+     >6 Hrt   r>
  c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	TestEnergyDistancez0 Tests for energy_distance() output values.
    c                    t        t        j                  ddgdgddgdg      t        j                  d      dz         t        t        j                  ddgdgddgdg      t        j                  d      dz         t        t        j                  ddgdgddgdg      d       t        t        j                  g dg d	      t        j                  d      d
z         y )Nr   r   r   r(   r    r  r   r  r+  g3Ey?r   rS   energy_distancerY   r   r  s    re   r	  zTestEnergyDistance.test_simple  s     	!!1a&1#1vs;GGAJO	 	E11FQC!Q!&GGAJ	 	E11FQC!Q!&	 	!!)Y7GGAJ**	,rt   c           	          t        t        j                  g dg d      d       t        t        j                  g dddgg dddg      d       y rB
  )r   rS   rV
  r  s    re   rC
  z)TestEnergyDistance.test_same_distribution.  sB     	U**9i@!D!!,Aq!fM	rt   c                     t        t        j                  dgdg      t        j                  d             t        t        j                  dgdg      t        j                  d      dz         y )Nr   r   r   r  r"   gS[:XL	@rU
  r  s    re   rE
  zTestEnergyDistance.test_shift6  sS     	E111#s;RWWQZH!!2$,GGAJ	!rt   c           
          t        t        j                  g dg dg dg d      t        j                  g dg dg dg d             y rG
  r   rS   rV
  r  s    re   rI
  z'TestEnergyDistance.test_combine_weights>  s<     	!!"79N"79NP!!)Y	9M	Ort   c           
          t        t        j                  g dddgg dddg      t        j                  ddgddgddgddg             y rM
  rZ
  r  s    re   r	  z#TestEnergyDistance.test_zero_weightF  sK    !!.1a&)aVL!!1a&1a&1a&1a&A	Crt   c                    t        t        j                  ddt        j                  gddg      t        j                         t        t        j                  ddt        j                  gt        j                   dg      t        j                         t        t        j                  dt        j                   t        j                  gddg      t        j                         t               5 }|j                  t        d       t        t        j                  ddt        j                  gt        j                  dg      t        j                         d d d        y # 1 sw Y   y xY wrO
  )	r   rS   rV
  rY   ro  r   r[   r\   rZ   rP
  s     re   r)
  z"TestEnergyDistance.test_inf_valuesL  s     	U**Aq"&&>Aq6BBFFK!!1a.BFF7A,?FF	 	!!1rvvgrvv"6A?FF	   	CJJ~'78%%q!RVVnrvvqkB	 	 	rQ
  N)
r   r   r   r\  r	  rC
  rE
  rI
  r	  r)
  r   rt   re   rS
  rS
    s'    , !OCrt   rS
  c                   h    e Zd Zg dZg 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)TestBrunnerMunzel)r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r    r    r!   r    r   r   r    r   r   r"   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  r7   |	&	@|	&	gҏGg?g@-pL?)rS   brunnermunzelrU   r  r
   r8   r   r  s	            re   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sidedc  s6   $$TVVTVVHB$$TVVTVVKB$$TVVTVVKB$$TVVTVVHBB0@0@AB0@0@AbB 2(,(8(8	:B 3(,(8(8	:B 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:B 3(,(8(8	:rt   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr  r  r7   ra
  rb
   ҏGw?rS   rc
  rU   r  r
   r8   r  s        re   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sidedz  s    $$TVVTVVMB$$TVVTVVMBB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:rt   c                 x   t        j                  | j                  | j                        \  }}t        j                  | j                  | j                        \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr7   ra
  rb
  rf
  rg
  r  s        re   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default  s    $$TVVTVV4B$$TVVTVV4BB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:rt   c           	          d}d}d}t        |dv       t        t        t        j                  | j
                  | j                  |||       y )NrM  rq  r  ry  r   r   r   rS   rc
  rU   r  r]   r  distributionr|   s       re   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error  sI     
#CCDj))ffff!" 	"rt   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )NrK  rn
  r7   ra
  rb
  g "H[?rg
  r  s        re   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_norm  s    $$TVVTVV(KB$$TVVTVV(KBB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:rt   c           	          d}d}d}t        |dv       t        t        t        j                  | j
                  | j                  |||       y )Nr  rM  r  )rq  rK  rl
  rm
  s       re   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error  sH    ! 
?23j))ffff!" 	"rt   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 r4  )rS   rc
  rU   r  r   rY   rZ   )r]   r  r  r  r  r  r  s          re   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput  s    $$TVVR0B$$R0B$$R,BR R R R R R rt   c                    ddddddddddddddt         j                  g}g d}t        j                  ||d      \  }}t        j                  ||d      \  }}t	        |t         j                         t	        |t         j                         t	        |t         j                         t	        |t         j                         y )Nr   r   r!   r_
  r  r{   )rY   rZ   rS   rc
  r   r]   rU   r  r  r  r  r  s          re   &test_brunnermunzel_nan_input_propagatez8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagate  s    1aAq!Q1aArvv>-$$QkBB$$QkBBR R R R rt   c                     ddddddddddddddt         j                  g}g d}d}d}d}t        t        t        j
                  |||||       t        t        t        j
                  |||||       y )Nr   r   r!   r_
  r  rq  r~   )rY   rZ   r   r   rS   rc
  )r]   rU   r  r  rn
  r|   s         re   "test_brunnermunzel_nan_input_raisez4TestBrunnerMunzel.test_brunnermunzel_nan_input_raise  s    1aAq!Q1aArvv>-!
j))!" 	" 	j))!" 	"rt   c                 v   ddddddddddddddt         j                  g}g d}t        j                  ||d      \  }}t        j                  ||d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d	| j
                         t	        |d
| j
                         y )Nr   r   r!   r_
  rz   r{   r7   ra
  rb
  rf
  )rY   rZ   rS   rc
  r
   r8   rx
  s          re   !test_brunnermunzel_nan_input_omitz3TestBrunnerMunzel.test_brunnermunzel_nan_input_omit  s    1aAq!Q1aArvv>-$$Qf=B$$Qf=BB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:rt   c                     g d}g d}d}t        j                  t        |      5  t        j                  ||d       ddd       y# 1 sw Y   yxY w)z| tests that a warning is emitted when p is nan
        p-value with t-distributions can be nan (0/0) (see gh-15843)
        r+  r  zDp-value cannot be estimated|divide by zero|invalid value encounteredr   rq  rq
  N)r   r   r\   rS   rc
  r  s       re   test_brunnermunzel_return_nanz/TestBrunnerMunzel.test_brunnermunzel_return_nan  sH     T\\.4 	8137	8 	8 	8s   AAc                     g d}g d}t        j                  t        d      5  t        j                  ||d      \  }}ddd       t        d       y# 1 sw Y   xY w)	zo tests that a p is 0 for datasets that cause p->nan
        when t-distribution is used (see gh-15843)
        r+  r  zdivide by zeror   rK  rq
  Nr   )r   r   r\   rS   rc
  r   )r]   r   r^   r  r   s        re   test_brunnermunzel_normal_distz0TestBrunnerMunzel.test_brunnermunzel_normal_dist  sX     \\.0@A 	D&&q!(CDAq	DQ	D 	Ds   AAN)r   r   r   rU   r  r8   rd
  rh
  rj
  ro
  rr
  rt
  rv
  ry
  r{
  r}
  r
  r
  r   rt   re   r^
  r^
  ]  sM    2A)AK:.::"	:"
!	!",:	8	rt   r^
  c                       e Zd ZdZd Zy)TestRatioUniformsz{ Tests for rvs_ratio_uniforms are in test_sampling.py,
    as rvs_ratio_uniforms is deprecated and moved to stats.sampling c           	         t         j                  j                  }t        j                   |t        j                  d                  t        j                  d      z  }t        j                   |d            }t         j
                  j                  ||| |d      }|j                  d      }d}t        j                  t        |      5  t        j                  ||| |dd      }d d d        t        |       y # 1 sw Y   xY w)	Nr   r   i90  )umaxvminvmaxrD  rH   zEPlease use `RatioUniforms` from the `scipy.stats.sampling` namespace.r   r  )rS   rp  pdfrY   r   samplingRatioUniformsrE  r   r   DeprecationWarningrvs_ratio_uniformsr   )r]   r  r  r
  genr  deprecation_msgr  s           re   test_consistencyz"TestRatioUniforms.test_consistency  s    JJNNGGAbggajM"RWWQZ/wwqt}nn**14qbq8= + ?WWR[?\\,OD 	>))!TA2qr7<>B	> 	R	> 	>s   C??DN)r   r   r   r\  r
  r   rt   re   r
  r
    s    Hrt   r
  c                       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d Zd Zy)TestMGCErrorWarningsz1 Tests errors and warnings derived from MGC.
    c                     t        j                  d      }dgdz  }t        t        t        j
                  ||       t        t        t        j
                  ||       y )Nrh  r"   rY   r   r   r   rS   multiscale_graphcorrr1  s      re   test_error_notndarrayz*TestMGCErrorWarnings.test_error_notndarray   sB    IIbMC"Hj%"<"<aCj%"<"<aCrt   c                     t        j                  d      j                  dd      }|j                  dd      }t        t        t
        j                  ||       y )Nr@  ri  r!   rH   )rY   r   rW   r   r   rS   r
  r1  s      re   test_error_shapez%TestMGCErrorWarnings.test_error_shape'  s@    IIcN""2q)IIb"j%"<"<aCrt   c                     t        j                  d      }t        j                  d      }t        t        t        j
                  ||       y )Nr    r
  r1  s      re   test_error_lowsamplesz*TestMGCErrorWarnings.test_error_lowsamples-  s0    IIaLIIaLj%"<"<aCrt   c                 
   t        j                  dt              }t         j                  |d<   t	        t
        t        j                  ||       t        j                  d      }t	        t
        t        j                  ||       y )Nrh  r>   r   )rY   r   r  rZ   r   r   rS   r
  r1  s      re   test_error_nansz$TestMGCErrorWarnings.test_error_nans3  sT    IIb&vv!j%"<"<aCIIbMj%"<"<aCrt   c                 v    t        j                  d      }d}t        t        t        j
                  |||       y )Nrh  r   )compute_distancer
  )r]   r   r
  s      re   test_error_wrongdisttypez-TestMGCErrorWarnings.test_error_wrongdisttype<  s.    IIbMj%"<"<a'7	9rt   r0  rN   1c                 r    t        j                  d      }t        t        t        j
                  |||       y )Nrh  r0  r
  )r]   r0  r   s      re   test_error_repsz$TestMGCErrorWarnings.test_error_repsC  s'     IIbMj%"<"<aNrt   c                 v    t        j                  d      }d}t        t        t        j
                  |||       y )Nrh  r@  r
  )rY   r   r   r\   rS   r
  )r]   r   r0  s      re   test_warns_repsz$TestMGCErrorWarnings.test_warns_repsL  s*    IIbM^U%?%?ADQrt   c                     t        j                  d      }t        j                  d      t         j                  z  }t	        t
        t        j                  ||       y )Nrh  )rY   r   rU  ro  r   r   rS   r
  r1  s      re   test_error_inftyz%TestMGCErrorWarnings.test_error_inftyR  s9    IIbMGGBK"&& j%"<"<aCrt   N)r   r   r   r\  r
  r
  r
  r
  r
  r   r]  r^  r
  r
  r
  r   rt   re   r
  r
    sb    DDDD9 [[V
& O	O
RDrt   r
  c                   \   e Zd ZdZddZej                  j                  ej                  j                  dg d      d               Z	ej                  j                  ej                  j                  dddg      d               Z
ej                  j                  d	        Zej                  j                  d
        Zej                  j                  d        Zej                  j                  d        Zej                  j                  d        Zej                  j                  d        Zy)TestMGCStatz) Test validity of MGC test statistic
    c                 F   |dk(  rXt         j                  j                  dd|df      }|dt         j                  j                  |j                  df      z  z   }n||dk(  rt        j
                  t         j                  j                  dd|df            }|t        j                  t         j                  |z        z  }|t        j                  t         j                  |z        z  d	t         j                  j                  |j                  df      z  z   }n|d
k(  rt         j                  j                  dd|df      }t         j                  j                  dd|df      }t         j                  j                  dd|df      }	t         j                  j                  dd|df      }
|dz  d|	z  z   dz
  }|dz  d|
z  z   dz
  }nt        d      |dkD  r@t         j                  j                  dd||dz
  f      }t        j                  ||fd      }||fS )Nr  rN   r   rB  r  	nonlinearr   r"   ri  independencer(   )r   r   r    r   z3sim_type must be linear, nonlinear, or independencer@   )rY   rI  r  random_sampler   r   r	  pir-  rK  binomialr   r  )r]   sampsdimssim_typer   r^   unifr  r  u_2v_2
dims_noises               re   _simulationszTestMGCStat._simulations\  s   x		!!"auaj!9AC"))11{1CCCA $88BII--a%-DEDrvvbeedl++Aruut|,,RYY,,1661+,>>?A '		  AUAJ 7A		  AUAJ 7A))$$Q#UAJ$?C))$$Q#UAJ$?C!aeaA!aeaA  , - - !8))!QeT!V_)EJ:Q7A!trt   zsim_type, obs_stat, obs_pvalue))r  r  rG  )r
  w/?rG  )r
  gUN@g(\?c                     t         j                  j                  d       | j                  dd|      \  }}t	        j
                  ||      \  }}}t        ||d       t        ||d       y )Nr  r@  r   r
  r
  r
  r7   rY   rI  r  r
  rS   r
  r
   	r]   r
  obs_stat
obs_pvaluer   r^   r  r   r  s	            re   	test_onedzTestMGCStat.test_oned~  sc     			x    sX F1  44Q:faD(:FJA>rt   )r  gZd;O?rG  )r
  g~jt?gʡE?c                     t         j                  j                  d       | j                  dd|      \  }}t	        j
                  ||      \  }}}t        ||d       t        ||d       y )Nr  r@  r"   r
  r   r7   r
  r
  s	            re   
test_fivedzTestMGCStat.test_fived  sc     			x    sX F1  44Q:faD(:FJA>rt   c                    t         j                  j                  d       t         j                  j                  ddd      }t         j                  j	                  ddd      }t        j                  ||      \  }}}t        |d	d
       t        |dd
       t         j                  j	                  ddd      }t        j                  ||d      \  }}}t        |d	d
       t        |dd
       y )Nr  r@  r(   )r@  r"   rB  r   r   )r  r"   r   r7   rG  T)
is_twosamp)rY   rI  r  r
  rK  rS   r
  r
   r]   r   r^   r  r   r  s         re   test_twosampzTestMGCStat.test_twosamp  s    
		x  IIsCh7IIQ0  44Q:faD#15FEq9 IIQ1  44QdKfaD#15FEq9rt   c                     t         j                  j                  d       | j                  ddd      \  }}t	        j
                  ||d      \  }}}t        |dd	       t        |d
d	       y )Nr  r@  r   r  r
  r   )workersr  r7   rG  r
  r
  s         re   test_workerszTestMGCStat.test_workers  sc    
		x    sX F1  44Q1EfaD$A6FEq9rt   c                     | j                  ddd      \  }}t        j                  ||d      \  }}}t        |dd       t        |dd       y )	Nr@  r   r  r
  rC  r  r7   rG  )r
  rS   r
  r
   r
  s         re   test_random_statezTestMGCStat.test_random_state  sS       sX F1  44QJfaD$A6FEq9rt   c                    t         j                  j                  d       | j                  ddd      \  }}t	        ||d      }t	        ||d      }t        j                  ||d d      \  }}}t        |d	d
       t        |dd
       y )Nr  r@  r   r
  r
  	euclidean)metric)r
  rD  r
  r7   rG  )rY   rI  r  r
  r   rS   r
  r
   )r]   r   r^   distxdisty	stat_distpvalue_distr  s           re   test_dist_permzTestMGCStat.test_dist_perm  s    
		x   s[ I1a;/a;/$)$>$>uePTLM%O!	; 	Iu!<KA>rt   c                     t         j                  j                  d       | j                  ddd      \  }}t	        j
                  ||d      \  }}}t        |d       y )Nr  r@  r   r  r
  rC  r  )rY   rI  r  r
  rS   r
  r   )r]   r   r^   r  r   s        re   test_pvalue_literaturez"TestMGCStat.test_pvalue_literature  sU    
		x    sX F1 11!QQG61'rt   c                     t         j                  j                  d       | j                  ddd      \  }}t	        j
                  ||d      }t        |j                  |j                         y )Nr  r@  r   r  r
  rC  )	rY   rI  r  r
  rS   r
  r   r  r   rH  s       re   
test_aliaszTestMGCStat.test_alias  sU    
		x    sX F1((AA>SXXs}}-rt   N)r@  r    )r   r   r   r\  r
  r   r]  r  r^  r
  r
  r_  r
  r
  r
  r
  r
  r
  r   rt   re   r
  r
  Y  sC    D [[[[= @ 
	? 	? [[[[=!$@ 	?	 
	? [[: :( [[	: 	: [[: : [[? ? [[( ( [[. .rt   r
  c                      e Zd ZdZd Zej                  j                  dg dg dddej                   dd	gd
ddej                  dgg      d        Z
ej                  j                  dg dg dg      d        Zej                  j                  dddg      ej                  j                  dd	dg      ej                  j                  dddg      d                      Zd Zy)TestQuantileTestzb Test the non-parametric quantile test,
    including the computation of confidence intervals
    c                 (   g d}d}t        j                  t        |      5  t        j                  |g       d d d        d}t        j                  t        |      5  t        j                  |ddg       d d d        d}t        j                  t        |      5  t        j                  |d	d
g       d d d        t        j                  t        |      5  t        j                  |d       d d d        t        j                  t        |      5  t        j                  |d       d d d        d}t        j                  t        |      5  t        j                  |d       d d d        d}t        j                  t        |      5  t        j                  |      j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   TxY w# 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr+  z/`x` must be a one-dimensional array of numbers.r   z`q` must be a scalar.r   r   )r  z-`p` must be a float strictly between 0 and 1.r(   r  )r   r@  z`alternative` must be one of...z	one-sidedr  r  )r   r   r   rS   quantile_testr  )r]   r   r7  s      re   test_quantile_test_ivz&TestQuantileTest.test_quantile_test_iv  s   C]]:W5 	%$	% *]]:W5 	-aV,	- B]]:W5 	2c4[1	2]]:W5 	(Q'	(]]:W5 	+T*	+ 4]]:W5 	<{;	< I]]:W5 	:"66q9	: 	:)	% 	%	- 	-	2 	2	( 	(	+ 	+	< 	<	: 	:sS   F=G
GG$G0G<%H=G
GG!$G-0G9<HHzp, alpha, lb, ub, alternative)r  r  gX݊?g蜶?r  )r(   r  g-tA?gP"?r  r  r  g{gA?r  r`  r  gg @r  c                     t        j                  t        j                  ddd            }t        j                  |||      }t        |j                  |      ||gd       y )Nr   rA  rF  )r   r  r   r  )rY   r  r   rS   r
  r   r  )r]   r   r  lbubr  r   r   s           re   test_R_ci_quantilez#TestQuantileTest.test_R_ci_quantile   sN      FF299Qd+,!!!qkB//6RuMrt   zq, p, alternative, ref)r  r  r  gͯI	?)r-	  r(   r  gɍQ%e?c                     t        j                  t        j                  ddd            }t        j                  ||||      }t        |j                  |d       y )Nr   rA  rF  r  r   r  r'   r  )rY   r  r   rS   r
  r   r   )r]   r  r   r  rP  r   r   s          re   test_R_pvaluezTestQuantileTest.test_R_pvalue"   sE     FF299Qd+,!!!qA;G

Ce4rt   r  
continuousdiscreter  r  c                    t        dt        |      z  t        |      z   |z        }t        j                  j	                  |      }|dk(  r(|j                  d      \  }}|j                  d      }n6|j                  ddd      }|j                         }|j                  dd      }t        j                  ||||      }	|	j                  |	      }
|d
k(  r||
j                  k  }n||
j                  k\  }||   D ]/  }t        j                  ||||      }	|	j                  d|z
  kD  r/J  ||    D ]/  }t        j                  ||||      }	|	j                  d|z
  k  r/J  y )Nr$   r
  r   rB  r@  r   rI   r
  r|  r  )rE  r  rY   rI  rJ  r
  rS   r
  r  rj  ri  r   )r]   r  r  r  r  rN  r   r  rE  r   r$  i_insider   s                re   test_pval_ci_matchz#TestQuantileTest.test_pval_ci_match1   sc    As4yL3{#33U:;ii##D)<::1:%DAq**#*&C,,q"3,/C

AQ#A!!#a[I$$e$< & bgg~Hbff}HX 	*A%%cQ!MC::E	)))	* hY 	*A%%cQ!MC::E	)))	*rt   c                 <   g d}d}t        j                  |ddd      }t        |j                  |d       d	gd
z  dgdz  z   }t        j                  dd      j                  d
      }t        j                  |ddd      }t        |j                  |d       y )N)                                    r7        geX?r
  r  r  r
  rm  r  ;   r%   rD   h   r(   p   )r   r  r  r  r  rT  r   )rS   r
  r   r   r   pmf)r]   r   pvalue_expectedr   s       re   test_match_conover_examplesz,TestQuantileTest.test_match_conover_examplesZ   s     !!!sdL

O$? DFbT5\!++s377!7<!!!rSiH

O%@rt   N)r   r   r   r\  r
  r   r]  r^  rY   ro  r
  r
  r
  r
  r   rt   re   r
  r
    s   :6 [['	G	F
rvvg/	8
s%rvvy	9	;NN [[ 	2	1	3
5
5 [[VlJ%?@[[]VY,?@[[WsDk2$* 3 A A$*LArt   r
  c                       e Zd Zej                  j                  d       ej                  j                  dd      Zej                  j                  dd      Zdddd	efd
ddd	efdddd	g dg dg dgfddddg dg dg dgfddddg dg dg dg dg dg dg dg dg dg dg dg dg dg dgfddddg dg dg dg dg dg dg dg dg dg dg dg dg dg d g d!g d!g d!g d!g d!g d!g d!gfd"d#ddg d$g d$g d%gfd&d'ddg d(g d(g d(g d(g d(g d(g d)g d*g d*g d*g
fd+d,ddg dg dg dg dg dg dg dg dg dg dg dg dg d g d!g d!g d!g d!g d!g d!gfd-d.ddg d/g d/g d0g d1gfd2d3ddg dg dg dg dg dg dg dg dg dg d g d!gfgZ	e
j                  j                  d4e	      d5        Zd6d7ddg d8g d9gfd:d;ddg d8g d8g d8g d<g d=gfd>d?ddg d@g d@g d@g d@g d@g d@g d@g d@g d@g dAg dBg dBg dBg dBg dBgfgZe
j                  j                  d4e	      e
j                  j                         dC               ZdD ZdE ZdF ZyG)HTestPageTrendTestr   r    ri  rH      i2  g:hў?FrY  i  gsH?i,0  gY@?)rE  rC  I   r  rC  `   r  r
  r  r(	  rA  1   r@  +   r  rC  r  r  rF  rh  rD   rh  r  rL  r  )D   r  r  "   rN  rh  A   X   rE   r@  r}  r	  r	  C   E   r|  r  rL  r  W   r  r  r  r  r  )r@  rK   U   r  O   rJ   \   V   rE   @   r   r  r  rQ   r   Y   r  r  r  r(	  6   rK   B   rc  r  i
  gXY?rZ  )r)   r  g @r"   r  rI   )r"   r!   r+   rH   rh  rE   )r  r#  rH   rJ   rF   rg  iL  gs˜?T)r!   r    r   r   )r    r!   r   r   r     gĞ?)r    r   r   r  r+     g>K=?)r#   r"   r!   r    r   r   )r   r    r!   r"   r   r#   i  gqူ?)r"   r!   r    r   r   )r!   r   r    r   r"   r.     ga?i  g;?)r$   r#   r"   r!   r    r   r   )r#   r"   r$   r!   r    r   r   r  u   g[^6?zL, p, ranked, method, datac                     t         j                  j                  d       t        j                  |||      }t        ||j                         t        ||j                         t        ||j                         y Nr  )rankedr:  
rY   rI  r  rS   page_trend_testr   r   r   r   r:  r]   Lr   r  r:  r  r   s          re   test_accuracyzTestPageTrendTest.test_accuracy   sP    
		r##DGQ&3::&VSZZ(rt   i  g-lpW?)
rH   r&   r%   r$   r#   r"   r!   r    r   r   )
r   r%   r!   r$   r#   r"   r&   r    r   rH   i*  gh[?)
r&   r   r%   r$   r#   r"   r!   r    rH   r   r  i  g&]2?)r%   r$   r#   r"   r!   r    r   r   )r   r    r"   r#   r!   r$   r   r%   r  c                     t         j                  j                  d       t        j                  |||      }t        ||j                         t        ||j                         t        ||j                         y r  r  r  s          re   test_accuracy2z TestPageTrendTest.test_accuracy2   sR     			r##DGQ&3::&VSZZ(rt   c                 F   t         j                  j                  d       d\  }}t        j                  d|dz         }t         j                  j	                  t        j                  |            }t         j                  j                  ||      }t        j                  |d      }t        j                  |      }t        j                  |d      }t        j                  |d      }	t        j                  ||      }
t        j                  |d d |f   ||         }t        |j                  |j                         t        |j                  |	j                         t        |j                  |
j                         t        |j                  |j                         y )	Nr  )rH   rh  r   r@   Tr  F)predicted_ranks)rY   rI  r  r   r<  r  rS   rankdatar  r   r   )r]   r  r  r#  permr  ranksr	  r
  r(  res4res5s               re   test_optionszTestPageTrendTest.test_options   s    
		r1))Aqs+yy$$RYYq\2yy~~a#t!,$$U+$$U48$$T%8$$UOL$$U1d7^5DT5JLT^^T^^4T^^T^^4T^^T^^4T^^T^^4rt   c                    t         j                  j                  d       g dg dg dg dg dg dg}t        j                  |      j                  }t        j
                  dd	      }t        j                  |d
|d      }t        |j                  d       t        |j                  dd       t        j                  |d
|d      }t        |j                  d       t        |j                  dd       y )Nr  )r  r  o   )rB  r  k   )g      y   )r;  r  r	  )r        )   rW  t   r   r$   FrY  )r  r#  r:  i  gy&1l?r!   rB   rZ  gHPsb?)rY   rI  r  r   r  r   rS   r  r   r   r   r   )r]   r  r#  r   s       re   test_Ames_assayz!TestPageTrendTest.test_Ames_assay   s    
		r/Cxx~))Aq/##D4C+79 	S]]C(CJJ:##D4C+24 	S]]C(CJJ:rt   c                 D   t        t        d      5  t        j                  d        d d d        t        t        d      5  t        j                  g        d d d        t        t        d      5  t        j                  ddg       d d d        t        t        d      5  t        j                  dggg       d d d        t        t        d      5  t        j                  t        j
                  j                  dd             d d d        t        t        d      5  t        j                  t        j
                  j                  dd             d d d        d}t        t        |      5  t        j                  g dg dgg d	
       d d d        t        t        |      5  t        j                  g dg dgg d
       d d d        t        t        |      5  t        j                  g dg dgg d
       d d d        t        t        |      5  t        j                  g dg dgd
       d d d        t        t        d      5  t        j                  g dg dgd       d d d        t        t        d      5  t        j                  g dg dgd       d d d        t        t        d      5  t        j                  g dddt        j                  ggd       d d d        t        t        d      5  t        j                  g dg dgd       d d d        t        t        d      5  t        j                  g dg dgd       d d d        y # 1 sw Y   ;xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   PxY w# 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   NxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz`data` must be a 2d array.r   r   r   zPage's L is only appropriater    z+`predicted_ranks` must include each integerr+  r  )r  r#  )r=  r   r    )r   r   r    r    r{  z`data` is not properly ranked)r   r   r    TrH
  z`data` contains NaNsFr"  z`method` must be inekki)r  r:  z`ranked` must be boolean.)r  r  )	r   r   rS   r  rY   rI  r  rZ   r  rD  s     re   r  z'TestPageTrendTest.test_input_validation!  sa   :-IJ 	(!!$'	(:-IJ 	&!!"%	&:-IJ 	*!!1a&)	*:-IJ 	+!!QC5'*	+ :-KL 	8!!"))..A"67	8:-KL 	8!!"))..A"67	8 @:W5 	=!!	9'=2;=	= :W5 	?!!	9'=2=?	? :W5 	@!!	9'=2>@	@ :W5 	=!!	9'=2;=	=
 :-LM 	@!!9i"8$?	@:-LM 	@!!9i"8$?	@ :-CD 	0!!9q!RVVn"=).0	0 :-BC 	1!!	9'=)/1	1 9,GH 	1!!	9'=)/1	1 	1W	( 	(	& 	&	* 	*	+ 	+	8 	8	8 	8
	= 	=	? 	?	@ 	@	= 	=
	@ 	@	@ 	@	0 	0	1 	1	1 	1s   M!M.0M;!N4N 4N"/ N/( N<! O	OO#O0=-O=P
:P!M+.M8;NNN"N,/N9<O	OO #O-0O:=P
PPN)r   r   r   rY   rI  r  r  	data_3_25
data_10_26tsr   r]  r^  r  ts2r  r   r)  r4  r  r   rt   re   r
  r
  y   s    IINN1		q"%IB'J $e\9
E%ulJ
G$e\===	>? %ug%#&() "D',l,l,l,()
 "D'y)Y	9y)Y	9y)Y	9y)-.
 "D' 24FGI"D'_o_o_o
 "D'y)Y	9y)Y	9y)Y	9
 !4!#8!#8:; "D'y)Y	9y)Y	CDO*
BX [[92>) ?) #T7,,./ $dG,.M,.M,./ $dG%'?%'?%'?%'?%'?%'?%'?%'(C* [[92>[[)  ?)5$;*/1rt   r
  iv5z	fun, argsc                      | |ddi} | |ddi}t        ||       | j                   d}t        j                  t        t        j                  |            5   | |ddd d d d        y # 1 sw Y   y xY w)Nr:  rZ  r  z#() got multiple values for argumentr   )r:  r  )r   r   r   r   r  reescape)r  r  r   r
  errs        re   test_rename_mode_methodr?  <!  st     t
$G
$C#7#Ddll^>
?C	y		#	7 1T'01 1 1s   
A--A6c                       e Zd Zd Zd Zd Zd Zej                  j                  dg d      ej                  j                  ddd	g      d
               Z
ej                  j                  ddd	g      d        Zy)TestExpectilec                     t         j                  j                  d      }|j                  d      }t        t	        j
                  |d      t        j                  |             y )Nr  rh  rB  r(   r  )rY   rI  rJ  r   rS   	expectilerX   r]   rN  r   s      re   test_same_as_meanzTestExpectile.test_same_as_meanN!  sC    ii##B'JJBJ5rwwqzBrt   c                     t         j                  j                  d      }|j                  d      }t        t	        j
                  |d      t        j                  |             y )Nr  rh  rB  r   rC  )rY   rI  rJ  r   rS   rD  aminrE  s      re   test_minimumzTestExpectile.test_minimumS!  C    ii##B'JJBJ3RWWQZ@rt   c                     t         j                  j                  d      }|j                  d      }t        t	        j
                  |d      t        j                  |             y )Nr  rh  rB  r   rC  )rY   rI  rJ  r   rS   rD  amaxrE  s      re   test_maximumzTestExpectile.test_maximumX!  rJ  rt   c                   	 t         j                  j                  d      }d 		fd}d}|j                  |      }|j                         }|j                  |      }t        j                  |||      } ||||      }t        ||       y )Nl   b@lN c                     t        j                  ||      }d|z
  ||| k  <   t        j                  ||z  || z
  dz  z        S )Nr  r   r   )rY   r  r  )r  r   r  r5  r  s        re   r  z'TestExpectile.test_weights.<locals>.fund!  sC    Q51AE	Aa1fI66!g+Q
233rt   c                     t        j                  |       t        j                  |       f}t        j                  || ||f      j
                  S )N)bracketr  )rY   r!	  r"	  r   minimize_scalarr   )r   r  r5  rQ  r  s       re   
expectile2z.TestExpectile.test_weights.<locals>.expectile2i!  sE    ffQi*G++C23UG1DFFGaHrt   rH   r  )rY   rI  rJ  rS   rD  r   )
r]   rN  rS  r  r   r  r5  r   rP  r  s
            @re   test_weightszTestExpectile.test_weights]!  s{    
 ii##$78	4
	H
 JJqM

**Q-ooa8E7+S!rt   r  )r*  g?r(   g/#    ?r`  r  rh  rJ  c           
      h   t         j                  j                  d      }|j                  |      }dD ]8  }t	        t        j                  t        j                  ||      |      |       : |j                         }t	        t        j                  ||z   |      t        j                  ||      |z          t	        t        j                  ||z
  |      t        j                  ||      |z
         t	        t        j                  ||z  |      |t        j                  ||      z         |j                  |d      }|dk(  rd	 }n|dkD  rd
 }nd } |t        j                  t         j                  ||z      |      t        j                  ||      t        j                  ||      z          |j                  |d      }t        j                  ||      t        j                  ||      k  sJ |j                  |d      }dD ]b  } |t        j                  d|z
  |z  ||z  z   |      d|z
  t        j                  ||      z  |t        j                  ||      z  z          d t	        t        j                  | |      t        j                  |d|z
                y)u  
        See Section 6 of
        I. Steinwart, C. Pasin, R.C. Williamson & S. Zhang (2014).
        "Elicitation and Identification of Properties". COLT.
        http://proceedings.mlr.press/v35/steinwart14.html

        and

        Propositions 5, 6, 7 of
        F. Bellini, B. Klar, and A. Müller and E. Rosazza Gianin (2013).
        "Generalized Quantiles as Risk Measures"
        http://doi.org/10.2139/ssrn.2225751
        r  rB  )r  r   r(   )r  r  rC  rH   r  r(   c                     t        | |       y r4  )r   r   r   s     re   	assert_opz:TestExpectile.test_expectile_properties.<locals>.assert_op!  s    1%rt   c                     | |k  sJ y r4  r   rW  s     re   rX  z:TestExpectile.test_expectile_properties.<locals>.assert_op!      1uurt   c                     | |kD  sJ y r4  r   rW  s     re   rX  z:TestExpectile.test_expectile_properties.<locals>.assert_op!  rZ  rt   r"   )r  r(   r`  r   N)rY   rI  rJ  rK  r   rS   rD  rm   exponentiallogisticr`  )r]   r  r  rN  r   rx  r^   rX  s           re   test_expectile_propertiesz'TestExpectile.test_expectile_propertiesw!  sO   $ ii##B'JJAJ
  	AaA >eL	 OOOOAE/OOAU+a/	
 	OOAE/OOAU+a/	
 	OOAE///	
 LLaRL(C<& S[ 	OOBEE!a%L6OOAU+ooau-.	
 JJA1J%OOAU+uq/NN	
N LLaRL(  	A1a!A#U;177EOOAU334	 	OOQBe,__Qag..	
rt   c                    t         j                  j                  d      }|j                  d|      }g }t        j                  dt        j
                  d      d      }t         j                  d|d|d d	d	   z
  df   D ](  }|j                  t        j                  ||
             * t        j                  t        j                  |      dkD        sJ y )Nr  r   )r   r   r+  r(   r@  r   r   rN   rC  )rY   rI  rJ  paretologspacelog10r`  r  rS   rD  r  r	  )r]   r  rN  r   e_list	alpha_seqr  s          re   test_monotonicity_in_alphaz(TestExpectile.test_monotonicity_in_alpha!  s    ii##B'JJJ#KKRXXc]C8	UU1iYv2v->)>AB 	;EMM%//!59:	;vvbggfo)***rt   N)r   r   r   rF  rI  rM  rT  r   r]  r^  r^  re  r   rt   re   rA  rA  M!  s    C
A
A
"4 [[: [[S2t*-_
 ._
B [[S2t*-+ .+rt   rA  r  )NNr-  N)r\  rw	  r<  r  collectionsr   	itertoolsr   hypothesis.extra.numpyextranumpyrN  rV  rS  numpy.testingr   r   r   r   r	   r
   r   r   r   r   r   r   r   numpy.ma.testutilsr  	testutilsr  r   r   r   r   r   rY   scipy.statsrS   scipy.stats.mstatsr  scipy.stats._mstats_basic_mstats_basicr  scipy.stats._ksstatsr   scipy.special._testutilsr   scipy.specialr   scipyr   common_testsr   scipy.spatial.distancer   scipy.stats._axis_nan_policyr   r  r   scipy._lib._utilr   r  rU   r'  r   r   r   r   r   r2   r   ra  r  r,  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r]  r"  r  r%  r-  r  r  r  r  rX  	compositer\  r^  r  PowerDivCaserx  r  r  r  r  r  r^  r  r'  r  r  r
  r  r  r2  rS  r  r  r  r#  r  r  r  re  r  r  r  r  r  r%  rA  r^  ro  rv  rx  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r2  r8  r;  r>  r@  r}  r  r  r  r  r	  r	  r	  r5	  r_	  r	  r	  r	  r
  r>
  rS
  r^
  r
  r
  r
  r
  r
  rI  rJ  rN  r   r^   wilcoxonr#  rp  r$  rU  r  r?  rA  r   rt   re   <module>r}     s	   
 	  "  % %  . . .
  *     8 8   # # 0 0 ( -   - ( ? = & 

u% %(  !&(	 238
:DeLDeL3U;a4 a4H4 4D
c7 c7L{6 {6|~5 ~5VW3t4 <'3$SE SElW2t&&$R+ + # #D0D)3"rN rNj 34Z3 Z3 5Z3xE E<q& q&f<@ <@~1e@ e@PB BJ    !8p8 p8fp> p>f & }Dqt&"&&+6266$<78AfbffSkMAfbffTlN:;I	K }N&"&&+&"&&,66266#;FGAfbffSkMBvrvvd|O;asmKL1	2 }AAD&"&&+6266$<78AfbffSkMAfbffTlN:;I	K |<aaQa1+ : r!!Qa1
 xrxxBr
+--!!" xrxxBr
+!!# 4i8 i8X8 sBHHo7J%KL	  M	 H V*8Z4Dn ?  ?JZ. Z.~a. a.H	oEd1*+ ,#288I.7#288I.79:	0:	0
. (HI J. ) ,,yryy}a.@A ??YRYYr]IBIIbM,JKMN5N5/zAzt# t#nF5 F5R@7 @7FB+ B+JL$j1Z ,+ ,#288I.7#288I.79:	0:	0
..G+H,GT&*`6 `6Fn8bA A.5# 5#p15{- {-|1"(>V HL"! HL"! BF)-!`B `BFlB lB^aP aPHN- N-b(.90[;|T7 T7n,/ ,/^g- g-T|) |)~R) R)jI7 I7X#A #ALl  l ^[ [|@ @Fk k\ $9D 9DxR. R.jHA HAV{1 {1| 	iiI&JJrNJJrN  >>A40 >>Auzz~~+>? >>Aq62 <<!Q011X+ X+rt   