
    _MhO                       d Z ddlZddlZddlZddlmZ ddlmZ ddlm	c m
Z ddlZddlZddlmZmZmZmZmZmZmZmZmZ 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" 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/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC ddlDmEZE ddlFmGZGmHZH ddlImJZJmKZKmLZLmMZMmNZNmOZO ddlPmQZQmRZR ejS        jT        ZT	  eg deU          ZV eg deU          ZW eg deU          ZX eg deU          ZY eg deU          ZZ eg deU          Z[ eg deU          Z\eG eTdd           eTdd          ejS        ]                    d            G d! d"                                                          Z^ G d# d$          Z_eGejS        ]                    d            eTd%&           G d' d(                                              Z` G d) d*          Za G d+ d,          Zb G d- d.          Zcd/ Zdd0 Zed1 Zfd2 Zg G d3 d4          Zhd5 Zid6 Zjd7 Zkd8 Zl G d9 d:          Zm G d; d<          Znd= Zod> Zpd? Zq G d@ dA          Zr G dB dC          ZseG G dD dE                      ZteGejS        ]                    d            eTddF           G dG dH                                              Zu G dI dJ          ZvdK Zw G dL dM          Zx G dN dO          Zy G dP dQ          Zz G dR dSez          Z{ G dT dUez          Z|ej}        j~        dV             ZejS        T                    d%dWX          ejS        ]                    d           eG G dY dZ                                              Z G d[ d\          Z ed]g d^          Z eg d_dddd`dad` e#j        db          z  dc e#j        dd          z  z   z  dade e#j        df          z  de e#j        dg          z  z   z  dh^           eg d_g didddjdad` e#j        df          z  de e#j        db          z  z   de e#j        dk          z  z   z  dada e#j        db          z  dl e#j        df          z  z   da e#j        dm          z  z   z  dn^           eg d_deddd`dad` e#j        db          z  dc e#j        dd          z  z   z  dade e#j        df          z  de e#j        dg          z  z   z  dh^           eg dog dodddddd^          gZ eg ddddddd^           e e#j        g g g g          j        dddg dpg dpg dpg dp^           e e#j        g g g g          dddg g g g ^          gZeG G dq dr                      ZeG G ds dt                      ZeH G du dv                      Zdw Z G dx dy          Z G dz d{          Z G d| d}          Zd~ Zd Zd ZejS                            d e#j        d          df e#j        d          dfg          d             Zd ZejS                            dg d          d             ZejS                            de%j         e#j         d          dffe%j         e#j         d           e#j         d          ffg          d             ZddddZeGejS        T                    d%dWX          ejS        ]                    d           d                                     Zd Zd ZejS                            d           G d d                      ZejS                            d           G d d                      Z G d d          ZeGejS        T                    d%dWX          ejS        ]                    d            G d d                                              Zd ZeGejS        T                    d%dWX          ejS        ]                    d           d                                     ZeGejS        T                    d%dWX          ejS        ]                    d           d                                     Zd ZeGd             Z eTdd          ejS        ]                    d           eGejS                            d e#j        d          df e#j        d          dfg          d                                                 ZeGd             ZeGd             ZeGejS        T                    d%d          ejS        ]                    d           d                                     ZeGejS        T                    d%dWX          ejS        ]                    d           d                                     ZeGejS        T                    d%dWX          ejS        ]                    d           d                                     Zd ZejS        j        ejS        T                    d%dWX          ejS        ]                    d           eGd                                                 ZejS        T                    d%d          ejS        ]                    d           eGd                                     ZejS        T                    d%dWX          ejS        ]                    d           eGd                                     Z G d d          ZeG G d d                      Z G d de          Z G d de          Z G d de          Z G d d          ZeG G d d                      Z G d d          Zd Zd ZdddddÜdĄZdń ZdƄ ZdǄ ZeG G dȄ dɦ                      ZeG G dʄ d˦                      ZeG G d̄ dͦ                      Z G d΄ dϦ          ZdЄ Zdф Zd҄ Z G dӄ dԦ          Z G dՄ d֦          Z G dׄ dئ          Z G dل dڦ          Z G dۄ dܦ          Z eTd%ddgdݬަ          ejS        ]                    d           eG 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jS                            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          Z G d d          ZeG G d d                      ZeGejS        ]                    d            eTdd           G d d                                              ZeGd             ZejS        T                    dd          ejS        ]                    d           eGd                                     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suppress_warningsassert_array_less)raises)arrayarangefloat32power)kolmogn)FuncData)binom)optimize   )check_named_results)_broadcast_concatenateSmallSampleWarningtoo_small_nd_omittoo_small_nd_not_omittoo_small_1d_omittoo_small_1d_not_omit)_permutation_distribution_t_chk_asarray_momentLinregressResult_xp_mean_xp_var_SimpleChi2)	AxisError)array_api_compatibleskip_xp_invalid_arg)array_namespacexp_copyis_numpyis_torchxp_sizeSCIPY_ARRAY_API)xp_assert_closexp_assert_equal)	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ʣ=)	      ?      ?      @      @      @      @      @      @      !@	jax.numpy"JAX doesn't allow item assignment.reasonarray_api_strictz_`array_api_strict.where` `fillvalue` doesn't accept Python floats. See data-apis/array-api#807.skip_xp_backendsc                       e Zd Z ej        ej                  j        Zd Z e	dd          d             Z
d Zd Z e	dd	
          d             Zd Z e	dd	
          d             Zd ZdS )TestTrimmedStatsc           	         |                     t                                                    }t          j        |dd          }t          ||                     d                     t          j        |dd          }t          j        |d           }t          ||           |                    |                    d          d          }t          j        |d 	          }t          ||                    |                     t          j        |d
	          }t          ||                    |d
	                     t          j        |d	          }t          ||                    |d	                     t          j        |dd           }t          ||                     d                     t          j        |dd
          }g d}t          ||                     |                     t          j        |ddd
          }g d}t          ||                     |                     t          |          }|j
        |ddd f<   t          j        |dd
          }dddd|j
        |j
        |j
        g}t          ||                     |                     t          j        |dd          }dddd|j
        |j
        |j
        |j
        |j
        g	}t          ||                     |                     t          j        |ddd          }dddd|j
        |j
        |j
        |j
        |j
        g	}t          ||                     |                     d S ) Nr1   r7   TT      @)FFlimits	inclusiverP        O@r8   r6   axisr   r   )r1   =   )rP   rV   g     ?@)r1      )         '@r8   
            TF)rP   rQ   rV   )      %@rZ   r8   r[   r\   r]   r^   )r   r^   r6   r>   r?   r@   r3   r[      rX   FT)asarrayXtoliststatstmeanr/   reshaper   meanr*   nan)	selfxpxyy1y2x_2dy_truex_2d_with_nans	            \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/stats/tests/test_stats.py
test_tmeanzTestTrimmedStats.test_tmeanW   s   JJqxxzz""K6<002::c??+++[6^DDD[4(((Bzz"))C..&11K4(((2774==)))K1%%%2774a700111K1%%%2774a700111KW48882::d++,,,KW1555...2::f--...KWANNN0002::f--...!#b"##gKgA>>>S#sBFBFBF;2::f--...KW1555RRH2::f--...KW"/a9 9 9r2r2626262626J2::f--.....    cupycupy/cupy#8391rE   c                 v   |                     t                                                    }t          |          }t	          j        |dd          }t          ||                     d                     t	          j        |d           }t          ||                    |d                     |                    |	                    d          d	          }t	          j        |d 
          }t          ||                    |d                     t	          j        |d
          }t          ||
                    dd                     t	          j        |d
          }t          ||
                    dd                     t	          j        |ddd          }t          |d         |                     d                     t	          j        |ddd          }t          |d         |                     d                     t          |d         |                     |j                             d S )NrL   rM   rO   g@rR   r   
correctionrS   rT   rU   r   r6   g     v@)r8   g㪪@r   r4   )rP   rV   rQ   r<   r   r5   g@)re   rf   rg   r)   rh   tvarr/   varrj   r   fullr0   rl   )rm   rn   ro   xp_testrp   rs   s         rv   	test_tvarzTestTrimmedStats.test_tvar   s    JJqxxzz""!!$$Jq<@@@2::&899:::Jq&&&7;;qQ;77888zz"))C..&11Jt$'''7;;t;::;;;Jt!$$$2774//000Jt!$$$277444555 JtFlKKK!bjjoo... JtFlKKK!bjj):;;<<<!bjj0011111rx   c                 d   |                     t                                                    }t          |          }t	          j        |dd          }t          ||                     d                     t	          j        |d           }t          ||                    |d                     d S )NrL   rM   gBĆ/H@rR   r   r|   )re   rf   rg   r)   rh   tstdr/   std)rm   rn   ro   r   rp   s        rv   	test_tstdzTestTrimmedStats.test_tstd   s    JJqxxzz""!!$$Jq&,//2::&899:::Jq&&&7;;qQ;7788888rx   c           	         |                     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                     |                     d          }|j        |d<   t          t          j        |          |                    |j                             |                     d                              dd          }t          j        |dd          }t          ||                    t          j        dddg                     d S )Nr[   r   )
lowerlimitF)r   rQ   r   r4   r1   r1   rU   )r   r1   r3   r5   r7         $@r8      r3   )r   rV   r7   r]   )r   r0   rh   tminre   rj   rl   np)rm   rn   ro   ress       rv   	test_tminzTestTrimmedStats.test_tmin   s   IIbMM
1rzz!}}555
1333RZZ]]CCC
1eDDDbjjQRmmTTTJJq&!!
1eDDD

Aq6**	, 	, 	,
11---rzz////J/JKKK
14000"**Q--@@@IIcNNv!
1rzz"&'9'9::: IIbMM!!!Q''jqq111RZZAr(:;;<<<<<rx   Tz4Only NumPy arrays support scalar input/`nan_policy`.np_onlyrF   c                 t   t          t          j        d          d           t          j        d          }t          j        |d<   t                      5 }|                    t          d           t          t          j        |d          d           d}t          t          |	          5  t          j        |d
           d d d            n# 1 swxY w Y   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 )Nr3   r   r8   invalid value*omit
nan_policy        The input contains nan valuesmatchraisenan_policy must be one of...foobar)r   rh   r   r   r   rl   r   recordRuntimeWarningassert_raises
ValueErrorrm   rn   ro   supmsgs        rv   test_tmin_scalar_and_nanpolicyz/TestTrimmedStats.test_tmin_scalar_and_nanpolicy       	UZ]]A&&&IcNNv!   	3CJJ~'7888A&9992>>>1Cz555 2 2
111112 2 2 2 2 2 2 2 2 2 2 2 2 2 20Cz555 3 3
122223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3[   AD-,CD-C	D-C	D-2D	D-D	D-D	D--D14D1c           
         |                     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                     |                     d          }|j        |d<   t          t          j        |          |                    |j                             t                      5 }|                    t          d           |                    |                     d          d          }t          j        |dd	          }t          ||                    dddt          j        g                     d d d            d S # 1 swxY w Y   d S )Nr[   r8   )
upperlimitF)r   rQ   r7   r   r6   r   rU   r   r2   r4   r6   r8   r   zAll-NaN slice encounteredr   )r3   r3   r\   )r   rV   r2   )r   r0   rh   tmaxre   rj   rl   r   filterr   r   )rm   rn   ro   r   r   s        rv   	test_tmaxzTestTrimmedStats.test_tmax   s\   IIbMM
1rzz!}}555
1333RZZ]]CCC
1eDDDbjjQRmmTTTJJq&!!
1eDDD

Aq6**	, 	, 	,
11---rzz////J/JKKK
14000"**Q--@@@IIcNNv!
1rzz"&'9'9:::    	ACJJ~'BCCC

299R==&11A*Q2A666CCQ2rv,>!?!?@@@		A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   !BI;;I?I?c                 t   t          t          j        d          d           t          j        d          }t          j        |d<   t                      5 }|                    t          d           t          t          j        |d          d           d}t          t          |	          5  t          j        |d
           d d d            n# 1 swxY w Y   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 )Nr3   r   r5   r   r   r         "@r   r   r   r   r   )r   rh   r   r   r   rl   r   r   r   r   r   r   s        rv   test_tax_scalar_and_nanpolicyz.TestTrimmedStats.test_tax_scalar_and_nanpolicy   r   r   c                    |                     t                                                    }t          |          }t	          j        |dd          }|                     g d          }t          ||                    |d          t          |          dz  z             t          t	          j        |dd	g
          t	          j        |d 
                     d S )N)r2   r7   rd   rO   )      @rN         @      @       @r   r|   r:   ra   r[   rR   )	re   rf   rg   r)   rh   tsemr/   r   r-   )rm   rn   ro   r   rp   y_refs         rv   	test_tsemzTestTrimmedStats.test_tsem   s    JJqxxzz""!!$$Jq=AAA

///007;;u;;;gennc>QQRRR
1b"X666
1T8R8R8RSSSSSrx   N)__name__
__module____qualname__r   finfofloat64	precisiondprecrw   rH   r   r   r   r   r   r   r    rx   rv   rJ   rJ   L   s)        BHRZ  *E,/ ,/ ,/\ f-/ / /2 2/ /2:9 9 9= = =, dSU U U3 3U U3A A A0 dSU U U3 3U U3T T T T Trx   rJ   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S )TestPearsonrWilkinsonE   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         ?)rh   pearsonrrf   r
   rm   rp   rs      rv   test_pXXzTestPearsonrWilkinson.test_pXX  s2    N1QaDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   rf   BIGr
   r   s      rv   
test_pXBIGz TestPearsonrWilkinson.test_pXBIG  s2    N1S!!aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   rf   LITTLEr
   r   s      rv   test_pXLITTLEz#TestPearsonrWilkinson.test_pXLITTLE  s2    N1V$$aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   rf   HUGEr
   r   s      rv   test_pXHUGEz!TestPearsonrWilkinson.test_pXHUGE   2    N1T""aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   rf   TINYr
   r   s      rv   test_pXTINYz!TestPearsonrWilkinson.test_pXTINY%  r   rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   rf   ROUNDr
   r   s      rv   test_pXROUNDz"TestPearsonrWilkinson.test_pXROUND*  s2    N1U##aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r   r   r
   r   s      rv   test_pBIGBIGz"TestPearsonrWilkinson.test_pBIGBIG/  s2    N3s##aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pBIGLITTLEz%TestPearsonrWilkinson.test_pBIGLITTLE4  s2    N3v&&aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pBIGHUGEz#TestPearsonrWilkinson.test_pBIGHUGE9  2    N3t$$aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pBIGTINYz#TestPearsonrWilkinson.test_pBIGTINY>  r   rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pBIGROUNDz$TestPearsonrWilkinson.test_pBIGROUNDC  s2    N3u%%aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r   r   r
   r   s      rv   test_pLITTLELITTLEz(TestPearsonrWilkinson.test_pLITTLELITTLEH  s2    N6&))aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pLITTLEHUGEz&TestPearsonrWilkinson.test_pLITTLEHUGEM  2    N6$''aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pLITTLETINYz&TestPearsonrWilkinson.test_pLITTLETINYR  r   rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pLITTLEROUNDz'TestPearsonrWilkinson.test_pLITTLEROUNDW  s2    N6%((aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r   r   r
   r   s      rv   test_pHUGEHUGEz$TestPearsonrWilkinson.test_pHUGEHUGE\  2    N4%%aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pHUGETINYz$TestPearsonrWilkinson.test_pHUGETINYa  r   rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pHUGEROUNDz%TestPearsonrWilkinson.test_pHUGEROUNDf  2    N4&&aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r   r   r
   r   s      rv   test_pTINYTINYz$TestPearsonrWilkinson.test_pTINYTINYk  r   rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r   r   r   r
   r   s      rv   test_pTINYROUNDz%TestPearsonrWilkinson.test_pTINYROUNDp  r   rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r   r   r
   r   s      rv   test_pROUNDROUNDz&TestPearsonrWilkinson.test_pROUNDROUNDu  s2    N5''aDAc"""""rx   N)r   r   r   __doc__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rx   rv   r   r     sY        # # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # # # #rx   r   T)cpu_onlyc                   &   e Zd Z ed          d             Z edd          d             Z edd          d             Z edd          d	             Z edd          d
             Z edd          e	j
                            dddg          d                         Z edd          d             Z edd          d             Z edd          d             Z edd          d             Z edd          d             Z edd          d             Ze	j
                            d          e	j
                            dg d          d                         Z edd          d             Z edd          d             Ze	j
                            d          d             Ze	j
                            d          e	j
                            d          e	j
                            d          e	j
                            dd          e	j
                            d d!          d"                                                             Ze	j
                            d          e	j
                            dd          d#                         Ze	j
                            d          e	j
                            d$d%d&g          d'                         Ze	j
                            d          d(             Zd) Z edd          d*             Z edd          e	j
                            d$g d+          e	j
                            dg d          d,                                     Zd-S ).TestPearsonrTr   c                     t          j        t          t                    }d}t          ||           t	          |j        |j                   d S Ncorrelationpvalue)rh   r   rf   r   r   r  	statisticrm   r   
attributess      rv   test_pearsonr_result_attributesz,TestPearsonr.test_pearsonr_result_attributes  sB    nQ"".
C,,,S_cm44444rx   rC   )JAX arrays do not support item assignmentrE   c           
      B   |                     d          }t          j        ||          \  }}t          ||                    d          d           t          ||                    d          t          j        dt          j        d          z                       d S )N      @r   V瞯<atolr   r1   r   rh   r   r/   re   r   sqrtspacingrm   rn   ar   probs        rv   test_r_almost_exactly_pos1z'TestPearsonr.test_r_almost_exactly_pos1  s     IIcNN.A&&42::c??7777 	bjjooBGAbjoo<M4N4NOOOOOOrx   c           
      D   |                     d          }t          j        ||           \  }}t          ||                    d          d           t          ||                    d          t          j        dt          j        d          z                       d S )Nr        r  r  r   r1   r   r  r  s        rv   test_r_almost_exactly_neg1z'TestPearsonr.test_r_almost_exactly_neg1  s     IIcNN.QB''42::d++%8888 	bjjooBGAbjoo<M4N4NOOOOOOrx   c                    |                     g d          }|                     g d          }t          j        ||          \  }}t          ||                     d                     t          ||                     d                     d S )Nra   r   r   )r   r   r2   LXz?UUUUUU?)re   rh   r   r/   )rm   rn   r  br   r  s         rv   
test_basiczTestPearsonr.test_basic  s    
 JJzzz""JJyyy!!.A&&42::h//000bjjoo.....rx   c                    d}t          j        t          j        |          5  |                    g d          }|                    g d          }t          j        ||          \  }}t          ||                    |j                             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'  rh|?v/?gsh|??pytestwarnsrh   ConstantInputWarningre   r   r/   rl   rm   rn   r   ro   rp   r   ps          rv   test_constant_inputz TestPearsonr.test_constant_input  s    +\%4C@@@ 	3 	3

00011A

00011A>!Q''DAqArzz"&11222Arzz"&11222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3   BCCCdtyper   r   c           
         t          t          |          }t          ||          }|                    dddt          j        d|          z   g|          }|                    ddddt          j        d|          z  z   g|          }d}t	          j        t          j        |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr1   r3  r2   r5   z/An input array is nearly constant; the computedr   )	getattrr   re   r  r,  r-  rh   NearConstantInputWarningr   )rm   rn   r3  npdtypero   rp   r   s          rv   test_near_constant_inputz%TestPearsonr.test_near_constant_input  s   
 "e$$E""JJ1a"*Qg">">">>?uJMMJJ1a!BJq$@$@$@"@@AJOO?\%8DDD 	! 	! N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   -CCCc                 V   |                     g d|j                  }|                     g d|j                  }t          j        ||          \  }}t	          ||                     d|j                             t	          ||                     d|j                             d S )N)gy)r?gxd{s?gnp?g$9"o?ge =:k?r5  )goȟg`
,gzg2l?g>??'ge;E?g3R?re   r   rh   r   r/   rm   rn   ro   rp   r   r0  s         rv   test_very_small_input_valuesz)TestPearsonr.test_very_small_input_values  s     JJVVVZ  ) )JJNNNZ  ) )~a##1 	2::&8
:KKLLL2::&8
:KKLLLLLrx   c                 ^   d|                     g d|j                  z  }d|                    d|j                  z  }t          j        ||          \  }}t          ||                     d|j                             t          ||                     d|j                             d S )NgY)	kR)r   r   r   r   r   r   r   r5  r6   r   g͗~-?)re   r   r   rh   r   r/   r<  s         rv   test_very_large_input_valuesz)TestPearsonr.test_very_large_input_values  s     111DDD1BJ///~a##1 	2::&8
:KKLLL2::&:"*:MMNNNNNrx   c                 V   |                     g d|j                  }|                     g d|j                  }t          j        ||          \  }}t	          ||                     d|j                             t	          ||                     d|j                             d S )N)g7	igNig_b4igZbir5  )gDig<'(½igmQiZbtig*D{?gݣ?r;  r<  s         rv   !test_extremely_large_input_valuesz.TestPearsonr.test_extremely_large_input_values  s     JJ999JLLJJ;;;2:JNN~a##1 	2::&7rz:JJKKK2::&7rz:JJKKKKKrx   rD   c                 p   |                     ddg          }|                     ddg          }t          j        ||          }|\  }}|                     d          }t          ||           t          ||           |                                \  }}	t          ||            t          |	|           d S )Nr          @r  rN   re   rh   r   r0   confidence_interval
rm   rn   ro   rp   r   r   r0  onelowhighs
             rv   test_length_two_pos1z!TestPearsonr.test_length_two_pos1  s     JJBx  JJBx  nQ""1jjnn33++--	TcT"""c"""""rx   c                 r   |                     ddg          }|                     ddg          }t          j        ||          }|\  }}|                     d          }t          ||            t          ||           |                                \  }}	t          ||            t          |	|           d S )NrD  r   r  rN   rE  rG  s
             rv   test_length_two_neg1z!TestPearsonr.test_length_two_neg1  s     JJBx  JJBx  nQ""1jjnnC4   3++--	TcT"""c"""""rx   c                    d}t          j        t          j        |          5  |                    ddg          }|                    ddg          }t          j        ||          \  }}t          ||                    |j                             t          ||                    |j                             d d d            d S # 1 swxY w Y   d S )Nr%  r   r'  r)  r*  r+  r/  s          rv   test_length_two_constant_inputz+TestPearsonr.test_length_two_constant_input  s    
 +\%4C@@@ 	3 	3

E5>**A

E5>**A>!Q''DAqArzz"&11222Arzz"&11222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3r2  z$alternative, pval, rlow, rhigh, sign))	two-sided?gmgƎ?r   )lessK˅?ra   g?
?r   )greater.?gդζr   r   )rP  rQ  gfǎgl?ra   )rR  rU  r  gդζ?ra   )rT  rS  g?
r   ra   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   r1   r2   r3   )r   r   r:   r   alternativeg?r9   rtolư>)r   r   rh   r   r   r
  r	  rF  )
rm   rY  pvalrlowrhighsignro   rp   resultcis
             rv   test_basic_examplezTestPearsonr.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5rx   c                 6   |                     d          }| }t          j        ||d          }t          j        ||d          }t          |j        |                    d                     t          |j        |                    d          d           d S )	Nr   rT  rX  rR  r   r   g#B;r  )r   rh   r   r/   r	  re   )rm   rn   ro   rp   test_greater	test_lesss         rv   (test_negative_correlation_pvalue_gh17795z5TestPearsonr.test_negative_correlation_pvalue_gh17795:  s     IIcNNB~a	BBBN1aV<<<	+RZZ^^<<<	("**R..uEEEEEErx   c                 |   |                     g d          }|                     g d          }t          j        ||          }|\  }}|                     d          }t          ||            t          |d|z  d           |                                \  }}	t          ||            t          |	|           d S )Nr   rD  r  )rN   g      g      *r   r   Hz>r  )re   rh   r   r/   rF  r0   rG  s
             rv   #test_length3_r_exactly_negative_onez0TestPearsonr.test_length3_r_exactly_negative_oneD  s     JJ|||$$JJ''nQ"" 1jjooC4   1S5t,,,,++--	TcT"""c"""""rx   c                 T   g d}ddg}d}t          j        t          |          5  t          j        ||           d d d            n# 1 swxY w Y   dg}dg}d}t          j        t          |          5  t          j        ||           d d d            n# 1 swxY w Y   g d	}g d	}d
}t          j        t          |          5  t          j        ||           d d d            n# 1 swxY w Y   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 )Nr   r1   r2   r3   r4   z3`x` and `y` must have the same length along `axis`.r   r   r1   (`x` and `y` must have length at least 2.)             y              y             z+This function does not support complex dataz"`method` must be an instance of...r2   
asymptoticmethodexact)r,  r   r   rh   r   rF  )rm   ro   rp   messager   s        rv   test_input_validationz"TestPearsonr.test_input_validationT  s   IIFG]:W555 	! 	!N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! CC<]:W555 	! 	!N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ?]:W555 	! 	!N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 7]: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 	4sY   AAA6BBBC**C.1C.D::D>D>9FF!$F!r[   z-Monte Carlo method needs > a few kB of memoryrY  rR  rT  rP  method_namepermutationmonte_carlomonte_carlo2c                    t           j                            d          }|dk    rdnd}|                    |          }|                    |          }t	          j        |          t	          j        |j        fdz            t	          j        d	          d
}||         }t	          j        ||||d          }	t	          j        |||d          }
t          |	j	        |
j	        d           t          |	j
        |
j
        dd           |dk    rdt	          j        d	          }t	          j        ||||d          }t          |j	        |	j	                   t          |j
        |	j
                   d S d S )Nl   o#[mry  r1   d   )r1     sizerngr1   rvsi  rx  ra   )rY  rr  rV   rY  rV   r  rZ  {Gz?MbP?r[  r  r{  )r   randomdefault_rngnormalrh   PermutationMethodMonteCarloMethodr   r   r
  r	  r   )rm   rw  rY  r  r  ro   rp   methodsrr  r   refres2s               rv   test_resampling_pvaluez#TestPearsonr.test_resampling_pvaluep  s~    i##$566&-77xxYJJDJ!!JJDJ!!"'"9c"B"B"B"'"8cj]1_"M"M"M#(#9d#C#C#CE E %nQ{6PRSSSnQ{DDDs}5AAAA
CJTEEEE.((+555F>!QKUWXXXD777cj11111	 )(rx   c                 `   t           j                            d          }|                    d          }|                    d          }t	          j        |||d          }t           j                            d          }t	          j        |          }|                    |          }|                                }t          ||d	
           t           j                            d          }t	          j        |          }|                    |          }	t          |	|           d S )Nl   _Y F r}  r  ra   r  l   |#(AkPrandom_staterq  gQ?r  r  )	r   r  r  r  rh   r   BootstrapMethodrF  r   )
rm   rY  r  ro   rp   r   rr  res_ciref_cires_ci2s
             rv   test_bootstrap_cizTestPearsonr.test_bootstrap_ci  s    i##$455JJHJ%%JJHJ%%nQ{DDD i##$677&C888(((77((**V4444 i##$677&3///)))88(((((rx   rV   r   r   c                    t           j                            d          }d}|                    d|z             \  }}t	          j        |||          }|                                }|dk    r|j        |j        }}t          |j	        d                   D ]}	t	          j        ||	         ||	                   }
|
                                }t          |j        |	         |
j                   t          |j        |	         |
j                   t          |j        |	         |j                   t          |j        |	         |j                   d S )N   I.v# r8   r[   r1   r  rU   r   )r   r  r  r  rh   r   rF  Trangeshaper   r
  r	  rI  rJ  )rm   rV   rn   r  r  ro   rp   r   rb  ires_ici_is               rv   test_axis01zTestPearsonr.test_axis01  s+    i##K00zzte|z,,1nQ---$$&&1993qAqwqz"" 	3 	3AN1Q41..E,,..DCM!,eo>>>CJqM5<888BF1Itx000BGAJ	2222	3 	3rx   c                    t           j                            d          }d}|                    d|z             \  }}t	          j        ||d           }|                                }t	          j        |                                |                                          }|                                }	t          |j	        |j	                   t          |j
        |j
                   t          ||	           d S )Nr  r  r  r  rU   )r   r  r  r  rh   r   rF  ravelr   r
  r	  )
rm   rn   r  r  ro   rp   r   rb  r  ci_refs
             rv   test_axis_NonezTestPearsonr.test_axis_None  s    i##K00zzte|z,,1nQ---$$&&nQWWYY		22((**s}555
CJ///F#####rx   c                 4   |                     d          x}}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            n# 1 swxY w Y   d	}t          j        t          |          5  t	          j        |                     d          |                     d          d           d d d            n# 1 swxY w Y   d
}t          j        t          |          5  t	          j        ||                     d          d           d d d            n# 1 swxY w Y   d}t          |          ss|                    d          }t          j        t          |          5  t	          j        ||t	          j                               d d d            d S # 1 swxY w Y   d S d S )N)r1   r4   z`axis` must be an integer.r   r;   rU   z2`x` and `y` must have the same length along `axis`r1   r   r   rn  z"`x` and `y` must be broadcastable.r2   r4   z:`method` must be `None` if arguments are not NumPy arrays.r[   rq  )	onesr,  r   r   rh   r   r+   r   r  )rm   rn   ro   rp   rt  s        rv   test_nd_input_validationz%TestPearsonr.test_nd_input_validation  sM   A.]:W555 	+ 	+N1ac****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ G]:W555 	7 	7N1bggfooA6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 =]:W555 	E 	EN2776??BGGFOO!DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 7]:W555 	7 	7N1bggfooA6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 O|| 	G		"Az999 G Gq!E,C,E,EFFFFG G G G G G G G G G G G G G G G G G	G 	GsY   AA A+B88B<?B< >D**D.1D.+F		FF)HHHc                 .   t           j                            d          }|                    |                    d                    }|                    |                    d                    }d}t	          j        t          j        |          5  t          |          }d|d<   t          j	        ||d          }|
                                }|                    |j        |j                  }	t          |j        d	         |	           t          |j        d	         |	           t          |j        d	         |	           t          |j        d	         |	           |                    |                    |j        dd                              rJ |                    |                    |j        dd                              rJ |                    |                    |j        dd                              rJ |                    |                    |j        dd                              rJ 	 d d d            n# 1 swxY w Y   d
}t	          j        t          j        |          5  d|d<   t          j	        ||d           d d d            n# 1 swxY w Y   |                    ddgddgddgddgg          }|                    ddgddgddgddgg          }
|                    d          }t          j	        ||
d          }|
                                }t-          |j        |                    g d                     t-          |j        |           t-          |j        |            t-          |j        |           d S )Nl   U!Jr  r%  r   r   )r   .rU   r5  r   z!An input array is nearly constantg     ?r   r   r1   r   r3   ra   )r   ra   ra   r   )r   r  r  re   r,  r-  rh   r.  r*   r   rF  rl   r   r0   r
  r	  rI  rJ  anyisnanr7  r  r/   )rm   rn   r  x0y0rt  ro   r   rb  rl   rp   r  s               rv   test_nd_special_casesz"TestPearsonr.test_nd_special_cases  s    i##N33ZZ

6**++ZZ

6**++.\%4GDDD 	5 	5AAfI.BQ///C((**B**RV2:*66CCM!,c222CJqM3///BF1Is+++BGAJ,,,vvbhhs}QRR'899:::::vvbhhsz!""~6677777vvbhhrvabbz2233333vvbhhrwqrr{33444444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 6\%8HHH 	* 	*AdGN1bq))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*
 JJAAAB899JJAAAB899wwqzznQ+++$$&&rzz///'B'BCCC
D)))&&&&&&&&s%   F)III5JJ"%J")r   r   Nc                    t                               d          \  }}t          j        |                    |          |                    |          ||          }t          j        ||||          }t          |j        |                    |j                             t          |j        |                    |j                             |                                }|                                }	t          |j	        |                    |	j	                             t          |j
        |                    |	j
                             d S )N)r1   r[   r\   r  rV   rY  )r  r  rh   r   re   r/   r
  r	  rF  rI  rJ  )
rm   rn   rV   rY  ro   rp   r   r  r  r  s
             rv   test_array_apizTestPearsonr.test_array_api  s   
 zz{z++1nRZZ]]BJJqMM"&KA A AnQ+FFFrzz#-'@'@AAA
BJJsz$:$:;;;((**((**
BJJvz$:$:;;;RZZ%<%<=====rx   N) r   r   r   rH   r  r  r  r#  r1  r,  markparametrizer9  r=  r?  rB  rK  rM  rO  rc  rg  rk  ru  	fail_slowxfail_on_32bitr  r  r  r  r  r  r  r   rx   rv   r  r  {  s        d###5 5 $#5 kHJ J JP PJ JP kHJ J JP PJ JP kHJ J J/ /J J/ kH  	3 	3 	3 kH   [Wy)&<==
! 
! >= 
! kH  M M M kH  O O O kHJ J JL LJ JL k*NOOO# # PO# k*NOOO# # PO# k*NOOO
3 
3 PO
3& [!!$!//[CH H HI I6 6I I 0/6 kHJ J JF FJ JF kHJ J J# #J J# [!!$!//4 4 0/46 [2[!!$!//[ OPP[],LMM[]KM M2 2M M NM QP 0/ 2( [!!$!//[],LMM) ) NM 0/)& [!!$!//[VaV,,3 3 -, 0/3  [!!$!//
$ 
$ 0/
$G G G0 kHJ J J#' #'J J#'J kHJ J J[V\\\22[],L,L,LMM> > NM 32J J> > >rx   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 Zej	                            d          ej	        
                                d                         Zej	                            d          ej	        
                                d                         Zej	                                        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?r3   significantr~  r1   r  r4   g,Ԛ?r6   r7   g2c?r5   r[   gY
A?      g_?r      gO^M?r   gօa?r2   r   ggE?g$I$I?)rh   fisher_exactr
   )rm   r  r   s      rv   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-----rx   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~  r1   r  r4   )gAn&	?g}K
T?r6   r7   )g	7?g?r   r[   )g!@j)A?r  r  )gU!a?gKY?r   r  )g7X?g~ltP?)gFu|?r  r   )r   gQN^?r3   gaa?r   r   gaa?r2   r\   T)decimalverbose)r   infrh   r  re   testingr   )rm   tablisttableres_rr   s        rv   test_precisezTestFisherExact.test_precise8  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 	9rx   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 )Nr5   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rh   r  r   rm   ro   r   s      rv   test_gh4130zTestFisherExact.test_gh4130P  s     WsCj! ##A 1222 !Wq#h ##A 5666 "Xe}% ##A 566666rx   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      rv   test_gh9231zTestFisherExact.test_gh9231f  sG     w'7!34 ##A//////rx   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   r3   r  iPF  i8 r  i_ g^K=?)ziprh   r  r
   )rm   pvalsr]  numr   s        rv   test_large_numbersz"TestFisherExact.test_large_numbersm  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7rx   c                     d}t          j        t          |          5  t          j        t          j        d                     d d d            d S # 1 swxY w Y   d S )Nz+The input `table` must have two dimensions.r   r5   )r,  r   r   rh   r  r   r   rm   rt  s     rv   test_raiseszTestFisherExact.test_raisesx  s    ?]:W555 	- 	-ry||,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   'AAA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   r4   r[   r   )rh   r  r   r   rl   )rm   tablesr  	oddsratior]  s        rv   test_row_or_col_zeroz$TestFisherExact.test_row_or_col_zero~  s    q6Ar7#r7QF#q6Ar7#q6B7#%  	, 	,E#077OIts###BF++++	, 	,rx   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 )#Nr1   r6   r7   r  i,     rX   r5   i     i   i  r   r2   r   r3   gI[?gq}!?r   g2\&gQp6g:O_?g a?皙?ffffff??333333?UUUUUU?r!  rR  rX  rT  rj  )r  r[  )r  appendrh   r  r   )rm   r  r  r  r]  r   s         rv   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		: 	:rx   c                 @    t          j        ddgddgg          \  }}d S )Nr   r1   r8   i")rh   r  )rm   oddsr	  s      rv   test_gh3014zTestFisherExact.test_gh3014  s)     )Aq6Ax=*ABBfffrx   rY  rP  rR  rT  c                     t          j        ddgddgg          }t          j        ||          }t	          |j        |j        f|           d S )Nr  r  r  r  rX  )r   r   rh   r  r   r
  r	  )rm   rY  r  r   s       rv   test_resultzTestFisherExact.test_result  sR    5%.5%.9:: K@@@cmSZ0#66666rx   c                    t           j                            d          }t          j        ddgddgg          }d}t	          j        t          |          5  t          j        |          }t          j	        ||d	           d d d            n# 1 swxY w Y   d
}t	          j        t          |          5  t          j
        |          }t          j	        ||           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t          j        t          j        j                  }t          j	        ||           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t          j	        t          j        d                     d d d            n# 1 swxY w Y   t           j                            t          j	        g dg          d           t           j                            t          j	        dgdgdgg          d           t           j                            t          j	        t          j        d                    d           d S )N   9o8o r1   r6   r7   z4`alternative` must be the default \(None\) unless...r   r  rR  rr  rY  z6...not recognized; if provided, `method` must be an...rq  z3If the `method` argument of `fisher_exact` is an...r  z2`table` must have at least one row and one column.r   r   rm  r   r   r   r2   r1   r2   )r   r  r  re   r,  r   r   rh   r  r  r  r  normr  zerosr  r   )rm   r  r  rt  rr  s        rv   $test_input_validation_edge_cases_rxcz4TestFisherExact.test_input_validation_edge_cases_rxc  s3   i##$788
QFQF+,,I]:W555 	I 	I,555FuVHHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I K]:W555 	5 	5*s333FuV4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 H]:W555 	5 	5+
???FuV4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 G]:W555 	1 	1rx//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1
 	
 2III; ? ?HHH

 2QC!qc? C CVLLL

 228F3C3C D DfMMMMMsH   -BBB8,C00C47C4;EE#&E#'F::F>F>r[   c                    t           j                            d          }t          j        ddgddgg          }t	          j        |          }|j        }t	          j        |                    d          |                    d                    	                    |          }t	          j
        |          }t	          j        ||	          }t          |j        |d
           t          |j        |           t	          j        |          }t	          j        ||	          }t          |j        |j        d
           t          |j        |           d S )Nr  r1   r6   r7   r   rU   r   r  rq  g{Gzd?r  )r   r  r  re   rh   r  r	  random_tablesumpmfr  r   r   r
  r  )rm   r  r  r  
ref_pvalueref_statrr  r   s           rv   test_resampling_2x2z#TestFisherExact.test_resampling_2x2  s4    i##$788
QFQF+,, ''Z
%eiiQi&7&79J9JKKOOPUVV'C000 v666
JV<<<<S]H---(S111 v666
CJV<<<<S]H-----rx   c                    g dg dg dg dg dg}t          j        |          }d}t           j                            d          }t	          j        |          }t	          j        ||	          }t          |j        |d
           t	          j	        |d          }t	          j        ||	          }t          |j        |d
           d S )N)r   r1   r1   r   r   r   r   )r1   r   r   r1   r2   r   r   )r   r   r   r   r1   r6   r2   )r   r   r1   r   r   r   r   )r   r   r   r   r   r   r   gk$?l   |Kr  rq  gMb@?r  i )r  n_resamples)
r   re   r  r  rh   r  r  r   r	  r  )rm   r  r  r  rr  r   s         rv   test_resampling_rxcz#TestFisherExact.test_resampling_rxc  s     '&&&&&&&&&&&&&&	(
 
5!!%
i##M22(S111 v666
JT::::'CUCCC v666
JT::::::rx   c           	         t           j                            d          }t          j        |          }t          dd          D ]}t          dd          D ]}t          dd          D ]u}t          dd          D ]b}t          j        ||g||gg          }t          j        |          }t          j        ||          }	t          |	j	        |j	        d           cvd S )	Nr  r  r   r2   r3   rq  +=r  )
r   r  r  rh   r  r  re   r  r   r	  )
rm   r  rr  r  r"  cdr  r  r   s
             rv   test_resampling_exact_2x2z)TestFisherExact.test_resampling_exact_2x2  s    i##$788(S111q! 	L 	LA1a[[ L Lq! L LA"1a[[ L L "
QFQF+; < <#077#0vFFF'
CJUKKKKK	LLL	L 	Lrx   N)r   r   r   r   r#  r  r  r  r,  r  slowr  r  r  r  r  r  r   r	  r  r  r  xslowr  r   rx   rv   r  r    s        . . .69 9 907 7 7,0 0 0 [8 8 8- - -, , , :  :  :DC C C
 [],L,L,LMM7 7 NM7
N N N> [2[. .  ." [2[; ;  ;: [L L L L Lrx   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 )Nr   rD  )rh   	spearmanrr   r   r  all)rm   rp   s     rv   test_scalarzTestCorrSpearmanr.test_scalar  s9    OB##!!"""""rx   c                     t          t          t          j        g dddg           t          t          t          j        g dd           d S )Nr   r1   r   r7   r8   )r   r   rh   r  rm   s    rv   test_uneven_lengthsz%TestCorrSpearmanr.test_uneven_lengths#  s@    j%/999q!fEEEj%/999a@@@@@rx   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鄋 r3   r2   r1   r4   r4   r   rU   )r   r  seedrandnrh   r  r
  r  r  r	  r   r   rm   ro   rp   s      rv   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<<<<<rx   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&  r3   r2   r1   rU   r   )
r   r  r(  r)  r   r   rh   r  r   flattenrm   ro   s     rv   test_ndim_too_highz$TestCorrSpearmanr.test_ndim_too_high2  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rx   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 )Nr   r8   r   r   )r   r   r   r   )r   r   rl   r	   rh   r  r   r   r.  s     rv   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Mrx   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 )Nr4   r[   r5   r   rU   r   r   r   r  r  )	r   r  r(  randrl   deleterh   r  r   )rm   ro   krp   corxpxcorypys           rv   test_nan_policy_bug_12458z+TestCorrSpearmanr.test_nan_policy_bug_12458E  s   
	qINN1b!!&!!!Q$Ia###?1888b?1%%by4333QQ???YryQQ///;;;d////BU++++++rx   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 )	Nr4   r[   r   r   )r2   ra   r   	propagaterV   r   c                 J    g | ]fd t                    D             S )c           	      l    g | ]0}t          j        |d d f         d d f                   j        1S N)rh   r  r
  ).0r  jro   s     rv   
<listcomp>zJTestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>.<listcomp>Z  s@    NNN!QQQ$1aaa411;NNNrx   r  )rB  rC  mro   s    @rv   rD  z?TestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>Z  sH     " " " ONNNNU1XXNNN " " "rx   )	r   r  r(  r)  rl   rh   r  r  r   )rm   ncorrr	  r   rF  ro   s        @@rv   test_nan_policy_bug_12411z+TestCorrSpearmanr.test_nan_policy_bug_12411R  s    
	qIOOAq!!&$6%qq[IIIf" " " " "a" " "c"""""rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r  rf   r
   r   s      rv   test_sXXzTestCorrSpearmanr.test_sXX^  s2    OAa  aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  rf   r   r
   r   s      rv   
test_sXBIGzTestCorrSpearmanr.test_sXBIGc  s2    OAc""aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  rf   r   r
   r   s      rv   test_sXLITTLEzTestCorrSpearmanr.test_sXLITTLEh  s2    OAf%%aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  rf   r   r
   r   s      rv   test_sXHUGEzTestCorrSpearmanr.test_sXHUGEm  2    OAd##aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  rf   r   r
   r   s      rv   test_sXTINYzTestCorrSpearmanr.test_sXTINYr  rR  rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  rf   r   r
   r   s      rv   test_sXROUNDzTestCorrSpearmanr.test_sXROUNDw  s2    OAe$$aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r  r   r
   r   s      rv   test_sBIGBIGzTestCorrSpearmanr.test_sBIGBIG|  s2    OC$$aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sBIGLITTLEz!TestCorrSpearmanr.test_sBIGLITTLE  s2    OC''aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sBIGHUGEzTestCorrSpearmanr.test_sBIGHUGE  2    OC%%aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sBIGTINYzTestCorrSpearmanr.test_sBIGTINY  r]  rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sBIGROUNDz TestCorrSpearmanr.test_sBIGROUND  s2    OC&&aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r  r   r
   r   s      rv   test_sLITTLELITTLEz$TestCorrSpearmanr.test_sLITTLELITTLE  s2    OF6**aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sLITTLEHUGEz"TestCorrSpearmanr.test_sLITTLEHUGE  2    OF4((aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sLITTLETINYz"TestCorrSpearmanr.test_sLITTLETINY  rf  rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sLITTLEROUNDz#TestCorrSpearmanr.test_sLITTLEROUND  s2    OF5))aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r  r   r
   r   s      rv   test_sHUGEHUGEz TestCorrSpearmanr.test_sHUGEHUGE  2    OD&&aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sHUGETINYz TestCorrSpearmanr.test_sHUGETINY  rm  rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sHUGEROUNDz!TestCorrSpearmanr.test_sHUGEROUND  2    OD''aDAc"""""rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r  r   r
   r   s      rv   test_sTINYTINYz TestCorrSpearmanr.test_sTINYTINY  rm  rx   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rh   r  r   r   r
   r   s      rv   test_sTINYROUNDz!TestCorrSpearmanr.test_sTINYROUND  rr  rx   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rh   r  r   r
   r   s      rv   test_sROUNDROUNDz"TestCorrSpearmanr.test_sROUNDROUND  s2    OE%((aDAc"""""rx   c                     t          j        t          t                    }d}t          ||           t	          |j        |j                   d S r  )rh   r  rf   r   r   r  r
  r  s      rv    test_spearmanr_result_attributesz2TestCorrSpearmanr.test_spearmanr_result_attributes  sB    oa##.
C,,,S_cm44444rx   c                     g d}g d}t          j        ||          }t          j        t          j        ||g          j                  }t          ||           d S )Nr   r1   r2   r3   r4   r5   )r   r1   r2   r3   r5   r4   )rh   r  r   re   r  r   rm   x1x2res1r  s        rv   test_1d_vs_2dzTestCorrSpearmanr.test_1d_vs_2d  s_    r2&&rz2r(33566d#####rx   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=  r   r   r2   r3   r4   r5   r1   r   )r   rl   rh   r  re   r  r   )rm   r   r~  r  r  r  s         rv   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$''''	( 	(rx   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 )Nr5   )r   r   r1   r2   r4   r3   )r   ra   3+?)ra   r   3+)r  r  r   r2   r2   r5  g+Hs]s?r1   r   )r   r   r   re   r  rh   r  r  floatr   r
  r	  )rm   r~  r  x3ro   actualexpected_correxpected_pvalues           rv   
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7rx   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   rN   ffffff@r   ffffff"@ffffff@g333333@皙@)r:   r   ffffff@ffffff@r   r  ffffff@r   r=  r   r   r   r   r1   )gacJC?g%ln?g_0nYt!޿r\  rZ  )r   r   rl   r  r   rh   r  r
  )rm   ro   rH  r   s       rv   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rx   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:   r   r   )gonj?)Wn%?r  )r   r  r(  r3  r   rh   r  r
  rl   astypeint32r   )
rm   rG  ro   rF  r  r"  r  r  res3expecteds
             rv   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5rx   N)&r   r   r   r   r   r$  r+  r/  r1  r:  rI  rK  rM  rO  rQ  rT  rV  rX  rZ  r\  r_  ra  rc  re  rh  rj  rl  ro  rq  rt  rv  rx  rz  r  r  r  r  r  r   rx   rv   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 6rx   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   r1   r2   r3   r4   r4   r5   r6   r7   r6   gh
C?gR?r   r   )rh   r  r
   rm   r~  r  r  r   s        rv   test_spearmanr_vs_rz&TestCorrSpearmanr2.test_spearmanr_vs_r  sb     ____>ob"%%CFHQK000CFHQK00000rx   c                 x    t          t          j        g g           t          j        t          j        f           d S rA  )r   rh   r  r   rl   r#  s    rv   test_empty_arraysz$TestCorrSpearmanr2.test_empty_arrays!  s-    U_R,,rvrv.>?????rx   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   )r   r  r(  r   r  dotlinalgcholeskyrh   r  r
   )rm   ro   rH  r  r   s        rv   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0rx   c                 `    t          t          j        g dg d          d         d           d S )Nr   r   r1   r   r   )r
   rh   r  r#  s    rv   test_corr_1zTestCorrSpearmanr2.test_corr_10  s1    EOIIIyyyAA!DcJJJJJrx   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 )Nr   r8   r   r   )r   r   r   r   )	r   r   rl   r	   rh   r  r   r   r   r.  s     rv   test_nan_policiesz$TestCorrSpearmanr2.test_nan_policies3  s    IcNNv!5?1a0026262BCCC1@@@ 	" 	" 	"j%/1aGLLLLj%/1aHMMMMMMrx   c                     t          j        d          }t          j        d          }t          t          t          j        ||           d S )Nr         4@)r   r   r   r   rh   r  r*  s      rv   test_unequal_lengthsz'TestCorrSpearmanr2.test_unequal_lengths<  s8    IcNNIcNNj%/1a88888rx   c                     g d}dddt           j        g}t          j        ||d          }t          j        |d d         |d d         d          }t	          ||           d S )NrW  r7   r6   r5   r   r   r2   )r   rl   rh   r  r   r}  s        rv   test_omit_paired_valuez)TestCorrSpearmanr2.test_omit_paired_valueA  sm    \\Arvr2&999r"1"vr"1"v&AAAT4     rx   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  r8   r   i  r[   i  i  r  r   r   gV-?)listr  r  r   rl   r   rh   r  r*  s      rv   #test_gh_issue_6061_windows_overflowz6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflowH  s    ttqT1Q4
!ad#""qvD'1S6#$ 	
	EOAqVDDDQGOOOOOrx   c                 \   d}t          j        t          j        |          5  t          j        g dg d          \  }}t          |t          j                   t          |t          j                   t          j        g dg d          \  }}t          |t          j                   t          |t          j                   t          j        g dg d          \  }}t          |t          j                   t          |t          j                   d d d            d S # 1 swxY w Y   d S )Nr%  r   r1   r1   r1   r1   r   r1   )r,  r-  rh   r.  r  r   r   rl   )rm   warn_msgr   r0  s       rv   	test_tie0zTestCorrSpearmanr2.test_tie0U  sF   /\%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   rD  r  r   )r   rD  rD  r  )r   r<   r<   r   )rh   r  r   r   )rm   ro   rp   xryrsrprs          rv   	test_tie1zTestCorrSpearmanr2.test_tie1c  sh          !!!!!! _Q""^B##B#####rx   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   r1   r<   r1   )r   r2   r<   r3   r   r1   r<   r2   r3   r   r   )r   rl   rh   r  r   )rm   r~  rq   r  rr   sr1sr2s          rv   	test_tie2zTestCorrSpearmanr2.test_tie2p  sy     ^^^^CBF#CBF# ob"%%ob"888C%%%%%rx   c                    t          j        g dg dg          }t          j        g dg dg          }t          j        g dg dg          }d}t          j        t          j        |          5  t	          j        |d          \  }}t          |t           j                   t          |t           j                   t	          j        |d          \  }}t          |t           j                   t          |t           j                   t	          j        |d          \  }}t          |t           j                   t          |t           j                   d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   rW  r%  r   r   rU   	r   r   r,  r-  rh   r.  r  r   rl   )rm   z1z2z3r  r   r0  s          rv   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   1C(E&&E*-E*c                 l   t          j        g d          }t          j        g d          }d}t          j        t          j        |          5  t	          j        ||          \  }}t          |t           j                   t          |t           j                   d d d            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  )rm   ro   rp   r  r   r0  s         rv   test_gh_11111z TestCorrSpearmanr2.test_gh_11111  s    HGGGHHH - - - . . 0\%4HEEE 	$ 	$?1a((DAqBF###BF###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   AB))B-0B-c                     t          j        g d          }t          j        g d          }t          t          t          j        ||d           d S )N)
r   r   rD  r   r   r   r   r   r   r   r  r1   rU   )r   r   r   r   rh   r  r*  s      rv   test_index_errorz#TestCorrSpearmanr2.test_index_error  s[    HGGGHHH - - - . . 	j%/1aa@@@@@@rx   c                    g d}g d}d}t          j        ||d          }t          |d         |d                    t          |d         d|d         dz  z
             t          j        ||d	          }t          |d         |d                    t          |d         |d         dz             t          j        t
          d
          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr  r  r  rR  rX  r   r   r1   rT  `alternative` must be 'less'...r   	ekki-ekki)rh   r  r
   r,  r   r   r  s        rv   test_alternativez#TestCorrSpearmanr2.test_alternative  sK    ____ ? ob"&999CFHQK000CFA!q$9::: ob")<<<CFHQK000CFHQK!O444]:-NOOO 	= 	=OB<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   C22C69C6rY  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 )Nr  r  r   r   rY  rX  r   r   r   r   r  )	r   rl   r	   rh   r  r   r,  r   r   )	rm   rY  r~  r  x1nanx2nan
res_actualres_expectedrt  s	            rv   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   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r,  r  r  r  r   rx   rv   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 5rx   r  c                  l   d} g d}g d}d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    Rg d}g d	}d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    Rg d
}g d}d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    Rg d}g d}d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    Rt          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"  r  )r4   r1   r   r2   r5   r3   r6   r7   )r4   r1   r5   r2   r   r7   r6   r3   r  )variantr   r   )	r   r4   r1   r   r2   r5   r3   r6   r7   )	r4   r1   r   r5   r2   r   r7   r6   r3   )r4   r1   r   r2   r5   r3   r6   )r4   r1   r5   r2   r   r6   r3   )gJ$I¿gmK?)r1   r   r2   r5   r3   r6   r7   )r1   r5   r2   r   r7   r6   r3   )gJkaa?r   r[   )r   紞xO~>r1   )g?>?aV>r4   r5   )g}'}'?o&5>ra   )r  r  )g?>r  )g}'}'r  )
r   r1   r1   r3   r3   r5   r5   r7   r8   r8   )
r   r1   r3   r3   r3   r3   r7   r7   r7   r[   gok|?r"  gffffff?r  rs  rq  bananarmsr]   r1   r   r]   r1   r   r3   r6   r   r   )g}+޿g`=i?r  r  r  r  r  r  r   r  )g\zf?g^n)=r  g#q?r   r8   r   r   )r   g/>r\  rZ  rp  )r   rr  )r   g&?r   r   r  r  r5  i  r  )rh   
kendalltaur
   r   r   r   r   r   r   r   r  r
  rl   r  r(  r  r  r  r  r	   r   r  mamasked_greaterconcatenater   isfinite)variantsro   rp   r  tauxr   r"  r~  r  r  rH  taup_values                rv   test_kendalltaur    s
    H 	!  A   A H 1 1q!T222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A /H 1 1q!T222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
	"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2rx   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*   r1   r[   r   r   )
r   r  r(  r  r  shufflemstats_basicr  rh   r
   )sr  r  r"  r  r  s         rv   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 4rx   c                      g d} t           j        dddg}t          j        | |d          }t          j        | dd          |dd                    }t	          |j        |j        d           d S )	Nr  333333@333333@r   r   r   r  r  )r   rl   rh   r  r   r
  )ro   rp   r1r2s       rv   test_kendalltau_nan_2nd_argr    su    A	c3A		!Q6	2	2	2B		!ABB%122	'	'BBL",U;;;;;;rx   c                  "   dd l } |                     d           g d}d}|                     ||          }|                     ||          }t          j        ||          }t          |j        d           t          |j        dd	           d S )
Nr   i_ r   r1   r2   r3   r4   r5   r6   i@ r5  g*8_2\S?gd`TR?gMb`?r  )r  r(  choicesrh   r  r   r
  r	  )r  classes	n_samplesro   rp   r   s         rv    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2rx   c            	          e Zd Zd ZdZej        ej        ej        gZg dZg dZ	g dZ
g dZg dZg dZg d	Zg d
Zd Z e eeedgdz                       e ee ee          dgdz                      z   Zej                            de          d             Z e eeedgdz                       e ee ee          dgdz                      z   Zej                            de          d             Z e eee	dgdz                       e ee ee	          dgdz                      z   Zej                            de          d             Z e eee
dgdz                       e ee ee
          dgdz                      z   Zej                            de          d             Z e eeedgdz                       e ee ee          dgdz                      z   Zej                            de          d             Z  e eeedgdz                       e ee ee          dgdz                      z   Z!ej                            de!          d             Z" e eeedgdz                       e ee ee          dgdz                      z   Z#ej                            de#          d             Z$ e eeedgdz                       e ee ee          dgdz                      z   Z%ej                            de%          d             Z& e eeedgdz                       e ee ee          dgdz                      z   Z'ej                            de'          d             Z( e eedgdz                       e eedgdz                      z   Z)ej                            de)          d             Z*ej                            dd          ej                            dd          d                         Z+d S )!TestKendallTauAlternativec                    g d}g d}t          j        ||d          }|d         dk    sJ t          j        ||d          }t          |d         |d                    t          |d         d|d         dz  z
             t          j        ||d	          }t          |d         |d                    t          |d         |d         dz             |                                 t          j        ||d          }|d         dk     sJ t          j        ||d	          }t          |d         |d                    t          |d         d|d         dz  z
             t          j        ||d          }t          |d         |d                    t          |d         |d         dz             t          j        t          d
          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr  r  rP  rX  r   rR  r   r1   rT  r  r   r  )rh   r  r   r   reverser,  r   r   r  s        rv   &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]:-NOOO 	> 	>R====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   G55G9<G9)rR  rP  rT  )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 )Nra   rs  r  )r   re   rh   r  r   )	rm   ro   rp   rY  revstat_expected
p_expectedr   r  s	            rv   
exact_testz$TestKendallTauAlternative.exact_test%  s\     	 AARMq!GMMM$j0\*****rx   Fr2   Tzalternative, p_expected, revc                 ^    dgdg}}t           j        }|                     ||||||           d S )Nr   r1   )r   rl   r  rm   rY  r  r  ro   rp   r  s          rv   test_against_R_n1z+TestKendallTauAlternative.test_against_R_n10  s8    sQC11k3zJJJJJrx   c                 N    ddgddg}}d}|                      ||||||           d S )Nr   r1   r2   r3   g?r  r  s          rv   test_against_R_n2z+TestKendallTauAlternative.test_against_R_n29  s:    1v1v1*1k3zJJJJJrx   c                 N    g dg d}}d}|                      ||||||           d S )Nrm  r   r   r  s          rv   test_against_R_c0z+TestKendallTauAlternative.test_against_R_c0B  s:    yy)))11k3zJJJJJrx   c                 N    g dg d}}d}|                      ||||||           d S )NrW  )r   r1   r3   r2   gVUUUUU?r   r  s          rv   test_against_R_c1z+TestKendallTauAlternative.test_against_R_c1K  s:    ||\\\1*1k3zJJJJJrx   c                 N    g dg d}}d}|                      ||||||           d S )Nr  )r   r4   r3   r1   r2   r   r   r  s          rv   test_against_R_no_correlationz7TestKendallTauAlternative.test_against_R_no_correlationU  s:    11k3zJJJJJrx   c                 N    g dg d}}d}|                      ||||||           d S )Nr   r1   r2   r3   r4   r5   r6   r7   )r7   r5   r   r2   r1   r4   r3   r6   r   r   r  s          rv   test_against_R_no_correlationbz8TestKendallTauAlternative.test_against_R_no_correlationb_  s?    ''')A)A)A11k3zJJJJJrx   c                 N    g d}g d}d}|                      ||||||           d S )N)	g333333F@g33333F@g33333D@gfffffJ@gYF@gF@gYI@gF@gN@)	g@@r<   rN   @r   g@ffffff@r  gqq?r   r  s          rv   test_against_R_lt_171z/TestKendallTauAlternative.test_against_R_lt_171h  sB     CBB999*1k3zJJJJJrx   c                     t           j                            d           t           j                            d          }t           j                            d          }d}|                     ||||||           d S )Nr   r~  gUm*,r   r  r(  r3  r  r  s          rv   test_against_R_lt_171bz0TestKendallTauAlternative.test_against_R_lt_171bu  sc    
	qINN3INN3,1k3zJJJJJrx   c                     t           j                            d           t           j                            d          }t           j                            d          }d}|                     ||||||           d S )Nr      gH4?r1  r  s          rv   test_against_R_lt_171cz0TestKendallTauAlternative.test_against_R_lt_171c  sc    
	qINN3INN3*1k3zJJJJJrx   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  rs  r  rp  r   r  rZ  )r   r  r(  r3  rh   r  r   r   )rm   rY  r  ro   rp   res0r  s          rv   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4rx   rr  )rs  rp  rY  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 )Nr  r4   r5   r6   r7   r8   r  r   )r   rr  rY  r   r   r   r   r  )r   rl   rh   r  r   r,  r   r   )
rm   rr  rY  r~  r  r  r  r  r  rt  s
             rv   r1  z)TestKendallTauAlternative.test_nan_policy  s5    ____bfXbfX %eU-3N N N
'
L111 %eUv-3N N N
'Bv4?A A A
L111 2]:W555 	E 	EUEg$*E E E E	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E
 1]:W555 	E 	EUEk$*E E E E	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es$   C--C14C1D<<E E N),r   r   r   r  alternativesr   rl   p_n1p_n2p_c0p_c1p_no_correlationp_no_correlationb
p_n_lt_171p_n_lt_171bp_n_lt_171cr  r  r  reversed	case_R_n1r,  r  r  r  	case_R_n2r!  	case_R_c0r#  	case_R_c1r%  case_R_no_corrr'  case_no_cor_br*  case_R_lt_171r/  case_R_lt_171br2  case_R_lt_171cr5  case_gt_171r8  r1  r   rx   rv   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rx   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   ro   s    rv   <lambda>z"test_weightedtau.<locals>.<lambda>  s    Q rx   )weigherr  r  )rankgڿgn)rW  rQ  g @ڿg[đ(gIکnTc                     dS rS  r   rT  s    rv   rU  z"test_weightedtau.<locals>.<lambda>       rx   )rW  rV  c                     dS rS  r   rT  s    rv   rU  z"test_weightedtau.<locals>.<lambda>  rY  rx   r5  r   r   r   r   r1   r3   r6   r]   r1   )      (@rD  r   r\  rD  r   r   r   r\  rD  )r\  rD  r   r\  r   )r   r   r   r   r   gt34+)rh   weightedtaur
   r   r   rl   r   r  r
  re   r   int16r   r   )ro   rp   r  r  r   r  s         rv   test_weightedtaur_    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%D%'Z%D%D%DF FLC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1rx   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   )rh   r]  r   rl   r   rx   rv   test_segfault_issue_9710rb    sQ     
qcC5!!!	qcC5!!!	rvh%%%%%rx   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   ra   rs  r   )rr  r   r   )r   r   r  r  rl   rh   r  r   )rG  ro   rp   _r]  s        rv   test_kendall_tau_largerf    s    A
	!a%&&A
	!a%&&AFAbEq!GGGGGAtsrx   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  lenr   r  )ro   rp   rW  rV  addtotconcdiscuvr  rC  ws                rv   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Brx   c                     d| dz   z  S )Nr   r   r   rT  s    rv   rV  z.test_weightedtau_vs_quadratic.<locals>.weigher;  s    QU|rx   r  r2   r[   r5  r1   r_   )r   r  r(  r  r  r  r   ri  intprh   r]  r
  r
   )rq  rV  r  r  r  r"  rW  re  rj  r  r  s              rv   test_weightedtau_vs_quadraticrt  )  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####	$$ $rx   c                       e Zd Zd Zd ZdS )TestFindRepeatsc                     g d}d}t          j        |          5  t          j        |          \  }}d d d            n# 1 swxY w Y   t	          |g d           t	          |g d           d S )N)r   r1   r2   r3   r   r1   r2   r3   r   r1   r4   +`scipy.stats.find_repeats` is deprecated...r   rW  )r2   r2   r1   r1   r,  deprecated_callrh   find_repeatsr	   )rm   r  rt  r   numss        rv   r#  zTestFindRepeats.test_basicT  s    ---?#'222 	. 	.*1--IC	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.3---4.....s   A  AAc                     g dg fD ]h}d}t          j        |          5  t          j        |          \  }}d d d            n# 1 swxY w Y   t	          |g            t	          |g            id S )N)r[   r  2      (   rx  r   ry  )rm   r  rt  repeatedcountss        rv   test_empty_resultz!TestFindRepeats.test_empty_result\  s    &&&+ 	+ 	+ACG'g666 9 9#(#5a#8#8 &9 9 9 9 9 9 9 9 9 9 9 9 9 9 9x,,,vr****	+ 	+s   AA	A	N)r   r   r   r#  r  r   rx   rv   rv  rv  R  s2        / / /+ + + + +rx   rv  c                   F   e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            d          d	             Ze
j                            d          d
             Ze
j                            d          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        d                              d          }d}t          j        |          5  t          j        |           d d d            n# 1 swxY w Y   t          j        |d         |d                    d S )Nr  r1   r[   zInference of the two sets...r   r   r   )r   r   rj   r,  rz  rh   
linregressrm   ro   rt  s      rv   test_one_arg_deprecationz'TestRegression.test_one_arg_deprecationh  s    IbMM!!'**0#'222 	  	 Q	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 1qt$$$$$s   A  A$'A$c                     t          j        t          t                    }t	          |j        d           t	          |j        d           t	          |j        d           t	          |j        d           d S )Nir   r   )	rh   r  rf   r   r   	interceptrvaluestderrintercept_stderrrm   ra  s     rv   test_linregressBIGXz"TestRegression.test_linregressBIGXo  sf    !!S))F,h777FM3/// 	FM3///F3S99999rx   c                     t          j        t          t                    }t          |j        d           t          |j        d           t          |j        d           t          |j        d           d S )Nr   r   )rh   r  rf   r   r  r  r  r  r  s     rv   test_regressXXzTestRegression.test_regressXXy  sf    
 !!Q''F,c222FM3///FM3///F3S99999rx   c                     t          j        t          t                    }t	          |j        d           t	          |j        d           d S )Nr   )rh   r  rf   ZEROr   r  r  r  s     rv   test_regressZEROXz TestRegression.test_regressZEROX  sA    
 !!T**F,c222FM3/////rx   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
          }t          t          ||                     t          |j	        d           d S )Nr   r~  皙?r[   r  穷4_Qc?)
r   linspacesinrh   r  r"   r   
isinstancer   r  )rm   ro   rp   ra  lrs        rv   test_regress_simplez"TestRegression.test_regress_simple  s    K3$$"+ac***R/	RVBK2s++,,,!!Q''
62&&'''FM+@AAAAArx   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  r[   r  r  r   r  rX  rP  rR  r   r1   rT  )r   r  r  r,  r   r   rh   r  r   r	  r  )rm   ro   rp   r  r  r  s         rv   test_regress_alternativez'TestRegression.test_regress_alternative  s   K3$$"+ac***R/	RVBK2s++,,,]:-NOOO 	< 	<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)
                              )
?   Q   8   [   /   9   r  H   >   r  rP  rX  gؗh?gJK@:Cgag?g->g5ՒO?g]؊E @)rh   r  r   sloper  r  r   r  r	  r  r  )rm   ro   rp   r   s       rv   test_regress_against_Rz%TestRegression.test_regress_against_R  s     ?>>444q!===	?333'8999
BGM$:$:;;;
$5666
O444,o>>>>>rx   ignore::DeprecationWarningc                 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  r[   r  r  8?)	r   r  r  vstackrh   r  r   r  r  )rm   ro   rp   rowsra  s        rv   test_regress_simple_onearg_rowsz.TestRegression.test_regress_simple_onearg_rows  s     K3$$"+ac***R/	RVBK2s++,,,y!Q  !$''FM+@AAAF35JKKKKKrx   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  r[   r  r   r  r  )
r   r  r  hstackexpand_dimsrh   r  r   r  r  )rm   ro   rp   columnsra  s        rv   test_regress_simple_onearg_colsz.TestRegression.test_regress_simple_onearg_cols  s    K3$$"+ac***R/	RVBK2s++,,,)R^Aq112>!Q3G3GHII!'**FM+@AAAF35JKKKKKrx   c                 j    t          t          t          j        t	          j        d                     d S )Nr  )r   r   rh   r  r   r  r#  s    rv   test_regress_shape_errorz'TestRegression.test_regress_shape_error  s'     	j%"2BGFOODDDDDrx   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 )Nr\   r4   r   r   r   ra   c                 &    t          | |d          S )NrY   r  )r   ro   rp   s     rv   	assert_aez1TestRegression.test_linregress.<locals>.assert_ae  s    &q!R8888rx   r   rN   gePUn?g.bt>gڽE?gʺL7?)
r   r   rh   r  r  r  r  r	  r  r  )rm   ro   rp   ra  r  s        rv   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	&)+>?????rx   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順 r1   ra   )
r   r  rh   r  r   r  r   r  r  r  )rm   r  rG  ro   rp   ra  s         rv    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6rx   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
          }t          t          ||                     d}t          ||           dt          |          v sJ d S )Nr   r~  r  r[   r  )r  r  r  r	  r  r  )
r   r  r  rh   r  r"   r   r  r   dir)rm   ro   rp   ra  r  r  s         rv   !test_linregress_result_attributesz0TestRegression.test_linregress_result_attributes	  s    K3$$"+ac***R/	RVBK2s++,,,!!Q'' 
62&&''' J
FJ///!S[[000000rx   c                     t          j        d          }t          j        dd          }t          j        ||          }t	          |j        d           t	          |j        d           t	          |j        d           d S )Nr1   r2   r4   r   )r   r   rh   r  r   r	  r  r  rm   ro   rp   ra  s       rv   test_regress_two_inputsz&TestRegression.test_regress_two_inputs&	  sq    IaLLIaOO!!Q'' 	FM3/// 	FM3///F3S99999rx   c                     t          j        d          }t          j        d          }t          j        ||          }t          |j        d           t          |j        d           t          |j        d           d S )Nr1   r   r   )	r   r   r  rh   r  r   r	  r  r  r  s       rv   'test_regress_two_inputs_horizontal_linez6TestRegression.test_regress_two_inputs_horizontal_line3	  so    IaLLGAJJ!!Q'' 	FM3/// 	FM3///F3S99999rx   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  r  g     @     4@g|@33333W@gy@r  r  gP@gfffff@4u@r  g%@gm@gl@g     0@gfffffƋ@gfffff]@r  r  gl@r  r  r  r  gffffff$@gffffff]@g̜l@g33333@g33333|@r  g?g!пr1   gpX?r   gh-h*<?gg?)	rh   r  r   r  r  r  r	  r  r  r  s       rv   test_nist_norriszTestRegression.test_nist_norris@	  s    7 7 77 7 7 !!Q''FL*:;;;F,.@AAAFM1,.?@@@FM3///FM+;<<<F35EFFFFFrx   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  r[   r  r   )	r   r  r  rh   r  polyfitr   r  r  )rm   ro   rp   ra  polys        rv   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6rx   c                 H    t          t          t          j        g g            d S rA  )r   r   rh   r  r#  s    rv   test_empty_inputzTestRegression.test_empty_inputg	  s    j%"2B;;;;;rx   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          }t          t          ||                     t          |t           j        fdz             t          |j        t           j                   d S )Nr   r8   ignoreinvalidr4   )r   r   rl   errstaterh   r  r"   r   r  r	   r   r  )rm   ro   ra  r  s       rv   test_nan_inputzTestRegression.test_nan_inputj	  s    IcNNv![*** 	, 	,%a++F	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 
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 )Nr[   z$Cannot calculate a linear regressionr   )r   r  r  r   r   rh   r  rm   ro   rp   r   s       rv   test_identical_xzTestRegression.test_identical_xw	  s    HRLLIR  4:S111 	# 	#Q"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   A//A36A3N)r   r   r   r  r  r  r  r  r  r  r,  r  filterwarningsr  r  r  r  r  r  r  r  r  r  r  r  r  r   rx   rv   r  r  f  s       % % %: : :
: 
: 
:*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6
7 
7 
7< < <6 6 6# # # # #rx   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_separaterq  jointr   )r   r1   r2   r3   r[   r]      )r8   r     r  -   7   N   gQ?separater3   r   gQ@r1   r  gGz@r   )rh   theilslopesr   r,  r   r   )r  r  lowerupperr   ro   rp   s          rv   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   r3   r1   r   r2   r   r3   numbins)r  r   rN   r   )r;   r4   )r  defaultreallimitsr2   )cumcountr   binsizeextrapoints)rh   cumfreqr   r   r   r   r   )ro   cumfreqslowlimr  r  r  r   s          rv   test_cumfreqr	  	  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(((((rx   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  r3   r   )r:   K}\UU?r  r  )	frequencyr   r  r  )r   r   rh   relfreqr   r   )r  relfreqsr  r  r  r  r   	relfreqs2s           rv   test_relfreqr  	  s    
###$$A-2]1a-H-H-H*Hfg{h#$M$M$MNNP P P GJ
-1
%
%
%CZ((( /4m<N<N<NDE/G /G /G+Ivwh	22222rx   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)r2   r3   r4   r[   rb   r5   )r2   r  r7   r6   r3   r1   r   )r  r3   r4   r[   rb   r  r  r   )a1a2a3r#  s    rv   setup_methodz"TestScoreatpercentile.setup_method	  s-    ***,,,111rx   c                     t          d          dz  }t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           d S )	Nr7   r:   r   r   r~  r=   r~        ?)r   r   rh   scoreatpercentiler.  s     rv   r#  z TestScoreatpercentile.test_basic	  sn    1IIOU,Q22B777U,Q44c:::U,Q33T:::::rx   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 )Nr[   r~  r>   r1   r6   r~  r   r7   )limitr   r[   r~  r[   r~  r  r   r[   r?   fractioninterpolation_methodr   r&  rh   r  r   r  r  r   r   rm   scoreatpercs     rv   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	 	 	 	 	rx   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 )Nr[   r~  r  r%  r3   higherr4   r  r'  r~  r  r!  r"  r#  r   r(  r)  s     rv   test_lower_higherz'TestScoreatpercentile.test_lower_higher	  s   - 	[[eBii"6=? ? ?@A	C 	C 	C[[eBii"6>@ @ @AB	D 	D 	D[[eBii"e6=? ? ?@A	C 	C 	C[[eBii"E6>@ @ @AB	D 	D 	D[[eCjj!1!12u6=? ? ?@A	C 	C 	C[[eCjj!1!12u6>@ @ @AB	D 	D 	D[[,,,!7!7Y6=? ? ?@B	D 	D 	D[[,,,!7!796>@ @ @AD	F 	F 	F[[,,,!7!7W6=? ? ?@A	C 	C 	C[[,,,!7!776>@ @ @AC	E 	E 	E 	E 	Erx   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 )Nr7   r:   )r   r=   r  )r   r~  r~  r]   r2   r3   )r   r   r~  r~  r   rU   )r   r3   r7   )Q?gQ@g(\ @r2   r6   r\   )
r   r   r   rh   r  r   r   r  ndarrayrj   )rm   ro   r  r   r  	expected2s         rv   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(((((rx   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 )Nr]   r2   r3   )r  r~  r~  )g      @r?         &@)r1   r2   r3   r4   r3   r4   r5   r6   )r7   r8   r[   r\   r   rU   )      ?g      @g     !@)r;   r?         #@r2  r   r   r   r   )r3   r3   r2   r~  r   r   r2   )rh   r  r   rj   r   r   r  )rm   r*  ro   r0r  scores         rv   	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&&&&&rx   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   r1   r  r   r%  e   ra   )r   r   rh   r  r#  s    rv   test_exceptionz$TestScoreatpercentile.test_exception)
  sc    j%"9Aq62+3	5 	5 	5 	5j%"9A3DDDj%"9A3CCCCCrx   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   rh   r  r   rl   r   r#  s    rv   
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Mrx   N)r   r   r   r  r#  r+  r.  r5  r?  rB  rE  r   rx   rv   r  r  	  s        2 2 2
; ; ;  4E E E2) ) )$' ' '0D D DN N N N Nrx   r  c            
          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        t          t                    5  t	          j        g           \  }}d d d            n# 1 swxY w Y   t          |t          j        g                      t          |t          j        g                      d S Nr   )	r,  r-  r   r   rh   moder   r   r   rm   valsr  s      rv   rE  zTestMode.test_empty7
  s    \,4IJJJ 	* 	* :b>>LD&	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*T28B<<(((VRXb\\*****s   AA	A	c                     t          j        d          \  }}t          |t          j        dg                     t          |t          j        dg                     d S )Nr   r   )rh   rJ  r   r   r   rK  s      rv   r   zTestMode.test_scalar=
  sM    z"~~fT28RD>>***VRXqc]]+++++rx   c                     g d}t          j        |          }t          |d         d           t          |d         d           d S )Nr2   r4   r   r[      r2   r1   r5   r7   r5   r[   r5   r   r5   r   r2   rh   rJ  r   )rm   data1rL  s      rv   r#  zTestMode.test_basicB
  sJ    777z%  T!Wa   T!Wa     rx   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)r[   r[   r  r  )r[   r[   r[   r[   )r  r[   r  r  )r  r  r  r  )r  r  r  r  TrV   keepdimsr   r  r   r7   )r[   r[   r  r  )r1   r2   r2   r1   r[   r  r1   r3   r2   )r   r   rh   rJ  r   )rm   rR  data2data3data4data5arrrL  s           rv   	test_axeszTestMode.test_axesH
  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Brx   rV   r   c                 0   t           j                            d           t           j                            dddd          }t	          j        ||j        |z             }t	          j        ||          }t           j                            ||           d S )N:r[   r\   r]   r^   rU   )	r   r  r(  r3  rh   rJ  ndimr  r	   )rm   rV   r  r7  r  s        rv   test_negative_axes_gh_15375z$TestMode.test_negative_axes_gh_15375\
  s{    
	y!!!INN2r2r**z!!&+...z!$'''

%%dD11111rx   c                    g d}g }t          j        |          }d}t          ||           t          j        t
          t                    5  t          j        |          }d d d            n# 1 swxY w Y   t          ||           d S )NrO  )rJ  countr   )rh   rJ  r   r,  r-  r   r   )rm   rR  rV  r  r  actual2s         rv   test_mode_result_attributesz$TestMode.test_mode_result_attributesd
  s    777E""&
FJ///\,4IJJJ 	( 	(j''G	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(GZ00000   A..A25A2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 )Nr2   r4   r   r[   rP  r1   r5   r7   )r5   r2   r   r   r   r   )r   rl   rh   rJ  r   r   r   )rm   rR  r  s      rv   test_mode_nanzTestMode.test_mode_nann
  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Irx   data)r2   r4   r   r   r2   r2   r4   r   )r2   r4   r   rU  FTc                     t          j        |d|          }|rt          |d         d         d           d S t          |d         d           d S )Nr   )r   rU  r   r   rQ  )rm   rh  rU  ra  s       rv   test_smallest_equalzTestMode.test_smallest_equalx
  sZ     DVhGGG 	'1q)))))A&&&&&rx   rb   c                    t           j                            d          }|                    d                              |          }t          j        ||d          }t          |j                  }|	                    |           t           j
                            |j        j        |           t           j
                            |j        j        |           d S )Nr^  r2   r3   r4   r  FrT  )r   r  r  uniformr  rh   rJ  r  r  popr  r	   rb  )rm   rV   r3  r  r  r   reference_shapes          rv   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Grx   c                     dt           j        dt           j        g}t          j        |          }t          j        |j                  r|j        dk    sJ d S Nr1   r   )r   rl   rh   rJ  r  rb  )rm   r  r   s      rv   !test_nan_policy_propagate_gh_9815z*TestMode.test_nan_policy_propagate_gh_9815
  sG     26"jmmx!!4ci1nnnnnnrx   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   r1   r2   r   r   FrT  )r   r2   r   T)r   r   r2   r   r2   r1   rU  r   r  r4   r   )rV   rU  r   )r   r1   r4   )r1   r   r1   )rU  r   )r   r  rh   rJ  r  rb  rl   r	   r   r  r   )rm   r  r   r  s       rv   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&((((((rx   r   r=  r   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|          }d}t          j        t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )N)r3   r2   r  r   F)r  rV   rU  r   r  r1   r2   r2   r2   asdfqwerr<  r[   r5  z0Argument `a` is not....|An argument has dtype...r   r   )r   r  rl   rh   rJ  r	   rb  r3  uint8r   r  r,  r   	TypeError)rm   r   r  rh  r   my_dtypetestrt  s           rv   test_gh16955zTestMode.test_gh16955
  s2    wu~~VT
j4a%JOOO38\\\22239lll333 8fbh/&"*d1KLMMx(+++D]9G444 	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   C22C69C6c                 n   t          j        t          t                    5  t	          j        g           }d d d            n# 1 swxY w Y   t          j        df}t          ||           t          j        t          t                    5  t	          j        t          j        gd          }d d d            n# 1 swxY w Y   t          ||           g dt          j        t          j        t          j        gg}t          j        t          t                    5  t	          j        |dd          }d d d            n# 1 swxY w Y   dt          j        gd	dgf}t          ||           t	          j        |dd
          }dt          j        gd	dgf}t          ||           t          j        g g g          }t          j        t          t                    5  t	          j        |d          }d d d            n# 1 swxY w Y   t          j        t          j        gddgf}t          ||           d S )Nr   r   r   r   )r   r  r  r   r>  r  r1   r=  r2   rU   )r,  r-  r   r   rh   rJ  r   rl   r   r   r   r   r   )rm   r   r  r  zs        rv   test_gh9955zTestMode.test_gh9955
  s    \,4IJJJ 	! 	!*R..C	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!vqkS#\,4EFFF 	: 	:*bfX&999C	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:S#__rvrvrv67\,4EFFF 	; 	;*QQ6:::C	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;BF|aV$S#j{;;;BF|aV$S#Hb"X\,4IJJJ 	( 	(*QQ'''C	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(!Q(S#sG   AA	A"B99B= B=D??EEG>>HHzignore::RuntimeWarningr  r[  r  c                 ~   |j         dk    rPt          j        t          t                    5  t          j        |d d          }d d d            n# 1 swxY w Y   n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 )Nr   r   TrT  r   r;  )
r  r,  r-  r   r   rh   rJ  r   rk   r  )rm   r  r   r  s       rv   test_gh17214zTestMode.test_gh17214  s    6Q;;08MNNN > >j===> > > > > > > > > > > > > > > *QTD999CgadT2221v|s1v|EEEEsyEEEEIEEEEEEEEs   AAAc                    t           rdn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'...only boolean and numerical dtypes...z*Argument `a` is not recognized as numeric.c                       e Zd Zd ZddZdS )8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikec                     || _         d S rA  )_xr.  s     rv   __init__zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__  s    rx   Nc                 @    | j                             t                    S rA  )r  r  object)rm   r3  copys      rv   	__array__zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__  s    w~~f---rx   )NN)r   r   r   r  r  r   rx   rv   ArrLiker    s7          . . . . . .rx   r  r   r2   r5  )	r.   r,  r   r|  rh   rJ  r   r   r  )rm   rt  r  s      rv   test_raise_non_numeric_gh18254z'TestMode.test_raise_non_numeric_gh18254  sg   @O E<<D 		. 	. 	. 	. 	. 	. 	. 	. ]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#   0A00A47A4.CCCN)r   r   r   rE  r   r#  r[  r,  r  r  r   r   r`  rd  rg  rl   rj  r   rp  rs  rv  r  r  r  emptyr  r  r   rx   rv   rG  rG  5
  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5 5 5:) :) :)x [\K+@AA4 4 BA4"  : [ 899[S828I#6#68K8K"LMMF F NM :9F3 3 3 3 3rx   rG  c                   R    e Zd Zg dZdZd Zd Z edd          d             Zd	S )
TestSEMr  r   c                 (   |                     | j                  d         }t          |          rMt          j        t
          t                    5  t          j        |          }d d d            n# 1 swxY w Y   n~t          j
                                        5 }|                    t                     |                    t                     t          j        |          }d d d            n# 1 swxY w Y   |                    |          sJ d S )Nr   r   )re   scalar_testcaser+   r,  r-  r   r   rh   semr   r  r   r   UserWarningr   r  )rm   rn   r  rp   r   s        rv   test_sem_scalarzTestSEM.test_sem_scalar$  s`    **T%9::2>B<< 	/08MNNN / /Io../ / / / / / / / / / / / / / / --// /3

;'''

>***Io../ / / / / / / / / / / / / / / xx{{s%   A11A58A5A	C00C47C4c                 \   |                     | j                  }t          j        |          }t	          ||                     d                     t          | j                  }t	          t          j        |d          ||dz
  z  dz  z  t          j        |d                     |                    d          }|                    |dk    |                     |j                  |          }t          t          j        |          |                     |j                             d S )Ng㝎?r   ddofr1   r:   r   r8   )
re   testcaserh   r  r/   ri  r   whererl   r0   )rm   rn   r  rp   rG  ro   s         rv   test_semzTestSEM.test_sem6  s    ::dm,,Ih2::l33444	(333q!A#wnD	(333	5 	5 	5 IIcNNHHQ!VRZZ//33	!bjj&8&899999rx   Tz(`nan_policy` only supports NumPy backendr   c                    t          j        d          }t           j        |d<   t          t	          j        |d          d           t          t          t          j        |d           t          t          t          j        |d           d S )Nr   r8   r   r   gH=6?r   r   )r   r   rl   r   rh   r  r   r   rm   rn   ro   s      rv   test_sem_nan_policyzTestSEM.test_sem_nan_policyB  st     IcNNv!UYqV4446HIIIj%)Q7CCCCj%)Q8DDDDDDrx   N)	r   r   r   r  r  r  r  rH   r  r   rx   rv   r  r    s          HO  $
: 
: 
: dGI I IE EI IE E Erx   r  zJAX can't do item assignmentc                      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 edd          d             Zd Zd Zd Z edd          d             Zd Zd Zd Z edd          d             Zej                            d ej        g            ej        d          g          d             Zd  Zed!             Zed"             Z d# Z!ej                            d$d%          d&             Z"d'S )(TestZmapZscorezx, yr  ri  )r   r   rD  r  r   c                 $   |                     |          |                     |          }}t          ||          }||                    |          z
  |                    |d          z  }t	          j        ||          }t          ||           d S )Nr   r|   )re   r)   rk   r   rh   zmapr/   )rm   ro   rp   rn   r   r  r  s          rv   	test_zmapzTestZmapZscore.test_zmapQ  s     zz!}}bjjmm1!!Q''

Ngkk!k&B&BBJq!8$$$$$rx   c                 N   t          j        g dg dg dg          }d}d}d}t          j        ||d          }t          j        ||d	          }| | d
z  | d
z  dgd|| d
z  |g|| d
z  || gg}g d| | | dgg dg}	t	          ||           t	          ||	           d S Nr   r   r   r   )r   r   r   rD  )rD  r   rD  r   .!	?3Ey?;f?r   rU   r   r1   r   r  r  r   r   gLXz?)r   r  r   r  )r   r   rh   r  r/   
rm   rn   ro   t1t2t3z0r  z0_expectedz1_expecteds
             rv   test_zmap_axiszTestZmapZscore.test_zmap_axis_  s   H*********, - - Z11%%%Z11%%%bSURCE3/R"Q+RCE2s+- .--bS2#w/---/ 	K(((K(((((rx   c                 <   |                     g dg dg          }t          j        ||dd          }|                     g d          dz  }|                     g d          dz  }t          |d	d d f         |           t          |dd d f         |           d S 
Nr  )r   r   rD  r  r   )rV   r  )      r  r:   r:   g3Ey?)      r  r:   r;   g4?r   )re   rh   r  r/   rm   rn   ro   r  r  r  s         rv   test_zmap_ddofzTestZmapZscore.test_zmap_ddofv  s    JJ,,,,,,. / / Jq!!!,,,jj!7!7!788*Ejj!7!7!788D!QQQ$---!QQQ$-----rx   r  r   r1   c                 H   |                     dddt          j        g          }|                     dddddt          j        g          }t          j        |||d          }t          j        |||                    |                    |	          }t          ||           d S )
Nrb   ra   r1   r6   r]   r   r  r   r  )re   r   rl   rh   r  r  r/   )rm   r  rn   scorescomparer  r  s          rv   test_zmap_nan_policy_omitz(TestZmapZscore.test_zmap_nan_policy_omit  s     RQ/00**b"aB788JvwTfEEEj"((7*;*;);!<4HHH3rx   c           
         |                     |                    dd          d          }|                     |                    ddd          d          }|j        |d<   |j        |d<   |j        |d	<   t	          j        ||d
d|          }t	          j        |dd d f         |dd d f         |                    |dd d f                             |          }t	          j        |dd d f         |dd d f         |                    |dd d f                             |          }|                    ||f          }t          ||           d S )N      r   r1   ra   r  r5      )r   r3   r   r  r   r   )r   rV   r  r   r  )	rj   r   r  rl   rh   r  r  stackr/   )	rm   r  rn   r  r  r  r7  r  r  s	            rv   #test_zmap_nan_policy_omit_with_axisz2TestZmapZscore.test_zmap_nan_policy_omit_with_axis  sV   BIIdC00'::**R[[Q33W==Jvw6MMMz&AAA,111rxx1117N7N6N(O#% % %z&AAA,111rxx1117N7N6N(O#% % %88T4L))8$$$$$rx   c                 
   |                     g d          }|                     ddddd|j        g          }t          j        t          d          5  t          j        ||d	
           d d d            d S # 1 swxY w Y   d S )Nrm  r  rb   r1   r6   r]   zinput contains nanr   r   r   )re   rl   r,  r   r   rh   r  )rm   rn   r  r  s       rv   test_zmap_nan_policy_raisez)TestZmapZscore.test_zmap_nan_policy_raise  s    III&&**b"aB788]:-ABBB 	< 	<Jvw7;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   A88A<?A<c                     t          j        |                    g d                    }g d}t          ||                    |                     d S )NrW  )gOT\wg%ܿg%?gOT\w?)rh   zscorere   r/   )rm   rn   rp   desireds       rv   test_zscorezTestZmapZscore.test_zscore  sV     LLLL11226 6 62::g../////rx   c                    |                     g dg dg dg          }d}d}d}t          j        |d          }t          j        |d	          }| | d
z  | d
z  dgd|| d
z  |g|| d
z  || gg}g d| | | dgg dg}	t          ||                     |                     t          ||                     |	                     d S r  re   rh   r  r/   r  s
             rv   test_zscore_axiszTestZmapZscore.test_zscore_axis  s"   JJ,,,,,,,,,. / / \!!$$$\!!$$$bSURCE3/R"Q+RCE2s+- .--bS2#v.---/ 	BJJ{33444BJJ{3344444rx   c                 :   |                     g dg dg          }t          j        |dd          }|                     g d          dz  }|                     g d          dz  }t          |d	d d f         |           t          |dd d f         |           d S r  r  r  s         rv   test_zscore_ddofzTestZmapZscore.test_zscore_ddof  s    JJ,,,,,,. / / L+++jj!7!7!788*Ejj!7!7!788+F!QQQ$---!QQQ$-----rx   ry   rz   rE   c                     |                     ddt          j        ddg          }t          j        |d          }t          ||                    |j        |j                             d S )Nr   r1   r3   r4   r=  r   )re   r   rl   rh   r  r0   r   r  rm   rn   ro   r  s       rv   test_zscore_nan_propagatez(TestZmapZscore.test_zscore_nan_propagate  s\    JJ1bfa+,,L{33327717BF3344444rx   c                     |                     dd|j        ddg          }t          j        |d          }|                     dd|j        d	d
g          }t	          ||           d S )Nr   r1   r3   r4   r   r   gIHb=gIHb=gIHb=?gIHb=?)re   rl   rh   r  r/   )rm   rn   ro   r  r  s        rv   test_zscore_nan_omitz#TestZmapZscore.test_zscore_nan_omit  su    JJ1bfa+,,Lv...::22!v11	! " " 	8$$$$$rx   c                 J   |                     |j        dddddg          }t          |          }t          j        |dd          }|                    |                     |j        g          t          j        |dd          d	          g          }t          ||           d S )
Nr   r  rN   r   r   r   r   r  r  )re   rl   r)   rh   r  concatr/   )rm   rn   ro   r   r  r  s         rv   test_zscore_nan_omit_with_ddofz-TestZmapZscore.test_zscore_nan_omit_with_ddof  s    JJS#sC899!!$$Lv666>>2::rvh#7#7aeRS9T9T9T"UVV8$$$$$rx   c                     |                     dd|j        ddg          }t          j        t          d          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )	Nr   r1   r3   r4   zThe input contains nan...r   r   r   )re   rl   r,  r   r   rh   r  r  s      rv   test_zscore_nan_raisez$TestZmapZscore.test_zscore_nan_raise  s    JJ1bfa+,,]:-HIII 	0 	0Lw////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   AA#&A#c                 "   |                     dgdz            }t          j        t          d          5  t	          j        |          }d d d            n# 1 swxY w Y   t          ||                    |j        |j	                             d S )NgʡEr2   Precision loss occurred...r   )
re   r,  r-  r   rh   r  r0   r   r  rl   r  s       rv   test_zscore_constant_input_1dz,TestZmapZscore.test_zscore_constant_input_1d  s    JJx!|$$\.0LMMM 	  	 QA	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 27717BF3344444s   AAAc                    |                     g dg dg          }t          j        t          d          5  t	          j        |d          }d d d            n# 1 swxY w Y   t          ||                     |j        dddg|j        dddgg                     t          j        t          d          5  t	          j        |d	          }d d d            n# 1 swxY w Y   t          ||	                    |                     |j        |j        |j        |j        g          t	          j        |d	d d f                   g                     t	          j        |d           }t          ||
                    t	          j        |
                    |d
                    |j                             |                    d          }t          j        t          d          5  t	          j        |d           }d d d            n# 1 swxY w Y   t          ||                    |j        |                     |j                                       d S )Nr   r   r   r   r   r7  r\        *@r  r   r   rU   r  r   r   ra   )r2   r5   )re   r,  r-  r   rh   r  r/   rl   r0   r  rj   r  r  r   )rm   rn   ro   r  r  r  rp   s          rv   test_zscore_constant_input_2dz,TestZmapZscore.test_zscore_constant_input_2d  s   JJ0000002 3 3\.0LMMM 	) 	)aa(((B	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)BJJtT(B)+c3(?(A B B 	C 	C 	C \.0LMMM 	) 	)aa(((B	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)BHHbjj"&"&"&"&1Q&R&R&+l1QT7&;&;&= > > 	? 	? 	? L&&&2::el2::a3G3G&H&H!'RRSSSGGFOO\.0LMMM 	+ 	+QT***A	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+27717BJJrv,>,>??@@@@@s5   AA!A7CC!C&H		HHc                    |                     g dddd|j        gdd|j        dgg          }d}d}t          j        t          d          5  t          j        |d	d
          }d d d            n# 1 swxY w Y   t          ||                     |j        | d|j        g|j        d
d|j        g|j        ||j        |j        gg                     t          j        t          d          5  t          j        |d	d          }d d d            n# 1 swxY w Y   t          ||                     |j        |j        |j        |j        g| d
||j        g| dz  ||j        | dz  gg                     d S )Nr  r   r7  r\  r  r  r  r   r   r   r   rV   r  r   r   r1   )re   rl   r,  r-  r   rh   r  r/   )rm   rn   ro   r  s2r  r  s          rv   -test_zscore_constant_input_2d_nan_policy_omitz<TestZmapZscore.test_zscore_constant_input_2d_nan_policy_omit  s)   JJ000tT262tRVT24 5 5 \.0LMMM 	< 	<aF;;;B	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<BJJ!T26(B)+C(@)+BFBF(C(E F F 	G 	G 	G \.0LMMM 	< 	<aF;;;B	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<BJJ(H*+Q26(:*,QBFRCE(B(D E E 	F 	F 	F 	F 	Fs$   A00A47A4,DDDc           	      d   |                     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        gg dg                     d S )N)r   r   r\  r\  r   r   r  r  )re   r   rl   rh   r  r/   r  s       rv   test_zscore_2d_all_nan_rowz)TestZmapZscore.test_zscore_2d_all_nan_row  s    JJ80002 3 3LvA6662::'G'='='='? @ @ 	A 	A 	A 	A 	Arx   c                     |                     d|j                  }t          j        |dd           }t	          ||           d S )Nr  r   r  )r   rl   rh   r  r0   )rm   rn   rp   r  s       rv   test_zscore_2d_all_nanz%TestZmapZscore.test_zscore_2d_all_nan"  sE     GGFBF##LvD9991rx   ro   )r2   r   r4   c                 x    |                     |          }t          j        |          }t          ||           d S rA  )re   rh   r  r0   )rm   ro   rn   r  s       rv   test_zscore_empty_inputz&TestZmapZscore.test_zscore_empty_input)  s4    JJqMMLOO1rx   c           	         t          j        g d          }t          j        |                    |                    }t          j        |t          j        |          z            t          j        t          j        |d                    z  }t          ||                    ||                    d          j                             d S )NrW  r   r  r   r5  )	r   re   rh   gzscoreloggmeangstdr/   r3  )rm   rn   ro   r  r  s        rv   test_gzscore_normal_arrayz(TestZmapZscore.test_gzscore_normal_array/  s    J|||$$M"**Q--((&U[^^+,,rvej6K6K6K/L/LL2::gRZZ^^5I:JJKKKKKrx   c                    t          j        g d          }g d}t           j                            ||          }t	          j        |          }ddt           j        ddg}t           j                            ||          }t          |                                |                                           t          |j	        |j	                   t          |t           j        j                  sJ d S )N)r   r1   ra   r2   r3   )r   r   r   r   r   maskg0jg`ȿg/A?g(/?)r   r   r  masked_arrayrh   r  r  r   
compressedr  r  MaskedArray)rm   rn   ro   r  mxr  r  s          rv   test_gzscore_masked_arrayz(TestZmapZscore.test_gzscore_masked_array5  s    H%%%&&U--M"#_bfn"$%$$W4$88(:(:(<(<===---!RU.///////rx   c                    t           j                            d          }|                    d          }t          j        |          }t           j                            ||          }d|j        d<   t          j	        |dd                    }t          j
        t          j        |                    rJ t          j	        |          }t          |dd          |           t          j	        |d           }t          |dd          |           |d         |dd <   t          j        t          d          5  t          j	        |          }d d d            n# 1 swxY w Y   t!          |dd          t           j                   t          j        t          d          5  t          j	        |d           }d d d            n# 1 swxY w Y   t!          |dd          t           j                   d S )	Ni_ r[   Tr   r   rU   r  r   )r   r  r  standard_normal
zeros_liker  r  r  rh   r  r  r  r   r,  r-  r   r   rl   )rm   rn   r  ro   r  rp   r  r   s           rv   $test_zscore_masked_element_0_gh19039z3TestZmapZscore.test_zscore_masked_element_0_gh19039B  s%    i##G,,##}QEq$''q	l1QRR5!!6"(3--(((((l1ooABB%%%l14(((ABB%%%!!""\.0LMMM 	" 	",q//C	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"SWbf%%%\.0LMMM 	- 	-,qt,,,C	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-SWbf%%%%%s$   9EE!E"GG	G	c                 Z   |                     d          }|                    d          }|                    |j         |j        |j        g          }t          j        t          d          5  t          j	        ||          }d d d            n# 1 swxY w Y   t          ||           d S )Nr2   r  r   )r   r  re   r  rl   r,  r-  r   rh   r  r0   )rm   rn   r  r  r  r   s         rv   test_degenerate_inputz$TestZmapZscore.test_degenerate_inputZ  s    1''!**jj26'2626233\.0LMMM 	. 	.*VW--C	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.S!!!!!s   .BBBrG   needs array-api#850c                     t          j        |                    g d          |                    g d                    }|                    g d          }t          ||           d S )NrW  )r                 ?ra   ro  )y      ?        y       @        y      @        y      @        )rh   r  re   r/   )rm   rn   r   r  s       rv   test_complex_gh22404z#TestZmapZscore.test_complex_gh22404b  sd    jLLL112::>N>N>N3O3OPPjj999::S!!!!!rx   N)#r   r   r   r,  r  r  r  r  r  r  r  r  r  r  r  rH   r  r  r  r  r  r  r  r  r  r   r   r  r  r  r(   r  r  r  r  r   rx   rv   r  r  L  s       
 [


,,,	-
,,,,,	-	/ 
% % 
%) ) ).
. 
. 
. [VaV,,    -,  [VaV,,% % -,%< < <0 0 05 5 5.
. 
. 
. f%56665 5 765
% % %% % %0 0 0
 f%56665 5 765A A A*F F F&A A A f%5666  76 [S828B<<)1D1D"EFF  GF
L L L 
0 
0 
0 & & &." " " [!!"4=R!SS" " TS" " "rx   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<@)r   r   rl   dat_nandatr#  s    rv   setup_classz"TestMedianAbsDeviation.setup_classj  s{    xtS#sCc!%tT4c3!$c3S$bf!N O O 8 ? ? ? @ @rx   c                    t          t          j        | j        d           d           | j                            dd          }t          j        |d          }t          j        g d          }t          ||           d S )NrU   gQ?r5   r3   r   )gףp=
?r:   ?r  )r   rh   median_abs_deviationr  rj   r   re   r   )rm   r  madmad_expecteds       rv   test_median_abs_deviationz0TestMedianAbsDeviation.test_median_abs_deviationr  s    E6txdKKK!	# 	# 	#hq!$$(1555z"9"9"9::!#|44444rx   c                 \    t          j        | j        d          }t          |d           d S )Nr   r   g(\?)rh   r  r  r   )rm   r  s     rv   test_mad_nan_omitz(TestMedianAbsDeviation.test_mad_nan_omitz  s/    (&IIIC&&&&&rx   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   rD  r  r   )r   r   rN   r   r   r   rU   r   r   rl   rh   r  r   )rm   ro   r  s      rv   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2rx   c           	          t          j        dddddt           j        t           j        g          }t	          j        |d          }t          |d           d S )	Nr   r2   r3   r5   rD  r   r   r  )r   r   rl   r  rh   r  r   )rm   r  r  s      rv   test_nan_policy_omit_with_infz4TestMedianAbsDeviation.test_nan_policy_omit_with_inf  sO    HaAq"bfbf566(v>>>S#rx   rV   )r   r   r1   Nc                     t          j        d          }t          j        ||          }t	          |t          j        |                    |          t           j                             d S )N)r2   r   r3   rU   
fill_value)r   r  rh   r  r   	full_liker  rl   )rm   rV   ro   r  s       rv   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Lrx   znan_policy, expectedr   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   r4   r2   r5   )r4   r5   r6   r8   r8   r[   r  r  )rm   r   r  ro   r  s        rv   test_nan_policy_with_axisz0TestMedianAbsDeviation.test_nan_policy_with_axis  s     HrvrvrvrvrvrvF!Q26262)))+ , , (zJJJS(#####rx   zaxis, expectedr   )r<   rD  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   r1   r3   r8   )r   r   r   r   r]   )r+  r+  r  r  r   )centerr   rV   r  r  )r   r   rl   rh   r  rk   r   )rm   rV   r  ro   r  s        rv   test_center_mean_with_nanz0TestMedianAbsDeviation.test_center_mean_with_nan  s|     Hq!Q26*&&&---/ 0 0 (27v.24 4 4XE>>>>>>rx   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   r1   r2   r4   rD  r,  )r,  r   r|  rh   r  r#  s    rv   test_center_not_callablez/TestMedianAbsDeviation.test_center_not_callable  s    ]9J777 	@ 	@&|||B????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AA	AN)r   r   r   r  r  r  r   r"  r,  r  r  r'  r   r   rl   r)  r-  r1  r   rx   rv   r	  r	  i  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?@ @ @ @ @rx   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   ri  r   category)	warn_listexpected_typeexpected_lenwarn_s       rv   _check_warningsr8    sN     Y/CDDD 1 1-/00001 1rx   c                       e Zd Zd Zd Zej                            dg  ej	        d          g          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 )Nr7   r:   r  )r   r   r  r  r   rh   iqrr.  s     rv   r#  zTestIQR.test_basic  sH    IaLL3
	!UYq\\4(((((rx   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[   Z   )r  r  r   )r  r  r;   r=  )r~  r~  r  r   lineargٿr   r  T)r   r  rh   r<  )rm   r  s     rv   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Arx   ro   r   c                     t          j        t          t                    5  t	          t          j        |          t          j                   d d d            d S # 1 swxY w Y   d S rI  )	r,  r-  r   r   r   rh   r<  r   rl   r.  s     rv   rE  zTestIQR.test_empty  s    \,4IJJJ 	/ 	/1rv...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   -AA"A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)r6   r3   r   r   rU   r3   r   r6   r?  interpolationmidpointnearestr  r-  r3   r4   r5   r5   )r4   r5   )r3   r5   r1   )r3   r4   r<   r  r   r1   r4   r  r   r1   )	r   r  r   rh   r<  r	   r  r   r   r*  s      rv   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Erx   c                    t          j        d          dz   }t          t          j        |d                   d           t          t          j        |          d           t          t          j        |d          dg           d S )Nr   r   r   r   Tru  )r   r   r   rh   r<  r	   r.  s     rv   test_scalarlikezTestIQR.test_scalarlike  so    IaLL3UYqt__c***UYq\\3'''59Q666>>>>>rx   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 )Nr  r  r   r   rU   r4   rN   r   r2   rD  r  r<  )r   r   rj   r   rh   r<  r	   r   r.  s     rv   test_2DzTestIQR.test_2D  s    IbMM!!&))UYq\\3'''59QQ///B@@@59QQ///B@@@59QV444c:::59QV444c:::::rx   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          t          j        |d           t          t          t          j        |d           d S )N)G   rP  r  r[   r  rU   ra   r   r  r   rH  r[  r   i  r2   r4   r6   r\   r   r   r2   )r2   r   r\  r1   )r2   r   r1   r2   r1   )r   r  )r   r2   r1   r1   r3   r  )r   r  r  dstackrh   r<  r   moveaxisswapaxesr   r  rj   r  r   r&   r   )rm   oro   qr  s        rv   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 	iAA6666j%)QV<<<<<<rx   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 )Nr4   r1   )r  g     U@r  r<   )g      )@r  )r[   r~  g?)r   rA  r  )r   r~  <   )
r   r   r   rh   r<  r   r   r   rl   r|  r.  s     rv   test_rngzTestIQR.test_rng  s    IaLLUYq\\1%%%UYqj1113777UYqj1113777EIaX666<<<j%)QH====j%)QRVRLAAAAiA;??????rx   c                    t          j        d          }t          j        d          }t          t          j        |          d           t          t          j        |          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |dd	          d
           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |dd	          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |dd	          d           t          t          j        |d          d           dD ]}t          j        ||           t          t          t          j        |d           d S )Nr4   r3   r1   r;   r?  rC  r-  )r  P   )r  rD  r2   r  rF  r   rE  r<   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedr   )r   r   r   rh   r<  r   r   )rm   ro   rp   rr  s       rv   test_interpolationzTestIQR.test_interpolation#  s/   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???* 	/ 	/F Iav.....j%)QhGGGGGGrx   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 )NrR  FrT  r   r1   )r2   r4   r\   r  )r6   r\   )r   r2   )r4   r6   )r   r2  r   r   r1   r2   ru  rS  r~   Tr  )r2   r4   r   r\   )r   r   r6   r\   )r   r4   r6   r   )r2   r   r6   r\   )r   r   r6   r   )r   r  r   rh   r<  r  r.  s     rv   rv  zTestIQR.test_keepdimsE  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Urx   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   r6   r   r   rI  Tr   alwaysr   r>  r4   r   r1   rA   )r1   r<   r1   barfood)r   r   rj   r   rh   r<  rl   warningscatch_warningssimplefilterr   r   r   r.  s     rv   test_nanpolicyzTestIQR.test_nanpolicyX  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 	) 	)!(+++1===! ! !11EEEQ1-/ / /11EEERVQ) ) )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) $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           	      d   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           d S )Nrl  r  r   r  r6   r  g=V^w@rD  r=   rI  Trm  rn  r=  )r  r   r   )rV   r  r   r1   gF7k?r   rA   g	I1=@g      @r   )r   r   rj   r   rh   r<  r   rl   rp  rq  rr  r   r   r   r.  s     rv   
test_scalezTestIQR.test_scalex  s   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??????s   8EHHHN)r   r   r   r#  r@  r,  r  r  r   r   rE  rJ  rL  rN  r?  r]  rh  rv  rs  rv  r   rx   rv   r:  r:    s       ) ) )

B 
B 
B [S2yry||"455/ / 65/F F F,? ? ?; ; ;'= '= '=R	@ 	@ 	@ H  H  HDV V V&F F F@!@ !@ !@ !@ !@rx   r:  c            	          e Zd ZdZg dZdZej                            d           ej        	                    d          Z
ddddZeej                            d	d
dg          ej                            d edd                    d                                     Zeej                            d	d
dg          ej                            dd          d                                     Zed             Zd Z edd          ej                            d          eej                            dg d          ej                            dddg          d                                                             Z edd          ej                            d          ed                                      Zed!             Zed"             Zd# Zeej                            d$g d          ej                            d%g d&          ej                            d'dd(g          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  N)r  r3  c                    t          j        |          }|t          j        ||          }t          ||           ||j        }|j        |k    sJ d S rA  )r   re   broadcast_tor	   r3  )rm   r  expectr  r3  s        rv   _assert_equalzTestMoments._assert_equal  s]    F##_VU33F66***=LE|u$$$$$$rx   r  r[   )r[   r1   zm, crj  )Nr   r   c                 t   t           j                            d          }|                    |                    |                    }t	          j        |||          }||                    |d          n|}|                    ||z
  |z  d          |j        d         z  }t          ||d           d S )Nl   rHZ r  r0  r   rU   缉ؗҜ<r  )
r   r  r  re   rh   momentrk   r  r  r/   )	rm   r  rF  r  rn   r  ro   r   r  s	            rv    test_moment_center_scalar_momentz,TestMoments.test_moment_center_scalar_moment  s     i##$788JJszztz,,--l1a***"#)BGGAAGffa!eaZaf((3Su------rx   r  c                 V  	 t           j                            d          }|                    |                    |                    g d}t	          j        |          }t                    		                    	fd|D                       }t          ||           d S )Nl   %~.}~= r  rj  r0  c                 X    g | ]&}t          j        |           j        df         'S )r0  .)rh   r  newaxis)rB  r  r  ro   r   s     rv   rD  z?TestMoments.test_moment_center_array_moment.<locals>.<listcomp>  sF     * * *"# $l1a:::7?C;OP * * *rx   )	r   r  r  re   rh   r  r)   r  r0   )
rm   r  r  rn   r  rF  r   r  ro   r   s
     `     @@rv   test_moment_center_array_momentz+TestMoments.test_moment_center_array_moment  s     i##$788JJszztz,,--LLl1a***!!$$nn * * * * * *'(* * * + +S!!!!!rx   c                                         | j                  }t          j                             | j                            }t          |                     d                     t          j        |d          }t          |                     d                     t          j        |d          }t          |                     d                     t          j        |d          }t          |                     d                     t          j        |d          }t          |                     d                     t          j        |d          }t          |                     d	                     t          j        |g d
          }t          |                     g d                     t          j        |d          }t          |                     d                     d}t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        |g d          }t          |                     g d                     fd}t                    r@t          j
        t          d          5   |             d d d            d S # 1 swxY w Y   d S t          j                                        5 }|                    t           d           |                    t           d            |             d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r1         ?r2   r3        @rW  )r   r  r   r  z)All elements of `order` must be integral.r   333333?)r   r1   r2   r   c                  >   t          j                            g                     } t          |                     j                             t          j                            g j                            } t          |                     j        j                             t          j                            d          d          } t          |                     d                     t          j                            g g          d          } t          |                     j        g                     t          j                            g g          ddgd          } t          |                     d                     d S )	Nr5  r<  r   rU   rQ  r   orderrV   )r1   r   )rh   r  re   r0   rl   r   r  r  )rp   rn   s    rv   
test_casesz+TestMoments.test_moment.<locals>.test_cases  sE   RZZ^^,,AArzz"&11222RZZ"*Z==>>AArzz"&
zCCDDDRXXf--A666AArxx~~...RZZ--A666AArzz26(33444RZZ--aV!DDDAArxx//00000rx   zSee documentation for...zMean of empty slice.zinvalid value)re   r  rh   r  r  r/   r,  r   r   r+   r-  r   r   r  r   r   r   )rm   rn   r  rp   rt  r  r   s    `     rv   test_momentzTestMoments.test_moment  s    ::dm,,LD$899::2::c??+++L1%%2::c??+++L1%%2::c??+++L1%%2::d++,,,L1%%2::c??+++L1%%2::f--... L<<<002::&:&:&:;;<<< L3''2::c??+++=]:W555 	( 	(L3'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(L#3#3#3442::&:&:&:;;<<<
	1 
	1 
	1 
	1 
	1 B<< 	08RSSS  
                  --// 3

>+ABBB

>?;;;
                 s7   H66H:=H:,KKK/AL==MMc                 v   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   r8   r1   r   r   r   r   r   )	r   r   rl   r   rh   r  r   r   r   r.  s     rv   r1  zTestMoments.test_nan_policy  s    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Grx   ry   rz   rE   rH   r3  )r   r   
complex128zexpect, orderr  r<  c                 :   |dk    r"t          |          rt          j                     t          ||          }|                    t
          j                            d          |          }t          j	        ||          }t          ||                    ||                     t          j	        |                    |d          d|          }t          ||                    d||                     t          j	        |                    |d	          d
|          }t          ||                    d||                     t          j	        |                    |d	          d |          }t          ||                    d||                     d S )Nr  r4   r5  r  )r5   r4   r   )rV   r  )r4   r  r1   )r   r1   r3   r4   r   )r,   r,  skipr6  re   r   r  r3  rh   r  r0   r{  r   )rm   r3  r|  r  rn   ro   rp   s          rv   test_constant_momentsz!TestMoments.test_constant_moments
  sq    ,8B<<KMMME""JJry~~a((J66L%(((2::fE:::;;;LF33!5III2774u7==>>>LO<<1$& & &277<u7EEFFFLO<<4$& & &2772vU7;;<<<<<rx   rC   r  c                    |                     |                    d          d          }t          j        |d<   t	          j        |dd          }t          ||                    dt          j        g          d	           d S )
Nr   r  r<  r1   r   rU   r  r  r  )rj   r   r   rl   rh   r  r/   re   )rm   rn   r  mms       rv   test_moment_propagate_nanz%TestMoments.test_moment_propagate_nan"  so     JJryy}}g..&$\!QQ'''BJJbf~66UCCCCCCrx   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 )Nz1`order` must be a scalar or a non-empty 1D array.r   rW  r  )r,  r   r   rh   r  re   rm   rn   s     rv   test_moment_empty_orderz#TestMoments.test_moment_empty_order.  s     ]: .E F F F 	= 	=LLLL11<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   ,AAAc                     |                     d          }t          j        |d          }t          j        |d          }t          ||           d S )Nr[   r2   )r  r  )r   rh   r  r0   )rm   rn   ro   r   r  s        rv   test_rename_moment_orderz$TestMoments.test_rename_moment_order5  sQ     IIbMMl1Q'''l1A&&&S!!!!!rx   c                     | j         t          j        | j                   z
  }t          t          j        |d                                          t          j        | j         d                     d S )Nr  )testcase_moment_accuracyr   rk   r   r   rh   r  )rm   
tc_no_means     rv   test_moment_accuracyz TestMoments.test_moment_accuracy>  sn     3 =>>?
R005577T%BBGG	I 	I 	I 	I 	Irx   r  rV   r  r,  r   c                 2   t           j                            d          }|                    d          }t          j        |                    |          |||          }|                    t          ||||                    }t          ||           d S )Nl   hU~)r4   r5   r6   r  )rV   r,  )rk   )r   r  r  rh   r  re   r!   r/   )	rm   rn   r  rV   r,  r  ro   r   r  s	            rv   test_moment_array_apiz!TestMoments.test_moment_array_apiF  s    
 i##N33JJIJ&&l2::a==%d6JJJjjE4f===>>S!!!!!rx   )r   r   r   r   r  r  r   r  r(  r3  r  r}  r'   r,  r  r  r   r  r  r  r1  rH   usefixturesr  r  r  r  r  r  r   rx   rv   rx  rx    s/          HOINN4!y~~b1159 % % % % % [Vb']33[VWW\<%H%HII. . JI 43 . [Vb']33[S,//" " 0/ 43 " 3 3 3jH H H f%5666[/00[W&J&J&JKK[_vv.>??= = @? LK  10 76
=& kHJ J J[/00D D  10J JD = = = " " "I I I [Wlll33[VZZZ00[Xay11" " 21 10 43 " " "rx   rx  c                   "    e Zd ZdZg dZg dZdS )SkewKurtosisTestr   r  )gp=
ף?g?߾?gD9?gQI?g}?5^IN)r   r   r   r  r  testmathworksr   rx   rv   r  r  R  s)        OH<<<MMMrx   r  c            	          e Zd Zeej                            dej        ej	        g          d                         Z
 edd          ej                            d          ed                                     Zd Zd	 Z edd          ej                            d          ed
                                     Zed             Z edd          ej                            d          ed                                     Z edd          ej                            d          eej                            dg d          ej                            dddg          d                                                             ZdS )TestSkewstat_func                    |                     g           }t          |          rDt          j        t          t
                    5   ||          }d d d            n# 1 swxY w Y   nwt          j                                        5 }|	                    t          d           |	                    t          d            ||          }d d d            n# 1 swxY w Y   t          ||                     |j                             d S )Nr   Mean of empty slicezinvalid value encountered)re   r+   r,  r-  r   r   r   r  r   r   r   r0   rl   )rm   r  rn   ro   r   r   s         rv   test_empty_1dzTestSkew.test_empty_1dY  s`    JJrNNB<< 	"08MNNN " "hqkk" " " " " " " " " " " " " " " --// "3

>+@AAA

>+FGGGhqkk	" " " " " " " " " " " " " " "
 	RZZ//00000s%   AA!$A!ACCCrC   r  rE   rH   c                    t          j        |                    | j                            }t	          ||                    |j                             t          j        |                    | j                            }t	          ||                    d          d           t          j        |                    | j                  d          }t	          ||                    d          d           t          j        |                    | j                            }t	          ||                    d          d           d S )Ng7l*ҿ绽|=r  r   biasg2۠ۿr   )rh   skewre   r  r/   rl   r  r  )rm   rn   rp   s      rv   test_skewnesszTestSkew.test_skewnessh  s	    Jrzz$"677882::bf--... Jrzz$"455662::&788uEEEEJrzz$"455A>>>2::&899FFFFJrzz$-00112::c??777777rx   c                    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 )
Nr   r8   r  r  r   r   r   r   r   )	r   r   rl   r  r   rh   r  r   r   r.  s     rv   r1  zTestSkew.test_nan_policyy  s    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   -A22A69A6c                 d    t          t          j        t          d                    d           d S )Nr[   r   )r   rh   r  r   r#  s    rv   test_skewness_scalarzTestSkew.test_skewness_scalar  s(    UZr

++S11111rx   c                 J   |                     d          }|                    |d          }|j        |d<   t          j        d          5  t          j        |d          }d d d            n# 1 swxY w Y   t          ||                    d|j        g                     d S )	Nr   r  r<  r  r  r   rU   r   )	r   rj   rl   r   r  rh   r  r0   re   )rm   rn   r  r  s       rv   test_skew_propagate_nanz TestSkew.test_skew_propagate_nan  s     IIbMMJJq'""&$[*** 	& 	&
11%%%A	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&2::q"&k2233333s   A..A25A2c                    t          j        t          d          5  |                    dgdz            }t	          t          j        |          |                    |j                             t	          t          j        |dz            |                    |j                             t	          t          j        |dz            |                    |j                             t	          t          j        |d          |                    |j                             |                    dgd	z            }t	          t          j        |          |                    |j                             d
|                    dd          dz  z   }t	          t          j        |          |                    |j                             d d d            d S # 1 swxY w Y   d S )NPrecision loss occurredr   9ѿr[   g      CFr  g,@r6   r         r3   r  )	r,  r-  r   re   r0   rh   r  rl   r   rm   rn   r  s      rv   test_skew_constant_valuez!TestSkew.test_skew_constant_value  s    \.0IJJJ 	? 	?

K=+,,AEJqMM2::bf+=+=>>>EJqx00"**RV2D2DEEEEJqx00"**RV2D2DEEEEJqu555rzz"&7I7IJJJ 

D6!8$$AEJqMM2::bf+=+=>>>RYYsA&&u,,AEJqMM2::bf+=+=>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   F3GG #G c                 8   t          j        t          d          5  t          j                            d          }|                    |                    d                    }d|d d df<   t          j        |           d d d            d S # 1 swxY w Y   d S )Nr  r   l   :"z` )r~  r[   r  )\(?r   )	r,  r-  r   r   r  r  re   rh   r  )rm   rn   r  r  s       rv   test_precision_loss_gh15554z$TestSkew.test_precision_loss_gh15554  s     \.0IJJJ 	 	)''44C

3::9:5566AAaaadGJqMMM		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A&BBBrV   ra   r   r1   Nr  FTc                 
   t           j                            d          }                    |                    d                    }fd}t	          j        |||          } ||||          }t          ||           d S )N   f#"rl  c                 H   |	                     | d          } d}t          |           }|                    | |d          }|                    | |z
  dz  |          }|                    | |          }||dz  z  }|s!| j        |         }||dz
  |z  dz  |d	z
  z  z  }|S )
Nr  r   TrT  r2   rU   r   r:   rD  )rj   r)   rk   r   r  )
r  rV   r  r   rk   mu3r   r   rG  rn   s
            rv   skewnessz-TestSkew.test_vectorization.<locals>.skewness  s    |JJq%((%a((G<<t<<<D,,D1}4,88C++ad+++Cq.C :GDMSA#-S99Jrx   )rV   r  )r   r  r  re   rh   r  r/   )	rm   rn   rV   r  r  ro   r  r   r  s	    `       rv   test_vectorizationzTestSkew.test_vectorization  s     i##M22JJszz),,--	 	 	 	 	 jD111hqt$///S!!!!!rx   N)r   r   r   r'   r,  r  r  rh   r  kurtosisr  rH   r  r  r1  r  r  r  r  r  r   rx   rv   r  r  X  s[       [Z%*en)EFF1 1 GF 1 kHJ J J[/008 8  10J J8F F F2 2 2 kHJ J J[/004 4  10J J4 ? ? ? kHJ J J[/00   10J J kHJ J J[/00[V%5%5%566[VeT]33" " 43 76  10J J" " "rx   r  c            
           e Zd Z edd          ej                            d          ed                                     Zd Z	d Z
d Zed	             Z edd          ej                            d          eej                            d
g d          ej                            dddg          ej                            dddg          d                                                                         ZdS )TestKurtosisrC   r  rE   rH   c                 |   t          j        |                    | j                            }|                    |          sJ t          j        |                    | j                  ddd          }t          ||                    d                     t          j        |                    | j                  dd          }t          ||                    d                     t          j        |                    | j                  dd          }t          ||                    d                     |                    d          }|	                    |dk    |                    |j
                  |          }t          t          j        |          |                    |j
                             d S )	Nr   r   fisherr  gO߻S@gx|N@g=
ףp=?r   r7   )rh   r  re   r  r  r  r/   r  r   r  rl   r0   )rm   rn   rp   ro   s       rv   test_kurtosiszTestKurtosis.test_kurtosis  sb    N2::d&:;;<<xx{{ N2::d&8991QQOOO2::o66777 N2::d&899!!LLL2::&788999N2::dm44a;;2::d++,,,IIcNNHHQ!VRZZ//33q))2::bf+=+=>>>>>rx   c                    t          j        d          }t           j        |d<   t          t	          j        |d          d           t          t          t          j        |d           t          t          t          j        |d           d S )Nr   r8   r   r   Gzr   r   )r   r   rl   r   rh   r  r   r   r.  s     rv   test_kurtosis_nan_policyz%TestKurtosis.test_kurtosis_nan_policy  sq    IcNNv!EN1@@@)LLLj%.!HHHHj%.!IIIIIIrx   c                 |    t          t          t          j        g d                    t          j                   d S )Nrm  )r   typerh   r  r   r   r#  s    rv   test_kurtosis_array_scalarz'TestKurtosis.test_kurtosis_array_scalar   s0    T%.3344bjAAAAArx   c                 .   t          j        d                              dd                              t                    }t           j        |d<   t          j        |dd          }t           j        	                    |dt           j        gd	
           d S )Nr7   r1   ra   r<  r   r=  r>  g(\r  r  )
r   r   rj   r  r  rl   rh   r  r  r   )rm   r  r5  s      rv   test_kurtosis_propagate_nanz(TestKurtosis.test_kurtosis_propagate_nan  sy     IaLL  B''..u55&$N11===

""1ubfoE"BBBBBrx   c           	      <   |                     dgdz            }t          j        t          d          5  |                    t          j        |d                    sJ |                    t          j        |t          d          z  d                    sJ |                    t          j        |t          d          z  d                    sJ |                    t          j        |dd                    sJ 	 d d d            d S # 1 swxY w Y   d S )	Nr  r[   r  r   F)r  l           r  )re   r,  r-  r   r  rh   r  r  r  s      rv   test_kurtosis_constant_valuez)TestKurtosis.test_kurtosis_constant_value  sa    JJ}R'((\.0IJJJ 	I 	I88EN1U;;;<<<<<88EN1uU||+;EJJJKKKKK88EN1uU||+;EJJJKKKKK88EN1U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rV   r  r  FTr  c                    t           j                            d          }                    |                    d                    }fd}t	          j        ||||          } |||||          }	t          ||	           d S )Nr  rG  c                    |
                     | d          } d}t          |           }|                    | |d          }|                    | |z
  dz  |          }|                    | |d          }|r||dz  z  d	z
  }n6| j        |         }	|	d
z
  |	dz
  |	d	z
  z  z  |	d
z   |z  |dz  z  d	|	d
z
  z  z
  z  }|r|n|d	z   S )Nr  r   TrT  r3   rU   rV   r}   r1   r2   r   )rj   r)   rk   r   r  )r  rV   r  r  r   rk   mu4mu2r   rG  rn   s             rv   r  z1TestKurtosis.test_vectorization.<locals>.kurtosis$  s    |JJq%((%a((G<<t<<<D,,D1}4,88C++adq+99C QCFlQ&GDMs!!}-!a%3sAv1E1Q31OP !-33cAg-rx   )rV   r  r  )r   r  r  re   rh   r  r/   )
rm   rn   rV   r  r  r  ro   r  r   r  s
    `        rv   r  zTestKurtosis.test_vectorization  s     i##M22JJszz),,--	. 	. 	. 	. 	.( nQTVDDDhqt$v>>>S!!!!!rx   N)r   r   r   rH   r,  r  r  r'   r  r  r  r  r  r  r  r   rx   rv   r  r    s       kHJ J J[/00? ?  10J J?>J J JB B BC C C I I I kHJ J J[/00[V%5%5%566[VeT]33[Xt}55" " 65 43 76  10J J" " "rx   r  c                 &   t          dd          }t          j        dd          } | t          j        t          j        ||                    }g }t          j                    5  t          j        d           t          t          |j                            D ]}t          j        t                    5  t          j        |d|          }t	          j        |d	k              r;t	          j        t	          j        |                    r|                    |           d d d            n# 1 swxY w Y   	 d d d            n# 1 swxY w Y   t)          j        |            | t(          j                            |                    }||fS )
NF)	allow_nanallow_infinityr   r1   )min_dimsmin_side)r3  elementsr  errorr  r   )dictnpstarray_shapesarraysr   r   rp  rq  rr  r  ri  r  
contextlibsuppress	Exceptionrh   r  r  r  r  
hypothesisassume
strategiessampled_from)drawr  r  rh  ok_axesrV   r   s          rv   ttest_data_axis_strategyr  =  s    eE:::Hq1555E 4"*xuMMMNND G 
	 	"	" ) )g&&&#dj//** 	) 	)D$Y// ) )l4qt<<<6#'?? )rvbk#.>.>'?'? )NN4((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	)) ) ) ) ) ) ) ) ) ) ) ) ) ) ) g 4
%227;;<<D:s8   'AE8A+D/#E/D33E6D37EEEUses NumPy for pvalue, CIr  rF   c                      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ed
z  Zded
z  z
  Zd Zd Zd Zej                            dg d          d             Zd Zej        j         ej        ej                            dd           e                      ej                            dddg          d                                     ZdS )TestStudentTestr  r   r   )r   r   rD  r   r   gMXzg4/?gMXzgFX5t?gMXz?r1   r   c                    t                      5 }t          j        dd          5  |                    t          d           t          |          s|                    d          n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          ||                    |j
                             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                             d S )Nr  r  divide!Degrees of freedom <= 0 for slicer   r  r   r
  r	  rn   r   rD  )r   r   r  r   r   r+   re   rh   ttest_1sampr0   rl   X1r/   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2)rm   rn   r   r  tr0  r   r  s           rv   test_onesamplezTestStudentTest.test_onesampler  s      	,CHX>>>	, 	,JJ~'JKKK&.rll:

2A$Q++DAq		, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,
 	2::bf--...2::bf--... DG!4!4b9912::di001112::di00111

47 3 3R88,
C3333 DG!4!4b9912::di001112::di00111 DG!4!4b9912::di001112::di00111 DG!4!4b9912::di001112::di0011111s5   B#AB B#B	B#B	B##B'*B'c                    t          |          sl|                    ddd|j        g          }d}t          j        t
          |          5  t          j        |dd           d d d            n# 1 swxY w Y   d S t          j        	                    dd	d
d          }t          j        |d<   t          j        d          5  t          t          j        |d          t          j        t          j        f           t          t          j        |dd          d           t          t          t          j        |dd           t          t          t          j        |dd           d d d            d S # 1 swxY w Y   d S )Nr   rD  r  %Use of `nan_policy` and `keepdims`...r   r   r   r4   r[   3   it r  r  r  r  r~  r  r  rN   )g̈́^Bg/kCm?r   r   )r+   re   rl   r,  r   NotImplementedErrorrh   r  r  r  r   r  r	   r   r   r   )rm   rn   ro   rt  s       rv   test_onesample_nan_policyz)TestStudentTest.test_onesample_nan_policy  s   || 	

BB/00A=G2'BBB < <!!RF;;;;< < < < < < < < < < < < < < <F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%-/ / / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s%   A//A36A3B%E55E9<E9c                    d}t          j        t          |          5  t          j        |                    | j                  dd           d d d            n# 1 swxY w Y   t          j        |                    | j                  dd          \  }}t          ||                    | j                             t          ||                    | j	                             t          j        |                    | j                  dd          \  }}t          ||                    | j
                             t          ||                    | j	                             d S )	N8`alternative` must be 'less', 'greater', or 'two-sided'.r   r   r  rX  r   rR  rT  )r,  r   r   rh   r  re   r  r/   P1_1_lr  P1_1_g)rm   rn   rt  r	  r0  s        rv   test_1samp_alternativez&TestStudentTest.test_1samp_alternative  sz   L]:W555 	L 	Lbjj1127KKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L  DG!4!4bfMMM12::dk223332::di00111 DG!4!4biPPP12::dk223332::di0011111s   0AA!ArY  r  c                    t           j                            d          }d}|                    |dd          }|                                }t	          |          r|j        n|j        }|                    ||          }|                    ||          }ddgd	t           j        gt           j         d
gd}t          j
        |||          }	|	                    d          }
t          |
j        |                    ||         d                              t          |
j        |                    ||         d                              t          |	j        |                    |dz
                       d S )Nl   <PleH r[   r;   r1   r  r  r  r5  gÍ]?g$(}w@gS1?g]@rP  rT  rR  )popmeanrY  333333?confidence_levelr   r   )r   r  r  r  r,   r   r   re   r  rh   r  rF  r/   rI  rJ  r0   df)rm   rn   rY  r  rG  ro   r  r3  r  r   rb  s              rv   test_1samp_ci_1dz TestStudentTest.test_1samp_ci_1d  sX    i##$788JJA3aJ00**,, 'rll:


JJqJ&&**WE*22/1CD-rv6!235 5 7LLL$$d$;;

3{+;A+> ? ?@@@C,<Q,?!@!@AAA

1Q300000rx   c                     t          j        |                    d          d          }d}t          j        t
          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r   4`confidence_level` must be a number between 0 and 1.r   r[   r  )rh   r  r   r,  r   r   rF  )rm   rn   r   rt  s       rv   test_1samp_ci_ivz TestStudentTest.test_1samp_ci_iv  s    		#33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.1A.r  g?)alpha	data_axisrR  rT  c                    |\  }}|                     |          }t          j        |d||          }|                    |          \  }}	|dk    r|n|	}
t	          |          }|                    |
|          }
t          j        ||
||          }t          |j                  }|                    |           |	                    |                     d|z
  |j
                  |          }t          |j        |           d S )Nr   r  r  rT  rU   r   r5  )re   rh   r  rF  r)   r  r  r  rn  r{  r   r/   r	  )rm   r"  r#  rY  rn   rh  rV   r   lrn  r  r   r  r  s                 rv   test_pvalue_cizTestStudentTest.test_pvalue_ci  s    
dzz$b,7dD D D&&&>>1"i//!!Q!!$$%%gD%99g;TRRRTZ  		$oobjj5
jCCUKK
C(((((rx   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  givenr  floatsr  r&  r   rx   rv   r  r  \  s_        
B	BDDDDDDDDAXF$(^F2 2 2@/ / /(2 2 2 [],L,L,LMM1 1 NM109 9 9 [ZJ188HH 8 8 : :< < <[]VY,?@@) ) A@< < ) ) )rx   r  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 rA  )rh   percentileofscore)rm   argskwargss      rv   fzTestPercentileOfScore.f  s    &7777rx   zkind, result))rW  r  )rk   #   strictr  )weakr  c                 Z    g d}t          |                     |d|          |           d S )N
r   r1   r2   r3   r4   r5   r6   r7   r8   r[   r3   kindr   r/  rm   r7  ra  r  s       rv   test_uniquez!TestPercentileOfScore.test_unique  s7    
 ,++TVVAqtV,,f55555rx   ))rW  r  )rk   r  r1  )r3  r~  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r1   r2   r3   r3   r4   r5   r6   r7   r8   r3   r6  r8  r9  s       rv   test_multiple2z$TestPercentileOfScore.test_multiple2  7    
 +**TVVAqtV,,f55555rx   ))rW  r~  )rk   r  r1  )r3  r\  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r1   r2   r3   r3   r3   r4   r5   r6   r7   r3   r6  r8  r9  s       rv   test_multiple3z$TestPercentileOfScore.test_multiple3  r=  rx   ))rW  r  )rk   r  r1  )r3  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r1   r2   r4   r5   r6   r7   r8   r[   r\   r3   r6  r8  r9  s       rv   test_missingz"TestPercentileOfScore.test_missing  s7    
 -,,TVVAqtV,,f55555rx   c                 Z    g d}t          |                     |d|          |           d S )N
r[   r  r  r  r~  r\  F   r_  r>  r~  r  r6  r8  r9  s       rv   r  z(TestPercentileOfScore.test_large_numbers  s7    
 655TVVArV--v66666rx   c                 Z    g d}t          |                     |d|          |           d S )N)
r[   r  r  r  r  r  r~  r\  rD  r_  r  r6  r8  r9  s       rv   test_large_numbers_multiple3z2TestPercentileOfScore.test_large_numbers_multiple3  s7    
 544TVVArV--v66666rx   c                 Z    g d}t          |                     |d|          |           d S )N
r[   r  r  r~  r\  rD  r_  r>  r~  n   r  r6  r8  r9  s       rv   test_large_numbers_missingz0TestPercentileOfScore.test_large_numbers_missing  s7    
 766TVVArV--v66666rx   rW  )r   r[   r~  r~  rk   )r   r4   _   r~  r2  )r   r   r>  r~  r3  c                 ^    g d}t          |                     |g d|          |           d S )NrH  )r   r[   rI  r  r6  r8  r9  s       rv   test_boundariesz%TestPercentileOfScore.test_boundaries&  s>    
 766TVVA000tV<<fEEEEErx   )r   r[   r~  )r   r4   rK  )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   r1   r2   r3   r4   r5   r6   r7   r8   r6  )r   r  r   r/  r9  s       rv   test_infzTestPercentileOfScore.test_inf.  sY    
 1aAq!Q0TVVARVG44V@@&IIIIIrx   r=  r   r[  r1   r~  r~  r   )r   r~  r~  r   zpolicy, a, score, resultc                 R    t          |                     |||          |           d S )Nr   r8  )rm   policyr  r>  ra  s        rv   test_nans_okz"TestPercentileOfScore.test_nans_ok>  s*    TVVAuV88&AAAAArx   r   r2   rm  r   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   r/  )rm   rQ  r  r>  rt  s        rv   test_nans_failz$TestPercentileOfScore.test_nans_failI  s    :W555 	0 	0FF1eF///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   =AAr  ))r5   r  r1   r   r2   )r1   r   r   r2   c                     t          j        g d          }|                    |          }|dz  }g d}t          |                     ||d          |           d S )N)r   r   r1   r2   r3   r4   r[   r5  rW  r6  )r   r   rj   r   r/  )rm   r  r  r  resultss        rv   test_ndzTestPercentileOfScore.test_ndN  sg     H'''((5!!)+++TVVAvFV33W=====rx   N)r   r   r   r/  r,  r  r  r:  r<  r?  rA  r  rF  rJ  rM  rO  r   rl   casesrR  rT  rX  r   rx   rv   r*  r*    s       8 8 8 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =7 7	= =7 [^ .< .< .< = =7 7	= =7 [^ .< .< .< = =7 7	= =7 [^v7H7H7H.I/5.G/7.I/57H7H7H.I.K L LF F	L LF [^v|||.D/5zzz.B/7.D/5|||.D.F G GJ J	G GJ 2q"&)BF8Q/BF8YYY0HIAq6Aq"&>BRV3DEq!RVniii>q!fq!RVnq"bfo>rvrv&			BFBFBF3KLNE [7??B B @?B 
1aBF#YYY	(	*	)))aArv.	(	*E [8%@@0 0 A@0 [W ' ' '  > > > > >rx   r*  Case)f_obsf_expr  rV   chi2r  mod_logcr)r3   r7   r]   r7   r3   r1   r:   r]   r;   r7   rD  r  gfx(@)r1   r   r]   r1   r  r   r         ?g{T4@)r2   r4   r6   r8   r   r   r   c                   N   e Zd Zd Zej                            de          ej                            dg d          d                         Zd Z	d Z
ej                            de          ej                            dg d          d	                         Zd
 Zd Zd ZdS )TestPowerDivergencec                    |                     d          j        }|                     ||          }||                     ||          n|}|t          |          }	n=t          |          }
||
                    ||          n|f}|d         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 )	Nr   r5  r   r  r[  r\  r  rV   lambda_r   pearson)r[  r\  r  rV   )re   r3  r-   r)   broadcast_arraysr  r   r   r   rh   power_divergencer/   	chisquarer   distributionsr]  sf)rm   r[  r\  r  rV   rf  expected_statrn   r3  num_obsr   r  r   statr0  
expected_ps                   rv   check_power_divergencez*TestPowerDivergence.check_power_divergence  s    

2$

5
..272C

5
...<ennGG%e,,G@E@Qg..ue<<<!8 Qiod+G   	NCJJ~'<===,&+5t%)7< < <GD! D"**]%*"H"HIII!||w)33/U/35 5 5abjjej&L&LMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N z$(-00181t1CE E
2::j:>>?????s   *B)EE#&E#caselambda_stat))Nr]  rg  r]  )r   r]  log-likelihoodr  mod-log-likelihoodr^  cressie-readr_  r  r_  c           	          |\  }}t          ||          }|                     |j        |j        |j        |j        |||           d S rA  )r6  rq  r[  r\  r  rV   rm   rr  rs  rn   rf  attrrm  s          rv   r#  zTestPowerDivergence.test_basic  sZ     $d++##DJ
DIty$+]B	@ 	@ 	@ 	@ 	@rx   c           	      L   t           d         }t           d         }t          j        |j        |j        f          }t          j        t          j        |j                  t          j        |j                  z  |j        f          }|                    |          }||                    |          n|}|                     ||ddd|j	        |j	        g|           |                     ||ddd|j
        |j
        g|           |                     ||ddd|j        |j        g|           |                     ||ddd|j        |j        g|           |                    |                    |j                  d          }|                     |d dd d|j	        |           d S )	Nr   r   rg  r  rv  rx  rz  rU  )power_div_1d_casesr   r  r[  	ones_likerk   r\  re   rq  r]  r  r^  r_  rj   )rm   rn   case0case1r[  r\  f_obs_reshapes          rv   r?  zTestPowerDivergence.test_axis  s   "1%"1%	5;455	2<44RWU[5I5II ;( ) ) 

5!!%*%6

5!!!E##eQ5:uz2r 	$ 	; 	; 	; 	##eQ%)UY!7B 	$ 	@ 	@ 	@ 	##eQ#emU]%C 	$ 	L 	L 	L 	##eQ%(3 	$ 	< 	< 	<
 

2::ek#:#:FCC##dAt%* 	$ 	- 	- 	- 	- 	-rx   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}|	                    d          j
        }|	                    ||          }|	                    ||          }|	                    ||          }|	                    dgdgg          }t          j        |||          \  }	}
t          |	|           t          j        |||d                   \  }}t          j        |||d                   \  }}t          |          }|                    ||j        d d f         ||j        d d f         fd          }t          |
|           d S )	Nr   r   r   r5  r  r  r<  rU   )r  r   r  r[  r  r  rk   r\  r]  re   r3  rh   ri  r/   r)   r  r  )rm   rn   r  r  r[  r\  expected_chi2r3  r  ro  r0  stat0p0stat1p1r   rp  s                    rv   test_ddof_broadcastingz*TestPowerDivergence.test_ddof_broadcasting  s    #1%"1%	5;4557	2<44RWU[5I5II ;( ) ))* 	 UZ0

2$

5
..

5
..

=
>> zzA3*%%(DAAAam,,, *5%d4jIII	r*5%d4jIII	r!%((^^R(:%;%'(:%;%=)* $ , ,
 	:&&&&&rx   )rt  ru  rw  ry  r{  c           
          |\  }}t          ||          }t          j                    5  |                     |j        |j        |j        |j        |||           d d d            d S # 1 swxY w Y   d S rA  )r6  rp  rq  rq  r[  r\  r  rV   r}  s          rv   test_empty_casesz$TestPowerDivergence.test_empty_cases  s     $d++$&& 	, 	,''
DJ	49, , ,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   0A&&A*-A*c                 R   t           d         j        }t           d         j        }t           d         j        }t           d         j        }|                    d          j        }|                    ||          }t          j        ||||d          }d}t          |||           d S )Nr   r   r5  rg  re  r  r  )
r  r[  r\  r  rV   re   r3  rh   ri  r   )	rm   rn   r[  r\  r  rV   r3  r   r  s	            rv   'test_power_divergence_result_attributesz;TestPowerDivergence.test_power_divergence_result_attributes  s    "1%+"1%+!!$)!!$)

2$

5
.. $5D*.	C C C,
C333333rx   c                    |                     ddgddgg          }|                     ddgddgg          }d}t          j        t          |	          5  t	          j        ||                     dd
g                     d d d            n# 1 swxY w Y   t          j        t          |	          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 )Nr   r        >@rN   rl  g     A@g      9@For each axis slice...r         N@r[  r\  r   )r[  r\  rV   g̑m@gUUU@gj^4;?g4;?)re   r,  r   r   rh   ri  r/   )rm   rn   r[  r\  rt  ro  r]  s          rv   test_power_divergence_gh_12282z2TestPowerDivergence.test_power_divergence_gh_12282'  s   

S#Jc
344

RISz233*]:W555 	N 	N"bjj#s6L6LMMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N]:W555 	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bjj*j)ABBCCCbjj*j)ABBCCCCCs$   ,BBB2CCCc           	      ,   |                     g d          }d}|                    d|j        d         dz             }|                    |                    |          |                    |                    ||z                      z            }|                    |||z  z             }t          |          }|                    ||j        d d f         ||j        d d f         f          j	        }|                     g d          }	|
                    |	d          }	t          |	j        d                   D ]V}|	|df         |	|df         }}
t          j        |d d df         |d d df         |
          \  }}t          ||d	
           Wd S )N)rl  r7        ,@g      1@rN   r7  r   r   r   r   r   r   r7  r  r   r   r   r   g*kqr   r   ) g      $g    @r  g     r@r  gffffffP@g       gLD@r  g      A@r  g     =@r  g     :@r   g8@r:   gffffff7@gq=
ףp?g7@r   g333336@r;   g6@rD  gfffff6@r  g8@rN   g     A@r   g     j@)ra   r1   r   rf  g{Gzt?rZ  )re   r   r  r  r  expr)   r  r  r  rj   r  rh   ri  r/   )rm   rn   obsbetar  r"  expected_countsr   table4table5rf  rm  ro  r0  s                 rv   /test_power_divergence_against_cressie_read_datazCTestPowerDivergence.test_power_divergence_against_cressie_read_data4  s    jj @ @ @ A AIIb#)A,+,,rvvc{{RVVBFF46NN%;%;;<<&&a00 "#&&W_aaa%7!8!0!!!1C!D!F G GGH 	      & FG,,v|A'' 	< 	<A%+AqD\6!Q$<]G,VAAAaC[&1+5<> > >GD!D-d;;;;;		< 	<rx   N)r   r   r   rq  r,  r  r  r  r#  r?  r  power_div_empty_casesr  r  r  r  r   rx   rv   rc  rc    s7       @ @ @B [V%788[]	. 	. 	./ /@ @	/ / 98
@- - -:#' #' #'J [V%:;;[]	. 	. 	./ /, ,	/ / <;
,4 4 4D D D.< .< .< .< .<rx   rc  c                   f    e Zd Zd Zd Zej                            dddg          d             ZdS )TestChisquarec                     t          t          d          5  |                    ddg          }|                    ddg          }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   re   rh   rj  )rm   rn   r[  r\  s       rv   test_chisquare_12282az#TestChisquare.test_chisquare_12282ag  s     :-EFFF 	6 	6JJSz**EJJSz**EO%u5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   AA))A-0A-c                 f   t           j                            d          }d}|                    dd|          }|                    |          }|                    |          }|                    ||j                  }t          j        ||dd	          }||z
  |	                    |          z  }|
                    |d
z            }t          |j        |           t          |                    ||j                            }	t          |j        |	                    |                     d S )Nl   *m{m r[   r  r  r  r5  ra   F)r[  r\  r  	sum_checkr1   )r   r  r  rm  poissonre   r3  rh   rj  r  r  r/   r
  r%   r	  rl  )
rm   rn   r  rG  lamro   r   r  r
  r  s
             rv   test_chisquare_12282bz#TestChisquare.test_chisquare_12282bp  s    i##$455kk$1k--KKjjooJJq	J**oASrUKKKW$FF1a4LL	y111AY_==>>
BEE)$4$455555rx   zn, dtype)r  r{  )i@B r  c           	         t          ||          }|                    |dg|          }|                    |dz  |dz  g|          }t          j        ||          }|\  }}t	          ||                    ||                    d          j                  d           t          |j        |           t          |j        |           d S )Nr   r5  r1   r   vIh%<=rZ  )	r6  re   rh   rj  r/   r3  r0   r
  r	  )	rm   rG  r3  rn   r  r  r   ro  r0  s	            rv   #test_chiquare_data_types_attributesz1TestChisquare.test_chiquare_data_types_attributes  s     E""jj!Quj--jj!q&!q&)j77oc3''abjj"**R..2FjGGeTTTTt,,,
A&&&&&rx   N)	r   r   r   r  r  r,  r  r  r  r   rx   rv   r  r  e  sg        6 6 66 6 6& [Z.:L)MNN
' 
' ON
' 
' 
'rx   r  c                   Z    e Zd Zej                            d          d             Zd ZdS )TestChisquareMAr  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)r7   r7   r       ra   )ra   ra   r2   r3   r4   )r   r   r   r   r   )r   r   r   r   r   g      8@r:   r1   r   r  rD  r2   r9  r4   r  r   rU   r   rv  r  r  r  )rV   rf  )r2   r4   r5   rD  r[   )r   r   r   r   r   r  )r1   r3   r7   r[   rD  )r\  rm  r   r  r  r  r   r<  )r   r   r  r  r  r  rh   rk  r]  rj  matr	   r   rl  rb  ri  r   r  r   r   r   r  r   r   r   r  r  r  r  )rm   r  r  mobsexpected_chisq
expected_gr]  chisqr0  gobs1exp1r   empty3s                 rv   test_chisquare_masked_arraysz,TestChisquareMA.test_chisquare_masked_arrays  s    h***,=,=,=>??Ax///:;;=u!!#t,,4+..Xq#bfSkk/Brvc{{N"BC !BF4LL.1RVD\\>"ABD E E
 "'?4((qun555%a151C1Ca1G*I *I 	J 	J 	J %d4DEEE1%aR@@@@%a151C1Ca1G*I *I 	J 	J 	J ?46222qun555%a1511E1E1I*K *K 	L 	L 	L%df1>NOOO1%aR@@@@%a151C1Ca1G*I *I 	J 	J 	J u{{,,,???{CCu{{,,,???{CC/$d333a 	t_555 ?25;;www#7#7dCCCq
5"*--...
1bj))***UC   Au27::3BBCCC [*** 	< 	<"$$ <

>+@AAA ?25;;r??;;q< < < < < < < < < < < < < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	
5"%"344555U["%%%
bBZ(( ?6**q
5"%"344555ub))) [*** 	5 	5"$$ 5

>+@AAA ?6844q5 5 5 5 5 5 5 5 5 5 5 5 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5
 	
5"%"344555U[$'''uz""#####sm   R+AR;RR	RR	RR"%R"W78W W7 W$	$W7'W$	(W77W;>W;c                    t          j        g d          }t           j                            |          }d}t	          j        t          |          5  t          j        |           d d d            n# 1 swxY w Y   t	          j        t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nri  z8`power_divergence` and `chisquare` support for masked...r   )	r   re   r  r  r,  r-  DeprecationWarningrh   rj  )rm   r  r  rt  s       rv   test_deprecation_warningz(TestChisquareMA.test_deprecation_warning  s6   J|||$$U""L\,G<<< 	  	 OB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 \,G<<< 	# 	#OAr"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s$   A44A8;A8B==CCN)r   r   r   r,  r  r  r  r  r   rx   rv   r  r    sR        [ <==H$ H$ >=H$T# # # # #rx   r  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   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=
?)r3   r2   r4   r2   r4   r2   r1   r4   r3   r3   r3   r2   )r1   r1   r   r1   r2   r   r1   r2   r1   r   r   r2   )r1   r3   r2   r2   r3   r2   r2   r3   r3   r   r1   r   )r2   r4   r3   r2   r3   r3   r2   r2   r2   r3   r3   r3   )r   g#@rB   r  g$@)g333333@g@g@r=   g@)r  r  r?   r.   @)g!@g!@333333 @ffffff
@g333333"@r   r   r1   r2   )gNt$@gBv?)g
__2@g5"]i2?)g\(\%@g+ԋ?r  )r   r   rh   friedmanchisquarer   r   r   mstats)r~  r  r  r  r   s        rv   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Crx   c                   6    e Zd ZdZ	 d
dZd
dZd Zd Zd Zd	S )
TestKSTestzLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.autorY   c                     t          j        |d||          }t          j        ||g          }t	          t          j        |          ||           d S Nr  rY  rJ  r  )rh   kstestr   r   r   	rm   ro   rY  expected_statisticexpected_probrJ  r  ra  r  s	            rv   _testOnezTestKSTest._testOne"  sT    a[tLLL8/?@@!"(6"2"2HgNNNNNNrx   c                     t          j        |d||          }t          j        |t           j        j        ||          }t          t          j        |          ||           d S r  )rh   r  ks_1sampr  cdfr   r   r   )rm   ro   rY  rJ  r  ra  result_1samps          rv   _test_kstest_and_ks1sampz#TestKSTest._test_kstest_and_ks1samp(  se    a[tLLL~a2=DJ J J!"(6"2"2L'RRRRRRrx   c                     t          j        ddd          }d}t          j        |d          }t	          ||           d S )Nra   r   r8   r  r  )r   r  rh   r  r   rm   ro   r  r   s       rv   test_namedtuple_attributesz%TestKSTest.test_namedtuple_attributes.  sA    KAq!!,
l1f%%C,,,,,rx   c                 J   t          j        ddd          }|                     |d           t          j        ddd          }|                     |d           g d}|                     |d           |                     |dd	
           |                     |dd	
           d S )Nra   r   r8   rP  r  
r  Q?g333333g(\?Q?g(\ſg{GzgHzG?g\(\gGzrT  rs  rJ  rR  )r   r  r  r.  s     rv   test_agree_with_ks_1sampz#TestKSTest.test_agree_with_ks_1samp5  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%>>>>>rx   c                    t           j         ddt           j        g}t          j        |t          j        j                  }t          j        |t          j        j        d          }t          j        t          j        |                    sJ t          ||           t          j	        |j
                  rJ t          j	        |j                  rJ d S )Nr   r   T)_no_deco)r   r  rh   r  cauchyr  r  r  r   r  r
  r	  )rm   rL  r   r  s       rv   test_pm_inf_gh20386zTestKSTest.test_pm_inf_gh20386A  s     Arv&l4!122l4!1DAAAvbk#&&'''''S#8CM*****8CJ'''''''rx   Nr  rY   )	r   r   r   r   r  r  r  r  r  r   rx   rv   r  r    s|        VV ')O O O OS S S S- - -
? 
? 
?	( 	( 	( 	( 	(rx   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 )TestKSOneSamplezY
    Tests kstest and ks_samp 1-samples with K-S various sizes, alternatives, modes.
    r  rY   c                     t          j        |t           j        j        ||          }t	          j        ||g          }t          t	          j        |          ||           d S )Nr  r  )rh   r  r  r  r   r   r   r  s	            rv   r  zTestKSOneSample._testOneT  sY    5:>{QUVVV8/?@@!"(6"2"2HgNNNNNNrx   c                     t          j        ddd          }d}t          j        |t          j        j                  }t          ||           d S )Nra   r   r8   r  )r   r  rh   r  r  r  r   r  s       rv   r  z*TestKSOneSample.test_namedtuple_attributesZ  sE    KAq!!,
nQ
//C,,,,,rx   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 )Nra   r   r8   rP  g|N?g7.s?r  r  g{CTp?g M<b*?r  gZL?g86J4?rT  g+?rs  r  rR  gHD?gr?r   r  r  r.  s     rv   test_agree_with_rz!TestKSOneSample.test_agree_with_ra  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Trx   c                     t           j                            ddd          }|                     |dddd	           |                     |d
dd           |                     |ddd           d S )Nr  r~  h:)r  r  r  rP  ghх?g7?asympr  rR  g^h?rT  gv!ԉ}?g*z)?)rh   r  r  r  r.  s     rv   test_known_examplesz#TestKSOneSample.test_known_examplesn  s}    JNNs9NEEa&9;O" 	 	$ 	$ 	$a!46JKKKa$9;NOOOOOrx   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;   ra   ))rA  r   Tr   )rA  皙?Tr   )rA  r   Tr   )rA  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[  r2   )dtypes)r   r   r  r   rl   r   r   re   r   checkintr  bool)rm   datasets     rv   test_ks1samp_allpathsz%TestKSOneSample.test_ks1samp_allpathsv  s   D1122333:-EFFF 	" 	"CD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"Q--..///* 
 
 
  4 	'9a0066sE4>P6QQQQQs   A//A36A3ksfunc*alternative, x6val, ref_location, ref_sign))rT  r5   r5   r   )rR  r6   r6   ra   )rP  r5   r5   r   )rP  r6   r6   ra   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 )	Nr[   r:   r5   ru  rX  r  r  rZ  )	r   r   rh   rm  r  r   r
  statistic_locationstatistic_sign)	rm   r  rY  x6valref_locationref_signro   r  r   s	            rv   test_location_signz"TestKSOneSample.test_location_sign  s     IbMMC!m"%%%)fQ555s7777%5555!X------rx   Nr  )r   r   r   r   r  r  r  r  r  r,  r  r  rh   r  r  r  r   rx   rv   r  r  O  s         
 ')O O O O- - -U U UP P P!R !R !RF [Xen'EFF[I7 7 78 8

. 
.8 8 GF
. 
. 
.rx   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ej                            dg dgfdgg fg g ff          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  )rh   ks_2sampr   r   r   )	rm   r~  r  rY  r  r  rJ  ra  r  s	            rv   r  zTestKSTwoSamples._testOne  sO    B$???8/?@@!"(6"2"2H=====rx   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   rP  r   rT  r:   rR  r   )r  r#  s    rv   	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3rx   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   rD  r  ri  rP  r!  rT  r  rR  r  r  r  r   r   r   r  rm   rR  data1pdata1mrV  s        rv   testTwoVsThreezTestKSTwoSamples.testTwoVsThree  s    #s$$))fe['3???feY===feVWc:::fe['3???feY===feVQ44444rx   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   rD  r  r  rP  r:   g?rT  g?rR  r`  皙?r9  r  r  r   r  r  s        rv   testTwoVsFourzTestKSTwoSamples.testTwoVsFour  s    #s$$---..fe['7CCCfeY@@@feVWg>>>fe['6BBBfeY@@@feVQ44444rx   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~  r1   r  rP  r1  g~z?rT  gz;.B?rR  r   r   {Gz?gn2IU?r  )rm   x100	x100_2_p1	x100_2_m1s       rv   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6rx   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~  rI  r  r  rP  g?g@߿?rT  g}n?rR  r   g:[?g]O);?gѫ);?r   r   r  )rm   r  x110
x110_20_p1
x110_20_m1s        rv   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9rx   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 )Nr1   r2   r3   r4   r5   r5  r   r[   r6   rP  g      ?g^dH?rT  gQl6y?rR  r   r   gVdEVdE?g(f^?g!?gii?g+ ϖ?)r   r   r  r  )rm   x2233x3344x2356x3467s        rv   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Krx   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 )Nri  r   rP  r!  r   rT  r9  rR  r   r:   r  )rm   rV  s     rv   testEqualSizeszTestKSTwoSamples.testEqualSizes  s)   ))eU1Wk5#>>>eU1Wi===eU1WfeR888eU3YUC@@@eU3Y	5$???eU3Yr:::eU3YUC@@@eU3Y	5#>>>eU3Yt<<<<<rx   c           	         d\  }}d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd
	           |                     ||dd|z  |z  dd
	           |                     ||dd|z  |z  dd
	           t                      5 }d}|                    t
          |           |                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd	           d d d            n# 1 swxY w Y   t          j        d          5 }t          j        d           |                     ||dd|z  |z  dd	           t          |t
          d           d d d            d S # 1 swxY w Y   d S )N)r  iX  r   r1   r   r  rP  g     @@r  r  r  rT  g2JE?rR  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.rs  Trm  rn  
r   r  r  r   r   r   rp  rq  rr  r8  	rm   n1n2deltaro   rp   r   rt  rp  s	            rv   testMiddlingBothz!TestKSTwoSamples.testMiddlingBoth  s    BBr	!AK3##e+K3##aK"r)93! 	 	# 	# 	#aK"r)93" 	 	$ 	$ 	$aIv{R'79K" 	 	$ 	$ 	$aFEBJO5G" 	 	$ 	$ 	$   	(CAGJJ~w///MM!Q	6B;+;=O&  ( ( (MM!Q
R9K&  ( ( (	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( $D111 	2Q!(+++MM!Q
R9K&  ( ( (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   r1   r   r  rP  g     ȹ@r  r  r  rT  gZ?rR  g     @@g@J?r/  rs  Trm  rn  r0  r1  s	            rv   testMediumBothzTestKSTwoSamples.testMediumBoth$  s    BBr	!AK3##e+K3##aK"r)93" 	 	$ 	$ 	$aK"r)93! 	 	# 	# 	#aIv{R'79K" 	 	$ 	$ 	$aFFRK"$46H" 	 	$ 	$ 	$    	(CAGJJ~w///MM!Q	6B;+;=O&  ( ( (MM!Qb(8:L&  ( ( (	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( $D111 	2Q!(+++MM!Qb(8:L&  ( ( (A~q111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r6  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)'  rI  r7  r   r1   r   r  r~  rP  g    `@g      <rT  g     @g򼉷?rR  gimb:r  )rm   r2  r3  lcmr4  ro   rp   s          rv   	testLargezTestKSTwoSamples.testLargeA  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Jrx   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;   rP  gC?      <r  r  rs  r   r  r(  r  r  r*  s      rv   test_gh11184zTestKSTwoSamples.test_gh11184L  s    
	vI$''I$''#-aK)<>T" 	 	$ 	$ 	$aK)<>T" 	 	$ 	$ 	$ 	$ 	$rx   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 )Nr?  r;  r  i'  r;   rP  g 	_r!?gAD5r  r  r@  rs  rT  gלN#y7rR  gvqw?rA  r*  s      rv   test_gh11184_biggerz$TestKSTwoSamples.test_gh11184_biggerV  s     		vI%((I%((3.aK)<>T" 	 	$ 	$ 	$aK)<>T" 	 	$ 	$ 	$aI':<R" 	 	$ 	$ 	$aF$79O" 	 	$ 	$ 	$ 	$ 	$rx   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 )Nr?  r  i.  r  r[   r:   r  r  rs  r  r  r2   )	r   r  r(  r  r  rh   r  r	  r   )rm   ro   vals1vals2rs  r  s         rv   test_gh12999zTestKSTwoSamples.test_gh12999e  s    
	vtUD)) 	0 	0AI$$1$..EI$$1r6$<<EN5%g>>>EEN5%g>>>EEeQY///eQY////	0 	0rx   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)r;  i*  r7  r   r1   r   r  rP  g     @gkHY?r  r  gLɔ.?rs  r  rT  g.LbG2?rR  r   gr?֎?r/  )r   r  r  r   r   r   )	rm   r2  r3  r<  r4  ro   rp   r   rt  s	            rv   testLargeBothzTestKSTwoSamples.testLargeBothq  s    BgBr	!AK3##e+K3##aK6H" 	 	$ 	$ 	$aK6H" 	 	$ 	$ 	$aK6H! 	 	# 	# 	#aIus{4FGGGaFD3J0BCCC   	(CAGJJ~w///MM!Q	53;8J&  ( ( (MM!Qs
4F&  ( ( (	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   (AEEEc                 Z    d}t          j        ddgdg          }t          ||           d S )Nr  r   r1   r2   )rh   r  r   rm   r  r   s      rv   testNamedAttributesz$TestKSTwoSamples.testNamedAttributes  s4    ,
naVaS))C,,,,,rx   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   r  r8  iK  r  )scipy.stats._stats_pyrP  rQ  r   r  r   FloatingPointError)rm   rP  rQ  s      rv   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>rr  r   c                    t          j        t          t                    5  t	          j        | }t          |j        t          j	                   t          |j
        t          j	                   d d d            d S # 1 swxY w Y   d S rI  )r,  r-  r   r   rh   r  r   r
  r   rl   r	  rm   rr  r   s      rv   test_argument_checkingz'TestKSTwoSamples.test_argument_checking  s     \,4IJJJ 	- 	-.$'C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-   AA;;A?A?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  rT  r  r  rR  rP  N)r   r  r(  rh   rm  r  r  )rm   r2  rvs1rvs2s       rv   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Irx   c                 l   t           j                            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 )Ni{fr(  iq  r  r:   iq  z(ks_2samp: Exact calculation unsuccessfulr   rR  rX  r   r  r  )
r   r  RandomStater,  r-  r   rh   r  r   r	  )rm   r  rR  rV  rt  r   s         rv   test_warnings_gh_14019z'TestKSTwoSamples.test_warnings_gh_14019  s     i###22


$$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   -/B))B-0B-r  r  ))rT  皙@rb  r   )rR  ffffff@r   ra   )rP  rb  rb  r   )rP  rc  r   ra   c                     t          j        dt           j                  }|                                }||d<   t	          j        |||          }|j        dk    sJ |j        |k    sJ |j        |k    sJ d S )Nr[   r5  r5   rX  r  )	r   r   r   r  rh   r  r
  r  r  )	rm   r  rY  r  r	  r
  ro   rp   r   s	            rv   r  z#TestKSTwoSamples.test_location_sign  s     Ib
+++FFHH!nQ{;;;}####%5555!X------rx   N)r  )!r   r   r   r   r  r  r  r  r   r%  r+  r-  r,  r  r  r5  r9  r=  rB  r  rD  rI  rK  rN  rT  r  rW  r]  ra  rh   r  r  r  r   rx   rv   r  r    sw       FF > > > >4 4 4
5 
5 
55 5 5	7 	7 	7: : :
L 
L 
L
= 
= 
= [2 2 26 [2 2 28	K 	K 	K$ $ $ [$ $ $ [	0 	0 	0 [( ( (.- - - [, , ,  [VrA3i1#rRH%EFF- - GF- [
J 
J 
J
7 
7 
7 [Xen'EFF[I; ; ;< <

. 
.< < GF
. 
. 
.rx   r  c            	      x   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<   t9          j        tF          tH          %          5  t          j        ||dd           \  } }d d d            n# 1 swxY w Y   t9          j        tF          tH          %          5  t          j        ||ddd2          \  }}d d d            n# 1 swxY w Y   t+          || d34           t          j        d          5  t+          | || |d          d34           d d d            n# 1 swxY w Y   t9          j        tF          tH          %          5  t          j        ||ddd2          \  }}d d d            n# 1 swxY w Y   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   rU   r  r  r  r   r  r  r  r1   rT  r  rX  rR  r  rT  rZ  r4   r[     r  r  r  )r  r  r  r  r   r   )ghm#1?gry̧?r   r   r  r   ra  r;  ra   rU  r  )r7   r2   r1   r2   r3   c                 L    | dk     r|dk    s| dk    r|dk    r|dz  S d|dz  z
  S Nr   rR  rT  r1   r   r   r	  r0  alts      rv   convertztest_ttest_rel.<locals>.convert.  <    EEcVmmQ3)3C3Cq5LAE{rx   r  r  r  r  r  r  rZ  )%r   r  r   rh   	ttest_relr   r  r   r  r   r   r   r  r   rV  absr   r  rW  r   r   r   r  r`  r  r  rl   r	   r,  r-  r  r  r   rj   	vectorizer   r   )trr  tprr[  r\  rvs1_2Drvs2_2Dr	  r0  r   r  r   rvs1_3Drvs2_3Dr  ro   rp   ananrl  	converters                       rv   test_ttest_relry    sE   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	(0A	B	B	B I I'1HHHBI I I I I I I I I I I I I I I 
(0A	B	B	B F Fw*0fF F F1F F F F F F F F F F F F F F F 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 
(0A	B	B	B I Iw*0iI I I1I I I I I I I I I I I I I I I 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[[#&[#&___9`""`&)`&a>>bb)cccd//d36d3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 )NrD  r  r   r   rD  r   rD  r   r   r  r  r   )r  grh|?-C6?)r   rl   rh   rn  r   r
  r	  ro   rp   r  r  r3s        rv   test_ttest_rel_nan_2nd_argr  I  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0rx   c                  .   t          j        t          t                    5  t	          j        g g           } d d d            n# 1 swxY w Y   t          | t          j        j                  sJ t          | t          j        t          j        f           d S rI  )r,  r-  r   r   rh   rn  r  	_stats_pyTtestResultr   r   rl   )ra  s    rv   #test_ttest_rel_empty_1d_returns_nanr  ^  s     
(0E	F	F	F ) )R(() ) ) ) ) ) ) ) ) ) ) ) ) ) )feo9:::::"&"&)*****s   AA
Azb, expected_shape)r   r4   r   r  r   r   r   )r2   r   c                    t          j        d          }t           j                                        5 }|                    t
          t                     t          j        || d          }d d d            n# 1 swxY w Y   t          |t          j
        j                  sJ t          j        |t           j                  }t          |j        |           t          |j        |           d S N)r2   r   r   ra   rU   r$  )r   r  r  r   r   r   r   rh   rn  r  r  r  r   rl   r   r
  r	  )r"  expected_shaper  r   ra  expected_values         rv   test_ttest_rel_axis_size_zeror  g  s    	A		%	%	'	' 03

%'<===AB///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 feo9:::::W^???N!>222/////s   8A77A;>A;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   r7   r   r4   r7   r   r   rU   r4   r   )r   r  rh   rn  r  r  r  r   r
  r  r	  )r  r"  ra  s      rv    test_ttest_rel_nonaxis_size_zeror  y  s    
 	A
A_Q***Ffeo9:::::!'000$f-----rx   rY  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:  r[   r;   r1   r  gZ?Ygi{a?g8 gC?r  rX  r  r  r   )r   r  r  r  r  rh   rn  rF  r   r   r  )rY  r  rG  ro   rp   r  r   rb  s           rv   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rx   ztest_fun, argsr[   c                      | | }d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r   r[   r  )r,  r   r   rF  )test_funr-  r   rt  s       rv   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r  c                j    t          | |          ndfd	} || |           |||          z   S )Nr   c                                          |           }                     | |          }                    | |d          }| j        |         }|||fS )NrU   r   r  )re   rk   r   r  )ro   rV   mur   nobsrn   s        rv   _statsz_desc_stats.<locals>._stats  sU    JJqMMWWQTW""ffQTaf00wt}3}rx   rQ  )r)   )r~  r  rV   rn   r  s      ` rv   _desc_statsr    s^    $&JR	 	 	 BB      6"dffR....rx   c                 
   |                      d          }|                      d          }|                      || g          }|                      ||g          }|                     ddd          }|                     ddd          }|                     ||g          }|                     ||g          }t          j        ||d          }	|	\  }
}t          |
|           t          ||           t          j        t          ||           }	|	\  }
}t          |
|           t          ||           t          j        |j        |j        d          }	t          |	j	        |           t          |	j
        |           t          j        t          |j        |j                   }	t          |	j	        |           t          |	j
        |           t          j        ||d          }	t          |	j	        |           t          |	j
        |           t          j        t          ||d           }	t          |	j	        |           t          |	j
        |           d	}t          j        t          |
          5  t          j        ||d           d d d            n# 1 swxY w Y   t          |j        |j                  }t          j        t          |
          5  t          j        |ddi d d d            n# 1 swxY w Y   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          j        |ddi}t          |j	        |j	                   t          |j
        |j
                   t          j        |j        |j        dd          }t          |j        |j                  }t          j        |ddi}t          |j	        |j	                   t          |j
        |j
                   |                      | j                  }|                     |                     |j        d                   dk    ||          }t          j        ||d          }	t%          |	j	        |           t%          |	j
        |           t          j        t          ||           }	t%          |	j	        |           t%          |	j
        |           d S )N	ru?g8Mѱ?r4   i   r~  r   r   rU   r  r   r  rX  rY  rR  r1   rT  r  )re   r  r  rh   	ttest_indr/   ttest_ind_from_statsr  r  r
  r	  r,  r   r   rl   r  r   r  r0   )rn   rq  r  tr_2Dpr_2Dr[  r\  rs  rt  r   r	  r0  rt  r-  r  r  NaNs                    rv   test_ttest_indr    se    
&	'	'B	'	(	(BJJRCy!!EJJBx  E;;q#s##D;;q#s##Dhhd|$$Ghhd|$$G
/$1
-
-
-CDAqArAr

$k$&=&=
>CDAqArAr
/')WYQ
7
7
7CCM5)))CJ&&&

$k')WY&G&G
HCCM5)))CJ&&&
/'7
3
3
3CCM5)))CJ&&&

$k'7&K&K&K
LCCM5)))CJ&&& IG	z	1	1	1 ; ;d'::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; wy'),,D	z	1	1	1 A A"D@@@@A A A A A A A A A A A A A A A ?46:::DAqAqBqDz"""Ar?49===DAqAr!tAr ?79giaVLLLDwy'),,D%t@@@DDNDN333DK---?79giaVLLLDwy'),,D%t@@@DDNDN333DK--- **RV

C88BIIdjm,,13==D
/$1
-
-
-CCM3'''CJ$$$

$k$&=&=
>CCM3'''CJ$$$$$s$   4JJJK66K:=K:c            	      D   t          j        ddd          } t          j        ddd          }t          j        | |g          }t          j        || g          }t          j        |||g          }t          j        |||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          \  }	}
t1          |	|d            t1          |
 |||d          d            t          j        ||ddd!          \  }	}
t1          |	|d            t1          |
 |||d!          d            d S )"Nr4   r  r~  r   rZ  r[   rf  r  r  r  r  r   r   )guͷ?g*,?r   r   r  r   ra  r;  r   ra   rU  r  r5   r]   c                 L    | dk     r|dk    s| dk    r|dk    r|dz  S d|dz  z
  S ri  r   rj  s      rv   rl  z*test_ttest_ind_nan_policy.<locals>.convert5  rm  rx   r>  rR  )rV   r   rY  r  rZ  rT  )r   r  r   rV  r  r`  rh   r  r  rl   r  r	   r  r   r   r   r,  r-  r   r   ro  r  r  rp  r   )r[  r\  rs  rt  ru  rv  r  ro   rp   r	  r0  rw  rl  rx  rq  r  s                   rv   test_ttest_ind_nan_policyr    s   ;q#s##D;q#s##Dhd|$$Ghd|$$Gi'7344Gi'7344G )


)
)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_WgA&IIIFB?7G!'-/ / /DAqAr&&&&AyyR00u====?7G!'02 2 2DAqAr&&&&AyyR33%@@@@@@s7   :EEE'HHH B1LL!$L!c                  j   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          j        |          sJ t          j        |          sJ d S )Nr  r  r  r   r  )r   r   r  r   r   rh   r  r  )r   r	  r0  s      rv   test_ttest_ind_scalarr  H  s!   			 'R[%B%B%B ' '

>#FGGGr2&&1' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 8A;;8A;;s4   A<4A%A<%A)	)A<,A)	-A<<B B z&ignore:Arguments...:DeprecationWarningc                      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)ej                            d#g d$          ej                            d%d&d'g          d(                         Z*ej                            d#g d$          ej                            d%d&d'g          d)                         Z+d* Z,e-ej        .                    dd+,          ej        /                    d-          d.                                     Z0dS )/Test_ttest_ind_permutationsr  r   r2   r3   r~  r[   r   r1   r4   r  r  r7   g'^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rV   N)r  rV   	equal_varTra   )rV   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rV   r  r  r   )rV   r  permutationsr  r4   )updaterh   r  r   )rm   r  r"  r  p_d	options_a	options_pstat_are  stat_pr	  s              rv   test_ttest_ind_permutationsz7Test_ttest_ind_permutations.test_ttest_ind_permutations{  s    !66	!%)1> >	      OAq66I66	A;;;;!&&!444!&#.....rx   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   r2   r1   r   r  )rV   r  rT  rX  rR  rP  r:   
r   r  r(  r3  r  rh   r  r   r
  r	  )rm   Nr  r"  r  res_g_abres_g_bares_l_abres_l_bares_2_abres_2_bar  s               rv    test_ttest_ind_exact_alternativez<Test_ttest_ind_permutations.test_ttest_ind_exact_alternative  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+	- 	- 	- 	- 	-rx   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   r2   r  r  )r   r  r(  r3  rh   r  r  r	  )rm   r  r  r"  r7  r  r  r  s           rv   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))))))rx   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   r2   r3   r  T)	r   r  r(  r3  r  ri  r   setr   )
rm   r  r"  rh  nanbr  t_statre  n_uniques
             rv   !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&&&&&&rx   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~  r1   r2   ra   r  )rV   r  r  rT  rX  rR  r   r  r  )	rm   r  r  r"  r  r  r  r  r  s	            rv   #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::	< 	< 	< 	< 	<rx   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~  r3   r  r  r  rT  rX  rR  rP  r   r  r:   r1   r  r  )
r   r  r(  r3  r  rh   r  r   r	  r   )	rm   r  r  r"  r  r  r  r  r  s	            rv   $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	: 	: 	: 	: 	: 	:rx   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~  r4   r4   r   )r7   r1   )r8   r2   r  r  r   r   r   r   r   r=  rU   )r   r  r(  r3  rl   r  r   r   rh   r  r   r   r   r  r  r   r	  r
  r   r  )	rm   r  r  r"  r  r   r   r  r  s	            rv   $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   rb   r  r;   z'hello' cannot be usedr   hello)r  r  rV   )r   r   rh   r  r  b2r  r"  r#  s    rv   'test_ttest_ind_permutation_check_inputszCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputs6  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 )Nr[   r  r   r  r   )r   r  r3  rh   r  r	  print)rm   r  r  r"  p_valuess        rv   )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!"""(""""""rx   rY  rv  r  )r]   )r1   r]   c                    t           j                            d          }|                    |          }|                    d          }t          d          }t           j                            d          }t	          j        dd|i|}t	          j        ||d||	          }d
 }	t           j                            d          }t	          j        ||f|	fd||d|}
t          |j	        |
j	                   t          |j
        |
j
                   t	          j        ||d|          }
t          |j	        |
j	                   t          |j
        |
j
        d           d S )N   Nvf_aB r  r^     r     N\Sju	 r  ra   rV   rY  rr  c                 :    t          j        | ||          j        S NrU   rh   r  r
  ro   rp   rV   s      rv   r
  zFTest_ttest_ind_permutations.test_permutation_method.<locals>.statisticW      %/!QT*J*J*J*T#Trx   )rV   r  rY  r  r1  rZ  r   )r   r  r  r  rh   r  r  permutation_testr   r
  r	  r   )rm   rY  r  r  ro   rp   r.  rr  r   r
  r  s              rv   test_permutation_methodz3Test_ttest_ind_permutations.test_permutation_methodH  sl    i##$455JJEJ""JJBJ#&&& i##O44(;;S;F;;oaVTTT 	UTTy$$_55$aVY HRS1<H H@FH H 	S]CM222SZ,,, oaEEES]CM222
CJT::::::rx   c                    t           j                            d          }|                    |          }|                    d          }t          d          }d }t           j                            d          }|j        |j        g}t          j        ||ff||d|d	|}	t           j                            d          }|j        |j        g}t          j        dd
|i|}
t          j        ||d||
          }t          |j
        |	j
                   t          |j        |	j                   t          j        dddi|}
t          j        ||d||
          }t          |j
        |	j
                   t          |j        |	j                   t          j        ||d|          }	t          |j
        |	j
                   t          |j        |	j        d           d S )Nr  r  r^   r  r  c                 :    t          j        | ||          j        S r  r  r  s      rv   r
  zFTest_ttest_ind_permutations.test_monte_carlo_method.<locals>.statisticn  r  rx   r  ra   )r  r
  rV   rY  r  r  r  r  r  rZ  r   )r   r  r  r  r  rh   monte_carlo_testr  r  r   r
  r	  r   )rm   rY  r  r  ro   rp   r.  r
  r  r  rr  r   s               rv   test_monte_carlo_methodz3Test_ttest_ind_permutations.test_monte_carlo_methodd  s    i##$455JJEJ""JJBJ#&&& 	UTTi##O44"C$78$aV H	PR1<H H@FH H i##O44"C$78'::C:6::oaVTTTS]CM222SZ,,, 'FFOFvFFoaVTTTS]CM222SZ,,, oaEEES]CM222
CJT::::::rx   c                     d}t          j        t          |          5  t          j        g dg dd           d d d            d S # 1 swxY w Y   d S )NzC`method` must be an instance of `PermutationMethod`, an instance...r   rm  rG  	migratoryrq  )r,  r   r   rh   r  r  s     rv    test_resampling_input_validationz<Test_ttest_ind_permutations.test_resampling_input_validation  s    W]:W555 	F 	FOIIIyyyEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F   AAAr  r  rH   c                    |                     | j                  |                     | j                  }}d}t          |          rt	          j        ||d           nJt          j        t          |          5  t	          j        ||d           d d d            n# 1 swxY w Y   d}t          j
                            d          }t	          j        |          }t          |          rt	          j        |||           d S t          j        t          |          5  t	          j        |||           d d d            d S # 1 swxY w Y   d S )	Nz;Use of `permutations` is compatible only with NumPy arrays.r[   r  r   z?Use of resampling methods is compatible only with NumPy arrays.l   /gGy r  rq  )re   r  r  r+   rh   r  r,  r   r  r   r  r  r  )rm   rn   r  r  rt  r  rr  s          rv   %test_permutation_not_implement_for_xpzATest_ttest_ind_permutations.test_permutation_not_implement_for_xp  s   
 DG$$bjj&9&9BOB<< 	9OB444442'BBB 9 9BR88889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 Ti##$455(S111B<< 	7OB62222222'BBB 7 7Bv66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s$   9BB!$B!!EE
E
)1r   r   r   r  r   r  r(  r  r   r  r"  r  r  r  b3rh   r  r  rj   r  r[  r\  r  p_d_genp_d_bigrg   r`  r  paramsr,  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'   rH   r  r  r   rx   rv   r  r  Q  s       
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: : :# # # [],L,L,LMM[Wug&677; ; 87 NM;4 [],L,L,LMM[Wug&677; ; 87 NM;BF F F
 [!!4)D " F F[/007 7 10F F 7 7 7rx   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kwdsr  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   r4   r3   r6   r   r5   r7   r1   rV   rb   )r1   r2   r   r  r   r   r   r   r1   r   ra   r4   r   r3   r   r   r   c              3   4   K   | ]}t          |          V  d S rA  rE  rB  r  s     rv   	<genexpr>z=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>  s(       9 9aq 9 9 9 9 9 9rx   )r   r  r(  r3  rh   r  r   r
  r	  rW  tiler  r  r   r   )rm   r  r  r  r"  r   r  rC  r5  r  r  r  ro   rp   r  
statisticspvaluesindicesxiyir  s                        rv   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,,,,,rx   )r  r  r  rV   ra   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 )Nr[   )r4   r2   r[   r  r  r   r1   r2   r5   rU   r  r  z'invalid value encountered in less_equalr  rV   )r   r  randintr  rl   r  r  r   r  r   r   rh   r  r	  r	   r
  )
rm   r  rV   r  r"  r  r   r   p_nansstatistic_nanss
             rv   test_nans_on_axisz'Test_ttest_ind_common.test_nans_on_axis  s     Ibz2299'BBIbz2299'BBV!Q
V!Q
 8BF1q5t44455    	;CX)F)F)F 	; 	;JJ~@B B BJJ~'@AAA/!Q::T:T::C		; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;
 #*%%68,,,#-00>844444s7   E.AE:EE
	
EE
	EE!$E!N)	r   r   r   r,  r  r  r  r  r  r   rx   rv   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 5rx   r  c            	          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ej                            dd          ej                            d          d                                      Zej                            d!g d"          d#             Zd$S )%Test_ttest_trimrm  r  r  g@g9(?ger  )r  g33333`@r]   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rh   r  r   )rm   r  r"  r  rq  r  r
  r	  s           rv   test_ttest_compare_rz$Test_ttest_trim.test_ttest_compare_r  sR    @ "OAqtuMMM	6	2E2222//////rx   c                     g d}g d}t          j        ||dd          \  }}t          |dd           t          |d	d           d S )
N)r]   rY   r  r  r  ,   r]   rY   r  r  r  r  )rc   r  rY   r]   r     r  rc   r  rY   r]   r  r  r  g
ףp=
?Fr  gRbv?r\  r  gOi?r  rm   r  r"  r
  r	  s        rv   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7rx   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  r  g^Nr  r  s        rv   test_equal_varzTest_ttest_trim.test_equal_var5  sh    & DCCCCC!OAqr:::	6 3%@@@@	#5EBBBBBBrx   z	alt,pr,tr))rT  gjΜ>5?r  )rR  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  rY  r  r  Nr  )rm   rk  r  rq  r  r"  r
  r	  s           rv   test_alternativesz!Test_ttest_trim.test_alternativesO  sq     DCCCCC!OAqrU8;= = =	6////	2E222222rx   c           	      
   d}t          t          |          5  d}t          j        t          |          5  t          j        ddgddg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          |          5  d	}t          j        t          |          5  t          j        ddgddgdd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 )Nz>Use of `permutations` is incompatible with with use of `trim`.r   z5Arguments {'permutations'} are deprecated, whether...r   r1   r2   r  )r  r  z9Arguments {.*'random_state'.*} are deprecated, whether...)r  r  r  )r   r  r,  r-  r  rh   r  )rm   r   rt  s      rv   test_errors_unsupportedz'Test_ttest_trim.test_errors_unsupportedc  s9   P.e<<< 	I 	IMG0@@@ I IAARaHHHHI I I I I I I I I I I I I I I	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I
 .e<<< 	0 	0QG0@@@ 0 0AARa-.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 	0 	0 	0 	0 	0sj   A7A A7 A$	$A7'A$	(A77A;>A;C86C C8 C$	$C8'C$	(C88C<?C<Tr  r  rH   c                 J   d}|                     d          |                     d          dz   }}t          |          rt          j        ||d           d S t	          j        t          |          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nz3Use of `trim` is compatible only with NumPy arrays.r[   r   r  r  r   )r   r+   rh   r  r,  r   r  )rm   rn   rt  r  r"  s        rv   r  z5Test_ttest_trim.test_permutation_not_implement_for_xpq  s    
 Hyy}}biimmAo1B<< 	0OAqs++++++2'BBB 0 013////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   3BBBr  )gɿr:   r   c                     d}t          t          |          5  t          j        ddgddg|           d d d            d S # 1 swxY w Y   d S )Nz/Trimming percentage should be 0 <= `trim` < .5.r   r   r1   r  )r   r   rh   r  )rm   r  r   s      rv   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  r,  r  r  r  r  r  r!  r#  r'   rH   r  r  r&  r   rx   rv   r  r    s       	OOO%8:M			1	1	1???	/	5	1	1	1???	/	6	@	@	@	@	@	@	,b	2
H 
H 
H
  
  
  "34Db	JKF& [-v66!0 !0 76!0F8 8 8C C C4 [[N 3 3	 3 0 0 0 [!!4)D " F F[/000 0 10F F 0 [V\\\227 7 327 7 7rx   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<   dddej        ej        ged<   dddej        ej        ged<   dddej        ej        ged<   dd d!ej        ej        ged"<   dd d#ej        ej        ged$<   dd d%ej        ej        ged&<   ej	        
                    d'g d(          ej	        
                    d)d*d+g          ej	        
                    d,d-d.g          d/                                     Zd0S )1Test_ttest_CI)r2   r1   r1   r4   )r  )gͿe13@gv7?gę"Ͽg8 {M(?ra  r)  r*  gv7?gx_?r  g
/?gD .ɿ)r1   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   r+  r,  g?JJ?gF?)r   r   r   g{?gads2ѿ)r1   r   r   gs"%οr  gW"?)r   r   r   gW"?r   r   r   g:T'?)r1   r   r   g:пrY   g0:5?r  g0:5?r;  g be?)r1   r   r   rY  r  r  FTr  r   r  c                 
   |r|rt          j        d           |r#t          |          st          j        d           t          j                            d          }|                    |                    d                    }|                    |                    d                    }t          j	        |||||          }ddd	d
}	| j
        |	|         t          |          t          t	          j        |                    f         }
|
\  }}}}}d}t          |j        |                    |          |           t          |j        |                    |          |           t          |j        |                    |          |           |sk|                    d          }t          |j        |                    |          |           t          |j        |                    |          |           d S d S )Nz3Discrepancy in `main`; needs further investigation.z*`trim` is only compatible with NumPy inputl   'Nk' r\   r^   )rY  r  r  r   r   r1   r  rj  rZ  r  )r,  xfailr+   r  r   r  r  re   rh   r  r   r  ceilr/   r
  r  r	  rF  rI  rJ  )rm   rY  r  r  rn   r  ro   rp   r   r;  r  r
  r  r	  rI  rJ  r[  rb  s                     rv   test_confidence_intervalz&Test_ttest_CI.test_confidence_interval  s     	P 	PLNOOO 	F 	FKDEEEi##$788JJszz"~~&&JJszz"~~&&oa(1> > > &'a@@f\+.IBGDMM@R@RRS+.(	2vsDrzz)'<'<4HHHH

2T::::
BJJv$6$6TBBBB 	B((--BBFBJJsOO$????BGRZZ%5%5DAAAAAA	B 	Brx   N)r   r   r   r   r  r   r  rl   r,  r  r  r1  r   rx   rv   r(  r(    s       B 	|$$$ANNNAgJibfWlKAgJiM26JAgJLLLAgJibfWlKAgJiL"&IAgJ%r+=rvrvNAgJ%r+=rvrvNAgJ%r+=rvrvNAgJ%r+=rvrvNAgJ%r+=rvrvNAgJ%r+=rvrvNAgJ[],L,L,LMM[[5$-88[VaX..B B /. 98 NMB B Brx   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   r4   r3   r2   r   r5   r7   r1   rb   rU   r  )N.r  c              3   4   K   | ]}t          |          V  d S rA  rE  r  s     rv   r   z.test__broadcast_concatenate.<locals>.<genexpr>  s(      55588555555rx   )r   r  r(  r3  r   r  r   r  )
r  r"  r  indexr  rC  r5  r%  rF  rG  s
             rv   test__broadcast_concatenater5    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rx   c                 h	   |                      g d          }|                      g d          }|                      d          }|                      d          }t          j        ||d          \  }}t          ||           t          ||           t          j        t          ||          ddi\  }}t          ||           t          ||           |                      g d          }|                      d	          }|                      d
          }t          j        ||d          \  }}t          ||           t          ||           t          j        t          ||          ddi\  }}t          ||           t          ||           |                      d          }|                      d          }|                      d          }|                      d          }|                      || g          }	|                      ||g          }
|                     ddd          }|                     ddd          }|                     ddd          }|                     ||g          }|                     ||g          }t          j        ||dd          \  }}t          ||           t          ||           t          j        t          ||          ddi\  }}t          ||           t          ||           t          j        ||dd          \  }}t          ||           t          ||           t          j        t          ||          ddi\  }}t          ||           t          ||           t          j        |j        |j        dd          }t          |j	        |	           t          |j
        |
           t          |j        |j                  }t          j        |ddi}t          |j	        |	           t          |j
        |
           t          j        ||dd          }t          |j	        |	           t          |j
        |
           t          ||d          }t          j        |ddi}t          |j	        |	           t          |j
        |
           d S )Nri  r  g9(?geFr  r  r  gJ?g9ʿr  g@[?gωұ?ghG?r   r~  r  r4   r  r   r  rU   )re   rh   r  r/   r  r  r  r  r  r
  r	  )rn   r  r"  r  rq  r	  r0  	tr_uneq_n	pr_uneq_nr  r  rvs3r\  r[  rs  rt  r   r-  s                     rv   test_ttest_ind_with_uneq_varr;    s    	

<<<  A


???##A	'	(	(B	)	*	*B?1a5111DAqArAr%{1a'8'8JEJJDAqArAr


###$$A	'	(	(B	)	*	*B?1a5111DAqArAr%{1a'8'8JEJJDAqArAr 
&	'	'B

.//I	'	(	(B

.//IJJRCy!!EJJBx  E;;q#r""D;;q#s##D;;q#s##Dhhd|$$Ghhd|$$G?4A???DAqArAr%{4'>'>P%PPDAqArAr?4A???DAqAy!!!Ay!!!%{4'>'>P%PPDAqAy!!!Ay!!!
/')WYQ%
H
H
HCCM5)))CJ&&&wy'),,D

$d
<e
<
<CCM5)))CJ&&&
/'7e
D
D
DCCM5)))CJ&&&wa000D

$d
<e
<
<CCM5)))CJ&&&&&rx   c                    |                      d          }|                     d          }t          j        t          d          5  t          j        ||d          \  }}d d d            n# 1 swxY w Y   t          ||                     | j	                              t          ||                     d                     t          j        d          5  t          j        ||d          \  }}t          ||                     | j                             t          ||                     | j                             |                     d	| j        gd
d	gg          }t          j        ||                      d          d          \  }}t          ||                     dt          j        g                     t          ||                     dt          j        g                     d d d            d S # 1 swxY w Y   d S )Nr2   r  r   Fr7  r   r  r  r   ra   rU  r   )r  r  r,  r-  r   rh   r  r0   re   r  r   r  rl   )rn   ro   rp   r	  r0  rw  s         rv   test_ttest_ind_zero_divisionr>  ;  s:    	A


A	n,E	F	F	F 6 6q!u55516 6 6 6 6 6 6 6 6 6 6 6 6 6 6Arzz26'**+++Arzz"~~&&&		"	"	" 	5 	5q!u55512::bf--...2::bf--... zzArv;Q011tRXXf%5%5GGG12::r26l334442::r26l33444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s%   A--A14A1DG<<H H 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 )NrD  r  r   r{  r   r   r  r  r   )g8HgW@?)r   rl   rh   r  r   r
  r	  r}  s        rv   test_ttest_ind_nan_2nd_argr@  T  s    	c3AA	A&	1	1	1B	A&	1	1	1BBL2<-e<<<<BIryu5555 
AabbE	"	"BB'''' BC           rx   c                 X   t          |           rtt          j        t          t                    5  t          j        |                     g           |                     g                     }d d d            n# 1 swxY w Y   n;t          j        |                     g           |                     g                     }t          |t
          j	        j
                  sJ |                     | j                  d         }t          |j        |           t          |j        |           d S )Nr   r   )r+   r,  r-  r   r   rh   r  re   r  r  r  rl   r0   r
  r	  )rn   r   r  s      rv   #test_ttest_ind_empty_1d_returns_nanrB  j  s9    || >\,4IJJJ 	B 	B/"**R.."**R..AAC	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B objjnnbjjnn==c5?677777
**RV

R
 CCM3'''CJ$$$$$s   <A88A<?A<ry   rz   c                    |                     d          }|                    |           } t          j                                        5 }|                    t          t                     t          j	        || d          }d d d            n# 1 swxY w Y   t          |t          j        j                  sJ |                    ||j                  }t          |j        |           t          |j        |           d S r  )r  re   r   r  r   r   r   r   rh   r  r  r  r  r   rl   r0   r
  r	  )r"  r  rn   r  r   r   r  s          rv   test_ttest_ind_axis_size_zerorD  y  s    	A


1A		%	%	'	' -3

%'<===oa,,,- - - - - - - - - - - - - - - c5?677777WW^W??NCM>222CJ/////s   	8BBBc                    |                      d          }|                      d          }t          j        ||d          }t          |t          j        j                  sJ |j        j        dk    sJ |j        j        dk    sJ d S r  	r  rh   r  r  r  r  r
  r  r	  rn   r  r"  r   s       rv    test_ttest_ind_nonaxis_size_zerorH    s     	A
A
/!QQ
'
'
'Cc5?677777='''':v%%%%%%rx   c                    |                      d          }|                      d          }t          j        ||d          }t          |t          j        j                  sJ |j        j        dk    sJ |j        j        dk    sJ d S )N)r   r6   r   r  r   rU   r  rF  rG  s       rv   2test_ttest_ind_nonaxis_size_zero_different_lengthsrJ    s     	A
A
/!QQ
'
'
'Cc5?677777='''':v%%%%%%rx   z"Other backends don't like integersr   c                 L   |                      ddg          |                      ddg          }}|                      ddg          |                      ddg          }}|                      ddg          |                      dd	g          }}t          j        ||||||           d S )
Nr   r1   r2   r3   r4         r~     )re   rh   r  )rn   mean1mean2std1std2nobs1nobs2s          rv   test_gh5686rU    s    
 ::q!f%%rzz1a&'9'95EQF##RZZA%7%7$D::sCj))2::sCj+A+A5E	udE5$FFFFFrx   c           	         |                      d          }|                      d          }|                      | j                  }t          j        ||||||d          }t	          |j        |           t	          |j        |           d S )Nr   r   Fr7  )re   rl   rh   r  r0   r
  r	  )rn   zerosixr  r   s        rv   %test_ttest_ind_from_stats_inputs_zerorY    s     ::b>>D
**R..C
**RV

C

$T4dD#QV
W
W
WCCM3'''CJ$$$$$rx   c                    t           j                            d          }|                     |                    d                    }|                     |                    d                    }|                    d          }t          j        ||dd          }t          j        |j                  }t          j	        |t          j                    j
                  j        d	k    sJ t          t          j        ||          |d
           t          j        ||dd          }t          j        |j                  }t          j	        |t          j                    j
                  j        d	k    sJ t          t          j        ||          |d
           |                     g d          |                     dg          }}t          j        ||d          }t          |           rdnd}t          |j        |                     d          |           t          |j        |                     d          |           d S )Nl   bQ )r;  r1   r  )r;  r   r~  Tra   )r  rV   r  r  r  )r1   r2   r4   r;   r7  r\  r  gzNd?rZ  gJ?)r   r  r  re   r  rm  rh   r  r	  r  r  r   quantiler,   r/   r
  )rn   r  ro   rp   rZ  r   r	  r[  s           rv   test_ttest_uniform_pvaluesr\    s    )


0
0C


3::::..//A


3::::..//AA
/!Q$R
8
8
8CZ
##F>&%-//"566=CCCCBK**AD9999
/!Q$R
8
8
8CZ
##F>&%-//"566=CCCCBK**AD9999
 ::iii  "**cU"3"3qA
/!Q$
/
/
/CB<<*44UDCM2::o#>#>TJJJJCJ

> : :FFFFFFrx   c                     |                     |dk              }|                     |dk              }| dk     |z  | dk    |z  z  }|                    ||dz  d|dz  z
            S )NrR  rT  r   r1   r   )re   r  )r	  r0  rk  rn   rR  rT  r  s          rv   _convert_pvalue_alternativer^    sl     ::cVm$$Djj	)**G
a%4QUg-.A88AqsA!G$$$rx   c                 

   d\  }}}t           j                            dd|||f          }|                     |          }|                     d||f          }t          j        ||d          \  }}t          j        |dd          \  }}	t          j        |d d ddf         d          \  }
}t          ||d	
           t          |d         |
d	
           t          |j        ||f           |                     |d|f          }t          j        ||d          \  }}t          j        |dd          \  }}	t          j        |dd d df         d          \  }
}t          ||d	
           t          |d         |
d	
           t          |j        ||f           |                     ||df          }t          j        ||d          \  }}t          j        |dd          \  }}	t          j        |ddd d f         d          \  }
}t          ||d	
           t          |d         |
d	
           t          |j        ||f           t          j        |                     g d          d          \  }}t          | 
                    |          |                     | j                             t          ||                     d                     t          j        |d d d d d d f         d          \  }}t          j        |d d d d d d f         dd          \  }}t          ||d|           }t          ||           t          ||           t          j        |d d d d d d f         dd          \  }}t          ||d|           }t          ||           t          ||           t          j        d          5  t          j        |                     g d          d          }t          |j        |                     | j                             t          |j        |                     | j                             |                     dt          j        gddgg          }t          j        |d          }t          |j        |                     d| j        g                     t          |j        |                     d| j        g                     d d d            d S # 1 swxY w Y   d S )Nr[   r  r  r4   r[   r  r   r   rU   r   r  rZ  r  r1   )r   r   r   r   rT  rX  rR  r  r=  r  )rh   r  r  re   r  r  r/   r   r  r0   ro  r  r^  r   r  r
  rl   r	  )rn   r2  r3  n3rvn1r  r  r  r  p2r  p3r	  r0  rq  r  pcr   rw  s                      rv   test_ttest_1samp_newrf    s    JBB:>>arR>==D::dD ggq"bk""GtW1555FBtRa000FBtAAAq!G}b11FBB''''BtHbu----B8$$$ggr1bk""GtW1555FBtRa000FBtAqqq!G}b11FBB''''BtHbu----B8$$$ggr2qk""GtW1555FBtRa000FBtAq!!!G}b11FBB''''BtHbu----B8$$$ RZZ55r::DAqBFF1IIrzz"&11222Arzz"~~&&&tAAAqqq!!!G}b11FBT!!!QQQ']BIFFFDAq	$RY	;	;BArArT!!!QQQ']BFCCCDAq	$RVR	8	8BArAr		"	"	" 	> 	>

<<< 8 8"==rzz"&'9'9:::
BJJrv$6$6777 zzB<#r344b))rzz2rv,'?'?@@@
BJJBF|$<$<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   DS88S<?S<z(Only NumPy has nan_policy='omit' for nowc                 n   d\  }}}t           j                            dd|||f          }|                     |          }| 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          \  }}t          ||d|           }	t          ||	           t          ||           t          j        |d d d d d d f         ddd          \  }}t          ||d|           }	t          ||	           t          ||           d S )N)r4   r[   r  r4   r[   r  r   r1   r   r2   r3   r7   r   r   r   rT  r  rR  )rh   r  r  re   rl   r  r^  r/   )
rn   r2  r3  ra  rb  rq  r  r	  r0  re  s
             rv   test_ttest_1samp_new_omitrh  0  sn   
 JBB:>>arR>==D::dD&D1ac1Q3tAAAqqq!!!G}bVDDDFBT!!!QQQ']B6)24 4 4DAq	$RY	;	;BArArT!!!QQQ']B6)/1 1 1DAq	$RVR	8	8BArArrx   c                    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          |          }|                                \  }}|                    |d          }|                    |d          }t          j        ||d          }|                     |                     d| j                  |j        j
                  }	t#          |j        |	           t          j        ||d          }t#          |j        |	           d S )Nl   iI}pC )r   r  r  r  z%`popmean.shape\[axis\]` must equal 1.)r4   r1   r  r   r  )r  rV   )r4   r   r  )r4   r  rU   g?r5  )r   r  r  re   r,  r   r   rh   r  r
  r  r)   rF  r  r{  r   r	  r/   )
rn   r  ro   rt  r  r   r   r%  rn  r  s
             rv   test_ttest_1samp_popmean_arrayrj  J  s    )

 3
4
4C


$$A


1A6Gjj4455G	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 jj4455G

AwR
8
8
8C='))))a  G""$$DAqAB''AAB''A

Aqr
2
2
2C
//"**T*<<cj>N
O
OCCJ$$$

Aqr
2
2
2CCJ$$$$$s   B55B9<B9c                      e Zd Zed             Z edd          ej                            d          ed                                     Z	d Z
ed             Zd	 Z edd          ej                            d          ed
                                     Z edd          ej                            d          ed                                     Zed             ZdS )TestDescribec                 6   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   |dk    sJ t          |d         |                    d                     t          |d         |                    d                     t          ||                    d                     t          ||                    |j	                             t          ||                    |j	                             t          ||                    |j	                             d S )Nr  r  r  r   r   r   r   )
r   r   r  r   r   rh   describere   r0   rl   )	rm   rn   r   rG  r  rF  ro  skkurts	            rv   test_describe_scalarz!TestDescribe.test_describe_scalarm  s      	GCk(8<<<	G 	GJJ~'JKKK$)N2::b>>"3E$F$F!Ar1aT	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G Avvvv1rzz#///1rzz#///2::c??+++2::bf--...BJJrv..///bjj0011111s5   BAB6BB	B	B	
BB Bry   rz   rE   rH   c                 p   t          |                    d                    }|                    |                    d          |                    dd          f          }d}|                    g d          |                    g d          f}|                    g d          }|                    g d	          }|                    d
gdz            }|                    dgdz            }	t          j        |          \  }
}}}}}|
|k    sJ t          |d         |d                    t          |d         |d                    t          ||d|	                    |j
                  j        z             t          ||d|	                    |j
                  j        z             t          ||           t          ||	           t          j        |j        d          \  }
}}}}}|
|k    sJ t          |d         |d                    t          |d         |d                    t          ||d|	                    |j
                  j        z             t          ||d|	                    |j
                  j        z             t          ||           t          ||	           d S )Nr   r0  r1   r3   rD  r4   r   r   r   r   rD  rD  rD  rD  ffffff?rw  rw  rw  )r  r  r  r  H,p ?r3   TUUUUUr   r   rZ  rU   )r)   re   r  r  r   rh   rn  r0   r/   r   r3  epsr  rm   rn   r   ro   ncmmcmcvcskckurtcrG  r  rF  ro  ro  rp  s                   rv   test_describe_numbersz"TestDescribe.test_describe_numbers{  s    ""**R..11NNBGGFOORWWVR-@-@ABBzz***++RZZ8H8H8H-I-IJZZ,,,--ZZ,,,--jj-.233

./!344 %q 1 12q!RBwwww1s1v&&&1s1v&&&2A(9(9(=$=>>>>2A(9(9(=$=>>>>C   e$$$ %qs ; ; ;2q!RBwwww1s1v&&&1s1v&&&2A(9(9(=$=>>>>2A(9(9(=$=>>>>C   e$$$$$rx   c                 d   t          j        d          }t           j        |d<   d\  }}d}d}d}d}t          j        |d	          \  }}	}
}}}t          ||           t          |	|           t          |
|           t          ||           t          ||           t          ||d
           d S )Nr   r8   )r8   )r   r   r   rA   r   gGzr   r   r^   r  )r   r   rl   rh   rn  r   r   )rm   ro   r|  r}  r~  r  r  r  rG  r  rF  ro  ro  rp  s                 rv   describe_nan_policy_omit_testz*TestDescribe.describe_nan_policy_omit_test  s    IcNNv!!C# %qV D D D2q!RQRQQ!"c***!$r::::::rx   c                    |                     d          }|                    |dk    |                    |j                  |          }d}t	          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        |d          \  }}}}}}	|                    |j                  d         }
|d	k    sJ t          |d
         |
           t          |d         |
           t          ||
           t          ||
           t          ||
           t          |	|
           t          |          r|                                  nKd}t	          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr   r8   r   r   r   r   r=  r   r[   r   r   z9`nan_policy='omit' is incompatible with non-NumPy arrays.r   r   r   )r   r  re   rl   r,  r   r   rh   rn  r0   r+   r  )rm   rn   ro   rt  rG  r  rF  ro  ro  rp  r  s              rv   test_describe_nan_policy_otherz+TestDescribe.test_describe_nan_policy_other  s   IIcNNHHQT2::bf--q111]:W555 	2 	2N11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 !&q[ I I I2q!Rjj  $Bwwww1s###1s###33C   c"""B<< 	5..0000QGz999 5 5qV44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1]:W555 	3 	3N12222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s6   &B		BBF))F-0F-G55G9<G9c                 v    t          j        t          j        d                    }d}t	          ||           d S )NrN   )r  minmaxrk   variancer  r  )rh   rn  r   r   r   )rm   r  r  s      rv   test_describe_result_attributesz,TestDescribe.test_describe_result_attributes  s6     	"..S
FJ/////rx   c                     t          |                    d                    }|                    |                    d          |                    dd          f          }d}|                    g d          |                    g d          f}|                    g d          }|                    g d	          }|                    d
gdz            }|                    dgdz            }	t          j        |d          \  }
}}}}}|
|k    sJ t          |d         |d                    t          |d         |d                    t          ||           t          ||           t          ||           t          ||	           d S )Nr   r0  rs  rD  r4   rt  ru  rv  )Q?r  r  r  rx  r3   ry  r   r  r   	r)   re   r  r  r   rh   rn  r0   r/   r{  s                   rv   test_describe_ddofzTestDescribe.test_describe_ddof  s    ""**R..11NNBGGFOORWWVR-@-@ABBzz***++RZZ8H8H8H-I-IJZZ,,,--ZZ00011jj-.233

./!344 %qq 9 9 92q!RBwwww1s1v&&&1s1v&&&22C   e$$$$$rx   c                     t          |                    d                    }|                    |                    d          |                    dd          f          }d}|                    d          |                    d          f}|                    d          }|                    d          }|                    d          }|                    d	          }	t          j        |d 
          \  }
}}}}}|
|k    sJ t          |d         |d                    t          |d         |d                    t          ||           t          ||           t          ||           t          ||	           d S )Nr   r0  rs  rD  r  rw  ga+?gE,p ?gUUUUUUrU   r   r   r  r{  s                   rv   test_describe_axis_nonez$TestDescribe.test_describe_axis_none  s\    ""**R..11NNBGGFOORWWVR-@-@ABB zz#

30ZZ*++ZZ+,,jj+,,

.// !&qt < < <2q!RBwwww1s1v&&&1s1v&&&22C   e$$$$$rx   c                     d}t          j        t          |          5  t          j        |                    g                      d d d            d S # 1 swxY w Y   d S )NzThe input must not be empty.r   )r,  r   r   rh   rn  re   )rm   rn   rt  s      rv   test_describe_emptyz TestDescribe.test_describe_empty  s    0]:W555 	+ 	+N2::b>>***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   (AAAN)r   r   r   r'   rq  rH   r,  r  r  r  r  r  r  r  r  r  r   rx   rv   rl  rl  l  s       2 2 2 f%5666[/00% %  10 76%6; ; ;" 3 3 3:0 0 0 f%5666[/00% %  10 76%$ f%5666[/00% %  10 76%. + + + + +rx   rl  c                   2   e Zd Zd Z edd          ej                            d          ej                            dg d          d                                     Z	 edd          ej                            d          d	                         Z
d
S )NormalityTestsc                    t          t          | j                  }|                    d          }t	          |          rt          j        t          t                    5   ||          }|                    |j	                  }t          |j        |           t          |j        |           d d d            d S # 1 swxY w Y   d S d}t          j        t          |          5   ||           d d d            d S # 1 swxY w Y   d S )Nr   r   z...requires at least...)r6  rh   	test_namere   r+   r,  r-  r   r   rl   r0   r
  r	  r   r   )rm   rn   r  ro   r   r  rt  s          rv   test_too_smallzNormalityTests.test_too_small  s|   5$.11JJrNNB<< 		08MNNN 1 1hqkkjj((s333
C000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0Gz999                   s%   AB<<C C &C??DDry   rz   rE   rH   rY  r  c                    | j         }t          t          |          }|                    | j        d                   }|                    | j        d                   }i }|dv r>|dv r&|dk    r|dz  nd|dz  z
  }|dk    rd|z
  n|}||d<   nt          j        d	           |                    d
          dz  } ||fi |}	|	\  }
}t          |
|           t          ||           t          |	d|           d S )Nr   r   >   rR  rT  >   skewtestkurtosistestrR  r1   r  rY  z,`alternative` not available for `normaltest`)r  ra   r   r   r1   r  r  ra   r   r   r1   r  r  ra   r   r   r1   r  r  ra   r   r   r1   r  r  r  )	r  r6  rh   re   case_refr,  r  r/   r   )rm   rY  rn   r  r  ref_statisticr  r.  ro   r   res_statistic
res_pvalues               rv   test_against_RzNormalityTests.test_against_R  s0    N	5),,zz$-"233ZZa 011
---888-8F-B-BZ\\*UV,
-6*-D-DQz\\*
(3}%%JKKKJJ.//2hq##F##$'!z}555
J///C!8R@@@@@@rx   c                    t          t          | j                  }|                    d          }|                    |j        |j                  }|                    |dk    ||          }t          j	        d          5   ||          }t          |j        |           t          |j        |           d d d            d S # 1 swxY w Y   d S )Nr  r5  r  r  r  )r6  rh   r  r   re   rl   r3  r  r   r  r0   r
  r	  )rm   rn   r  ro   r  r   s         rv   test_nanzNormalityTests.test_nan7  s     5$.11IIcNNjjqwj//HHQ"Wc1%%[*** 	- 	-(1++CCM3///CJ,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   6CCCN)r   r   r   r  rH   r,  r  r  r  r  r  r   rx   rv   r  r    s           f%5666[/00[],L,L,LMMA A NM 10 76A< f%5666[/00	- 	- 10 76	- 	- 	-rx   r  c                   "    e Zd ZdZdZd Zd ZdS )TestSkewTestr  )gvO?gbH`?c                    t           j                            ddd          }|                    |          }t          j        |d          j        }t          ||                    d|j                  d	
           d S )Nr   r;  {   )r  r  r  rT  rX  r   r5  g?̔>r  )rh   skewnormr  re   r  r	  r/   r3  )rm   rn   r  a1_xpr]  s        rv   test_intuitivezTestSkewTest.test_intuitiveH  sq    ^!%cBB

2~e;;;BbjjEKj@@tLLLLLLrx   c                 V   t          j        |                    d                     |                    d          }t          |          rt	          j        t          t                    5  t          j        |          }|                    |j	                  }t          |j        |           t          |j        |           d d d            d S # 1 swxY w Y   d S d}t	          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   z+`skewtest` requires at least 8 observations)rh   r  r   r+   r,  r-  r   r   re   rl   r0   r
  r	  r   r   rm   rn   ro   r   r  rt  s         rv   "test_skewtest_too_few_observationsz/TestSkewTest.test_skewtest_too_few_observationsO  s    	ryy~~&&&IIcNNB<< 		"08MNNN 1 1nQ''jj((s333
C000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 DGz999 " "q!!!" " " " " " " " " " " " " " " " " "s%   ,ACCC<DD"%D"N)r   r   r   r  r  r  r  r   rx   rv   r  r  D  s?        I9HM M M" " " " "rx   r  c                   Z   e Zd ZdZdZ edd          ej                            d          d                         Z	 edd          ej                            d          d                         Z
 edd          ej                            d          d	                         Zd
S )TestKurtosisTestr  )gglg2J@?ry   rz   rE   rH   c                     t           j                            dd          }|                    |          }t          j        |d          j        }t          ||                    d|j                  d	           d S )
Nr;  r  )r  r  rT  rX  r   r5  r  r  )rh   laplacer  re   r  r	  r/   r3  )rm   rn   r  a2_xpr]  s        rv   r  zTestKurtosisTest.test_intuitivee  sr     ]E<<

2!%Y???FbjjEKj@@uMMMMMMrx   c                     g d}t          j        d t          |          D                       }|                    ||j                  }t          j        |          d         dk     sJ d S )N)
r  r   :   r6   r   )   r   r   r      c                 >    g | ]\  }}t          j        ||          S r   )r   r   )rB  r  r  s      rv   rD  z;TestKurtosisTest.test_gh9033_regression.<locals>.<listcomp>t  s&    CCCArwq!}}CCCrx   r5  r   r  )r   r  	enumeratere   r   rh   r  )rm   rn   r  ro   s       rv   test_gh9033_regressionz'TestKurtosisTest.test_gh9033_regressionn  ss    
 766ICC61B1BCCCDDJJq
J++!!$$Q'$......rx   c                    t          j        |                    d                     d}t          j        t
          |          5  t          j        |                    d                     d d d            n# 1 swxY w Y   t          j        t
          |          5  t          j        |                    d                     d d d            n# 1 swxY w Y   |                    d          }t          |          rt          j        t          t                    5  t          j	        |          }|
                    |j                  }t          |j        |           t          |j        |           d d d            d S # 1 swxY w Y   d S d}t          j        t           |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr  z+`kurtosistest` p-value may be inaccurate...r   rN   g      3@r   z/`kurtosistest` requires at least 5 observations)rh   r  r   r,  r-  r  r+   r   r   r  re   rl   r0   r
  r	  r   r   )rm   rn   rt  ro   r   r  s         rv   &test_kurtosistest_too_few_observationsz7TestKurtosisTest.test_kurtosistest_too_few_observationsx  s    	299T??+++?\+W555 	/ 	/ryy~~...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/\+W555 	0 	0ryy///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 IIcNNB<< 		&08MNNN 1 1nQ''jj((s333
C000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 HGz999 & &"1%%%& & & & & & & & & & & & & & & & & &sI   (A99A= A=(CCC"AFFF2GGGN)r   r   r   r  r  rH   r,  r  r  r  r  r  r   rx   rv   r  r  a  s        I:Hf%5666[/00N N 10 76N f%5666[/00/ / 10 76/ f%5666[/00& & 10 76& & &rx   r  c                       e Zd ZdZdZdS )TestNormalTest
normaltest)gاc@g?N)r   r   r   r  r  r   rx   rv   r  r    s        I9HHHrx   r  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   r1   r[   rY  rv  c                     t          j        | j        | j        |          j        }t          j        | j        | j        d|          j        }t          ||           d S )NrX  F)use_continuityrY  )rh   ranksumsro   rp   r	  mannwhitneyur   )rm   rY  r  r  s       rv   test_ranksums_result_attributesz,TestRankSums.test_ranksums_result_attributes  sk     ~dfdf*57 7 77= 	!$&$&.9; ; ;;A 	d#####rx   c                 d    t          j        | j        | j                  }t	          |d           d S )Nr  )rh   r  ro   rp   r   rm   r   s     rv   test_ranksums_named_resultsz(TestRankSums.test_ranksums_named_results  s.    nTVTV,,C!899999rx   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   rX  )r   r   rh   r  ro   rp   r#  s    rv   ru  z"TestRankSums.test_input_validation  s    :-KLLL 	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   r   r  r(  r3  ro   rp   r,  r  r  r  r  ru  r   rx   rv   r  r    s        INN19>>!R  DAq[],L,L,LMM$ $ NM$: : :A A A A Arx   r  c                       e Zd Zd Z ed          ej                            d          d                         Zd Z	d Z
dS )	TestJarqueBerac                     g d}|                     |          }|                     ddg          }t          j        |          }t          |j        |d                    t          |j        |d                    d S )N)g8MK~Ŀg/?g6r=TgGg!J_l gq"?gPHK?r   r   )re   rh   jarque_berar/   r
  r	  )rm   rn   ro   r  r   s        rv   test_jarque_bera_against_Rz)TestJarqueBera.test_jarque_bera_against_R  s{    
; ; ;JJqMMjj*O<==""s1v...
CF+++++rx   Tr  rH   c                 L   t           j                            d           t           j                            ddd          }t	          j        t          |                    x}\  }}t	          j        t          |                    x}\  }}t	          j        |                    dd                    x}\  }	}
||cxk    r*|	cxk    r#|j	        cxk    r|j	        cxk    r|j	        k    sn J ||cxk    r*|
cxk    r#|j
        cxk    r|j
        cxk    r|j
        k    sn J d S )Nr  r   r   r  r1   P  )r   r  r(  r  rh   r  r  tuplerj   r
  r	  )rm   ro   jb_test1JB1r  jb_test2JB2rc  jb_test3JB3rd  s              rv   test_jarque_bera_array_likez*TestJarqueBera.test_jarque_bera_array_like  sJ    		y!!!IQ6**".tAww77773".uQxx88873".qyyE/B/BCCC73cbbbbSbbbbH$6bbbb(:LbbbbPXPbbbbbbbRVVVV2VVVVVVVVHOVVVVxVVVVVVVVrx   c                    |                     g           }t          |          rt          j        t          t
                    5  t          j        |          }d d d            n# 1 swxY w Y   |                     |j                  }t          |j
        |           t          |j        |           d S d}t          j        t          |          5  t          j        |          }d d d            d S # 1 swxY w Y   d S )Nr   z%At least one observation is required.)re   r+   r,  r-  r   r   rh   r  rl   r0   r
  r	  r   r   r  s         rv   test_jarque_bera_sizez$TestJarqueBera.test_jarque_bera_size  sf   JJrNNB<< 		+08MNNN + +'**+ + + + + + + + + + + + + + +**RV$$CCM3///CJ,,,,,=Gz999 + +'**+ + + + + + + + + + + + + + + + + +s$   A&&A*-A*C66C:=C:c                 r   t           j                            d          }|                    |                    d                    }t	          j        |d           }t	          j        |                    |d                    }t          |j        |j                   t          |j	        |j	                   t	          j        |d          }t	          j        |dd d f                   \  }}t	          j        |dd d f                   \  }}	t          |j        |                    ||g                     t          |j	        |                    ||	g                     t	          j        |j        d          }
t          |j        |
j                   t          |j	        |
j	                   d S )	NiKr_  )r1   r  r  rU   r  r   r   )r   r  r`  re   rh   r  rj   r0   r
  r	  r/   r  )rm   rn   r  ro   r   r  s0r  s1r  resTs              rv   r?  zTestJarqueBera.test_axis  sr   i###33JJszzwz//00---

1e 4 455s}555
CJ///***"1QT7++B"1QT7++Brzz2r(';';<<<
BJJBx$8$8999 1---t~666
DK00000rx   N)r   r   r   r  rH   r,  r  r  r  r  r?  r   rx   rv   r  r    s        , , , d###[/00
W 
W 10 $#
W+ + +1 1 1 1 1rx   r  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@rY   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 )	NrR  rX  rT    r  g=_A?r  glPz.?rh   r  rf   Yr   r   r
   r  	rm   u1r  u2rc  u3rd  u4p4s	            rv   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Rrx   c                 $   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||           t	          |d           t	          |d           t          |d| j                   d S )NrP  rX  r  r  glPz.?r  rh   r  rf   r  r   r
   r  rm   r  r  r  rc  s        rv   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	: 	: 	: 	: 	: 	:rx   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 )
NFrR  rX  rT  r  r  gii5?r  g22?r  r  s	            rv   &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Srx   c                 (   t          j        | j        | j        dd          \  }}t          j        | j        | j        dd          \  }}t	          ||           t	          |d           t	          |d           t          |d| j                   d S )NFrP  rX  r  r  g22?r  r  r  s        rv   &test_mannwhitneyu_no_correct_two_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sided-  s    #DFDFE0;= = =B#DFDFE0;= = =B 	RRRB 4(,(8	: 	: 	: 	: 	: 	:rx   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   rD  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r   r   r   r   rD  r   r   rD  r   r   rD  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r   r   r   r   r   r   r   r   r   rD  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   rD  r   rD  r   r   r   r   rD  r   r   r   rD  r   r   r   r   r   rD  r   r   r  r   r   r   r   r   r   r   r   r   r   rD  r   rD  r   r   r   r   r   r   rD  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r   r   r   r   r   rD  rD  r   r   rD  r   r   rD  r   rD  r   r   r   r   rD  rD  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r   r   r   r   r   rD  rD  rD  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r   r   rD  r   r   r   r   rD  r   r   r   r   r   r   r   r   r   r   r   r   rD  r   r   r   rD  r   r   r   r   r   r   rR  rX  )     @g ?չ>rT  )r  g&)E?rP  )r  g?չ?)r   r   r   rh   r  r*  s      rv   test_mannwhitneyu_onesz'TestMannWhitneyU.test_mannwhitneyu_ones9  s    H . . . / /& H & & & ' ' 	*1aVDDD:	< 	< 	< 	*1aYGGG2	4 	4 	4*1a[III5	7 	7 	7 	7 	7rx   c                 l    d}t          j        | j        | j        d          }t	          ||           d S )Nr  rR  rX  )rh   r  rf   r  r   rM  s      rv   #test_mannwhitneyu_result_attributesz4TestMannWhitneyU.test_mannwhitneyu_result_attributesd  s8    ,
 VDDDC,,,,,rx   N)r   r   r   rf   r  r  r  r  r  r  r  r  r   rx   rv   r  r    s        	- 	- 	-A	N 	N 	NA KS S S : : :T T T(
: 
: 
:)7 )7 )7V- - - - -rx   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(@r  r  rc  g333333@ffffff@g333333@r=   r  皙	@r  r.  r.  r<   r  ffffff@ @333333?r  r;   ?r  r  r  r  r  r  r  r:   r  r  r  r   g/"?r4   r  )r   rh   pointbiserialrr   r   r  r
  )ro   rp   r  r   s       rv   test_pointbiserialr  k  s    	 	 	A	& 	& 	&A ,Q2215wBBB +J

q!
$
$CZ(((#-00000rx   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   r1   r3   )r6   r  r6   r   )r   r2   r5   r8   )r  r   r   r  r4   )㪪@I?g&>ڿr	  r	  )5@㪪@gIr	  r	  r1   r7   r  r\   )r4   r\   r8   r2   r1   r1   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r3   )
r   r   rh   obrientransformr   r   r   r   r  repeat)r~  r  r  r  r  r  r"  r  ra  valuesrepsrh  transformed_valuess                rv   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======rx   rj  )rV   r3  r[  weightsc                 T   |p| j         }t          |          dk    r|\  }}n|\  }}	}|                     ||          }|                     ||          }||                     ||          n|}t          |          dk    r|fn||	f} |||||d}
t          |
||           d S )Nr1   r5  )rV   r3  r	  rZ  )r   ri  re   r/   )rn   mean_funrV   r3  r[  r	  r-  
array_liker  r0  ro   s              rv   check_equal_xmeanr	    s     RZE
4yyA~~"
GG!%
AwJe44Jjjj..G292Ebjjj...7GIINNJ==QD$T@@@AAwT******rx   c                  2    t          | dt          j        i|S Nr	  )r	  rh   r  r-  r.  s     rv   check_equal_gmeanr	        dCU[CFCCCrx   c                  2    t          | dt          j        i|S r	  )r	  rh   hmeanr	  s     rv   check_equal_hmeanr	    r	  rx   c                  2    t          | dt          j        i|S r	  )r	  rh   pmeanr	  s     rv   check_equal_pmeanr	    r	  rx   c                   \   e Zd Zd Zd Zd Z edd          ej        	                    d          d                         Z
d	 Zd
 Zd Zd Zd Zej                            dd          ej        	                    d          d                         Zd Zd Zd Zed             ZdS )	TestHMeanc                 6    g d}d}t          |||           d S N)r   r   r1   r   r  r	  rm   rn   r  r  s       rv   test_0zTestHMean.test_0  +    II!W,,,,,,rx   c                 f    g d}d}t          |||           g d}d}t          |||           d S )NrC  g=b#A@r  rW  gQ?r	  r 	  s       rv   test_1dzTestHMean.test_1d  sP    555!W,,,,LL:!W,,,,,,rx   c                 \    t          j        ddg          }d}t          |||d           d S )Nr   r   r   rn   r[  r   r   r	  r 	  s       rv   test_1d_with_zerozTestHMean.test_1d_with_zero  s7    HaV!W#666666rx   rG   ``array_api_strict.where` `fillvalue` doesn't accept Python scalars. See data-apis/array-api#807.rE   rH   c                     t          j        g d          }d}t          j        t          |          5  t          ||j        |d           d d d            d S # 1 swxY w Y   d S )Nr   r   ra   z$The harmonic mean is only defined...r   r   r&	  )r   r   r,  r-  r   r	  rl   )rm   rn   r  rt  s       rv   test_1d_with_negative_valuez%TestHMean.test_1d_with_negative_value  s     HZZZ  8\.888 	: 	:aBS9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   AA!Ac                 h    g dg dg dg}d}t          t          j        |          ||           d S )Nr[   r  r  r  r~  r\  rD  r_  r>  r~  rI  x   gmWUC@r  )r	  r   r   r 	  s       rv   test_2dzTestHMean.test_2d  sJ    ///1D1D1DE"(1++w2666666rx   c                 n    g dg dg dg}t          j        g d          }t          ||d|           d S )Nr.	  r/	  r0	  )U|ϊ6@g4.=C@JQ6LsJ@E]P@r   rV   rn   r'	  r 	  s       rv   test_2d_axis0zTestHMean.test_2d_axis0  sU    ///1D1D1DE(OOOPP!W1444444rx   c                 n    g dg dg dg}t          j        g d          }t          ||d|           d S )Nr[   r   r  r  r/	  r0	  )r4	  r   r5	  r6	  r   r7	  r'	  r 	  s       rv   test_2d_axis0_with_zeroz!TestHMean.test_2d_axis0_with_zero  sS    __...0C0C0CD(GGGHH!W1444444rx   c                 n    g dg dg dg}t          j        g d          }t          ||d|           d S )Nr.	  r/	  r0	  )g3333333@O@y@Y@r   r7	  r'	  r 	  s       rv   test_2d_axis1zTestHMean.test_2d_axis1  sU    ///1D1D1DE(<<<==!W1444444rx   c                 n    g dg dg dg}t          j        g d          }t          ||d|           d S )Nr:	  r/	  r0	  )r   r=	  r>	  r   r7	  r'	  r 	  s       rv   test_2d_axis1_with_zeroz!TestHMean.test_2d_axis1_with_zero  sS    __...0C0C0CD(;;;<<!W1444444rx   T,array-likes only supported for NumPy backendr   c                     g d}g d}d}t          j        ||          }t          |t          j        |          d           d S )Nr1   r[   r5   r[   r4   r2   r  r	  h㈵>rZ  )rh   r	  r/   r   re   rm   rn   r  r	  r  r   s         rv   test_weights_1d_listzTestHMean.test_weights_1d_list  sV     JJ** k!W---RZ00t<<<<<<rx   c                     t          j        g d          }t          j        g d          }d}t          |||d|           d S )NrD	  rE	  r2   rG	  r	  r[  rn   )r   re   r	  rm   rn   r  r	  r  s        rv   test_weights_1dzTestHMean.test_weights_1d  sN     Jzzz""*ZZZ((!WgDRHHHHHHrx   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 )
Nr1   r4   r[   r5   r   r2   r   rG	  rV   r	  r[  rn   r'	  rL	  s        rv   test_weights_2d_axis0zTestHMean.test_weights_2d_axis0  s|     Hq!fr1g1v.//(RGaVaV455(Aq6""!W1gDRPPPPPPrx   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 )
NrD	  r6   r6   r6   rE	  r;  r2   r6   r   rG	  rO	  r'	  rL	  s        rv   test_weights_2d_axis1zTestHMean.test_weights_2d_axis1"  sp     Hjjj))),--(JJJ			233(Aq6""!W1gDRPPPPPPrx   c                     t          j        g d          }t           j                            g dg d          }d}t           j        }t          |||dt           j        |           d S )Nr1   r[   r5   r  r[   r4   r2   r  r   r   r   r   r  r2   rG	  r	  r[  r3  rn   )r   r   r  r	  r   rL	  s        rv   test_weights_masked_1d_arrayz&TestHMean.test_weights_masked_1d_array*  sr     H^^^$$%++nnn<<<+@@U!WgD "
r	3 	3 	3 	3 	3 	3rx   N)r   r   r   r!	  r$	  r(	  rH   r,  r  r  r,	  r2	  r8	  r;	  r?	  rA	  rI	  rM	  rP	  rS	  r(   rY	  r   rx   rv   r	  r	    s       - - -
- - -7 7 7
 (UW W W [/00: : 10W W:7 7 75 5 55 5 5
5 5 55 5 5
 [!!= "   [/00
= 
= 10	 

=I I IQ Q QQ Q Q 3 3 3 3 3rx   r	  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ej                            d	d
          ej                            d          d                         Zd Zed             ZdS )	TestGMeanc                 6    g d}d}t          |||           d S r	  r	  r 	  s       rv   r!	  zTestGMean.test_08  r"	  rx   c                    g d}d}t          |||           g d}t          dd          }t          ||d|           t          g dt                    }t          dd          }t          |||j        |	           d S )
NrC  gsŤF@r  rW  r  r`  r  r[  rn   )r3  rn   )r	  r   r   r   r 	  s       rv   r$	  zTestGMean.test_1d=  s    555!W,,,,LLw//!W5R8888,,,((w//!WBJ2>>>>>>rx   c                 D    g dg dg dg}d}t          |||           d S )Nr.	  r/	  r0	  g/,$qJ@r  r]	  r 	  s       rv   r2	  zTestGMean.test_2dL  sB    ///1D1D1DE!W,,,,,,rx   c                     g dg dg dg}t          j        g d          }t          ||d|           t          g dg dg dg          }t          g d          }t          ||dd|	           d S )
Nr.	  r/	  r0	  )g4@A@g5H@g`8|wЭN@gm~&+R@r   r7	  rW  r  rV   r[  rn   r   r   r	  r 	  s       rv   r8	  zTestGMean.test_2d_axis0R  s    ///1D1D1DE(NNNOO!W14444<<<|||<==%%!W15R@@@@@@rx   c                 
   g dg dg dg}t          j        g d          }t          ||d|           t          g dg dg dg          }t          dd	          }t          |||g          }t          ||dd
|           d S )Nr.	  r/	  r0	  )gD" 6"6@gcP@g
ҧZ@r   r7	  rW  r  r`  r  rb	  )r   r   r	  r   )rm   rn   r  r  ro  s        rv   r?	  zTestGMean.test_2d_axis1\  s    ///1D1D1DE(CCCDD!W14444<<<|||<==-))Aq	""!W15R@@@@@@rx   c                 R    t          g d          }d}t          ||d|           d S )N)g}Ô%ITrA  gu <7~rA  r  r_	  )r   r	  r 	  s       rv   test_large_valueszTestGMean.test_large_valuesg  s8    '''((!W5R888888rx   c                     g d}d}t          j        d          5  t          |||           d d d            d S # 1 swxY w Y   d S )N)
r[   r  r  r  r~  r\  rD  r_  r>  r   r   r  r=  r  )r   r  r	  r 	  s       rv   test_1d_with_0zTestGMean.test_1d_with_0l  s    333[X&&& 	1 	1aR0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   <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)
r[   r  r  r  r~  r\  rD  r_  r>  ra   r  r  r  )r   rl   r  r	  r 	  s       rv   test_1d_negzTestGMean.test_1d_negs  s    444&[*** 	1 	1aR0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   AA
A
TrB	  r   rH   c                     g d}g d}d}t          j        ||          }t          |t          j        |          d           d S )Nr  r1   r4   r5   r3   r2   GZ*oG8@rF	  rG	  rZ  )rh   r  r/   r   re   rH	  s         rv   rI	  zTestGMean.test_weights_1d_listz  sV     OO!//
 k!W---RZ00t<<<<<<rx   c                     t          j        g d          }t          j        g d          }d}t          |||d|           d S )Nr  rl	  rm	  rG	  rK	  rc	  rL	  s        rv   rM	  zTestGMean.test_weights_1d  sN     H___%%(???++!WgDRHHHHHHrx   c                     t          j        g d          }t           j                            g dg d          }d}t           j        }t          |||dt           j        |           d S )Nr|  )r1   r4   r5   r3   r2   r4   )r   r   r   r   r   r   r  rm	  rG	  rX	  )r   r   r  r	  r   rL	  s        rv   rY	  z&TestGMean.test_weights_masked_1d_array  s{     H'''((%++0007I7I7I+JJU!WgD "
r	3 	3 	3 	3 	3 	3rx   N)r   r   r   r!	  r$	  r2	  r8	  r?	  rf	  rh	  rj	  r,  r  rH   r  rI	  rM	  r(   rY	  r   rx   rv   r[	  r[	  6  s       - - -
? ? ?- - -A A A	A 	A 	A9 9 9
1 1 11 1 1 [!!= "   [/00= = 10	 
=I I I 3 3 3 3 3rx   r[	  c            
          e Zd Zd Zd Zd Zd Zd Z edd          e	j
                            d	          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e	j
                            dd          e	j
                            d	          d                         Zed              Ze	j
                            d!g d"          d#             Zd$S )%	TestPMeanc                 L    t          j        | |z            | j        z  d|z  z  S rS  )r   r  r  r  r0  s     rv   pmean_referencezTestPMean.pmean_reference  s$    q!tqv%1--rx   c                 l    t          j        || |z  z            t          j        |          z  d|z  z  S rS  )r   r  )r  r0  r	  s      rv   wpmean_referencezTestPMean.wpmean_reference  s0    wA~&&8AaC@@rx   c                    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          |                    dg                     d d d            d S # 1 swxY w Y   d S )NzPower mean only defined forr   rm  r   )r,  r   r   rh   r	  re   r  s     rv   test_bad_exponentzTestPMean.test_bad_exponent  sh   ]:-JKKK 	@ 	@K

999--rzz1#???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@]:-JKKK 	@ 	@K

999--rzz1#???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s#   ?A''A+.A+?CC Cc                 x   g dd}}t                               t          j        |          |          }t	          ||||           g dd}}t                               t          j        |          |          }t	          ||||           g dd}}t          j        d          }t	          ||||           d S )NrC  r=   r  g      rW  r1   rA   )rq	  rt	  r   r   r	  r  rm   rn   r  r0  r  s        rv   r$	  zTestPMean.test_1d  s    888#1++BHQKK;;!QB////888$1++BHQKK;;!QB////||Q1'9::!QB//////rx   c                 b    t          j        ddg          d}}d}t          |||d|           d S )Nr   r   ra   r   r_	  )r   r   r	  rz	  s        rv   r(	  zTestPMean.test_1d_with_zero  s=    xA1!Qcb999999rx   rG   r)	  rE   rH   c                     t          j        g d          d}}d}t          j        t          |          5  t          |||j        |           d d d            d S # 1 swxY w Y   d S )Nr+	  Gz?z!The power mean is only defined...r   r  )r   r   r,  r-  r   r	  rl   )rm   rn   r  r0  rt  s        rv   r,	  z%TestPMean.test_1d_with_negative_value  s    
 x


##T15\.888 	3 	3aBFr2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   AA #A rs	  r[   r  r~  r\  r>  r~  r  r:   c                     t                               t          j        |          |          }t	          ||||           d S )Nr  )rq	  rt	  r   r   r	  rm   r  r0  rn   r  s        rv   test_2d_axisnonezTestPMean.test_2d_axisnone  s>     ++BHQKK;;!QB//////rx   r.	  r/	  r0	  r:	  c                     fdt          t          d                             D             }t          |d|           d S )Nc                     g | ]Vt                               t          j        fd t	          t                              D                                 WS )c                 ,    g | ]}|                  S r   r   )rB  r  r  rC  s     rv   rD  z6TestPMean.test_2d_axis0.<locals>.<listcomp>.<listcomp>  s!    999a!A$q'999rx   )rq	  rt	  r   r   r  ri  )rB  rC  r  r0  s    @rv   rD  z+TestPMean.test_2d_axis0.<locals>.<listcomp>  so     
 
 
  %%999995Q==999::A 
 
 
rx   r   r7	  )r  ri  r	  r	  s    ``  rv   r8	  zTestPMean.test_2d_axis0  sf    
 
 
 
 
 3qt99%%	
 
 
 	!QaB777777rx   c                 L    fd|D             }t          ||d|           d S )Nc                 j    g | ]/}t                               t          j        |                    0S r   )rq	  rt	  r   r   )rB  a_r0  s     rv   rD  z+TestPMean.test_2d_axis1.<locals>.<listcomp>  s1    JJJ"9,,RXb\\1==JJJrx   r   r7	  )r	  r	  s     `  rv   r?	  zTestPMean.test_2d_axis1  s>     KJJJJJJ!QaB777777rx   c                     g dd}}g d}t                               t          j        |          ||          }t	          ||||d|           d S )NrD	  ރBrE	  rG	  rK	  )rq	  rv	  r   r   r	  rm   rn   r  r0  r	  r  s         rv   rM	  zTestPMean.test_weights_1d  sX    zz;1**,,RXa[[!WEE!QtKKKKKKrx   TrB	  r   c                     g dd}}g d}t                               t          j        |          ||          }t	          j        |||          }t          |t          j        |          d           d S )NrD	  r	  rE	  rF	  rG	  rZ  )rq	  rv	  r   r   rh   r	  r/   re   )rm   rn   r  r0  r	  r  r   s          rv   rI	  zTestPMean.test_weights_1d_list  sv     zz;1**,,RXa[[!WEE k!Q000RZ00t<<<<<<rx   c           	         t          j        g d          d}}t           j                            g dg d          }t          j        ||          }t           j        }t	          ||||dt           j        |           d S )	NrU	  r   rV	  rW	  r  rF	  rG	  rX	  )r   r   r  averager	  r   r	  s         rv   rY	  z&TestPMean.test_weights_masked_1d_array   s    x''1%++nnn<<<+@@*Q000U!Qt "
r	3 	3 	3 	3 	3 	3rx   )rV   fun_namer0  ))Nrv	  g3E#@)r   r  r   )r   r	  ra   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 )Nrv	  c                 <    t                               | |          S rA  )rq	  rv	  )r  rV   r	  r0  s      rv   funz&TestPMean.test_weights_2d.<locals>.fun  s     11!Q@@@rx   r1   r4   r[   r5   r   r2   )rV   r	  rG	  rO	  )r6  rh   r   r   r	  )	rm   rV   r	  r0  rn   r	  r  r	  r  s	      `     rv   test_weights_2dzTestPMean.test_weights_2d	  s     )))A A A A A A %**CHq!fr1g1v.//(RGaVaV455#adG444!QdG$SUVVVVVVrx   N)r   r   r   rt	  rv	  rx	  r$	  r(	  rH   r,  r  r  r,	  r  r   r   r	  r8	  r?	  rM	  rI	  r(   rY	  r	  r   rx   rv   rq	  rq	    s       . . .A A A@ @ @0 0 0: : :
 (TV V V [/003 3 10V V3 [8b"XCy
)4	0
"(RHr2hS	2
3
3S	9	; 
0 0 
0 [---/B/B/B
CT	J??,,,.A.A.A
BC	H	J 
8 8 
8 [---/B/B/B
CT	J??,,,.A.A.A
BC	H	J 
8 8 
8L L L [!!= "   [/00= = 10	 
= 3 3 3 [!	 	 	 	W 	W 	W 	W 	Wrx   rq	  c                      e Zd Z ej        d          dz   ZdZe                    ddd          Zd Z	d Z
d	 Zej                            d
ddej        ej        f          d             Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestGSTDr  r   gv aZ@r1   r2   r3   c                 b    t          j        | j                  }t          || j                   d S rA  )rh   r  array_1dr   gstd_array_1drm   gstd_actuals     rv   test_1d_arrayzTestGSTD.test_1d_array!  s,    j//T%788888rx   c                 |    t          j        t          | j                            }t	          || j                   d S rA  )rh   r  r  r	  r   r	  r	  s     rv    test_1d_numeric_array_like_inputz)TestGSTD.test_1d_numeric_array_like_input%  s4    jt}!5!566T%788888rx   c                     t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nzufunc 'log' not supportedr   z*You cannot take the logarithm of a string.)r,  r   r|  rh   r  r#  s    rv   )test_raises_value_error_non_numeric_inputz2TestGSTD.test_raises_value_error_non_numeric_input)  s    ]9,GHHH 	E 	EJCDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   >AA	bad_valuer   ra   c                 T   t          j        | j        |g          }t          j        |          rJd}t	          j        t          |          5  t          j        |          }d d d            n# 1 swxY w Y   nt          j        |          }t          |t           j
                   d S )Nz3The geometric standard deviation is only defined...r   )r   r  r	  r  r,  r-  r   rh   r  r   rl   )rm   r	  ro   rt  r   s        rv   test_returns_nan_invalid_valuez'TestGSTD.test_returns_nan_invalid_value.  s    Idmi[11;y!! 	 KGnG<<< $ $jmm$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ *Q--CS"&!!!!!re  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   r   r   r1   r2   rU   r3   )r   r   rl   rh   r  r   )rm   r  r	  s      rv   test_propagates_nan_valuesz#TestGSTD.test_propagates_nan_values9  s]    ===261a"3455j+++RXq"&k%:%:;;;;;rx   c                     t          j        t          d          5  t          t	          j        | j        | j        j                  t          j	                   d d d            d S # 1 swxY w Y   d S )NzDegrees of freedom <= 0r   r  )
r,  r-  r   r   rh   r  r	  r  r   r  r#  s    rv   )test_ddof_equal_to_number_of_observationsz2TestGSTD.test_ddof_equal_to_number_of_observations>  s    \.0IJJJ 	U 	UDM8JKKKRVTTT	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Us   >A''A+.A+c                 f    t          j        | j        d           }t          || j                   d S r  )rh   r  array_3dr   r	  r	  s     rv   test_3d_arrayzTestGSTD.test_3d_arrayB  s1    jT:::T%788888rx   c                 `    t          j        | j        d          }t          |ddg           d S )NrI  rU   g~d@g<
?)rh   r  r	  r   r	  s     rv   test_3d_array_axis_type_tuplez&TestGSTD.test_3d_array_axis_type_tupleF  s3    jU;;;j*%=>>>>>rx   c                     t          j        | j        d          }t          j        g dg dg dg          }t          ||           d S )Nr   rU   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?rh   r  r	  r   r   r   rm   r	  gstd_desireds      rv   test_3d_array_axis_0zTestGSTD.test_3d_array_axis_0J  sa    jQ777xOOOOOOOOO!
  
 	\22222rx   c                     t          j        | j        d          }t          j        g dg dg          }t          ||           d S )Nr   rU   )gN@g85@g'ĥ?gwth?)gHnaX?gG?gBu?gE?r	  r	  s      rv   test_3d_array_axis_1zTestGSTD.test_3d_array_axis_1S  sX    jQ777xLLLLLL!
   	\22222rx   c                     t          j        | j        d          }t          j        g dg dg          }t          ||           d S )Nr1   rU   )gt80?gі?g?)gۘ]~?gmT6(?g	G?r	  r	  s      rv   test_3d_array_axis_2zTestGSTD.test_3d_array_axis_2[  sX    jQ777x??????!
   	\22222rx   c                    t           j                            | j        dk    | j                  }d}t	          j        t          |          5  t          j        |d          }d d d            n# 1 swxY w Y   t          j        | j        d          }g dg dg}t          ||           t          |j        |           d S )Nr   z:`gstd` support for masked array input was deprecated in...r   r1   rU   ra  r  )r   r  masked_wherer	  r,  r-  r  rh   r  r   r   r  )rm   r  rt  r	  r	  r  s         rv   test_masked_3d_arrayzTestGSTD.test_masked_3d_arrayc  s    U 2DMBBN\,G<<< 	1 	1*Ra000K	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1z$-a888		999%\222[%t,,,,,s   A//A36A3N)r   r   r   r   r   r	  r	  rj   r	  r	  r	  r	  r,  r  r  r  rl   r	  r	  r	  r	  r	  r	  r	  r	  r	  r   rx   rv   r	  r	    s-       ry##a'H"M1a((H9 9 99 9 9E E E
 [[1b"&"&*ABB" " CB"< < <
U U U9 9 9? ? ?3 3 33 3 33 3 3- - - - -rx   r	  c            	         t          j        t          j        ddd          t          j        ddd          t          j        ddd          f          } d}d	}g d
}t          | |          D ]4\  }}t	          t          j        |||          j        |dd|            5t	          t          j        ddd          j        dd           d S )Nr  r  r4   r  g?r  ffffff?rf  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|>r]   z
fail forp=)r  err_msgr~  r~  gVݶ3;r  )r   r  r  r  r
   rh   	binomtestr	  )pprG  ro   rW  r0  r   s         rv   test_binomtestr	  n  s   	S#q11T433T4335 
6 
6B 	AA( ( (G b'"" F F3EOAq!44;S(*4D4D4D	F 	F 	F 	F 	FC55</$&( ( ( ( ( (rx   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   r\   c                 F    g | ]}t          j        |d           j        S )r:   )rh   r	  r	  rB  ro  r5  s     rv   rD  z#test_binomtest2.<locals>.<listcomp>  s*    HHHa1c**1HHHrx   r[   r  )r  r   )r  r  r5  s     @rv   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 9rx   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 )r1   r\   r   r  rh   r	  r	  r	  s      rv   rD  z#test_binomtest3.<locals>.<listcomp>  s]     9 9 95B<<9 9&' OAqsBqD))0 9 9 9 9rx   r   r\   )Zr:   grq?g     ?glq?gx0f#?g%d)MO?g   	o?g6?g:X@?r  gsw?g    ?gR'jMV?gEf?gF5a?gAQU?g'W?gk?r	  g
ņB?g  ?g$?g{dU'?gD:B?gwV?gR0Nf?gOq?r	  g[k^?g T+?gO?gggh(?gP-@?gOQ?g}^?gV7_i?r	  ge$?gр?g#>?g5z@?g:?gf?gzP?g  ?     ?gg*),?g}A_?g}aA?gH]@_?g
y7s?gPG?g>)\R?gjc6?K?go; ,?g!O0?g?g}e?g5?g?!A^?gN/#?g*?    @?g?g?g3?g.1?gdT\1-?gt0W59?goQC?gX4J?   ?g
?gf?C"?g\6I?g4b?g|$or?gWNS~?gT?gXnc?   \?gY\?gp ^a?gX-K?g#c?g
3?g75Q?gMJ[?gP8R?)Zr:   gw	%?g     ?gS g?gv^?g*uCi?g  a?g]?gE9Q?r  g/?g     ?g	x&~?g#?g5B?g	A'9?gpZ?gWV$u?r	  gqIb?g  @N?g1Y?g5?gO?gc-?gk?g )?r	  glMV?g?$?gT*r?gCqRv?grx?gωZ?gExY?g<T ?r	  gJ9Ͻd?g `Ԗt?gT?gEz?gQ?g7C<*?g<?g~ K?r	  g8?g~ȍEt?g⿒?g<v?gHE:?g8Z$?gbº5?gvC?r	  g`Yw?gA?$??gE=?g4?g3?g{G9?gp?gH ?r	  gz6f?g¯F?g(+?g	$V?gq^ws?g!?gXNJ?gK?r	  g4P?g<q?gdV;?gy?g$w?gU<vO?gMX?g	șz*?r	  giqSp?gMM?g0V$)?g]
yi/Q?gl?gl?g3Ȇ?gѾ_c?c           	      |    g | ]9}t          d d          D ]&}t          j        |dz   ||z  d|z            j        ':S r1   r\   r   r   r	  r	  s      rv   rD  z#test_binomtest3.<locals>.<listcomp>  a     < < <eArll< <)* qsAaCA..5 < < < <rx   c           	      |    g | ]9}t          d d          D ]&}t          j        |dz
  ||z  d|z            j        ':S r	  r	  r	  s      rv   rD  z#test_binomtest3.<locals>.<listcomp>  r	  rx   r^   r  )r  r   r   r  ri  r  r   r   )r  binom_testm1binom_testp1res4_p1res4_m1s        rv   test_binomtest3r	    s   9 91b\\9 9 9Drws4yy#../// 8 
 
 
  LP 8 
 
 
  L>< <a< < <G< <a< < <G r::::r::::::rx   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 )Nr\   r  r[   r  r8   left)tailr1   tE]t?r2   r   r  r  r5   r3   r4   r   )r	  rV   rU   r   )r   r   r   sortrh   trim1rj   r  )rm   r  r  rV   trimmeds        rv   
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8rx   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 )Nr\   r	  r2   r7   r  )r1   r2   r3   r4   r5   r6   r7   r  r5   r3   r  r!  )r1   r7   rY   r  )r2   r8   r  rX   r  r  )r   r   r   r	  rh   trimbothr   rj   r  r   r   )rm   r  s     rv   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2rx   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)r3   r7   r1   r   r8   r4   r[   r   r6   r2   r5   )r2   r4   r   r   r1   r3   r  r5   r3   Fr  r!  )r<   rB   g      -@g     4@r  )r   r   r2   r1   )r   r   r7  r\  r  r  )r6   r\   r]   rX   r   r5   r  r   r4   r   r  r[   rc   r8   r  r  rP  r  r1   rY   r3   r^   r7   r2   rZ   )r4   r3   r2   r   r1   r   r<   ry  r  )r4   r5   r3   r6   r  )r   r   r1   r2   ra   rU   r   r  r   )r   r   r   rj   r   rh   	trim_meanr  r(  r	  rW  r  r   r   rl   )
rm   r  idxr  r  idx4a4rV   r  r  s
             rv   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6rx   N)r   r   r   r	  r	  r	  r   rx   rv   r	  r	    sA        9 9 983 3 3$$7 $7 $7 $7 $7rx   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:  r`      r   r  r4   r3   r   r  r  rh   	sigmaclipr   minmaxr   rk   r   r  rm   r  factr  rI  upps         rv   test_sigmaclip1zTestSigmaClip.test_sigmaclip1S  s    NBKT266Ar18M8MNOOoa((3##S!&&((T!%%''\1222S!&&((T!%%''\1222QVQV$$$$$rx   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:  r`   r	  r   r  r4   r;   r3   $   r	  r	  s         rv   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     rx   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:  r`   r\   r2   ?)r   r  r  rh   r	  r   r	  r	  r   rk   r   r	  s         rv   test_sigmaclip3zTestSigmaClip.test_sigmaclip3h  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3rx   c                     t          j        t          j        ddd          t          j        ddd          f          }d}t          j        |||          }d}t          ||           d S )	Nr:  r`   r\   r
  r
  r2   r
  )clippedr  r  )r   r  r  rh   r	  r   )rm   r  r	  r   r  s        rv    test_sigmaclip_result_attributesz.TestSigmaClip.test_sigmaclip_result_attributess  sl    NBKT266Kc1557 8 8oat,,2
C,,,,,rx   c                 ~    t          j        d          }t          t          j        |          d         |           d S )Nr[   r   )r   r  r   rh   r	  r.  s     rv   test_std_zerozTestSigmaClip.test_std_zero{  s4    GBKKU_Q''*A.....rx   N)r   r   r   r
  r
  r	
  r
  r
  r   rx   rv   r	  r	  R  s_        % % %	! 	! 	!	4 	4 	4- - -/ / / / /rx   r	  c                       e Zd Zd Zej                            dddgg fddgdfddgdgfg          d             Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestAlexanderGovernc                    g dg dg dg dg}d |D             }d |D             }d |D             }d |D             }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)	r^   r^   r^   r^   r^   r^   r^   r]   r]   )	rY   r^   r]   r]   r]   r]   r]   r\   r\   )	rY   rY   r^   r^   r^   r^   r^   r]   r]   )	r  rY   r^   r^   r^   r]   r]   r]   r\   c                 N    g | ]"}t          j        |t           j                   #S r5  )r   re   r^  rB  args     rv   rD  z;TestAlexanderGovern.test_compare_dtypes.<locals>.<listcomp>  )    FFF#bjBH555FFFrx   c                 N    g | ]"}t          j        |t           j                   #S r
  )r   re   r  r
  s     rv   rD  z;TestAlexanderGovern.test_compare_dtypes.<locals>.<listcomp>  r
  rx   c                 N    g | ]"}t          j        |t           j                   #S r
  )r   re   r{  r
  s     rv   rD  z;TestAlexanderGovern.test_compare_dtypes.<locals>.<listcomp>  r
  rx   c                 N    g | ]"}t          j        |t           j                   #S r
  )r   re   r   r
  s     rv   rD  z;TestAlexanderGovern.test_compare_dtypes.<locals>.<listcomp>  s)    JJJc
3bj999JJJrx   )rh   alexandergovernr	  r
  )
rm   r-  
args_int16
args_int32
args_uint8args_float64	res_int16	res_int32	res_uint8res_float64s
             rv   test_compare_dtypesz'TestAlexanderGovern.test_compare_dtypes  st   4444444444446 GFFFF
FFFFF
FFFFF
JJTJJJ):6	):6	):6	+\: I$4 7 7 7 7 7 7 7 7$/$67 7 7 7 7 7#y': = = = =#= = = ='2'<= = = = = = = =rx   rr  r   r1   c                    t          j        t          t                    5  t	          j        | }t          |j        t          j	                   t          |j
        t          j	                   d d d            d S # 1 swxY w Y   d S rI  )r,  r-  r   r   rh   r
  r   r
  r   rl   r	  rV  s      rv   test_too_small_inputsz)TestAlexanderGovern.test_too_small_inputs  s     \,4IJJJ 	- 	-'.C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-rX  c                 6   t          j        d          5  t          j        ddgt           j        t           j        g          }d d d            n# 1 swxY w Y   t          |j        t           j                   t          |j        t           j                   d S )Nr  r  r   r1   )	r   r  rh   r
  r  r   r
  rl   r	  r  s     rv   test_bad_inputsz#TestAlexanderGovern.test_bad_inputs  s    [*** 	B 	B'A0@AAC	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	BS]BF+++SZ(((((s   .AAAc                    g d}g d}g d}t          j        |          t          j        |          t          j        |          }}}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r   re   rh   r
  r   r
  r	  )rm   rH  twoeightsolns        rv   test_compare_rz"TestAlexanderGovern.test_compare_r  s    :" " "	I 	I 	I7 7 7 *S//2:c??BJu<M<M%S$S#u55(=>>>%;<<<<<rx   c                 t   g d}g d}g d}t          j        |          t          j        |          t          j        |          }}}t          j        |||          }t	          |j        dd           t	          |j        dd           	 t	          |j        d	           t	          |j        d
           dS )z
        Data taken from 'The Modification and Evaluation of the
        Alexander-Govern Test in Terms of Power' by Kingsley Ochuko, T.,
        Abdullah, S., Binti Zain, Z., & Soaad Syed Yahaya, S. (2015).
        )g{G&~@g(\E~@g=
ףp~@gfffff~@gp=
~@gףp=
k@gR@gQ2@g8@g`@g)\`@g=
ףp@g(\#@g@g=
ףpE@gQ@g
ףp=@gףp=
Մ@g33333#@)g=
ףpt@g{G&u@gq=
ףv@gQDy@g     X{@g\(P}@g]~@gt~@gzG~@g)\~@g1@gzG@)gGz8@g     @gp=
ב@g
ףp=@gGzԀ@gq=
ףր@gRi@g{Gt@gw@g=
ףp@gQS@gQ@g(\©@gQ-@gQ@g]FxK@r  r  g R8߱?r|  g.UikL@g&Zݱ?Nr)
  )rm   youngmiddleoldr,
  s        rv   test_compare_scholarz(TestAlexanderGovern.test_compare_scholar  s    0 0 08 8 8G G GZ..
60B0BBJsOOsv$UFC88T::::W48888	: 	111Z00000rx   c                 B   g d}g d}t          j        |          t          j        |          }}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?rG	  r  gOZ}?g9$?g6MDd}?Nr)
  )rm   r~  r  r,
  s       rv   test_compare_scholar3z)TestAlexanderGovern.test_compare_scholar3  s    " " "! ! ! BBB$R,,t<<<<XD9999	8 		222Y/////rx   c                 
   t          j        g d          t          j        dt           j        g          f}t          j        | }t          |j        t           j                   t          |j        t           j                   d S )NrW  r   r   re   rl   rh   r
  r   r	  r
  )rm   r-  r   s      rv   test_nan_policy_propagatez-TestAlexanderGovern.test_nan_policy_propagateO  se    z,,,''QK)@)@@#T*SZ(((S]BF+++++rx   c                     t          j        g d          t          j        dt           j        g          f}t          t          d          5  t          j        |ddi d d d            d S # 1 swxY w Y   d S )NrW  r   r   r   r   r   )r   re   rl   r   r   rh   r
  )rm   r-  s     rv   test_nan_policy_raisez)TestAlexanderGovern.test_nan_policy_raiseV  s    z,,,''QK)@)@@:-LMMM 	= 	=!4<G<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   A,,A03A0c                    t          j        dddt           j        dg          t          j        dt           j        ddg          f}t          j        g d          t          j        g d          f}t          j        |d	d
i}t          j        | }t          |j        |j                   t          |j        |j                   d S )Nr   r1   r2   r3   r  r  rW  )r   r  r  r   r   r6
  )rm   args_nanargs_no_nanres_nan
res_no_nans        rv   test_nan_policy_omitz(TestAlexanderGovern.test_nan_policy_omit[  s    :q!Q233RZBFBPR@S5T5TTj..
;;;0G0GG'EfEE*K8
W^Z%6777W&
(<=====rx   c                 j   t          j        g d          }t          j        g d          }t          j        t          d          5  t          j        ||          }d d d            n# 1 swxY w Y   t          |j        t           j	                   t          |j
        t           j	                   d S )Nr&  r(  r  r   )r   re   r,  r-  r   rh   r
  r   r
  rl   r	  )rm   r~  r  r   s       rv   r1  z'TestAlexanderGovern.test_constant_inputc  s    Z---..Z---..\.0LMMM 	0 	0'B//C	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0S]BF+++SZ(((((s   A**A.1A.N)r   r   r   r#
  r,  r  r  r%
  r'
  r-
  r2
  r4
  r7
  r9
  r?
  r1  r   rx   rv   r
  r
    s        > > >( [Vq!fb\QFA;!Q!$NOO- - PO-) ) )B= B= B=H11 11 11f10 10 10f, , ,= = =
> > >) ) ) ) )rx   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   r1   r   r   rh   f_onewayr   rm   r	  r0  s      rv   test_trivialzTestFOneWay.test_trivialo  sE    ~q!fq!f--1QQrx   c                     t          j        ddgddg          \  }}t          |d           t          |dt	          j        d          z
  d           d S )	Nr   r1   r3   rD  r   r:   r  rZ  )rh   rE
  r   r   r   r  rF
  s      rv   r#  zTestFOneWay.test_basicu  sY     ~q!fq!f--1Q1rws||+%888888rx   c                     t          j        dgdgg d          \  }}t          |d           t          |d           d S )Nr1   rg  r  r  rD
  rF
  s      rv   test_known_exactzTestFOneWay.test_known_exact|  sK     ~qcA3			221 	QQrx   c                     t          j        ddgt           j                  }t          j        ddgt           j                  }t          j        ||          \  }}t          |dd           d S )	N    r5      gŸ?r  rZ  )r   r   uint16rh   rE
  r   )rm   r  r"  r	  r0  s        rv   test_large_integer_arrayz$TestFOneWay.test_large_integer_array  si    Hc3Zry111Hc3Zry111~a##1 	.U;;;;;;rx   c                     t          j        ddgt           j                  }t          j        ddgt           j                  }t          j        ||          }d}t          ||           d S )NrL
  rM
  r5  rN
  rO
  r  )r   r   rP
  rh   rE
  r   )rm   r  r"  r   r  s        rv   test_result_attributesz"TestFOneWay.test_result_attributes  sb    Hc3Zry111Hc3Zry111nQ"",
C,,,,,rx   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|            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.datrj  zdata/nist_anova
c                 ^    g | ]*}|                                 |                                +S r   )stripsplit)rB  lines     rv   rD  z)TestFOneWay.test_nist.<locals>.<listcomp>  s<     * * *$ JJLL* * * *rx   r  r  r\  )skiprowsr   ra   c                 (    g | ]}|k             S r   r   )rB  r  ro   rp   s     rv   rD  z)TestFOneWay.test_nist.<locals>.<listcomp>  s!    ---1QqAvY---rx   )rU
  rV
  rW
  r|  zFailing testcase: )r[  r	  )ospathabspathjoindirname__file__openreadr[
  r   loadtxtr  r  r  uniquer  rh   rE
  r   )rm   	filenames	test_caser[  fnamer/  content	certifieddatafcatyxlistr   hard_tcro   rp   s                @@rv   	test_nistzTestFOneWay.test_nist  s   ? ? ?	 # 	F 	F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$D$D$DF F F F F-	F 	Fs   =(B11B5	8B5	za, b, expected)r  r  r  rR	  r   c                     d}t          j        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,  r-  rh   r.  rE
  )rm   r  r"  r  r   r/  r0  s          rv   r1  zTestFOneWay.test_constant_input  s     6\%4C@@@ 	$ 	$>!Q''DAq##a8m####	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   )AA!ArV   )r  ra   r   r   c                 Z   t          j        g dg dg dg dg dg          }t          j        g dg dg dg dg d	g d
g dg dg          }t          j        g dg dg dg dg          }|dv r|j        }|j        }|j        }d}nd}d}t          j        t
          j        |          5  t          j        ||||          \  }}d d d            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          j        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   r3   r2   r2   )r1   r4   r2   r2   )r2   r5   r2   r2   rx  )r2   r   r4   r2   )r3   r5   r4   r2   )r3   r2   r4   r2   )r   r4   r4   r2   )r4   r4   r4   r2   )r1   r2   r4   r2   )r7   r1   r4   r2   )r1   r1   r4   r2   )r3   r2   r3   r2   )r3   r1   r3   r2   )r4   r3   r3   r2   ra   r   r   r   rt
  r   rU   r  r  rZ  r  )r   r   r  r,  r-  rh   r.  rE
  taker   r   )rm   rV   r  r"  r  	take_axisr  r/  r0  rC  fjpjs               rv   test_2d_inputszTestFOneWay.test_2d_inputs  s   Hlll"ll"ll"ll"ll	$ % %
 Hlll"ll"ll"ll"ll"ll"ll"ll$ % % Hlll"ll"ll"ll$ % %
 7??AAAIII:\%4HEEE 	6 	6>!Q555DAq	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6
  	2 	2A^BGAq)$<$<$&GAq)$<$<$&GAq)$<$<> >FB AaD"51111AaD"511111 	' 	'Ae8III ' '1i(@(@(*1i(@(@(*1i(@(@B BB QqT2&&&QqT2&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	' 	's%   0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      r3   r4   r6   r1      r7   q   rU   )r3   r6   r   )	r   r   rj   cosrh   rE
  r  r  r   )
rm   r  r"  r  r/  r0  r  rC  fijpijs
             rv   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----.	. 	.rx   c                     t          j        t          t                    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 )Nr   rm  r8  )	r,  r-  r   r   rh   rE
  r   r   rl   r  s     rv   test_length0_1d_errorz!TestFOneWay.test_length0_1d_error   s    \,4IJJJ 	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//A36A3c                    t          j        t          t                    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   r2   r3   r   r4   r$  )r,  r-  r   r   r   r  rh   rE
  r   rl   r   )rm   ncolsr  r"  r  r/  r0  nanss           rv   test_length0_2d_errorz!TestFOneWay.test_length0_2d_error   s
   \,4IJJJ 	" 	"EE
##AE
##AE
##A>!Q**DAq7E8777DD!!!D!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   BCCCc                     t          j        t                    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\   r]   r^   )r,  r-  r   rh   rE
  r   r   rl   r  s     rv   test_all_length_onezTestFOneWay.test_all_length_one   s    \,-- 	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))A-0A-r-  r   rm  c                     d}t          t          |          5  t          j        |  d d d            d S # 1 swxY w Y   d S )Nz$At least two samples are required...r   )r   r|  rh   rE
  )rm   r-  rt  s      rv   test_too_few_inputszTestFOneWay.test_too_few_inputs   s    89G444 	" 	"ND!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   599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 )Nr0  r4   r3   r1   rU   )r   r  r   r&   rh   rE
  rm   r  r"  s      rv   test_axis_errorzTestFOneWay.test_axis_error   s    GFOOGFOO9%% 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)   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 )Nr0  r
  r   rU   )r   r  r   r   rh   rE
  r
  s      rv   test_bad_shapeszTestFOneWay.test_bad_shapes#   s    GFOOGFOO:&& 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r
  N)r   r   r   rG
  r#  rJ
  rQ
  rS
  rr
  r,  r  r  r   r   r  rl   r1  r{
  r
  r
  r
  r
  r
  r
  r
  r   rx   rv   rB
  rB
  m  s         9 9 9  < < <- - -F F F@ [-	,,,		)))!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"
) ) )) ) ) ) )rx   rB
  c                   J    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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   r1   r   )	rh   kruskalr   r
   rk  r]  rl  r   r   rm   ro   rp   hr0  s        rv   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Arx   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   r1   r3   r5   r7   r[   r	  r[   r  r   )rh   r
  r
   rk  r]  rl  r   r   r
  s        rv   r#  zTestKruskal.test_basic5   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Erx   c                 v    dg}ddg}d}d}||z  }t          j        ||          \  }}t          ||           d S )Nr   r1   r	  r9  )rh   r
  r   rm   ro   rp   h_uncorrrH  r  r
  r0  s           rv   test_simple_tiezTestKruskal.test_simple_tie?   sR    CF*d?}Q""1 	Q!!!!!rx   c                     g d}g d}d}dt          d          dz  z
  }||z  }t          j        ||          \  }}t          ||           d S )N)r   r   r   r1   )r1   r1   r1   r1   r  r        )r  rh   r
  r
   r
  s           rv   test_another_tiezTestKruskal.test_another_tieJ   se    LLLL>5,--::d?}Q""1Ax(((((rx   c                    g d}g d}ddg}d}dt          d          dz  z
  }||z  }t          j        |||          \  }}t          ||           t          |t          j        j                            |d                     d S )Nr;  r  r1   rN   r   r
  r
  )r  rh   r
  r
   rk  r]  rl  )	rm   ro   rp   r  r
  rH  r  r
  r0  s	            rv   test_three_groupszTestKruskal.test_three_groupsS   s    IIIIFG5,--::d?}Q1%%1Ax(((Au27::1a@@AAAAArx   c                     g d}g d}g }t          j        t          t                    5  t	          t          j        |||          t          j        t          j        f           d d d            d S # 1 swxY w Y   d S )Nr;  r  r   )	r,  r-  r   r   r   rh   r
  r   rl   )rm   ro   rp   r  s       rv   rE  zTestKruskal.test_empty_   s    IIII\,4IJJJ 	C 	Cq!Q//"&"&1ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   ;A33A7:A7c                 d    g d}g d}t          j        ||          }d}t          ||           d S )Nr   r
  r  )rh   r
  r   )rm   ro   rp   r   r  s        rv   test_kruskal_result_attributesz*TestKruskal.test_kruskal_result_attributesg   sB    OOmAq!!,
C,,,,,rx   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 )Nr   r8   r   r   r  r   r   )	r   r   rl   r   rh   r
  r   r   r   r.  s     rv   r1  zTestKruskal.test_nan_policyn   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Krx   c                     d}t           j                            |          }t           j                            |          dz   }t          j        ||          \  }}d}t          ||           d S )Nr  r~  r   )r   r  r)  rh   r
  r
   )rm   rG  ro   rp   r
  r0  r  s          rv   test_large_no_samplesz!TestKruskal.test_large_no_samplesv   sb    IOOAIOOA#}Q""1Ax(((((rx   c                     d}t          j        t          |          5  t          j                     d d d            d S # 1 swxY w Y   d S )Nz-Need at least two groups in stats.kruskal\(\)r   )r,  r   r   rh   r
  r  s     rv   test_no_args_gh20661z TestKruskal.test_no_args_gh20661   s    B]:W555 	 	MOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ?AAN)r   r   r   r
  r#  r
  r
  r
  rE  r
  r1  r
  r
  r   rx   rv   r
  r
  *   s        B B BF F F	" 	" 	") ) )
B 
B 
BC C C- - -L L L) ) )    rx   r
  zADelegation for `special.stdtr` only implemented for CuPy and JAX.)r  
exceptionsrF   c                   &   e Zd Zej                            dg d          d             Zej                            dg dddfg dd	d
fg          d             Zg dZej                            dg d          ej                            de          d                         Z	ej                            de          d             Z
ej                            de          ej                            dddg          d                         ZdS )TestCombinePvaluesz+method, expected_statistic, expected_pvalue))r  g'"x-@g({#H?)stoufferv!:@/?)rg  gQ4gF?)tippettr  gL^i?)mudholkar_georgegzP@guKqN?c                     g d}t          j        |                    |          |          }t          |j        |                    |                     t          |j        |                    |                     d S )Nr  r  r  rq  )rh   combine_pvaluesre   r/   r
  r	  )rm   rn   rr  r  r  ro   r   s          rv   test_reference_valuesz(TestCombinePvalues.test_reference_values   so     MM#BJJqMM&AAArzz2D'E'EFFF
BJJ$?$?@@@@@rx   z,weights, expected_statistic, expected_pvaluer   r   r   r
  r
  )r   r   r   ga;?grmT?c                 (   |                     g d          }t          j        |d|                     |                    }t          |j        |                     |                     t          |j        |                     |                     d S )Nr
  r
  )rr  r	  )re   rh   r
  r/   r
  r	  )rm   rn   r	  r  r  ro   r   s          rv   test_weighted_stoufferz)TestCombinePvalues.test_weighted_stouffer   s     JJ}}}%%#Aj"**WBUBUVVVrzz2D'E'EFFF
BJJ$?$?@@@@@rx   )r  rg  r
  r
  r
  r  )singler  r  rr  c           
        	 t          |                    d                    }d\  }}t          j                            d          }|dk    r|                    |                    |                    |                    ||f          	|                    |                    |                    dd|          d          	d d dd f         gd          	n|d	k    r3|                    |                    dd|          ||f          j	        	nH|d
k    rB|
                    |                    |                    dd||f                    d          	|                    	fdt          	j        d                   D                       }|                    |dd          |d d         z
  dk              sJ d S )Nr   )r[   r6   l	   TrU(	"b-= r
  r  r  rv
  rU   r  r  r   r  c                 \    g | ](}t          j        |d d f                   d         )S )Nrq  r   )rh   r
  )rB  r  rr  pvaluesss     rv   rD  z8TestCombinePvalues.test_monotonicity.<locals>.<listcomp>   sJ     '
 '
 '
 !(1aaa4.@@@C'
 '
 '
rx   ra   )r)   re   r   r  r  r{  r  rj   r  r  r	  rm  r  r  r  )
rm   r  rr  rn   r   rF  rG  r  combined_pvaluesr
  s
     `      @rv   test_monotonicityz$TestCombinePvalues.test_monotonicity   s    ""**Q--001i##$KLL hrzz#**Q--'@'@1a&IIH~~rzz"++c32J2JG'T'T'/122'8>? & A AHHr{{3Q'?'?!QHHJHH  ||BJJs{{1aq!f{/M/M$N$NUV|WWH:: '
 '
 '
 '
 '
8>!,--'
 '
 '
   vv&qrr*-=crc-BBaGHHHHHHHrx   c                     t          j        |                    g d          |          }t          |j        |d                    t          |j        |d                    d S )Nr
  rq  r   r   )rh   r
  re   r0   r
  r	  )rm   rr  rn   r   s       rv   r   zTestCombinePvalues.test_result   sY    #BJJ}}}$=$=fMMMs1v...
CF+++++rx   rV   r   r   c                 P   t           j                            d          }|                    |                    d                    }|dk    r|j        n|}t          j        |||          }|b|                    |d          }t          j        ||          }t          |j	        |j	                   t          |j
        |j
                   d S |dk    r|j        n|}|dd d f         |dd d f         }	}t          j        ||          }
t          j        |	|          }t          |j	        d         |
j	                   t          |j	        d         |j	                   t          |j
        d         |
j
                   t          |j
        d         |j
                   d S )	Nl   2'$FV r  r  r   )rV   rr  r  rq  r   )r   r  r  re   r  rh   r
  rj   r/   r
  r	  )rm   rr  rV   rn   r  ro   r   r  r  r~  ref0ref1s               rv   r?  zTestCombinePvalues.test_axis   s   
 i##O44JJszzwz//00AIIACCA#AD@@@<

1e$$A'&999CCM3=999CJ
333FAIIACCA1aaa4!AqqqD'B$R777$R777a($.999a($.999
1t{333
1t{33333rx   N)r   r   r   r,  r  r  r
  r
  r  r
  r   r?  r   rx   rv   r
  r
     s        [5	G 	G 	GH HA AH HA [ 	7
,,)+>	?
,,)+=	>	@	A 	AA A	A 	AA ONNG[Y(C(C(CDD[Xw//I I 0/ EDI2 [Xw//, , 0/,
 [Xw// [VaV,,4 4 -, 0/4 4 4rx   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   r1   r3   r2   r   r   r   rh   wasserstein_distancer#  s    rv   &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Orx   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   r1   r2   r
  r#  s    rv   test_zero_weightz*TestCdfDistanceValidation.test_zero_weight   sf     	j%"<!fqcAq6	+ 	+ 	+j%"<!fqcAq6A3	0 	0 	0 	0 	0rx   c           	      \    t          t          t          j        ddgddgddgddg           d S )Nr   r   r1   r2   ra   r
  r#  s    rv   test_negative_weightsz/TestCdfDistanceValidation.test_negative_weights!  s>    j%"<!fq!fq!fq"g	7 	7 	7 	7 	7rx   c                     t          t          t          j        g ddg           t          t          t          j        dgg            d S rr  r
  r#  s    rv   test_empty_distributionz1TestCdfDistanceValidation.test_empty_distribution!  s>     	j%"<b1a&IIIj%"<qc2FFFFFrx   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   rh   r
  r   r  r#  s    rv   test_inf_weightz)TestCdfDistanceValidation.test_inf_weight!  sG    j%"<ii!Q!RVQ!Q	A 	A 	A 	A 	Arx   N)	r   r   r   r   r
  r
  r
  r
  r
  r   rx   rv   r
  r
     st         
P P P0 0 07 7 7
G G GA A A A Arx   r
  c                      e Zd ZdZd Zej                            dd          ej                            dd          ej                            dd          d	                                     Zej                            d
d          ej                            dd          ej                            dd          d                                     Z	ej                            d
d          ej                            dd          ej                            dd          d                                     Z
d Zej                            d
d          ej                            dd          ej                            dd          d                                     Zej                            d
d          ej                            dd          ej                            dd          d                                     Zd Zej                            dg d          ej                            dg d          d                         ZdS ) TestWassersteinDistanceNDz8 Tests for wasserstein_distance_nd() output values.
    c                    g d}g d}t          j        ||          }t          j        g d          }t          j        g d          }t          j        ||z            t          j        |          z  }t          ||           d S )N)r  r  r  r  r  r  r  r  r  r  )r3   r1   r5   r   r
  )r  r  rT  rT  rT  r  r  r  r  r  r  r  )r6   r   )rD  r  rN   r   r   r   )r   gw@r   r  r   r   )rh   wasserstein_distance_ndr   r   r  r   )rm   rn  ro  r   flowdistr  s          rv   test_published_valuesz/TestWassersteinDistanceND.test_published_values!  s    
" " "" " " +Aq11 x00011x@@@AAfTD[!!"&,,.S!!!!!rx   n_value)r3   r  r0  r_  )r2   r3   r6   max_repeats)r4   r[   c                 v   t           j                            d          }|                    d||t                    }|                    ||f          }t          j        ||d          }|                    t          j        |                    }t          j        t          j        t          |                    |          }	t          j	        |	|          }
|
                    t          |                    }||         ||         }}t          j        |||
|          }t          |dd	           d S )
Nl   na{F.aP	 r   )r  r3  r  r   rU   rF	  r  r  )r   r  r  integersr  r	  r  r   ri  bincountry  rh   r
  r   )rm   r_  r
  r
  r  repeatsu_valuesv_values	v_weightsrange_repeat	u_weightsr4  r   s                rv   test_same_distribution_nDz3TestWassersteinDistanceND.test_same_distribution_nD.!  s    i##$<==,,q+G3,GG::GT?:339XwQ777JJrvg//	y3w<<!8!8'BBKi@@@	I//&uoy/?)+Hh	9UUQU++++++rx   nu)r7   r8   &   nv)r7   r]   rc   )r2   r4   rP  c                    t           j                            d          }|                    ||f          }t          j        ||f          }|                    |          }|                    |          }t          j        t           j                            |d          |          }	t          j        ||||          }
t          |
|	           d S )N   }&=:! r  r   rU   rF	  )
r   r  r  r  r	  r  r  rh   r
  r   )rm   r
  r
  r_  r  r
  r
  r
  r
  r  r   s              rv   test_collapse_nDz*TestWassersteinDistanceND.test_collapse_nDB!  s     i##$899::B::..8RJ''JJBJ''	JJBJ''	jq999MMM+Hh	9UUS!!!!!rx   )r7   r   r  )r   r1   r5   c                 b   t           j                            d          }|                    ||f          }|                    ||f          }|                    |          }|                    |          }t          j        ||||          }	|                    d|d          \  }
}|                    ||f          }t          j        ||
|d          }t          j        ||
t          j        |          d          }t          j        ||||          }t          ||	           d S )Nr
  r  r   r1   rU   )	r   r  r  rh   r
  r
  insertr  r   )rm   r
  r
  r_  r  r
  r
  r
  r
  r  add_rownrows	add_valuer   s                 rv   test_zero_weight_nDz-TestWassersteinDistanceND.test_zero_weight_nDR!  s   
 i##$899::B::..::B::..JJBJ''	JJBJ''	+Hh	9UUa!44JJUDMJ22	9Xw	BBBIi"(5//JJJ	+Hh	9UUS!!!!!rx   c                    ddgddggt           j        t           j         ggddg}}}t          j        |||          }t	          |t           j                   t          j        d          5  t           j        t           j        ggt           j        t           j         gg}}t          j        ||          }t	          |t           j                   d d d            d S # 1 swxY w Y   d S )Nr   r1   r  r  )r   r  rh   r
  r   r  rl   )rm   uvvvuwdistances        rv   test_inf_valuesz)TestWassersteinDistanceND.test_inf_valuese!  s    !fq!f%"&(9':QFB0R<<Xrv&&&[*** 	+ 	+vrv&'26BF7*;)<B4R<<H26***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   ,A#CC #C r`  )r   r2   r4   c                 ,   t           j                            d          }|                    ||f          }|                    ||f          }|                    |          }|                    |          }t          j        ||||          }	|                    d|          }
|                                }t          j        ||
|d          }t          j        ||
|d          }t          j        ||||          }t          ||	           d S )Nl   Lq/ r  r   r   rU   )r   r  r  rh   r
  r
  r
  r   )rm   r
  r
  r_  r  r
  r
  r
  r
  r  add_dimr
  r   s                rv   test_multi_dim_nDz+TestWassersteinDistanceND.test_multi_dim_nDp!  s    
 i##$788::B::..::B::..JJBJ''	JJBJ''	+Hh	9UU,,q$''JJLL	9Xw	BBB9Xw	BBB+Hh	9UUS!!!!!rx   )r6   r^   r  )r1   r3   r6   c                    t           j                            d          }|                    ||f          }|                    ||f          }|                    |          }|                    |          }t          j        ||||          }	t          j        |          }
|
                    |          }|                    |          }t          j        ||z  |z   ||z  |z   ||          }t          ||	           d S )Nl   uAh~r  r  )r   r  r  rh   r
  ortho_groupr  r   )rm   r
  r
  r_  r  r
  r
  r
  r
  r  r
  	transformshiftr   s                 rv   test_orthogonal_nDz,TestWassersteinDistanceND.test_orthogonal_nD!  s    i##N33::B::..::B::..JJBJ''	JJBJ''	+Hh	9UU &&HH#H..	


%%+Hy,@5,H)1I)=)E)2I? ? 	S!!!!!rx   c                    t           j                            d          }t          j        t
          d          5  |                    d          }|                    d          }t          j        ||          }d d d            n# 1 swxY w Y   t          j        t
          d          5  |                    d          }|                    d	          }t          j        ||          }d d d            n# 1 swxY w Y   t          j        t
          d
          5  |                    d          }|                    d          }t          j        ||          }d d d            d S # 1 swxY w Y   d S )Nl   e36^[Y{lz Invalid input values. The inputsr   )r3   r[   r  r  )r5   r1   r6   z Invalid input values. Dimensions)r  )r2   r  z(Invalid input values. If two-dimensionalr  rU  )r   r  r  r,  r   r   rh   r
  )rm   r  r
  r
  re  s        rv   test_error_codez)TestWassersteinDistanceND.test_error_code!  sP   i##$>??]:-OPPP 	B 	Bzz{z33Hzzyz11H-hAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B ]:-OPPP 	B 	Bzzuz--Hzzwz//H-hAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B ]:<> > > 	B 	Bzzwz//Hzzvz..H-hAAA		B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs8   AB		BB/AC==DD#AE22E69E6u_size)r   r[   r~  v_sizec                    t           j                            d          }|                    |df          }|                    |df          }|                                }|                                }t	          j        ||          }t	          j        ||          }	t	          j        ||          }
t          |	|           t          |
|           |                    |          }|                    |          }t	          j        ||||          }t	          j        ||||          }	t	          j        ||||          }
t          |	|           t          |
|           d S )Nl   Ku@* r   r  )r   r  r  r  rh   r
  r
  r   )rm   r  r  r  r
  r
  u_values_flatv_values_flatd1d2d3r
  r
  s                rv   test_optimization_vs_analyticalz9TestWassersteinDistanceND.test_optimization_vs_analytical!  sZ    i##K00::FA;://::FA;:// (( (( '}EE*8X>>*=-HHBBJJFJ++	JJFJ++	'}(19> >*8X(19> >*=-(19> >BBrx   N)r   r   r   r   r
  r,  r  r  r
  r
  r
  r
  r
  r  r  r  r   rx   rv   r
  r
  !  s        " " "& [Y44[VY//[]G44, , 54 0/ 54," [T:..[T;//[VZ00" " 10 0/ /." [T;//[T;//[VY//" " 0/ 0/ 0/" 	+ 	+ 	+ [T<00[T<00[VY//" " 0/ 10 10"" [T;//[T;//[VY//" " 0/ 0/ 0/"$B B B  [X{{{33[X{{{33    43 43     rx   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:   r2   r`  r1   r[  rm  r   rh   r
  r#  s    rv   r
  z#TestWassersteinDistance.test_simple!  s     	&1vsQFQC@@	 	 	 	2FQC!Q!& &	 	 	 	2FQC!Q!& &	 	 	 	2IIyyy" "	 	 	 	 	rx   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 	Nrm  rU  r   )r   r   r   r3   r3   r   r  r2   )r   rh   r
  r#  s    rv   test_same_distributionz.TestWassersteinDistance.test_same_distribution!  sq     	U/			999EEqIII&|||aV'3||aV= =	 	 	 	 	rx   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  r4   r[   r  )r\   r]   r^   rY   r  )r>   g@r  )r  r6   r  )r2   r   r   )r   r2   r   r<   r  r#  s    rv   
test_shiftz"TestWassersteinDistance.test_shift!  s     	2A3<<a@@@2B4!==rBBB&8L8L8LMM	 	 	 	&'0yy)))= =	 	 	 	 	rx   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   r4   )r   r2   r2   r2   r2   r3   r3   )r   r   r   r   r   r   r   )r4   r   r   )r   r3   r2   r   r1   r3   r  r#  s    rv   test_combine_weightsz,TestWassersteinDistance.test_combine_weights!  s     	&%%%'<'<'<%%%'<'<'<> > &yyy)))'0yy)))= =		> 	> 	> 	> 	>rx   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  ra   rF	  )
r   r   r   r   rh   r
  rk   ro  ri  r	  )rm   rn  ro  r
  r
  s        rv   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 	6rx   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   r1   r  r   r-  r1   r  r#  s    rv   r
  z(TestWassersteinDistance.test_zero_weight
"  sp    &~~~1v'0yy1a&: :&1v1v1v1vFF	H 	H 	H 	H 	Hrx   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   r1   r   )	r   rh   r
  r   r  r   r   r   rl   rm   r   s     rv   r
  z'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   r   r
  r  r  r  r  r
  r
  r   rx   rv   r  r  !  s                > > >6 6 6 H H H    rx   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   r1   r:   r2   r`  r   r[  rm  r  r   rh   energy_distancer   r  r#  s    rv   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**	, 	, 	, 	, 	,rx   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   rh   r)  r#  s    rv   r  z)TestEnergyDistance.test_same_distribution8"  sl     	U*999iii@@!DDD!,,,Aq!fMM	 	 	 	 	rx   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   r1   r  r4   gS[:XL	@r(  r#  s    rv   r  zTestEnergyDistance.test_shift@"  sm     	E11#s;;RWQZZHHH!2$,,GAJJ	! 	! 	! 	! 	!rx   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   rh   r)  r#  s    rv   r  z'TestEnergyDistance.test_combine_weightsH"  s     	!"7"7"79N9N9N"7"7"79N9N9NP P!)))YYY			999MM	O 	O 	O 	O 	Orx   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    rv   r
  z#TestEnergyDistance.test_zero_weightP"  sk    !...1a&)))aVLL!1a&1a&1a&1a&AA	C 	C 	C 	C 	Crx   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   rh   r)  r   r  r   r   r   rl   r#  s     rv   r
  z"TestEnergyDistance.test_inf_valuesV"  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   r   r
  r  r  r  r
  r
  r   rx   rv   r&  r&  $"  s~         , , ,   ! ! !O O OC C C    rx   r&  c                       e Zd Zg dZg dZdZd Zd Zd Zd Z	d Z
d	 Zej                            d
dg idg ig g dg          d             Zd Zd Zd Zd Zd ZdS )TestBrunnerMunzel)r   r1   r   r   r   r   r   r   r   r   r1   r3   r   r   r2   r2   r3   r2   r   r1   r2   r   r   r4   r3   r^   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 )	NrR  rX  rT  r  |	&	@|	&	gҏGg?g@-pL?)rh   brunnermunzelrf   r  r
   r  r   r  s	            rv   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sidedm"  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	: 	: 	: 	: 	: 	:rx   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 )NrP  rX  r  r4  r5   ҏGw?rh   r6  rf   r  r
   r  r  s        rv   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sided"  s    $TVTVMMMB$TVTVMMMBB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:rx   c                 F   t          j        | j        | j                  \  }}t          j        | j        | j                  \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nr  r4  r5  r9  r:  r  s        rv   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default"  s    $TVTV44B$TVTV44BB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:rx   c           	          d}d}d}t          |dv           t          t          t          j        | j        | j        |||           d S )Nr  r	  r=  r  r   r   r   rh   r6  rf   r  rm   rY  distributionr   s       rv   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error"  s\     
#CCDDDj)ff!" 	" 	" 	" 	" 	"rx   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  rA  r  r4  r5  g "H[?r:  r  s        rv   $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	: 	: 	: 	: 	: 	:rx   c           	          d}d}d}t          |dv           t          t          t          j        | j        | j        |||           d S )NrP  r  r=  )r	  r  r?  r@  s       rv   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error"  s[    ! 
?2333j)ff!" 	" 	" 	" 	" 	"rx   kwarg_updaterp   ro   r  c                 N   | j         | j        d}|                    |           t          j        t
          t                    5  t          j        di |\  }}d d d            n# 1 swxY w Y   t          |t          j                   t          |t          j                   d S )Nr  r   r   )rf   r  r  r,  r-  r   r   rh   r6  r   r   rl   )rm   rH  r.  r
  r	  s        rv   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput"  s     vDF++l###\,4IJJJ 	> 	> % 3 = =f = =Iv	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>Y'''VRV$$$$$s   A&&A*-A*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   r1   r3   r2  r=  r   )r   rl   rh   r6  r   rm   rf   r  r  r  r  rc  s          rv   &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     rx   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   r1   r3   r2  rP  r	  r   )r   rl   r   r   rh   r6  )rm   rf   r  rY  rA  r   s         rv   "test_brunnermunzel_nan_input_raisez4TestBrunnerMunzel.test_brunnermunzel_nan_input_raise"  s    1aAq!Q1aArv>---!
j)!" 	" 	" 	" 	j)!" 	" 	" 	" 	" 	"rx   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   r1   r3   r2  r   r   r  r4  r5  r9  )r   rl   rh   r6  r
   r  rL  s          rv   !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	: 	: 	: 	: 	: 	:rx   c                     g d}g d}d}t          j        t          |          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)
        rm  r:  zDp-value cannot be estimated|divide by zero|invalid value encounteredr   r	  rD  N)r,  r-  r   rh   r6  r  s       rv   test_brunnermunzel_return_nanz/TestBrunnerMunzel.test_brunnermunzel_return_nan"  s     IIOOT\.444 	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)
        rm  r:  zdivide by zeror   r  rD  Nr   )r,  r-  r   rh   r6  r   )rm   ro   rp   re  r0  s        rv   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   rf   r  r  r7  r;  r=  rB  rE  rG  r,  r  r  rJ  rM  rO  rQ  rS  rU  r   rx   rv   r1  r1  g"  s'       222A)))AK: : :.: : :: : :" " "	: 	: 	:" " " [^sBi#r46R.@.@.B C C% %C C%	! 	! 	!" " ",: : :	8 	8 	8	 	 	 	 	rx   r1  c                      e Zd ZdZd Zej                            dg dg dddej	         dd	gd
ddej	        dgg          d             Z
ej                            dg dg dg          d             Zej                            dddg          ej                            dd	dg          ej                            dddg          d                                     Zd ZdS )TestQuantileTestzb Test the non-parametric quantile test,
    including the computation of confidence intervals
    c                 J   g d}d}t          j        t          |          5  t          j        |g           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |ddg           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |d	d
g           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   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            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 )Nrm  z/`x` must be a one-dimensional array of numbers.r   z`q` must be a scalar.r   r1   )rZ  z-`p` must be a float strictly between 0 and 1.r:   r9  )r0  r  z`alternative` must be one of...z	one-sidedrX  r   )r,  r   r   rh   quantile_testrF  r  s      rv   test_quantile_test_ivz&TestQuantileTest.test_quantile_test_iv#  s   IIC]:W555 	% 	%$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% *]:W555 	- 	-aV,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- B]:W555 	2 	2c4[1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2]:W555 	( 	(Q''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(]:W555 	+ 	+T****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 4]:W555 	< 	<{;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< I]:W555 	: 	:""66q999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s}   AAA,BBB9CC"%C"D''D+.D+E00E47E4F;;F?F?#(HHHzp, alpha, lb, ub, alternative)r  r	  gX݊?g蜶?rP  )r:   r  g-tA?gP"?rP  r`  r	  g{gA?rR  r  r  gg @rT  c                     t          j        t          j        ddd                    }t          j        |||          }t          |                    |          ||gd           d S )Nr   r  r  )r0  rY  r  rZ  )r   r  r   rh   rY  r   rF  )rm   r0  r"  lbubrY  ro   r   s           rv   test_R_ci_quantilez#TestQuantileTest.test_R_ci_quantile3#  se      F29Qd++,,!!qkBBB//66RuMMMMMMrx   zq, p, alternative, ref)r  r  rP  gͯI	?)r
  r:   rP  gɍQ%e?c                     t          j        t          j        ddd                    }t          j        ||||          }t          |j        |d           d S )Nr   r  r  rZ  r0  rY  r9   rZ  )r   r  r   rh   rY  r   r	  )rm   rZ  r0  rY  r  ro   r   s          rv   test_R_pvaluezTestQuantileTest.test_R_pvalueG#  sW     F29Qd++,,!!qA;GGG
Ce444444rx   rr  
continuousdiscreterY  r"  c                    t          dt          |          z  t          |          z   |z            }t          j                            |          }|dk    r0|                    d          \  }}|                    d          }nB|                    ddd          }|                                }|                    dd          }t          j        ||||          }	|	                    |	          }
|d
k    r||
j	        k    }n||
j
        k    }||         D ]*}t          j        ||||          }	|	j        d|z
  k    sJ +||          D ]*}t          j        ||||          }	|	j        d|z
  k     sJ +d S )Nr6   rb  r1   r  r~  r   r\   r`  r  rR  )r  ri  r   r  r  r
  rh   rY  rF  rJ  rI  r	  )rm   rr  rY  r"  r(  r  r0  rZ  r  r   rb  i_insidero   s                rv   test_pval_ci_matchz#TestQuantileTest.test_pval_ci_matchV#  s    As4yyL3{#3#33U:;;i##D))<::1:%%DAq**#*&&CC,,q"3,//C

AQ##A!#a[III$$e$<< &  bg~HHbf}HX 	* 	*A%cQ!MMMC:E	)))))hY 	* 	*A%cQ!MMMC:E	)))))	* 	*rx   c                 <   g d}d}t          j        |ddd          }t          |j        |d           d	gd
z  dgdz  z   }t          j        dd                              d
          }t          j        |ddd          }t          |j        |d           d S )N)                                    r        geX?rs  r9  rP  r`  rG	  rZ  ;   r7   rW   h   r:   p   )r0  rG  r	  r\  rT  r  r  )rh   rY  r   r	  r   r  )rm   ro   pvalue_expectedr   s       rv   test_match_conover_examplesz,TestQuantileTest.test_match_conover_examples#  s       !!sdLLL
O$???? DFbT5\!+s33377!7<<!!rSiHHH
O%@@@@@@rx   N)r   r   r   r   rZ  r,  r  r  r   r  r^  ra  rf  rz  r   rx   rv   rW  rW  #  su        : : :6 ['	G	G	G	F	F	F
rvg/	8
s%rvy	9	; N N N [ 	2	2	2	1	1	1	3 
5 5 
5 [VlJ%?@@[]VY,?@@[WsDk22$* $* 32 A@ A@$*LA A A A Arx   rW  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   r2   r  r[      i2  g:hў?Frp  i  gsH?i,0  gY@?)r  r  I   r0  r  `   r  rv  r  r
  r  1   r  +   rD  r  r  r  r  r  rW   r  r_  r  r~  )D   ra  r\  "   r  r  A   X   rX   r  r  r	  r	  C   E   r  r  r  r  W   rD  r  r~  r  r  )r  r^   U   r0  O   r]   \   V   rX   @   r   r  r  rc   r   Y   rP  r  r  r
  6   r^   B   r  r  i
  gXY?rs  )r;   r   g @r4   r  r\   )r4   r3   r=   r[   r  rX   )r  r  r[   r]   rY   r  iL  gs˜?T)r3   r2   r1   r   )r2   r3   r   r1   rW     gĞ?)r2   r1   r   rU  rm     g>K=?)r5   r4   r3   r2   r1   r   )r   r2   r3   r4   r1   r5   i  gqူ?)r4   r3   r2   r1   r   )r3   r   r2   r1   r4   r     ga?i  g;?)r6   r5   r4   r3   r2   r1   r   )r5   r4   r6   r3   r2   r1   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  )rankedrr  
r   r  r(  rh   page_trend_testr   r
  r   r	  rr  rm   Lr0  r  rr  rh  r   s          rv   test_accuracyzTestPageTrendTest.test_accuracy#  si    
	r#DGGGQ&&&3:&&&VSZ(((((rx   i  g-lpW?)
r[   r8   r7   r6   r5   r4   r3   r2   r1   r   )
r   r7   r3   r6   r5   r4   r8   r2   r1   r[   i*  gh[?)
r8   r1   r7   r6   r5   r4   r3   r2   r[   r   r5  i  g&]2?)r7   r6   r5   r4   r3   r2   r1   r   )r   r2   r4   r5   r3   r6   r1   r7   r)  c                     t           j                            d           t          j        |||          }t          ||j                   t          ||j                   t          ||j	                   d S r  r  r  s          rv   test_accuracy2z TestPageTrendTest.test_accuracy2#  sk     		r#DGGGQ&&&3:&&&VSZ(((((rx   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  )r[   r  r   rU   Tr  F)predicted_ranks)r   r  r(  r   ry  r3  rh   rankdatar  r   r
  )rm   rF  rG  r  permrh  ranksr  r  r  res4res5s               rv   test_optionszTestPageTrendTest.test_options$  sO   
	r1)Aqs++y$$RYq\\22y~~a##t!,,,$U++$U4888$T%888$UOLLL$U111d7^5DT5JL L LT^T^444T^T^444T^T^444T^T^44444rx   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  )rA  r  o   )r  r>  k   )g      y   )r  rM  r
  )r        )   r1	  t   r   r6   Frp  )r  r  rr  i  gy&1l?r3   r  rs  gHPsb?)r   r  r(  r   r  r   rh   r  r   r
  r   r	  )rm   rh  r  r   s       rv   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::::::rx   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   r1   zPage's L is only appropriater2   z+`predicted_ranks` must include each integerrm  r[  )rh  r  )r  r1   r2   )r   r1   r2   r2   r  z`data` is not properly ranked)r   r1   r2   Tr  z`data` contains NaNsFr  z`method` must be inekki)rh  rr  z`ranked` must be boolean.)rh  r  )	r   r   rh   r  r   r  r3  rl   r|  r  s     rv   ru  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   r   r  r(  r3  	data_3_25
data_10_26tsr,  r  r  r  ts2r  r  r  r  ru  r   rx   rv   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 /1rx   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 )Nrr  rs  rJ  z#() got multiple values for argumentr   )rr  rJ  )r   r   r,  r   r|  reescape)r	  r-  r   r  errs        rv   test_rename_mode_methodr  a$  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  r  r  r:   r"  )r   r  r  r   rh   	expectilerk   rm   r  ro   s      rv   test_same_as_meanzTestExpectile.test_same_as_means$  sW    i##B''JJBJ555rwqzzBBBBBrx   c                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nr  r  r  r   r  )r   r  r  r   rh   r  aminr  s      rv   test_minimumzTestExpectile.test_minimumx$  W    i##B''JJBJ333RWQZZ@@@@@rx   c                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nr  r  r  r   r  )r   r  r  r   rh   r  amaxr  s      rv   test_maximumzTestExpectile.test_maximum}$  r  rx   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   r1   )r   r&  r  )rn  r  r"  r	  rp  s        rv   r	  z'TestExpectile.test_weights.<locals>.fun$  sH    Q5111AE	Aa1fI6!g+Q
2333rx   c                     t          j        |           t          j        |           f}t          j        || ||f          j        S )N)bracketr-  )r   r	  r	  r   minimize_scalarro   )r  r"  r	  r  r	  s       rv   
expectile2z.TestExpectile.test_weights.<locals>.expectile2$  sL    fQii*G+C23UG1DF F FFGHrx   r[   rF	  )r   r  r  rh   r  r   )
rm   r  r  rG  r  r"  r	  r   r  r	  s
            @rv   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!!!!!rx   r"  )r  g?r:   g/#    ?r  rG  r  r  c           
         t           j                            d          }|                    |          }dD ]:}t	          t          j        t          j        ||          |          |           ;|                                }t	          t          j        ||z   |          t          j        ||          |z              t	          t          j        ||z
  |          t          j        ||          |z
             t	          t          j        ||z  |          |t          j        ||          z             |	                    |d          }|dk    rd	 }n|dk    rd
 }nd } |t          j        t           j
        ||z            |          t          j        ||          t          j        ||          z              |                    |d          }t          j        ||          t          j        ||          k    sJ |	                    |d          }dD ]b} |t          j        d|z
  |z  ||z  z   |          d|z
  t          j        ||          z  |t          j        ||          z  z              ct	          t          j        | |          t          j        |d|z
                        dS )u  
        See Section 6 of
        I. Steinwart, C. Pasin, R.C. Williamson & S. Zhang (2014).
        "Elicitation and Identification of Properties". COLT.
        http://proceedings.mlr.press/v35/steinwart14.html

        and

        Propositions 5, 6, 7 of
        F. Bellini, B. Klar, and A. Müller and E. Rosazza Gianin (2013).
        "Generalized Quantiles as Risk Measures"
        http://doi.org/10.2139/ssrn.2225751
        r  r  )r  r   r:   )r  r%  r  r[   rF  r:   c                 &    t          | |           d S rA  )r   r  r"  s     rv   	assert_opz:TestExpectile.test_expectile_properties.<locals>.assert_op$  s    1%%%%%rx   c                     | |k     sJ d S rA  r   r  s     rv   r  z:TestExpectile.test_expectile_properties.<locals>.assert_op$      1uuuuuurx   c                     | |k    sJ d S rA  r   r  s     rv   r  z:TestExpectile.test_expectile_properties.<locals>.assert_op$  r  rx   r4   )r  r:   r  r   N)r   r  r  r  r   rh   r  r   exponentiallogisticr_)rm   r"  rG  r  ro   r  rp   r  s           rv   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....	
 	
 	
 	
 	
rx   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  r1   )r  r  r  r:   r~  r   r   ra   r  )r   r  r  paretologspacelog10r  r  rh   r  r  diff)rm   rG  r  ro   e_list	alpha_seqr"  s          rv   test_monotonicity_in_alphaz(TestExpectile.test_monotonicity_in_alpha%  s    i##B''JJJ##KRXc]]C88	U1iYv2v->)>AB 	; 	;EMM%/!5999::::vbgfoo)*******rx   N)r   r   r   r  r  r  r  r,  r  r  r  r  r   rx   rv   r  r  r$  s        C C C
A A A
A A A
" " "4 [:::  [S2t*--_
 _
 .- _
B [S2t*--+ + .-+ + +rx   r  c            	       p   e Zd Zg dZdg dej        ej        dgZd Ze	d             Z
ej                            dedd	g g d
ggz             d             Zej                            de          d             Zej                            de          d             Zej                            de          d             Zej                            dddg dg          ej                            dddg          ej                            dddg          d                                     Zd ZdS )TestLMoment)yףp=
?r  p=
ף?r;   r  r  r;   r:   r   r  r  {Gz?g@(\?gףp=
?
ףp=
?g)\(?gRQ @r  {Gz?ffffff @r  g{Gz@gRQ?gGz@gQ?(\?r  gzG?g
ףp=
?gQ?ffffff?gGz
@g(\?g(\?gQ?q=
ףp?g(\@Q?gGz	@r}	  Q?r  p=
ף @r  gp=
ף@gq=
ףp@gRQ?Gz?g
ףp=
?r  gHzG?g      @r}	  gQ?r  r  RQ?r  gQ?p=
ף?gQ@gGz?gQ?gp=
ף?q=
ףp?r  gp=
ף?gQ?r  r  g@r  g)\( @gzG@r  r  gGz?g(\?r  333333?)\(?r  r  gGz@r  g(\?g=
ףp=?r  r  gHzG?{Gz?r  g
ףp=
?gףp=
?r  r  r  gQ?rw  g?r  r  g(\?r  gQ?gffffff@gQ?g?r  gGz?r  g{Gz?gHzG@r  r  r  g\(\?g(\?r  g(\?r;   )r   r1   r=   za duckc                     d}t          j        t          |          5  t          j        t          j        | j        t
          j                             d d d            d S # 1 swxY w Y   d S Nz*`sample` must be an array of real numbers.r   r5  )	r,  r   r   rh   lmomentr   r   rh  r  r  s     rv   test_dtype_ivzTestLMoment.test_dtype_iv%  s    >]:W555 	D 	DM"(49BMBBBCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   8A##A'*A'c                     d}t          j        t          |          5  t          j        t          j        | j        t                               d d d            d S # 1 swxY w Y   d S r  )	r,  r   r   rh   r  r   r   rh  r  r  s     rv   test_dtype_iv_non_numericz%TestLMoment.test_dtype_iv_non_numeric"%  s    >]:W555 	= 	=M"(49F;;;<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   3AA"%A"r  r   ra   rm  c                     d}t          j        t          |          5  t          j        | j        |           d d d            d S # 1 swxY w Y   d S )Nz*`order` must be a scalar or a non-empty...r   r  r,  r   r   rh   r  rh  )rm   r  rt  s      rv   test_order_ivzTestLMoment.test_order_iv(%  s    >]:W555 	2 	2M$)51111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r  rV   c                     d}t          j        t          |          5  t          j        | j        |           d d d            d S # 1 swxY w Y   d S )Nz"`axis` must be an integer, a tupler   rU   r  )rm   rV   rt  s      rv   test_axis_ivzTestLMoment.test_axis_iv.%  s    6]:W555 	0 	0M$)$////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0r  sortedc                     d}t          j        t          |          5  t          j        | j        |           d d d            d S # 1 swxY w Y   d S )Nz`sorted` must be True or False.r   )r  r  )rm   r  rt  s      rv   test_sorted_ivzTestLMoment.test_sorted_iv4%  s    3]:W555 	4 	4M$)F3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4r  standardizec                     d}t          j        t          |          5  t          j        | j        |           d d d            d S # 1 swxY w Y   d S )Nz$`standardize` must be True or False.r   )r
  r  )rm   r
  rt  s      rv   test_standardize_ivzTestLMoment.test_standardize_iv:%  s    8]:W555 	> 	>M$)====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>r  r   r3   rW  FTc                 0   t          j        g d          }|s|dd xx         |d         z  cc<   |rt          j        | j                  n| j        }t	          j        ||||          }t          ||t          j        |          dz
                      d S )N)g0ʻEH?gk?gz[?g+3 ?r1   r   )r
  r  )r   re   r	  rh  rh   r  r   )rm   r  r
  r  r  rh  r   s          rv   test_lmomentzTestLMoment.test_lmoment@%  s     j B B B C C  	GGGs1vGGG%+:rwty!!!mD%[PPPSE!2!21!4566666rx   c                 ^   t           j        }t          j        | j                  }t	          j        |                    |                    }t	          j        |          }|j        j        |k    sJ t          ||d           t           j
        }t          j        g d          }t	          j        |                    |                    }t	          j        |                    t           j                            }|j        j        t           j        k    sJ t          ||d           d S )Nr|  rZ  r  r  )r   r   re   rh  rh   r  r  r3  r  r   int64r   )rm   r3  sampler   r  s        rv   
test_dtypezTestLMoment.test_dtypeT%  s    
DI&&mFMM%0011mF##y~&&&&St,,,,OOO,,mFMM%0011mFMM"*5566y~++++Su------rx   N)r   r   r   rh  r   rl   r  not_integersr  r(   r  r,  r  r  r  r  r	  r  r  r  r   rx   rv   r  r  %  s       
N 
N 
ND bfbfh?LD D D
 = = =
 [WlaR)))5M&MNN2 2 ON2
 [V\220 0 320
 [X|444 4 544
 []L99> > :9>
 [Wq!\\\&:;;[]UDM::[Xt}557 7 65 ;: <;7". . . . .rx   r  c                      e Zd Zej                            dg d          ej                            dddg          ej                            dddg          d                                     Zd	 Zd
 Zd Z	d Z
d Zd Zd ZdS )TestXP_MeanrV   Nr   ra   )r  r1   r	  NTrU  Fc                    t           j                            d          }|                    d          }|                    |          }d x}}	|rB|                    d          }|                    |          }	t          j        ||          \  }}t          ||	||          }
t          j        ||||          }t          |
|                    |                     d S )N   -fH rl  r   )r	  rV   rU  )r   r  r  re   rh  r#   r	  r/   )rm   rn   rV   r	  rU  r  ro   x_xprp  w_xpr   r  s               rv   test_xp_mean_basiczTestXP_Mean.test_xp_mean_basicf%  s     i##N33JJy!!zz!}}D 	-

6""A::a==D&q!,,DAqtTxHHHjAD8DDDRZZ__-----rx   c                     |                     d          |                    d          }}d}t          j        t          |          5  t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r4   z/Array shapes are incompatible for broadcasting.r   rF	  )r   r  r,  r   r   r#   )rm   rn   ro   rp  rt  s        rv   test_non_broadcastablez"TestXP_Mean.test_non_broadcastabley%  s    yy~~rxx{{1C]:W555 	# 	#Q""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   A''A+.A+c                    |                     g d          }t          |                     g d          |          }t          ||                     |j                             t          |                     g d          |          }t          ||                     t          j                              t          |                     g d          |          }t          ||                     t          j                             d S )Nr  r
  rF	  )rD  r   r   )r   r   rD  )re   r#   r/   rl   r   r  )rm   rn   r	  r   s       rv   test_special_caseszTestXP_Mean.test_special_cases%  s    **]]]++rzz,,,//AAARZZ//000rzz,,,//AAARZZ00111rzz,,,//AAARZZ//00000rx   c                 z   |                     d          }|dk    }|                    ||                    |j                  |          }d}t	          j        t          |          5  t          |d           d d d            n# 1 swxY w Y   t          |          }t          |d          }|                    |j                  }t          ||           t          ||           t          |d          }|	                    ||                    }t          ||           |                    d	          }	|                    ||                    |j                  |	          }	t          |                     d          |	d
          }|	                    ||                    }t          ||           d}t	          j        t          |          5  t          |t          j        z  d          }|                    |j                  }t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r2   r   r   r   r   r=  r   r[   )r	  r   After omitting NaNs...)r   r  re   rl   r,  r   r   r#   r0   rk   r/   r  r-  r   r   )
rm   rn   ro   r  rt  r  r  r  r   r	  s
             rv   r1  zTestXP_Mean.test_nan_policy%  s   IIcNNQHHT2::bf--q11 2]:W555 	, 	,Q7++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, {{k222jj  c"""c""" qV,,,ggahS!!! ''"++((4BF!3!3W==ryy~~w6JJJggahS!!! +\.888 	& 	&1rv:&999C**RV$$CC%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s%   (BB
B
A	H00H47H4c                    d}t          j        t          |          5  t          |                    g                     }|                    |j                  }t          ||           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          |                    g g          d          }|                    |j        g          }t          ||           d d d            n# 1 swxY w Y   t          |                    g g          d          }|                    g           }t          ||           d S Nz,One or more sample arguments is too small...r   z2All axis-slices of one or more sample arguments...r   rU   r   )r,  r-  r   r#   re   rl   r0   rm   rn   rt  r   r  s        rv   rE  zTestXP_Mean.test_empty%  s   @\,G<<< 	& 	&2::b>>**C**RV$$CC%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 G\,G<<< 	& 	&2::rd++!444C**bfX&&CC%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 rzz2$''a000jjnnS!!!!!%   AA77A;>A;AC<<D D c                    |                     |j                  j        }t          j        ||gt          j                  }|                    |          }t          j        d          5  t          |          }t          j        |          }t          j        	                    |t          j
                   t          ||                    |                     d d d            n# 1 swxY w Y   t          ||j                  }|                    t          j        t          j        |t          j                                      }t          ||           d S )Nr5  r  over)r   r   r	  r   re   r  r#   rk   r  r   r  r/   r   rm   rn   r	  x_npr  r   r  s          rv   r  zTestXP_Mean.test_dtype%  sQ   hhrz""&z3*BJ777zz$ [h''' 	2 	24..C'$--CJ##C000CC111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 t2:...jjD
!C!C!CDDEES!!!!!s   ,A1C))C-0C-c                 
   |                     d          }|                     d          }t          t          |          t          |                     t          t          ||          t          ||                     d S )Nr[   r   rF	  )r   r0   r#   rm   rn   ro   rp   s       rv   test_integerzTestXP_Mean.test_integer%  sl    IIbMMIIcNNXa[[111A...A0F0F0FGGGGGrx   c                    t           j                            d          }|                    d          \  }}}}t          |                    ||dz  z             |                    ||dz  z                       }t          j        ||dz  z   ||dz  z             }t          ||                    |                     d S )Nr  )r3   r  r  rF	  )r   r  r  r#   re   r	  r/   )	rm   rn   r  ro   rp   wxwyr   r  s	            rv   r  z TestXP_Mean.test_complex_gh22404%  s    i##N33zz'**1b"rzz!ad(++RZZRU
5K5KLLLjQrT22:666RZZ__-----rx   )r   r   r   r,  r  r  r  r  r  r1  rE  r  r-  r  r   rx   rv   r  r  d%  s        [V%;%;%;<<[Yt55[Z%77. . 87 65 =<. # # #1 1 1"& "& "&H" " """ " ""H H H. . . . .rx   r  r  c                      e Zd Zej                            dg d          ej                            dddg          ej                            dddg          ej                            d	d
dg          d                                                 Zd Zd Zd Z	d Z
d Zej                            dd          d             ZdS )
TestXP_VarrV   r  rU  FTr}   r   r   r   r=  r   c                 >   t           j                            d          }|                    d          }t           j        }|dk    r:|                    |j                  dk    }	t           j        ||	<   t           j        }|                    |          }
t          |
||||          }t                      5 }|
                    t          d            |||||          }d d d            n# 1 swxY w Y   t          ||                    |                     d S )	Nr  rl  r   r  r:   )rV   rU  r}   r   r  )rV   rU  r  )r   r  r  r   r  rl   nanvarre   r$   r   r   r   r/   )rm   rn   rV   rU  r}   r   r  ro   var_refnan_maskr  r   r   r  s                 rv   test_xp_var_basiczTestXP_Var.test_xp_var_basic%  sU   
 i##N33JJy!!&zzqwz//#5H&AhKiGzz!}}dZ!+- - -    	LCJJ~'JKKK'!$
KKKC	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	RZZ__-----s   8+C//C36C3c                     t          |                    ddg          d          }t          ||                    |j                             d S )Nr   rD  r2   r|   )r$   re   r/   rl   )rm   rn   r   s      rv   r  zTestXP_Var.test_special_cases%  sH    bjj"b**q999RZZ//00000rx   c                 n   |                     d          }|dk    }|                    ||                    |j                  |          }d}t	          j        t          |          5  t          |d           d d d            n# 1 swxY w Y   t          |          }t          |d          }|                    |j                  }t          ||           t          ||           t          |d          }t          |          }	|	
                    ||                    }t          ||           d	}t	          j        t          |          5  t          |t          j        z  d          }|                    |j                  }t          ||           d d d            d S # 1 swxY w Y   d S )
Nr   r2   r   r   r   r   r=  r   r!  )r   r  re   rl   r,  r   r   r$   r0   r)   r   r/   r-  r   r   )
rm   rn   ro   r  rt  r  r  r  r   r   s
             rv   r1  zTestXP_Var.test_nan_policy&  s   IIcNNQHHT2::bf--q11 2]:W555 	+ 	+A'****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ qzzq[111jj  c"""c""" aF+++!!$$kk!TE(##S!!! +\.888 	& 	&!bf*888C**RV$$CC%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s%   (BB
B
A	F**F.1F.c                    d}t          j        t          |          5  t          |                    g                     }|                    |j                  }t          ||           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          |                    g g          d          }|                    |j        g          }t          ||           d d d            n# 1 swxY w Y   t          |                    g g          d          }|                    g           }t          ||           d S r#  )r,  r-  r   r$   re   rl   r0   r$  s        rv   rE  zTestXP_Var.test_empty"&  s   @\,G<<< 	& 	&"**R..))C**RV$$CC%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 G\,G<<< 	& 	&"**bT**333C**bfX&&CC%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 bjj"&&Q///jjnnS!!!!!r%  c                    |                     |j                  j        }t          j        ||dz  gt          j                  }|                    |          }t          j        d          5  t          |          }t          j        |          }t          j        	                    |t          j
                   t          ||                    |                     d d d            n# 1 swxY w Y   t          ||j                  }|                    t          j        t          j        |t          j                                      }t          ||           d S )Nr1   r5  r  r'  )r   r   r	  r   re   r  r$   r   r  r   r  r/   r   r)  s          rv   r  zTestXP_Var.test_dtype3&  sU   hhrz""&z3A,bj999zz$ [h''' 	2 	2$--C&,,CJ##C000CC111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 d"*---jj
4rz B B BCCDDS!!!!!s   /A1C,,C03C0c                     |                     d          }|                     d          }t          t          |          t          |                     d S )Nr[   r   )r   r0   r$   r,  s       rv   r-  zTestXP_Var.test_integerD&  sB    IIbMMIIcNN

GAJJ/////rx   rG   r  rE   c                 B   t           j                            d          }|                    d          \  }}t          |                    ||dz  z                       }t          j        ||dz  z             }t          ||                    |          d           d S )Nr  )r1   r  r  F)check_dtype)r   r  r  r$   re   r   r/   )rm   rn   r  ro   rp   r   r  s          rv   r  zTestXP_Var.test_complex_gh22404J&  s    i##N33zz'""1bjjQrT**++fQ2XRZZ__%@@@@@@rx   N)r   r   r   r,  r  r  r7  r  r1  rE  r  r-  rH   r  r   rx   rv   r2  r2  %  s2        [V%;%;%;<<[Z%77[\Aq622[\K+@AA. . BA 32 87 =<.*1 1 1
& & &<" " """ " ""0 0 0 [!!"4=R!SSA A TSA A Arx   r2  c           	         t           j                            d          }|                    d          }|                     |          }d}t	          |||           \  }}t          ||                     |                     t          ||           d }t	          |||           \  }}t          ||                     |                                                     t          |d           d}t	          |d         ||           \  }}t          ||                     t          j        |d                                        t          ||           d S )	Nl   ~Mrg  r  r   r7	  r   r1   ra  )	r   r  r  re   r    r0   r   r  
atleast_1d)rn   r  r  ro   rV   x_outaxis_outs          rv   test_chk_asarrayrC  S&  s2   
)


.
.C		#	#B


2AD"14B777OE8E2::b>>***4   D"14B777OE8E2::bhhjj112221D"1W:DR@@@OE8E2::bmBwK&@&@AABBB4     rx   numpyz,These parameters *are* compatible with NumPyc                 ^   |                      g d          }d}t          j        t          |          5  t	          j        |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          j        |d           d d d            d S # 1 swxY w Y   d S )NrW  r  r   r   r   Tru  )re   r,  r   r  rh   r  )rn   ro   rt  s      rv   'test_axis_nan_policy_keepdims_nanpolicyrF  i&  s-    	

<<<  A5G	*'	:	:	: ) )
1(((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	*'	:	:	: % %
1t$$$$% % % % % % % % % % % % % % % % % %s#   AAA>B""B&)B&rQ  )r   r_
  r  rp  collectionsr   	itertoolsr   hypothesis.extra.numpyextrarD  r  r  r  numpy.testingr   r   r   r   r	   r
   r   r   r   r,  r   r   numpy.ma.testutilsr  	testutilsr  r   r   r   r   r   scipy.statsrh   scipy.stats.mstatsr  scipy.stats._mstats_basic_mstats_basicr  scipy.stats._ksstatsr   scipy.special._testutilsr   scipy.specialr   scipyr   common_testsr   scipy.stats._axis_nan_policyr   r   r   r   r   r   rR  r   r    r!   r"   r#   r$   r%   scipy._lib._utilr&   scipy.conftestr'   r(   scipy._lib._array_apir)   r*   r+   r,   r-   r.   scipy._lib._array_api_no_0dr/   r0   r  rH   r  rf   r  r   r   r   r   r   r  rJ   r   r  r  r  r  r  r   r  r  r  r_  rb  rf  rt  rv  r  r  r	  r  r  rG  r  r  r	  r8  r:  rx  r  r  r  r  	compositer  r  r*  PowerDivCaser  r  r  r  rc  r  r  r  r  r  r  ry  r  r  r  r  r  r  r  r  rn  r  r  r  r  r  r  r  r  r  r(  r5  r;  r>  r@  rB  rD  rH  rJ  rU  rY  r\  r^  r  rf  rh  rj  rl  r  r  r  r  r  r  r  r  r
	  r	  r	  r	  r	  r	  r[	  rq	  r	  r	  r	  r	  r	  r	  r
  rB
  r
  r
  r
  r
  r  r&  r1  rW  r|  r  r  r  ro   rp   wilcoxonr  r  r  r  r  r  r  r  r  r2  rC  rF  r   rx   rv   <module>r_     s    
			 				  " " " " " "       % % % % % % % % %        . . . . . . . . . . . . . . . . . . . . . .
  * * * * * *                   / / / / / / / / / / / /           # # # # # # # # # 0 0 0 0 0 0 0 0 0 ( ( ( ( ( ( - - - - - -             - - - - - -T T T T T T T T T T T T T T T TU U U U U U U U U U U U U U U U U U & & & & & & D D D D D D D DG G G G G G G G G G G G G G G G H H H H H H H H;/  
E


u%%u   %((e      !&( (	 2 2 238
: 
:uDDDeLLuDDDeLL333U;; +&JKKK$P   +,,rT rT rT rT rT rT rT -,	  LK rTjp# p# p# p# p# p# p# p#f +,,4   N> N> N> N> N> N> N> !  -, N>bDL DL DL DL DL DL DL DLN{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 < < <3 3 3$SE SE SE SE SE SE SE SElW2 W2 W2t& & &  &$ &$ &$R+ + + + + + + +(V# V# V# V# V# V# V# V#r0 0 0D) ) )3 3 3"rN rN rN rN rN rN rN rNjf3 f3 f3 f3 f3 f3 f3 f3R *E *E *E *E *E *E *E *EZ +,,+&DEEEW" W" W" W" W" W" W" FE -, W"t<@ <@ <@ <@ <@ <@ <@ <@~1 1 1f@ f@ f@ f@ f@ f@ f@ f@Rs" s" s" s" s" s" s" s"l= = = = = = = =x" x" x" x" x" x" x" x"vg" g" g" g" g"# g" g" g"T    ! < t%@  B B+,,F) F) F) F) F) F) F)  -,B BF)R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
++!!  # 4 F< F< F< F< F< F< F< F<R (' (' (' (' (' (' (' ('V S# S# S# S# S# S# S# S#l4D 4D 4Dn+( +( +( +( +( +( +( +(`Z. Z. Z. Z. Z. Z. Z. Z.~c. c. c. c. c. c. c. c.L	rE rE rEj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
/d 
/ 
/ 
/ 
/ 
/ t%@  B B+,,Q% Q% -,B B Q%h7A 7A 7At   DEEO7 O7 O7 O7 O7 O7 O7 FEO7d
 DEEF5 F5 F5 F5 F5 F5 F5 FEF5RT7 T7 T7 T7 T7 T7 T7 T7n t%@  B B+,,HB HB HB HB HB HB HB -,B B HBVL L L$ t%@  B B+,,N' N' -,B B N'b t%@  B B+,,5 5 -,B B 5*     , % % % &!1222+,,,#28I..7#28I..79: :0 0: :  -, 320  
& 
& 
& & & & d%I  K K+,,G G -,K K G t%@  B B+,,% % -,B B % t%@  B B+,,G G -,B B G8% % % t%@  B B+,,9> 9>  -,B B 
9>x d%O  Q Q+,,   -,Q Q, t%@  B B+,,% %  -,B B%<V+ V+ V+ V+ V+ V+ V+ V+r <- <- <- <- <- <- <- <-|" " " " "> " " ":/& /& /& /& /&~ /& /& /&d: : : : :^ : : :
A A A A A A A A. :1 :1 :1 :1 :1 :1 :1 :1z{- {- {- {- {- {- {- {-|1 1 1"(> (> (>V 15D+ + + + + D D DD D DD D D o3 o3 o3 o3 o3 o3 o3 o3d f3 f3 f3 f3 f3 f3 f3 f3R wW wW wW wW wW wW wW wWtP- P- P- P- P- P- P- P-f( ( (.9 9 90[; [; [;|T7 T7 T7 T7 T7 T7 T7 T7n,/ ,/ ,/ ,/ ,/ ,/ ,/ ,/^i) i) i) i) i) i) i) i)Xz) z) z) z) z) z) z) z)zX X X X X X X Xv 4$k2.0 0 0 +,,c4 c4 c4 c4 c4 c4 c4  -,	0 0c4L#A #A #A #A #A #A #A #ALl  l  l  l  l  l  l  l ^[ [ [ [ [ [ [ [|@ @ @ @ @ @ @ @Fi i i i i i i iXHA HA HA HA HA HA HA HAV{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+vT. T. T. T. T. T. T. T.n z. z. z. z. z. z. z. z.z +,,+&QRRRkA kA kA kA kA kA kA SR -, kA\ ! ! !* g%S  U U+,,
% 
%  -,U U
% 
% 
%rx   