
    ge@                    ,   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& ZJd' ZK G d( d)          ZLd* ZMd+ ZNd, ZOd- ZP G d. d/          ZQ G d0 d1          ZRd2 ZSd3 ZTd4 ZU G d5 d6          ZVejW        X                    d7           G d8 d9                      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jW        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jW        i                    dp e jv        dq          drf e jv        ds          dtfg          du             Zwdv ZxejW        i                    dwg dx          dy             ZyejW        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          Z G d d          Zd Zd Zd Zd ZejW        i                    dp e jv        dq          drf e jv        ds          dtfg          d             Zd Zd Zd Zd Zd Zd Zd Z G d d          Zd Z G d d          Z G d d          Zd Zd Z G d d          Zd Zd Z	 	 ddZ	 	 ddZ	 	 ddZ G d d          Z G d d          Z G d d          Z G d d          ZejW        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jW        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           <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,e$j%        j-        e$j%        &                    d*d+          e$j%        &                    d,d-          d.                                     Z.e$j%        j-        e$j%        &                    d*d+          d/                         Z/d0 Z0d1S )2TestCorrPearsonrE   W.II.D. Compute a correlation matrix on all the variables.

        All the correlations, except for ZERO and MISS, should be exactly 1.
        ZERO and MISS should have undefined or missing correlations with the
        other variables.  The same should go for SPEARMAN correlations, if
        your program has them.
    c                 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r  r  r  r  methodpermutationmonte_carloc                    t           j                            d          }|dk    rdnd}|                    |          }|                    |          }t	          j        |          t	          j        |j        fdz            d	}||         }t	          j        ||||
          }t	          j        |||          }	t          |j	        |	j	        d           t          |j
        |	j
        dd           d S )N   o#[mr8  d     r   random_stater   )rvsr7  )r  r6  r  r   r  {Gz?MbP?r  r   )rY   randomdefault_rngnormalrS   PermutationMethodMonteCarloMethodr   r   r   r   )
r]   r6  r  rngr   r   r^   methodsr   refs
             re   test_resampling_pvaluez'TestCorrPearsonr.test_resampling_pvalue  s     i##$566--ss4JJDJ!!JJDJ!!"'"9s"K"K"K"'"8cj]1_"M"M"MO OnQ{6JJJnQ{;;;s}5AAAA
CJTEEEEEErt   c                 l   t           j                            d          }|                    d          }|                    d          }t	          j        |||          }t	          j        |          }|                    |          }|                                }t          ||d           d S )	Nr;  r<  r>  r  r?  r6  rB  r   )	rY   rE  rF  rG  rS   r   BootstrapMethodr	  r   )	r]   r  rJ  r   r^   r   r6  res_ciref_cis	            re   test_bootstrap_ciz"TestCorrPearsonr.test_bootstrap_ci  s     i##$566JJCJ  JJCJ  nQ{;;;&C888(((77((**T222222rt   c                 l   d}t          j        t          |          5  t          j        ddgddgd           d d d            n# 1 swxY w Y   t          j        ddgddg          }t          j        t          |          5  |                    d	           d d d            d S # 1 swxY w Y   d S )
Nz"`method` must be an instance of...r   r   r   r    r!   
asymptoticrO  exact)r2  r   r   rS   r   r	  )r]   r3  r   s      re   test_invalid_methodz$TestCorrPearsonr.test_invalid_method  sL   6]:W555 	@ 	@NAq6Aq6,????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ naVaV,,]:W555 	4 	4##7#333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s#   AA
A
B))B-0B-N)1r   r   r   __doc__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r
  r  r2  markparametrizer   r$  r)  r-  r0  r4  xslowrM  rS  rW  r   rt   re   r   r      sI        # # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
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
! ! ! [[],LMM[X'EFFF F GF NM F [[],LMM
3 
3 NM 
34 4 4 4 4rt   r   c                       e Zd ZdZd Zd Zd Zd Zej	        j
        d             Zd Zd Zd	 Zd
 Zej	                            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   r<  r   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]   rg  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?rc  rd  )gU!a?gKY?re  rf  )g7X?g~ltP?)gFu|?ri  r   )r}   gQN^?r!   gaa?r}   r   gaa?r    rI   T)rC   verbose)rY   infrS   rg  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   rg  r   r]   r   r   s      re   test_gh4130zTestFisherExact.test_gh4130X  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   r{  r|  s      re   test_gh9231zTestFisherExact.test_gh9231n  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   rg  r
   )r]   pvalsr  numr   s        re   test_large_numbersz"TestFisherExact.test_large_numbersu  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   rg  rY   r   rW   r]   s    re   test_raiseszTestFisherExact.test_raises  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   rg  r   rY   rZ   )r]   tablesrp  	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%   rv  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  )r  appendrS   rg  r   )r]   r  r  rp  r  r   s         re   test_less_greaterz!TestFisherExact.test_less_greater  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   rg  )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`  ra  rb  r  )rY   r   rS   rg  r   r   r   )r]   r  rp  r   s       re   test_resultzTestFisherExact.test_result  sR    5%.5%.9:: K@@@cmSZ0#66666rt   N)r   r   r   rX  r   rr  r}  r  r2  rY  slowr  r  r  r  r  rZ  r  r   rt   re   r]  r]    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   r]  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$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  r  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   rE  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   rE  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   rE  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   rE  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_sBIGTINY2  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_sBIGROUND7  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_sLITTLEHUGEA  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_sLITTLETINYF  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_sLITTLEROUNDK  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_sHUGEHUGEP  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_sHUGETINYU  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_sHUGEROUNDZ  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_sTINYTINY_  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_sTINYROUNDd  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_sROUNDROUNDi  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_attributesn  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   rm  r  r   r]   x1x2res1res2s        re   test_1d_vs_2dzTestCorrSpearmanr.test_1d_vs_2dt  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  rm  r  r   )r]   r|   r	  r
  r  r  s         re   test_1d_vs_2d_nansz$TestCorrSpearmanr.test_1d_vs_2d_nans{  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   rm  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_9103  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 r  r(   rz   r{   )gonj?)Wn%?r'  )rY   rE  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   rX  r  r  r  r  r  r  r  r  r  r  r  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   r  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   r  )gCzYW?ge*=r   )rY   rE  r  r   rG  dotlinalgcholeskyrS   r  r
   )r]   r   r  r+  r   s        re   test_normal_drawsz$TestCorrSpearmanr2.test_normal_draws  s    
	tHbi&&1AC&@@i&&1AC&@@B C C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  r  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  r  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z3rQ  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^   rQ  r   r   s         re   test_gh_11111z TestCorrSpearmanr2.test_gh_111115  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 )Nr0  r1  r2  r  r  r   r   r   r  alternative must be 'less'...r   	ekki-ekki)rS   r  r
   r2  r   r   r3  s        re   test_alternativez#TestCorrSpearmanr2.test_alternativeG  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  r  c                 |   g d}g d}|t           j        gz   }|t           j        gz   }t          t          j        ||          t           j        t           j        f           t          j        ||d|          }t          j        |||          }t          ||           d}t          j        t          |          5  t          j        ||d|           d d d            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 )Nr0  r1  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_policy^  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   rX  r4  r6  r@  rC  rE  r-  rI  rM  rR  rY  r]  rd  rg  rj  rn  r2  rY  rZ  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!   rj  r   r   )	r   r"   r   r   r    r#   r!   r$   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  rV  rO  bananarmsrJ   r   r   rJ   r   r   r!   r$   r   r   )g}+޿g`=i?r   rO  rP  r8  r9  r:  r   r  )g\zf?g^n)=rB  g#q?rx   r&   rz   r{   )r   g/>r  r  rU  )r|   r6  )r   g&?r~   r   rG  rK  r>   i  r=  )rS   
kendalltaur
   rY   r   r   r   r   r   r   r   r   rZ   rE  r  rG  r=  r>  r?  r	   r   r  mamasked_greaterconcatenater   isfinite)variantsr   r^   r+  tauxr   r   r	  r
  r   r  taup_values                re   test_kendalltaur    s
    H 	!  A   A H 1 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"<<)""q"<<> 	? 	?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   rE  r  r  rL  shufflemstats_basicr  rS   r
   )sr   r  r   r+  r  s         re   test_kendalltau_vs_mstats_basicr  `  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 )	NrT  333333@333333@rz   r{   r   r   r   )rY   rZ   rS   r  r   r   )r   r^   r1r2s       re   test_kendalltau_nan_2nd_argr  p  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   r  r   rt   re   #test_kendalltau_dep_initial_lexsortr  z  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                  "   dd l } |                     d           g d}d}|                     ||          }|                     ||          }t          j        ||          }t          |j        d           t          |j        dd	           d S )
Nr   i_ r   r   r    r!   r"   r#   r$   i@ )r  g*8_2\S?gd`TR?gMb`?r   )rE  r  choicesrS   r  r   r   r   )rE  classes	n_samplesr   r^   r   s         re    test_kendalltau_gh18139_overflowr    s     MMM
KK###GIw),,Aw),,A

1a
 
 CCM#8999 CJT222222rt   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 )Nr0  r1  r  r  r   r  r   r   r  rl  r   rm  )rS   r  r   r   reverser2  r   r   r3  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   rV  r6  r  )rY   rm  rS   r  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 )Nr0  )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   rE  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_171c0  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  rV  r  rU  r   rC  r  )rY   rE  r  r  rS   r  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   r6  )rV  rU  r  r  c                    g d}g d}|t           j        gz   }|t           j        gz   }t          j        ||||          }t           j        t           j        f}t	          ||           t          j        ||d||          }t          j        ||||          }t	          ||           d}	t          j        t          |	          5  t          j        ||d||           d d d            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 )Nr0  r"   r#   r$   r%   r&   r  rz   )r|   r6  r  rq  r   r~   rr  rm  )rY   rZ   rS   r  r   r2  r   r   )
r]   r6  r  r	  r
  rs  rt  ru  rv  r3  s
             re   r  z)TestKendallTauAlternative.test_nan_policyG  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  rL  r  reversed	case_R_n1r2  rY  rZ  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 )'Nr  r  gs$F)additivegROoc                     dS Nr   r   r   s    re   <lambda>z"test_weightedtau.<locals>.<lambda>t  s    Q rt   )weigherr  r   )rankgڿgn)r  r  g @ڿg[đ(gIکnTc                     dS r  r   r  s    re   r  z"test_weightedtau.<locals>.<lambda>       rt   )r  r  c                     dS r  r   r  s    re   r  z"test_weightedtau.<locals>.<lambda>  r  rt   r>   r   r   r   r   r   r!   r$   rJ   r   )      (@r  r   r  r  r   r  ri  r  r  )r  r  r   r  r   )r   r  ri  r   r   gt34+)rS   weightedtaur
   r   rY   rZ   r   r   r   rm  r   int16r   r   )r   r^   r  r  r   r   s         re   test_weightedtaur  j  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   rV  rz   )r6  r|   r}   )rY   r   r(  r  rZ   rS   r  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   r  r    rH   r>   r   rL   )rY   rE  r  r  rL  r  r   r  intprS   r  r   r
   )r	  r  r  r   r  r   r  r  r  r+  r  s              re   test_weightedtau_vs_quadraticr    s_   C 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   rd  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_regressZEROX1  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   rd  穷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   rd  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_alternativeE  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   >   rz  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_RZ  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   rd  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_rowsm  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   rd  r   r+  rK  )
rY   r,  r-  hstackexpand_dimsrS   r  r   r   r!  )r]   r   r^   columnsr  s        re   test_regress_simple_onearg_colsz.TestRegression.test_regress_simple_onearg_colsy  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   onesr  s    re   test_regress_shape_errorz'TestRegression.test_regress_shape_error  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"   re  r   r   rN   c                 &    t          | |d          S )NrF   rB   )r   )r   r^   s     re   	assert_aez1TestRegression.test_linregress.<locals>.assert_ae  s    &q!R8888rt   r   r6   gePUn?g.bt>gڽE?gʺL7?)
rY   r   rS   r  rG  r  r  r   r   r!  )r]   r   r^   r  rZ  s        re   test_linregresszTestRegression.test_linregress  s    IbMMIa	A+!	A+!!!Q''	9 	9 	9	&,$$$	&"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_cor  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   rd  )rG  r  r  r   r   r!  )rY   r,  r-  rS   r  r.  r/  r   r0  r   dir)r]   r   r^   r  r1  r   s         re   !test_linregress_result_attributesz0TestRegression.test_linregress_result_attributes  s    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   rU  rS   r  r   r   r   r!  rc  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^@r  r  gffffff@g1u@g@g     8@g     X@g333333&@g33333]@gfffffl@g@fffff|@r(   )$r  g,u@gfffff]@     @r  rk  g     @     4@g|@33333W@gy@r  r  gP@gfffff@4u@rl  g%@gm@gl@g     0@gfffffƋ@gfffff]@r  rj  gl@rp  rm  rn  ro  gffffff$@gffffff]@g̜l@g33333@g33333|@r*  g?g!пr   gpX?r}   gh-h*<?gg?)	rS   r  r   rG  r  r  r   r   r!  rc  s       re   test_nist_norriszTestRegression.test_nist_norris  s    4 4 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   rd  r   )	rY   r,  r-  rS   r  polyfitr   rG  r  )r]   r   r^   r  polys        re   test_compare_to_polyfitz&TestRegression.test_compare_to_polyfit  s    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  r  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   r0  r	   r   r!  )r]   r   r  r1  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  rE  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(  r2  r4  rI  rN  rS  rV  r[  r^  ra  rd  rf  rq  ru  rw  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_separaterO  jointr}   )r   r   r    r!   rH   rJ      )r&   rc     rd  -   7   N   gQ?separater!   r  gQ@r   rB   gGz@r  )rS   theilslopesr   r2  r   r   )rG  r  lowerupperr   r   r^   s          re   test_theilslopesr    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"   )r  defaultreallimitsr    )cumcountrv   binsizeextrapoints)rS   cumfreqr   rY   r   r   r   )r   cumfreqslowlimr  r  r   r   s          re   test_cumfreqr  4  s    A-2]1a-H-H-H*Hfg{h1A1A1A(B(BCCC-2]	1.2 .2 .2*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 )Nr  r!   r  )r(   K}\UU?r  r  )	frequencyrv   r  r  )rY   r   rS   relfreqr   r   )r   relfreqsr  r  r  r   r   	relfreqs2s           re   test_relfreqr  B  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    rX  r%   r$   r!   r   r   )r   r!   r"   rH   rO   r  r  ri  )a1a2a3r  s    re   setup_methodz"TestScoreatpercentile.setup_methodT  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_basicY  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<  r  r   rH   r-   fractioninterpolation_methodr  r  rS   r  r   rL  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  r  r  r!   higherr"   r  r  r<  r  r  r  r  r   r  r  s     re   test_lower_higherz'TestScoreatpercentile.test_lower_highery  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   r0  ndarrayrW   )r]   r   r+  r   r  	expected2s         re   test_sequence_perz'TestScoreatpercentile.test_sequence_per  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!   )rf  r  r<  )g      @r-         &@)r   r    r!   r"   r!   r"   r#   r$   )r%   r&   rH   rI   r   r@   )      ?g      @g     !@)r)   r-         #@r  r   r   r   r   )r!   r!   r    r  r   r   r    )rS   r  r   rW   r   r   r  )r]   r  r   r0r  scores         re   	test_axiszTestScoreatpercentile.test_axis  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   rA  r   r  e   rN   )r   r   rS   r  r  s    re   test_exceptionz$TestScoreatpercentile.test_exception  sc    j%"9Aq62+3	5 	5 	5 	5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   r  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  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ej        	                    d e
j        dd                    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          ej        	                    dddg          d                         Zej        	                    d e
j        dd                    e
j        fd            Zd Zd Zej        	                    dddg          d             Zd Zej                            d          ej        	                    d e
j        d            e
j        d!          g          d"                         Zd# Zd$S )%TestModec                     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           t          |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  sJ    777z%  T!Wa   T!Wa     rt   c           
         g d}g d}g d}g d}g d}t          j        |||||g          }t          j        |d d          }t	          |d         t          j        d	gg                     t	          |d
         t          j        dgg                     t          j        |dd          }t	          |d         t          j        g dg                     t	          |d
         t          j        g dg                     t          j        |d
d          }t	          |d         t          j        dgdgdgd	gd	gg                     t	          |d
         t          j        dgdgdgdgdgg                     d S )N)rH   rH   r  r  )rH   rH   rH   rH   )rd  rH   rd  rd  )r  r  r  r  )r  r  r  r  TrA   keepdimsr   r  r   r%   )rH   rH   r  r  )r   r    r    r   rH   rd  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#D4888T!Wbhv..///T!Wbhuoo...z#A555T!Wbh(8(8(8'9::;;;T!Wbh~66777z#A555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   rE  r  r  rS   r  ndimrn  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}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   r  FTc                     t          j        |d|          }|rt          |d         d         d           d S t          |d         d           d S )Nrz   )r|   r  r   r   r  )r]   r  r  r  s       re   test_smallest_equalzTestMode.test_smallest_equal
	  sZ     DVhGGG 	'1q)))))A&&&&&rt   rO   c                    t           j                            d          }|                    d                              |          }t          j        ||d          }t          |j                  }|	                    |           t           j
                            |j        j        |           t           j
                            |j        j        |           d S )Nr  )r    r!   r"   r>  Fr  )rY   rE  rF  uniformr(  rS   r  rL  r  poprn  r	   r  )r]   rA   r?   rJ  r   r   reference_shapes          re   test_mode_shape_gh_9955z TestMode.test_mode_shape_gh_9955	  s    i##I..KKYK''..u55j666qw--D!!!

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

%%cioGGGGGrt   c                     dt           j        dt           j        g}t          t           j                  dk    r:t	          j        |          }t          j        |j                  r|j        dk    sJ d S d S )Nr   r   1.21.0)rY   rZ   r   __version__rS   r  r  r  )r]   r   r   s      re   !test_nan_policy_propagate_gh_9815z*TestMode.test_nan_policy_propagate_gh_9815"	  se     26"''833*Q--C8CH%%8#)q.... 43*8.rt   c                 
   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        dk    sJ t          |j        	                                |j        	                                           |j        j        dk    sJ dt           j        t           j        t           j        dgt           j        t           j        t           j        t           j        d	gdd	t           j        ddgg}t          j        |ddd          }t          |j        g d           t          |j        g d           t          j        |ddd          }t          |j        dgd	gdgg           t          |j        d	gdgd	gg           t          j        |          }t          j        |d dd          }t          j        |	                                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        dk    sJ t          |j        	                                |j        	                                           |j        j        dk    sJ d S )N)r   r   r    r   r   Fr  )r   r    r   T)r   r   r    r   r    r   r  r   r   r   r"   rz   )rA   r  r|   )r   r   r"   )r   r   r   )r  r|   )rY   r  rS   r  r  r  rZ   r	   r   ravelr   )r]   r   r   rL  s       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SX^^%%sx~~'7'7888x~''''SY__&&	(9(9:::y&(((( +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SX^^%%sx~~'7'7888x~''''SY__&&	(9(9:::y&((((((rt   r|   r  rz   c                    d}t          j        |          }t           j        |d<   t          j        |dd|          }t          |j        g d           t          |j        g d           t          j        dt           j        fd	t           j	        d
fg          }t          j
        d|          }t          j        t          d          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )N)r!   r    r   r   r   F)r   rA   r  r|   r_  r   r    r    r    asdfqwerr  rH   r>   zArgument `a` is not...r   r{   )rY   rU  rZ   rS   r  r	   r  r?   uint8r   r  r2  r   	TypeError)r]   r|   r  r  r   my_dtypetests          re   test_gh16955zTestMode.test_gh16955f	  s.    wu~~VT
j4a%JOOO38\\\22239lll333 8fbh/&"*d1KLMMx(+++]9,DEEE 	4 	4Jt
3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   C00C47C4c                    t          j        g           }t          j        df}t	          ||           t          j        t          j        gd          }t	          ||           g dt          j        t          j        t          j        gg}t          j        |dd          }dt          j        gddgf}t	          ||           t          t          j                  d	k    r9t          j        |dd
          }dt          j        gddgf}t	          ||           t          j        g g g          }t          j        |d          }t          j        t          j        gddgf}t	          ||           d S )Nr   rz   r{   )rx   rG  rG  r   r  rd  r   r  r  r    r@   )rS   r  rY   rZ   r   r   r   r   )r]   r   rL  r   zs        re   test_gh9955zTestMode.test_gh9955w	  sL    jnnvqkS#j"&f555S#__rvrvrv67jv666BF|aV$S#''833*QQ;???C<!Q(Cc"""Hb"Xj###!Q(S#rt   zignore::RuntimeWarningr  r  rB  c                     t          j        |d d          }t          j        |d d          }|d         j        |d         j        cxk    r|j        cxk    rdk    sn J d S )NTr  r   r   r  )rS   r  rY   rX   r  )r]   r  r   rL  s       re   test_gh17214zTestMode.test_gh17214	  sw     j555gadT2221v|s1v|EEEEsyEEEEIEEEEEEEErt   c                    d} G d d          }t          j        t          |          5  t          j         |t          j        d                               d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        t          j        dt                               d d d            d S # 1 swxY w Y   d S )Nz*Argument `a` is not recognized as numeric.c                       e Zd Zd Zd ZdS )8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikec                     || _         d S r  )_xr  s     re   __init__zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__	  s    rt   c                 @    | j                             t                    S r  )r  r(  objectr  s    re   	__array__zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__	  s    w~~f---rt   N)r   r   r   r  r  r   rt   re   ArrLiker  	  s2          . . . . .rt   r  r   r    r>   )r2  r   r  rS   r  rY   r   r  )r]   r3  r  s      re   test_raise_non_numeric_gh18254z'TestMode.test_raise_non_numeric_gh18254	  sU   >	. 	. 	. 	. 	. 	. 	. 	. ]9G444 	. 	.Jwwry||,,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.]9G444 	3 	3Jry&111222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s#   0A''A+.A+.CCCN)r   r   r   r  r  r   r  r2  rY  rZ  rY   r   r  r  r  rZ   r  r   r  r  r  r  r  filterwarningsemptyr  r   r   rt   re   r  r    s^       + + +
, , ,
! ! !C C C( [VYRYr1%5%5662 2 7621 1 1J J J [V	
BFAq!Q			
BFAq	&   [Z%77' ' 87 ' [VYRYr1%5%56624* H H H 76H9 9 9:) :) :)x [\K+@AA4 4 BA4   4 [ 899[S828I#6#68K8K"LMMF F NM :9F
3 3 3 3 3rt   r  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 )Nry  rz  !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^   r  r+  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   r  r   r    r  r   r@   r   r   r}   r   r   r   r   )r   r   r   r   )rY   r   r   rS   r/  r   	r]   r   t1t2t3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 Nr3  )r}   r   r  r   r   rA   ri   )      r@  r(   r(   r   r    )      r@  r(   r)   g?r   )rY   r   rS   r/  r   r   r]   r   r  r:  r;  s        re   test_zmap_ddofzTestZmapZscore.test_zmap_ddof	  s    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   rE  r#      )r   r!   rj   r  rz   r   )r|   rA   ri   r   rh   r  r  )
rY   r   rW   r,  rZ   rS   r/  r   r  r   )r]   ri   rG  rH  r  r+  s         re   #test_zmap_nan_policy_omit_with_axisz2TestZmapZscore.test_zmap_nan_policy_omit_with_axis 
  s)   4%%--a4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&  rE  rO   r   r$   rJ   zinput contains nanr   r~   r{   )rY   r   rZ   r2  r   r   rS   r/  )r]   rG  rH  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 r2  )rY   r   r   rS   rQ  r   r5  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 r>  )rY   r   rS   rQ  r   r   rB  s        re   test_zscore_ddofzTestZmapZscore.test_zscore_ddof5
  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   rQ  r  r  r]   r   r  s      re   test_zscore_nan_propagatez(TestZmapZscore.test_zscore_nan_propagateA
  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   rQ  r   r]   r   r  r+  s       re   test_zscore_nan_omitz#TestZmapZscore.test_zscore_nan_omitF
  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   rF  rh   vIh%<=r  )rY   r   rZ   rS   rQ  r_r   r\  s       re   test_zscore_nan_omit_with_ddofz-TestZmapZscore.test_zscore_nan_omit_with_ddofS
  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   rQ  r  s     re   test_zscore_nan_raisez$TestZmapZscore.test_zscore_nan_raiseY
  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   rQ  r   rY   rm   r  rZ   rY  s      re   test_zscore_constant_input_1dz,TestZmapZscore.test_zscore_constant_input_1d^
  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   rQ  r   rZ   r  rW   r  rU  rm   )r]   r   r9  ra  r  r^   s         re   test_zscore_constant_input_2dz,TestZmapZscore.test_zscore_constant_input_2dc
  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 )Nrg  rx   r  r  rz   r   r|   rA   r)   r   r   r   r   )rY   r   rZ   rS   rQ  r   r   )r]   r   r9  r  s2ra  s         re   -test_zscore_constant_input_2d_nan_policy_omitz<TestZmapZscore.test_zscore_constant_input_2d_nan_policy_omits
  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   rl  r4  )rY   r   rZ   rS   rQ  r   rY  s      re   test_zscore_2d_all_nan_rowz)TestZmapZscore.test_zscore_2d_all_nan_row
  s    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   rl  )rY   rm   rZ   rS   rQ  r   )r]   r^   r  s      re   test_zscore_2d_all_nanz%TestZmapZscore.test_zscore_2d_all_nan
  sA    GFBF##LvD999Qrt   r   )r    r   r"   c                 N    t          j        |          }t          ||           d S r  )rS   rQ  r   rY  s      re   test_zscore_empty_inputz&TestZmapZscore.test_zscore_empty_input
  s%    LOOQrt   c                 Z    t          j        g d          }g d}t          ||           d S )Nr  )0j甹`ȿ/A?(/?)rS   gzscorer   )r]   r  rR  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   maskrw  rx  ry  rz  )rY   r   r  masked_arrayrS   r{  rl  r   )r]   r   mxr  rR  s        re   test_gzscore_masked_arrayz(TestZmapZscore.test_gzscore_masked_array
  sp    H%%%&&U88M"#_bfn"$#####rt   N)r   r   r   r2  rY  rZ  r0  r<  rC  rI  rM  rO  rS  rU  rW  rZ  r]  ra  rc  re  rj  rn  rp  rs  rY   r   r  ru  r|  r  r   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皙@r  r*   皙@r  333333@=
ףp=@r  (\
@r  r+   r  皙@)\(@Q@)r  r  r  r  r*   r  r  r  r  r  r  r  r  r  r  r+   r  r  r  r  r  r  r  g33333<@)rY   r   rZ   dat_nandatr  s    re   setup_classz"TestMedianAbsDeviation.setup_class
  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(   ?ri  )r   rS   median_abs_deviationr  rW   rY   rm  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   rl  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   rl  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  rd  rd  rz   )centerr|   rA   r   rD  )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   r  rS   r  r  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  rY  rZ  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   rE  r  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  rd  r   )rf  r  r)   r  )r  r  rG  r~   lineargٿrz   r  T)rY   rU  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   r  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nearestr  r  )r!   r"   r#   r#   )r"   r#   )r!   r#   r   )r!   r"   r*   r  r   r   r"   r   r   r   )	rY   rU  r   rS   r  r	   r  r   rm   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 )Nrc  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   rX  )r   r    r   r   r!   r  )rY   rE  rG  dstackrS   r  r   moveaxisswapaxesr   r  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   )rf  g     U@)rJ  r*   )g      )@r  )rH   r  g?)r   r  rf  )r   r  <   )
rY   r   r   rS   r  r   r   r   rZ   r  r  s     re   test_rngzTestIQR.test_rngR  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  )rf  P   )rJ  r  r    r  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^   r6  s       re   test_interpolationzTestIQR.test_interpolation]  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   rU  r   rS   r  r  r  s     re   r  zTestIQR.test_keepdims  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$   rG  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ej                            d
ddg          ej                            d edd                    d                         Zej                            d
ddg          ej                            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    r  )gp=
ף?g?߾?gD9?gQI?g}?5^INr  r?   c                    t          j        |          }|t          j        ||          }t          ||           ||j        }|j        |k    sJ d S r  )rY   rm  broadcast_tor	   r?   )r]   r  expectr  r?   s        re   _assert_equalzTestMoments._assert_equal  s]    F##_VU33F66***=LE|u$$$$$$rt   r   rH   )rH   r   zm, cr  )Nr   r   c                 N   t           j                            d          }|                    |          }t          j        |||          }|t          j        |d          n|}t          j        ||z
  |z  d          t          |          z  }t          ||d           d S )Nl   rHZ r>  r  r   r@   缉ؗҜ<r   )	rY   rE  rF  rS   momentrX   r  r  r   )r]   r   r  ry  rJ  r   r   rL  s           re    test_moment_center_scalar_momentz,TestMoments.test_moment_center_scalar_moment  s     i##$788JJDJ!!l1a***"#)BGAAfa!eaZa(((Q/Su------rt   ry  c                     t           j                            d          }|                    |          g d}t          j        |          }fd|D             }t          ||           d S )Nl   %~.}~= r>  r  r  c                 >    g | ]}t          j        |           S )r  )rS   r  )r  r  ry  r   s     re   r  z?TestMoments.test_moment_center_array_moment.<locals>.<listcomp>  s*    777u|Aq+++777rt   )rY   rE  rF  rS   r  r   )r]   r   ry  rJ  r  r   rL  r   s     `    @re   test_moment_center_array_momentz+TestMoments.test_moment_center_array_moment  s     i##$788JJDJ!!LLl1a***77777Q777S#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  )r  rA   )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  r0  r   )r   r   r!   r"   r   )rY   rE  r  r(  rS   r  r  r  )r]   r?   r   r  r   r^   s         re   test_constant_momentsz!TestMoments.test_constant_moments6  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  rn  r   )r]   r   mms      re   test_moment_propagate_nanz%TestMoments.test_moment_propagate_nanH  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  r  s    re   test_moment_empty_momentz$TestMoments.test_moment_empty_momentP  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        | j                  }t          j        |          sJ t          j        | j                  }t          |dd           t          j        | j        d          }t          |dd           t          j        | j                  }t          |dd           t          j        d          }t          j	        |d<   t          j
        d	
          5  t          t          j        |          t          j	                   d d d            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 )Ng7l*ҿrH   r   biasg2۠ۿr}   rx   r&   ry  rz  rz   r{   r~   r   )rS   skewr)  rY   r  testmathworksr
   r*  r   rZ   r|  r   r   r   r]   r^   r   s      re   test_skewnesszTestMoments.test_skewnessV  s   Jt+,,x{{ 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   (-D!!D%(D%c                 d    t          t          j        t          d                    d           d S )NrH   r}   )r   rS   r  r   r  s    re   test_skewness_scalarz TestMoments.test_skewness_scalark  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  ry  rz  r   r  r  r   r   r   )rY   r   rW   r(  r  rZ   r|  rS   r  rn  r   )r]   r   r  s      re   test_skew_propagate_nanz#TestMoments.test_skew_propagate_nano  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 )NPrecision loss occurredr   9ѿrH              Fr  g,@r$   r   rO   r!   r  )
r2  r  r\   rY   repeatr  rS   r  r  r   r]   r   s     re   test_skew_constant_valuez$TestMoments.test_skew_constant_valuex  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                    t          j        | j                  }t          j        |          sJ t          j        | j        ddd          }t          |dd           t          j        | j        dd          }t          |dd           t          j        | j        dd          }t          |d           t          j        d          }t          j	        |d	<   t          t          j        |          t          j	                   t          t          j        |d
          d           t          t          t           j        |d           t          t          t           j        |d           d S )Nr   r   fisherr  gO߻S@rH   gx|N@g=
ףp=?rx   r&   rz   r{   Gzr~   r   )rS   kurtosisr)  rY   r  r  r
   r*  r   rZ   r   r   r   r   r  s      re   test_kurtosiszTestMoments.test_kurtosis  s5   N4/00x{{
 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Irt   c                 |    t          t          t          j        g d                    t          j                   d S )Nr&  )r   typerS   r.  rY   r   r  s    re   test_kurtosis_array_scalarz&TestMoments.test_kurtosis_array_scalar  s0    T%.3344bjAAAAArt   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.  rn  r   )r]   r   r  s      re   test_kurtosis_propagate_nanz'TestMoments.test_kurtosis_propagate_nan  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 )Nr  )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T%BBGG	I 	I 	I 	I 	I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   rE  rF  rS   r  )r]   rJ  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   rX  r*  r)  rY   rE  r  r  r8  r  r  r2  rY  rZ  r   r  r  r  r   r   
complex128r  r  r  r  r   r"  r)  r/  r2  r4  r6  r:  r=  r@  r   rt   re   r  r    sx         yyHOINN4!y~~b11<<<M59 % % % % % [Vb']33[VWW\<%H%HII. . JI 43. [Vb']33[S,//  0/ 43-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6B B BC C CI I II I I      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                 0   t                      5 }t          j        d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   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  t1          t          j        |d          t          j        t          j        f           t          t          j        |dd          d           t3          t4          t
          j        |dd           t3          t4          t
          j        |dd           d d d            d S # 1 swxY w Y   d S )Nry  r{  divider&  r  r   r   r   r   r   r   r"   rH   3   it r;  r<  r   r@  r  rz  r6   rz   r{   )g̈́^Bg/kCm?r~   r   )r   rY   r|  r'  r\   rS   ttest_1sampr   r  X1r   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2normrA  rZ   r	   r   r   )r]   rd   tr   r   r   r   s          re   test_onesamplezTestStudentTest.test_onesample  sn      	-CHX>>>	- 	-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%-/ / / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/sG   A=4A&A=&A*	*A=-A*	.A==BBB%LLL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   rJ  rK  r   P1_1_lrQ  P1_1_g)r]   rV  r   s      re   test_1samp_alternativez&TestStudentTest.test_1samp_alternative
  s    j%"3TWa")	+ 	+ 	+ 	+  !@@@14;'''49%%% !CCC14;'''49%%%%%rt   r  r  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   rE  rF  rG  rl  rS   rJ  r	  r   r   df)	r]   r  rJ  r  r   r`  rL  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   rb  )rS   rJ  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   rK  rN  rL  rM  rQ  rR  rS  rT  rO  rP  rZ  r[  rW  r\  r2  rY  rZ  re  rh  r   rt   re   rC  rC    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   rC  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.f5  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   ro  r]   rw  r  r   s       re   test_uniquez!TestPercentileOfScore.test_unique8  s7    
 ,++TVVAqtV,,f55555rt   ))r  r  )rX   r  rq  )rs  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r   r    r!   r!   r"   r#   r$   r%   r&   r!   rv  rx  ry  s       re   test_multiple2z$TestPercentileOfScore.test_multiple2@  7    
 +**TVVAqtV,,f55555rt   ))r  r  )rX   r  rq  )rs  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r   r    r!   r!   r!   r"   r#   r$   r%   r!   rv  rx  ry  s       re   test_multiple3z$TestPercentileOfScore.test_multiple3H  r}  rt   ))r  r  )rX   r  rq  )rs  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r   r    r"   r#   r$   r%   r&   rH   rI   r!   rv  rx  ry  s       re   test_missingz"TestPercentileOfScore.test_missingP  s7    
 -,,TVVAqtV,,f55555rt   c                 Z    g d}t          |                     |d|          |           d S )N
rH   rd  r  r  r  r  F   r  r  r<  r  rv  rx  ry  s       re   r  z(TestPercentileOfScore.test_large_numbersX  s7    
 655TVVArV--v66666rt   c                 Z    g d}t          |                     |d|          |           d S )N)
rH   rd  r  r  r  r  r  r  r  r  r  rv  rx  ry  s       re   test_large_numbers_multiple3z2TestPercentileOfScore.test_large_numbers_multiple3`  s7    
 544TVVArV--v66666rt   c                 Z    g d}t          |                     |d|          |           d S )N
rH   rd  r  r  r  r  r  r  r<  n   r  rv  rx  ry  s       re   test_large_numbers_missingz0TestPercentileOfScore.test_large_numbers_missingh  s7    
 766TVVArV--v66666rt   r  )r   rH   r<  r<  rX   )r   r"   _   r<  rr  )r   r   r  r<  rs  c                 ^    g d}t          |                     |g d|          |           d S )Nr  )r   rH   r  rv  rv  rx  ry  s       re   test_boundariesz%TestPercentileOfScore.test_boundariesp  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&   rv  )rY   rl  r   ro  ry  s       re   test_infzTestPercentileOfScore.test_infx  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{   rx  )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   ro  )r]   r  r   r  r3  s        re   test_nans_failz$TestPercentileOfScore.test_nans_fail  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#   rr  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   ru  r  rv  )rY   r   rW   r   ro  )r]   r  r   rG  resultss        re   test_ndzTestPercentileOfScore.test_nd  sg     H'''((5!!)+++TVVAvFV33W=====rt   N)r   r   r   ro  r2  rY  rZ  rz  r|  r  r  r  r  r  r  r  rY   rZ   casesr  r  r  r   rt   re   rj  rj  3  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   rj  Case)f_obsf_expri   rA   chi2logmod_logcr)r!   r%   rJ   r%   r!   r   r(   rJ   r)   r%   r  r  gfx(@)r   re  rJ   r   rL  r  re        ?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   rm  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-readr  )
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   r  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   rL  r  	ones_likerX   r  r  r  r  r  r  r   rW   )r]   case0case1r  r  s        re   r  zTestPowerDivergence.test_axis3  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   rL  r  r  r  rX   r  r  r   rS   r  r   r	   )r]   r  r  r  r  expected_chi2ri   r  r   stat0p0stat1p1s                re   test_ddof_broadcastingz*TestPowerDivergence.test_ddof_broadcastingM  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_casesi  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  rG  )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_attributesy  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   rd  r  r"   rc  rp  rf  For each axis slice...r   r  r  r  r   )r  r  rA   g̑m@gUUU@gj^4;?g4;?)rY   r   r   r   rS   r  r   )r]   r  r  r  r  s        re   test_power_divergence_gh_12282z2TestPowerDivergence.test_power_divergence_gh_12282  s   2r(RH-..1b'B8,--:-EF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   rd  r  r  r  )r   r   rS   r  r   rt   re   test_gh_chisquare_12282r    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, dtyperv  i@B c                    t          j        | dg|          }t          j        | dz  | dz  g|          }t          j        ||          }|\  }}t	          || d           t          |j        |           t          |j        |           d S )Nr   r>   r   r_  r  )rY   r   rS   r  r   r   r   r   )r  r?   obsexpr   r  r   s          re   #test_chiquare_data_types_attributesr    s     (Aq6
'
'
'C
(AFAF#5
1
1
1C
/#s
#
#CGD!D!%((((%%%Qrt   c            	         t          j        g dg dg          j        } t          j        g dg dg          j        }t           j                            | |          }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%   re      rN   )rN   rN   r    r!   r"   )r   r   r   r   r   )r   r   r   r   r   g      8@r(   r   re  r  r  r    r  r"   r
  r   r@   r   r  r  rc  rB   )rA   r  )r    r"   r#   r  rH   )r   r   r   r   r   r~  )r   r!   r%   rH   r  )r  r&  r   ry  rz  rP   r   r  )rY   r   r  r  r  r  rS   r  r  r  matr	   r   r  r  r  r   r0  r   r   r   r|  r   r'  r\   MaskedArrayr  r  r  )r  r  r  expected_chisq
expected_gr  chisqr   gobs1exp1rd   empty3s                re   test_chisquare_masked_arraysr    s   
(&&&(9(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)rc  rI   rF   rQ   r"   rI   rH   r!   r%   rH   r$   r&   rI   r    r#   r   r   r!   g*kqr   ) g      $g    @rK  g     r@g      gffffffP@g       gLD@rA  g      A@r   g     =@r@  g     :@r}   g8@r(   gffffff7@gq=
ףp?g7@r   g333336@r)   g6@r  gfffff6@r   g8@r6   g     A@rx   g     j@rN   r   r   r  g{Gzt?r  )rY   r   r   r  r  r  r  rL  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+ԋ?rG  )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 NrU  r  r  rB   )rS   kstestrY   r   r   	r]   r   r  expected_statisticexpected_probr  rC   r  r+  s	            re   _testOnezTestKSTest._testOneV  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_1samprU  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&   rG  rU  )rY   r,  rS   r  r   r]   r   r   r   s       re   test_namedtuple_attributesz%TestKSTest.test_namedtuple_attributes`  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  rc  
r-  gQ?g333333g(\?gQ?g(\ſg{GzgHzG?g\(\gGzr  rV  r  r  )rY   r,  r  r  s     re   test_agree_with_ks_1sampz#TestKSTest.test_agree_with_ks_1sampg  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   rX  r  r  r  r  r   rt   re   r  r  S  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  rU  r  rY   r   r   r   s	            re   r  zTestKSOneSample._testOney  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&   rG  )rY   r,  rS   r  rU  r  r   r
  s       re   r  z*TestKSOneSample.test_namedtuple_attributes~  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  rc  g{CTp?g M<b*?r  gZL?g86J4?r  g+?rV  r  r  gHD?gr?rY   r,  r  r  s     re   test_agree_with_rz!TestKSOneSample.test_agree_with_r  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   rU  rA  r  r  s     re   test_known_examplesz#TestKSOneSample.test_known_examples  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   rm  r   checkintr  bool)r]   datasets     re   test_ks1samp_allpathsz%TestKSOneSample.test_ks1samp_allpaths  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  r  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   rX  r  r  r  r  r)  r2  rY  rZ  rS   r  r  r2  r   rt   re   r  r  v  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  r  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  rB  r   r  r   r  r   r  r  r  r  rj  r  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  rB  rT  r  r(   g?r  g?r  r  皙?r  ri  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   r  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  rd  r  r  g?g@߿?r  g}n?r  r   g:[?g]O);?gѫ);?r}   r   r  )r]   rE  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)r9  iX  r   r   r   rv  r  g     @@r  r  r  r  g2JE?r  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.rV  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   rv  r  g     ȹ@r  r  r  r  gZ?r  g     @@g@J?rW  rV  Tr  r  rX  rY  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 	2r^  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   rv  r<  r  g    `@g      <r  g     @g򼉷?r  gimb:r  )r]   rZ  r[  lcmr\  r   r^   s          re   	testLargezTestKSTwoSamples.testLargeP  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  rV  rY   rE  r  rG  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 )Nrg  rc  r>  i'  r)   r  g 	_r!?gAD5r  r  rh  rV  r  gלN#y7r  gvqw?ri  r,  s      re   test_gh11184_biggerz$TestKSTwoSamples.test_gh11184_biggerc  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 )Nrg  r=  i.  r>  rH   r(   r   r;  rV  r  r  r    )	rY   rE  r  r  rG  rS   r6  r   r   )r]   r   vals1vals2rV  r  s         re   test_gh12999zTestKSTwoSamples.test_gh12999n  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)rc  i*  r  r   r   r   rv  r  g     @gkHY?r  r  gLɔ.?rV  r  r  g.LbG2?r  rx   gr?֎?rW  )rY   r,  r  r   r'  r\   )	r]   rZ  r[  rd  r\  r   r^   rd   r3  s	            re   testLargeBothzTestKSTwoSamples.testLargeBothz  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 )NrG  r   r   r    )rS   r6  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~   rz  r`  iK  rK  )scipy.stats._stats_pyrx  ry  rY   r|  r   FloatingPointError)r]   rx  ry  s      re   test_some_code_pathsz%TestKSTwoSamples.test_some_code_paths  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   r6  r  s    re   test_argument_checkingz'TestKSTwoSamples.test_argument_checking  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   r^  r  r  r  r  r  N)rY   rE  r  rS   r  rA  r6  )r]   rZ  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   rE  rF  abshashr2  r  r\   rS   r6  r   r   )r]   rJ  r  r  r3  r   s         re   r  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  皙@r  r   )r  ffffff@r  rN   )r  r  r  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  r  )	rY   r   r   copyrS   r6  r   r-  r.  )	r]   r*  r  r/  r0  r1  r   r^   r   s	            re   r2  z#TestKSTwoSamples.test_location_sign  s     Ib
+++FFHH!nQ{;;;}####%5555!X------rt   N)r  )!r   r   r   rX  r  r8  r?  rB  rH  rM  rS  rU  r2  rY  r  r]  ra  re  rj  r[  rl  rq  rs  rv  r|  r~  r  r  rZ  rS   r  r6  r2  r   rt   re   r4  r4    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   r4  c            	      (   d\  } }| |  g||gf}t          j        ddd          }t          j        ddd          }t          j        t          j        ddd          t          j        ddd          g          }t          j        t          j        ddd          t          j        ddd          g          }t          j        ||d          \  }}t          ||g| |f           t          j        |j        |j        d          \  }}t          ||g|           t          j        ||d          \  }}t          ||g|           t                      5 }	t          j        dd	          5  |		                    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   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  t7          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#            t9          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 d0d1f<   t          j        ||dd           \  } }t          j        ||ddd2          \  }}t+          || d34           t          j        d          5  t+          | || |d          d34           d d d            n# 1 swxY w Y   t          j        ||ddd2          \  }}t+          || d34           t          j        d          5  t+          | || |d          d34           d d d            d S # 1 swxY w Y   d S )5N)gu?gȵI?r   r<  r<  gKX@r   r@   ry  rE  r&  r  r   rG  rr  r   r  rY  r  r  rA   r  r  r  r"   rH     rI  r9  r*  )r<  r   r@  rz  rz   r{   )ghm#1?gry̧?r~   r   r$  r   r  r  rN   r  rL  )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   rV  r   alts      re   convertztest_ttest_rel.<locals>.convert0  <    EEcVmmQ3)3C3Cq5LAE{rt   rd  r  rc  rf  rp  r  r  )#rY   r,  r   rS   	ttest_relr   r  r   r|  r'  r\   r   r  r   r  r  r   r  r  r   r   r   rE  RandomStaterU  rA  rZ   r	   r2  r  rl  r  r   rW   	vectorize)trrX  tprr  r  rvs1_2Drvs2_2DrV  r   rd   r   r   rvs1_3Drvs2_3DrJ  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((( 
		 'K:::' '

>#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   G,4F, G,F0	0G3F0	4GG
G:TTT)WWW"B1[[#&[#$```b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   )rX  grh|?-C6?)rY   rZ   rS   r  r   r   r   r   r^   r  r  r3s        re   test_ttest_rel_nan_2nd_argr  H  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  r0  	_stats_pyTtestResultr   rY   rZ   r  s    re   #test_ttest_rel_empty_1d_returns_nanr  ]  O     _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  r0  r  r  rm   rZ   r   r   r   r   expected_shaper   r  expected_values        re   test_ttest_rel_axis_size_zeror  e       	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  r0  r  r  r   r   r  r   r   r   r  s      re    test_ttest_rel_nonaxis_size_zeror  t      
 	A
A_Q***Ffeo9:::::!'000$f-----rt   r  r  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   r^  gZ?Ygi{a?g8 gC?r_  r  ra  rb  r   )rY   rE  rF  rG  rl  rS   r  r	  r   r   rd  )r  rJ  r  r   r^   rL  r   r  s           re   test_ttest_rel_ci_1dr    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 )Nrg  r   rH   rb  )r2  r   r   r	  )test_funrm  r   r3  s       re   test_ttest_ci_ivr    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   rm  rX   rq   r  )r   rA   murq   nobss        re   _statsz_desc_stats.<locals>._stats  sP    JqMMWQT"""fQT***wt}3}rt   r  r   )r	  r
  rA   r  s       re   _desc_statsr    s;        6"dffR....rt   c            	         d} d}| |  g||gf}t          j        ddd          }t          j        ddd          }t          j        ||g          }t          j        ||g          }t          j        ||d          \  }}t          ||g| |f           t          t          j        t          ||           ||g           t          j        |j        |j        d          \  }}t          ||g|           t          |j        |j                  }	t          t          j        |	 ||g           t          j        ||d          \  }}t          ||g|           t          ||d          }	t          t          j        |	 ||g           t                      5 }
t          j
        d	
          5  |
                    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   t          t          j        |                     t          t          j        |                     t          j        |||g          }t          j        |||g          }t          j        ||d          \  }}t!          t          j        |          t          j        |                      t          t          j        |          |           t%          |j        d           t          j        t          j        |dd          t          j        |dd          d          \  }}t          t          j        |          t          j        |                      t          t          j        |          |           t%          |j        d           t+          t,          t          j        ||d           t+          t,          t          j        gt          |j        |j                  R ddi t          j        ||d          \  }}t/          |d|dz  z
             t/          ||            t          j        ||d          \  }}t/          ||dz             t/          ||            t          j        |j        |j        dd          \  }}t          |j        |j                  }	t/          t          j        |	ddi||g           t          j        |j        |j        dd          \  }}t          |j        |j                  }	t/          t          j        |	ddi||g           t           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+          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 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+          \  }}t/          || d,-           t/          | || |d          d,-           t          j        ||ddd+          \  }}t/          || d,-           t/          | || |d          d,-           d S ).N	ru?g8Mѱ?r   r<  r"   i   r   r@   ry  rz  r&  r  r   rr  r   r  rY  r  r  r  r  r  r  rH   r  rI  r9  rz   r{   )guͷ?g*,?r~   r   r$  r   r  r  rN   r  rc  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|  r'  r\   r   r  r  r   r  r   r  r  r   r   r   rE  r  rU  rA  rZ   r	   r2  r  rl  r  r  )r  rX  r  r  r  r  r  rV  r   rm  rd   r  r  rJ  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 ' '

>#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'02 2 2DAqAr&&&&AyyR33%@@@@@@sm   H.4G."H.G2	2H5G2	6HH	H	:XX X*[[[#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_permutationsrd  r   r    r!   r<  rH   r   r   r"   r9  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_permutationsT  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   rE  r  r  r  rS   r  r   r   r   )r]   Nr   r   r  res_g_abres_g_bares_l_abres_l_bares_2_abres_2_bar  s               re    test_ttest_ind_exact_alternativez<Test_ttest_ind_permutations.test_ttest_ind_exact_alternativea  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   rE  r  r  rS   r  rl  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   rE  r  r  r  r  r   setr   )
r]   r   r   r  nanbr  t_statr  n_uniques
             re   !test_ttest_ind_exact_distributionz=Test_ttest_ind_permutations.test_ttest_ind_exact_distribution  s     		q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   rD  r   )
rY   rE  r  r  r  rS   r  r   r   r   )	r]   r  r   r   r  r  r  r  r  s	            re   $test_ttest_ind_randperm_alternative2z@Test_ttest_ind_permutations.test_ttest_ind_randperm_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   rE  r  r  rZ   r  r   r   rS   r  r   r[   r\   r  anyr   r   r   r   r  )	r]   r  r   r   r  r   rd   r  r  s	            re   $test_ttest_ind_permutation_nanpolicyz@Test_ttest_ind_permutations.test_ttest_ind_permutation_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            d S # 1 swxY w Y   d S )
NzPermutations must ber   rO   r  r)   z'hello' cannot be usedr   hello)r  r@  rA   )r   r   rS   r  r  b2r   r   r  s    re   'test_ttest_ind_permutation_check_inputszCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputs  s   :-CDDD 	? 	?ODGTW2>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?:-CDDD 	@ 	@ODGTW3????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@:-EFFF 	: 	:ODFDF)0q: : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s5   "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   rd  r   r  r}   )rY   rE  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   rE  r  rL  r   r   r   r  r  r  b3rS   rU  rA  rW   r  r  r  r  p_d_genp_d_bigtolistr  rF  paramsr2  rY  rZ  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: : :# # # # #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kwdsrv  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   rX  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>D  s(       9 9aq 9 9 9 9 9 9rt   )rY   rE  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@   ry  rz  z'invalid value encountered in less_equalr$  rA   )rY   rE  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_axisN  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  rY  r  rZ  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*  )rA  g33333`@rJ   g33333^@g(\P@r  gfffffڇ@gBM)u?g]@gyd?g	s5v@g{Gz?r  r  r  r   ffffff?r   r"  r"  r  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   rX  r  r	  r   r   s           re   test_ttest_compare_rz$Test_ttest_trim.test_ttest_compare_r  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   r  rf  r  ,   rJ   rF   r  rf  r  r-  )rQ   rw  rF   rJ   r     r  rQ   rw  rF   rJ   r  r.  r  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_SAS  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  r3  r   Nr*  )r]   r  rX  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                     d}t          t          |          5  t          j        ddgd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  r   r   rS   r  )r]   r   s     re   test_errors_unsupportedz'Test_ttest_trim.test_errors_unsupported  s     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 	E 	E 	Es   AA
A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   r2  r8  )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  rY  rZ  r+  r0  r4  r6  r9  r;  r   rt   re   r   r   k  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 E E E [V\\\227 7 327 7 7rt   r   c                      e Zd Z ej        d          Zg ded<   dddej         dged	<   ddd
dej        ged<   g ded<   dddej         dged<   ddddej        ged<   g ded<   g ded<   g ded<   g ded<   g ded <   g d!ed"<   ej        	                    d#g d$          ej        	                    d%d&d'g          ej        	                    d(d)d*g          d+                                     Z
d,S )-Test_ttest_CI)r    r   r   r"   r  )gͿe13@gv7?gę"Ͽg8 {M(?r  r>  r?  gv7?gx_?r  g
/?gD .ɿ)r   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   r@  rA  g?JJ?gF?)r   r   r   g{?gads2ѿ)r   r   r   )s"%οrw  gW"?NN)r   r   r   )rB  rw  gW"?NNr   r   r   )rB  rw  g:T'?NN)r   r   r   ):пrF   g0:5?NNr  )rD  rF   g0:5?NNr  )rD  rF   g be?NN)r   r   r   r  r  r  FTr	  r   r*  c                    |r|rt          j        d           t          j                            d          }|                    d          }|                    d          }t          j        |||||          }dddd	}| j        ||         t          |          t          t          j	        |                    f         }	|	\  }
}}}}t          |j        |
           t          |j        |           t          |j        |           |sA|                    d
          }t          |j        |           t          |j        |           d S d S )Nz3Discrepancy in `main`; needs further investigation.l   'Nk' rI   rK   )r  r  r	  r   r   r   r  r  )r2  xfailrY   rE  rF  rS   r  r   r&  ceilr   r   rd  r   r	  lowhigh)r]   r  r  r	  rJ  r   r^   r   r  rL  r   rd  r   rH  rI  r  s                   re   test_confidence_intervalz&Test_ttest_CI.test_confidence_interval  sO     	P 	PLNOOOi##$788JJrNNJJrNNoa(1> > > &'a@@f\+.IBGDMM@R@RRS+.(	2vsDy111###
F+++ 	+((--BBFC(((BGT*****	+ 	+rt   N)r   r   r   rY   r"  r   rl  r2  rY  rZ  rJ  r   rt   re   r=  r=    st       : 	|$$$ANNNAgJibfWlKAgJiM26JAgJLLLAgJibfWlKAgJiL"&IAgJJJJAgJJJJAgJJJJAgJJJJAgJJJJAgJJJJAgJ[],L,L,LMM[[5$-88[VaX..+ + /. 98 NM+ + +rt   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   rE  r  r  r   r  r   r  )
r   r   ry  indexr  r  r  lr  r  s
             re   test__broadcast_concatenaterO  3  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<  rf  r"   r  r   r  r@   rG  rr  r   r  r$  r   r  r  ry  r  rN   r  )rS   r  r   r  r  rY   r,  r   r  r   r  r   r  r   r  r  r2  r  r\   rl  r|  rZ   r  )r   r   rX  r  rV  r   	tr_uneq_n	pr_uneq_nr  rvs3r  r  r  r  rm  r   r   r  r  r  s                       re   test_ttest_ind_with_uneq_varrV  E  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_argrX    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  r0  r  r  r   rY   rZ   r  s    re   #test_ttest_ind_empty_1d_returns_nanrZ    r  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  r0  r  r  rm   rZ   r   r   r   r  s        re   test_ttest_ind_axis_size_zeror\    r  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  r0  r  r  r   r   r  r   r  s      re    test_ttest_ind_nonaxis_size_zeror_    r  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_lengthsra    s     	A
A_Q***Ffeo9:::::!'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_gh5686rl    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#   FrQ  )rS   r  r   rY   rZ   r  s    re   %test_ttest_ind_from_stats_inputs_zerorn    s@    '1aAqEJJJF"&"&)*****rt   c                      t           j                            d          } |                     d          }|                     d          }|                     d          }t          j        ||dd          }t          j        |j        t          j                    j	                  j        d	k    sJ t          t          j        |j        |dz            |d
           t          j        ||dd          }t          j        |j        t          j                    j	                  j        d	k    sJ t          t          j        |j        |dz            |d
           t          j        g ddgd          }t          |dd           d S )Nl   bQ )rc  r   r>  )rc  r   r<  TrN   )r  rA   r  rB  r   )r   r    r"   r)   rQ  )gzNd?gJ?r3  r  )rY   rE  rF  rG  r  rS   r  r  r   r  r   
percentile)rJ  r   r^   r  r   s        re   test_ttest_single_observationrq    s^   
)


0
0C



##A



##AA
/!Q$R
8
8
8C>#*emoo&9::ACGGGGBM#*ae44adCCCC
/!Q$R
8
8
8C>#*emoo&9::ACGGGGBM#*ae44adCCCC
 /)))cUd
;
;
;CC:GGGGGGrt   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   rc  rd  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  ry  rR  rN   r    r!   r%   rz   r{   rp  )rS   rU  rA  rJ  rY   rU  r   r   r   r  r  rl  r  r   r|  rZ   r   )rZ  r[  n3rvn1r6  r  r7  p2r8  p3rV  r   r  r  r  rX  pcr  s                     re   test_ttest_1samp_newry    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   rc  rd  r>  z%`popmean.shape\[axis\]` must equal 1.)r"   r   rd  r   rX  )r`  rA   )r"   r   rd  )r"   rd  r@   g?)rY   rE  rF  r2  r   r   rS   rJ  r   r  rQ  r	  r   r   )rJ  r   r3  r`  r   r  s         re   test_ttest_1samp_popmean_arrayr{  h  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                    t                      5 }t          j        d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   t          |d           t          |d           t          |d           t          j        |          sJ t          j        |          sJ t          j        |          sJ d S )Nry  rE  r&  r  r   )r  r  )	r   rY   r|  r'  r\   rS   describer   r  )r]   rd   r  r  r  r  skkurts           re   test_describe_scalarz!TestDescribe.test_describe_scalar~  so      	7Ck(8<<<	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 	QR$$$Qx{{x||x~~s4   B 7A)B )A-	-B 0A-	1B  BB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?r  r  r  )r  r  r  r  H,p ?r!   TUUUUUrK   rB   r   r@   rx   r&   )r&   )r}   r#  r  r/   r}   gGzrz   r{   r~   r   )rY   rL  rU  rm   r   rS   r  r   r   r  r   rZ   r   r   r]   r   ncmmcmcvcskckurtcr  r  r  r  r  r  s                 re   test_describe_numbersz"TestDescribe.test_describe_numbers  s   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   r  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  r  r  )Q?r  r  r  r  r!   r  r   rh   r   r  rK   rB   )
rY   rL  rU  rm   r   rS   r  r   r   r   r  s                 re   test_describe_ddofzTestDescribe.test_describe_ddof  s,   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   )rd  )r   r  r  ga+?gE,p ?gUUUUUUr@   rK   rB   )rY   rL  rU  rm   rS   r  r   r  r   r  rX   r  r   r  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_none  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   r  r  s    re   test_describe_emptyz TestDescribe.test_describe_empty  s    j%."55555rt   N)	r   r   r   r  r  r  r  r  r  r   rt   re   r}  r}  }  su        
 
 
'J 'J 'JR0 0 0; ; ;B B B(6 6 6 6 6rt   r}  c            	         t          t          t          j        d           t          t          t          j        d           t          t          t          j        d           d\  } }}d\  }}}d|dz  z
  |dz  }}|dz  d|dz  z
  }	}t          j        d          dz  }
d}t          t          j        |
          | |f           t          t          j        |
          |           t          t          j        |
          ||f           t          t          j        |
d	          ||f           t          t          j        |
d
	          ||f           t          t          j        |
          |           t          t          j        |
          ||f           t          t          j        |
d	          ||f           t          t          j        |
d
	          ||	f           t          t          j        |
          |           t          j
                            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)          t+          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)          t+          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) t/          |          D                       }
t1          t          j        |
          d         d*k     d+           d S ),Nr  )gMc@gO?g{\᛿)g2$?gגe`?gǃK@?r   r   )rX  rN   r   r   r   r    rX  rN   r   r   r   r    rX  rN   r   r   r   r    rX  rN   r   r   r   r    rG  r  r  r  rc  {   )r   r   r@  r}   r"   rB   r   r@  r@   rx   r&   ry  rz  )geGK?gZ^<ý?rz   r{   rH   r<  rp  r   r   rR  r~   r   r%   g      >@r.  )g9+%g?*ݗ?rd  )gwGw@g{8NĦ?)
r:  r   :   r$   r   )   re  r   r      c                 >    g | ]\  }}t          j        ||          S r   )rY   rm   )r  r  ry  s      re   r  z'test_normalitytests.<locals>.<listcomp>M  s&    ???TQ271a==???rt   rB  T)r   r   rS   skewtestkurtosistest
normaltestrY   r   r   r   skewnormrA  r   r   laplacer   rZ   r|  r	   r   rL  r  rP  	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    s	   *enb111*e0"555*e.333 #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<<<()46 6 6enQT:::&02 2 2e0>>>&02 2 2 		#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7sH   9NNN	#R88R<?R<9VV"%V"+9]00]47]4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  r5  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_attributesV  sk     ~dfdf*57 7 77= 	!$&$&.9; ; ;;A 	d#####rt   c                 d    t          j        | j        | j                  }t	          |d           d S )NrG  )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^   r  s    re   test_input_validationz"TestRankSums.test_input_validationc  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   rE  r  r  r   r^   r2  rY  rZ  r  r  r  r   rt   re   r  r  Q  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]  rc  )rY   rE  r  rG  r  rayleighr   rS   jarque_berar   r   r   r]   r   r^   r  s       re   test_jarque_bera_statsz%TestJarqueBera.test_jarque_bera_statsi  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   rE  r  rG  rS   r  rL  tuplerW   r   r   r   )r]   r   jb_test1JB1r  jb_test2JB2rv  jb_test3JB3rw  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  r  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   r  r>  r@   r   r   )rY   rE  rF  r  r  r   rS   r  r  r   r   r   r  )	r]   rJ  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  h  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    rx  g=_A?r7   glPz.?rS   r  rU   Yr   r   r
   r8   	r]   u1r  u2rv  u3rw  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  rx  glPz.?r7   rS   r  rU   r  r   r
   r8   r]   r  r  r  rv  s        re   test_mannwhitneyu_two_sidedz,TestMannWhitneyU.test_mannwhitneyu_two_sided  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  rx  gii5?r7   g22?r  r  s	            re   &test_mannwhitneyu_no_correct_one_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_one_sided  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  rx  g22?r7   r  r  s        re   &test_mannwhitneyu_no_correct_two_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sided  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_ones  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 )NrG  r  r  )rS   r  rU   r  r   ru  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(@rh  r!  r  g333333@ffffff@g333333@r+   r  皙	@r   r  r  r*   r  gffffff@ @333333?r  r)   ?r  r  r  r  rA  r  rj  r(   r*  r*  r  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$   rX  r$   r   )r   r    r#   r&   )r  r   r   r  r"   )㪪@I?g&>ڿr  r  )5@㪪@gIr  r  r   r%   rB   rI   )r"   rI   r&   r    r   r   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r!   )
rY   r   rS   obrientransformr   r   r   r   r  r'  )r	  r6  r+  r
  r7  r   r   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_likerR  rA   r?   r  r  r   s          re   check_equal_gmeanr  h  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  p  sG    JTHHHAAwT****%     rt   c                     t          j        | ||||          }t          |||           t          |j        |           d S r  )rS   pmeanr   r   r?   )r  r  rR  rA   r?   r  r  r   s           re   check_equal_pmeanr   w  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   rR  s      re   test_0zTestHarMean.test_0  &    II!W%%%%%rt   c                 ^    g d}d}t          ||           g d}d}t          ||           d S )Nr  =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 )Nr  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   rd  r  r  r  r  r  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 r5  )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 )Nr6  r7  r8  )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  r7  r8  )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 )Nr6  r7  r8  )g3333333@O@y@Y@r   r@   r-  r&  s      re   test_2d_axis1zTestHarMean.test_2d_axis1  sS    ///1D1D1DE(<<<==!W1------rt   c                     g dg dg dg}t          j        g d          }t          t          j        |d          |           d S )NrC  r7  r8  )r}   rG  rH  r   r@   rD  r&  s      re   test_2d_axis1_with_zeroz#TestHarMean.test_2d_axis1_with_zero  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  rR  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   rO  rA   r  r  r-  rQ  s       re   test_weights_2d_array_axis0z'TestHarMean.test_weights_2d_array_axis0  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 )
NrM  r$   r$   r$   rN  r  r    r$   r   rO  rT  r-  rQ  s       re   test_weights_2d_array_axis1z'TestHarMean.test_weights_2d_array_axis1  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#   r  rH   r"   r    r  r   r   r   r   r~  r    rO  rP  )rY   r   r  r  rQ  s       re   test_weights_masked_1d_arrayz(TestHarMean.test_weights_masked_1d_array  sX     H^^^$$%++nnn<<<+@@!WgDAAAAAArt   N)r   r   r   r'  r+  r.  r0  r3  r:  r<  rA  rE  rI  rK  rR  rU  rX  r]  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 )Nr  sŤF@r  rL  r  r  r  )r  r   r&  s      re   r+  zTestGeoMean.test_1d_list  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 )Nr  rc  r  rL  r  r>   )rY   r   r  r   r   r&  s      re   r.  zTestGeoMean.test_1d_array  sj    H>>>??!W%%%,,,((w//!WG444444rt   c                 @    g dg dg dg}d}t          ||           d S Nr6  r7  r8  g/,$qJ@ra  r&  s      re   r:  zTestGeoMean.test_2d_list  s=    ///1D1D1DE!W%%%%%rt   c                 Z    g dg dg dg}d}t          t          |          |           d S rf  )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 )
Nr6  r7  r8  )g4@A@g5H@g`8|wЭN@gm~&+R@r   r@   r  r  rA   r  rY   r   r  r&  s      re   rA  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 )Nr6  r7  r8  )gD" 6"6@gcP@g
ҧZ@r   r@   r  rL  r  r  ri  )rY   r   r  r   )r]   r   rR  r  s       re   rI  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  r_  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   rd  r  r  r  r  r  r  r  r   r}   ry  rR  )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 )Nro  r}   ry  )rF  )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   rd  r  r  r  r  r  r  r  rN   ry  rz  )rY   rZ   r|  r  r&  s      re   test_1d_list_negzTestGeoMean.test_1d_list_neg0  s    444&[*** 	* 	*a)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AAAc                 @    g d}g d}d}t          |||d           d S Nr0  )r   r"   r#   r!   r    GZ*oG8@rO  rP  ra  rQ  s       re   rR  z TestGeoMean.test_weights_1d_list7  s8     OO!//!WgDAAAAAArt   c                     t          j        g d          }t          j        g d          }d}t          |||d           d S rv  rj  rQ  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   r~  rw  rO  rP  )rY   r   r  r  rQ  s       re   r]  z(TestGeoMean.test_weights_masked_1d_arrayG  sa     H'''((%++0007I7I7I+JJ!WgDAAAAAArt   N)r   r   r   r'  r+  r.  r:  r<  rA  rI  rm  rp  rr  rt  rR  ry  r]  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_referenceR  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_referenceU  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   r  s    re   test_bad_exponentzTestPowMean.test_bad_exponentX  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 )Nr  r+   r  r   r/   )r|  r  rY   r   r   r   r]   r   r   rR  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 )Nr  g      )rY   r   r|  r  r   r  s       re   r.  zTestPowMean.test_1d_arrayg  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  r  s       re   r0  z#TestPowMean.test_1d_array_with_zerol  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 )Nr2  gGz?zPower mean only defined if allr   )rY   r   r2  r   r   rS   r  )r]   r   r   s      re   r3  z-TestPowMean.test_1d_array_with_negative_valueq  s    x


##T1]:-MNNN 	 	K1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAr~  rH   rd  r  r  r  r<  r@  r(   c                     t                               t          j        |          |          }t	          |||           d S r  )r|  r  rY   r   r   r  s       re   test_2d_axisnonezTestPowMean.test_2d_axisnonev  s9     --bhqkk1==!Q(((((rt   r6  r7  r8  rC  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   )r|  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   r  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   )r|  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   r  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 )NrM  gރBrN  rO  rP  )r|  r  rY   r   r   r]   r   r   r  rR  s        re   rR  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 )	NrZ  r   r[  r\  r~  r  rO  rP  )rY   r   r  averager   r  s        re   r]  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  )r|  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  rO  rT  )getattrrS   rY   r   r   )r]   rA   r  r   r  r   r  rR  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.  r0  r3  r2  rY  rZ  rY   r   r  r  r  rR  r]  r  r   rt   re   r|  r|  P  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   r|  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 )TestGeometricStandardDeviationrL  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_array  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_input  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  r  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   r  r  r  s    re   "test_raises_value_error_zero_entryzATestGeometricStandardDeviation.test_raises_value_error_zero_entry  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  r  s    re   &test_raises_value_error_negative_entryzETestGeometricStandardDeviation.test_raises_value_error_negative_entry  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   r  r  rl  r  s    re   !test_raises_value_error_inf_entryz@TestGeometricStandardDeviation.test_raises_value_error_inf_entry  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   re  r   r   r    r@   r!   )r   rY   rZ   rS   r  r   )r]   r   r  s      re   test_propagates_nan_valuesz9TestGeometricStandardDeviation.test_propagates_nan_values  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   r  s    re   )test_ddof_equal_to_number_of_observationszHTestGeometricStandardDeviation.test_ddof_equal_to_number_of_observations  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_array  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_tuple  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_1  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_2  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 )Nre  r   r@   r  r  )	rY   r  masked_wherer  rS   r  r   r   r  )r]   r  r  r  r  s        re   test_masked_3d_arrayz3TestGeometricStandardDeviation.test_masked_3d_array  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  r_  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   rE  rF  integersr  r  r2  r  r  rS   
binom_test	binomtestr   )r  deprecation_msgr  rJ  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 )Nr  r*  r"   r  g?ra  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   r  r,  r  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>G  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   rU  r  r&  r   r   )r*  binom_testm1binom_testp1res4_p1res4_m1s        re   test_binomtest3r  D  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   r  rH   r*  r&   left)tailr   tE]t?r    r   r  rL  r#   r!   r"   r   )r  rA   r@   r   )rY   r   r   sortrS   trim1rW   r  )r]   r   rL  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%   rL  r#   r!   rd  r   )r   r%   rF   rd  )r    r&   rc  rE   r  r  )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!   rL  r#   r!   F)orderr   )r*   r0   g      -@g     4@rh  )r   r   r    r   )r   rx   r  r  ri  g      ,@)r$   rI   rJ   rE   re  r#   rw  r   r"   r   r  rH   rQ   r&   r  rc  r  rd  r   rF   r!   rK   r%   r    rG   )r"   r!   r    r   r   r   r*   r  rd  )r"   r#   r!   r$   r>  )r   r   r   r    rN   r@   r   rj  r}   )rY   r   r   rW   r   rS   	trim_meanrE  r  r  r  r  r   r   rZ   )
r]   r   idxr  r  idx4a4rA   r  r  s
             re   test_trim_meanzTestTrim.test_trim_mean  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   rd  r"   r!   rY   r  r,  rS   	sigmaclipr   minmaxr   rX   rq   r   r]   r   factry  rH  upps         re   test_sigmaclip1zTestSigmaClip.test_sigmaclip1  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   rd  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   r  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 	  )clippedr  r  )rY   r  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   rU  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	    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   )	rc  rF   rK   rK   rK   rJ   rJ   rJ   rI   r>   )
rY   r   r  r)  r  r   rS   alexandergovernr   r   )
r]   rm  
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   rl  r  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_rR  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@rC  r   g R8߱?r  g.UikL@g&Zݱ?Nr7	  )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?rO  r   gOZ}?g9$?g6MDd}?Nr7	  )r]   r	  r
  r;	  s       re   test_compare_scholar3z)TestAlexanderGovern.test_compare_scholar3  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]   rm  r   s      re   test_nan_policy_propogatez-TestAlexanderGovern.test_nan_policy_propogate  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]   rm  s     re   test_nan_policy_raisez)TestAlexanderGovern.test_nan_policy_raise  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   r  rf  r  )r   r  rf  r|   rz   rE	  )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   r3	  r5	  r<	  rA	  rC	  rF	  rI	  rO	  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   rU	  r   r   rY   r   rV	  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  rj  r  rT	  rV	  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   rU	  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 )Nr\	  r]	  r>   r^	  r_	  rG  )rY   r   r`	  rS   rU	  r   )r]   r   r   r   r   s        re   test_result_attributesz"TestFOneWay.test_result_attributes7  sb    Hc3Zry111Hc3Zry111nQ"",
C,,,,,rt   c                    g d}|D ]q}d}t           j                            t           j                            t           j                            t
                    d|                    }t          |          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             sd 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_anova
c                 ^    g | ]*}|                                 |                                +S r   )stripsplit)r  lines     re   r  z)TestFOneWay.test_nist.<locals>.<listcomp>K  s<     * * *$ JJLL* * * *rt   r  rz  r  )skiprowsr   rN   c                 (    g | ]}|k             S r   r   )r  r  r   r^   s     re   r  z)TestFOneWay.test_nist.<locals>.<listcomp>S  s!    ---1QqAvY---rt   )re	  rf	  rg	  r  zFailing testcase: %s)r  r  )ospathabspathjoindirname__file__openreadrk	  rY   loadtxtr  r(  r&  uniquer  rS   rU	  r   )r]   	filenames	test_caser  fnamero  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e /&&((..../ / / / / / / / / / / / / / /* *'"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   =(B11B5	8B5	za, b, expected)r  r  r  rW  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   rU	  )r]   r   r   r+  r   ro  r   s          re   r   zTestFOneWay.test_constant_input^  s     6%4C@@@ 	$ 	$>!Q''DAq##a8m####	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   )AAArA   )rX  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  rr  )
rY   r   r  r   rS   r   rU	  taker   r   )r]   rA   r   r   ry  	take_axisrQ  ro  r   r  fjpjs               re   test_2d_inputszTestFOneWay.test_2d_inputsi  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   rU	  r  r  r   )
r]   r   r   ry  ro  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   DegenerateDataWarningrU	  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 )Nr	  r   r    r!   r   r"   r  )	r   rS   r	  rY   rU  rU	  rm   rZ   r   )	r]   r   ncolsr   r   ry  ro  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 )Nr	  r   rH   rI   rJ   rK   r	  r	  s      re   test_all_length_onezTestFOneWay.test_all_length_one  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rm  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   rU	  rH	  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   rU  r   r  rS   rU	  r]   r   r   s      re   test_axis_errorzTestFOneWay.test_axis_error  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   rU  r   r   rS   rU	  r	  s      re   test_bad_shapeszTestFOneWay.test_bad_shapes  s    GFOOGFOO:&& 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A""A&)A&N)r   r   r   rW	  r   rZ	  ra	  rc	  r	  r2  rY  rZ  rY   r   rl  rZ   r   r	  r	  r	  r	  r	  r	  r	  r	  r   rt   re   rR	  rR	    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   rR	  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_simple  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_tie  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_tie  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  rO  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_groups  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  rO  )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	  rG  )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{   rj  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   rE  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	    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rB  r*  r  r,  rO  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	  stoufferrO  S:X?r!   r7   r	  r]   Zr   s      re   test_stoufferz TestCombinePvalues.test_stouffer1  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	  rO  r(   r!   r7   r	  r	  s      re   test_stouffer2z!TestCombinePvalues.test_stouffer25  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    r6  r  r	  r!   r7   )rS   r	  rY   rU  r
   r	  s      re   test_weighted_stoufferz)TestCombinePvalues.test_weighted_stouffer9  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  rO  gE
)??r!   r7   r	  r	  s      re   test_pearsonzTestCombinePvalues.test_pearsonC  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	  tippettrO  gBi?r!   r7   r	  r	  s      re   test_tippettzTestCombinePvalues.test_tippettG  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)r  r  r  mudholkar_georgerO  g&?r!   r7   r	  r	  s      re   test_mudholkar_georgez(TestCombinePvalues.test_mudholkar_georgeK  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	  rO  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_averageO  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  rE  r6  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	  r  r  r   r  rE  r   r>  r@   c                 H    g | ]}t          j        |           d         S )rO  r   )rS   r	  )r  r  r6  s     re   r  z8TestCombinePvalues.test_monotonicity.<locals>.<listcomp>j  s>     
 
 
 !'&999!<
 
 
rt   )
rY   rE  rF  rm   r,  r  r  r  r  diff)r]   r{  r6  r  r  rJ  pvaluesscombined_pvaluess     `     re   test_monotonicityz$TestCombinePvalues.test_monotonicityW  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	  rO  )rS   r	  r   r   r   )r]   r6  r   s      re   r  zTestCombinePvalues.test_resultp  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	  rK  r2  rY  rZ  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_distancer  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	  r  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	  r  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	  r  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   rl  r  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   rX  r	  r	  r	  r	  r	  r   rt   re   r	  r	  v  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	  r  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	  r  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   r0  )rI   rJ   rK   rF   rc  )r,   g@r  )r  r$   r  )r    r   r   )r   r    r   r*   r	  r  s    re   
test_shiftz"TestWassersteinDistance.test_shift  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	  r  s    re   test_combine_weightsz,TestWassersteinDistance.test_combine_weights  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  r  rN   r  )
rY   r   
zeros_liker   rS   r	  rX   r  r  r  )r]   r  r  	u_weights	v_weightss        re   test_collapsez%TestWassersteinDistance.test_collapse  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   rC  r   r	  r  s    re   r	  z(TestWassersteinDistance.test_zero_weight  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   rl  r   r[   r\   rZ   r]   rd   s     re   test_inf_valuesz'TestWassersteinDistance.test_inf_values  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   rX  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   r  s    re   r	  zTestEnergyDistance.test_simple  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
  r  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
  r  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
  r  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
  r  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   rl  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   rX  r	  r	  r
  r
  r	  r
  r   rt   re   r
  r
    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_sidedB  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_sidedY  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_defaultf  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 )NrY  rV  r  r_  r   r   r   rS   r#
  rU   r  r]   r  distributionr|   s       re   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_errors  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 )NrG  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  rY  r  )rV  rG  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  rv  r  rw  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  rv  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  rV  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   r8
  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   rV  r1
  N)r2  r  r\   rS   r#
  r,  s      re   test_brunnermunzel_return_nanz/TestBrunnerMunzel.test_brunnermunzel_return_nan  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   rG  r1
  Nr   )r2  r  r\   rS   r#
  r   )r]   r   r^   r  r   s        re   test_brunnermunzel_normal_distz0TestBrunnerMunzel.test_brunnermunzel_normal_dist  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/
  r2
  r4
  r6
  r9
  r;
  r=
  r?
  rA
  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  rU  r   r  Tc                 ,    t          j        |            S r  )rY   r  r  s    re   r  z6TestRatioUniforms.test_rv_generation.<locals>.<lambda>  s     rt   rN   r=  )umaxvminvmaxr   r@  expon)	rS   rU  pdfrY   r   rvs_ratio_uniformsr   r  r  )r]   ro  v_boundrF
  rG
  rH
  rA  s          re   test_rv_generationz$TestRatioUniforms.test_rv_generation  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   rU  rJ
  rY   r   rK
  r   r  r  )r]   ro  rL
  rF
  rG
  rH
  r  r  r  r4r5r6r7r8s                 re   
test_shapezTestRatioUniforms.test_shape  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   rU  rJ
  rY   r   rE  r  rK
  r   )r]   ro  rL
  rF
  rG
  rH
  r  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    )rJ
  rF
  rG
  rH
  rN   r   )rS   rU  rJ
  r   r   rK
  )r]   ro  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   rX  rM
  rU
  rW
  rY
  r   rt   re   rC
  rC
    sc         A A A   @  O O O O Ort   rC
  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 )Nrd  r"   rY   r   r   r   rS   multiscale_graphcorrr,  s      re   test_error_notndarrayz*TestMGCErrorWarnings.test_error_notndarray8  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<  rf  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_lowsamplesE  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 )Nrd  r>   r   )rY   r   r  rZ   r   r   rS   r^
  r,  s      re   test_error_nansz$TestMGCErrorWarnings.test_error_nansK  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 )Nrd  r   )compute_distancer]
  )r]   r   rg
  s      re   test_error_wrongdisttypez-TestMGCErrorWarnings.test_error_wrongdisttypeT  sD    IbMMj%"<a'7	9 	9 	9 	9 	9 	9rt   r  rN   1c                 t    t          j        d          }t          t          t          j        |||           d S )Nrd  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 )Nrd  r<  rk
  )rY   r   r   r\   rS   r^
  )r]   r   r  s      re   test_warns_repsz$TestMGCErrorWarnings.test_warns_repsd  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 )Nrd  )rY   r   rU  rl  r   r   rS   r^
  r,  s      re   test_error_inftyz%TestMGCErrorWarnings.test_error_inftyj  s@    IbMMGBKK"& j%"<aCCCCCrt   N)r   r   r   rX  r_
  ra
  rc
  re
  rh
  r2  rY  rZ  rl
  rn
  rp
  r   rt   re   r[
  r[
  5  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   r[
  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>  r  	nonlinearr   r"   ri  independencer(   )r   r   r    r   z3sim_type must be linear, nonlinear, or independencer@   )rY   rE  r  random_sampler   r   r	  pir-  rG  binomialr   r  )r]   sampsdimssim_typer   r^   unifr  r  u_2v_2
dims_noises               re   _simulationszTestMGCStat._simulationst  s   x	!!"auaj!99AC")11{1CCCCAA $$8BI--a%-DDEEDrvbedl+++Arut|,,,RY,,161+,>>>?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  rC  )ru
  w/?rC  )rv
  gUN@g(\?c                     t           j                            d           |                     dd|          \  }}t	          j        ||          \  }}}t          ||d           t          ||d           d S )Nr  r<  r   rz
  r{
  r|
  r7   rY   rE  r  r
  rS   r^
  r
   	r]   r|
  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?rC  )ru
  g~jt?gʡE?c                     t           j                            d           |                     dd|          \  }}t	          j        ||          \  }}}t          ||d           t          ||d           d S )Nr  r<  r"   r
  r   r7   r
  r
  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 )Nr  r<  r(   )r<  r"   r>  r   r   )r  r"   r   r7   rC  T)
is_twosamp)rY   rE  r  ry
  rG  rS   r^
  r
   r]   r   r^   r  r   r  s         re   test_twosampzTestMGCStat.test_twosamp  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 )Nr  r<  r   r  r
  r   )workersr  r7   rC  r
  r
  s         re   test_workerszTestMGCStat.test_workers  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  r
  r?  r  r7   rC  )r
  rS   r^
  r
   r
  s         re   rW
  zTestMGCStat.test_random_state  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 )Nr  r<  r   ru
  r
  	euclidean)metric)rg
  r@  r
  r7   rC  )rY   rE  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 )Nr  r<  r   r  r
  r?  r  )rY   rE  r  r
  rS   r^
  r   )r]   r   r^   r  r   s        re   test_pvalue_literaturez"TestMGCStat.test_pvalue_literature  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 )Nr  r<  r   r  r
  r?  )	rY   rE  r  r
  rS   r^
  r   r  r   rH  s       re   
test_aliaszTestMGCStat.test_alias  sg    
	x      sX FF1(AA>>>SXs}-----rt   N)r<  r   rs
  )r   r   r   rX  r
  r2  rY  r  rZ  r
  r
  r[  r
  r
  rW
  r
  r
  r
  r   rt   re   rr
  rr
  q  s               D [[= @ @ @  
	? 	?  	? [[=!$@  	? 	?	  
	? [: : :( [	: 	: 	: [: : : [? ? ? [( ( ( [. . . . .rt   rr
  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    rf  rH      i2  g:hў?FrU  i  gsH?i,0  gY@?)rE  rC  I   rp  rC  `   r  ;   r  r	  rA  1   r@  +   r  rC  r  r  rF  rd  rD   rd  r  rL  r  )D   r  r  "   r-  rd  A   X   rE   r@  rz  r	  r	  C   E   ry  r  rL  r  W   r  r
  r  r
  r
  )r@  rK   U   rp  O   rJ   \   V   rE   @   re  r
  r
  rQ   re  Y   r  r
  r
  r	  6   rK   B   rH  r  i
  gXY?rV  )r)   r  g @r"   r  rI   )r"   r!   r+   rH   rd  rE   )r  r  rH   rJ   rF   rc  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"   r0     ga?i  g;?)r$   r#   r"   r!   r    r   r   )r#   r"   r$   r!   r    r   r   r  u   g[^6?zL, p, ranked, method, datac                     t           j                            d           t          j        |||          }t          ||j                   t          ||j                   t          ||j	                   d S Nr  )rankedr6  
rY   rE  r  rS   page_trend_testr   r   r   r   r6  r]   Lr   r
  r6  r  r   s          re   test_accuracyzTestPageTrendTest.test_accuracyE  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   ru  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_accuracy2b  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 )	Nr  )rH   rd  r   r@   Tr
  F)predicted_ranks)rY   rE  r  r   r8  r  rS   rankdatar
  r   r   )r]   r  r  r
  permr  ranksr  r  r*  res4res5s               re   test_optionszTestPageTrendTest.test_optionsk  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 )Nr  )r  r
  o   )rB  r  k   )g      y   )r;  rd  r	  )r        )   r9  t   r   r$   FrU  )r
  r
  r6  i  gy&1l?r!   rB   rV  gHPsb?)rY   rE  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    r{  z`data` is not properly ranked)r   r   r    Tr
  z`data` contains NaNsFr
  z`method` must be inekki)r  r6  z`ranked` must be boolean.)r  r
  )	r   r   rS   r
  rY   rE  r  rZ   r  r?  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   rE  r  r  	data_3_25
data_10_26tsr2  rY  rZ  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 )Nr6  rV  r  z#() got multiple values for argumentr   )r6  r  )r   r   r2  r   r  reescape)r  rm  r   r  errs        re   test_rename_mode_methodr
    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 )Nr  rd  r>  r(   r  )rY   rE  rF  r   rS   	expectilerX   r]   rJ  r   s      re   test_same_as_meanzTestExpectile.test_same_as_mean  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 )Nr  rd  r>  r   r
  )rY   rE  rF  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 )Nr  rd  r>  r   r
  )rY   rE  rF  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   r  z'TestExpectile.test_weights.<locals>.fun  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)bracketrm  )rY   r	  r	  r   minimize_scalarr   )r   r  r  r
  r  s       re   
expectile2z.TestExpectile.test_weights.<locals>.expectile2  sL    fQii*G+C23UG1DF F FFGHrt   rH   r  )rY   rE  rF  rS   r
  r   )
r]   rJ  r
  r  r   r  r  r   rL  r  s
            @re   test_weightszTestExpectile.test_weights  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/#    ?rA  r  rd  rK  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
        r  r>  )r  r   r(   )r  r  r
  rH   rn  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_opA       1uuuuuurt   c                     | |k    sJ d S r  r   r
  s     re   r
  z:TestExpectile.test_expectile_properties.<locals>.assert_opE   r
  rt   r"   )r  r(   rA  r   N)rY   rE  rF  rG  r   rS   r
  rm   exponentiallogisticr`  )r]   r  r  rJ  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 )Nr  r   )r   r   r  r(   r<  r   r   rN   r
  )rY   rE  rF  paretologspacelog10r`  r  rS   r
  r  r	  )r]   r  rJ  r   e_list	alpha_seqr  s          re   test_monotonicity_in_alphaz(TestExpectile.test_monotonicity_in_alphai   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  rY  rZ  r  r	  r   rt   re   r
  r
    s        C C C
A A A
A A A
" " "4 [:::  [S2t*--_
 _
 .- _
B [S2t*--+ + .-+ + +rt   r
  r  )NNr(  N)rX  ro	  r
  r  collectionsr   	itertoolsr   numpy.testingr   r   r   r   r	   r
   r   r   r   r   r2  r   r   numpy.ma.testutilsr  	testutilsr  numpyr   r   r   r   r   rY   scipy.statsrS   scipy.stats.mstatsr  scipy.stats._mstats_basic_mstats_basicr  scipy.stats._ksstatsr   scipy.special._testutilsr   scipy.specialr   scipyr   common_testsr   scipy.spatial.distancer   	numpy.libr   scipy.stats._axis_nan_policyr   rz  r   r  rU   r'  r   r   r   r   r   r2   r   r]  r  r.  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rY  r!  r  r$  r-  r  r  r  r  rC  rj  PowerDivCaser  r  r  r  r  r  rZ  r  r)  r  r  r  r  r  r  r4  r  r  r  r"  r  r  r  rJ  r  r  r  r  r  r  r   r=  rO  rV  rX  rZ  r\  r_  ra  rl  rn  rq  ry  r{  r}  r  r  r  r  r  r  r	  r  r  r  r   r"  r_  r|  r  r  r  r  r  r  r	  r(	  rR	  r	  r	  r	  r	  r
  r
  rC
  r[
  rr
  r
  rE  rF  rJ  r   r^   wilcoxonr  rU  r  r6  r  r
  r
  r   rt   re   <module>r     s    
			 				  " " " " " "      . . . . . . . . . . . . . . . . . . . . . . . .
  * * * * * *                   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4 4 4 4 4 4 4 4D
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3 3 3$SE SE SE SE SE SE SE SElV2 V2 V2r& & &  &$ &$ &$R+ + + + + + + + # # # # # # # #D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\3 \3 \3 \3 \3 \3 \3 54\3|E E E E E E E E<\$ \$ \$ \$ \$ \$ \$ \$~<@ <@ <@ <@ <@ <@ <@ <@~1 1 1i( i( i( i( i( i( i( i(Xs s s s s s s sl`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.T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/ / / /zA zA zAz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@7 @7 @7 @7 @7 @7 @7 @7FB+ B+ B+ B+ B+ B+ B+ B+JL L L$j1 j1 j1Z     ,+ + + ,#28I..7#28I..79: :	0 	0: :	0
. 
. 
.. . .G G G+ + +H H H,G G GT& & &*`6 `6 `6 `6 `6 `6 `6 `6Fn8 n8 n8b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   