
     hq'                       d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	m
Z
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*m+Z+ dd
l,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 	  eg de:          Z; eg de:          Z< eg de:          Z= eg de:          Z> eg de:          Z? eg de:          Z@ eg de:          ZA G d d          ZB G d d          ZC G d d          ZD G d d           ZE G d! d"          ZFd# ZGd$ ZHd% ZId& ZJ G d' d(          ZKd) ZLd* ZMd+ ZNd, ZO G d- d.          ZP G d/ d0          ZQd1 ZRd2 ZSd3 ZT G d4 d5          ZUejV        W                    d6           G d7 d8                      ZXd9 ZY G d: d;          ZZ G d< d=          Z[ G d> d?          Z\d@ Z] G dA dB          Z^ G dC dD          Z_ G dE dF          Z` G dG dH          Za edIg dJ          Zb ebg dKddddLdMdL e jc        dN          z  dO e jc        dP          z  z   z  dMdQ e jc        dR          z  dQ e jc        dS          z  z   z  dTJ           ebg dKg dUdddVdMdL e jc        dR          z  dQ e jc        dN          z  z   dQ e jc        dW          z  z   z  dMdM e jc        dN          z  dX e jc        dR          z  z   dM e jc        dY          z  z   z  dZJ           ebg dKdQdddLdMdL e jc        dN          z  dO e jc        dP          z  z   z  dMdQ e jc        dR          z  dQ e jc        dS          z  z   z  dTJ           ebg d[g d[ddddddJ          gZd ebg dddddddJ           eb e j        g g g g          je        dddg d\g d\g d\g d\J           eb e j        g g g g          dddg g g g J          gZf G d] d^          Zgd_ ZhejV        i                    d`dae jj        fdbe jk        fg          dc             Zldd Zmde Zndf Zo G dg dh          Zp G di dj          Zq G dk dl          Zrdm Zsdn Ztdo ZuejV        i                    dp e jv        dq          drf e jv        ds          dtfg          du             Zwdv ZxejV        i                    dwg dx          dy             ZyejV        i                    dze"jz         e j        d{          dffe"j{         e j        d{           e j        d{          ffg          d|             Z|dd}Z}d~ Z~ G d d          Z G d d          Z G d d          Zd Zd Zd Zd ZejV        i                    dp e jv        dq          drf e jv        ds          dtfg          d             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          ZejV        i                    dwg 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ɦ          Ze j                            dʦ          Ze                    d{          Ze                    d{          ZejV        i                    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Φ          ZdS )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)NumpyVersion)_broadcast_concatenate)_permutation_distribution_t)	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                   f    e Zd Z ej        ej                  j        Zd Zd Z	d Z
d Zd Zd ZdS )TestTrimmedStatsc           
         t          j        t          dd          }t          |d| j                   t          j        t          dd          }t          j        t          d           }t          ||| j                   t          dt          	                              d
d          }t          j        |d           }t          ||                                | j                   t          j        |d          }t          ||                    d          d           t          j        |d          }t          ||                    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 }|                    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            d S # 1 swxY w Y   d S )%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           X/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/scipy/stats/tests/test_stats.py
test_tmeanzTestTrimmedStats.test_tmeanE   sV   K6<00As
;;;;[6^DDD[4(((B
;;;;b(((00A66K4(((Atyy{{
CCCCK1%%%!!TYYAY%6%6BBBBK1%%%!!TYYAY%6%6BBBBKW4888At<<<<KW1555...!!VQ7777KWANNN000!!VQ7777!#b"##gKgA>>>S#sBFBFBF;!!VQ7777   
	<CJJ~'<===Dq999ARRVRVRVRVRVLF%a;;;;D&3!= = =A2r2rvrvrvrvrvNF%a;;;;
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	<s   0C)M&&M*-M*c                    t          j        t          dd          }t          |d| j                   t          j        t          d           }t          |t                              d          | j                   t          d	t          
                              d          }t          j        |d           }t          ||                    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 }|                    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            d S # 1 swxY w Y   d S )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_tvart   sh   Jq<@@@A1tzJJJJJq&&&Aquu!u}}$*EEEEb(((0088Jt$'''AtxxQx//TZHHHHJt!$$$!!A$(E(EqQQQQJt!$$$!!A$
(C(CQOOOOJtAqqqDz""A0djIIII   
	'CJJ~'KLLL 
4Q,OOOA!ctzBBBB 
4Q,OOOA!&7TZPPPP1rv&&&
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	's   .B&I!!I%(I%c                     t          j        t          dd          }t          |d| j                   t          j        t          d           }t          |t                              d          | j                   d S )Nr4   r5   gBĆ/H@r7   r<   r   rh   )rS   tstdrU   r
   rV   stdr]   r^   s     re   	test_tstdzTestTrimmedStats.test_tstd   sj    Jq&,//A1tzJJJJJq&&&Aquu!u}}$*EEEEE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           |                    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 }|                    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            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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)r   rS   tminrY   r   rW   rZ   r   r[   r\   assert_raises
ValueError)r]   xrd   msgs       re   	test_tminzTestTrimmedStats.test_tmin   s~   UZ]]A&&&IbMMUZ]]A&&&UZa000!444UZa5AAA1EEEIIfUZa5AAAAq6JJJUZ***OOO<<<UZ---q111IcNNv!   	0CJJ~'7888A///A&9992>>>*ej!HHHH*ej!IIII0Cz555 0 0
1////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s7   CI!I8II	II	II #I c                 F   t          t          j        d          d           t          j        d          }t          t          j        |          d           t          t          j        |d          d           t          t          j        |dd          d           |                    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 }|                    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            d S # 1 swxY w Y   d S )Nr!   rH   r&   )
upperlimitF)r   r;   r%   rw   r$   r   r@   r   r    r"   r$   r&   rx   r#   ry   rz   r{         "@r~   r   )r   rS   tmaxrY   r   rW   rZ   r   r[   r\   r   r   )r]   r   rd   s      re   	test_tmaxzTestTrimmedStats.test_tmax   s   UZ]]A&&&IbMMUZ]]A&&&UZa000!444UZa5AAA1EEEIIfUZa5AAAAq6JJJUZ***OOO<<<UZ---q111IcNNv!   	JCJJ~'7888A///A&9992>>>*ej!HHHH*ej!IIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js   B0HHHc                    t          j        t          dd          }t          j        g d          }t          ||                    d          t          j        |j                  z  | j	                   t          t          j        t          dd	g
          t          j        t          d 
          | j	                   d S )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    Jq=AAA))Auyyay00275:3F3FF(,
	4 	4 	4 	4 	EJq"b:::!Jq666(,
	4 	4 	4 	4 	4 	4rt   N)__name__
__module____qualname__rY   finfor   	precisionrV   rf   rn   rs   r   r   r    rt   re   r2   r2   A   s        BHRZ  *E-< -< -<^' ' '@F F F0 0 02J J J,4 4 4 4 4rt   r2   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#e$j%        &                    d"g d#          d$             Z'd% Z(d& Z)d' Z*d( Z+d) Z,d*S )+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                 t    t          j        t          t                    }|d         }t          |d           d S Nr         ?)rS   pearsonrrU   r
   r]   r^   rs      re   test_pXXzTestCorrPearsonr.test_pXX   s2    N1QaDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   rU   BIGr
   r   s      re   
test_pXBIGzTestCorrPearsonr.test_pXBIG   s2    N1S!!aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   rU   LITTLEr
   r   s      re   test_pXLITTLEzTestCorrPearsonr.test_pXLITTLE   s2    N1V$$aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   rU   HUGEr
   r   s      re   test_pXHUGEzTestCorrPearsonr.test_pXHUGE   2    N1T""aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   rU   TINYr
   r   s      re   test_pXTINYzTestCorrPearsonr.test_pXTINY   r   rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   rU   ROUNDr
   r   s      re   test_pXROUNDzTestCorrPearsonr.test_pXROUND   s2    N1U##aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r   r   r
   r   s      re   test_pBIGBIGzTestCorrPearsonr.test_pBIGBIG   s2    N3s##aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pBIGLITTLEz TestCorrPearsonr.test_pBIGLITTLE  s2    N3v&&aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pBIGHUGEzTestCorrPearsonr.test_pBIGHUGE  2    N3t$$aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pBIGTINYzTestCorrPearsonr.test_pBIGTINY  r   rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pBIGROUNDzTestCorrPearsonr.test_pBIGROUND  s2    N3u%%aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r   r   r
   r   s      re   test_pLITTLELITTLEz#TestCorrPearsonr.test_pLITTLELITTLE  s2    N6&))aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pLITTLEHUGEz!TestCorrPearsonr.test_pLITTLEHUGE  2    N6$''aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pLITTLETINYz!TestCorrPearsonr.test_pLITTLETINY  r   rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pLITTLEROUNDz"TestCorrPearsonr.test_pLITTLEROUND$  s2    N6%((aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r   r   r
   r   s      re   test_pHUGEHUGEzTestCorrPearsonr.test_pHUGEHUGE)  2    N4%%aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pHUGETINYzTestCorrPearsonr.test_pHUGETINY.  r   rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pHUGEROUNDz TestCorrPearsonr.test_pHUGEROUND3  2    N4&&aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r   r   r
   r   s      re   test_pTINYTINYzTestCorrPearsonr.test_pTINYTINY8  r   rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r   r   r   r
   r   s      re   test_pTINYROUNDz TestCorrPearsonr.test_pTINYROUND=  r   rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r   r   r
   r   s      re   test_pROUNDROUNDz!TestCorrPearsonr.test_pROUNDROUNDB  s2    N5''aDAc"""""rt   c                     t          j        t          t                    }d}t          ||           t	          |j        |j                   d S Ncorrelationpvalue)rS   r   rU   r   r   r   	statisticr]   res
attributess      re   test_pearsonr_result_attributesz0TestCorrPearsonr.test_pearsonr_result_attributesG  sB    nQ"".
C,,,S_cm44444rt   c           
          t          d          }t          j        ||          \  }}t          |dd           t          |dt	          j        dt	          j        d          z                       d S )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_pos1M  sk    3KK.A&&43U++++ 	c"*S//0A(B(BCCCCCCrt   c           
          t          d          }t          j        ||           \  }}t          |dd           t          |dt	          j        dt	          j        d          z                       d S )Nr         r   r   r}   r   r   r   r   s       re   test_r_almost_exactly_neg1z+TestCorrPearsonr.test_r_almost_exactly_neg1V  sm    3KK.QB''44e,,,, 	c"*S//0A(B(BCCCCCCrt   c                     t          g d          }t          g d          }t          j        ||          \  }}t          |t	          j        d          dz             t          |d           d S )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_basic_  sm     ***))).A&&4Arwqzz!|,,,D#&&&&&rt   c                    d}t          t          j        |          5  t          j        g dg d          \  }}t	          |t
          j                   t	          |t
          j                   d d d            d S # 1 swxY w Y   d S )NAn input array is constantr   MbX?r   r   grh|?gv/?gsh|??)r   rS   ConstantInputWarningr   r   rY   rZ   )r]   r   r   ps       re   test_constant_inputz$TestCorrPearsonr.test_constant_inputh  s     +%4C@@@ 	$ 	$>"7"7"79N9N9NOODAqBF###BF###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   AA<<B B c                    dddt          j        d          z   g}ddddt          j        d          z  z   g}d}t          t          j        |          5  t          j        ||          \  }}d d d            d S # 1 swxY w Y   d S )Nr   r    r#   z/An input array is nearly constant; the computedr   )rY   r   r   rS   NearConstantInputWarningr   )r]   r   r^   r   r   r   s         re   test_near_constant_inputz)TestCorrPearsonr.test_near_constant_inputq  s    1rz!}}$%1qA&'?%8DDD 	( 	( >!Q''DAq	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   A;;A?A?c                     g d}g d}t          j        ||          \  }}t          |d           t          |d           d S )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{  sZ     LKKCCC~a""1 	-...-.....rt   c                     dt          j        g d          z  }dt          j        d          z  }t          j        ||          \  }}t          |d           t          |d           d S )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  sp     ///0001~a##1 	-.../00000rt   c                     t          j        g d          }t          j        g d          }t          j        ||          \  }}t	          |d           t	          |d           d S )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  so     H77788H999::~a##1 	,---,-----rt   c                     t          j        ddgddg          }|\  }}t          |d           t          |d           t          |                                d           d S )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  sh     naVaV,,1QQS,,..88888rt   c                 ~    t          j        ddgddg          \  }}t          |d           t          |d           d S )Nr   r   r    r"   rN   )rS   r   r   )r]   r   r   s      re   test_length_two_neg2z%TestCorrPearsonr.test_length_two_neg2  sG     ~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           |                                }	t	          |	||fd           d S )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  s     LLH^^^$$t+1+>>>(*<T*ANNNNt$7777''))T5M555555rt   c                     t          j        d          }| }t          j        ||d          }t          j        ||d          }t	          |j        d           t	          |j        dd           d S )	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  ss    IbMMB~a	BBBN1aV<<<	+Q///	(!%888888rt   c                     g d}g d}t          j        ||          }|\  }}t          |d           t          |dd           t          |                                d           d S )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  sw    IILLnQ"" 14   3T****S,,..88888rt   c                 X    g d}ddg}t          t          t          j        ||           d S )Nr&  r!   r"   r   r   rS   r   r]   r   r^   s      re   test_unequal_lengthsz%TestCorrPearsonr.test_unequal_lengths  s0    IIFj%.!Q77777rt   c                 T    dg}dg}t          t          t          j        ||           d S Nr   r   r+  r,  s      re   	test_len1zTestCorrPearsonr.test_len1  s,    CCj%.!Q77777rt   c                     g d}g d}d}t          j        t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )N)y             y              y             z+This function does not support complex datar   )pytestr   r   rS   r   )r]   r   r^   messages       re   test_complex_dataz"TestCorrPearsonr.test_complex_data  s    ?]:W555 	! 	!N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   A		AAN)-r   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  r2  markparametrizer   r$  r)  r-  r0  r4  r   rt   re   r   r      s        # # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
5 5 5D D DD D D' ' '$ $ $( ( (/ / /1 1 1. . .9 9 9   [CH H HI I6 6I I69 9 9
9 
9 
98 8 8
8 8 8
! ! ! ! !rt   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	                            dg d          d             ZdS )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           d S ) N8   N  0u  @  r   g؞Y?r!   r7   d   r     r"   g,Ԛ?r$   r%   g2c?r#   rH   gY
A?      g_?      gO^M?r   gօa?r    r   ggE?g$I$I?)rS   fisher_exactr
   )r]   rE  r   s      re   r   zTestFisherExact.test_basic  sk   )lUENUEN;<<Q?Ca8888lS!HtQi011!4CQ7777lQFQF+,,Q/C::::lQFRH-..q1C::::lQGb"X.//2C::::lQGb"X.//2C::::lRGb!W-..q1C::::lQFQF+,,Q/C;;;;lQFQF+,,Q/C%%%lQFQF+,,Q/C...lQ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 ]Z\  }}t          j        t          j        |                    }t           j                            |d	         |d	         dd           [d S )Nr?  r   r@  r"   )gAn&	?g}K
T?r$   r%   )g	7?g?r   rH   )g!@j)A?rA  rB  )gU!a?gKY?rC  rD  )g7X?g~ltP?)gFu|?rG  r   )r}   gQN^?r!   gaa?r}   r   gaa?r    rI   T)rC   verbose)rY   infrS   rE  asarraytestingr   )r]   tablisttableres_rr   s        re   test_precisezTestFisherExact.test_precise  sy    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 $ 	9 	9LE5$RZ%6%677CJ**3q658R37 + 9 9 9 9	9 	9rt   c                 2   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           d S )Nr#   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rS   rE  r   r]   r   r   s      re   test_gh4130zTestFisherExact.test_gh41301  s     WsCj! ##A 1222 !Wq#h ##A 5666 "Xe}% ##A 566666rt   c                 n    ddgddgg}t          j        |          }t          |d         dd           d S )NiiX iV iW r   r   gѧRr   rY  rZ  s      re   test_gh9231zTestFisherExact.test_gh9231G  sG     w'7!34 ##A//////rt   c                    g d}t          |g d          D ]7\  }}t          j        ddgd|gg          d         }t          ||d           8t          j        d	d
gddgg          d         }t          |dd           d S )N)g?=gNuP=gs=)K   L   M   i(E  i  i)  r   r!   r7   iPF  i8 r<  i_ g^K=?)ziprS   rE  r
   )r]   pvalsr  numr   s        re   test_large_numbersz"TestFisherExact.test_large_numbersN  s     100ULLL11 	: 	:ID#$uclT3K%@AA!DCTq99999 5%.5%.!ABB1ECQ777777rt   c                     t          t          t          j        t	          j        d                              dd                     d S )Nr#   r   r    )r   r   rS   rE  rY   r   rW   r]   s    re   test_raiseszTestFisherExact.test_raisesY  s@    j%"4ill**1a00	2 	2 	2 	2 	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 ]C}t          j        |          \  }}t          |d           t          |t          j                   Dd S )Nr   r"   rH   r   )rS   rE  r   rY   rZ   )r]   tablesrN  	oddsratior  s        re   test_row_or_col_zeroz$TestFisherExact.test_row_or_col_zero^  s    q6Ar7#r7QF#q6Ar7#q6B7#%  	, 	,E#077OIts###BF++++	, 	,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 ]x\  }}g }|                    t          j        |d          d                    |                    t          j        |d           d                    t	          ||dd!"           yd S )#Nr   r$   r%   rT  i,     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  )rb  appendrS   rE  r   )r]   rj  rc  rN  r  r   s         re   test_less_greaterz!TestFisherExact.test_less_greaterh  s    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DDDQGHHHJJu)%YGGGJKKKCAD99999		: 	:rt   c                 @    t          j        ddgddgg          \  }}d S )Nr   r   r&   i")rS   rE  )r]   oddsr   s      re   test_gh3014zTestFisherExact.test_gh3014  s)     )Aq6Ax=*ABBfffrt   r  r  r  r  c                     t          j        ddgddgg          }t          j        ||          }t	          |j        |j        f|           d S )Nr;  r<  r=  r>  r  )rY   r   rS   rE  r   r   r   )r]   r  rN  r   s       re   test_resultzTestFisherExact.test_result  sR    5%.5%.9:: K@@@cmSZ0#66666rt   N)r   r   r   r5  r   rP  r[  r]  r2  r6  slowre  rh  rl  rv  ry  r7  r|  r   rt   re   r9  r9    s         . . .69 9 907 7 7,0 0 0 [8 8 82 2 2
, , , :  :  :DC C C
 [],L,L,LMM7 7 NM7 7 7rt   r9  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$S )%TestCorrSpearmanrr   c                     t          j        dd          }t          t          j        |                                                     d S )N      @       @)rS   	spearmanrr   rY   isnanallrr   s     re   test_scalarzTestCorrSpearmanr.test_scalar  s9    OB##!!"""""rt   c                     t          t          t          j        g dddg           t          t          t          j        g dd           d S )Nr   r   r   r%   r&   )r   r   rS   r  rg  s    re   test_uneven_lengthsz%TestCorrSpearmanr.test_uneven_lengths  s@    j%/999q!fEEEj%/999a@@@@@rt   c                    t           j                            d           t           j                            dd          }t           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                   d S )N鄋 r!   r    r   r"   r"   r   r@   )rY   randomseedrandnrS   r  r   shapeTr   r   r   r,  s      re   test_uneven_2d_shapesz'TestCorrSpearmanr.test_uneven_2d_shapes  s    
	vIOOAq!!IOOAq!!q!$$.4>>>>qsACa0007=GGGGj%/1aa@@@@j%/13<<<<<rt   c                    t           j                            d           t           j                            ddd          }t	          t
          t          j        |           t	          t
          t          j        ||           t	          t
          t          j        |d d            t          t          j        ||d           t          j        |	                                |	                                d                     d S )Nr  r!   r    r   r@   r   )
rY   r  r  r  r   r   rS   r  r   flattenr]   r   s     re   test_ndim_too_highz$TestCorrSpearmanr.test_ndim_too_high  s    
	vIOOAq!$$j%/1555j%/1a888j%/1dDAAA14888		QYY[[qIII	K 	K 	K 	K 	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           d S )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    IcNNv!5?1a0026262BCCC5?1aFCCC%	' 	' 	'j%/1aGLLLLj%/1aHMMMMMMrt   c                 4   t           j                            d           t           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	
           d S )Nr"   rH   r#   r   r@   rz   r{   r   +=r   )	rY   r  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INN1b!!&!!!Q$Ia###?1888b?1%%by4333QQ???YryQQ///;;;d////BU++++++rt   c                 X   t           j                            d           dd}t           j                            |          t           j        d<   t           j        d<   t          j        dd          \  }}fdt                    D             }t          ||           d S )	Nr"   rH   r   r   )r    rN   r   	propagaterA   r|   c                 J    g | ]fd t                    D             S )c           	      l    g | ]0}t          j        |d d f         d d f                   j        1S N)rS   r  r   ).0ijr   s     re   
<listcomp>zJTestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>.<listcomp>  s@    NNN!QQQ$1aaa411;NNNrt   range)r  r  mr   s    @re   r  z?TestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>  sH     " " " ONNNNU1XXNNN " " "rt   )	rY   r  r  r  rZ   rS   r  r  r   )r]   ncorrr   r   r  r   s        @@re   test_nan_policy_bug_12411z+TestCorrSpearmanr.test_nan_policy_bug_12411  s    
	qIOOAq!!&$6%qq[IIIf" " " " "a" " "c"""""rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r  rU   r
   r   s      re   test_sXXzTestCorrSpearmanr.test_sXX  s2    OAa  aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  rU   r   r
   r   s      re   
test_sXBIGzTestCorrSpearmanr.test_sXBIG  s2    OAc""aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  rU   r   r
   r   s      re   test_sXLITTLEzTestCorrSpearmanr.test_sXLITTLE  s2    OAf%%aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  rU   r   r
   r   s      re   test_sXHUGEzTestCorrSpearmanr.test_sXHUGE  2    OAd##aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  rU   r   r
   r   s      re   test_sXTINYzTestCorrSpearmanr.test_sXTINY  r  rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  rU   r   r
   r   s      re   test_sXROUNDzTestCorrSpearmanr.test_sXROUND  s2    OAe$$aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r  r   r
   r   s      re   test_sBIGBIGzTestCorrSpearmanr.test_sBIGBIG  s2    OC$$aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sBIGLITTLEz!TestCorrSpearmanr.test_sBIGLITTLE  s2    OC''aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sBIGHUGEzTestCorrSpearmanr.test_sBIGHUGE  2    OC%%aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sBIGTINYzTestCorrSpearmanr.test_sBIGTINY  r  rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sBIGROUNDz TestCorrSpearmanr.test_sBIGROUND  s2    OC&&aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r  r   r
   r   s      re   test_sLITTLELITTLEz$TestCorrSpearmanr.test_sLITTLELITTLE  s2    OF6**aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sLITTLEHUGEz"TestCorrSpearmanr.test_sLITTLEHUGE  2    OF4((aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sLITTLETINYz"TestCorrSpearmanr.test_sLITTLETINY  r  rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sLITTLEROUNDz#TestCorrSpearmanr.test_sLITTLEROUND$  s2    OF5))aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r  r   r
   r   s      re   test_sHUGEHUGEz TestCorrSpearmanr.test_sHUGEHUGE)  2    OD&&aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sHUGETINYz TestCorrSpearmanr.test_sHUGETINY.  r  rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sHUGEROUNDz!TestCorrSpearmanr.test_sHUGEROUND3  2    OD''aDAc"""""rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r  r   r
   r   s      re   test_sTINYTINYz TestCorrSpearmanr.test_sTINYTINY8  r  rt   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rS   r  r   r   r
   r   s      re   test_sTINYROUNDz!TestCorrSpearmanr.test_sTINYROUND=  r  rt   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rS   r  r   r
   r   s      re   test_sROUNDROUNDz"TestCorrSpearmanr.test_sROUNDROUNDB  s2    OE%((aDAc"""""rt   c                     t          j        t          t                    }d}t          ||           t	          |j        |j                   d S r   )rS   r  rU   r   r   r   r   r   s      re    test_spearmanr_result_attributesz2TestCorrSpearmanr.test_spearmanr_result_attributesG  sB    oa##.
C,,,S_cm44444rt   c                     g d}g d}t          j        ||          }t          j        t          j        ||g          j                  }t          ||           d S )Nr   r   r    r!   r"   r#   )r   r   r    r!   r#   r"   )rS   r  rY   rK  r  r   r]   x1x2res1res2s        re   test_1d_vs_2dzTestCorrSpearmanr.test_1d_vs_2dM  s_    r2&&rz2r(3356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          ||           }d S )	N)r  rz   r   r    r!   r"   r#   r   r{   )rY   rZ   rS   r  rK  r  r   )r]   r|   r  r  r  r  s         re   test_1d_vs_2d_nansz$TestCorrSpearmanr.test_1d_vs_2d_nansT  s    / 	( 	(JRVQ1a(BQ1a(B?2rjAAAD?2:r2h#7#7#9jQQ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        |           d S )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   rK  r  rS   r  zerosfloatr   r   r   )r]   r  r  x3r   actualexpected_correxpected_pvalues           re   
test_3colszTestCorrSpearmanr.test_3cols]  s    Yq\\SX((())JB|$$&##"5"5"5"6"6"6">">">"@ A A (6777"/1Q3"/!Q(-8887777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           d S )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_9103m  s$   HrvsCc3<BFCc3<999; < <<= 	
 x"&"&"&1&"&"&1&"&"-/ 0 0 	kBBBL	 	 	 oaF333=QCF1Is1vay9:	G 	G 	G 	G 	G 	Grt   c                 2   d}t           j                            d           t           j                            |          }t           j                            |          dk    }|dk    }t          j        |          }t          j        ||d          j        }t           j        ||<   t          j        ||d          j        }|	                    t           j
                  }t          j        ||d          j        }g d}	t          |||g|	           d S )Nr?  iH rq  r(   rz   r{   )gonj?)Wn%?r  )rY   r  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INN1INN1# VHQKKq!777A v!q!777A HHRXq!777A:::tT*H55555rt   N)&r   r   r   r5  r  r  r  r  r  r  r  r  r  r  r  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 A A	= 	= 	=K K KN N N, , ,
# 
# 
## # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
5 5 5$ $ $( ( (8 8 8 G G G6 6 6 6 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                            dd          d             ZdS )TestCorrSpearmanr2z-Some further tests of the spearmanr function.c                     g d}g d}d}t          j        ||          }t          |d         |d                    t          |d         |d                    d S )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  sb     ____>ob"%%CFHQK000CFHQK00000rt   c                 x    t          t          j        g g           t          j        t          j        f           d S r  )r   rS   r  rY   rZ   rg  s    re   test_empty_arraysz$TestCorrSpearmanr2.test_empty_arrays  s-    U_R,,rvrv.>?????rt   c                    t           j                            d           t          j        t           j                            ddd          t           j                            ddd          g          }ddgddgg}t          j        t           j                            |          |          }d}t          j	        |d         |d                   }t          |d         |d                    t          |d         |d                    d S )	Nz  r     locscaler   r   rs  )gCzYW?ge*=r   )rY   r  r  r   normaldotlinalgcholeskyrS   r  r
   )r]   r   r  r
  r   s        re   test_normal_drawsz$TestCorrSpearmanr2.test_normal_draws  s    
	tHbi&&1AC&@@I$$!#$>>@ A Ac
c
F29%%d++Q//?oadAaD))CFHQK000CFHQK00000rt   c                 `    t          t          j        g dg d          d         d           d S )Nr   r   r   r   r   )r
   rS   r  rg  s    re   test_corr_1zTestCorrSpearmanr2.test_corr_1  s1    EOIIIyyyAA!DcJJJJ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           d S )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    IcNNv!5?1a0026262BCCC1@@@ 	" 	" 	"j%/1aGLLLLj%/1aHMMMMMMrt   c                     t          j        d          }t          j        d          }t          t          t          j        ||           d S )Nrx         4@)rY   r   r   r   rS   r  r,  s      re   r-  z'TestCorrSpearmanr2.test_unequal_lengths  s8    IcNNIcNNj%/1a88888rt   c                     g d}dddt           j        g}t          j        ||d          }t          j        |d d         |d d         d          }t	          ||           d S )Nr  r%   r$   r#   rz   r{   r    )rY   rZ   rS   r  r   r  s        re   test_omit_paired_valuez)TestCorrSpearmanr2.test_omit_paired_value  sm    \\Arvr2&999r"1"vr"1"v&AAAT4     rt   c                    t          t          d                    }t          t          d                    }|d         |d         c|d<   |d<   |d         |d         c|d<   |d<   |d         |d         c|d<   |d<   |                    t          j                   |                    d           t          t          j        ||d	
          d         d           d S )N  r&   r   i  rH   i  i  r   rz   r{   gV-?)listr  ru  rY   rZ   r   rS   r  r,  s      re   #test_gh_issue_6061_windows_overflowz6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflow  s    ttqT1Q4
!ad#""qvD'1S6#$ 	
	EOAqVDDDQGOOOOOrt   c                 R   d}t          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            d S # 1 swxY w Y   d S )Nr   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  sD   /%4HEEE 		$ 		$?999iii88DAqBF###BF###?999iii88DAqBF###BF###?999iii88DAqBF###BF###		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$s   C1DD #D c                     g d}g d}g d}g d}t          j        ||          }t          j        ||          }t          ||           d S )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  sh          !!!!!! _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	          ||           d S )
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  sy     ^^^^CBF#CBF# ob"%%ob"88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          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            d S # 1 swxY w Y   d S )Nr   r   r   r   r  r   r   r   r@   rY   r   r   rS   r   r  r   rZ   )r]   z1z2z3r1  r   r   s          re   test_ties_axis_1z#TestCorrSpearmanr2.test_ties_axis_1  s   X|||\\\233X|||\\\233X|||\\\233/%4HEEE 		$ 		$?2A...DAqBF###BF###?2A...DAqBF###BF###?2A...DAqBF###BF###		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$s   ,C(E!!E%(E%c                 b   t          j        g d          }t          j        g d          }d}t          t          j        |          5  t          j        ||          \  }}t          |t           j                   t          |t           j                   d d d            d S # 1 swxY w Y   d S )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^   r1  r   r   s         re   test_gh_11111z TestCorrSpearmanr2.test_gh_11111  s    HGGGHHH # # # $ $ 0%4HEEE 	$ 	$?1a((DAqBF###BF###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   
AB$$B(+B(c                     t          j        g d          }t          j        g d          }t          t          t          j        ||d           d S )N)
r         @r  r   r   r   r   r   r   r   rF  r   r@   )rY   r   r   r   rS   r  r,  s      re   test_index_errorz#TestCorrSpearmanr2.test_index_error  s[    HGGGHHH # # # $ $ 	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            d S # 1 swxY w Y   d S )Nr  r  r  r  r  r   r   r   r  alternative must be 'less'...r   	ekki-ekki)rS   r  r
   r2  r   r   r  s        re   test_alternativez#TestCorrSpearmanr2.test_alternative   sK    ____ ? ob"&999CFHQK000CFA!q$9::: ob")<<<CFHQK000CFHQK!O444]:-LMMM 	= 	=OB<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   C22C69C6r  rz  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            n# 1 swxY w Y   d	}t          j        t          |          5  t          j        ||d
|           d d d            d S # 1 swxY w Y   d S )Nr  r  rz   r|   r  r  The input contains nan valuesr   r~   nan_policy must be one of...rM  )	rY   rZ   r	   rS   r  r   r2  r   r   )	r]   r  r  r  x1nanx2nan
res_actualres_expectedr3  s	            re   test_alternative_nan_policyz.TestCorrSpearmanr2.test_alternative_nan_policy7  s    ____bfXbfX 	5?5%882626:JKKK _UEf1<> > >
r2;GGG
L111 2]:W555 	5 	5OE5W(35 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5
 1]:W555 	5 	5OE5[(35 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s$   >C##C'*C'D11D58D5N)r   r   r   r5  r  r  r   r#  r%  r-  r)  r-  r2  r9  r=  rD  rG  rJ  rN  r2  r6  r7  rW  r   rt   re   r  r    s:       771 1 1@ @ @
1 
1 
1K K KN N N9 9 9
! ! !P P P$ $ $$ $ $& & &$ $ $ 	$ 	$ 	$A A A= = =. [],LMM5 5 NM5 5 5rt   r  c                  \   d} g d}g d}d}| D ]O}t          j        ||          }t          |d         |d                    t          |d         |d                    Pg d}g d}d}| D ]O}t          j        ||          }t          |d         |d                    t          |d         |d                    Pg d	}g d
}d}| D ]O}t          j        ||          }t          |d         |d                    t          |d         |d                    Pg d}g d}d}| D ]O}t          j        ||          }t          |d         |d                    t          |d         |d                    Pt          j        d          }t          j        d          }d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    R|d         }|d         |d<   ||d<   d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    R|d         }|d         |d<   ||d<   d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    Rt          j        d          }t          j        d          d d d         }d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    R|d         }|d         |d<   ||d<   d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    R|d         }|d         |d<   ||d<   d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    Rt          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 ]C}t          j        |||          }t          ||	           t          |j
        |j                   D| 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                            d+           t          j        t          j                            ddd,-          t          j                            ddd,-          g          }d.d/gd/d.gg}
t          j        t          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                            |dB          }t          j        d@t*          A          }t          j        |dCd          |d dC         f          }t3          t          j        t          j        ||          d                              d S )DN)r   c)r"   r   r   r    r#   r!   r$   r%   )r"   r   r#   r    r   r%   r$   r!   rH  r   r   )	r   r"   r   r   r    r#   r!   r$   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   rZ  )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?rY  exactmethodbananarmsrJ   r   r   rJ   r   r   r!   r$   r   r   )g}+޿g`=i?r   r/  r0  r  r  r  r   rs  )g\zf?g^n)=r"  g#q?rx   r&   rz   r{   )r   g/>r  r  
asymptotic)r|   r`  )r   g&?r~   r   r'  r+  r>   i  r@  )rS   
kendalltaur
   rY   r   r   r   r   r   r   r   r   rZ   r  r  r  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_kendalltaurp  _  s
    H 	!  A   A H 1 1q!$$CFHQK000CFHQK0000 	$##A###A H 1 1q!$$CFHQK000CFHQK0000 	AA /H 1 1q!$$CFHQK000CFHQK0000 	AA %H 1 1q!$$CFHQK000CFHQK0000 		"A
	"A )H 1 1q!T222CFHQK000CFHQK0000 	
!AQ4AaDAaD 8H 1 1q!T222CFHQK000CFHQK0000 	
!AQ4AaDAaD 8H 1 1q!T222CFHQK000CFHQK0000 		"A
	"dddA *H 1 1q!T222CFHQK000CFHQK0000 	
!AQ4AaDAaD 9H 1 1q!T222CFHQK000CFHQK0000 	
!AQ4AaDAaD 9H 1 1q!T222CFHQK000CFHQK0000
 	,,,--A---..AH(As;;;A>IIIH(As;;;A>III Q4AaD*e.1WEEEE *e.1XFFFF *e.1eDDDD
 
		B	B:H

2r
"
"CA,,,A,,, +J 5 5r2t444C,,,S_cm4444  ' 'U%iiiDIIIfbf%	' 	' 	'U%iiiDIIIfbf%	' 	' 	'U%iiiDIIIfbf%	' 	' 	' 	' !"b))BFBF+;<<< INN4
")""q"<<	  Qac ::< 	= 	=A#J#JD
ry!!$''++A<H

1Q41
&
&CA,,,A,,, (IIIsKKKAN  (IIIsKKKAN"$ $ $ 		#A6AaDu'1--/?@@@E$Qf==='e5 5 5 5E$Qf\RRR1? ? ? ?*e.1IIII*e.1JJJJ 		#A
	#A*e.1555 #B++LC!!!#QC!--LC!!! 		$e$$$A
Q%%A
	$e$$$A
$%%!ETE(+,,ABK(1--a01122222rt   c                     t           j                            d           t          dd          D ]} g }t          |           D ]}||g|z  z  }t	          |          }t           j                            |           t           j                            |           t          j        ||          }t          j        ||          }t          |d         |d                    t          |d         |d                    d S )N*   r   rH   r   r   )
rY   r  r  r  r,  shufflemstats_basicrg  rS   r
   )sr   r  r   r
  r  s         re   test_kendalltau_vs_mstats_basicrv  9  s    INN21R[[ 4 4q 	 	A!QJAAGG
	!
	!*1a00!!Q''F1Ix{333F1Ix{33334 4rt   c                      g d} t           j        dddg}t          j        | |d          }t          j        | dd          |dd                    }t	          |j        |j        d           d S )	Nr4  333333@333333@rz   r{   r   r   r   )rY   rZ   rS   rg  r   r   )r   r^   r1r2s       re   test_kendalltau_nan_2nd_argr|  I  su    A	c3A		!Q6	2	2	2B		!ABB%122	'	'BBL",U;;;;;;rt   c                      t          j        t          d          5  t          j        g g d           d d d            d S # 1 swxY w Y   d S )Nz/'kendalltau' keyword argument 'initial_lexsort'r   T)initial_lexsort)r2  warnsDeprecationWarningrS   rg  r   rt   re   #test_kendalltau_dep_initial_lexsortr  S  s    	?
 
 
 7 7 	R6666	7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   AAAc            	          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                            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                            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                            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                            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                            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                            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                            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                            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                            de'          d             Z( e eedgdz                       e eedgdz                      z   Z)ej                            de)          d             Z*ej                            dd          ej                            dd          d                         Z+d S )!TestKendallTauAlternativec                    g d}g d}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        ||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            d S # 1 swxY w Y   d S )Nr  r  r  r  r   r  r   r   r  rL  r   rM  )rS   rg  r   r   reverser2  r   r   r  s        re   &test_kendalltau_alternative_asymptoticz@TestKendallTauAlternative.test_kendalltau_alternative_asymptotic\  sI    ____ #BDDD{Q r26:::SVXa[)))AXa[1_ 5666 r29===SVXa[)))Aa000 	

 #BDDD{Q r29===SVXa[)))AXa[1_ 5666 r26:::SVXa[)))Aa000]:-LMMM 	> 	>R====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   G55G9<G9)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	          ||           d S )NrN   r^  r`  r  )rY   rK  rS   rg  r   )	r]   r   r^   r  revstat_expected
p_expectedr   rV  s	            re   
exact_testz$TestKendallTauAlternative.exact_test  s\     	 AARMq!GMMM$j0\*****rt   Fr    Tzalternative, p_expected, revc                 ^    dgdg}}t           j        }|                     ||||||           d S r/  )rY   rZ   r  r]   r  r  r  r   r^   r  s          re   test_against_R_n1z+TestKendallTauAlternative.test_against_R_n1  s8    sQC11k3zJJJJJrt   c                 N    ddgddg}}d}|                      ||||||           d S )Nr   r   r    r!   g?r  r  s          re   test_against_R_n2z+TestKendallTauAlternative.test_against_R_n2  s:    1v1v1*1k3zJJJJJrt   c                 N    g dg d}}d}|                      ||||||           d S )Nr&  r   r  r  s          re   test_against_R_c0z+TestKendallTauAlternative.test_against_R_c0  s:    yy)))11k3zJJJJJrt   c                 N    g dg d}}d}|                      ||||||           d S )Nr  )r   r   r!   r    gVUUUUU?r  r  s          re   test_against_R_c1z+TestKendallTauAlternative.test_against_R_c1  s:    ||\\\1*1k3zJJJJJrt   c                 N    g dg d}}d}|                      ||||||           d S )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JJJJJrt   c                 N    g dg d}}d}|                      ||||||           d S )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?    ''')A)A)A11k3zJJJJJrt   c                 N    g d}g d}d}|                      ||||||           d S )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  sB     CBB999*1k3zJJJJJrt   c                     t           j                            d           t           j                            d          }t           j                            d          }d}|                     ||||||           d S )Nr   r?  gUm*,rY   r  r  r  r  r  s          re   test_against_R_lt_171bz0TestKendallTauAlternative.test_against_R_lt_171b  sc    
	qINN3INN3,1k3zJJJJJrt   c                     t           j                            d           t           j                            d          }t           j                            d          }d}|                     ||||||           d S )Nr      gH4?r  r  s          re   test_against_R_lt_171cz0TestKendallTauAlternative.test_against_R_lt_171c  sc    
	qINN3INN3*1k3zJJJJJrt   zalternative, revc                    t           j                            d           t           j                            d          }t           j                            d          }t	          j        ||d|          }t	          j        ||d|          }t          |d         |d                    t          |d         |d         d           d S )	Nr   i  r^  r  rf  r   MbP?r  )rY   r  r  r  rS   rg  r   r   )r]   r  r  r   r^   res0r  s          re   test_gt_171z%TestKendallTauAlternative.test_gt_171  s    
	qINN3INN31W,79 9 91\,79 9 9T!Wd1g&&&Qat444444rt   r`  )r^  rf  r  rz  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            n# 1 swxY w Y   d	}	t          j        t          |	          5  t          j        ||d
||           d d d            d S # 1 swxY w Y   d S )Nr  r"   r#   r$   r%   r&   r  rz   )r|   r`  r  rQ  r   r~   rR  rM  )rY   rZ   rS   rg  r   r2  r   r   )
r]   r`  r  r  r  rS  rT  rU  rV  r3  s
             re   r  z)TestKendallTauAlternative.test_nan_policy  s5    ____bfXbfX %eU-3N N N
'
L111 %eUv-3N N N
'Bv4?A A A
L111 2]:W555 	E 	EUEg$*E E E E	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E
 1]:W555 	E 	EUEk$*E E E E	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es$   C--C14C1D<<E 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  r,  rb  reversed	case_R_n1r2  r6  r7  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FBFBF#D;;D000D>>>D<<<===DDDJCCCKGGGK+ + + cc,ugai88994L((4..4&(CCDDEI [;YGGK K HGK
 cc,ugai88994L((4..4&(CCDDEI [;YGGK K HGK
 cc,ugai88994L((4..4&(CCDDEI [;YGGK K HGK
 cc,ugai88994L((4..4&(CCDDEI [;YGGK K HGK
 d33|-=wqyIIJJSSxx8H/I/I"&+ + , ,,N [;^LLK K MLK
 T##l,=wqyIIJJtCChh7H.I.I!%q* * + ++M [;]KKK K LKK
 T##lJ	BBCCtCChhz.B.BTF1HMMNNOM [;]KKK K LKK d33|[5'!)DDEESSxx/D/D"&+ + , ,,N [;^LLK K MLK d33|[5'!)DDEESSxx/D/D"&+ + , ,,N [;^LLK K MLK 4L5'!)44554L4&(33445K [/==	5 	5 >=	5 [X'>??[],LMME E NM @?E E 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&           d S )'Nrc  rd  gs$F)additivegROoc                     dS Nr   r   r   s    re   <lambda>z"test_weightedtau.<locals>.<lambda>;  s    Q rt   )weigherre  r   )rankgڿgn)r  r  g @ڿg[đ(gIکnTc                     dS r  r   r  s    re   r  z"test_weightedtau.<locals>.<lambda>V       rt   )r  r  c                     dS r  r   r  s    re   r  z"test_weightedtau.<locals>.<lambda>Y  r  rt   r>   r   r   r   r   r   r!   r$   rJ   r   )      (@r  r   r  r  r   r  rI  r  r  )r  r  r   r  r   )r   r  rI  r   r   gt34+)rS   weightedtaur
   r   rY   rZ   r   r   r   rK  r   int16r   r   )r   r^   rn  ro  r   r   s         re   test_weightedtaur  1  s   AA$Q**LC1222!!!$QE:::LC1222!!!$Q;;???LC1222!!! 
Aq
!
!C*JZ(((#-000 $Q555LC0111!!!$Q555LC0111!!!$QuEEELC1222!!!$QuEEELC1222!!!$Q666LC1222!!!$QkkJJJLC1222!!!$QkkJJJLC1222!!!$RZ%D%D%DaHHLC1222$RZ%B%B%BAFFLC1222$RZ%D%D%DbjQRZ\ZdFeFeFeffLC1222$R,,LC!!!$aS1#..LC!!!*e/!QCCC*e/!Q!Q!EEEA	
Aq!RVA$Q**LC1222	QAA$Q**LC1222###A	c3RV$A$Q**LC1222	sBFD#&A$Q**LC1222###A!!!A$Q**LC0111	sBFD"&)A$Q**LC0111	c2626*A$Q**LC011111rt   c                      t          j        dgdg           t          j        dgdg           t          j        t          j        gdg           d S )Nr   r   4   )rS   r  rY   rZ   r   rt   re   test_segfault_issue_9710r    sQ     
qcC5!!!	qcC5!!!	rvh%%%%%rt   c                  :   d} t          j        | dz                                 t                    }t          j        | dz                                 t                    }t           j        |d<   t          j        ||dd          \  }}t          |d           d S )N   r   rN   r^  rz   )r`  r|   r}   )rY   r   r  r  rZ   rS   rg  r   )r  r   r^   _r  s        re   test_kendall_tau_larger    s    A
	!a%&&A
	!a%&&AFAbEq!GGGGGAtsrt   c            
         d } d }t           j                            d           t          dd          D ]}g }t          |          D ]}||g|z  z  }t	          |          }t           j                            |           t           j                            |           t          j        t          |          t           j                  }t          d          D ]b}dD ]>} | |||||          }	t          j
        |||||          j        }
t          |	|
           ?t           j                            |           cd S )	Nc                 D   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$| |
         | |         k    r||
         ||         k    r||z  }| |
         | |         k     r||
         ||         k    s$| |
         | |         k    r||
         ||         k     r||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  s   $%%%d%T%AeCFFmmU3q66]];; 	 	FQ7: 9Q  7747#3#333WT!W%%Q(8(88 1HCtqt||Qtqt||Qtad{{qtad{{adQqTkkadQqTkk	1!1!!qt!qt	trwsQw///"'#'2B2B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   rr  r    rH   r>   r   rL   )rY   r  r  r  r,  rs  r   r  intprS   r  r   r
   )r  r  ru  r   r  r   r  r  r  r
  r  s              re   test_weightedtau_vs_quadraticr    s_   C C C    INN21R[[ $ $q 	 	A!QJAAGG
	!
	!yQrw///q 	$ 	$A$ 6 63q!T7C88*1awDDN#Hf5555Id####	$$ $rt   c                       e Zd Zd Zd ZdS )TestFindRepeatsc                     g d}t          j        |          \  }}t          |g d           t          |g d           d S )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  sO    ---&q))	T3---4.....rt   c                     g dg fD ]9}t          j        |          \  }}t          |g            t          |g            :d S )N)rH   rB  2      (   r  )r]   r   repeatedcountss       re   test_empty_resultz!TestFindRepeats.test_empty_result  s^    &&&+ 	+ 	+A$1!44Hfx,,,vr****	+ 	+rt   N)r   r   r   r   r  r   rt   re   r  r    s2        / / /+ + + + +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dS )TestRegressionc                     t          j        t          t                    }t	          |j        d           t	          |j        d           t	          |j        d           t	          |j        d           d S )Nir   r}   )	rS   
linregressrU   r   r   	interceptrvaluestderrintercept_stderrr]   r  s     re   test_linregressBIGXz"TestRegression.test_linregressBIGX  sf    !!S))F,h777FM3/// 	FM3///F3S99999rt   c                     t          j        t          t                    }t          |j        d           t          |j        d           t          |j        d           t          |j        d           d S )Nr}   r   )rS   r  rU   r   r  r  r  r   r  s     re   test_regressXXzTestRegression.test_regressXX  sf    
 !!Q''F,c222FM3///FM3///F3S99999rt   c                     t          j        t          t                    }t	          |j        d           t	          |j        d           d S )Nr}   )rS   r  rU   ZEROr   r  r  r  s     re   test_regressZEROXz TestRegression.test_regressZEROX  sA    
 !!T**F,c222FM3/////rt   c                 p   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           d S )Nr   r?  皙?rH   rB  穷4_Qc?)rY   linspacesinrS   r  _stats_mstats_commonLinregressResultr   
isinstancer   r  )r]   r   r^   r  lrs        re   test_regress_simplez"TestRegression.test_regress_simple  s    K3$$"+ac***R/	RVBK2s++,,,!!Q'''8
62&&'''FM+@AAAA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            n# 1 swxY w Y   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n J d S )Nr   r?  r	  rH   rB  rL  r   rM  r  r  r  r   r   r  )rY   r  r  r2  r   r   rS   r  r   r   r  )r]   r   r^   r  r  r	  s         re   test_regress_alternativez'TestRegression.test_regress_alternative  s   K3$$"+ac***R/	RVBK2s++,,,]:-LMMM 	< 	<Q{;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 1+>>> 1&999Q$+/%:;;; 1)<<<T[1_555{dk8888T[88888888s   9BB!$B!c                 d   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
           d S )N)
                              )
r=   Q   8   [   /   9   r`  H   >   rX  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_R!  s     ?>>444q!===	?333'8999
BGM$:$:;;;
$5666
O444,o>>>>>rt   c                 h   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           d S )Nr   r?  r	  rH   rB  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_rows4  s     K3$$"+ac***R/	RVBK2s++,,,y!Q  !$''FM+@AAAF35JKKKK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           d S )	Nr   r?  r	  rH   rB  r   r
  r*  )
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    K3$$"+ac***R/	RVBK2s++,,,)R^Aq112>!Q3G3GHII!'**FM+@AAAF35JKKKKKrt   c                 j    t          t          t          j        t	          j        d                     d S )Nr  )r   r   rS   r  rY   onesrg  s    re   test_regress_shape_errorz'TestRegression.test_regress_shape_errorJ  s'     	j%"2BGFOODDDD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           d S )NrI   r"   rC  r   r   rN   c                 &    t          | |d          S )NrF   rB   )r   )r   r^   s     re   r  z0TestRegression.test_linregress.<locals>.<lambda>\  s    !4Q2!F!F!F rt   r   r6   gePUn?g.bt>gڽE?gʺL7?)
rY   r   rS   r  r&  r  r  r   r  r   )r]   r   r^   r  	assert_aes        re   test_linregresszTestRegression.test_linregressO  s    IbMMIa	A+!	A+!!!Q'' GF		&,$$$	&"C(((	&-!1222	&-111	&-!566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	                              d S )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_cord  s     1K1q5!$$KAq!$$!!Q'' 	#$$$FM2... 	BHV]+++,,,BHV45556666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 d S )Nr   r?  r	  rH   rB  )r&  r  r  r   r  r   )rY   r  r  rS   r  r  r  r   r  r   dir)r]   r   r^   r  r  r   s         re   !test_linregress_result_attributesz0TestRegression.test_linregress_result_attributesv  s    K3$$"+ac***R/	RVBK2s++,,,!!Q'' '8
62&&''' J
FJ///!S[[000000rt   c                     t          j        d          }t          j        dd          }t          j        ||          }t	          |j        d           t	          |j        d           t	          |j        d           d S )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  sq    IaLLIaOO!!Q'' 	FM3/// 	FM3///F3S99999rt   c                     t          j        d          }t          j        d          }t          j        ||          }t          |j        d           t          |j        d           t          |j        d           d S )Nr   r   r}   )	rY   r   r4  rS   r  r   r   r  r   rB  s       re   'test_regress_two_inputs_horizontal_linez6TestRegression.test_regress_two_inputs_horizontal_line  so    IaLLGAJJ!!Q'' 	FM3/// 	FM3///F3S99999rt   c                 B   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	           d S )
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^@rs  rs  gffffff@g1u@g@g     8@g     X@g333333&@g33333]@gfffffl@g@fffff|@r(   )$rp  g,u@gfffff]@     @r  rJ  g     @     4@g|@33333W@gy@rs  rp  gP@gfffff@4u@rK  g%@gm@gl@g     0@gfffffƋ@gfffff]@rs  rI  gl@rO  rL  rM  rN  gffffff$@gffffff]@g̜l@g33333@g33333|@r	  g?g!пr   gpX?r}   gh-h*<?gg?)	rS   r  r   r&  r  r  r   r  r   rB  s       re   test_nist_norriszTestRegression.test_nist_norris  s    4 4 4
4 4 4
 !!Q''FL*:;;;F,.@AAAFM1,.?@@@FM3///FM+;<<<F35EFFFF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                    d S )Nr   r?  r	  rH   rB  r   )	rY   r  r  rS   r  polyfitr   r&  r  )r]   r   r^   r  polys        re   test_compare_to_polyfitz&TestRegression.test_compare_to_polyfit  s    K3$$"+ac***R/	RVBK2s++,,,!!Q''z!Q"" 	FL$q'222F,d1g66666rt   c                 H    t          t          t          j        g g            d S r  )r   r   rS   r  rg  s    re   test_empty_inputzTestRegression.test_empty_input  s    j%"2B;;;;;rt   c                    t          j        d          }t           j        |d<   t          j        d          5  t	          j        ||          }d d d            n# 1 swxY w Y   t          j        j        }t          t          ||                     t          |t           j        fdz             t          |j        t           j                   d S )Nrx   r&   ignoreinvalidr"   )rY   r   rZ   errstaterS   r  r  r  r   r  r	   r   r   )r]   r   r  r  s       re   test_nan_inputzTestRegression.test_nan_input  s    IcNNv![*** 	, 	,%a++F	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, '8
62&&'''6BF9Q;///V,bf55555s   AA"Ac                     t          j        d          }t           j                            d          }d}t          t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )NrH   z$Cannot calculate a linear regressionr   )rY   r  r  r   r   rS   r  )r]   r   r^   r   s       re   test_identical_xzTestRegression.test_identical_x  s    HRLLIR  4:S111 	# 	#Q"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   A//A36A3N)r   r   r   r  r  r  r  r  r(  r-  r2  r5  r:  r=  r@  rC  rE  rP  rT  rV  r\  r^  r   rt   re   r  r    sC       : : :
: 
: 
:*0 0 0	B 	B 	B9 9 9*? ? ?&
L 
L 
LL L LE E E
@ @ @*7 7 7$1 1 1 : : :: : :G G G(
7 
7 
7< < <6 6 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            n# 1 swxY w Y   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           d S )Nr   r   r   r(   zHmethod must be either 'joint' or 'separate'.'joint_separate' is invalid.r   joint_separater_  jointr}   )r   r   r    r!   rH   rJ      )r&   rA     rB  -   7   N   gQ?separater!   r  gQ@r   rB   gGz@r  )rS   theilslopesr   r2  r   r   )r&  r  lowerupperr   r   r^   s          re   test_theilslopesrl    s#   %*%6www%?%?"E9eUs###	3'''*C	z	-	-	- > >))),<====> > > > > > > > > > > > > > > &+%6yyy>E&G &G &G"E9eUs###	3''' 	!  A###A%*%6q!T>H&J &J &J"E9eUq!!!	3'''tQ////tQ////%*%6q!T>E&G &G &G"E9eUq!!!	3'''tQ////tQ//////s   A>>BBc                  <   g d} t          j        | d          \  }}}}t          |t          j        g d                     t          j        | dd          \  }}}}t          |dk               d}t          j        | dd          }t          ||           d S )	Nr   r!   r   r   r    r   r!   numbins)r   r  r6   r  )r)   r"   )rp  defaultreallimitsr    )cumcountrv   binsizeextrapoints)rS   cumfreqr   rY   r   r   r   )r   cumfreqslowlimrs  rt  r   r   s          re   test_cumfreqrx    s    A-2]1a-H-H-H*Hfg{h1A1A1A(B(BCCC-2]1aHP.R .R .R*Hfg{K1 FJ
-1
A
A
ACZ(((((rt   c                  P   t          j        g d          } t          j        | d          \  }}}}t	          |t          g d                     d}t          j        | d          }t          ||           t          j        g dd          \  }}}}t	          ||           d S )Nrn  r!   ro  )r(   K}\UU?rz  rz  )	frequencyrv   rs  rt  )rY   r   rS   relfreqr   r   )r   relfreqsrw  rs  rt  r   r   	relfreqs2s           re   test_relfreqr    s    
###$$A-2]1a-H-H-H*Hfg{h#$M$M$MNNP P P GJ
-1
%
%
%CZ((( /4m<N<N<NDE/G /G /G+Ivwh	22222rt   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestScoreatpercentilec                 <    g d| _         g d| _        g d| _        d S )N)r    r!   r"   rH   rO   r#   )r    r7  r%   r$   r!   r   r   )r   r!   r"   rH   rO   r  r  rI  )a1a2a3rg  s    re   setup_methodz"TestScoreatpercentile.setup_method  s-    ***,,,111rt   c                     t          d          dz  }t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           d S )	Nr%   r(   r   r}   r?  r+   r        ?)r   r   rS   scoreatpercentiler  s     re   r   z TestScoreatpercentile.test_basic  sn    1IIOU,Q22B777U,Q44c:::U,Q33T:::::rt   c           	      $   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           d S )NrH   r  r,   r   r$   r?  r   r%   )limitr   rH   r?  rH   r?  rf  r   rH   r-   fractioninterpolation_methodr  r  rS   r  r   r,  r  rY   r   r]   scoreatpercs     re   test_fractionz#TestScoreatpercentile.test_fraction%  s1   - 	[[eBii"55s;;;[[eBii"e<<cBBB[[eCjj!1!12VDDDcJJJ[[+++!6!6HEErJJJ[[+++!6!6FCCSIII 	[[eBii":VVV	 	 	[[eBii"F6@B B B	 	 	 	[[eCjj!1!12V6@B B B	 	 	 	[[+++!6!6I6@B B B	 	 	 	[[+++!6!6F6@B B B	 	 	 	 	rt   c           	      6   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           d S )NrH   r  rj  r  r!   higherr"   r  r  r?  r  r  r  r  r   r  r  s     re   test_lower_higherz'TestScoreatpercentile.test_lower_higher?  s   - 	[[eBii"6=? ? ?@A	C 	C 	C[[eBii"6>@ @ @AB	D 	D 	D[[eBii"e6=? ? ?@A	C 	C 	C[[eBii"E6>@ @ @AB	D 	D 	D[[eCjj!1!12u6=? ? ?@A	C 	C 	C[[eCjj!1!12u6>@ @ @AB	D 	D 	D[[,,,!7!7Y6=? ? ?@B	D 	D 	D[[,,,!7!796>@ @ @AD	F 	F 	F[[,,,!7!7W6=? ? ?@A	C 	C 	C[[,,,!7!776>@ @ @AC	E 	E 	E 	E 	Ert   c           	      V   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          	                    d          t          j        g d          d	          }t          g d
g dg dg dg          }t          ||           d S )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   r  ndarrayrW   )r]   r   r
  r   r  	expected2s         re   test_sequence_perz'TestScoreatpercentile.test_sequence_perX  s)   1IIO8NNN++%a66X&&&
3
++,,,/28LLL3I3IJJ 	" 	" 	" &ry}}'<'<U'C'C')x0@0@0@'A'AK K K999---%::%::' ( (	 	i(((((rt   c                 d   t           j        }t          d                              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           d S )NrJ   r    r!   )rD  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   r0rz  scores         re   	test_axiszTestScoreatpercentile.test_axisj  sk   -2JJq!$$[[M224E4E4EFFFllLLL...9[[M:::B???   ///:::>[[M:::B???99999999999	  
 '2..U["%%%UC   '2A666U[$'''UIII&&&&&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           d S )Nr   r   r   r   r  e   rN   )r   r   rS   r  rg  s    re   test_exceptionz$TestScoreatpercentile.test_exception  sc    j%"9Aq62!)	+ 	+ 	+ 	+j%"9A3DDDj%"9A3CCCCCrt   c                 X   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           d S )Nr  c   )r   rS   r  rY   rZ   r   rg  s    re   
test_emptyz TestScoreatpercentile.test_empty  s~    U,R44bf===U,RXr2h-?-?DDbfMMMU,R"b::RVRV<LMMMMMrt   N)r   r   r   r  r   r  r  r  r  r  r  r   rt   re   r  r    s        2 2 2
; ; ;  4E E E2) ) )$' ' '0D D DN N N N Nrt   r  zignore::FutureWarningc            
          e Zd ZdZd Zd Zd Zd Zej	        
                    d ej        dd                    d	             Zd
 Zd Zd Zd Zd Zej	        
                    dg ddej        ddddgg ddej        ddgg          d             Zd Zej	        
                    d ej        dd                    ej	        
                    dej        dg          d                         Zd Zd Zd ZdS )TestModez2Support for non-numeric arrays has been deprecatedc                     t          j        g           \  }}t          |t          j        g                      t          |t          j        g                      d S r  rS   moder   rY   r   r]   valsr  s      re   r  zTestMode.test_empty  sI    z"~~fT28B<<(((VRXb\\*****rt   c                     t          j        d          \  }}t          |t          j        dg                     t          |t          j        dg                     d S )Nr  r   r  r  s      re   r  zTestMode.test_scalar  sM    z"~~fT28RD>>***VRXqc]]+++++rt   c                     g d}t          j        |          }t          |d         d         d           t          |d         d         d           d S )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  sR    777z%  T!WQZ###T!WQZ#####rt   c           
         g d}g d}g d}g d}g d}t          j        |||||g          }t          j        |d           }t	          |d         t          j        dg                     t	          |d	         t          j        d
g                     t          j        |d          }t	          |d         t          j        g dg                     t	          |d	         t          j        g dg                     t          j        |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                     d S )N)rH   rH   r  r  )rH   rH   rH   rH   )rB  rH   rB  rB  )r  r  r  r  )r  r  r  r  r@   r   r  r   r%   )rH   rH   r  r  )r   r    r    r   rH   rB  r   r!   r    )rY   r   rS   r  r   )r]   r  data2data3data4data5arrr  s           re   	test_axeszTestMode.test_axes  s                  hueUE:;;z#D)))T!Wbhtnn---T!Wbhsmm,,,z#A&&&T!Wbh(8(8(8'9::;;;T!Wbh~66777z#A&&&T!WbhrdRD2$'EFFGGGT!WbhaS1#sQC'@AABBBBBrt   rA   r'  r   c                 0   t           j                            d           t           j                            dddd          }t	          j        ||j        |z             }t	          j        ||          }t           j                            ||           d S )N:rH   rI   rJ   rK   r@   )	rY   r  r  r  rS   r  ndimrL  r	   )r]   rA   r   r  r  s        re   test_negative_axes_gh_15375z$TestMode.test_negative_axes_gh_15375  s{    
	y!!!INN2r2r**z!!&+...z!$'''

%%dD11111rt   c                    g d}t          j        t          | j                  5  t	          j        |          }d d d            n# 1 swxY w Y   t          |d         d         d           t          |d         d         d           d S )N)rainshowersr  r   r   r  r   r   )r2  r  r  deprecation_msgrS   r  r   r  s      re   test_stringszTestMode.test_strings  s    ...\,D4HIII 	% 	%:e$$D	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%T!WQZ+++T!WQZ#####s   AA
A
c                 t   ddt           j        ddg}t          j        dt                    }||d d <   t	          j        t          | j                  5  t          j	        |          }d d d            n# 1 swxY w Y   t          |d         d         d           t          |d         d         d	           d S )
NrH   Thellor"   r>   r   r   r   r   )rY   rZ   emptyobjectr2  r  r  r  rS   r  r   )r]   objectsr  r  s       re   test_mixed_objectszTestMode.test_mixed_objects  s    tRVWb1ht6***AAA\,D4HIII 	# 	#:c??D	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#T!WQZ$$$T!WQZ#####s   A55A9<A9c                 D    G d d          fddD             }t          j        dt                    }||d d <   t          t	          t          |                    dk               t          t          j        |          j        d           t          j
        t          | j        	          5  t          j        |          }d d d            n# 1 swxY w Y   t          |d
         d
          d                     t          |d         d
         d           d S )Nc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )$TestMode.test_objects.<locals>.Pointc                     || _         d S r  r  r  s     re   __init__z-TestMode.test_objects.<locals>.Point.__init__  s    rt   c                 "    | j         |j         k    S r  r  r]   others     re   __eq__z+TestMode.test_objects.<locals>.Point.__eq__      v((rt   c                 "    | j         |j         k    S r  r  r  s     re   __ne__z+TestMode.test_objects.<locals>.Point.__ne__  r  rt   c                 "    | j         |j         k     S r  r  r  s     re   __lt__z+TestMode.test_objects.<locals>.Point.__lt__  s    v''rt   c                 *    t          | j                  S r  )hashr   rg  s    re   __hash__z-TestMode.test_objects.<locals>.Point.__hash__  s    DF||#rt   N)r   r   r   r  r  r  r  r  r   rt   re   Pointr    s_          ) ) )) ) )( ( ($ $ $ $ $rt   r  c                 &    g | ]} |          S r   r   )r  r   r  s     re   r  z)TestMode.test_objects.<locals>.<listcomp>  s!    ===q%%((===rt   )r   r   r    r!   r    r   r   r   )r%   r>   r!   )r!   r   r   r   r   )rY   r  r  r   r  setr   uniquer  r2  r  r  r  rS   r  )r]   pointsr  r  r  s       @re   test_objectszTestMode.test_objects  s_   	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$  >===$<===ht6***AAACKK  A%&&&RYs^^)4000\,D4HIII 	# 	#:c??D	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	T!WQZq***T!WQZ#####s   3CCCc                     g d}g }t          j        |          }d}t          ||           t          j        |          }t          ||           d S )Nr  )r  count)rS   r  r   )r]   r  r  r  r   actual2s         re   test_mode_result_attributesz$TestMode.test_mode_result_attributes  s[    777E""&
FJ///*U##GZ00000rt   c                 T   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           d S )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    BFAq"b!Q1aQ?E""VV$$$Ef555VV$$$j%*eHHHHj%*eIIIIIIrt   data)r    r"   r   r   r    r    r"   r   )r    r"   r   c                 j    t          j        |d          }t          |d         d         d           d S )Nrz   r{   r   r   r  )r]   r  r  s      re   test_smallest_equalzTestMode.test_smallest_equal 	  s6     DV444VAYq\1%%%%%rt   c                 X   dgdgdgdgg}t          j        |t                    }t          j        t
          | j                  5  t          j        |d          }d d d            n# 1 swxY w Y   t          j	        |j        dk              r|j        j
        dk    sJ t          j	        |j        d	k              r|j        j
        dk    sJ |t           j        ggz   }t          j        |t                    }t          j        t
          | j                  5  t          j        |d          }d d d            n# 1 swxY w Y   t          j	        |j        dk              r|j        j
        dk    sJ t          j	        |j        d	k              r|j        j
        dk    sJ d S )
N	OxidationPolymerization	Reductionr>   r   r   r@   r   r   r   )rY   r   r  r2  r  r  r  rS   r  r  r  r  rZ   )r]   r  arr  r  ar1s         re   test_obj_arrays_ndimzTestMode.test_obj_arrays_ndim
	  s   }/?.@;-PXd&)))\,D4HIII 	' 	'
2A&&&A	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'vaf+,,G1G1G1GGvagl##?(?(?(??z!huF+++\,D4HIII 	( 	(
3Q'''A	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(vaf+,,G1G1G1GGvagl##?(?(?(??(?(?s$   A))A-0A-EEErO   r?   r  c                 j   t           j                            d          }|                    d                              |          }|dk    rPt          j        t          | j                  5  t          j
        ||d          }d d d            n# 1 swxY w Y   nt          j
        ||d          }t          |j                  }|                    |           t           j                            |j
        j        |           t           j                            |j        j        |           d S )Nr  )r    r!   r"   r   r  r   FrA   keepdims)rY   r  default_rnguniformr  r2  r  r  r  rS   r  r,  r  poprL  r	   r  )r]   rA   r?   rngr   r   reference_shapes          re   test_mode_shape_gh_9955z TestMode.test_mode_shape_gh_9955	  sA    i##I..KKYK''..u55H08LMMM ? ?j>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *QTE:::Cqw--D!!!

%%chnoFFF

%%cioGGGGGs   /BBBc                    dt           j        dt           j        g}t          t           j                  dk    rFt	          j        |          }t          j        |j        d                   r|j        d         dk    sJ t          j        |d          }t          j
        t          | j                  5  t	          j        |          }d d d            n# 1 swxY w Y   t          j        |j        d                   r|j        d         dk    sJ t          j        g dd          }t          j
        t          | j                  5  t	          j        |          }d d d            n# 1 swxY w Y   t          |d	gdgg           d S )
Nr   r   z1.21.0r   r  r>   r   )rH   Tr  rH   rH   )rY   rZ   r   __version__rS   r  r  r  r   r2  r  r  r  r	   )r]   r   r   s      re   !test_nan_policy_propagate_gh_9815z*TestMode.test_nan_policy_propagate_gh_9815)	  s    26"''833*Q--C8CHQK((>SYq\Q->->->> HQh'''\,D4HIII 	  	 *Q--C	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 x$$:1):):)::H,,,H===\,D4HIII 	  	 *Q--C	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 3"s,,,,,s$   4CCC
E++E/2E/c                 b   t          j        d          }t          j        |dd          }|j        j        |j        j        cxk    rdk    sn J t          j        |dd          }|j        j        |j        j        cxk    rdk    sn 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        |	                                d
          }t          ||           |j        j        |j        j        cxk    rdk    sn J t          j        |d d          }t          j        |	                                d
          }t          ||           |j        j        |j        j        cxk    rdk    sn 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        |	                                dd          }t          ||           |j        j        |j        j        cxk    rdk    sn J t          j        |d dd          }t          j        |	                                dd          }t          ||           |j        j        |j        j        cxk    rdk    sn J d S )N)r   r   r    r   r   Fr  )r   r    r   T)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   ravel)r]   r   r   refs       re   test_keepdimszTestMode.test_keepdims=	  s   H\""jU333x~====I======jT222x~@@@@L@@@@@@ ArvArvq 12jU33338aV,,,39q!f---jT22238qcA3Z00039sQCj111HQKKj666jU3333$$$x~55552555555j555jT2223$$$x~77774777777 +fbfbfbfa0BFAq!# jUvFFF38YYY///39iii000jTfEEE38qcA3_55539sQC!o666HQKKj&IIIjUvFFF3$$$x~55552555555jHHHjTfEEE3$$$x~7777477777777rt   c                     d}t          j        |          }t           j        |d<   t          j        |ddd          }t          |j        g d           t          |j        g d           d S )	N)r!   r    r   r   r   Frz   )r   rA   r  r|   r?  r   r    r    r    )rY   r4  rZ   rS   r  r	   r  )r]   r  r  r   s       re   test_gh16952zTestMode.test_gh16952u	  si    wu~~VT
j4a%FKKK38\\\22239lll33333rt   N)r   r   r   r  r  r  r   r  r2  r6  r7  rY   r   r  r  r  r  r  r  rZ   r  r  r   r  r  r  r  r   rt   re   r  r    s        LO+ + +
, , ,
$ $ $C C C( [VYRYr1%5%5662 2 762$ $ $$ $ $$ $ $<1 1 1J J J [V	
BFAq!Q			
BFAq	&  & & &@ @ @  [VYRYr1%5%566[Wrz8&<==H H >= 76H- - -(68 68 68p4 4 4 4 4rt   r  c                  l   g d} d}t          j        t          |          5  t          j        |           }d d d            n# 1 swxY w Y   t          |dgdgf           t          j        | d          }t          |dgdgf           t          j        | d          }t          |ddg           d S )	N)r   r   r"   r    r"   z#Unlike other reduction functions...r   r"   r   Tr  F)r2  r  FutureWarningrS   r  r	   )r   
future_msgr   s      re   test_mode_futurewarningr  	  s    A6J	m:	6	6	6  jmm              saS1#J''' *Q
&
&
&CsaS1#J'''
*Q
'
'
'CsQF#####s   AA
Ac                        e Zd Zg dZdZd ZdS )TestSEMr  r  c                    t                      5 }t          j        d          5  |                    t          d           t          j        | j                  }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   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           d S )NrX  rY  !Degrees of freedom <= 0 for sliceg㝎?r   rh   r   rx   r&   rz   r{   gH=6?r~   r   )r   rY   r[  filterr\   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	  s       	0CX)F)F)F 	0 	0JJ~'JKKK	$.//A	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	Idm$$A|,,,	$-a888271ac7;K;KK	$-a888	: 	: 	: IcNNv!UYq\\26***UYqV4446HIIIj%)Q7CCCCj%)Q8DDDDDDs4   A=5A&A=&A*	*A=-A*	.A==BBN)r   r   r   r$  r#  r%  r   rt   re   r  r  	  s6        ||HOE E E E Ert   r  c                      e Zd Zej                            dg dg dfg dg dfg          d             Zd Zd Zej                            dd	d
g          d             Z	e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                            d ej        g            ej        d          g          d             Zd Zd ZdS ) TestZmapZscorezx, yr  r&  )r   r   r   r    r!   c                     t          j        ||          }|t          j        |          z
  t          j        |          z  }t          ||d           d S )Nr'   r  )rS   zmaprY   rX   rq   r   )r]   r   r^   zr
  s        re   	test_zmapzTestZmapZscore.test_zmap	  sP     Jq! 

NBF1II-8%00000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          ||           d S Nr}   r}   r   r   )r   r   r   r  )r  r}   r  r}   r   rt  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z0rA  z0_expectedz1_expecteds	            re   test_zmap_axiszTestZmapZscore.test_zmap_axis	  s5   H*********, - - WR[[]WR[[Z11%%%Z11%%%bSURCE3/R"Q+RCE2s+- .--bS2#rwr{{3---/ 	""k222!"k22222rt   c                 t   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         |           d S Nr.  )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*  r5  r6  s        re   test_zmap_ddofzTestZmapZscore.test_zmap_ddof	  s    H******, - - Jq!!!,,,h55566BGAJJGh55566F!!A$444!!A$44444rt   ri   r   r   c           
      >   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        |                    |	                     d S )
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     2r1bf-..(BAq"bf566JvwTfEEE5:fgrx7H7H6H.I+/1 1 1 	2 	2 	2 	2 	2rt   c                    t          j        dd                              dd          }t          j        ddd                              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           d S )N      r   r   rN   r@  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   rB  rC  r*  r
  s         re   #test_zmap_nan_policy_omit_with_axisz2TestZmapZscore.test_zmap_nan_policy_omit_with_axis	  s)   4%%--a44+b!R((00B77Jvw6MMM8UZq	(/
BHWQZ4H4H3H(I-13 3 3 #Zq	(/
BHWQZ4H4H3H(I-13 3 34 5 5 	8%00000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            d S # 1 swxY w Y   d S )Nr&  r@  rO   r   r$   rJ   zinput contains nanr   r~   r{   )rY   r   rZ   r2  r   r   rS   r)  )r]   rB  rC  s      re   test_zmap_nan_policy_raisez)TestZmapZscore.test_zmap_nan_policy_raise	  s    )))$$(BAq"bf566]:-ABBB 	< 	<Jvw7;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   A;;A?A?c                 ^    t          j        g d          }g d}t          ||d           d S )Nr  )gOT\wg%ܿg%?gOT\w?rJ   rB   )rS   zscorer   )r]   r^   desireds      re   test_zscorezTestZmapZscore.test_zscore	  sC     L&&% % %!'1b99999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          ||           d S r-  )rY   r   r   rS   rL  r   r0  s	            re   test_zscore_axiszTestZmapZscore.test_zscore_axis
  s1   H*********, - - WR[[]WR[[\!!$$$\!!$$$bSURCE3/R"Q+RCE2s+- .--bS2#rwr{{3---/ 	""k222!"k22222rt   c                 r   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         |           d S r9  )rY   r   rS   rL  r   r   r=  s        re   test_zscore_ddofzTestZmapZscore.test_zscore_ddof
  s    H******, - - L+++h55566BGAJJGh55566F!!A$444!!A$44444rt   c                     t          j        ddt           j        ddg          }t          j        |d          }t          t          j        |                    sJ d S )Nr   r   r!   r"   r  r{   )rY   r   rZ   rS   rL  r  r  r]   r   r*  s      re   test_zscore_nan_propagatez(TestZmapZscore.test_zscore_nan_propagate)
  sT    HaBFAq)**L{33328A;;rt   c                     t          j        ddt           j        ddg          }t          j        |d          }t          j        ddt           j        d	d
g          }t          ||           d S )Nr   r   r!   r"   rz   r{   gIHb=gIHb=gIHb=?gIHb=?)rY   r   rZ   rS   rL  r   r]   r   r*  r
  s       re   test_zscore_nan_omitz#TestZmapZscore.test_zscore_nan_omit.
  sq    HaBFAq)**Lv...800V//	     	"!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
           d S )Nr   r   r6   rI  r   r   rz   rA  rh   vIh%<=r  )rY   r   rZ   rS   rL  r_r   rW  s       re   test_zscore_nan_omit_with_ddofz-TestZmapZscore.test_zscore_nan_omit_with_ddof;
  s{    Hbfc3S#677Lv6665ae!!<!<!<<=8%000000rt   c                     t          j        ddt           j        ddg          }t          t          t
          j        |d           d S )Nr   r   r!   r"   r~   r{   )rY   r   rZ   r   r   rS   rL  r  s     re   test_zscore_nan_raisez$TestZmapZscore.test_zscore_nan_raiseA
  s=    HaBFAq)**j%,gFFFFFFrt   c                     dgdz  }t          j        |          }t          |t          j        t          |          t          j                             d S )NgʡEr    )rS   rL  r   rY   rm   r  rZ   rT  s      re   test_zscore_constant_input_1dz,TestZmapZscore.test_zscore_constant_input_1dF
  sD    HqLLOOQA//0000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                             t          j	        d          }t          j        |d           }t	          |t          j
        |j        t           j                             d S )	Nrx   rx   rx   rx   rx   r  r        *@r   r@   r   r   r   )r    r#   )rY   r   rS   rL  r   rZ   r  rW   r  r4  rm   )r]   r   r4  rA  r*  r^   s         re   test_zscore_constant_input_2dz,TestZmapZscore.test_zscore_constant_input_2dK
  sl   H......0 1 1\!!$$$RBFD$#=$&FCc#:#< = = 	> 	> 	>\!!$$$RBFBFBFBF#C#(<!#5#5#7 8 8 	9 	9 	9L&&&QQWWYY//77@@AAAGFOOL&&&Q0011111rt   c                    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                     d S )Nrb  rx   r  r  rz   r   r|   rA   r)   r   r   r   r   )rY   r   rZ   rS   rL  r   r   )r]   r   r4  ru  s2rA  s         re   -test_zscore_constant_input_2d_nan_policy_omitz<TestZmapZscore.test_zscore_constant_input_2d_nan_policy_omit[
  s]   H...T40T26402 3 3 \!Q777GCLLWQZZBHrvr4&@')vq#rv&>')vq"&"&&A&C D D 	E 	E 	E \!Q777BHrvrvrvrv&F()r1a&8(*s1ub"&2#a%&@&B C C 	D 	D 	D 	D 	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                     d S )N)rx   rx   r  r  rz   r   rg  r/  )rY   r   rZ   rS   rL  r   rT  s      re   test_zscore_2d_all_nan_rowz)TestZmapZscore.test_zscore_2d_all_nan_rowj
  s    Hrvrvrvrv6...0 1 1LvA666Q26262626"B"8"8"8": ; ; 	< 	< 	< 	< 	<rt   c                     t          j        dt           j                  }t          j        |dd           }t          ||           d S )Nr   r    rz   rg  )rY   rm   rZ   rS   rL  r   )r]   r^   r*  s      re   test_zscore_2d_all_nanz%TestZmapZscore.test_zscore_2d_all_nanr
  sA    GFBF##LvD999Qrt   r   )r    r   r"   c                 N    t          j        |          }t          ||           d S r  )rS   rL  r   rT  s      re   test_zscore_empty_inputz&TestZmapZscore.test_zscore_empty_inputx
  s%    LOOQrt   c                 Z    t          j        g d          }g d}t          ||           d S )Nr  )0j甹`ȿ/A?(/?)rS   gzscorer   )r]   r*  rM  s      re   test_gzscore_normal_arrayz(TestZmapZscore.test_gzscore_normal_array}
  s<    M,,,''$ $ $#####rt   c                     t          j        g d          }t           j                            |g d          }t	          j        |          }ddt           j        ddg}t          ||           d S )N)r   r   rN   r    r!   )r   r   r   r   r   maskrr  rs  rt  ru  )rY   r   rh  masked_arrayrS   rv  rJ  r   )r]   r   mxr*  rM  s        re   test_gzscore_masked_arrayz(TestZmapZscore.test_gzscore_masked_array
  sp    H%%%&&U88M"#_bfn"$#####rt   N)r   r   r   r2  r6  r7  r+  r7  r>  rD  rH  rJ  rN  rP  rR  rU  rX  r\  r^  r`  re  ri  rk  rn  rY   r   r  rp  rw  r}  r   rt   re   r'  r'  	  s       [
,,	%
))___	%	' 
1 1 
13 3 3.
5 
5 
5 [VaV,,2 2 -,2 [VaV,,1 1 -,1< < <: : :3 3 3.
5 
5 
5     
/ / /1 1 1G G G
1 1 1
2 2 2 D D D< < <   [S828B<<)1D1D"EFF  GF$ $ $$ $ $ $ $rt   r'  c            
          e Zd Zd Zd Zd Zd Zd Zej	        
                    dg d          d             Ze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	        
                    ddg dfdg          d             Zd ZdS )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          | _        d S )N皙@rx  r*   皙@r  333333@=
ףp=@r  (\
@ry  r+   r  皙@)\(@Q@)r  r  rx  rx  r*   r  r  r  r  r  r  r  ry  ry  ry  r+   r  r  r  r  r  r  r  g33333<@)rY   r   rZ   dat_nandatrg  s    re   setup_classz"TestMedianAbsDeviation.setup_class
  s{    xtS#sCc!%tT4c3!$c3S$bf!N O O 8 ? ? ? @ @rt   c                    t          t          j        | j        d           d           | j                            dd          }t          j        |d          }t          j        g d          }t          ||           d S )Nr@   gQ?r#   r!   r   )gףp=
?r(   ?rH  )r   rS   median_abs_deviationr  rW   rY   rK  r   )r]   r  madmad_expecteds       re   test_median_abs_deviationz0TestMedianAbsDeviation.test_median_abs_deviation
  s    E6txdKKK!	# 	# 	#hq!$$(1555z"9"9"9::!#|44444rt   c                 \    t          j        | j        d          }t          |d           d S )Nrz   r{   g(\?)rS   r  r  r   )r]   r  s     re   test_mad_nan_omitz(TestMedianAbsDeviation.test_mad_nan_omit
  s/    (&II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                     d S )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
  sk    HsCc262///1 2 2(333S"(BFC=1122222rt   c           	          t          j        dddddt           j        t           j        g          }t	          j        |d          }t          |d           d S )	Nr   r    r!   r#   r  rz   r{   r   )rY   r   rZ   rJ  rS   r  r   )sefr*  r  s      re   test_nan_policy_omit_with_infz4TestMedianAbsDeviation.test_nan_policy_omit_with_inf
  sO    HaAq"bfbf566(v>>>S#rt   rA   )r   r   r   Nc                     t          j        d          }t          j        ||          }t	          |t          j        |                    |          t           j                             d S )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
  s[    HY(666S",quu$u'7'7BFKKKLLLLLrt   znan_policy, expectedrz   r)   r  c           	      >   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          ||           d S )Nr   r"   r    r#   )r"   r#   r$   r&   r&   rH   rg  r  )r]   r|   r
  r   r  s        re   test_nan_policy_with_axisz0TestMedianAbsDeviation.test_nan_policy_with_axis
  s     HrvrvrvrvrvrvF!Q26262)))+ , , (zJJ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	
           d S )Nr   r   r!   r&   )r   r   r   r   rJ   )r  r  rB  rB  rz   )centerr|   rA   r   )r  r   )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|     Hq!Q26*&&&---/ 0 0 (27v.24 4 4XE>>>>>>rt   c                     t          j        t          d          5  t          j        g dd           d d d            d S # 1 swxY w Y   d S )Ncallabler   )r   r   r    r"   r  )r  )r2  r   	TypeErrorrS   r  rg  s    re   test_center_not_callablez/TestMedianAbsDeviation.test_center_not_callable
  s    ]9J777 	@ 	@&|||B????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@   AA	AN)r   r   r   r  r  r  r  r  r2  r6  r7  r  rY   r   rZ   r  r  r  r   rt   re   r  r  
  so       @ @ @5 5 5' ' '3 3 3  
 [V___55M M 65M
 [3%xrxc0B'C'CD*HBHbfbfc5J,K,KLNO O$ $O O$ [- "2"2"23[AC C? ?C C?@ @ @ @ @rt   r  c                 x    t          t          |           |d           | D ]}t          |j        |u            dS )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  
  sN     Y/CDDD 1 1-/00001 1rt   c                   V    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S )TestIQRc                     t          j        d          dz  }t           j                            |           t	          t          j        |          d           d S )Nr%   r(   r  )rY   r   r  rs  r   rS   iqrr  s     re   r   zTestIQR.test_basic
  sH    IaLL3
	!UYq\\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           d S )Nr  r   r   r   )rH   Z   )r  rB  r   )rD  r_  r)   r  )r  r  r  r~   lineargٿrz   rj  T)rY   r4  rS   r  )r]   ds     re   test_apizTestIQR.test_api
  s    GFOO	!	!T	!Q	!V	!T8$$$	!T8S)))	!T8S+666	!T8XwAAA	!T8T67DAAAAArt   c                     t          t          j        g           t          j                   t          t          j        t          j        d                    t          j                   d S r  )r   rS   r  rY   rZ   r   rg  s    re   r  zTestIQR.test_empty
  sF    UYr]]BF+++UYry||,,bf55555rt   c                    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                     d S )N)r$   r!   r}   r   r@   r!   r   r$   r  interpolationmidpointnearestrj  r  )r!   r"   r#   r#   )r"   r#   )r!   r#   r   )r!   r"   r*   r  r   r   r"   r   r   r   )	rY   r4  r   rS   r  r	   r  r   rm   r,  s      re   test_constantzTestIQR.test_constant
  s*   GFOOUYq\\3'''59QQ///!===59QQ///!===UYq9993???UYq
;;;SAAAUYq	:::C@@@UYq888#>>>UYq9993??? GI1-59QQ///&1A1ABBB59QQ///&1A1ABBB59QQ///1E1EFFF59QV444bhqkkBBB59QV444bgannEEE59QV444bgannEEEEErt   c                    t          j        d          dz   }t          t          j        |d                   d           t          t          j        |          d           t          t          j        |d          dg           d S )Nr   rI  r   r}   Tr  )rY   r   r   rS   r  r	   r  s     re   test_scalarlikezTestIQR.test_scalarlike  so    IaLL3UYqt__c***UYq\\3'''59Q666>>>>>rt   c                    t          j        d                              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           d S )NrA  r    r"   rI  r   r@   r"   r6   r   r    r  r  r  )rY   r   rW   r   rS   r  r	   rm   r  s     re   test_2DzTestIQR.test_2D	  s    IbMM!!&))UYq\\3'''59QQ///B@@@59QQ///B@@@59QV444c:::59QV444c:::::rt   c                 	   t           j                            d          }t          j        |gdz            }t	          j        |          }t          t	          j        |d          |           t          j        |dd          }t          t	          j        |d          |           |                    dd	          }t          t	          j        |d
          |           |                    dd	          }t          t	          j        |d          t	          j        |d                      t          t	          j        |d          t	          j        |d                     t          j	        d          }t           j        
                    |           |                    d          }t          t	          j        |d          d         t	          j        |d d d d d d df                                                              t          t	          j        |d          d	         t	          j        |d d d d d	d d f                                                              t          t	          j        |d          d         t	          j        |d d d d dd d f                                                              t          t	          j        |d          d         t	          j        |dd d d d d d f                                                              t          t	          j        |d          d         t	          j        |dd	d d d d f                                                              t          t	          j        |d          d         t	          j        |dd d d d d	f                                                              t          t	          j        |d          d         t	          j        |dd d dd d f                                                              t          t           j        t          j        |d           t          t          t          j        |d           d S )N)G   r  r  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   r7  )r   r    r   r   r!   r  )rY   r  r  dstackrS   r  r   moveaxisswapaxesr   rs  rW   r  r   	AxisErrorr   )r]   or   qr  s        re   r  zTestIQR.test_axis  s   I(++IqcBhIaLLUYqv...222K2q!!UYqv...222JJq!UYqv...222JJq!UYqy111Yqt,,,	. 	. 	.UYqt,,,Yqq)))	+ 	+ 	+ In%% 		!IIm$$UYqy111!4Yq111QQQ{002233	5 	5 	5UYqy111!4Yq111a{002233	5 	5 	5UYqz22215Yq111a{002233	5 	5 	5UYqy111!4Yq111QQQqqqz//1122	4 	4 	4UYqv...t4YqAaaa{002233	5 	5 	5UYqw///5YqAAAqqq!}224455	7 	7 	7UYqv...t4YqAAAq|113344	6 	6 	6 	blEIqq9999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           d S )Nr"   r   )rD  g     U@)r	  r*   )g      )@r_  )rH   r  g?)r   r  rD  )r   r  <   )
rY   r   r   rS   r  r   r   r   rZ   r  r  s     re   test_rngzTestIQR.test_rng:  s    IaLLUYq\\1%%%UYqj1113777UYqj1113777EIaX666<<<j%)QH====j%)QRVRLAAA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           t          t           j                  dk    rdD ]}t          j        ||           t          t          t          j        |d           d S )Nr"   r!   r   r)   r  r  r  )rD  P   )r	  r  r    rj  r  r   r  r*   z1.22.0)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   r^   r`  s       re   test_interpolationzTestIQR.test_interpolationE  sF   IaLLIaLLUYq\\1%%%UYq\\3'''UYq9991===UYq9993???UYq9991===UYqhhGGGKKKUYq9991===UYq888!<<<UYqhgFFFJJJUYq888!<<<UYq	:::A>>>UYq	:::A>>>UYq
;;;Q???UYqhjIII3OOOUYq
;;;Q??? ''833. 3 3 	!622222j%)QhGGGGG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           d S )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   r4  r   rS   r  r  r  s     re   r  zTestIQR.test_keepdimsh  s   GM""UYqte<<<BBGGGUYqq5999?LLLUYqv>>>DgNNNUYqv>>>DfMMMUYqte<<<BJOOOUYq,???ErJJJUYqy5AAAGNNNUYqtd;;;A<PPPUYqq4888>NNNUYqv===C]SSSUYqv===C\RRRUYqtd;;;A=QQQUYq,>>>DlSSSUYqy4@@@FUUUUUrt   c           	         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	
          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            n# 1 swxY w Y   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            n# 1 swxY w Y   t          t          t          j        |d           t          t          t          j        |dd           t          t          t          j        |dd           t          t          t          j        |d           d S )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   IdOO##F++ 	UYq[9991===UYqV444a888UYqW555q999 &$$D111 	W 	W!(+++1===rvFFF11EEE1bfVWYZG[\\\11EEE26ST~VVV		W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W $D111 	O 	O!(+++1888#>>>11@@@"'!Q--PPP11@@@+++NNN		O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	j%)Q7CCCCj%)QQ7KKKKj%)QQ7KKKK 	j%)Q9EEEEEEs&   8B)E--E14E1BH11H58H5c           	         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          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            n# 1 swxY w Y   t          t	          j        |dd          d           t          t	          j        |dd          d           t          t	          j        |dd          d           t          t          t          j        |d           t          j        t           d          5  t	          j        dgd           d d d            d S # 1 swxY w Y   d S )Nr  r  r   r  r$   r  g=V^w@r  r+   r  Tr  r  r  )r  r|   r   )rA   r  r|   r   gF7k?rz   r/   g	I1=@g      @r   zThe use of 'scale="raw"'r   raw)rY   r   rW   r   rS   r  r   rZ   r  r  r  r   r   r   r2  r  r  r  s     re   
test_scalezTestIQR.test_scale  sK   IdOO##F++ 	UYq,,,a000EIax888-HHHUYq,,,c222 &$$D111 	) 	)!(+++1CKHHH"&QQQ1HMMMrvVVV1CKHHH"&QQQ11C.9; ; ;=>NL L L	!!85@!B !B !B "!RVQ 8 89 DF F F 11CKPPPRVQ) ) )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)" 	UYq???EEEEIaxFKKK+	- 	- 	-UYq???FFF 	j%)Qh????\.
 
 
 	( 	( Iqc''''		( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s%   8EHHHK00K47K4N)r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r   rt   re   r  r  
  s        ) ) )

B 
B 
B6 6 6F F F,? ? ?; ; ;'= '= '=R	@ 	@ 	@!H !H !HFV V V&F F F:'( '( '( '( '(rt   r  c                      e Zd ZdZg dZdZej                            d           ej        	                    d          Z
g dZdddd	Zd
 Zej                            dej        ej        ej        g          e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S )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    rr  )gp=
ף?g?߾?gD9?gQI?g}?5^INr  r?   c                    t          j        |          }|t          j        ||          }t          ||           ||j        }|j        |k    sJ d S r  )rY   rK  broadcast_tor	   r?   )r]   r  expectr  r?   s        re   _assert_equalzTestMoments._assert_equal  s]    F##_VU33F66***=LE|u$$$$$$rt   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           }|                     |t          j        t          j                   t          j        t          j        g t          j                            }|                     |t          j        t          j                   t          j        t          j        d          d          }|                     |g dt          j                   t          j        g gd          }|                     |t          j        dt          j                   t          j        g gddgd          }|                     |g d           d d d            n# 1 swxY w Y   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           d S ) Nr}   r   r   r   rH   r         ?r    r!        @r  )r   r  r   r  333333?)r   r   r    r  Mean of empty slice.r   r>   r  r@   r  r  r  )momentrA   )r   r   )r  rx   r&   rz   r{   r~   r   )rS   r   r#  r
   r$  r   r   r   r2  r  r\   r  rY   rZ   r   r   r   r  r   r   r   )r]   r^   r3  r   s       re   test_momentzTestMoments.test_moment  s   L-..As###L**As###L**AsB'''L**At$$$L**As###L**Av&&& L55///000 L,,As###j%,sCCCL(8(8(899///000 )\.888 
	4 
	4R  Aq"&
;;;RXb
;;;<<Aq"&
;;;RXf--A666Aq"D
CCCbT***Aq"&BJGGGbT1a&q999Aq"F333
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 IcNNv!U\!Q''000ELv>>>DDDj%,gFFFFj%,hGGGGGGs   E L22L69L6r?   zexpect, momentr  r  c                 X   t           j                            d                              |          }t	          j        ||          }|                     |||           t	          j        t          j        |d          d|          }|                     ||d|           t	          j        t          j        |d	          d
|          }|                     ||d|           t	          j        t          j        |d	          d |          }|                     ||d|           d S )Nr"   r   r>   )r#   r"   r   )rA   r   r  r  r  r   )r   r   r!   r"   r   )rY   r  r  r  rS   r   r  r  )r]   r?   r  r   r   r^   s         re   test_constant_momentsz!TestMoments.test_constant_moments
  s%    INN1$$U++L6***1fE222LF33!FKKK1fD>>>LO<<1 &( ( (1fLFFFLO<<4 &( ( (1fBe<<<<<rt   c                 0   t          j        d                              dd                              t                    }t           j        |d<   t          j        |ddd          }t           j        	                    |dt           j        gd	
           d S )Nr%   r   rN   r  r   r  r  r  r   r   )
rY   r   rW   r  r  rZ   rS   r   rL  r   )r]   r   mms      re   test_moment_propagate_nanz%TestMoments.test_moment_propagate_nan  s{     IaLL  B''..u55&$\!QQ;???

""2bf~E"BBBBBrt   c                     t          j        t          d          5  t          j        g dg            d d d            d S # 1 swxY w Y   d S )Nz7'moment' must be a scalar or a non-empty 1D list/array.r   r  r  )r2  r   r   rS   r   rg  s    re   test_moment_empty_momentz$TestMoments.test_moment_empty_moment$  s    ]: .J K K K 	2 	2Lb1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r  c                    t          j        t          d          5  t          j        | j                  }t          j        |          sJ 	 d d d            n# 1 swxY w Y   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            n# 1 swxY w Y   t          t          j        |d          d           t          t           t          j        |d           t          t           t          j        |d           d S )NPrecision loss occurredr   g7l*ҿrH   r   biasg2۠ۿr}   rx   r&   rX  rY  rz   r{   r~   r   )r2  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   \.0IJJJ 	 	
4/00A8A;;;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 Jt)**A0"555Jt)222A12666Jt}%%AsB'''IcNNv![*** 	0 	0A///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0UZf555r:::j%*aGDDDDj%*aHEEEEEEs#   0AA A-EEEc                 d    t          t          j        t          d                    d           d S )NrH   r}   )r   rS   r  r   rg  s    re   test_skewness_scalarz TestMoments.test_skewness_scalar@  s(    UZr

++S11111rt   c                    t          j        d                              dd                              t                    }t           j        |d<   t          j        d          5  t          j        |dd	          }d d d            n# 1 swxY w Y   t           j	        
                    |d
t           j        gd           d S )Nr%   r   rN   r  rX  rY  r   r  r  r   r   r   )rY   r   rW   r  r  rZ   r[  rS   r  rL  r   )r]   r   ru  s      re   test_skew_propagate_nanz#TestMoments.test_skew_propagate_nanD  s     IaLL  B''..u55&$[*** 	> 	>
11===A	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>

""1q"&k">>>>>s   %B		B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            d S # 1 swxY w Y   d S )Nr  r   9ѿrH              Fr  g,@r$   r   rO   r!   gؗҜ<)
r2  r  r\   rY   repeatr  rS   r  r  r   r]   r   s     re   test_skew_constant_valuez$TestMoments.test_skew_constant_valueM  s    \.0IJJJ 		D 		D	+r**A8EJqMM*****8EJq5<<'788999998EJq5<<'788999998EJqu55566666 8EJvax00111118EJq29R+;+;E+A'ABBCCCCCC		D 		D 		D 		D 		D 		D 		D 		D 		D 		D 		D 		D 		D 		D 		D 		D 		D 		Ds   EE//E36E3c                 F   t          j        t          d          5  t          j        | j                  }t          j        |          sJ 	 d d d            n# 1 swxY w Y   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           d S )Nr  r   r   r   fisherr  gO߻S@rH   gx|N@g=
ףp=?rx   r&   rz   r{   Gzr~   r   )r2  r  r\   rS   kurtosisr#  rY   r  r  r
   r$  r   rZ   r   r   r   r   r  s      re   test_kurtosiszTestMoments.test_kurtosis[  s   \.0IJJJ 	 	t344A8A;;;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 N4-qCCCA333 N4-aa@@@A0"555N4=!Q//At$$$IcNNv!U^A&&///EN1@@@)LLLj%.!HHHHj%.!IIIIIIs   0AA Ac                 r    t          t          t          j        g d                    t                     d S )Nr&  )r   typerS   r   r  rg  s    re   test_kurtosis_array_scalarz&TestMoments.test_kurtosis_array_scalarw  s.    T%.1122E:::::rt   c                 .   t          j        d                              dd                              t                    }t           j        |d<   t          j        |dd          }t           j        	                    |dt           j        gd	
           d S )Nr%   r   rN   r  r   r  r  g(\r   r   )
rY   r   rW   r  r  rZ   rS   r   rL  r   )r]   r   r  s      re   test_kurtosis_propagate_nanz'TestMoments.test_kurtosis_propagate_nanz  sy     IaLL  B''..u55&$N11===

""1ubfoE"BBBB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            d S # 1 swxY w Y   d S )	Nr  rH   r  r   F)r  r  r  )	rY   r  r2  r  r\   r  rS   r   r  r  s     re   test_kurtosis_constant_valuez(TestMoments.test_kurtosis_constant_value  sR    Ik2&&\.0IJJJ 	I 	I8EN1U;;;<<<<<8EN1uU||+;EJJJKKKKK8EN1uU||+;EJJJKKKKK8EN1UGGGHHHHHH		I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Is   C
D		DDc                     | j         t          j        | j                   z
  }t          t          j        |d                                          t          j        | j         d                     d S )Nrr  )testcase_moment_accuracyrY   rX   r   r   rS   r   )r]   
tc_no_means     re   test_moment_accuracyz TestMoments.test_moment_accuracy  sn     2WT:;;<
R005577!L)FKK	M 	M 	M 	M 	Mrt   c                    t          j        t          d          5  t          j                            d          }|                    d          }d|d d df<   t          j        |          d          d d d            d S # 1 swxY w Y   d S )Nr  r   l   :"z` )r?  rH   r  )\(?r   )r2  r  r\   rY   r  r  rS   r  )r]   r	  r   s      re   test_precision_loss_gh15554z'TestMoments.test_precision_loss_gh15554  s     \.0IJJJ 	 	)''44C

	
**AAaaadGJqMM!		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ABB	Bc                 (   d}t          j        t          |          5  t          j        g            d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        g            d d d            d S # 1 swxY w Y   d S )Nr  r   )r2  r  r\   rS   r  r   r]   r3  s     re   test_empty_1dzTestMoments.test_empty_1d  s   (\.888 	 	JrNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	\.888 	 	N2	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s!   ?AA%BBB)"r   r   r   r5  r$  r#  rY   r  r  r  r*  r  r  r  r2  r6  r7  r   r   
complex128r  r  r	  r  r  r  r  r!  r$  r&  r(  r,  r/  r2  r   rt   re   r  r    s         yyHOINN4!y~~b11<<<M59 % % % % %-H -H -H^ [Wrz2:r}&MNN[-/?@@= = A@ ON= C C C2 2 2F F F,2 2 2? ? ?D D DJ J J8; ; ;C C CI I IM M M      rt   r  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                            dg d          d             Zd ZdS )TestStudentTestr   r  r   r   gSzgE.?g {gB4t?g {?g?r   c                    t                      5 }t          j        d          5  t          j        t
          d          5  |                    t
          d           t          j        dd          \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   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                            dddd          }t          j        |d<   t          j        d          5  t5          t          j        |d          t          j        t          j        f           t          t          j        |dd          d           t7          t8          t          j        |dd           t7          t8          t          j        |dd           d d d            d S # 1 swxY w Y   d S )NrX  rY  r  r   r   r  r   r   r   r   r   r   r"   rH   3   it r  r  r   random_stater  r6   rz   r{   )g̈́^Bg/kCm?r~   r   )r   rY   r[  r2  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normrvsrZ   r	   r   r   )r]   rd   tr   r   r   r   s          re   test_onesamplezTestStudentTest.test_onesample  s      	-CX)F)F)F 	- 	-^3LMMM	- 	-JJ~'JKKK$R,,DAq	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	 !,,1!!TY///!!TY///++,
C,,, !,,1!!TY///!!TY/// !,,1!!TY///!!TY/// !,,1!!TY///!!TY/// JNNq'NJJ"[*** 	/ 	/u0C882626:JKKK%e&736&R&R&R&QS S S*e&7CGTTTT*e&7C%-/ / / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/sk   B/B4B5BBBB	BB/B	B/B	 B//B36B3B%L==MMc                 z   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                   d S )Nr   errorr  r   r  r  )	r   r   rS   r;  r<  r   P1_1_lrB  P1_1_g)r]   rH  r   s      re   test_1samp_alternativez&TestStudentTest.test_1samp_alternative  s    j%"3TWa")	+ 	+ 	+ 	+  !@@@14;'''49%%% !CCC14;'''49%%%%%rt   r  rz  c                    t           j                            d          }d}|                    |dd          }|                                }ddgdt           j        gt           j         d	gd
}t          j        |||          }|                    d          }t          |||                    t          |j
        |dz
             d S )Nl   <PleH rH   r)   r   r   r  r  gÍ]?g$(}w@gS1?g]@r  r  r  )popmeanr  333333?confidence_levelr   )rY   r  r  r  rJ  rS   r;  r	  r   r   df)	r]   r  r	  r  r   rR  r  r   r  s	            re   test_1samp_ci_1dz TestStudentTest.test_1samp_ci_1d  s     i##$788JJA3aJ00**,, 01CD-rv6!235 5 7LLL$$d$;;C,---SVQqS!!!!!rt   c                     t          j        t          j        d          d          }d}t	          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )NrH   r   4`confidence_level` must be a number between 0 and 1.r   rT  )rS   r;  rY   r   r2  r   r   r	  )r]   r   r3  s      re   test_1samp_ci_ivz TestStudentTest.test_1samp_ci_iv  s    	"q11H]:W555 	9 	9##R#888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   A))A-0A-N)r   r   r   rY   r   r<  r?  r=  r>  rB  rC  rD  rE  r@  rA  rL  rM  rI  rN  r2  r6  r7  rW  rZ  r   rt   re   r5  r5    s        	***		B	)))		BDDDDDDDDAXF$(^F*/ */ */X
& 
& 
& [],L,L,LMM" " NM"(9 9 9 9 9rt   r5  c                   f   e Zd Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Z	ej                            dg d	          d
             Z
ej                            dg d          d             Zej                            dg d          d             Zej                            dg d	          d             Zej                            ddg dfdg dfdg dfdg dfg          d             Ze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                            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                            d)e          d*             Zej                            d+g d,          d-             Zd.S )/TestPercentileOfScorec                 $    t          j        |i |S r  )rS   percentileofscore)r]   argskwargss      re   fzTestPercentileOfScore.f  s    &7777rt   zkind, result))r  r  )rX   #   strictr  )weakr  c                 Z    g d}t          |                     |d|          |           d S )N
r   r   r    r!   r"   r#   r$   r%   r&   rH   r!   kindr   ra  r]   ri  r  r   s       re   test_uniquez!TestPercentileOfScore.test_unique  s7    
 ,++TVVAqtV,,f55555rt   ))r  re  )rX   r  rc  )re  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r   r    r!   r!   r"   r#   r$   r%   r&   r!   rh  rj  rk  s       re   test_multiple2z$TestPercentileOfScore.test_multiple2  7    
 +**TVVAqtV,,f55555rt   ))r  r  )rX   re  rc  )re  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r   r    r!   r!   r!   r"   r#   r$   r%   r!   rh  rj  rk  s       re   test_multiple3z$TestPercentileOfScore.test_multiple3  ro  rt   ))r  r  )rX   r  rc  )re  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r   r    r"   r#   r$   r%   r&   rH   rI   r!   rh  rj  rk  s       re   test_missingz"TestPercentileOfScore.test_missing&  s7    
 -,,TVVAqtV,,f55555rt   c                 Z    g d}t          |                     |d|          |           d S )N
rH   rB  r  r  r  r  F   r  r  r?  r  rh  rj  rk  s       re   re  z(TestPercentileOfScore.test_large_numbers.  s7    
 655TVVArV--v66666rt   c                 Z    g d}t          |                     |d|          |           d S )N)
rH   rB  r  r  r  r  r  r  rv  r  r  rh  rj  rk  s       re   test_large_numbers_multiple3z2TestPercentileOfScore.test_large_numbers_multiple36  s7    
 544TVVArV--v66666rt   c                 Z    g d}t          |                     |d|          |           d S )N
rH   rB  r  r  r  rv  r  r  r?  n   r  rh  rj  rk  s       re   test_large_numbers_missingz0TestPercentileOfScore.test_large_numbers_missing>  s7    
 766TVVArV--v66666rt   r  )r   rH   r?  r?  rX   )r   r"   _   r?  rd  )r   r   r  r?  re  c                 ^    g d}t          |                     |g d|          |           d S )Nrz  )r   rH   r{  rT  rh  rj  rk  s       re   test_boundariesz%TestPercentileOfScore.test_boundariesF  s>    
 766TVVA000tV<<fEEEEErt   )r   rH   r?  )r   r"   r}  )r   r   r  c           
          ddddddddd	t           j        
 g
}t          |                     |t           j         dt           j        
 g|
          |           d S )Nr   r   r    r!   r"   r#   r$   r%   r&   rh  )rY   rJ  r   ra  rk  s       re   test_infzTestPercentileOfScore.test_infN  sY    
 1aAq!Q0TVVARVG44V@@&IIIIIrt   r  r   r  r   r  r?  rz   )r   r  r?  r   zpolicy, a, score, resultc                 R    t          |                     |||          |           d S )Nr{   rj  )r]   policyr   r  r  s        re   test_nans_okz"TestPercentileOfScore.test_nans_ok^  s*    TVVAuV88&AAAAArt   r~   r    r&  rQ  zpolicy, a, score, messagec                     t          t          |          5  |                     |||           d d d            d S # 1 swxY w Y   d S )Nr   r{   )r   r   ra  )r]   r  r   r  r3  s        re   test_nans_failz$TestPercentileOfScore.test_nans_faili  s    :W555 	0 	0FF1eF///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   =AAr  ))r#   rm  r   r   r    )r   r   r   r    c                     t          j        g d          }|                    |          }|dz  }g d}t          |                     ||d          |           d S )N)r   r   r   r    r!   r"   rH   rg  r  rh  )rY   r   rW   r   ra  )r]   r  r   rB  resultss        re   test_ndzTestPercentileOfScore.test_ndn  sg     H'''((5!!)+++TVVAvFV33W=====rt   N)r   r   r   ra  r2  r6  r7  rl  rn  rq  rs  re  rx  r|  r  r  rY   rZ   casesr  r  r  r   rt   re   r\  r\  	  s       8 8 8 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =7 7	= =7 [^ .< .< .< = =7 7	= =7 [^ .< .< .< = =7 7	= =7 [^v7H7H7H.I/5.G/7.I/57H7H7H.I.K L LF F	L LF [^v|||.D/5zzz.B/7.D/5|||.D.F G GJ J	G GJ 2q"&)BF8Q/BF8YYY0HIAq6Aq"&>BRV3DEq!RVniii>q!fq!RVnq"bfo>rvrv&			BFBFBF3KLNE [7??B B @?B 
1aBF#YYY	(	*	)))aArv.	(	*E [8%@@0 0 A@0 [W ' ' '  > > > > >rt   r\  Case)f_obsf_expri   rA   chi2logmod_logcr)r!   r%   rJ   r%   r!   r   r(   rJ   r)   r%   r  rt  gfx(@)r   rC  rJ   r   rG  r  rC        ?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
d	S )
TestPowerDivergencec                 l   t          j        |          }||j        }n"t          j        ||          }|j        |         }t                      5 }	|	                    t          d           t          j	        |||||          \  }
}t          |
|           |dk    s|dk    r+t          j        ||||          \  }
}t          |
|           d d d            n# 1 swxY w Y   t          j        |          }t          j        j                            ||dz
  |z
            }t          ||           d S )NrP   r  r  ri   rA   lambda_r   pearson)r  r  ri   rA   )rY   rK  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_divergence  s   
5!!<jGGUE**AgdmG   	5CJJ~'<===,&+5t%)7< < <GD! D-000!||w)33/U/35 5 5am444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 z$(-00181t1CE E
:&&&&&s   A?CC!Cc           	         t           D ]h}|                     |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	                   jd S Nr  r   log-likelihoodmod-log-likelihoodcressie-readrt  )
power_div_1d_casesr  r  r  ri   rA   r  r  r  r  r]   cases     re   r   zTestPowerDivergence.test_basic  s|   & 	! 	!D'':tz49di$ $ $ '':tz49didi) ) ) '':tz49didi! ! ! '':tz49di#TX/ / / '':tz49di'7 7 7 '':tz49di!47, , , '':tz49di! ! ! !'	! 	!rt   c           	         t           D ]i}t          j                            |j                  }|                     ||j        |j        |j        d |j	                   |                     ||j        |j        |j        d|j	                   |                     ||j        |j        |j        d|j	                   |                     ||j        |j        |j        d|j
                   |                     ||j        |j        |j        d|j                   |                     ||j        |j        |j        d|j                   |                     ||j        |j        |j        d|j                   kd S r  )r  rY   rh  r   r  r  r  ri   rA   r  r  r  r  )r]   r  mobss      re   test_basic_maskedz%TestPowerDivergence.test_basic_masked  s   & 	! 	!D5;;tz**D''TY	$ $ $ ''TY	di) ) ) ''TY	di! ! ! ''TY	#TX/ / / ''TY	'7 7 7 ''TY	!47, , , ''TY	! ! ! !)	! 	!rt   c           	         t           d         }t           d         }t          j        |j        |j        f          }t          j        t          j        |j                  t          j        |j                  z  |j        f          }|                     ||ddd|j        |j        g           |                     ||ddd|j	        |j	        g           |                     ||ddd|j
        |j
        g           |                     ||ddd|j        |j        g           |                     t          j        |j                                      dd          d dd d|j                   d S )Nr   r   r  r  r  r  r   )r  rY   r+  r  	ones_likerX   r  r  r  r  r  r  r   rW   )r]   case0case1r  r  s        re   r  zTestPowerDivergence.test_axis	  s   "1%"1%	5;455	2<44RWU[5I5II ;( ) ) 	##eQ5:uz2	4 	4 	4 	##eQ%)UY!7	9 	9 	9 	##eQ#emU]%C	E 	E 	E 	##eQ%(3	5 	5 	5
 	##x$$,,Q2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                     d S )Nr   r   rh   r  r  )r  rY   r+  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57	2<44RWU[5I5II ;( ) ))* 	 UZ0 x!qc
##(DAAAam,,, *5%d3iHHH	r*5%d3iHHH	r1biR1122222rt   c           
         t          j                    5  t          D ]}|                     |j        |j        |j        |j        d|j                   |                     |j        |j        |j        |j        d|j	                   |                     |j        |j        |j        |j        d|j
                   |                     |j        |j        |j        |j        d|j                   	 d d d            d S # 1 swxY w Y   d S )Nr  r  r  r  )r  r  power_div_empty_casesr  r  r  ri   rA   r  r  r  r  r  s     re   test_empty_casesz$TestPowerDivergence.test_empty_cases?  sT   $&& 	0 	0- 0 0++z4:ty$) $)- - - ++z4:ty$)'3 3 3 ++z4:ty$)+T\; ; ; ++z4:ty$)%tw0 0 0 00	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   CC99C= C=c                     t           d         j        }t           d         j        }t           d         j        }t           d         j        }t          j        ||||d          }d}t          ||           d S )Nr   r  r  r7  )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_attributesO  sv    "1%+"1%+!!$)!!$)$5D*.	C C 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            n# 1 swxY w Y   t          t          d	          5  t	          j        ||d           d d d            n# 1 swxY w Y   t	          j        ||          \  }}t          |ddg           t          |ddg           d S )NrH   rB  r  r"   rA  rb  rD  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_12282Z  s   2r(RH-..1b'B8,--:-EFFF 	C 	C""b"bBBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C:-EFFF 	E 	E"e!DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E+%uEEE
dz:6777z:677777s$   A22A69A6B77B;>B;N)r   r   r   r  r   r  r  r  r  r  r  r   rt   re   r  r    s        ' ' '6! ! !0! ! !2& & &43 3 380 0 0 	- 	- 	-
8 
8 
8 
8 
8rt   r  c                      t          t          d          5  t          j        ddgddg           d d d            d S # 1 swxY w Y   d S )Nr  r   rH   rB  r  r  r  )r   r   rS   r  r   rt   re   test_gh_chisquare_12282r  g  s     
z)A	B	B	B 8 8r2hr2h77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   ?AAzn, dtyperT  i@B c                     t          j        | dg|          }t          j        | dz  | dz  g|          }t          j        ||          \  }}t	          || d           d S )Nr   r>   r   rZ  r  )rY   r   rS   r  r   )r  r?   obsexpr  r   s         re   test_chiquare_data_typesr  o  sm     (Aq6
'
'
'C
(AFAF#5
1
1
1Coc3''GD!D!%((((((rt   c            	         t          j        g dg dg          j        } t          j        g dg dg          j        }t           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        ||                    ||                    d          dz
                       t          j        |d          \  }}t          j        ||d           t          j        ||                    ||                    d          dz
                       t          j	        |j        d          \  }}t          j        ||           t          j        ||                    ||j                            d          dz
                       t          j        |j        dd          \  }}t          j        ||d           t          j        ||                    ||                    d          dz
                       t           j                            g dg d          }	t           j                            g dg d          }
t          j	        |	|
          \  }}t          j        |d           t          j	        t           j                            g d          d           \  }}t!          t#          |t           j                             t!          t#          |t           j                             t'          |d           t)          |t          j        j                            dd                     t          j        d          5  t-                      5 }|                    t0          d            t          j	        t           j                            g                     \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t!          t#          |t           j        j                             t'          |j        d!           t!          |j                   t           j                            g g g g          }t          j	        |          \  }}t!          t#          |t           j        j                             t          j        |g            t          j        d          5  t-                      5 }|                    t0          d            t          j	        |j                  \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t!          t#          |t           j        j                             t'          |j        d"           t!          t          j        |j                             d S )#N)r%   r%   rC      rN   )rN   rN   r    r!   r"   )r   r   r   r   r   )r   r   r   r   r   g      8@r(   r   rC  r  r  r    r  r"   r  r   r@   r   r  r  rA  rB   )rA   r  )r    r"   r#   r  rH   )r   r   r   r   r   ry  )r   r!   r%   rH   r  )r  r&  r   rX  rY  rP   r   r  )rY   r   r  rh  r{  r  rS   r  r  r  matr	   r   r  r  r  r   r  r   r   r   r[  r   r!  r\   MaskedArrayr  rz  r  )r  rz  r  expected_chisq
expected_gr  chisqr   gobs1exp1rd   empty3s                re   test_chisquare_masked_arraysr  x  s   
(&&&(9(9(9:
;
;
=C8___ooo6779D5c4((DXtSk**N1c"&++o26#;;>?atnq~=>@ A AJ #Dt$$HE15.111!!TWW^-1ZZQZ-?-?!-C&E &E F F F !$0@AAADAq!!Z<<<<!!TWWZ-1ZZQZ-?-?!-C&E &E F F F tvA...HE15.111!!TWW^-1V\\q\-A-AA-E&G &G H H H!$&q:JKKKDAq!!Z<<<<!!TWWZ-1ZZQZ-?-?!-C&E &E F F F 5;;(((;??D5;;(((;??Dod$///GD! 4111 ru{{77733$???HE1Jubj))***Jq"*%%&&&5.366sA>>??? 
X	&	&	& 8 8   	8CJJ~'<===ru{{277HE1	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	88 8 8 8 8 8 8 8 8 8 8 8 8 8 8 Jube/00111b!!!EJU[["R$$F v&&HE1Jube/001115"%%% 
X	&	&	& 1 1   	1CJJ~'<===vx00HE1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 Jube/00111d###BF5:sm   R+AR;RR	RR	RR"%R"W78W W7 W$	$W7'W$	(W77W;>W;c                  n   t          j        g d          } d}t          j        dt          |           dz             }t          j        |                                 t          j        ||z                                            z            }t          j        |||z  z             }t          j        | |f          j        }t          j        g d          	                    dd          }|D ]E\  }}t          j        |d d df         |d d df         |          \  }	}
t          |	|d	
           Fd S )N)rA  rI   rF   rQ   r"   rI   rH   r!   r%   rH   r$   r&   rI   r    r#   r   r   r!   g*kqr   ) g      $g    @rF  g     r@g      gffffffP@g       gLD@r<  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  r  r  r  r+  r  rW   rS   r  r   )r  betar  alphaexpected_countstable4table5r  r  r  r   s              re   /test_power_divergence_against_cressie_read_datar    sL    ( 1 1 1 2 2CD
	!SXX\""AF37799rvd1f~~1133344EfUT!V^,,O Y_-..0FX 
 
 
  $ 72q>>% ( #) 8 8(!fQQQqSk18: : :am$777778 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                    d S )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!   )rI  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+ԋ?r7  )r   r   rS   friedmanchisquarer   r   r   mstats)r  r  r  r   r   s        re   test_friedmanchisquarer    s   
  8 8 8 9 9
 9 9 9 : :
 : : : ; ;
 9 9 9 : :
;B )))
*
*
)))
*
*
)))
*
*
)))
*
*
,B &&&
'
'
%%%
&
&
%%%
&
&
%%%
&
&
(B
 e5beBqE"Q%1NNDF F Fe5beBqE"Q%1NNFH H He5beBqE"Q%1NN9; ; ;*e5beBqEBBB )J

!2
&CZ((( f6r!ube79!ubeE EDF F F f6r!ube79!ubeE E9; ; ; *f6r!uRUCCCCCrt   c                   .    e Zd ZdZd	dZd	dZd Zd ZdS )

TestKSTestzLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.autorF   c                     t          j        |d||          }t          j        ||g          }t	          t          j        |          ||           d S NrF  r  r  rB   )rS   kstestrY   r   r   	r]   r   r  expected_statisticexpected_probr  rC   r  r
  s	            re   _testOnezTestKSTest._testOne(  sT    a[tLLL8/?@@!"(6"2"2HgNNNNNNrt   c                     t          j        |d||          }t          j        |t           j        j        ||          }t          t          j        |          ||           d S r  )rS   r  ks_1samprF  cdfr   rY   r   )r]   r   r  r  rC   r  result_1samps          re   _test_kstest_and_ks1sampz#TestKSTest._test_kstest_and_ks1samp-  s\    a[tLLL~a[W[\\\!"(6"2"2L'RRRRRRrt   c                     t          j        ddd          }d}t          j        |d          }t	          ||           d S )NrN   r   r&   r7  rF  )rY   r  rS   r  r   r]   r   r   r   s       re   test_namedtuple_attributesz%TestKSTest.test_namedtuple_attributes2  sA    KAq!!,
l1f%%C,,,,,rt   c                 J   t          j        ddd          }|                     |d           t          j        ddd          }|                     |d           g d}|                     |d           |                     |dd	
           |                     |dd	
           d S )NrN   r   r&   r  rA  
r  gQ?g333333g(\?gQ?g(\ſg{GzgHzG?g\(\gGzr  r^  r  r  )rY   r  r  r  s     re   test_agree_with_ks_1sampz#TestKSTest.test_agree_with_ks_1samp9  s    KAq!!%%a555KR##%%a555NNN%%a555%%a%AAA%%ag%>>>>>rt   Nr  rF   )r   r   r   r5  r  r  r  r  r   rt   re   r  r  %  sh        VVO O O O
S S S S
- - -
? 
? 
? 
? 
?rt   r  c                       e Zd ZdZddZd Zd Zd Zd Ze	j
                            d	ej        ej        g          e	j
                            d
g d          d                         ZdS )TestKSOneSamplezOTests kstest and ks_samp 1-samples with K-S various sizes, alternatives, modes.r  rF   c                     t          j        |t           j        j        ||          }t	          j        ||g          }t          t	          j        |          ||           d S )Nr  rB   )rS   r  rF  r  rY   r   r   r  s	            re   r  zTestKSOneSample._testOneK  sY    5:>{QUVVV8/?@@!"(6"2"2HgNNNNNNrt   c                     t          j        ddd          }d}t          j        |t          j        j                  }t          ||           d S )NrN   r   r&   r7  )rY   r  rS   r  rF  r  r   r  s       re   r  z*TestKSOneSample.test_namedtuple_attributesP  sE    KAq!!,
nQ
//C,,,,,rt   c                 ^   t          j        ddd          }|                     |ddd           t          j        ddd          }|                     |dd	d
           g d}|                     |ddd           |                     |dddd           |                     |dddd           d S )NrN   r   r&   r  g|N?g7.s?r  rA  g{CTp?g M<b*?r   gZL?g86J4?r  g+?r^  r  r  gHD?gr?rY   r  r  r  s     re   test_agree_with_rz!TestKSOneSample.test_agree_with_rW  s    KAq!!a&9;NOOOKR##a&9;OPPPNNNa&79JKKKa$57HwWWWa!24EGTTTTTrt   c                     t           j                            ddd          }|                     |dddd	           |                     |d
dd           |                     |ddd           d S )Nr	  r?  h:)r  r   r:  r  ghх?g7?asympr  r  g^h?r  gv!ԉ}?g*z)?)rS   rF  rG  r  r  s     re   test_known_examplesz#TestKSOneSample.test_known_examplesd  st    JNNs9NEEa&9;OV]^^^a!46JKKKa$9;NOOOOOrt   c           	         t          t          j        t          t          j        dd                               t          t          d          5  t          ddd           d d d            n# 1 swxY w Y   t          t          j        t          ddd                               t          j        g d          }t          t          |dd	          	                    t          t          t          g
           d S )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   rK  r   checkintr  bool)r]   datasets     re   test_ks1samp_allpathsz%TestKSOneSample.test_ks1samp_allpathsk  s   D1122333:-EFFF 	" 	"CD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"Q--..///* 
 
 
  * 	'9a0066sE4>P6QQQQQs   A//A36A3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 d S )	NrH   r(   r#   r  r  rp  r   r  )	rY   r   rS   r  r  r   r   statistic_locationstatistic_sign)	r]   r  r  x6valref_locationref_signr   r  r   s	            re   test_location_signz"TestKSOneSample.test_location_sign  s     IbMMC!m"%%%)fQ555s7777%5555!X------rt   Nr  )r   r   r   r5  r  r  r
  r  r  r2  r6  r7  rS   r  r  r$  r   rt   re   r  r  H  s        YYO O O O
- - -U U UP P PR R R< [Xen'EFF[I7 7 78 8

. 
.8 8 GF
. 
. 
.rt   r  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                            dej        ej        g          ej                            dg d          d                         Z dS )TestKSTwoSamplesz<Tests 2-samples with K-S various sizes, alternatives, modes.r  c                     t          j        ||||          }t          j        ||g          }t	          t          j        |          |           d S )Nr  )rS   ks_2samprY   r   r   )	r]   r  r  r  r  r  r  r  r
  s	            re   r  zTestKSTwoSamples._testOne  sO    B$???8/?@@!"(6"2"2H=====rt   c                 J   |                      dgdgddd           |                      dgdgddd           |                      dgdgddd           |                      dgdgddd           |                      dgdgddd           |                      dgdgddd           d S )	Nr   r   r  r   r  r(   r  r}   )r  rg  s    re   	testSmallzTestKSTwoSamples.testSmall  s    qcA3UC888qcA3	5#666qcA3s333qcA3UC888qcA3	5#666qcA3s33333rt   c                    t          j        ddg          }|dz   }|dz
  }t          j        g d          }|                     ||ddd           |                     ||ddd           |                     ||d	dd           |                     ||dd
d           |                     ||dd
d           |                     ||d	dd           d S )Nr   r  {Gz?r   r  r   r  r   r  rq  r  rt  rI  rs  r   rY   r   r  r]   r  data1pdata1mr  s        re   testTwoVsThreezTestKSTwoSamples.testTwoVsThree  s    #s$$))fe['3???feY===feVWc:::fe['3???feY===feVQ44444rt   c                    t          j        ddg          }|dz   }|dz
  }t          j        g d          }|                     ||ddd           |                     ||ddd	           |                     ||d
dd           |                     ||ddd           |                     ||ddd           |                     ||d
dd           d S )Nr   r  r,  r4  r  r(   g?r  g?r  r  皙?r  rH  r	  r   r.  r/  s        re   testTwoVsFourzTestKSTwoSamples.testTwoVsFour  s    #s$$---..fe['7CCCfeY@@@feVWg>>>fe['6BBBfeY@@@feVQ44444rt   c                 ~   t          j        ddd          }|dz   dz   }|dz   dz
  }|                     ||ddd           |                     ||ddd	           |                     ||d
dd           |                     ||ddd           |                     ||ddd           |                     ||d
dd           d S )Nr   r?  r   rp  r  r  g~z?r  gz;.B?r  r   r   {Gz?gn2IU?r	  )r]   x100	x100_2_p1	x100_2_m1s       re   test100_100zTestKSTwoSamples.test100_100  s    {1c3''1HsN	1HsN	dI{I?QRRRdIy)=OPPPdIvq#666dI{IsCCCdIy)=NOOOdIvq#66666rt   c                    t          j        ddd          }t          j        ddd          }|dz   dz   }|dz   dz
  }|                     ||ddd           |                     ||d	dd
           |                     ||ddd           |                     ||ddd           |                     ||d	dd           |                     ||ddd           d S )Nr   r?  r{  rB  rp  r  g?g@߿?r  g}n?r  r   g:[?g]O);?gѫ);?r}   r   r	  )r]   r8  x110
x110_20_p1
x110_20_m1s        re   test100_110zTestKSTwoSamples.test100_110  s    {1c3''{1c3''BY_
BY_
dJ\CWXXXdJ	<AUVVVdJ1555dJ\CWXXXdJ	<AUVVVdJS99999rt   c                 t   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                    }|                     ||d
dd           |                     ||ddd           |                     ||ddd           |                     ||d
dd           |                     ||ddd           |                     ||ddd           d S )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   r  r  )r]   x2233x3344x2356x3467s        re   testRepeatedValuesz#TestKSTwoSamples.testRepeatedValues  sc   !qA37*aS1W4sQw>cJJJ	!qA37*aS2X5a?sKKK!rQC!G+qcBh6!q@LLLeUK9KLLLeUIv7JKKKeUFFC888eUK>PQQQeUI{<NOOOeUFJ8JKKKKKrt   c                 *   t          j        g d          }|                     ||dz   ddd           |                     ||dz   ddd           |                     ||dz   dd	d           |                     ||d
z   ddd           |                     ||d
z   ddd           |                     ||d
z   dd	d           |                     ||d
z
  ddd           |                     ||d
z
  dd	d           |                     ||d
z
  ddd           d S )Nr-  r   r  r   r   r  r  r  r}   r(   r.  )r]   r  s     re   testEqualSizeszTestKSTwoSamples.testEqualSizes  s)   ))eU1Wk5#>>>eU1Wi===eU1WfeR888eU3YUC@@@eU3Y	5$???eU3Yr:::eU3YUC@@@eU3Y	5#>>>eU3Yt<<<<<rt   c           	         d\  }}d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd
	           |                     ||dd|z  |z  dd
	           |                     ||dd|z  |z  dd
	           t                      5 }d}|                    t
          |           |                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd	           d d d            n# 1 swxY w Y   t          j        d          5 }t          j        d           |                     ||dd|z  |z  dd	           t          |t
          d           d d d            d S # 1 swxY w Y   d S )N)r  iX  r   r   r   rT  r  g     @@r  r  r  r  g2JE?r  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.r^  Tr  r  
rY   r  r  r   r!  r\   r  r  r  r  	r]   n1n2deltar   r^   rd   r3  r  s	            re   testMiddlingBothz!TestKSTwoSamples.testMiddlingBoth  s    BBr	!AK3##e+K3##aK"r)93VLLLaK"r)93WMMMaIv{R'79KRYZZZaFEBJO5GgVVV   	[CAGJJ~w///MM!Q	6B;+;=OV]M^^^MM!Q
R9KRYMZZZ		[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[
 $D111 	2Q!(+++MM!Q
R9KRYMZZZA~q111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2&   A EEE!AF::F>F>c           	         d\  }}d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd
	           |                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd	           t                      5 }d}|                    t
          |           |                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd	           d d d            n# 1 swxY w Y   t          j        d          5 }t          j        d           |                     ||dd|z  |z  dd	           t          |t
          d           d d d            d S # 1 swxY w Y   d S )N)r@  L  r   r   r   rT  r  g     ȹ@r  r  r  r  gZ?r  g     @@g@J?rJ  r^  Tr  r  rK  rL  s	            re   testMediumBothzTestKSTwoSamples.testMediumBoth  s    BBr	!AK3##e+K3##aK"r)93WMMMaK"r)93VLLLaIv{R'79KRYZZZaFFRK"$46HwWWW   	\CAGJJ~w///MM!Q	6B;+;=OV]M^^^MM!Qb(8:LSZM[[[		\ 	\ 	\ 	\ 	\ 	\ 	\ 	\ 	\ 	\ 	\ 	\ 	\ 	\ 	\
 $D111 	2Q!(+++MM!Qb(8:LSZM[[[A~q111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2rQ  c                 <   d\  }}|dz  }d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd	|z  d
           |                     ||dd|z  d           |                     ||dd	|z  d           d S )N)'  r{  r  r   r   r   rT  r?  r  g    `@g      <r  g     @g򼉷?r  gimb:r	  )r]   rM  rN  lcmrO  r   r^   s          re   	testLargezTestKSTwoSamples.testLarge"  s    BgBr	!AK3##e+K3##aK38NOOOaIus{4GHHHaFGcM3IJJJJJrt   c                 6   t           j                            d           t           j                            d          }t           j                            d          dz  }|                     ||dddd	
           |                     ||dddd
           d S )N@ i  r  i  r)   r  gC?      <r  r  r^  rY   r  r  r  r  r,  s      re   test_gh11184zTestKSTwoSamples.test_gh11184-  s    
	vI$''I$''#-aK)<>T[bcccaK)<>T[bcccccrt   c                    t           j                            d           t           j                            d          }t           j                            d          dz  }|                     ||dddd	
           |                     ||dddd
           |                     ||dddd	
           |                     ||dddd	
           d S )NrZ  rV  r  i'  r)   r  g 	_r!?gAD5r  r  r[  r^  r  gלN#y7r  gvqw?r\  r,  s      re   test_gh11184_biggerz$TestKSTwoSamples.test_gh11184_bigger5  s     		vI%((I%((3.aK)<>T[bcccaK)<>T[bcccaI':<RY`aaaaF$79OV]^^^^^rt   c                    t           j                            d           t          ddd          D ]}t           j                            |          }t           j                            |dz   d          }t          j        ||d	          j        }t          j        ||d
	          j        }t          |d|z             t          |d|z             d S )NrZ  r@  i.  r  rH   r(   r   r  r^  r  r  r    )	rY   r  r  r  r  rS   r(  r   r   )r]   r   vals1vals2r^  r  s         re   test_gh12999zTestKSTwoSamples.test_gh12999@  s    
	vtUD)) 	0 	0AI$$1$..EI$$1r6$<<EN5%g>>>EEN5%g>>>EEeQY///eQY////	0 	0rt   c           	         d\  }}|dz  }d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd|z  d	d
           |                     ||dd|z  dd           |                     ||dd|z  d	d           |                     ||dd|z  d           |                     ||dd|z  d           t                      5 }d}|                    t
          |           |                     ||dd|z  dd           |                     ||dd|z  dd           d d d            d S # 1 swxY w Y   d S )N)rV  i*  r  r   r   r   rT  r  g     @gkHY?r  r  gLɔ.?r^  r  r  g.LbG2?r  rx   gr?֎?rJ  )rY   r  r  r   r!  r\   )	r]   rM  rN  rW  rO  r   r^   rd   r3  s	            re   testLargeBothzTestKSTwoSamples.testLargeBothL  s    BgBr	!AK3##e+K3##aK6HwWWWaK6HwWWWaK6HvVVVaIus{4FGGGaFD3J0BCCC   	VCAGJJ~w///MM!Q	53;8JQXMYYYMM!Qs
4FWMUUU		V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	Vs   (AEEEc                 Z    d}t          j        ddgdg          }t          ||           d S )Nr7  r   r   r    )rS   r(  r   r]   r   r   s      re   testNamedAttributesz$TestKSTwoSamples.testNamedAttributes_  s4    ,
na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            d S # 1 swxY w Y   d S )Nr   )_count_paths_outside_method!_compute_outer_prob_inside_methodr   r@  i  r~   rY  rS  iK  r+  )scipy.stats._stats_pyrk  rl  rY   r[  r   FloatingPointError)r]   rk  rl  s      re   test_some_code_pathsz%TestKSTwoSamples.test_some_code_pathse  s   	
 	
 	
 	
 	
 	
 	
 	

 	*)!Q1555##D!Q555[))) 	, 	,,.Ia, , ,,.Ia, , ,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   3A::A>A>c                     t          t          t          j        g dg           t          t          t          j        dgg            t          t          t          j        g g            d S r  )r   r   rS   r(  rg  s    re   test_argument_checkingz'TestKSTwoSamples.test_argument_checkingv  sN    j%."qc:::j%.1#r:::j%."b99999rt   c                 &   t           j                            d           d}t          j                            |dd          }|dz   }t          j        ||dd           t          j        ||d	d           t          j        ||d
d           dS )zEnsure gh-12218 is fixed.Na i    r}   r   rP  r  r  r  r  r  N)rY   r  r  rS   r  rG  r(  )r]   rM  rvs1rvs2s       re   test_gh12218zTestKSTwoSamples.test_gh12218|  s    
 		x   }  bb ::axtTywGGGGtTvGDDDDtT{IIIIIIrt   c                    t           j                            t          t	          d                              }|                    d          dz   }|                    d          }d}t          j        t          |          5  t          j	        ||d	          }t          |j        d
d           d d d            d S # 1 swxY w Y   d S )Ntest_warnings_gh_14019iq  r  r(   iq  z(ks_2samp: Exact calculation unsuccessfulr   r  r  r   r  r   )rY   r  r  absr  r2  r  r\   rS   r(  r   r   )r]   r	  r  r  r3  r   s         re   rx  z'TestKSTwoSamples.test_warnings_gh_14019  s     i##C-E(F(F$G$GHH


$$s*


$$<\.888 	7 	7.6BBBCCJ6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   /CC	Cr  r  ))r  皙@rz  r   )r  ffffff@r  rN   )r  rz  rz  r   )r  r{  r  rN   c                     t          j        dt           j                  }|                                }||d<   t	          j        |||          }|j        dk    sJ |j        |k    sJ |j        |k    sJ d S )NrH   r>   r#   r  rp  )	rY   r   r   copyrS   r(  r   r  r   )	r]   r  r  r!  r"  r#  r   r^   r   s	            re   r$  z#TestKSTwoSamples.test_location_sign  s     Ib
+++FFHH!nQ{;;;}####%5555!X------rt   N)r  )!r   r   r   r5  r  r*  r2  r5  r;  r@  rF  rH  r2  r6  r}  rP  rT  rX  r]  xslowr_  rd  rf  ri  ro  rq  rv  rx  r7  rS   r  r(  r$  r   rt   re   r&  r&    sD       FF> > > >
4 4 4
5 
5 
55 5 5	7 	7 	7: : :
L 
L 
L
= 
= 
= [2 2 2( [2 2 2*	K 	K 	Kd d d [_ _ _ [	0 	0 	0 [V V V$- - - [, , , : : : [
J 
J 
J
7 
7 
7 [Xen'EFF[I; ; ;< <

. 
.< < GF
. 
. 
.rt   r&  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	          5  t          j
        t          d
          5  |	                    t          d           t          j        dd          \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   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                            d          }t          j                            ddd|          }t           j        |d<   t          j                            ddd|          t          j                            dd|          z   }t           j        |d<   t          j        d	          5  t;          t          j        ||          t           j        t           j        f           d d d            n# 1 swxY w Y   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            n# 1 swxY w Y   t%          t          j        |          |ft           j        df           t          j        d	          5  t%          t          j        g d%g d%          t           j        t           j        f           t          j        dt           j        gd'dgg          }t%          t          j        |t          j        d(                    dt           j        gdt           j        gf           d d d            n# 1 swxY w Y   t          j         d)          }t+          t,          t          j        |!                    d*          |!                    d+                     d, }t          j"        |          }t           j        |d d d-d.f<   t           j        |d d d/d0f<   t          j        ||dd !          \  } }t          j        ||dd d1          \  }}t/          || d23           t          j        d	          5  t/          | || |d          d23           d d d            n# 1 swxY w Y   t          j        ||dd d1          \  }}t/          || d23           t          j        d	          5  t/          | || |d          d23           d d d            d S # 1 swxY w Y   d S )4N)gu?gȵI?r   r?  r.  gKX@r   r@   rX  rY  r  r   r   r  r   r7  rm  r   r  rK  r  r  rA   r  r  rs  r"   rH     r9  r  r	  )r  r   r:  rz   r{   )ghm#1?gry̧?r~   r   r  r  rN   r  rG  )r%   r    r   r    r!   c                 L    | dk     r|dk    s| dk    r|dk    r|dz  S d|dz  z
  S Nr   r  r  r   r   r   rH  r   alts      re   convertztest_ttest_rel.<locals>.convert  <    EEcVmmQ3)3C3Cq5LAE{rt   rB  r  rA  rD  rP  r  r  )#rY   r  r   rS   	ttest_relr   r  r   r[  r2  r  r\   r!  r   r  r   r  ry  r   r  r  r   r   r   r  RandomStaterF  rG  rZ   r	   rJ  r  r   rW   	vectorize)trr8  tprrt  ru  rvs1_2Drvs2_2DrH  r   rd   r   r   rvs1_3Drvs2_3Dr	  r   r^   ananr  	converters                       re   test_ttest_relr    s*
   4EBrs8RG
C;qS!!D;tF3''DhAc#..D0L0LMNNGhD44bk!C6L6LMNNG
/$1
-
-
-CAaqeRG,,,
/')WYQ
7
7
7CAaqeC(((
/'7
3
3
3CAaqeC((( 
		 'R[%B%B%B ' 'L/HIII' '

>#FGGGr2&&1' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' BHQKKBHQKK )J
/$1
-
-
-CZ((( i122Gi122G
/'7
3
3
3CAabfQii,,,bfQii,,,&!!!?2;w155;w155 !# # #DAq bfQii,,,bfQii,,,&!!! *eotTwOOOO?4A6BBBDAqAq2a4x   Ar?4A9EEEDAqAr!tAr )


)
)C
1BSsCCAVAcF	ARc	D	D	c#	>	>
?AVAcF	X	&	&	& D D5?1a0026262BCCCD D D D D D D D D D D D D D D eoavFFFGI I I*eoq!HHHH*eoq!IIII 
n,E	F	F	F 5 5yyy)))4415 5 5 5 5 5 5 5 5 5 5 5 5 5 5"&))Q"&!---	X	&	&	& 1 1U_YYY			::RVRV<LMMM x!RVr1g.//U_T28F+;+;<<"&kArv;/	1 	1 	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 		"A*eoqyy/@/@))I&&( ( (   W%%IGAAAr"uHGAAAr"uH_WgqVDDDFB?7GQ6'-/ / /DAqAr&&&&	X	&	&	& B B99RV445AAAAB B B B B B B B B B B B B B B ?7GQ6'02 2 2DAqAr&&&&	X	&	&	& E E99RY77eDDDDE E E E E E E E E E E E E E E E E Es   G5+G4G;GGGGGG5G"	"G5%G"	&G55G9<G9:U

UUXXXB1\\\a  aab99b= b=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           d S )Nr  r   r  r   r  r   r  rz   r{   r   r   r   )r7  grh|?-C6?)rY   rZ   rS   r  r   r   r   r   r^   rz  r{  r3s        re   test_ttest_rel_nan_2nd_argr    s    	c3AA	A&	1	1	1B	A&	1	1	1BBL2<-e<<<<BIryu5555 
122!""	&	&BB'''' B4000000rt   c                      t          j        g g           } t          | t           j        j                  sJ t          | t          j        t          j        f           d S r  )rS   r  r  	_stats_pyTtestResultr   rY   rZ   r  s    re   #test_ttest_rel_empty_1d_returns_nanr  .  sO     _R$$Ffeo9:::::"&"&)*****rt   zb, expected_shape)r   r"   r   r  )r   r   r   )r    r   c                 2   t          j        d          }t          j        || d          }t	          |t          j        j                  sJ t          j        |t           j                  }t          |j
        |           t          |j        |           d S N)r    r   r   rN   r@   r  )rY   r  rS   r  r  r  r  rm   rZ   r   r   r   r   expected_shaper   r  expected_values        re   test_ttest_rel_axis_size_zeror  6  s     	A_Q+++Ffeo9:::::W^???N!>222/////rt   c                  .   t          j        d          } t          j        d          }t          j        | |d          }t	          |t          j        j                  sJ t          |j        j	        d           t          |j
        j	        d           d S N)r   r%   r   r"   r%   r   r   r@   r"   r   )rY   r  rS   r  r  r  r  r   r   r  r   r   r   r  s      re    test_ttest_rel_nonaxis_size_zeror  E  s    
 	A
A_Q***Ffeo9:::::!'000$f-----rt   r  rz  c                    t           j                            d          }d}|                    |dd          }|                    |dd          }ddgdt           j        gt           j         d	gd
}t          j        |||           }|                    d          }t          |||                     t          |j
        |dz
             d S )Nl   C67l:  rH   r)   r   rP  gZ?Ygi{a?g8 gC?rQ  r  rS  rT  r   )rY   r  r  r  rJ  rS   r  r	  r   r   rV  )r  r	  r  r   r^   r  r   r  s           re   test_ttest_rel_ci_1dr  R  s     )

 3
4
4C
A

s!
,,A

q
**A ,->?)262VG013 3C /!QK
8
8
8C		 	 $	 	7	7BBK()))1rt   ztest_fun, argsrH   c                      | | }d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )NrY  r   rH   rT  )r2  r   r   r	  )test_funr_  r   r3  s       re   test_ttest_ci_ivr  j  s    
 (D/CDG	z	1	1	1 5 54445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   AAAc                 <    dd} || |           |||          z   S )Nr   c                     t          j        |           } t          j        | |          }t          j        | |d          }| j        |         }|||fS )Nr@   r   r:  )rY   rK  rX   rq   r  )r   rA   murq   nobss        re   _statsz_desc_stats.<locals>._statsv  sP    JqMMWQT"""fQT***wt}3}rt   r  r   )r  r  rA   r  s       re   _desc_statsr  u  s;        6"dffR....rt   c            	      0   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  t          j        t          d          5  |
                    t          d           t          j        dd          \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   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/          t0          t          j        ||d           t/          t0          t          j        gt          |j        |j                  R ddi t          j        ||d          \  }}t3          |d|dz  z
             t3          ||            t          j        ||d          \  }}t3          ||dz             t3          ||            t          j        |j        |j        dd          \  }}t          |j        |j                  }	t3          t          j        |	ddi||g           t          j        |j        |j        dd          \  }}t          |j        |j                  }	t3          t          j        |	ddi||g           t           j                            d          }t          j                            ddd|          }t           j        |d<   t          j                            ddd|          }t          j
        d	
          5  t?          t          j        ||          t           j        t           j        f           d d d            n# 1 swxY w Y   t          t          j        ||d          d            t/          t0          t          j        ||d!           t/          t0          t          j        ||d"           t          j        t          d          5  t          j        g d#g d$          \  }}d d d            n# 1 swxY w Y   t)          t          j        |          |ft           j         df           t          j
        d	
          5  t)          t          j        g d#g d#          t           j        t           j        f           t          j        dt           j        gd%dgg          }t)          t          j        |t          j!        d&                    dt           j        gdt           j        gf           d d d            n# 1 swxY w Y   t           j        |d d d d dd'f<   t           j        |d d d d d(d)f<   d* }t          j"        |          }t          j        ||dd          \  } }t          j        ||ddd+          \  }}t3          || d,-           t3          | || |d          d,-           t          j        ||ddd+          \  }}t3          || d,-           t3          | || |d          d,-           d S ).N	ru?g8Mѱ?r   r?  r"   i   r   r@   rX  rY  r  r   r   r  r   rm  r   r  rK  r  r  r  r  r  rs  rH   r  r9  r  rz   r{   )guͷ?g*,?r~   r   r  r  rN   r  rA  r#   rJ   c                 L    | dk     r|dk    s| dk    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   rP  r  r  )#rY   r  r   rS   	ttest_indr   ttest_ind_from_statsr  r  r   r[  r2  r  r\   r!  r   r  r  r   ry  r   r  r  r   r   r   r  r  rF  rG  rZ   r	   rJ  r  r  )r  r8  r  ru  rt  r  r  rH  r   r_  rd   r  r  r	  r   r^   r  r  r  s                      re   test_ttest_indr    s)
   	B	Bs8RG
C;qS!!D;qS!!Dhd|$$Ghd|$$G
/$1
-
-
-CAaqeRG,,,e8+dFJ;L ;L M !f& & & /')WYQ
7
7
7CAaqeC(((wy'),,De8$? !f& & &
/'7
3
3
3CAaqeC(((wa000De8$? !f& & & 
		 'R[%B%B%B ' 'L/HIII' '

>#FGGGr2&&1' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' BHQKKBHQKK i122Gi122G
/'7
3
3
3CAaq		26"::...bfQii,,,&!!!?2;w155;w155 !# # #DAq bfQii444bfQii,,,&!!! *eotTwOOOO*e8 Kwy')44K K KBIK K K ?46:::DAqAqBqDz"""Ar?49===DAqAr!tAr ?79giaVLLLDAqwy'),,D"D=f==1vG G G ?79giaYOOODAqwy'),,D"D@i@@1a&J J J )


)
)C
1BSsCCAVAcF
1BSsCCA	X	&	&	& D D5?1a0026262BCCCD D D D D D D D D D D D D D D eoavFFFHJ J J*eoq!HHHH*eoq!IIII 
n,E	F	F	F 5 5yyy)))4415 5 5 5 5 5 5 5 5 5 5 5 5 5 5"&))Q"&!---	X	&	&	& 1 1U_YYY			::RVRV<LMMM x!RVr1g.//U_T28F+;+;<<"&kArv;/	1 	1 	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6GAAAqqq"R%K&GAAAqqq!B$J   W%%I_WgqVDDDFB?7GQ6$*, , ,DAqAr&&&&AyyR00u====?7GQ6$-/ / /DAqAr&&&&AyyR33%@@@@@@s   H8.H!
4H
>H!
HH!HH!H8!H%	%H8(H%	)H88H<?H<:YYY\\
\
B1```c                      e Zd ZdZej                            d            ej         ej        dez  dz            ej                            dez  dz            f          Z	 ej         ej        edz            dz   e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                            d           ej                            d	dd
                              dd	          j        Ze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                                         e
dddf                                         ddied         fe	e
dddefe	e
ej                            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                            d          ddefg
Zej                            de          d             Z d Z!d Z"d Z#d Z$ej        %                                d             Z&d  Z'd! Z(d" Z)dS )#Test_ttest_ind_permutationsrB  r   r    r!   r?  rH   r   r   r"   r  r  r%   '^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rA   N)r:  rA   	equal_varTrN   )rA   r:  r   za,b,update,p_dc                    d dd}d dddd}|                     |           |                     |           t          j        ||fi |\  }}t          j        ||fi |\  }	}
t          ||	d           t          |
|           d S )NFrA   r  r@  r   )rA   r  permutationsr:  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6	!%)1> >	      OAq66I66	A;;;;!&&!444!&#.....rt   c                    t           j                            d           d}t           j                            d|d          }t           j                            d|d          }ddd}|                    d           t          j        ||fi |}t          j        ||fi |}|                    d	           t          j        ||fi |}t          j        ||fi |}|                    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	        |                     d S )Nr   r    r   r   r@  )rA   r  r  r  r  r  r(   
rY   r  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_barz  s               re    test_ttest_ind_exact_alternativez<Test_ttest_ind_permutations.test_ttest_ind_exact_alternative3  sj   
	qINN1a##INN1a##55	Y///?1a55955?1a55955V,,,?1a55955?1a55955[111?1a55955?1a55955 	X');<<<X');<<< 	X'(*<)<===X'(*<)<===X'(*<)<=== 	X_ho666 	X_ho666X_ho666#%X_T*X_T-BB_T*	, 	, 	,X_dU+hote.DD_dU+	- 	- 	- 	- 	-rt   c                    t           j                            d           d}t           j                            |          }t           j                            |          }t	          j        ||          }t	          j        ||d          }t	          j        ||d          }t	          j        ||t           j                  }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ d S )Nr   r    r@  r  )rY   r  r  r  rS   r  rJ  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INN1INN1q!$$q!$777q!!444q!"&999{dk)))){dk)))){dk))))))rt   c                    t           j                            d           t           j                            d          }t           j                            d          }t          j        ||f          }t          |          t          |          }}d}t          |||d          \  }}}t          t          |                    }	|	t          ||z   |          k    sJ t          |          |	k    sJ d S )Nr   r    r!   r<  T)	rY   r  r  r  rj  r  r   r  r   )
r]   r   r   r  nanbr  t_statr  n_uniques
             re   !test_ttest_ind_exact_distributionz=Test_ttest_ind_permutations.test_ttest_ind_exact_distributionk  s     		qINN1INN1~q!f%%QQB24r379 91 s6{{##5b"------6{{h&&&&&&rt   c                    t           j                            d           d}t           j                            dd|          }t           j                            d|          }dddd}|                    d	           t          j        ||fi |}t          j        ||fi |}|                    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              d S )Nr   r  r   r    rN   r@  )rA   r  r:  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_alternative~  s   
	qINN1a##INN1a  qII	Y///?1a55955?1a55955V,,,?1a55955?1a55955 	X');<<< 	X'(*<)<===X'(*<)<=== 	X_x6In59::	< 	< 	<X_x6In59::	< 	< 	< 	< 	<rt   c                    t           j                            d           d}t           j                            |d          }t           j                            |d          }ddd}|                    d           t          j        ||fi |}|                    d           t          j        ||fi |}|                    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           d S )Nr   r  r!   r<  r  r:  r  r  r  r  r   r  r(   r   r7  r   )
rY   r  r  r  r  rS   r  r   r   r   )	r]   r  r   r   r  r  r  r  rz  s	            re   $test_ttest_ind_randperm_alternative2z@Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative2  s   
	qINN1a  INN1a  %*A>>	Y///?1a55955V,,,?1a55955[111?1a55955 	X_x6In59::	< 	< 	<
 #%HOD11 -D	: 	: 	: 	:Qxu556 .T	; 	; 	; 	;HOTE22 .T	; 	; 	; 	;Qxt445 -D	: 	: 	: 	: 	: 	:rt   c                    t           j                            d           d}t           j                            |d          }t           j                            |d          }t           j        |d<   t           j        |d<   t           j        |d<   t           j        |d<   ddd}|                    d	
           t          t          d          5  t          j	        ||fi |}d d d            n# 1 swxY w Y   t                      5 }|                    t          d           |                    d
           t          j	        ||fi |}t          j        |                              d          t          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	        |                                |                                fi |}t          j        |j                  sJ t          j        |j                  sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r  r"   )r"   r   )r%   r   )r&   r    r@  r  r~   r{   rQ  r   ry   r  r@   )rY   r  r  r  rZ   r  r   r   rS   r  r   r[   r\   r  anyr   r   r   r   r  )	r]   r  r   r   r  r   rd   rz  r  s	            re   $test_ttest_ind_permutation_nanpolicyz@Test_ttest_ind_permutations.test_ttest_ind_permutation_nanpolicy  s   
	qINN1a  INN1a  &$&$&$&$%)1==	 	G,,,:-LMMM 	5 	5/!Q44)44C	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5    	+CJJ~'7888444/!Q44)44C8A;;???**RXa[[__!_-D-DDD?1QQQX;!!!dU(IIyIIDD)26222t,bf555CJu-t{;;;CM4%0$.AAA /!''))QWWYYDD)DDC8CJ'''''8CM******#	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s%   C//C36C3F8KKKc                    t          t          d          5  t          j        | j        | j        d           d d d            n# 1 swxY w Y   t          t          d          5  t          j        | j        | j        d           d d d            n# 1 swxY w Y   t          t          d          5  t          j        | j        | j        dd	           d d d            d S # 1 swxY w Y   d S )
NzPermutations must ber   rO   r  r)   z'hello' cannot be usedr   r  r  )r   r   rS   r  r  b2r   r   rg  s    re   'test_ttest_ind_permutation_check_inputszCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputs  s   :-CDDD 	? 	?ODGTW2>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?:-CDDD 	@ 	@ODGTW3????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@:-EFFF 	2 	2ODFDF)02 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s5   "AA	A	&"BBB5#C%%C),C)c                     d}t           j                            |d          }t           j                            |d          }t          j        ||d          j        }t          d|v           d|vsJ d S )NrH   rB  r   r  r}   )rY   r  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  st    INN1b!!INN1b!!?1aa888?c!"""(""""""rt   )*r   r   r   r  rY   r  r  r+  r   r   r   r  r  r  b3rS   rF  rG  rW   r  rt  ru  r  p_d_genp_d_bigtolistr  r  paramsr2  r6  r7  r  r  r  r  r  r}  r  r  r  r  r   rt   re   r  r    sY       
A INN1	929QqS!V$$bi&6&6qsAv&>&>?@@A	929QT??S(")*:*:1a4*@*@ABBA 
2B	2	B QB
QB INN1:>>ar"  $ $$+GCOOA 	:>>ar>44D<
 C~&G+ + +G 
A{C 	
acFA;$	
1aaa4!AqqqD'FD>3q62	
1aaa4		1QT7>>++fd^SVD	
A1--s3	
A	 5 5a 8 8!DDcJ	R+t$f-	tb!44g>	RS	
A	 5 5a 8 8!DDgN
F [-v66
/ 
/ 76
/(- (- (-T* * *' ' '&< < <: [: : :B"+ "+ "+H2 2 2# # # # #rt   r  c                      e Zd Zej                                        ej                            ddddddii gg d          ej                            d	d
dgd	dg          d                                     Zej                            ddddddii gg d          ej                            dddg          d                         ZdS )Test_ttest_ind_commonkwdsrT  r   r  trimr	  )r  r  basic)idsr  TFunequal_varc           	      (   t           j                            d           t           j                            dddddd          }t           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 ];}||         }||         }t	          j        ||fd	di|}|j        ||<   |j        ||<   <t          ||j                   t          ||j                   d S )Nr   r"   r!   r$   r   r#   r%   r   rA   rO   )r   r    r   r7  r   r   r   r   r   r   rN   r"   r   r!   r   r   r   c              3   4   K   | ]}t          |          V  d S r  r  r  r  s     re   	<genexpr>z=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>  s(       9 9aq 9 9 9 9 9 9rt   )rY   r  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  sC    		qINN1aAq!,,INN1aAq))oa444t44 1aq!!!Q1aaa qqq!QQQ111}r277B7$77S]1aaaAqqq=1^	% 	% 	%SZ111aAAA.[	" 	" 	" K#566B??K#566B??Xe__
(5// 9 95 9 9 9: 	+ 	+G7B7B?2r;;;d;;D"&.Jw#{GG
CM222,,,,,rt   )r  r  r  rA   rN   c                 x   t           j                            dd                              d          }t           j                            dd                              d          }t           j        |d         d         d<   t           j        |d         d         d<   t          j        t          j        ||z   |	                    }t                      5 }t          j        d
          5  |	                    t          d           |	                    t          d           t          j        ||fd|i|}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        |j                  }t          ||           t          j        |j                  }	t          |	|           d S )NrH   )r"   r    rH   r  r  r   r   r    r#   r@   rX  rY  z'invalid value encountered in less_equalr  rA   )rY   r  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   s     Ibz2299'BBIbz2299'BBV!Q
V!Q
 8BF1q5t44455    	;CX)F)F)F 	; 	;JJ~@B B BJJ~'@AAA/!Q::T:T::C		; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;
 #*%%68,,,#-00>844444s7   E.AE:EE
	
EE
	EE!$E!N)	r   r   r   r2  r6  r}  r7  r  r  r   rt   re   r  r    s?        [[VsA&N&N'-rlB&8!B!B!B  D D [[4-"-}!=  ? ?!- !-? ?D D !-F [VsA&N&N'-rlB&8!B!B!B  D D [Vb!W--5 5 .-D D5 5 5rt   r  c            	       d   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                            de          d             Zd Zd Z	ej                            dd          d             Z
d Zej                            dg d          d             ZdS ) Test_ttest_trimr&  r  r  g@9(?er	  )r   g33333`@rJ   g33333^@g(\P@rg  gfffffڇ@gBM)u?g]@gyd?g	s5v@g{Gz?r  r  r  r   ffffff?r   r  r  rs  r  r  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          j        |||d          \  }}t          ||d           t          ||d           dS )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   r8  r  r  r   r   s           re   test_ttest_compare_rz$Test_ttest_trim.test_ttest_compare_rQ  sR    @ "OAqtuMMM	6	2E2222//////rt   c                     g d}g d}t          j        ||dd          \  }}t          |dd           t          |d	d           d S )
N)rJ   rF   rc  rD  r  ,   rJ   rF   rc  rD  r  r  )rQ   rU  rF   rJ   r     rd  rQ   rU  rF   rJ   r  r  rd  g
ףp=
?Fr  gRbv?r  r   gOi?r  r]   r   r   r   r   s        re   test_compare_SASz Test_ttest_trim.test_compare_SASu  si     =<<DDD "OAqseLLL	6t4444	8$777777rt   c                     g d}g d}t          j        ||d          \  }}t          |dd           t          |dd           d	S )
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
        r  r  r	  r  gR?绽|=r   g^Nr  r  s        re   test_equal_varzTest_ttest_trim.test_equal_var  sh    & DCCCCC!OAqr:::	6 3%@@@@	#5EBBBBBBrt   z	alt,pr,tr))r  gjΜ>5?r  )r  gn4aƂW?r  c                     g d}g d}t          j        ||dd|          \  }}t          ||d           t          ||d           dS )	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')
        r  r  r	  F)r  r  r  r   r   Nr  )r]   r  r8  r  r   r   r   r   s           re   test_alternativesz!Test_ttest_trim.test_alternatives  sq     DCCCCC!OAqrU8;= = =	6////	2E222222rt   c                 N   d}t          t          |          5  t          j        ddgddgdd           d d d            n# 1 swxY w Y   d}t          t          |          5  t          j        ddgdt          j        dgdd	
           d d d            d S # 1 swxY w Y   d S )Nz7Permutations are currently not supported with trimming.r   r   r   r    r	  )r  r  z4not supported by permutation tests or trimmed tests.rz   )r  r|   )r   r   rS   r  rY   rZ   )r]   r   s     re   test_errors_unsupportedz'Test_ttest_trim.test_errors_unsupported  sY    J:U333 	E 	EOQFQF!DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	EG:U333 	P 	POQFQNOOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps#   AA	A%(BB!Br  )gɿr(   r   c                     d}t          t          |          5  t          j        ddgddg|           d d d            d S # 1 swxY w Y   d S )Nz/Trimming percentage should be 0 <= `trim` < .5.r   r   r   r  )r   r   rS   r  )r]   r  r   s      re   test_trim_bounds_errorz&Test_ttest_trim.test_trim_bounds_error  s    A:U333 	7 	7OQFQF6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   AA	AN)r   r   r   r  r2  r6  r7  r  r  r!  r#  r%  r'  r   rt   re   r  r  =  s       	OOO%8:M			1	1	1???	/	5	1	1	1???	/	6	@	@	@	@	@	@	,b	2
H 
H 
H
  
  
  "34Db	JKF& [-v66!0 !0 76!0F8 8 8C C C4 [[N 3 3	 3 P P P [V\\\227 7 327 7 7rt   r  c            	      `   t           j                            d           t           j                            dddddd          } t           j                            ddddd          }t	          | |fd	
          }t          j        | d          } t          j        |d         d          }t          d |j        D              D ]k}|\  }}}}}}	|| j        d	         k     r!| ||||||	f         |||||||	f         k    sJ =|||||| j        d	         z
  ||	f         |||||||	f         k    sJ ld S )Nr   r"   r!   r    r   r#   r%   r   rO   r@   r  )N.r  c              3   4   K   | ]}t          |          V  d S r  r  r  s     re   r  z.test__broadcast_concatenate.<locals>.<genexpr>  s(      55588555555rt   )rY   r  r  r  r   r   r   r  )
r   r   rY  indexr  r  r  lr  r  s
             re   test__broadcast_concatenater,    s\    INN1
	q!Q1a((A
	q!Q1%%A1vB///A
%&&A
)011A55QW5556 L L 1aAqqwr{??Q1aA%&!Aq!Q1,<*======Q1a!'"+oq!34!Q1a:J8KKKKKKL 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            n# 1 swxY w Y   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            d S # 1 swxY w Y   d S )#Nr&  r  r  r  Fr  r  r  gJ?g*ʿr  g@[?gωұ?ghG?r   r?  rD  r"   r  r   r  r@   r7  rm  r   r  r  r   r  r  rX  r  rN   r  )rS   r  r   r  r  rY   r  r   r  r   r  r   ry  r   r  r  r2  r  r\   rJ  r[  rZ   r  )r   r   r8  r  rH  r   	tr_uneq_n	pr_uneq_nr  rvs3ru  rt  r  r  r_  r   r   r  r  r  s                       re   test_ttest_ind_with_uneq_varr3    s   AA	B	B?1a5111DAqqeb"X...e8+a:K:K JCHJ J !f& & & 	A	B	B?1a5111DAqqeb"X...e8+a:K:K JCHJ J !f& & &
 
B#I	B#Is8RG
C;qb!!D;qS!!D;qS!!Dhd|$$Ghd|$$G
/$1
>
>
>CAaqeRG,,,e8+dFJ;L ;L JCHJ J  !!f& & &
 /$1
>
>
>CAaqei%;<<<e8+dFJ;L ;L JCHJ J  !!f& & &
 /')WYQ%
H
H
HCAaqeC(((wy'),,De8$ JCHJ J !f& & & /'7e
D
D
DCAaqeC(((wa000De8$ JCHJ J !f& & &
 )J
/$1
>
>
>CZ((( i122Gi122G
/'7e
D
D
DCAaq		26"::...bfQii,,,&!!!wa000D%t=u==DAqq		26"::...bfQii,,,&!!!?2;w155;w155 !U4 4 4DAq bfQii444bfQii,,,&!!!r{7Aq11{7Aq11; ; ;D%t=u==DAqbfQii444bfQii,,,&!!! 
n,E	F	F	F F Fyyy)))uEEE1F F F F F F F F F F F F F F F"&))Q"&!---		"	"	" 1 1U_YYY			UKKKfbf%	' 	' 	' x!RVr1g.//U_T28F+;+;uMMM"&kArv;/	1 	1 	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s%   W22W69W6B5\\\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           d S )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_argr5  B  s    	c3AA	A&	1	1	1B	A&	1	1	1BBL2<-e<<<<BIryu5555 
AabbE	"	"BB'''' BC           rt   c                      t          j        g g           } t          | t           j        j                  sJ t          | t          j        t          j        f           d S r  )rS   r  r  r  Ttest_indResultr   rY   rZ   r  s    re   #test_ttest_ind_empty_1d_returns_nanr8  X  sO     _R$$Ffeo=>>>>>"&"&)*****rt   c                 2   t          j        d          }t          j        || d          }t	          |t          j        j                  sJ t          j        |t           j                  }t          |j
        |           t          |j        |           d S r  )rY   r  rS   r  r  r  r7  rm   rZ   r   r   r   r  s        re   test_ttest_ind_axis_size_zeror:  `  s     	A_Q+++Ffeo=>>>>>W^???N!>222/////rt   c                  .   t          j        d          } t          j        d          }t          j        | |d          }t	          |t          j        j                  sJ t          |j        j	        d           t          |j
        j	        d           d S r  rY   r  rS   r  r  r  r7  r   r   r  r   r  s      re    test_ttest_ind_nonaxis_size_zeror=  o  s    
 	A
A_Q***Ffeo=>>>>>!'000$f-----rt   c                  .   t          j        d          } t          j        d          }t          j        | |d          }t	          |t          j        j                  sJ t          |j        j	        d           t          |j
        j	        d           d S )N)r   r$   r   r  r   r@   r  r<  r  s      re   2test_ttest_ind_nonaxis_size_zero_different_lengthsr?  |  s     	A
A_Q***Ffeo=>>>>>!'000$f-----rt   c                  @   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        | |||||           d S )
Nr   r   r    r!   r"         r?     )rY   r   rS   r  )mean1mean2std1std2nobs1nobs2s         re   test_gh5686rJ    s    8QF##RXq!f%5%55E1a&!!28QF#3#3$D8S#J''3*)=)=5E	udE5$FFFFFrt   c            	          t          j        ddddddd          } t          | t          j        t          j        g           d S )Nr   r#   Fr.  )rS   r  r   rY   rZ   r  s    re   %test_ttest_ind_from_stats_inputs_zerorL    s@    '1aAqEJJJF"&"&)*****rt   c                  
   d\  } }}t           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            n# 1 swxY w Y   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          |
|           d S )N)rH   rA  rB  r"   rH   r  r   r@   r   rF   rB   r  r   r  c                 L    | dk     r|dk    s| dk    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  rX  r/  rN   r    r!   r%   rz   r{   rP  )rS   rF  rG  r;  rY   r4  r   r   r   r  ry  rJ  r  r   r[  rZ   r   )rM  rN  n3rvn1r1  r  r2  p2r3  p3rH  r   r  r  r  r8  pcr  s                     re   test_ttest_1samp_newrT    s.   JBB:>>abr"Rj>99D d111QQQqqq5k27Br7+;+;CCCEBrd111QQQqqq5k1!444EBrd111Qq5k1--EBrbR00003B////Br7###d111QQQqqq5k27B2;+?+?QGGGEBrd111QQQqqq5k1!444EBrd1QQQq5k1--EBrbR00003B////Br7###d111QQQqqq5k27Br!9+=+=1EEEEBrd111QQQqqq5k1!444EBrd1Qqqq5k1--EBrbR00003B////Br7### YYY**DAq"&))Q"&!---   W%%ItAAAqqq!!!G}a00FBT!!!QQQ']A9EEEDAq	2r9	%	%BArArT!!!QQQ']A6BBBDAq	2r6	"	"BArAr		"	"	" M MU&yyy!44rvrv6FGGG x!RVb!W-..U&tQ//1bf+26{1KLLLM M M M M M M M M M M M M M M &D1ac1Q3tAAAqqq!!!G}aFCCCFBT!!!QQQ']A&)24 4 4DAq	2r9	%	%BArArT!!!QQQ']A&)/1 1 1DAq	2r6	"	"BArArs   BQ>>RRc                  Z   t           j                            d          } |                     d          }d}|                     d          }t          j        t
          |          5  t          j        ||d           d d d            n# 1 swxY w Y   |                     d	          }t          j        ||d          }|j        j	        d
k    sJ t          j
        |                                d          }t          j        ||d          }t          |j        d           d S )Nl   iI}pC )r   rA  rB  r  z%`popmean.shape\[axis\]` must equal 1.)r"   r   rB  r   r7  )rR  rA   )r"   r   rB  )r"   rB  r@   g?)rY   r  r  r2  r   r   rS   r;  r   r  r0  r	  r   r   )r	  r   r3  rR  r   r  s         re   test_ttest_1samp_popmean_arrayrV    sX    )

 3
4
4C


$$A6Gjjjj))G	z	1	1	1 7 7!W266667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 jjjj))G

AwR
8
8
8C='))))	//11	;	;	;B

Ar
3
3
3CCJ%%%%%s   )BBBc                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestDescribec           	      b   t                      5 }t          j        d          5  t          j        t
          d          5  |                    t
          d           t          j        d          \  }}}}}}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |d           t          |d           t          |d           t          j
        |          sJ t          j
        |          sJ t          j
        |          sJ d S )	NrX  rY  r  r   r   r  r   )r  r  )r   rY   r[  r2  r  r\   r!  rS   describer   r  )r]   rd   r  r  r  r  skkurts           re   test_describe_scalarz!TestDescribe.test_describe_scalar  s      	7CX)F)F)F 	7 	7\.0IJJJ	7 	7JJ~'JKKK$)N2$6$6!Ar1aT	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	QR$$$Qx{{{x|||x~~~sX   B2B7B8BBBBBB2B	B2"B	#B22B69B6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           d S )Nr  r   r!   r   r"   r   r   r   r   r  r  r  r  ffffff?rc  rc  rc  )rs  rs  rs  rs  H,p ?r!   TUUUUUrK   rB   r   r@   rx   r&   )r&   )r}   r  r  r/   r}   gGzrz   r{   r~   r   )rY   r+  r4  rm   r   rS   rZ  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   Irwu~~rwvq'9'9:;;''')9)9)9:CX***++X***++"#a'#$q( %q 1 12q!RQRQQ!"c26666!$r:::: %qs ; ; ;2q!RQRQQ!"c26666!$r::::IcNNv!!C# %qV D D D2q!RQRQQ!"c***!$r::::j%.!HHHHj%.!IIIIIIrt   c                 v    t          j        t          j        d                    }d}t	          ||           d S )Nr"   )r  minmaxrX   varianceskewnessr   )rS   rZ  rY   r   r   )r]   r  r   s      re   test_describe_result_attributesz,TestDescribe.test_describe_result_attributes-  s6    	!--"
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           d S )Nr  r_  r   r"   r`  ra  rb  )Q?rt  rt  rt  rd  r!   re  r   rh   r   r  rK   rB   )
rY   r+  r4  rm   r   rS   rZ  r   r   r   rf  s                 re   test_describe_ddofzTestDescribe.test_describe_ddof3  s,   Irwv(:(:;<<''')9)9)9:CX***++X...//"#a'#$q( %qq 9 9 92q!RQCe,,,,2E****2E****!"c2666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
           d S )Nr  r_  r   )rB  )r   r  rc  ga+?gE,p ?gUUUUUUr@   rK   rB   )rY   r+  r4  rm   rS   rZ  r   r  r   ro  rX   rp  r   rq  r   )	r]   r   e_nobse_minmaxe_meane_vare_skewe_kurtr   s	            re   test_describe_axis_nonez$TestDescribe.test_describe_axis_noneB  s    Irwv(:(:;<< ,###$ N14(((QVV$$$AHh///AFF+++AJ...!!*fbAAAA!!*fbAAAAAArt   c                 F    t          t          t          j        g            d S r  )r   r   rS   rZ  rg  s    re   test_describe_emptyz TestDescribe.test_describe_emptyV  s    j%."55555rt   N)	r   r   r   r]  rm  rr  ru  r}  r  r   rt   re   rX  rX    su        
 
 
'J 'J 'JR0 0 0; ; ;B B B(6 6 6 6 6rt   rX  c            	         t          j        t          d          5  t          t          t
          j        d           t          t          t
          j        d           t          t          t
          j        d           d d d            n# 1 swxY w Y   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                            ddd          }t          j        |d          j        }t!          |dd           t
          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            n# 1 swxY w Y   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            n# 1 swxY w Y   t          t          t
          j        |
d#           t          t          t
          j        t/          t1          d$                    d#           t          j        d%          }
t          j        |
d&<   t          j        d!          5  t+          t          j        |
          t          j        t          j        f           d d d            n# 1 swxY w Y   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/          t1          d(                    d#           t          j        d!          5  t+          t          j        |
          t          j        t          j        f           d d d            n# 1 swxY w Y   d)}t          t          j        |
d          |           t          t          t
          j        |
d"           t          t          t
          j        |
d#           g d*}t          j        d+ t5          |          D                       }
t7          t          j        |
          d         d,k     d-           d S ).Nr  r   r  )gMc@gO?g{\᛿)g2$?gגe`?gǃK@?r   r   )r7  rN   r   r   r   r    r7  rN   r   r   r   r    r7  rN   r   r   r   r    r7  rN   r   r   r   r    r7  r  r  r  rV  {   )r   r   r:  r}   r"   rB   r   r:  r@   rx   r&   rX  rY  )geGK?gZ^<ý?rz   r{   rH   r?  rP  r   r   r/  r~   r   r%   g      >@r  )g9+%g?*ݗ?rB  )gwGw@g{8NĦ?)
r  r   :   r$   r   )   rC  r   r      c                 >    g | ]\  }}t          j        ||          S r   )rY   rm   )r  r  rY  s      re   r  z'test_normalitytests.<locals>.<listcomp>  s&    ???TQ271a==???rt   r,  T)r2  r  r\   r   r   rS   skewtestkurtosistest
normaltestrY   r   r   r   skewnormrG  r   r   laplacer   rZ   r[  r	   r   r,  r  r/  	enumerater   )	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  s                          re   test_normalitytestsr  Z  sp	   	n,E	F	F	F 8 8j%."555j%"4b999j%"2B7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 #HIw"FIw!"Wq['A+,L'.{A!O_O
'((!+A(Je.q11Iy3IJJJ(++Z888enQ//'71CDDDenQFCCC&57 7 7enQIFFF&8: : :q)):666e033gw5GHHHe0GGG&57 7 7e0	JJJ&8: : :*1--z:::
 
		ae#		>	>B>")444;Dc1----			C		8	8Bbi888?Dc""" e.qt<<<y!# # #enQT:::W  e0>>>W   		#A6AaD	X	&	&	& @ @5>!,,rvrv.>???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 9HenQ6BBBHMMM Br#vJ>"000DAq^B6vFFFFB^B6yIIIFBB&&&&B&&&&BAaCe,,,,B!%((((		"	"	" I Ij%.!HHHHI I I I I I I I I I I I I I I*enaHEEEE*end588nn&( ( ( ( 		#AFAbE		"	"	" D D5-a0026262BCCCD D D D D D D D D D D D D D D ;He0vFFF&( ( ( Br"uIb#h6:::DAq4C4V,24 4 4FB4C4V,57 7 7FBB&&&&B&&&&BAaCe,,,,B!%((((*e0!HHHH*e0!IIII*e0$uRyy//&( ( ( ( 
	"	"	" B B5+A..0@AAAB B B B B B B B B B B B B B B 9He.qVDDDhOOO*e.gFFFF*e.hGGGG 322F
	??Yv->->???@@A#A&&q)D0$77777sZ   A!B		BB9OOO<#S++S/2S/9WWW9^##^'*^'c                       e Zd Zej                            d           ej                            dd          \  ZZe	j
                            dg d          d             Zd Zd Zd	S )
TestRankSumsr   r   rH   r  )r  r  r  c                     t          j        | j        | j        |          j        }t          j        | j        | j        d|          j        }t          ||           d S )Nr  F)use_continuityr  )rS   ranksumsr   r^   r   mannwhitneyur   )r]   r  r  r  s       re   test_ranksums_result_attributesz,TestRankSums.test_ranksums_result_attributes  sk     ~dfdf*57 7 77= 	!$&$&.9; ; ;;A 	d#####rt   c                 d    t          j        | j        | j                  }t	          |d           d S )Nr7  )rS   r  r   r^   r   )r]   r   s     re   test_ranksums_named_resultsz(TestRankSums.test_ranksums_named_results  s.    nTVTV,,C!899999rt   c                     t          t          d          5  t          j        | j        | j        d           d d d            d S # 1 swxY w Y   d S )Nzalternative must be 'less'r   r   r  )r   r   rS   r  r   r^   rg  s    re   test_input_validationz"TestRankSums.test_input_validation  s    :-IJJJ 	A 	AN4646x@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   "AA
A
N)r   r   r   rY   r  r  r  r   r^   r2  r6  r7  r  r  r  r   rt   re   r  r    s        INN19>>!R  DAq[],L,L,LMM$ $ NM$: : :A A A A Art   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestJarqueBerac                    t           j                            d           t           j                            ddd          }t           j                            dd          }t           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         k               t          t          j        |          j
        t          j        |          j
        k               t          t          j        |          d         t          j        |          d         k               t          t          j        |          j
        t          j        |          j
        k               t          t          j        |          d         t          j        |          d         k               t          t          j        |          j
        t          j        |          j
        k               d S )Nr  r   r   r<  rV  )rY   r  r  r  r  rayleighr   rS   jarque_berar   r   r   r]   r   r^   r*  s       re   test_jarque_bera_statsz%TestJarqueBera.test_jarque_bera_stats  s   
	y!!!IQ6**Iv..Iq&))U&q))!,e.?.B.B.LMMMU&q))!,e.?.B.B.IJJJU&q))!,e.?.B.B.LMMMU&q))!,e.?.B.B.IJJJU&q))!,e.?.B.B.LMMMU&q))!,e.?.B.B.IJJJ!!$$Q'%*;A*>*>q*AABBB!!$$+e.?.B.B.IIJJJ!!$$Q'%*;A*>*>q*AABBB!!$$+e.?.B.B.IIJJJ!!$$Q'%*;A*>*>q*AABBB!!$$+e.?.B.B.IIJJJJJrt   c                 |   t           j                            d           t           j                            ddd          }t	          j        t          |                    x}\  }}t	          j        t          |                    x}\  }}t	          j        |                    dd                    x}\  }	}
t          ||cxk    o)|	cxk    o"|j
        cxk    o|j
        cxk    o
|j
        k    nc            t          ||cxk    o)|
cxk    o"|j        cxk    o|j        cxk    o
|j        k    nc            d S )Nr  r   r   r<  r   P  )rY   r  r  r  rS   r  r,  tuplerW   r   r   r   )r]   r   jb_test1JB1r  jb_test2JB2rQ  jb_test3JB3rR  s              re   test_jarque_bera_array_likez*TestJarqueBera.test_jarque_bera_array_like  sR   
	y!!!IQ6**".tAww77773".uQxx88873".qyyE/B/BCCC73scccccccccX%7cccc8;MccccQYQcccccdddbWWWWBWWWW(/WWWWX_WWWWWWWWXXXXXrt   c                 F    t          t          t          j        g            d S r  )r   r   rS   r  rg  s    re   test_jarque_bera_sizez$TestJarqueBera.test_jarque_bera_size  s    j%"3R88888rt   c                    t           j                            t          t	          d                              }|                    d          }t          t          j        |d           t          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          ||           d S )N
JarqueBera)r   re  r  r@   r   r   )rY   r  r  ry  r  r   rS   r  r  r   r   r   r  )	r]   r	  r   r   s0r  s1r  resTs	            re   r  zTestJarqueBera.test_axis
  s$   i##C\(:(:$;$;<<JJGJ$$U&qt444&qwwyy11	3 	3 	3 ***"1QT7++B"1QT7++BBx000
RH--- 1---T"""""rt   N)r   r   r   r  r  r  r  r   rt   re   r  r    sV        K K K0	Y 	Y 	Y9 9 9# # # # #rt   r  c                  n    t          j        d          } t          t          t          j        |            d S )NrI  )rY   r   r   r   rS   r  r  s    re   test_skewtest_too_few_samplesr    s+     		#A*ena00000rt   c                  n    t          j        d          } t          t          t          j        |            d S )Nr  )rY   r   r   r   rS   r  r  s    re   !test_kurtosistest_too_few_samplesr  "  s,     		#A*e0!44444rt   c                   F    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
S )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                 h   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||           t	          ||           t          ||k               t	          |d           t	          |d           t	          |d           t	          |d           t          |d| j                   t          |d| j                   d S )	Nr  r  r    rV  g=_A?r7   glPz.?rS   r  rU   Yr   r   r
   r8   	r]   u1r  u2rQ  u3rR  u4p4s	            re   test_mannwhitneyu_one_sidedz,TestMannWhitneyU.test_mannwhitneyu_one_sided;  s(   #DFDFGGGB#DFDF	JJJB#DFDF	JJJB#DFDFGGGBRRbRRRRB 1t?OPPPPB 3AQRRRRRRrt   c                 $   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||           t	          |d           t	          |d           t          |d| j                   d S )Nr  r  r  rV  glPz.?r7   rS   r  rU   r  r   r
   r8   r]   r  r  r  rQ  s        re   test_mannwhitneyu_two_sidedz,TestMannWhitneyU.test_mannwhitneyu_two_sidedK  s    #DFDFLLLB#DFDFLLLBRRRB 2(,(8	: 	: 	: 	: 	: 	:rt   c                 p   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          ||k               t	          |d           t	          |d           t	          |d           t	          |d           t          |d| j                   t          |d	| j                   d S )
NFr  r  r  r  rV  gii5?r7   g22?r  r  s	            re   &test_mannwhitneyu_no_correct_one_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_one_sidedU  sN   #DFDFE068 8 8B#DFDFE09; ; ;B#DFDFE09; ; ;B#DFDFE068 8 8B 	RRbRRRRB 1t?OPPPPB 4$BRSSSSSSrt   c                 (   t          j        | j        | j        dd          \  }}t          j        | j        | j        dd          \  }}t	          ||           t	          |d           t	          |d           t          |d| j                   d S )NFr  r  r  rV  g22?r7   r  r  s        re   &test_mannwhitneyu_no_correct_two_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sidedi  s    #DFDFE0;= = =B#DFDFE0;= = =B 	RRRB 4(,(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	           d S )
N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   r  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r  r   r  r   r   r   r   r  r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r  r  r   r   r  r   r   r  r   r  r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   r   r  r   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  r,  s      re   test_mannwhitneyu_onesz'TestMannWhitneyU.test_mannwhitneyu_onesu  s    H . . . / /& H & & & ' ' 	*1aVDDD:	< 	< 	< 	*1aYGGG2	4 	4 	4*1a[III5	7 	7 	7 	7 	7rt   c                 l    d}t          j        | j        | j        d          }t	          ||           d S )Nr7  r  r  )rS   r  rU   r  r   rh  s      re   #test_mannwhitneyu_result_attributesz4TestMannWhitneyU.test_mannwhitneyu_result_attributes  s8    ,
 VDDDC,,,,,rt   N)r   r   r   rU   r  r8   r  r  r  r  r  r  r   rt   re   r  r  )  s        	- 	- 	-A	N 	N 	NA KS S S : : :T T T(
: 
: 
:)7 )7 )7V- - - - -rt   r  c                      g d} g d}t          t          j        | |          d         dd           d}t          j        | |          }t          ||           t	          |j        |j                   d S )N)"r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )"g-@g+@g(@rG  r   r{  g333333@ffffff@g333333@r+   r  皙	@r   r  r  r*   rx  gffffff@ @333333?r  r)   ?r  r  r  r  r4  rq  rI  r(   r	  r	  rp  r   g/"?r"   r   )r   rS   pointbiserialrr   r   r   r   )r   r^   r   r   s       re   test_pointbiserialr    s    	 	 	A	& 	& 	&A ,Q2215wBBB +J

q!
$
$CZ(((#-00000rt   c                  J   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           d S )N)r   r   r!   )r$   r7  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  r1  r
  r  r2  r   r   rY  r  valuesrepsr  transformed_valuess                re   test_obrientransformr    s   	)))		B		r	"	"BzzHBqE8$$$	,,,		B		r	"	"Bx''HBqE8$$$  R((DAqBqEBqE #BB//GAq!BqEBqEBqE 
1BXDDDFFFHI IF e3B"==vqQQQQ 1b\\F8'''((D9VT""D #< #< #< = =y+T22H"4((FfQi1======rt   r(  c                     t          j        | |||          }t          |||           t          |j        |           d S N)rA   r?   weightsr  )rS   gmeanr   r   r?   
array_likerM  rA   r?   r  r  r   s          re   check_equal_gmeanr    sI     	JTHHHAAwT****%     rt   c                     t          j        | |||          }t          |||           t          |j        |           d S r  )rS   hmeanr   r   r?   r  s          re   check_equal_hmeanr    sG    JTHHHAAwT****%     rt   c                     t          j        | ||||          }t          |||           t          |j        |           d S r  )rS   pmeanr   r   r?   )r  r  rM  rA   r?   r  r  r   s           re   check_equal_pmeanr    sI    J$eWMMMAAwT****%     rt   c                   h    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S )TestHarMeanc                 2    g d}d}t          ||           d S N)r   r   r   r   r  r]   r   rM  s      re   test_0zTestHarMean.test_0  &    II!W%%%%%rt   c                 ^    g d}d}t          ||           g d}d}t          ||           d S )Nru  =b#A@r  gQ?r   r  s      re   test_1d_listzTestHarMean.test_1d_list  sF    555!W%%%LL:!W%%%%%rt   c                 V    t          j        g d          }d}t          ||           d S )Nru  r  rY   r   r  r  s      re   test_1d_arrayzTestHarMean.test_1d_array	  s3    H>>>??!W%%%%%rt   c                 z    t          j        ddg          }d}t          t          j        |          |           d S )Nr   r   r}   )rY   r   r   rS   r  r  s      re   test_1d_array_with_zeroz#TestHarMean.test_1d_array_with_zero  s8    HaVU[^^W-----rt   c                 r    t          j        g d          }t          t          t          j        |           d S )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/    HZZZ  j%+q11111rt   c                 @    g dg dg dg}d}t          ||           d S NrH   rB  r  r  r  r  rv  r  r  r?  r{  x   gmWUC@r   r  s      re   test_2d_listzTestHarMean.test_2d_list  s=    ///1D1D1DE!W%%%%%rt   c                 d    g dg dg dg}d}t          t          j        |          |           d S r  )r  rY   r   r  s      re   test_2d_arrayzTestHarMean.test_2d_array  sE    ///1D1D1DE"(1++w/////rt   c                 l    g dg dg dg}t          j        g d          }t          ||d           d S )Nr  r  r  )U|ϊ6@g4.=C@JQ6LsJ@E]P@r   r@   r  r  s      re   test_2d_axis0zTestHarMean.test_2d_axis0%  sS    ///1D1D1DE(OOOPP!W1------rt   c                     g dg dg dg}t          j        g d          }t          t          j        |d          |           d S )NrH   r   r  r  r  r  )r  r}   r  r  r   r@   rY   r   r   rS   r  r  s      re   test_2d_axis0_with_zeroz#TestHarMean.test_2d_axis0_with_zero+  s[    __...0C0C0CD(GGGHHAA...88888rt   c                 l    g dg dg dg}t          j        g d          }t          ||d           d S )Nr  r  r  )g3333333@O@y@Y@r   r@   r  r  s      re   test_2d_axis1zTestHarMean.test_2d_axis10  sS    ///1D1D1DE(<<<==!W1------rt   c                     g dg dg dg}t          j        g d          }t          t          j        |d          |           d S )Nr  r  r  )r}   r"  r#  r   r@   r  r  s      re   test_2d_axis1_with_zeroz#TestHarMean.test_2d_axis1_with_zero6  s[    __...0C0C0CD(;;;<<AA...88888rt   c                 @    g d}g d}d}t          |||d           d S )Nr   rH   r#   rH   r"   r    r    h㈵>r  r  r   r]   r   r  rM  s       re   test_weights_1d_listz TestHarMean.test_weights_1d_list;  s8     JJ**!WgDAAAAA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	           d S )
Nr   r"   rH   r#   r   r    r   r*  rA   r  r  r  r,  s       re   test_weights_2d_array_axis0z'TestHarMean.test_weights_2d_array_axis0C  sz     Hq!fr1g1v.//(RGaVaV455(Aq6""!W1gDIIIIIIrt   c                     t          j        g dg dg          }t          j        g dg dg          }t          j        ddg          }t          ||d|d	           d S )
Nr(  r$   r$   r$   r)  r  r    r$   r   r*  r/  r  r,  s       re   test_weights_2d_array_axis1z'TestHarMean.test_weights_2d_array_axis1K  sn     Hjjj))),--(JJJ			233(Aq6""!W1gDIIIIIIrt   c                     t          j        g d          }t           j                            g dg d          }d}t          |||d           d S )Nr   rH   r#   rr  rH   r"   r    rr  r   r   r   r   ry  r    r*  r+  )rY   r   rh  r  r,  s       re   test_weights_masked_1d_arrayz(TestHarMean.test_weights_masked_1d_arrayS  sX     H^^^$$%++nnn<<<+@@!WgDAAAAAArt   N)r   r   r   r  r  r	  r  r  r  r  r  r   r$  r&  r-  r0  r3  r8  r   rt   re   r  r    s       & & &
& & && & &. . .
2 2 2
& & &0 0 0. . .9 9 9
. . .9 9 9
B B BJ J JJ J JB B B B B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d
 Zd Zd Zd Zd ZdS )TestGeoMeanc                 2    g d}d}t          ||           d S r  r  r  s      re   r  zTestGeoMean.test_0]  r  rt   c                 ~    g d}d}t          ||           g d}t          dd          }t          ||d           d S )Nru  sŤF@r  rG  r  r  r  )r  r   r  s      re   r  zTestGeoMean.test_1d_listb  sU    555!W%%%LLw//!W5111111rt   c                     t          j        g d          }d}t          ||           t          g dt                    }t	          dd          }t          ||t                     d S )Nru  r>  r  rG  r  r>   )rY   r   r  r   r   r  s      re   r	  zTestGeoMean.test_1d_arrayl  sj    H>>>??!W%%%,,,((w//!WG444444rt   c                 @    g dg dg dg}d}t          ||           d S Nr  r  r  g/,$qJ@r<  r  s      re   r  zTestGeoMean.test_2d_listw  s=    ///1D1D1DE!W%%%%%rt   c                 Z    g dg dg dg}d}t          t          |          |           d S rA  )r  r   r  s      re   r  zTestGeoMean.test_2d_array}  sC    ///1D1D1D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	           d S )
Nr  r  r  )g4@A@g5H@g`8|wЭN@gm~&+R@r   r@   r  r  rA   r  rY   r   r  r  s      re   r  zTestGeoMean.test_2d_axis0  s    ///1D1D1DE(NNNOO!W1----<<<|||<==%%!W1599999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
           d S )Nr  r  r  )gD" 6"6@gcP@g
ҧZ@r   r@   r  rG  r  r  rD  )rY   r   r  r   )r]   r   rM  r  s       re   r$  zTestGeoMean.test_2d_axis1  s    ///1D1D1DE(CCCDD!W1----<<<|||<==-))Aq	""!W15999999rt   c                 P    t          g d          }d}t          ||d           d S )N)g}Ô%ITr  gu <7~r  rZ  r  )r   r  r  s      re   test_large_valueszTestGeoMean.test_large_values  s6    '''((!W5111111rt   c                     g d}d}t          j        d          5  t          ||           d d d            d S # 1 swxY w Y   d S )N
rH   rB  r  r  r  r  rv  r  r  r   r}   rX  r/  )rY   r[  r  r  s      re   test_1d_list0zTestGeoMean.test_1d_list0  s    333[X&&& 	* 	*a)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   :>>c                     t          j        g d          }d}t          j        d          5  t          ||           d d d            d S # 1 swxY w Y   d S )NrJ  r}   rX  )divide)rY   r   r[  r  r  s      re   test_1d_array0zTestGeoMean.test_1d_array0  s    H<<<==[))) 	* 	*a)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AAAc                     g d}t           j        }t          j        d          5  t          ||           d d d            d S # 1 swxY w Y   d S )N)
rH   rB  r  r  r  r  rv  r  r  rN   rX  rY  )rY   rZ   r[  r  r  s      re   test_1d_list_negzTestGeoMean.test_1d_list_neg  s    444&[*** 	* 	*a)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AAAc                 @    g d}g d}d}t          |||d           d S Nr  )r   r"   r#   r!   r    GZ*oG8@r*  r+  r<  r,  s       re   r-  z TestGeoMean.test_weights_1d_list  s8     OO!//!WgDAAAAAArt   c                     t          j        g d          }t          j        g d          }d}t          |||d           d S rR  rE  r,  s       re   test_weights_1d_arrayz!TestGeoMean.test_weights_1d_array  sL     H___%%(???++!WgDAAAAAArt   c                     t          j        g d          }t           j                            g dg d          }d}t          |||d           d S )Nr  )r   r"   r#   r!   r    r"   )r   r   r   r   r   r   ry  rS  r*  r+  )rY   r   rh  r  r,  s       re   r8  z(TestGeoMean.test_weights_masked_1d_array  sa     H'''((%++0007I7I7I+JJ!WgDAAAAAArt   N)r   r   r   r  r  r	  r  r  r  r$  rH  rK  rN  rP  r-  rU  r8  r   rt   re   r:  r:  \  s        & & &
2 2 25 5 5& & &- - -: : :	: 	: 	:2 2 2
* * ** * ** * *B B BB B BB B 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                            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                            dg dg dg dgdfg dg dg dgdfg          d             Ze
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                            dg d          d             ZdS )TestPowMeanc                 L    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qv%1--rt   c                 l    t          j        || |z  z            t          j        |          z  d|z  z  S r  )rY   r  )r   r   r  s      re   wpmean_referencezTestPowMean.wpmean_reference  s0    wA~&&8AaC@@rt   c                 X   t          j        t          d          5  t          j        g ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        g dt          j        dg                     d d d            d S # 1 swxY w Y   d S )NzPower mean only defined forr   r&  r   )r2  r   r   rS   r  rY   r   rg  s    re   test_bad_exponentzTestPowMean.test_bad_exponent  s   ]:-JKKK 	( 	(K			A3'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(]:-JKKK 	2 	2K			28QC==111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s#   AAA'+BB#&B#c                     g dd}}t                               t          j        |          |          }t	          |||           g dd}}t          j        d          }t	          |||           d S )Nru  r+   r  r   r/   )rX  r[  rY   r   r  r   r]   r   r   rM  s       re   r  zTestPowMean.test_1d_list  su    888#1--bhqkk1==!Q(((||Q1'9::!Q(((((rt   c                     t          j        g d          d}}t                              ||          }t	          |||           d S )Nru  g      )rY   r   rX  r[  r  ra  s       re   r	  zTestPowMean.test_1d_array  sI    xAAABBD1--a33!Q(((((rt   c                     t          j        ddg          d}}d}t          t          j        ||          |           d S )Nr   r   rN   r}   )rY   r   r   rS   r  ra  s       re   r  z#TestPowMean.test_1d_array_with_zero  s@    xA1U[A&&00000rt   c                     t          j        g d          d}}t          j        t          d          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr  gGz?zPower mean only defined if allr   )rY   r   r2  r   r   rS   r  )r]   r   r   s      re   r  z-TestPowMean.test_1d_array_with_negative_value  s    x


##T1]:-MNNN 	 	K1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAArZ  rH   rB  r  r  r  r?  r;  r(   c                     t                               t          j        |          |          }t	          |||           d S r  )rX  r[  rY   r   r  ra  s       re   test_2d_axisnonezTestPowMean.test_2d_axisnone  s9     --bhqkk1==!Q(((((rt   r  r  r  r  c                     fdt          t          d                             D             }t          |d           d S )Nc                     g | ]Vt                               t          j        fd t	          t                              D                                 WS )c                 ,    g | ]}|                  S r   r   )r  r  r   r  s     re   r  z=TestPowMean.test_2d_list_axis0.<locals>.<listcomp>.<listcomp>  s!    999a!A$q'999rt   )rX  r[  rY   r   r  r  )r  r  r   r   s    @re   r  z2TestPowMean.test_2d_list_axis0.<locals>.<listcomp>   so     
 
 
  ''999995Q==999::A 
 
 
rt   r   r@   )r  r  r  ra  s    `` re   test_2d_list_axis0zTestPowMean.test_2d_list_axis0  sd    
 
 
 
 
 3qt99%%	
 
 
 	!Qa000000rt   c                 J    fd|D             }t          ||d           d S )Nc                 j    g | ]/}t                               t          j        |                    0S r   )rX  r[  rY   r   )r  a_r   s     re   r  z2TestPowMean.test_2d_list_axis1.<locals>.<listcomp>  s1    LLLB;..rx||Q??LLLrt   r   r@   )r  ra  s     ` re   test_2d_list_axis1zTestPowMean.test_2d_list_axis1  s<     MLLL!LLL!Qa000000rt   c                     g dd}}g d}t                               t          j        |          ||          }t	          ||||d           d S )Nr(  gރBr)  r*  r+  )rX  r]  rY   r   r  r]   r   r   r  rM  s        re   r-  z TestPowMean.test_weights_1d_list  sV    zz;1**..rx{{AwGG!QtDDDDDDrt   c                     t          j        g d          d}}t           j                            g dg d          }t          j        ||          }t	          ||||d           d S )	Nr5  r   r6  r7  ry  r  r*  r+  )rY   r   rh  averager  rp  s        re   r8  z(TestPowMean.test_weights_masked_1d_array  sk    x''1%++nnn<<<+@@*Q000!QtDDDDDDrt   )rA   fun_namer   ))Nr]  g3E#@)r   r  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
           d S )Nr]  c                 <    t                               | |          S r  )rX  r]  )r   rA   r  r   s      re   funz.TestPowMean.test_weights_2d_array.<locals>.fun%  s    "33Aq'BBBrt   r   r"   rH   r#   r   r    )rA   r  r*  r/  )getattrrS   rY   r   r  )r]   rA   rt  r   rw  r   r  rM  s      `    re   test_weights_2d_arrayz!TestPowMean.test_weights_2d_array  s     )))C C C C C C %**CHq!fr1g1v.//(RGaVaV455#adG444!QdG$OOOOOOrt   N)r   r   r   r[  r]  r_  r  r	  r  r  r2  r6  r7  rY   r   rf  rj  rn  r-  r8  ry  r   rt   re   rX  rX    s_       . . .A A A2 2 2) ) )) ) )
1 1 1
  
 [8b"XCy
)4	0
"(RHr2hS	2
3
3S	9	; 
) ) 
) [---/B/B/B
CT	J??,,,.A.A.A
BC	H	J 
1 1 
1 [---/B/B/B
CT	J??,,,.A.A.A
BC	H	J 
1 1 
1E E EE E E [!	 	 	 	P 	P 	P 	P 	Prt   rX  c                       e Zd Z ej        d          dz   ZdZe                    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dS )TestGeometricStandardDeviationrG  r   gv aZ@r   r    r!   c                 b    t          j        | j                  }t          || j                   d S r  )rS   gstdarray_1dr   gstd_array_1dr]   gstd_actuals     re   r	  z,TestGeometricStandardDeviation.test_1d_array5  s,    j//T%788888rt   c                 |    t          j        t          | j                            }t	          || j                   d S r  )rS   r}  r  r~  r   r  r  s     re    test_1d_numeric_array_like_inputz?TestGeometricStandardDeviation.test_1d_numeric_array_like_input9  s4    jt}!5!566T%788888rt   c                     t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )NzInvalid array inputr   z3This should fail as it can not be cast to an array.)r2  r   r   rS   r}  rg  s    re   ,test_raises_value_error_non_array_like_inputzKTestGeometricStandardDeviation.test_raises_value_error_non_array_like_input=  s    ]:-BCCC 	N 	NJLMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	Ns   >AAc                     t          j        t          d          5  t          j        t          j        | j        dg                     d d d            d S # 1 swxY w Y   d S )NNon positive valuer   r   r2  r   r   rS   r}  rY   ru  r~  rg  s    re   "test_raises_value_error_zero_entryzATestGeometricStandardDeviation.test_raises_value_error_zero_entryA  s    ]:-ABBB 	6 	6Jry44555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6   .AAAc                     t          j        t          d          5  t          j        t          j        | j        dg                     d d d            d S # 1 swxY w Y   d S )Nr  r   rN   r  rg  s    re   &test_raises_value_error_negative_entryzETestGeometricStandardDeviation.test_raises_value_error_negative_entryE  s    ]:-ABBB 	7 	7Jry55666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7r  c                     t          j        t          d          5  t          j        t          j        | j        t
          j        g                     d d d            d S # 1 swxY w Y   d S )NzInfinite valuer   )	r2  r   r   rS   r}  rY   ru  r~  rJ  rg  s    re   !test_raises_value_error_inf_entryz@TestGeometricStandardDeviation.test_raises_value_error_inf_entryI  s    ]:-=>>> 	; 	;Jry99:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   8A!!A%(A%c                     t          g dt          j        dddgg          }t          j        |d          }t          |t          j         dt          j        g                     d S )N)r   r   r   rC  r   r   r    r@   r!   )r   rY   rZ   rS   r}  r   )r]   r   r  s      re   test_propagates_nan_valuesz9TestGeometricStandardDeviation.test_propagates_nan_valuesM  s]    ===261a"3455j+++RXq"&k%:%:;;;;;rt   c                     t          j        t          d          5  t          j        | j        | j        j                   d d d            d S # 1 swxY w Y   d S )NzDegrees of freedom <= 0r   rh   )r2  r   r   rS   r}  r~  r   rg  s    re   )test_ddof_equal_to_number_of_observationszHTestGeometricStandardDeviation.test_ddof_equal_to_number_of_observationsR  s    ]:-FGGG 	? 	?Jt}4=+=>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   &AAAc                 f    t          j        | j        d           }t          || j                   d S )Nr@   )rS   r}  array_3dr   r  r  s     re   test_3d_arrayz,TestGeometricStandardDeviation.test_3d_arrayV  s1    jT:::T%788888rt   c                 `    t          j        | j        d          }t          |ddg           d S )Nr  r@   g~d@g<
?)rS   r}  r  r   r  s     re   test_3d_array_axis_type_tuplez<TestGeometricStandardDeviation.test_3d_array_axis_type_tupleZ  s3    jU;;;j*%=>>>>>rt   c                     t          j        | j        d          }t          j        g dg dg dg          }t          ||           d S )Nr   r@   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?rS   r}  r  rY   r   r   r]   r  gstd_desireds      re   test_3d_array_axis_0z3TestGeometricStandardDeviation.test_3d_array_axis_0^  sa    jQ777xOOOOOOOOO!
  
 	\22222rt   c                     t          j        | j        d          }t          j        g dg dg          }t          ||           d S )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_1g  sX    jQ777xLLLLLL!
   	\22222rt   c                     t          j        | j        d          }t          j        g dg dg          }t          ||           d S )Nr   r@   )gt80?gі?g?)gۘ]~?gmT6(?g	G?r  r  s      re   test_3d_array_axis_2z3TestGeometricStandardDeviation.test_3d_array_axis_2o  sX    jQ777x??????!
   	\22222rt   c                    t           j                            | j        dk    | j                  }t	          j        |d          }t	          j        | j        d          }g dg dg}t          ||           t          |j        |           d S )NrC  r   r@   r  r`  )	rY   rh  masked_wherer  rS   r}  r   r   rz  )r]   rh  r  r  rz  s        re   test_masked_3d_arrayz3TestGeometricStandardDeviation.test_masked_3d_arrayw  s    U 2DMBBj!,,,z$-a888		999%\222[%t,,,,,rt   N)r   r   r   rY   r   r~  r  rW   r  r	  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rt   re   r{  r{  /  s       ry##a'H"M1a((H9 9 99 9 9N N N6 6 67 7 7; ; ;< < <
? ? ?9 9 9? ? ?3 3 33 3 33 3 3- - - - -rt   r{  rQ  c                    d}d}t           j                            d          }|                    dd|f          }||                    dd|f          z   }|                    dd|f          }t          |||          D ]t\  }}}	t          j        t          |          5  t          j
        |||	|           }
d d d            n# 1 swxY w Y   |
t          j        |||	|           j        k    sJ ud S )	Nzk'binom_test' is deprecated in favour of 'binomtest' from version 1.7.0 and will be removed in Scipy 1.12.0.rH   l	   }l6wIK&Ww^?9u r?  r   r   r   r  )rY   r  r  integersr  rb  r2  r  r  rS   
binom_test	binomtestr   )r  r  rd  r	  rU   r  Pr   r  r   r   s              re   test_binom_test_deprecationr    s\   6O C
)

 G
H
HCRsf%%A	CLLC#(((AAq3&!!Aq!Q<< O O1a\,ODDD 	E 	E"1aDDDC	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	EeoaA;GGGNNNNNNO Os   !CC
	C
	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 ]4\  }}t	          t          j        |||          j        |dd|z             5t	          t          j        ddd          j        dd           d S )Nrp  r	  r"   r  g?rS  gffffff?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   rj  r  rb  r
   rS   r  r   )ppr  r   r  r   r   s         re   test_binomtestr    s   	S#q11T433T4335 
6 
6B 	AA( ( (G b'"" H H3EOAq!44;S(*NQ4F	H 	H 	H 	H 	HC5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 ];fdt          dz             D             }t          || dz
           d           <d S )Nr   )r(   r   r(   )r  r   r   r  )r  r  r   r  r  )r        ?r   r   r  r  )r        ?      ?r   r  r  r  )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   c                 F    g | ]}t          j        |d           j        S )r(   )rS   r  r   r  r  r  s     re   r  z#test_binomtest2.<locals>.<listcomp>  s*    HHHa1c**1HHHrt   rH   rB   )r  r   )r  r  r  s     @re   test_binomtest2r    s     
c
   +++888GGG	 	 		* 	* 	*	E 	E 	E	 	 	D" 1b\\ 9 9HHHH5Q<<HHHD$qs)R888889 9rt   c                     d t          dd          D             } t          | t          j        t	          |           t
                               t          j        g d          }t          j        g d          }d t          dd          D             }d t          dd          D             }t          ||d	           t          ||d	           d S )
Nc           	      v    g | ]6}t          d d          D ]#}t          j        |||z  d|z            j        $7S )r   rI   r   r  rS   r  r   r  s      re   r  z#test_binomtest3.<locals>.<listcomp>  s]     9 9 95B<<9 9&' OAqsBqD))0 9 9 9 9rt   r   rI   )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?c           	      |    g | ]9}t          d d          D ]&}t          j        |dz   ||z  d|z            j        ':S r   rI   r   r   r  r  s      re   r  z#test_binomtest3.<locals>.<listcomp>  a     < < <eArll< <)* qsAaCA..5 < < < <rt   c           	      |    g | ]9}t          d d          D ]&}t          j        |dz
  ||z  d|z            j        ':S r  r  r  s      re   r  z#test_binomtest3.<locals>.<listcomp>  r  rt   rK   rB   )r  r   rY   r4  r  r  r   r   )r	  binom_testm1binom_testp1res4_p1res4_m1s        re   test_binomtest3r    s   9 91b\\9 9 9Drws4yy#../// 8 
 
 
  LP 8 
 
 
  L>< <a< < <G< <a< < <G r::::r::::::rt   c                        e Zd Zd Zd Zd ZdS )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                              dd          }t          j        dd                              dd          }d}t	          j        |dd|          }t          t          j        ||          |           d}t	          j        |j        dd|          }t          t          j        ||          |j                   d S )NrI   rp  rH   r	  r&   left)tailr   tE]t?r    r   rt  rG  r#   r!   r"   r   )r  rA   r@   r   )rY   r   r   sortrS   trim1rW   r  )r]   r   r  rA   trimmeds        re   
test_trim1zTestTrim.test_trim1  sA   IbMMRWU[C001129R==AAARWU[C001129Q<<@@@RWU[Cf===>>Yq"%%	' 	' 	'RWU[E???@@Yq"%%	' 	' 	'U[C(("---U[Cf555r::: 	U[S))2...U[U888"===U[T**B/// IbMM!!!Q''i2&&q!,,+a6===RWW4000#666+ac3V$???RWW4000#%8888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                              dd	          d                    t          j        d	d
                              d	d	                     t          t          j        t	          j        t          j        d                              d	d          j        d                    t          j        g dg dg                     t          t          t          j        t          j        d                              d	d          j        d           t          t	          j        g d          g            t          t	          j        g d          g            t          t	          j        g d          g            d S )NrI   r  r    r%   r	  )r   r    r!   r"   r#   r$   r%   rG  r#   r!   rB  r   )r   r%   rF   rB  )r    r&   rA  rE   rt  rp  )rY   r   r   r  rS   trimbothr   rW   r  r   r   r  s     re   test_trimbothzTestTrim.test_trimboth;  s   IbMMRWU^Au5566	!QHHHRWU^As3344X33344	6 	6 	6RWU^BIbMM,A,A!Q,G,GMMNNYq"%%--a33	5 	5 	5RWU^BIbMM,A,A!Q,G,G,I,02 2 3 3X~~~~~~>??	A 	A 	A 	j%.imm++Aq113T	; 	; 	; 	U^B,,b111U^B..333U^B--r22222rt   c                 X   t          j        g d          }t          j        g d          }t          j        d                              dd          |d d f         }t          j        d                              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                              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                            d           t           j        	                    dd          }dD ]R}t          j        |d|          }t          j        t          j
        ||d          d          }	t	          ||	           St          j        |dd           }t          j        |                                d          }	t	          ||	           t          t          t
          j        |d           t	          t          j        g d          t           j                   t	          t          j        g d          t           j                   d S )N)r!   r%   r   r   r&   r"   rH   r   r$   r    r#   )r    r"   r   r   r   r!   rG  r#   r!   F)orderr   )r*   r0   g      -@g     4@rc  )r   r   r    r   )r   rx   r  r  rd  g      ,@)r$   rI   rJ   rE   rC  r#   rU  r   r"   r   rc  rH   rQ   r&   rd  rA  r  rB  r   rF   r!   rK   r%   r    rG   )r"   r!   r    r   r   r   r*   r  rB  )r"   r#   r!   r$   r  )r   r   r   r    rN   r@   r   rI  r}   )rY   r   r   rW   r   rS   	trim_meanr  r  r  r  r  r   r   rZ   )
r]   r   idxr  r  idx4a4rA   r  r  s
             re   test_trim_meanzTestTrim.test_trim_meanM  s   H77788h)))**Yr]]""1a((aaa0Yr]]""1as"33CF;U_R..X44455	7 	7 	7U_R..X22233	5 	5 	5x%%Yr]]""1a((qqq1U_R..X;;;<<	> 	> 	>% % %U_Q--t444U_]]]D993??? 		tIb|44$ 	% 	%D?1d666D?2;q$#:#:DAADt$$$$q$T222qwwyy$//T4   j%/1c::: 	U_R--rv666U_R--rv66666rt   N)r   r   r   r  r  r  r   rt   re   r  r    sA        9 9 983 3 3$$7 $7 $7 $7 $7rt   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestSigmaClipc                 f   t          j        t          j        ddd          t          j        ddd          f          }d}t          j        |          \  }}}t          |                                |k               t          |                                |k                t          ||	                                ||
                                z  z
             t          ||	                                ||
                                z  z              t          |j        |j                   d S )Nr  rM      r   rB  r"   r!   rY   rj  r  rS   	sigmaclipr   minmaxr   rX   rq   r   r]   r   factrY  lowupps         re   test_sigmaclip1zTestSigmaClip.test_sigmaclip1u  s    NBKT266Ar18M8MNOOoa((3##S!&&((T!%%''\1222S!&&((T!%%''\1222QVQV$$$$$rt   c                    t          j        t          j        ddd          t          j        ddd          f          }d}t          j        |||          \  }}}t          |                                |k               t          |                                |k                t          ||	                                ||
                                z  z
             t          ||	                                ||
                                z  z              t          |j        d           t          |j        d	           d S )
Nr  rM   r  r   rB  r"   r)   r!   $   r  r  s         re   test_sigmaclip2zTestSigmaClip.test_sigmaclip2  s    NBKT266Ar18M8MNOOoat443##S!&&((T!%%''\1222S!&&((T!%%''\1222QVQQVR     rt   c                 ~   t          j        t          j        ddd          t          j        ddd          f          }d}t          j        |||          \  }}}t          |                                |k               t          |                                |k                t          ||	                                ||
                                z  z
             t          ||	                                ||
                                z  z              t          |t          j        ddd                     d S )Nr  rM   rI   r    ?)rY   rj  r  rS   r  r   r  r  r   rX   rq   r  s         re   test_sigmaclip3zTestSigmaClip.test_sigmaclip3  s   NBKT266Kc1557 8 8oat443##S!&&((T!%%''\1222S!&&((T!%%''\1222QCr2233333rt   c                     t          j        t          j        ddd          t          j        ddd          f          }d}t          j        |||          }d}t          ||           d S )	Nr  rM   rI   r  r  r    r  )clippedrj  rk  )rY   rj  r  rS   r  r   )r]   r   r  r   r   s        re    test_sigmaclip_result_attributesz.TestSigmaClip.test_sigmaclip_result_attributes  sl    NBKT266Kc1557 8 8oat,,2
C,,,,,rt   c                 ~    t          j        d          }t          t          j        |          d         |           d S )NrH   r   )rY   r4  r   rS   r  r  s     re   test_std_zerozTestSigmaClip.test_std_zero  s4    GBKKU_Q''*A.....rt   N)r   r   r   r  r  r  r 	  r	  r   rt   re   r  r  t  s_        % % %	! 	! 	!	4 	4 	4- - -/ / / / /rt   r  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestAlexanderGovernc                 B   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n J |j	        |j	        cxk    r|j	        cxk    r|	j	        k    sn J d S )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   )	rA  rF   rK   rK   rK   rJ   rJ   rJ   rI   r>   )
rY   r   r  r  uint8r   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  s   4444444444446 Xd"(333
Xd"(333
Xd"(333
xBJ777):6	):6	):6	+\: I$4 7 7 7 7 7 7 7 7$/$67 7 7 7 7 7#y': = = = =#= = = ='2'<= = = = = = = =rt   c                    t          t          d          5  t          j        ddgg            d d d            n# 1 swxY w Y   t          t          d          5  t          j        ddgd           d d d            n# 1 swxY w Y   t          t          d          5  t          j        ddgdg           d d d            n# 1 swxY w Y   t          t          d          5  t          j        ddgt          j        t          j        g           d d d            n# 1 swxY w Y   t          t          d          5  t          j        ddgddgddgg           d d d            d S # 1 swxY w Y   d S )	Nz+Input sample size must be greater than one.r   r   r   zInput samples must be finite.z%Input samples must be one-dimensionalr    r!   )r   r   rS   r	  rY   rJ  rg  s    re   test_bad_inputsz#TestAlexanderGovern.test_bad_inputs  s   : .B C C C 	. 	.!1a&"---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. : .B C C C 	- 	-!1a&!,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- : .B C C C 	/ 	/!1a&1#...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ :-LMMM 	< 	<!1a&2626*:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< : .< = = = 	< 	<!1a&Aq6Aq6*:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<sU   ;??B  BB!CC
C
'.D!!D%(D%E--E14E1c                     g d}g d}g d}t          j        |||          }t          |j        d           t          |j        d           dS )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   r	  r   r   r   )r]   onetwoeightsolns        re   test_compare_rz"TestAlexanderGovern.test_compare_r  sz    :" " "	I 	I 	I7 7 7 $S#u5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
           dS )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@r  r   g R8߱?r  g.UikL@g&Zݱ?Nr	  )r]   youngmiddleoldr	  s        re   test_compare_scholarz(TestAlexanderGovern.test_compare_scholar  s    0 0 08 8 8G G G$UFC88T::::W48888	: 	111Z00000rt   c                     g d}g d}t          j        ||          }t          |j        dd           t          |j        dd           	 t          |j        d           t          |j        d           d	S )
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?r*  r   gOZ}?g9$?g6MDd}?Nr	  )r]   r  r  r	  s       re   test_compare_scholar3z)TestAlexanderGovern.test_compare_scholar3A  s    " " "! ! ! $R,,t<<<<XD9999	8 		222Y/////rt   c                     g ddt           j        gg}t          j        | }t	          |j        t           j                   t	          |j        t           j                   d S )Nr  r   rY   rZ   rS   r	  r   r   r   )r]   r_  r   s      re   test_nan_policy_propogatez-TestAlexanderGovern.test_nan_policy_propogates  sQ    q"&k*#T*SZ(((S]BF+++++rt   c                     g ddt           j        gg}t          t          d          5  t	          j        |ddi d d d            d S # 1 swxY w Y   d S )Nr  r   rQ  r   r|   r~   )rY   rZ   r   r   rS   r	  r]   r_  s     re   test_nan_policy_raisez)TestAlexanderGovern.test_nan_policy_raisez  s    q"&k*:-LMMM 	= 	=!4<G<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   AAAc                     g d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                   d S )	N)r   r   r    Nr!   r   rd  rD  r  )r   rd  rD  r|   rz   r"	  )r]   args_nanargs_no_nanres_nan
res_no_nans        re   test_nan_policy_omitz(TestAlexanderGovern.test_nan_policy_omit  s    &&&BFB(;<#||[[[1'EfEE*K8
W^Z%6777W&
(<=====rt   c                     d}t          t          j        |          5  t          j        g dg d          }t	          |j        t          j                   t	          |j        t          j                   d d d            d S # 1 swxY w Y   d S )Nz9An input array is constant; the statistic is not defined.r   r   r   )	r   rS   r   r	  r   r   rY   rZ   r   )r]   r   r   s      re   r   z'TestAlexanderGovern.test_constant_input  s    I%4C@@@ 	- 	-'(=(=(=(=(=(=? ?C///RV,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   ABB
BN)r   r   r   r	  r	  r	  r	  r 	  r#	  r&	  r,	  r   r   rt   re   r	  r	    s        > > >(< < <*@= @= @=D01 01 01d00 00 00d, , ,= = =
> > >- - - - -rt   r	  c            	          e Zd Zd Zd Zd Zd Zd Zd Ze	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
                            dg d          d             Zd Zd Zd Zd Ze	j
                            ddg dfg          d             Zd Zd ZdS )TestFOneWayc                 ~    t          j        ddgddg          \  }}t          |d           t          |d           d S )Nr   r   r}   r   rS   f_onewayr   r]   r  r   s      re   test_trivialzTestFOneWay.test_trivial  sE    ~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           d S )	Nr   r   r!   r  r   r(   r  r  )rS   r2	  r   r   rY   r   r3	  s      re   r   zTestFOneWay.test_basic  sY     ~q!fq!f--1Q1rws||+%888888rt   c                     t          j        dgdgg d          \  }}t          |d           t          |d           d S )Nr   r  rI  r  r1	  r3	  s      re   test_known_exactzTestFOneWay.test_known_exact  sK     ~qcA3			2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           d S )	N    r>       gŸ?r  r  )rY   r   uint16rS   r2	  r   )r]   r   r   r  r   s        re   test_large_integer_arrayz$TestFOneWay.test_large_integer_array  si    Hc3Zry111Hc3Zry111~a##1 	.U;;;;;;rt   c                     t          j        ddgt           j                  }t          j        ddgt           j                  }t          j        ||          }d}t          ||           d S )Nr9	  r:	  r>   r;	  r<	  r7  )rY   r   r=	  rS   r2	  r   )r]   r   r   r   r   s        re   test_result_attributesz"TestFOneWay.test_result_attributes  sb    Hc3Zry111Hc3Zry111nQ"",
C,,,,,rt   c                    g d}|D ]r}d}t           j                            t           j                            t           j                            t
                    d|                    }t          |d          5 }|                                                    d          }d d d            n# 1 swxY w Y   d |dd         D             }t          j
        |d	
          }|j        \                      t                    t          j                  }	t          |d         d                   }fd|	D             }
t!          j        |
 }d}||v rd}t%          |d         ||d|z             td S )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_anovar   
c                 ^    g | ]*}|                                 |                                +S r   )stripsplit)r  lines     re   r  z)TestFOneWay.test_nist.<locals>.<listcomp>  s<     * * *$ JJLL* * * *rt   r  rX  r  )skiprowsr   rN   c                 (    g | ]}|k             S r   r   )r  r  r   r^   s     re   r  z)TestFOneWay.test_nist.<locals>.<listcomp>  s!    ---1QqAvY---rt   )rB	  rC	  rD	  r  zFailing testcase: %s)r  r  )ospathabspathjoindirname__file__openreadrH	  rY   loadtxtr  r  r  r  r  rS   r2	  r   )r]   	filenames	test_caser  fnamera  content	certifieddatafcatyxlistr   hard_tcr   r^   s                @@re   	test_nistzTestFOneWay.test_nist  s   ? ? ?	 # 	H 	HIDGOOBGLL1J1J1BI%O %O P PEeS!! /Q&&((..../ / / / / / / / / / / / / / /* *'"R%. * * *IJur222E7DAqA9Q<<Dil2&''A--------E.%(C AGG##CFAD$:Y$FH H H H H-	H 	Hs   >(B22B6	9B6	za, b, expected)rr  rr  rr  r2  r   c                     d}t          t          j        |          5  t          j        ||          \  }}|sJ ||k                	 d d d            d S # 1 swxY w Y   d S )N%Each of the input arrays is constant;r   )r   rS   r   r2	  )r]   r   r   r
  r   ra  r   s          re   r   zTestFOneWay.test_constant_input  s     6%4C@@@ 	$ 	$>!Q''DAq##a8m##1#	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   )AAArA   )r7  rN   r   r   c                 F   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          t          j        |          5  t	          j        ||||          \  }}d d d            n# 1 swxY w Y   dD ]}	t	          j        t          j        ||	|          t          j        ||	|          t          j        ||	|                    \  }
}t          ||	         |
d           t          ||	         |d           dD ]}	t          t          j        |          5  t	          j        t          j        ||	|          t          j        ||	|          t          j        ||	|                    \  }
}t          ||	         |
           t          ||	         |           d d d            n# 1 swxY w Y   d S )N)r   r!   r    r    )r   r"   r    r    )r    r#   r    r    r  )r    r   r"   r    )r!   r#   r"   r    )r!   r    r"   r    )r   r"   r"   r    )r"   r"   r"   r    )r   r    r"   r    )r%   r   r"   r    )r   r   r"   r    )r!   r    r!   r    )r!   r   r!   r    )r"   r!   r!   r    r  r   r   r`	  r   r@   r  r  r  rm  )
rY   r   r  r   rS   r   r2	  taker   r   )r]   rA   r   r   rY  	take_axisr1  ra  r   r  fjpjs               re   test_2d_inputszTestFOneWay.test_2d_inputs  s   Hlll"ll"ll"ll"ll	$ % %
 Hlll"ll"ll"ll"ll"ll"ll"ll$ % % Hlll"ll"ll"ll$ % %
 7??AAAIII:%4HEEE 	6 	6>!Q555DAq	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6
  	2 	2A^BGAq)$<$<$&GAq)$<$<$&GAq)$<$<> >FB AaD"51111AaD"511111 	' 	'Ae8III ' '1i(@(@(*1i(@(@(*1i(@(@B BB QqT2&&&QqT2&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	' 	's%   +CCCBHH	H	c           
         dt          j        dd                              ddd          z  }dt          j        dd                              dd	d          z  }t          j        dt          j        dd
                              ddd          z            }t	          j        |||d          \  }}|j        dk    sJ |j        dk    sJ t          |j        d                   D ]}t          |j        d                   D ]l}t	          j        ||d d |f         ||d d |f         ||d d |f                   \  }}	t          ||||f                    t          |	|||f                    md S )Nr   r      r!   r"   r$   r      r%   q   r@   )r!   r$   r   )	rY   r   rW   cosrS   r2	  r  r  r   )
r]   r   r   rY  ra  r   r  r  fijpijs
             re   test_3d_inputszTestFOneWay.test_3d_inputs  s   biY''//1a888biY''//1a888F1RYsI..66q!Q???@@~aAA...1w&    w&    qwqz"" 	. 	.A171:&& . . >!Aqqq!G*a111aj!Aqqq!G*MMSQq!tW---Qq!tW----.	. 	.rt   c                     d}t          t          j        |          5  t          j        g dg g d          }t	          |t
          j        t
          j        f           d d d            d S # 1 swxY w Y   d S )Nall input arrays have length 1.r   r&  r  r   rS   DegenerateDataWarningr2	  r   rY   rZ   r]   r   r  s      re   test_length0_1d_errorz!TestFOneWay.test_length0_1d_error%  s    /%5SAAA 	3 	3^IIIr<<<@@F"&"&!1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   AA,,A03A0c                    d}t          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            d S # 1 swxY w Y   d S )Nrp	  r   r    r!   r   r"   r  )	r   rS   rr	  rY   r4  r2	  rm   rZ   r   )	r]   r   ncolsr   r   rY  ra  r   nanss	            re   test_length0_2d_errorz!TestFOneWay.test_length0_2d_error,  s   /%5SAAA 	" 	"EE
##AE
##AE
##A>!Q**DAq7E8777DD!!!D!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   BC

CCc                     d}t          t          j        |          5  t          j        dgdgdgdg          }t	          |t
          j        t
          j        f           d d d            d S # 1 swxY w Y   d S )Nrp	  r   rH   rI   rJ   rK   rq	  rs	  s      re   test_all_length_onezTestFOneWay.test_all_length_one8  s    /%5SAAA 	3 	3^RD2$rd;;F"&"&!1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   AA--A14A1r_  r   r&  c                 |    t          t                    5  t          j        |  d d d            d S # 1 swxY w Y   d S r  )r   r  rS   r2	  r%	  s     re   test_too_few_inputszTestFOneWay.test_too_few_inputs>  s    9%% 	" 	"ND!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   155c                     t          j        d          }t          j        d          }t          t           j                  5  t	          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr  r"   r!   r   r@   )rY   r4  r   r  rS   r2	  r]   r   r   s      re   test_axis_errorzTestFOneWay.test_axis_errorC  s    GFOOGFOO2<(( 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A''A+.A+c                     t          j        d          }t          j        d          }t          t                    5  t	          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr  r~	  r   r@   )rY   r4  r   r   rS   r2	  r	  s      re   test_bad_shapeszTestFOneWay.test_bad_shapesI  s    GFOOGFOO:&& 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A""A&)A&N)r   r   r   r4	  r   r7	  r>	  r@	  r^	  r2  r6  r7  rY   r   rJ  rZ   r   rf	  rn	  rt	  rx	  rz	  r|	  r	  r	  r   rt   re   r/	  r/	    s         9 9 9  < < <- - -H H H@ [-	,,,		)))!4!4rvqkB	,,,		,,,!7!7"&"&9IJ0
  $ $	 $ [V^^^44-' -' 54-'^. . ."3 3 3
" 
" 
"3 3 3 [Vb999,%788" " 98") ) )) ) ) ) )rt   r/	  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestKruskalc                    dg}dg}t          j        ||          \  }}t          |d           t          |t           j        j                            |d                     t          j        t          j        |          t          j        |                    \  }}t          |d           t          |t           j        j                            |d                     d S )Nr   r   r   )	rS   kruskalr   r
   r  r  r  rY   r   r]   r   r^   hr   s        re   test_simplezTestKruskal.test_simpleQ  s    CC}Q""1QAu27::1a@@AAA}RXa[["(1++661QAu27::1a@@AAAAArt   c                    g d}g d}t          j        ||          \  }}t          |dd           t          |t           j        j                            dd                     t          j        t          j        |          t          j        |                    \  }}t          |dd           t          |t           j        j                            dd                     d S )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_basic[  s    OO}Q""1Au"5555Au27::5!DDEEE}RXa[["(1++661Au"5555Au27::5!DDEEEEErt   c                 v    dg}ddg}d}d}||z  }t          j        ||          \  }}t          ||           d S )Nr   r   r  r  )rS   r	  r   r]   r   r^   h_uncorrr  r
  r	  r   s           re   test_simple_tiezTestKruskal.test_simple_tiee  sR    CF*d?}Q""1 	Q!!!!!rt   c                     g d}g d}d}dt          d          dz  z
  }||z  }t          j        ||          \  }}t          ||           d S )N)r   r   r   r   )r   r   r   r   r   r        )r  rS   r	  r
   r	  s           re   test_another_tiezTestKruskal.test_another_tiep  se    LLLL>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                            |d                     d S )Nr  r/  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_groupsy  s    IIIIFG5,--::d?}Q1%%1Ax(((Au27::1a@@AAAAArt   c                     g d}g d}g }t          t          j        |||          t          j        t          j        f           d S )Nr  r/  )r   rS   r	  rY   rZ   r  s       re   r  zTestKruskal.test_empty  sF    IIIIU]1a++bfbf-=>>>>>rt   c                 d    g d}g d}t          j        ||          }d}t          ||           d S )Nr   r	  r7  )rS   r	  r   )r]   r   r^   r   r   s        re   test_kruskal_result_attributesz*TestKruskal.test_kruskal_result_attributes  sB    OOmAq!!,
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           d S )Nrx   r&   rz   r{   rH  r~   r   )	rY   r   rZ   r   rS   r	  r   r   r   r  s     re   r  zTestKruskal.test_nan_policy  s    IcNNv!U]1a((2626*:;;;EM!Q6BBBJOOOj%-A'JJJJj%-A(KKKKKKrt   c                     d}t           j                            |          }t           j                            |          dz   }t          j        ||          \  }}d}t          ||           d S )Nr  r  r   )rY   r  r  rS   r	  r
   )r]   r  r   r^   r	  r   r
  s          re   test_large_no_samplesz!TestKruskal.test_large_no_samples  sb    IOOAIOOA#}Q""1Ax(((((rt   N)r   r   r   r	  r   r	  r	  r	  r  r	  r  r	  r   rt   re   r	  r	  P  s        B B BF F F	" 	" 	") ) )
B 
B 
B? ? ?- - -L L 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                            dg d          ej                            de          d                         Zej                            de          d             ZdS )TestCombinePvaluesc                 `    t          j        g dd          \  }}t          |dd           d S )Nr,  r	  rs  r  r_  gf?r!   r7   rS   combine_pvaluesr
   )r]   xsqr   s      re   test_fisherzTestCombinePvalues.test_fisher  s:    &}}}XFFFQAwA666666rt   c                 `    t          j        g dd          \  }}t          |dd           d S )Nr	  stoufferr_  S:X?r!   r7   r	  r]   Zr   s      re   test_stoufferz TestCombinePvalues.test_stouffer  s:    $]]]:FFF1AwA666666rt   c                 `    t          j        g dd          \  }}t          |dd           d S )N)r(   r(   r(   r	  r_  r(   r!   r7   r	  r	  s      re   test_stouffer2z!TestCombinePvalues.test_stouffer2  s:    $\\\*EEE1As222222rt   c                     t          j        g ddt          j        d                    \  }}t	          |dd           d S )Nr	  r	  r    r`  r  r	  r!   r7   )rS   r	  rY   r4  r
   r	  s      re   test_weighted_stoufferz)TestCombinePvalues.test_weighted_stouffer  sK    $]]]:-/WQZZ9 9 91AwA666666rt   c                     t          j        g ddt          j        d                    \  }}t	          |dd           d S )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  sP    $]]]:-/Xi-@-@B B B1Av1555555rt   c                 `    t          j        g dd          \  }}t          |dd           d S )Nr	  r  r_  gE
)??r!   r7   r	  r	  s      re   test_pearsonzTestCombinePvalues.test_pearson  s:    $]]]9EEE1AwA666666rt   c                 `    t          j        g dd          \  }}t          |dd           d S )Nr	  tippettr_  gBi?r!   r7   r	  r	  s      re   test_tippettzTestCombinePvalues.test_tippett  s:    $]]]9EEE1Av1555555rt   c                 `    t          j        g dd          \  }}t          |dd           d S )N)rp  rp  rp  mudholkar_georger_  g&?r!   r7   r	  r	  s      re   test_mudholkar_georgez(TestCombinePvalues.test_mudholkar_george  s;    $\\\:LMMM1AxQ777777rt   c                     t          j        g dd          \  }}t          j        g dd          \  }}t          j        g dd          \  }}t          d||z   z  |d           d S )	Nr	  r	  r_  r  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  s}    $]]];MNNN1(xHHHS(yIIISC3s7OQA>>>>>>rt   )r  r  r	  r	  r	  r[  )singler  r  r`  c                 6   d\  }}t           j                            d          }|dk    rHt          j        ||f|                    |                    }t          j        dd|          |d d df<   nk|dk    r1t          j        ||ft          j        dd|                    j        }n4|dk    r.t          j        |                    dd	||f
          d          }fd|D             }t          j        t          j	        |          dk              sJ d S )N)rH   r$   l	   TrU(	"b-= r	  rp  rr  r   r  r  r   r  r@   c                 H    g | ]}t          j        |           d         S )r_  r   )rS   r	  )r  r  r`  s     re   r  z8TestCombinePvalues.test_monotonicity.<locals>.<listcomp>  s>     
 
 
 !'&999!<
 
 
rt   )
rY   r  r  rm   r  r  r  r  r  diff)r]   r[  r`  r  r  r	  pvaluesscombined_pvaluess     `     re   test_monotonicityz$TestCombinePvalues.test_monotonicity  s0    1i##$KLL hw1vszz!}}55H[c155HQQQTNNw1vr{3Q'?'?@@BHH  ws{{1aq!f{==AFFFH
 
 
 
#
 
 
 vbg.//145555555rt   c                 n    t          j        g d|          }t          |j        |j        f|           d S )Nr	  r_  )rS   r	  r   r   r   )r]   r`  r   s      re   r|  zTestCombinePvalues.test_result  s:    #MMM&AAAcmSZ0#66666rt   N)r   r   r   r	  r	  r	  r	  r	  r	  r	  r	  r	  methodsr2  r6  r7  r	  r|  r   rt   re   r	  r	    s(       7 7 7
7 7 73 3 37 7 7
6 6 6
7 7 76 6 68 8 8? ? ? ONNG[Y(C(C(CDD[Xw//6 6 0/ ED6. [Xw//7 7 0/7 7 7rt   r	  c                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )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           d S )Nr   r   r!   r    r   r   r   rS   wasserstein_distancerg  s    re   &test_distinct_value_and_weight_lengthsz@TestCdfDistanceValidation.test_distinct_value_and_weight_lengths  sW     	j%"<cA3aV	- 	- 	-j%"<qcA3AOOOO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           d S )Nr   r   r   r    r	  rg  s    re   test_zero_weightz*TestCdfDistanceValidation.test_zero_weight  sf     	j%"<!fqcAq6	+ 	+ 	+j%"<!fqcAq6A3	0 	0 	0 	0 	0rt   c           	      \    t          t          t          j        ddgddgddgddg           d S )Nr   r   r   r    rN   r	  rg  s    re   test_negative_weightsz/TestCdfDistanceValidation.test_negative_weights  s>    j%"<!fq!fq!fq"g	7 	7 	7 	7 	7rt   c                     t          t          t          j        g ddg           t          t          t          j        dgg            d S )Nr   r   r	  rg  s    re   test_empty_distributionz1TestCdfDistanceValidation.test_empty_distribution  s>     	j%"<b1a&IIIj%"<qc2FFFFFrt   c           	      r    t          t          t          j        g dddgdt          j        dgddg           d S )Nr  r   )r   r   rS   r	  rY   rJ  rg  s    re   test_inf_weightz)TestCdfDistanceValidation.test_inf_weight  sG    j%"<ii!Q!RVQ!Q	A 	A 	A 	A 	Art   N)	r   r   r   r5  r	  r	  r	  r	  r	  r   rt   re   r	  r	    st         
P P P0 0 07 7 7
G G GA A A A Art   r	  c                   <    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestWassersteinDistancez5 Tests for wasserstein_distance() output values.
    c                 V   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           d S )	Nr   r   r(   r    r  r   r  r&  r   rS   r	  rg  s    re   r	  z#TestWassersteinDistance.test_simple  s     	&1vsQFQC@@	 	 	 	E6FQC!Q!& &	 	 	 	E6FQC!Q!& &	 	 	 	E6IIyyy" "	 	 	 	 	rt   c           	          t          t          j        g dg d          d           t          t          j        g dddgg dddg          d           d S 	Nr&  r  r   )r   r   r   r!   r!   r   r?  r    )r   rS   r	  rg  s    re   test_same_distributionz.TestWassersteinDistance.test_same_distribution+  sq     	U/			999EEqIII&|||aV'3||aV= =	 	 	 	 	rt   c           	      B   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           d S )Nr   r   r  r"   rH   r  )rI   rJ   rK   rF   rA  )r,   g@r  )r  r$   r  )r    r   r   )r   r    r   r*   r	  rg  s    re   
test_shiftz"TestWassersteinDistance.test_shift4  s     	E6sQC@@!DDDE6taSAA2FFF&8L8L8LMM	 	 	 	&'0yy)))= =	 	 	 	 	rt   c           
          t          t          j        g dg dg dg d          t          j        g dg dg dg d                     d S N)r   r   r   r   r   r   r"   )r   r    r    r    r    r!   r!   )r   r   r   r   r   r   r   )r"   r   r   )r   r!   r    r   r   r!   r	  rg  s    re   test_combine_weightsz,TestWassersteinDistance.test_combine_weightsA  s     	&%%%'<'<'<%%%'<'<'<> > &yyy)))'0yy)))= =		> 	> 	> 	> 	>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        |          |                     d S )Nr  r  rs  rN   rr  )
rY   r   
zeros_liker   rS   r	  rX   ry  r  rs  )r]   r  r  	u_weights	v_weightss        re   test_collapsez%TestWassersteinDistance.test_collapseK  s     Ic2s##M!&q!,,GBF1II	  	  	  Ic!ff%%	dddO	&q!Y	BBJrvayy)444	6 	6 	6 	6 	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                     d S N)r   r   r<  r   )r   r   r   r   r	  rg  s    re   r	  z(TestWassersteinDistance.test_zero_weightZ  sp    &~~~1v'0yy1a&: :&1v1v1v1vFF	H 	H 	H 	H 	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 }|                    t          d           t          t          j        ddt          j        gt          j        dg          t          j                   d d d            d S # 1 swxY w Y   d S Nr   r   ry   )	r   rS   r	  rY   rJ  r   r[   r\   rZ   r]   rd   s     re   test_inf_valuesz'TestWassersteinDistance.test_inf_valuesa  sc    	&1bf~1v>>F	 	 	 	&1bf~|DDF	 	 	 	&BF7BF';aVDDF	 	 	    	CJJ~'7888*Aq"&>BFA;GG  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   A"EEEN)r   r   r   r5  r	  r	  r	  r	  r	  r	  r	  r   rt   re   r	  r	    s                > > >6 6 6H H H    rt   r	  c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	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             d S )Nr   r   r   r(   r    r  r   r  r&  g3Ey?r   rS   energy_distancerY   r   rg  s    re   r	  zTestEnergyDistance.test_simplex  s    	!1a&1#1vs;;GAJJO	 	 	 	E1FQC!Q!& &GAJJ	 	 	 	E1FQC!Q!& &	 	 	 	!)))YYY77GAJJ**	, 	, 	, 	, 	,rt   c           	          t          t          j        g dg d          d           t          t          j        g dddgg dddg          d           d S r	  )r   rS   r	  rg  s    re   r	  z)TestEnergyDistance.test_same_distribution  sl     	U*999iii@@!DDD!,,,Aq!fM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             d S )Nr   r   r   r  r"   gS[:XL	@r	  rg  s    re   r	  zTestEnergyDistance.test_shift  sm     	E11#s;;RWQZZHHH!2$,,GAJJ	! 	! 	! 	! 	!rt   c           
          t          t          j        g dg dg dg d          t          j        g dg dg dg d                     d S r	  r   rS   r	  rg  s    re   r	  z'TestEnergyDistance.test_combine_weights  s     	!"7"7"79N9N9N"7"7"79N9N9NP P!)))YYY			999MM	O 	O 	O 	O 	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                     d S r	  r	  rg  s    re   r	  z#TestEnergyDistance.test_zero_weight  sk    !...1a&)))aVLL!1a&1a&1a&1a&AA	C 	C 	C 	C 	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 }|                    t          d           t          t          j        ddt          j        gt          j        dg          t          j                   d d d            d S # 1 swxY w Y   d S r	  )	r   rS   r	  rY   rJ  r   r[   r\   rZ   r	  s     re   r	  z"TestEnergyDistance.test_inf_values  sY    	U*Aq"&>Aq6BBBFKKK!1a.BF7A,??F	 	 	 	!1rvgrv"6A??F	 	 	    	CJJ~'7888%q!RVnrvqkBB  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r	  N)
r   r   r   r5  r	  r	  r	  r	  r	  r	  r   rt   re   r	  r	  t  s~         , , ,   ! ! !O O OC C C    rt   r	  c                   j    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dS )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          ||k               t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )	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_sided  s   $TVTVHHHB$TVTVKKKB$TVTVKKKB$TVTVHHHBB0@AAAAB0@AAAAbB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	: 	: 	:rt   c                 N   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nr  r  r7   r	  r	   ҏGw?rS   r 
  rU   r  r
   r8   r  s        re   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sided  s    $TVTVMMMB$TVTVMMMBB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:rt   c                 F   t          j        | j        | j                  \  }}t          j        | j        | j                  \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nr7   r	  r	  r
  r
  r  s        re   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default  s    $TVTV44B$TVTV44BB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:rt   c           	          d}d}d}t          |dv           t          t          t          j        | j        | j        |||           d S )NrK  rH  r  rQ  r   r   r   rS   r 
  rU   r  r]   r  distributionr|   s       re   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error  s\     
#CCDDDj)ff!" 	" 	" 	" 	" 	"rt   c                 N   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nr  r
  r7   r	  r	  g "H[?r
  r  s        re   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_norm  s    $TVTV(KKKB$TVTV(KKKBB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:rt   c           	          d}d}d}t          |dv           t          t          t          j        | j        | j        |||           d S )Nr  rK  r  )rH  r  r	
  r

  s       re   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error  s[    ! 
?2333j)ff!" 	" 	" 	" 	" 	"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                   d S r  )rS   r 
  rU   r  r   rY   rZ   )r]   r  r  r  rQ  r  rR  s          re   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput  s    $TVR00B$R0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                   d S )Nr   r   r!   r	  r  r{   )rY   rZ   rS   r 
  r   r]   rU   r  r  r  r  rQ  s          re   &test_brunnermunzel_nan_input_propagatez8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagate  s    1aAq!Q1aArv>---$QkBBBB$QkBB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        |||||           d S )Nr   r   r!   r	  r  rH  r~   )rY   rZ   r   r   rS   r 
  )r]   rU   r  r  r
  r|   s         re   "test_brunnermunzel_nan_input_raisez4TestBrunnerMunzel.test_brunnermunzel_nan_input_raise*  s    1aAq!Q1aArv>---!
j)!" 	" 	" 	" 	j)!" 	" 	" 	" 	" 	"rt   c                 d   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                   d S )Nr   r   r!   r	  rz   r{   r7   r	  r	  r
  )rY   rZ   rS   r 
  r
   r8   r
  s          re   !test_brunnermunzel_nan_input_omitz3TestBrunnerMunzel.test_brunnermunzel_nan_input_omit@  s    1aAq!Q1aArv>---$Qf===B$Qf===BB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:rt   c                     g d}g d}t          j        t          d          5  t          j        ||d           ddd           dS # 1 swxY w Y   dS )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  zp-value cannot be estimatedr   rH  r
  N)r2  r  r\   rS   r 
  r,  s      re   test_brunnermunzel_return_nanz/TestBrunnerMunzel.test_brunnermunzel_return_nanN  s     IIOO\.0MNNN 	8 	8137777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   A		AAc                     g d}g d}t          j        t          d          5  t          j        ||d          \  }}ddd           n# 1 swxY w Y   t          |d           dS )	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   r  r
  Nr   )r2  r  r\   rS   r 
  r   )r]   r   r^   r  r   s        re   test_brunnermunzel_normal_distz0TestBrunnerMunzel.test_brunnermunzel_normal_distX  s     IIOO\.0@AAA 	D 	D&q!(CCCDAq	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	DQs   AAAN)r   r   r   rU   r  r8   r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r   rt   re   r	  r	    s        222A)))AK: : :.: : :: : :" " "	: 	: 	:" " "
! 
! 
!	! 	! 	!" " ",: : :8 8 8	 	 	 	 	rt   r	  c                   *    e Zd ZdZd Zd Zd Zd ZdS )TestRatioUniformsz# Tests for rvs_ratio_uniforms.
    c           	      <   t           j        j        }t          j         |t          j        d                              t          j        d          z  }t          j         |d                    | |}}}t          j        ||||dd          }t          t          j        |d          d         dk    d	           t          j        d
 dddt          j        d          z  dd          }t          t          j        |d          d         dk    d	           d S )Nr   r   i	  i90  r  rF  r   r  Tc                 ,    t          j        |            S r  )rY   r  r  s    re   r  z6TestRatioUniforms.test_rv_generation.<locals>.<lambda>s  s     rt   rN   r@  )umaxvminvmaxr   r:  expon)	rS   rF  pdfrY   r   rvs_ratio_uniformsr   r  r  )r]   ra  v_boundr#
  r$
  r%
  rG  s          re   test_rv_generationz$TestRatioUniforms.test_rv_generationh  s
    JN'!!BGAJJ--((271::5711Q44==7(GDd&q$d49; ; ;U\#v..q1D8$??? &';';!,-AbfRjjL,0uF F F 	U\#w//2T94@@@@@rt   c                    t           j        j        }t          j         |t          j        d                              t          j        d          z  }t          j         |d                    | |}}}t          j        ||||dd          }t          j        ||||dd          }t          j        ||||dd          }t          ||           t          ||                                           t          |j        d           t          |j        d           t          j        ||||dd	          }	t          j        ||||d
d	          }
t          |	                                |
           t          |	j        d           t          j        ||||d          }t          j        ||||dd          }t          j        ||||dd          }t          ||           t          ||           d S )Nr   r   r    r  r  r  )r    r   )r    r    r    rJ      r:  r   r  )	rS   rF  r'
  rY   r   r(
  r   r  r  )r]   ra  r)
  r#
  r$
  r%
  rz  r{  r  r4r5r6r7r8s                 re   
test_shapezTestRatioUniforms.test_shapex  s	   JN'!!BGAJJ--((271::5711Q44==7(GDd%atT379 9 9%atT379 9 9%atT379 9 9RR&&&RXt$$$RXv&&&%atT	357 7 7%atT357 7 7RZZ\\2&&&RXy)))%atTMMM%atT379 9 9%atT379 9 9RRrt   c                    t           j        j        }t          j         |t          j        d                              t          j        d          z  }t          j         |d                    | |}}}t          j                            d           t          j        ||||d          }t          j        ||||dd          }t          ||           d S )Nr   r   r  r  r  r  )	rS   rF  r'
  rY   r   r  r  r(
  r   )r]   ra  r)
  r#
  r$
  r%
  rz  r{  s           re   test_random_statez#TestRatioUniforms.test_random_state  s    JN'!!BGAJJ--((271::5711Q44==7(GDd
	t%atTGGG%atT379 9 9Rrt   c                 H   t           j        j        }t          t          t           j        |ddd           t          t          t           j        |ddd           t          t          t           j        |ddd           t          t          t           j        |ddd           d S )Nr   r    )r'
  r#
  r$
  r%
  rN   r   )rS   rF  r'
  r   r   r(
  )r]   ra  s     re   test_exceptionsz!TestRatioUniforms.test_exceptions  s    JNj.AAAA	O 	O 	O 	Oj.AAAA	O 	O 	O 	O 	j.ABQQ	P 	P 	P 	Pj.AAAA	O 	O 	O 	O 	O 	Ort   N)r   r   r   r5  r*
  r3
  r5
  r7
  r   rt   re   r 
  r 
  d  sc         A A A   @  O O O O Ort   r 
  c                       e Zd ZdZd Zd Zd Zd Zd Ze	j
                            ddd	g          d
             Zd Zd ZdS )TestMGCErrorWarningsz1 Tests errors and warnings derived from MGC.
    c                     t          j        d          }dgdz  }t          t          t          j        ||           t          t          t          j        ||           d S )NrB  r"   rY   r   r   r   rS   multiscale_graphcorrr,  s      re   test_error_notndarrayz*TestMGCErrorWarnings.test_error_notndarray  sN    IbMMC"Hj%"<aCCCj%"<aCCCCCrt   c                     t          j        d                              dd          }|                    dd          }t          t          t
          j        ||           d S )Nr?  rD  r!   rH   )rY   r   rW   r   r   rS   r<
  r,  s      re   test_error_shapez%TestMGCErrorWarnings.test_error_shape  sO    IcNN""2q))IIb"j%"<aCCCCCrt   c                     t          j        d          }t          j        d          }t          t          t          j        ||           d S )Nr    r;
  r,  s      re   test_error_lowsamplesz*TestMGCErrorWarnings.test_error_lowsamples  s9    IaLLIaLLj%"<aCCCCCrt   c                    t          j        dt                    }t           j        |d<   t	          t
          t          j        ||           t          j        d          }t	          t
          t          j        ||           d S )NrB  r>   r   )rY   r   r  rZ   r   r   rS   r<
  r,  s      re   test_error_nansz$TestMGCErrorWarnings.test_error_nans  sb    Ib&&&v!j%"<aCCCIbMMj%"<aCCCCCrt   c                 x    t          j        d          }d}t          t          t          j        |||           d S )NrB  r   )compute_distancer;
  )r]   r   rE
  s      re   test_error_wrongdisttypez-TestMGCErrorWarnings.test_error_wrongdisttype  sD    IbMMj%"<a'7	9 	9 	9 	9 	9 	9rt   r  rN   1c                 t    t          j        d          }t          t          t          j        |||           d S )NrB  r  r;
  )r]   r  r   s      re   test_error_repsz$TestMGCErrorWarnings.test_error_reps  s3     IbMMj%"<aNNNNNNrt   c                 x    t          j        d          }d}t          t          t          j        |||           d S )NrB  r?  rI
  )rY   r   r   r\   rS   r<
  )r]   r   r  s      re   test_warns_repsz$TestMGCErrorWarnings.test_warns_reps  s6    IbMM^U%?ADQQQQQQrt   c                     t          j        d          }t          j        d          t           j        z  }t	          t
          t          j        ||           d S )NrB  )rY   r   r4  rJ  r   r   rS   r<
  r,  s      re   test_error_inftyz%TestMGCErrorWarnings.test_error_infty  s@    IbMMGBKK"& j%"<aCCCCCrt   N)r   r   r   r5  r=
  r?
  rA
  rC
  rF
  r2  r6  r7  rJ
  rL
  rN
  r   rt   re   r9
  r9
    s         D D DD D DD D DD D D9 9 9 [V
&  O O	 O
R R RD D D D Drt   r9
  c                      e Zd ZdZddZej        j        ej                            dg d          d                         Z	ej        j        e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dS )TestMGCStatz) Test validity of MGC test statistic
    r?  r    c                 *   |dk    rSt           j                            dd|df          }|dt           j                            |j        df          z  z   }nr|dk    rt          j        t           j                            dd|df                    }|t          j        t           j        |z            z  }|t          j        t           j        |z            z  d	t           j                            |j        df          z  z   }n|d
k    rt           j        	                    dd|df          }t           j        	                    dd|df          }t           j        
                    dd|df          }	t           j        
                    dd|df          }
|dz  d|	z  z   dz
  }|dz  d|
z  z   dz
  }nt          d          |dk    r?t           j        	                    dd||dz
  f          }t          j        ||fd          }||fS )Nr  rN   r   r  rs  	nonlinearr   r"   rH  independencer(   )r   r   r    r   z3sim_type must be linear, nonlinear, or independencer@   )rY   r  r  random_sampler   r   rk	  pir  r  binomialr   rj  )r]   sampsdimssim_typer   r^   unifr  r  u_2v_2
dims_noises               re   _simulationszTestMGCStat._simulations  s   x	!!"auaj!99AC")11{1CCCCAA $$8BI--a%-DDEEDrvbedl+++Arvbedl+++s))){);;0< =AA ''	  AUAJ 77A	  AUAJ 77A)$$Q#UAJ$??C)$$Q#UAJ$??C!aeaA!aeaAA  , - - - !88))!QeT!V_)EEJ:Q777A!trt   zsim_type, obs_stat, obs_pvalue))r  r  r  )rS
  w/?r  )rT
  gUN@g(\?c                     t           j                            d           |                     dd|          \  }}t	          j        ||          \  }}}t          ||d           t          ||d           d S )Nrs  r?  r   rX
  rY
  rZ
  r7   rY   r  r  r_
  rS   r<
  r
   	r]   rZ
  obs_stat
obs_pvaluer   r^   r  r   r  s	            re   	test_onedzTestMGCStat.test_oned  s     		x      sX FF1  4Q::faD(::::FJA>>>>>>rt   )r  gZd;O?r  )rS
  g~jt?gʡE?c                     t           j                            d           |                     dd|          \  }}t	          j        ||          \  }}}t          ||d           t          ||d           d S )Nrs  r?  r"   rb
  r   r7   rc
  rd
  s	            re   
test_fivedzTestMGCStat.test_fived"  s     		x      sX FF1  4Q::faD(::::FJA>>>>>>rt   c                    t           j                            d           t           j                            ddd          }t           j                            ddd          }t          j        ||          \  }}}t          |d	d
           t          |dd
           t           j                            ddd          }t          j        ||d          \  }}}t          |d	d
           t          |dd
           d S )Nrs  r?  r(   )r?  r"   r  r   r   )r  r"   r   r7   r  T)
is_twosamp)rY   r  r  rW
  r  rS   r<
  r
   r]   r   r^   r  r   r  s         re   test_twosampzTestMGCStat.test_twosamp2  s   
	x    IsCh77IQ00  4Q::faD#15555FEq9999 IQ11  4QdKKKfaD#15555FEq999999rt   c                     t           j                            d           |                     ddd          \  }}t	          j        ||d          \  }}}t          |dd	           t          |d
d	           d S )Nrs  r?  r   r  rb
  r   )workersr  r7   r  rc
  rl
  s         re   test_workerszTestMGCStat.test_workersG  s    
	x      sX FF1  4Q1EEEfaD$A6666FEq999999rt   c                     |                      ddd          \  }}t          j        ||d          \  }}}t          |dd           t          |dd           d S )	Nr?  r   r  rb
  r-
  r  r7   r  )r_
  rS   r<
  r
   rl
  s         re   r5
  zTestMGCStat.test_random_stateS  sq       sX FF1  4QJJJfaD$A6666FEq999999rt   c                 B   t           j                            d           |                     ddd          \  }}t	          ||d          }t	          ||d          }t          j        ||d d          \  }}}t          |d	d
           t          |dd
           d S )Nrs  r?  r   rS
  rb
  	euclidean)metric)rE
  r:  r`
  r7   r  )rY   r  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I1a;///a;///$)$>uePTLM%O %O %O!	; 	Iu!<<<<KA>>>>>>rt   c                     t           j                            d           |                     ddd          \  }}t	          j        ||d          \  }}}t          |d           d S )Nrs  r?  r   r  rb
  r-
  r  )rY   r  r  r_
  rS   r<
  r   )r]   r   r^   r  r   s        re   test_pvalue_literaturez"TestMGCStat.test_pvalue_literaturek  sk    
	x      sX FF1 1!QQGGG61'''''rt   c                     t           j                            d           |                     ddd          \  }}t	          j        ||d          }t          |j        |j                   d S )Nrs  r?  r   r  rb
  r-
  )	rY   r  r  r_
  rS   r<
  r   r  r   r'  s       re   
test_aliaszTestMGCStat.test_aliasv  sg    
	x      sX FF1(AA>>>SXs}-----rt   N)r?  r   rQ
  )r   r   r   r5  r_
  r2  r6  r}  r7  rg
  ri
  r~  rm
  rp
  r5
  ry
  r{
  r}
  r   rt   re   rP
  rP
    s               D [[= @ @ @  
	? 	?  	? [[=!$@  	? 	?	  
	? [: : :( [	: 	: 	: [: : : [? ? ? [( ( ( [. . . . .rt   rP
  c                       e Zd Zej                            d           ej                            dd          Ze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                            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                            d4e	          e
j                                        dC                         ZdD ZdE ZdF ZdGS )HTestPageTrendTestr   r    rD  rH      i2  g:hў?Frf  i  gsH?i,0  gY@?)r$  r"  I   rb  r"  `   r  ;   r  r  r   1   r  +   rv  r"  rn  rn  r%  rB  rD   rB  r  rG  r  )D   r  r  "   r  rB  A   X   rE   r  rX  r  r  C   E   rW  r  rG  r  W   rv  r
  r  r
  r
  )r  rK   U   rb  O   rJ   \   V   rE   @   rC  r
  r
  rQ   rC  Y   r  r
  r
  r  6   rK   B   r8  rf  i
  gXY?r^  )r)   r  g @r"   rd  rI   )r"   r!   r+   rH   rB  rE   )r  r  rH   rJ   rF   rA  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   r   r    r!   r"   r#   r$   u   g[^6?zL, p, ranked, method, datac                     t           j                            d           t          j        |||          }t          ||j                   t          ||j                   t          ||j	                   d S Nrr  )rankedr`  
rY   r  r  rS   page_trend_testr   r   r   r   r`  r]   Lr   r
  r`  r  r   s          re   test_accuracyzTestPageTrendTest.test_accuracy  si    
	r#DGGGQ&&&3:&&&VSZ(((((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   rg  i  g&]2?)r%   r$   r#   r"   r!   r    r   r   )r   r    r"   r#   r!   r$   r   r%   r  c                     t           j                            d           t          j        |||          }t          ||j                   t          ||j                   t          ||j	                   d S r
  r
  r
  s          re   test_accuracy2z TestPageTrendTest.test_accuracy2  sk     		r#DGGGQ&&&3:&&&VSZ(((((rt   c                    t           j                            d           d\  }}t          j        d|dz             }t           j                            t          j        |                    }t           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
                   d S )	Nrr  )rH   rB  r   r@   Tr
  F)predicted_ranks)rY   r  r  r   permutationr  rS   rankdatar
  r   r   )r]   r  r  r
  permr  ranksr  r  r	  res4res5s               re   test_optionszTestPageTrendTest.test_options  sO   
	r1)Aqs++y$$RYq\\22y~~a##t!,,,$U++$U4888$T%888$UOLLL$U111d7^5DT5JL L LT^T^444T^T^444T^T^444T^T^44444rt   c                    t           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           d S )Nrr  )r  r
  o   )r!  r  k   )g      y   )r  rB  r	  )ro        )   r  t   r   r$   Frf  )r
  r
  r`  i  gy&1l?r!   rB   r^  gHPsb?)rY   r  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x~~)Aq//#D4C+79 9 9 	S]C(((CJ::::#D4C+24 4 4 	S]C(((CJ::::::rt   c                    t          t          d          5  t          j        d            d d d            n# 1 swxY w Y   t          t          d          5  t          j        g            d d d            n# 1 swxY w Y   t          t          d          5  t          j        ddg           d d d            n# 1 swxY w Y   t          t          d          5  t          j        dggg           d d d            n# 1 swxY w Y   t          t          d          5  t          j        t          j                            dd                     d d d            n# 1 swxY w Y   t          t          d          5  t          j        t          j                            dd                     d d d            n# 1 swxY w Y   d}t          t          |          5  t          j        g dg dgg d	
           d d d            n# 1 swxY w Y   t          t          |          5  t          j        g dg dgg d
           d d d            n# 1 swxY w Y   t          t          |          5  t          j        g dg dgg d
           d d d            n# 1 swxY w Y   t          t          |          5  t          j        g dg dgd
           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dg dgd           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dg dgd           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dddt          j        ggd           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dg dgd           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dg dgd           d d d            d S # 1 swxY w Y   d S )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    rZ  z`data` is not properly ranked)r   r   r    Tr	  z`data` contains NaNsFr
  z`method` must be inekki)r  r`  z`ranked` must be boolean.)r  r
  )	r   r   rS   r
  rY   r  r  rZ   r  r1  s     re   r  z'TestPageTrendTest.test_input_validation  s   :-IJJJ 	( 	(!$'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(:-IJJJ 	& 	&!"%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&:-IJJJ 	* 	*!1a&)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*:-IJJJ 	+ 	+!QC5'***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ :-KLLL 	8 	8!")..A"6"6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8:-KLLL 	8 	8!")..A"6"6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 @:W555 	= 	=!			999'=2;))= = = =	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= :W555 	? 	?!			999'=2=++? ? ? ?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? :W555 	@ 	@!			999'=2>,,@ @ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ :W555 	= 	=!			999'=2;= = = =	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=
 :-LMMM 	@ 	@!999iii"8$???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@:-LMMM 	@ 	@!999iii"8$???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ :-CDDD 	0 	0!999q!RVn"=).0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 :-BCCC 	1 	1!			999'=)/1 1 1 1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 9,GHHH 	1 	1!			999'=)/1 1 1 1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s  8<<A::A>A>B>>CCDD
D$3E##E'*E'3GG
G&HHH2II!$I!>J))J-0J-
K33K7:K7L<<M M NN	N	&(OO!O;P$$P(+P(Q//Q36Q3N)r   r   r   rY   r  r  r  	data_3_25
data_10_26tsr2  r6  r7  r
  ts2r}  r
  r
  r
  r  r   rt   re   r
  r
    sN        INN1	q"%%IB''J $e\9
E%ulJ
G$e\= = == = == = =	>? %ug%%%###&&&() "D'LL,,,lllLL,,,lllLL,,,lllLL,,,()
 "D'IIyyy)))YYY			999IIyyy)))YYY			999IIyyy)))YYY			999IIyyy)))-.
 "D' 2 2 24F4F4FGI"D'OO___oooOO___oooOO___oooOO
 "D'IIyyy)))YYY			999IIyyy)))YYY			999IIyyy)))YYY			999II
 !4!!!#8#8#8!!!#8#8#8:; "D'IIyyy)))YYY			999IIyyy)))YYY			CDO*
BX [92>>) ) ?>) #T7,,,,,,./ $dG,,,.M.M.M,,,.M.M.M,,,./ $dG%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'(C* [92>>[) )  ?>)5 5 5$; ; ;*/1 /1 /1 /1 /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            d S # 1 swxY w Y   d S )Nr`  r^  r  z#() got multiple values for argumentr   )r`  r  )r   r   r2  r   r  reescape)rw  r_  r   r  errs        re   test_rename_mode_methodr
  D  s     #t
$G
$
$C3#7##Ddl
?
?
?C	y	#	7	7	7 1 1T'00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   
A//A36A3c                      e Zd Zd Zd Zd Zd Zej        	                    dg d          ej        	                    ddd	g          d
                         Z
ej        	                    ddd	g          d             ZdS )TestExpectilec                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nrr  rB  r  r(   r  )rY   r  r  r   rS   	expectilerX   r]   r	  r   s      re   test_same_as_meanzTestExpectile.test_same_as_meanV  sW    i##B''JJBJ555rwqzzBBBBBrt   c                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nrr  rB  r  r   r
  )rY   r  r  r   rS   r
  aminr
  s      re   test_minimumzTestExpectile.test_minimum[  W    i##B''JJBJ333RWQZZ@@@@@rt   c                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nrr  rB  r  r   r
  )rY   r  r  r   rS   r
  amaxr
  s      re   test_maximumzTestExpectile.test_maximum`  r
  rt   c                 >  	 t           j                            d          }d 		fd}d}|                    |          }|                                }|                    |          }t          j        |||          } ||||          }t          ||           d S )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  r  r  s        re   rw  z'TestExpectile.test_weights.<locals>.funl  sH    Q5111AE	Aa1fI6!g+Q
2333rt   c                     t          j        |           t          j        |           f}t          j        || ||f          j        S )N)bracketr_  )rY   r  r  r   minimize_scalarr   )r   r  r  r
  rw  s       re   
expectile2z.TestExpectile.test_weights.<locals>.expectile2q  sL    fQii*G+C23UG1DF F FFGHrt   rH   rr  )rY   r  r  rS   r
  r   )
r]   r	  r
  r  r   r  r  r   r  rw  s
            @re   test_weightszTestExpectile.test_weightse  s    
 i##$788	4 	4 	4
	H 	H 	H 	H 	H
 JJqMM

**Q--oa888jE7++S!!!!!rt   r  )r	  g?r(   g/#    ?r4  r  rB  r+  c           
         t           j                            d          }|                    |          }dD ]:}t	          t          j        t          j        ||          |          |           ;|                                }t	          t          j        ||z   |          t          j        ||          |z              t	          t          j        ||z
  |          t          j        ||          |z
             t	          t          j        ||z  |          |t          j        ||          z             |	                    |d          }|dk    rd	 }n|dk    rd
 }nd } |t          j        t           j
        ||z            |          t          j        ||          t          j        ||          z              |                    |d          }t          j        ||          t          j        ||          k    sJ |	                    |d          }dD ]b} |t          j        d|z
  |z  ||z  z   |          d|z
  t          j        ||          z  |t          j        ||          z  z              ct	          t          j        | |          t          j        |d|z
                        dS )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
        rr  r  )r  r   r(   )r  r  r
  rH   ra  r(   c                 &    t          | |           d S r  )r   r   r   s     re   	assert_opz:TestExpectile.test_expectile_properties.<locals>.assert_op  s    1%%%%%rt   c                     | |k     sJ d S r  r   r
  s     re   r
  z:TestExpectile.test_expectile_properties.<locals>.assert_op      1uuuuuurt   c                     | |k    sJ d S r  r   r
  s     re   r
  z:TestExpectile.test_expectile_properties.<locals>.assert_op  r
  rt   r"   )rp  r(   r4  r   N)rY   r  r  r  r   rS   r
  rm   exponentiallogisticr[  )r]   r  r  r	  r   rY  r^   r
  s           re   test_expectile_propertiesz'TestExpectile.test_expectile_properties  s0   $ i##B''JJAJ
  	 	AaA > > >eLLL    OOOAE///OAU+++a/	
 	
 	
 	OAE///OAU+++a/	
 	
 	
 	OAE///////	
 	
 	
 LLaRL((C<<& & & & S[[      		OBE!a%L666OAU+++oau---.	
 	
 	
 JJA1J%%OAU+++uq/N/N/NNNNN LLaRL((  	 	AI1a!A#U;;;17777EOAU33334    	OQBe,,,_Qag....	
 	
 	
 	
 	
rt   c                    t           j                            d          }|                    d|          }g }t          j        dt          j        d          d          }t           j        d|d|d d	d	         z
  df         D ]+}|                    t          j	        ||
                     ,t          j
        t          j        |          dk              sJ d S )Nrr  r   )r   r   r  r(   r?  r   r   rN   r
  )rY   r  r  paretologspacelog10r[  ru  rS   r
  r  r	  )r]   r  r	  r   e_list	alpha_seqr  s          re   test_monotonicity_in_alphaz(TestExpectile.test_monotonicity_in_alpha  s    i##B''JJJ##KRXc]]C88	U1iYv2v->)>AB 	; 	;EMM%/!5999::::vbgfoo)*******rt   N)r   r   r   r
  r
  r
  r
  r2  r6  r7  r
  r
  r   rt   re   r
  r
  U  s        C C C
A A A
A A A
" " "4 [:::  [S2t*--_
 _
 .- _
B [S2t*--+ + .-+ + +rt   r
  r  )NNr(  N)r5  rL	  r
  r  collectionsr   	itertoolsr   numpy.testingr   r   r   r   r	   r
   r   r   r   r   r2  r   r   numpy.ma.testutilsrh  	testutilsr  numpyr   r   r   r   r   rY   scipy.statsrS   scipy.stats.mstatsr  scipy.stats._mstats_basic_mstats_basicrt  scipy.stats._ksstatsr   scipy.special._testutilsr   scipy.specialr   scipyr   common_testsr   scipy.spatial.distancer   	numpy.libr   scipy.stats._axis_nan_policyr   rm  r   r  rU   r  r   r   r   r   r   r2   r   r9  r  r  rp  rv  r|  r  r  r  r  r  r  r  r  rl  rx  r  r  r6  filterwarningsr  r  r  r'  r  r  r  r  r5  r\  PowerDivCaser  r  r  r  r  r  r7  r	  r  r  r  r  r  r  r  r&  r  r  r  r  r  r  r  r;  r  r  r  r  r  r  r  r,  r3  r5  r8  r:  r=  r?  rJ  rL  rT  rV  rX  r  r  r  r  r  r  r  r  r  r  r  r  r:  rX  r{  r  r  r  r  r  r  r	  r/	  r	  r	  r	  r	  r	  r	  r 
  r9
  rP
  r
  r  r  r	  r   r^   wilcoxonr  rF  r  r(  r  r
  r
  r   rt   re   <module>r
     sa    
			 				  " " " " " "      . . . . . . . . . . . . . . . . . . . . . . . .
  * * * * * *                   8 8 8 8 8 8 8 8 8 8 8 8 8 8           # # # # # # # # # 0 0 0 0 0 0 0 0 0 ( ( ( ( ( ( - - - - - -             - - - - - - ( ( ( ( ( ( " " " " " " ? ? ? ? ? ? = = = = = = 
E


u%%u   %((e      !&( (	 2 2 238
: 
:uDDDeLLuDDDeLL333U;;Q4 Q4 Q4 Q4 Q4 Q4 Q4 Q4hX! X! X! X! X! X! X! X!vc7 c7 c7 c7 c7 c7 c7 c7L{6 {6 {6 {6 {6 {6 {6 {6|~5 ~5 ~5 ~5 ~5 ~5 ~5 ~5VW3 W3 W3t4 4 4 < < <7 7 7SE SE SE SE SE SE SE SElV2 V2 V2r& & &  &$ &$ &$R+ + + + + + + + ~# ~# ~# ~# ~# ~# ~# ~#B0 0 0D) ) )3 3 3"rN rN rN rN rN rN rN rNj 344m4 m4 m4 m4 m4 m4 m4 54m4`$ $ $ E E E E E E E E<\$ \$ \$ \$ \$ \$ \$ \$~<@ <@ <@ <@ <@ <@ <@ <@~1 1 1i( i( i( i( i( i( i( i(Xa a a a a a a aH`9 `9 `9 `9 `9 `9 `9 `9Fp> p> p> p> p> p> p> p>f z&    L}}}Dqt&"&++626$<<78AfbfSkkMAfbfTllN:;I	K K K L}}}NNN&"&++&"&,,6626#;;FGAfbfSkkMBvrvd||O;asmKL1	2 2 2 L}}}AAD&"&++626$<<78AfbfSkkMAfbfTllN:;I	K K K L|||<<<aaQa1 1 1+ : Lr!!Qa1 1 1
 LxrxBr
++-!!iiYY"II   LxrxBr
++!!  # 4i8 i8 i8 i8 i8 i8 i8 i8X8 8 8 sBHo7J%KLL) ) ML)H  H  H V*8 *8 *8Z2D 2D 2Dj? ? ? ? ? ? ? ?FQ. Q. Q. Q. Q. Q. Q. Q.lG. G. G. G. G. G. G. G.RoE oE oEd1 1 1*+ + + ,#28I..7#28I..79: :	0 	0: :	0
. 
. 
. (H(H(HII  JI. ) ,yry}}a.@A ?YRYr]]IBIbMM,JKMN N5 5N N5/ / / /{A {A {A|t# t# t# t# t# t# t# t#nF5 F5 F5 F5 F5 F5 F5 F5RC7 C7 C7 C7 C7 C7 C7 C7LL L L$j1 j1 j1Z     ,+ + + ,#28I..7#28I..79: :	0 	0: :	0
. 
. 
.. . .G G G+ + +G G GT& & &*`6 `6 `6 `6 `6 `6 `6 `6Fo8 o8 o8dA A A A A A A A.5# 5# 5# 5# 5# 5# 5# 5#p1 1 15 5 5{- {- {- {- {- {- {- {-|1 1 1"(> (> (>V HL"! ! ! ! HL"! ! ! ! BF)-! ! ! !`B `B `B `B `B `B `B `BFlB lB lB lB lB lB lB lB^aP aP aP aP aP aP aP aPHN- N- N- N- N- N- N- N-b (H(H(HIIO O JIO( ( (.9 9 90[; [; [;|T7 T7 T7 T7 T7 T7 T7 T7n,/ ,/ ,/ ,/ ,/ ,/ ,/ ,/^k- k- k- k- k- k- k- k-\|) |) |) |) |) |) |) |)~R) R) R) R) R) R) R) R)jI7 I7 I7 I7 I7 I7 I7 I7X#A #A #A #A #A #A #A #ALZ Z Z Z Z Z Z Zz@ @ @ @ @ @ @ @Fj j j j j j j jZIO IO IO IO IO IO IO IOX9D 9D 9D 9D 9D 9D 9D 9DxR. R. R. R. R. R. R. R.j{1 {1 {1 {1 {1 {1 {1 {1| 	iI&&JJrNNJJrNN  >A40 >Auz~+>? >Aq62 <!Q0 1 1 1X+ X+ X+ X+ X+ X+ X+ X+ X+ X+rt   