
    -ii&                    .   d Z ddl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 ddlZddl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&Z& dd	l'm(Z( dd
l)m*Z*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZK ddlLmMZMmNZN ddlOmPc mQZR e!gZSejT        jU        ZUejT        jV        ZV	  eg deW          ZX eg deW          ZY eg deW          ZZ eg deW          Z[ eg deW          Z\ eg deW          Z] eg deW          Z^ G d d          Z_ G d d          Z` eIe!ja                   G d d                      Zb G d  d!          Zc G d" d#          Zd G d$ d%          ZeejT        f                    d&'          d(             Zgd) Zhd* ZiejT        f                    d&'          d+             Zj G d, d-          Zkd. Zld/ Zmd0 Znd1 Zo G d2 d3          Zpd4 Zqd5 Zrd6 Zs G d7 d8          Zt eIe!ju                   G d9 d:                      Zv eIe!jw                   G d; d<                      Zx eIe!jy                   G d= d>                      Zz eIe!j{                   G d? d@                      Z| eIe!j}                   G dA dB                      Z~ eIe!j                   G dC dD                      ZdE Z eIe!j                   G dF dG                      Z eIe!j                   G dH dI                      Z G dJ dK          Z eIe!j                   G dL dMe                      Z eIe!j                   G dN dOe                      Zej        j        dP             Z eIe!j                   G dQ dR                      Z G dS dT          Z edUg dV          Z eg dWddddXdYdX ej        dZ          z  d[ ej        d\          z  z   z  dYd] ej        d^          z  d] ej        d_          z  z   z  d`V           eg dWg dadddbdYdX ej        d^          z  d] ej        dZ          z  z   d] ej        dc          z  z   z  dYdY ej        dZ          z  dd ej        d^          z  z   dY ej        de          z  z   z  dfV           eg dWd]dddXdYdX ej        dZ          z  d[ ej        d\          z  z   z  dYd] ej        d^          z  d] ej        d_          z  z   z  d`V           eg dgg dgddddddV          gZ eg dddddddV           e ej        g g g g          j        dddg dhg dhg dhg dhV           e ej        g g g g          dddg g g g V          gZ eIe!j                   G di dj                      Z eIe!j                   G dk dl                      Z eIe!j                   G dm dn                      Z G do dp          Z eIe!j                   G dq dr                      Z G ds dt          Zdu Zdv Zdw ZejT                            dx ej        dy          dzf ej        d{          d|fg          d}             Zd~ ZejT                            dg d          d             ZejT                            de!j         ej        d          dffe!j         ej        d           ej        d          ffg          d             ZddddZ eIe!j        e!j                  d             Zd Zd ZejT                            d           G d d                      Z G d d          Z G d d          Z eIe!j                   G d d                      Zd Z eIe!j                   G d d                      Z eIe!j                   G d d                      ZejT        U                    dd          ejT                            d          ejT                            d          d                                     Zd ZejT        j        ejT                            d          ejT                            d           eIe!j                  d                                                 Z eUdd          d             Z eIe!j                  ejT        U                    dd'          d                         Z eIe!j                   G d d                      Z G d d          Z eIe!j                   G d de                      Z eIe!j                   G d de                      Z eIe!j                   G d de                      Z G d d          Z eIe!j                   G d d                      Zd Zd ZddddddZd Zd Zd Z eIe!j                   G d d                      Z eIe!j                   G d d                      Z eIe!j                   G d d                      Z eIe!j                   G d dæ                      ZdĄ Zdń ZdƄ Z G dǄ dȦ          Z eIe!j                   G dɄ dʦ                      Z eIe!j                   G d˄ d̦                      Z eIe!j                   G d̈́ dΦ                      Z eIe!j                   G dτ dЦ                      Z eIe!j                   G dф dҦ                      Z eIe!j                   G dӄ dԦ                      Z G dՄ d֦          Z G dׄ dئ          Z G dل dڦ          Z G dۄ dܦ          Z eIe!j                   G d݄ dަ                      Z G d߄ d          Z G d d          Zej                            d          Ze                    d          Ze                    d          ZejT                            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 eIe!j                   G d d                      Z G d d          Z G d d          Zd Z dS )z Test functions for stats module

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

    Additional tests by a host of SciPy developers.
    N)
namedtuple)product)assert_assert_equalassert_almost_equalassert_array_almost_equalassert_array_equalassert_approx_equalassert_allcloseassert_array_less)raises)arrayarangefloat32power)kolmogn)FuncData)optimizespecial   )check_named_results)_broadcast_concatenateSmallSampleWarningtoo_small_nd_omittoo_small_nd_not_omittoo_small_1d_omittoo_small_1d_not_omit)_chk_asarray_momentLinregressResult_xp_mean_xp_var_SimpleChi2)	AxisError)skip_xp_invalid_arg)array_namespaceeager_warnsis_lazy_arrayis_numpyis_torchxp_default_dtypexp_sizeSCIPY_ARRAY_APImake_xp_test_casexp_ravelxp_swapaxes)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ʣ=)	      ?      ?      @      @      @      @      @      @      !@c                      e Zd Z ej        ej                  j        Z ee	j
                  d             Z ee	j                  ej                            d          d                         Z ee	j                  d             Z ee	j                  d             Z edd          d	             Z ee	j                  d
             Z edd          d             Z ee	j        e	j                  d             Z edd           ee	j        e	j                  d                         Z ee	j                  d             ZdS )TestTrimmedStatsc           	         t          |          }|                    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                             |j        d          }	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dtyper3   r9   TT      @)FFlimits	inclusiverN        O@r:   r8   axisr   r   )r3   =   )rN   rT   g     ?@)r3      )         '@r:   
            TF)rN   rO   rT   )      %@rX   r:   rY   rZ   r[   r\   T)copy)r   r\   r8   r@   rA   rB   r5   rY      rV   FT)r+   asarrayXstatstmeanr1   reshaper   meanxpxatsetnan)
selfxpdefault_dtypexyy1y2x_2dy_truex_2d_with_nans
             b/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/scipy/stats/tests/test_stats.py
test_tmeanzTestTrimmedStats.test_tmeanQ   s   (,,JJqJ..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--...tRW-11"&t1DD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--.....    z>ignore:invalid value encountered in divide:RuntimeWarning:daskc                 X   |                     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 )NrJ   rK   rM   g@rP   r   
correctionrQ   rR   rS   r   r8   g     v@)r:   g㪪@r   r6   )rN   rT   rO   r>   r   r7   g@)rd   re   tolistrf   tvarr1   varrh   r   fullr2   rm   )rn   ro   rq   rr   ru   s        rx   	test_tvarzTestTrimmedStats.test_tvar   s   
 JJqxxzz""Jq<@@@2::&899:::Jq&&&266!622333zz"))C..&11Jt$'''266$1655666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1rz   c                 F   |                     t                                                    }t          j        |dd          }t          ||                     d                     t          j        |d           }t          ||                    |d                     d S )NrJ   rK   gBĆ/H@rP   r   r|   )rd   re   r   rf   tstdr1   stdrn   ro   rq   rr   s       rx   	test_tstdzTestTrimmedStats.test_tstd   s    JJqxxzz""Jq&,//2::&899:::Jq&&&266!62233333rz   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                     t          j        |                     d          d                              |j	                  }t          t          j        |          |                    |j	                             |                    |                     d          d          }t          j        |dd
          }t          ||                    t          j	        dddg                     d S )N      $@        r   
lowerlimitF)r   rO         ?r6   r3          @r   rS   )r   r         @      @       @r:      r5   r5   r5   )r   rT   r9   r[   )r   r2   rf   tminrd   rh   rj   rk   rl   rm   nprn   ro   rq   ress       rx   	test_tminzTestTrimmedStats.test_tmin   s   IIcNN
1rzz"~~666
1333RZZ^^DDD
1eDDDbjjQSnnUUUJJq&!!
1eDDD

B8,,	. 	. 	.
11---rzz:N:N:N/O/OPPP
14000"**R..AAAF299S>>1%%))"&11
1rzz"&'9'9::: JJryy}}f--jqq111RZZAr(:;;<<<<<rz   Tz4Only NumPy arrays support scalar input/`nan_policy`.np_onlyreasonc                 ~   t          t          j        d          d           t          j        d          }t          j        |d<   t          j                    5  t          j        ddt                     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 )Nr5   r   r:   ignoreinvalid valueomit
nan_policyr   The input contains nan valuesmatchraisenan_policy must be one of...foobar)r   rf   r   r   r   rm   warningscatch_warningsfilterwarningsRuntimeWarningassert_raises
ValueErrorrn   ro   rq   msgs       rx   test_tmin_scalar_and_nanpolicyz/TestTrimmedStats.test_tmin_scalar_and_nanpolicy       	UZ]]A&&&IcNNv!$&& 	3 	3#Ho~NNN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D21CD2C	D2C	D27DD2D	D2!D	"D22D69D6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                     t          j        |                     d          d                              |j	                  }t          t          j        |          |                    |j	                             t          j                    5  t          j        ddt                     |                    |                     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         "@r:   
upperlimitF)r   rO   r   r         @r   rS   )r         @rL   r   r   r   zAll-NaN slice encounteredr   r   rZ   )r   rT   r4   r8   )r   r2   rf   tmaxrd   rh   rj   rk   rl   rm   r   r   r   r   r   r   s       rx   	test_tmaxzTestTrimmedStats.test_tmax   s   IIcNN
1rzz"~~666
1333RZZ^^DDD
1eDDDbjjQSnnUUUJJq&!!
1eDDD

B8,,	. 	. 	.
11---rzz:N:N:N/O/OPPP
14000"**R..AAAF299S>>1%%))"&11
1rzz"&'9'9::: $&& 	A 	A#5~G G G

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J!!J%(J%c                 ~   t          t          j        d          d           t          j        d          }t          j        |d<   t          j                    5  t          j        ddt                     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 )Nr5   r   r7   r   r   r   r   r   r   r   r   r   r   )r   rf   r   r   r   rm   r   r   r   r   r   r   r   s       rx   test_tmax_scalar_and_nanpolicyz/TestTrimmedStats.test_tmax_scalar_and_nanpolicy   r   r   c                    |                     |                    d|j                  d          j        }t	          |          rt          |          n|j        }t          t          j	        |          |
                    ddg|                     t          t          j        |          |
                    ddg|                     t          t          j	        |d	          |
                    |j        d
g                     t          t          j        |d          |
                    d|j        g                     d S )NrY   rH   r3   r6   r   r6   r5   r:   r7   r   r   r4   r   r   )rh   r   int16Tr(   r+   rI   r2   rf   r   rd   r   rm   )rn   ro   rq   expect_dtypes       rx   test_tmin_tmax_int_dtypez)TestTrimmedStats.test_tmin_tmax_int_dtype   s   JJryy28y44f==?
 0=Q/?/?L'+++QW
1rzz1a&z'M'MNNN
1rzz1a&z'M'MNNN 	
1333RZZ5M5MNNN
1333RZZRV5M5MNNNNNrz   z%Only with data-dependent output dtype
eager_onlyr   c                     |                     dd          }t          t          j        |d d d f                   |           t          t          j        |d d d f                   |           d S )Nl            l   
        )r   r2   rf   r   r   rn   ro   rq   s      rx   test_gh_22626zTestTrimmedStats.test_gh_22626
  si     IIeX&&
1T111W:..222
1T111W:..22222rz   c                    |                     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)r4   r9   rc   rM   )r   rL   r   r   r   r   r|   r<   r_   rY   rP   )rd   re   r   rf   tsemr1   r   r,   )rn   ro   rq   rr   y_refs        rx   	test_tsemzTestTrimmedStats.test_tsem  s    JJqxxzz""Jq=AAA

///00266%A6669LLMMM
1b"X666
1T8R8R8RSSSSSrz   N)__name__
__module____qualname__r   finfofloat64	precisiondprecr.   rf   rg   ry   r   pytestmarkr   r   r   r   r   r   skip_xp_backendsr   r   r   r   r   r   r   r    rz   rx   rF   rF   M   s7       BHRZ  *Eu{##,/ ,/ $#,/\ uz""[H 2 2  #"28 uz""4 4 #"4 uz""= = #"=* dSU U U3 3U U3 uz""A A #"A0 dSU U U3 3U U3 uz5:..O O /.O .UVVVuz5:..3 3 /. WV3 uz""T T #"T T Trz   rF   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   r   )rf   pearsonrre   r
   rn   rr   rs      rx   test_pXXzTestPearsonrWilkinson.test_pXX%  s2    N1QaDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   re   BIGr
   r   s      rx   
test_pXBIGz TestPearsonrWilkinson.test_pXBIG*  s2    N1S!!aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   re   LITTLEr
   r   s      rx   test_pXLITTLEz#TestPearsonrWilkinson.test_pXLITTLE/  s2    N1V$$aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   re   HUGEr
   r   s      rx   test_pXHUGEz!TestPearsonrWilkinson.test_pXHUGE4  2    N1T""aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   re   TINYr
   r   s      rx   test_pXTINYz!TestPearsonrWilkinson.test_pXTINY9  r   rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   re   ROUNDr
   r   s      rx   test_pXROUNDz"TestPearsonrWilkinson.test_pXROUND>  s2    N1U##aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r   r   r
   r   s      rx   test_pBIGBIGz"TestPearsonrWilkinson.test_pBIGBIGC  s2    N3s##aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pBIGLITTLEz%TestPearsonrWilkinson.test_pBIGLITTLEH  s2    N3v&&aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pBIGHUGEz#TestPearsonrWilkinson.test_pBIGHUGEM  2    N3t$$aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pBIGTINYz#TestPearsonrWilkinson.test_pBIGTINYR  r   rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pBIGROUNDz$TestPearsonrWilkinson.test_pBIGROUNDW  s2    N3u%%aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r   r   r
   r   s      rx   test_pLITTLELITTLEz(TestPearsonrWilkinson.test_pLITTLELITTLE\  s2    N6&))aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pLITTLEHUGEz&TestPearsonrWilkinson.test_pLITTLEHUGEa  2    N6$''aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pLITTLETINYz&TestPearsonrWilkinson.test_pLITTLETINYf  r  rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pLITTLEROUNDz'TestPearsonrWilkinson.test_pLITTLEROUNDk  s2    N6%((aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r   r   r
   r   s      rx   test_pHUGEHUGEz$TestPearsonrWilkinson.test_pHUGEHUGEp  2    N4%%aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pHUGETINYz$TestPearsonrWilkinson.test_pHUGETINYu  r
  rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pHUGEROUNDz%TestPearsonrWilkinson.test_pHUGEROUNDz  2    N4&&aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r   r   r
   r   s      rx   test_pTINYTINYz$TestPearsonrWilkinson.test_pTINYTINY  r
  rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r   r   r   r
   r   s      rx   test_pTINYROUNDz%TestPearsonrWilkinson.test_pTINYROUND  r  rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r   r   r
   r   s      rx   test_pROUNDROUNDz&TestPearsonrWilkinson.test_pROUNDROUND  s2    N5''aDAc"""""rz   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   rz   rx   r   r     sY        # # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # # # #rz   r   c                      e Zd Zd Zd Zd Zd Zd Zej	        
                    dddg          d	             Zd
 Zd Zd Zej	                            d          ej	                            d          d                         Zej	                            d          ej	                            d          d                         Zej	                            d          d             Z ed          ej	        
                    dg d          d                         Zd Zej	                            d          d             Zd Zej	                            d          ej	                            d          ej	        
                    dd          ej	        
                    dd           d!                                                 Zej	        j        ej	        
                    dd          d"                         Zej	        
                    d#d$d%g          d&             Zd' Zd( Zej	                            d          ej	                            d          d)                         Z d* Z!ej	        
                    d#g d+          ej	        
                    dg d          d,                         Z"d-S ).TestPearsonrc                     t          j        t          t                    }d}t          ||           t	          |j        |j                   d S Ncorrelationpvalue)rf   r   re   r   r   r  	statisticrn   r   
attributess      rx   test_pearsonr_result_attributesz,TestPearsonr.test_pearsonr_result_attributes  sB    nQ"".
C,,,S_cm44444rz   c           
      B   |                     d          }t          j        ||          \  }}t          ||                    d          d           t          ||                    d          t          j        dt          j        d          z                       d S )Nr   r   V瞯<atolr   r3   r   rf   r   r1   rd   r   sqrtspacingrn   ro   ar   probs        rx   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Orz   c           
      D   |                     d          }t          j        ||           \  }}t          ||                    d          d           t          ||                    d          t          j        dt          j        d          z                       d S )Nr         r#  r$  r   r3   r   r&  r)  s        rx   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Orz   c                    |                     g d          }|                     g d          }t          j        ||          \  }}t          ||                     d                     t          ||                     d                     d S )Nr_   r   r   )r   r   r4   LXz?UUUUUU?)rd   rf   r   r1   )rn   ro   r*  br   r+  s         rx   
test_basiczTestPearsonr.test_basic  s     JJzzz""JJyyy!!.A&&42::h//000bjjoo.....rz   c                    |                     g d          }|                     g d          }d}t          t          j        ||          5  t          j        ||          \  }}t          ||                     |j                             t          ||                     |j                             d d d            d S # 1 swxY w Y   d S )NMbX?r8  r8  rh|?v/?gsh|??An input array is constantr   ro   rd   r'   rf   ConstantInputWarningr   r1   rm   rn   ro   rq   rr   r   r   ps          rx   test_constant_inputz TestPearsonr.test_constant_input  s    JJ,,,--JJ,,,--*332FFF 	3 	3>!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   A)CC
CrI   r   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	          t
          j        ||          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr3   rH   r4   r7   z/An input array is nearly constant; the computedr=  )getattrr   rd   r(  r'   rf   NearConstantInputWarningr   )rn   ro   rI   npdtyperq   rr   r   s          rx   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?7srJJJ 	! 	! 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?rH   )goȟg`
,gzg2l?g>??'ge;E?g3R?rd   r   rf   r   r1   rn   ro   rq   rr   r   rA  s         rx   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Lrz   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   rH   r8   r2  g͗~-?)rd   r   r   rf   r   r1   rK  s         rx   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Nrz   c                 V   |                     g d|j                  }|                     g d|j                  }t          j        ||          \  }}t	          ||                     d|j                             t	          ||                     d|j                             d S )N)g7	igNig_b4igZbirH   )gDig<'(½igmQiZbtig*D{?gݣ?rJ  rK  s         rx   !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Krz   4ignore:invalid value encountered:RuntimeWarning:dask5ignore:divide by zero encountered:RuntimeWarning:daskc                 p   |                     ddg          }|                     ddg          }t          j        ||          }|\  }}|                     d          }t          ||           t          ||           |                                \  }}	t          ||            t          |	|           d S )Nr   r   r   rL   rd   rf   r   r2   confidence_interval
rn   ro   rq   rr   r   r   rA  onelowhighs
             rx   test_length_two_pos1z!TestPearsonr.test_length_two_pos1  s    
 JJBx  JJBx  nQ""1jjnn33++--	TcT"""c"""""rz   c                 r   |                     ddg          }|                     ddg          }t          j        ||          }|\  }}|                     d          }t          ||            t          ||           |                                \  }}	t          ||            t          |	|           d S )Nr   r   r   rL   rU  rW  s
             rx   test_length_two_neg1z!TestPearsonr.test_length_two_neg1  s    
 JJBx  JJBx  nQ""1jjnnC4   3++--	TcT"""c"""""rz   *ignore:invalid value encountered in dividec                    |                     ddg          }|                     ddg          }d}t          t          j        ||          5  t          j        ||          \  }}t          ||                     |j                             t          ||                     |j                             d d d            d S # 1 swxY w Y   d S )Nr8  r:  r;  r<  r=  r>  r@  s          rx   test_length_two_constant_inputz+TestPearsonr.test_length_two_constant_input  s    
 JJu~&&JJu~&&*332FFF 	3 	3>!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 	3rC  Tr   z$alternative, pval, rlow, rhigh, sign))	two-sided?gmgƎ?r   )lessK˅?r_   g?
?r   )greater.?gդζr   r   )rb  rc  gfǎgl?r_   )rd  rg  r.  gդζ?r_   )rf  re  g?
r   r_   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   r3   r4   r5   )r   r   r<   r   alternativeg?r;   rtolư>)r   r   rf   r   r   r  r  rV  )rn   rk  pvalrlowrhighsignro   rq   rr   resultcis              rx   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5rz   c                 6   |                     d          }| }t          j        ||d          }t          j        ||d          }t          |j        |                    d                     t          |j        |                    d          d           d S )	Nr   rf  rj  rd  r   r   g#B;r$  )r   rf   r   r1   r  rd   )rn   ro   rq   rr   test_greater	test_lesss         rx   (test_negative_correlation_pvalue_gh17795z5TestPearsonr.test_negative_correlation_pvalue_gh177959  s    IIcNNB~a	BBBN1aV<<<	+RZZ^^<<<	("**R..uEEEEEErz   c                 |   |                     g d          }|                     g d          }t          j        ||          }|\  }}|                     d          }t          ||            t          |d|z  d           |                                \  }}	t          ||            t          |	|           d S )Nr   r   r   )rL   g      g      *r   r   Hz>r$  )rd   rf   r   r1   rV  r2   rW  s
             rx   #test_length3_r_exactly_negative_onez0TestPearsonr.test_length3_r_exactly_negative_oneA  s    JJ|||$$JJ''nQ"" 1jjooC4   1S5t,,,,++--	TcT"""c"""""rz   c                    g d}dg}d}t          j        t          |          5  t          j        ||           d d d            n# 1 swxY w Y   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   r3   r4   r5   z3`x` and `y` must have the same length along `axis`.r   r6   "`x` and `y` must be broadcastable.r   r3   (`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...r4   
asymptoticmethodexact)r   r   r   rf   r   rV  )rn   rq   rr   messager   s        rx   test_input_validationz"TestPearsonr.test_input_validationP  s   IICG]:W555 	! 	!N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! IIF6]: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 	4sk   AAA7BB BC))C-0C-D;;D?D?#FFF
G..G25G2rY   z-Monte Carlo method needs > a few kB of memoryrk  rd  rf  rb  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r  r3   d   )r3     sizerngr3   rvsi  r  r_   )rk  r  rT   rk  rT   r#  rl  {Gz?MbP?rm  r%  r  )r   randomdefault_rngnormalrf   PermutationMethodMonteCarloMethodr   r   r  r  r   )rn   r  rk  r  r  rq   rr   methodsr  r   refres2s               rx   test_resampling_pvaluez#TestPearsonr.test_resampling_pvaluer  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	 )(rz   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  r_   r  l   |#(AkPrandom_stater  gQ?r$  r  )	r   r  r  r  rf   r   BootstrapMethodrV  r   )
rn   rk  r  rq   rr   r   r  res_ciref_cires_ci2s
             rx   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(((((rz   rT   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# r:   rY   r3   r  rS   r   )r   r  r  r  rf   r   rV  r   rangeshaper   r  r  rY  rZ  )rn   rT   r  r  rq   rr   r   rt  ires_ici_is              rx   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 	3rz   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  rS   )r   r  r  r  rf   r   rV  ravelr   r  r  )	rn   r  r  rq   rr   r   rt  r  ci_refs	            rx   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#####rz   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 )Nr   z`axis` must be an integer.r   r=   rS   z2`x` and `y` must have the same length along `axis`r3   r   r   r  r  r4   r6   z:`method` must be `None` if arguments are not NumPy arrays.rY   r  )	onesr   r   r   rf   r   r)   r   r  )rn   ro   rq   rr   r  s        rx   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|d<   d|d<   |                    |          |                    |          }}d}t	          t
          j        ||          5  t          j        ||d	          }|                                }	|                    |j	        |j	        g|j
        
          }
t          |j        dd         |
           t          |j        dd         |
           t          |	j        dd         |
           t          |	j        dd         |
           |                    |                    |j        dd                              sJ |                    |                    |j        dd                              sJ |                    |                    |	j        dd                              sJ |                    |                    |	j        dd                              sJ 	 d d d            n# 1 swxY w Y   d\  |d<   |d<   |                    |          |                    |          }}d}t	          t
          j        ||          5  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r5   r6   r   )r   .r3   )r   .r<  r=  rS   rH   r   )g     ?g      @r   r   r   r   z!An input array is nearly constantr   r5   r_   )r   r_   r_   r   )r   r  r  rd   r'   rf   r?  r   rV  rm   r   r2   r  r  rY  rZ  allisfiniterF  r  r1   )rn   ro   r  x0y0rq   rr   r  r   rt  nansr  s               rx   test_nd_special_casesz"TestPearsonr.test_nd_special_cases  s    i##N33F##SZZ%7%7B6
6
zz"~~rzz"~~1.37rJJJ 	4 	4.AA...C((**B::rvrv.bj:AADCM!A#.555CJqsOT222BF1Q3K...BGAaCL$///66"++cmABB&7889999966"++cjn556666666"++bfQRRj112222266"++bgabbk22333333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 24"T(zz"~~rzz"~~157w2NNN 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 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+KKKc                 (   t           j                            d          }|                    d          }|                    d          }t          j        ||d          }t          j        ||d          }t          |j        |j                   d S )Nl   [LY)r4   rY   rY   r   rS   r_   )r   r  r  rf   r   r   r  rn   ro   r  rq   rr   r   r  s          rx   test_different_dimensionalityz*TestPearsonr.test_different_dimensionality  s     i##$566JJwJJrNNnQ***nQ+++S]CM22222rz   r   r   Nc                    t                               d          \  }}t          j        |                    |          |                    |          ||          }t          j        ||||          }t          |j        |                    |j                             t          |j        |                    |j                             |                                }|                                }	t          |j	        |                    |	j	                             t          |j
        |                    |	j
                             d S )N)r3   rY   rZ   r  rT   rk  )r  r  rf   r   rd   r1   r  r  rV  rY  rZ  )
rn   ro   rT   rk  rq   rr   r   r  r  r  s
             rx   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%<%<=====rz   N)#r   r   r   r!  r,  r/  r5  rB  r   r   parametrizerH  rL  rN  rQ  r   r[  r]  r`  r   ru  ry  r}  r  	fail_slowxfail_on_32bitr  slowr  r  r  r  r  r  r  r   rz   rx   r  r    s       5 5 5P P PP P P/ / /	3 	3 	3 [Wy)&<==
! 
! >=
!M M MO O OL L L [ VWW[ WXX# # YX XW# [ VWW[ WXX# # YX XW# [ LMM
3 
3 NM
3& d###[CH H HI I6 6I I $#6F F F [ WXX# # YX# 4  4  4D [2[ OPP[],LMM[]KM M2 2M M NM QP 
2( [[],LMM) ) NM )& [VaV,,3 3 -,3 
$ 
$ 
$G G G0 [ VWW[ WXX$' $' YX XW$'L3 3 3$ [V\\\22[],L,L,LMM> > NM 32> > >rz   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?r5   significantr  r3   r  r6   g,Ԛ?r8   r9   g2c?r7   rY   gY
A?      g_?r      gO^M?r   gօa?r4   r   ggE?g$I$I?)rf   fisher_exactr
   )rn   r  r   s      rx   r5  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-----rz   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  r3   r  r6   )gAn&	?g}K
T?r8   r9   )g	7?g?r   rY   )g!@j)A?r  r  )gU!a?gKY?r   r  )g7X?g~ltP?)gFu|?r  r   )r   gQN^?r5   gaa?r   r   gaa?r4   rZ   T)decimalverbose)r   infrf   r  rd   testingr   )rn   tablisttableres_rr   s        rx   test_precisezTestFisherExact.test_preciseH  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 	9rz   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 )Nr7   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rf   r  r   rn   rq   r   s      rx   test_gh4130zTestFisherExact.test_gh4130`  s     WsCj! ##A 1222 !Wq#h ##A 5666 "Xe}% ##A 566666rz   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      rx   test_gh9231zTestFisherExact.test_gh9231v  sG     w'7!34 ##A//////rz   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   r5   r  iPF  i8 r  i_ g^K=?)ziprf   r  r
   )rn   pvalsro  numr   s        rx   test_large_numbersz"TestFisherExact.test_large_numbers}  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7rz   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   r7   )r   r   r   rf   r  r   r   rn   r  s     rx   test_raiseszTestFisherExact.test_raises  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   r6   rY   r   )rf   r  r   r   rm   )rn   tablesr  	oddsratioro  s        rx   test_row_or_col_zeroz$TestFisherExact.test_row_or_col_zero  s    q6Ar7#r7QF#q6Ar7#q6B7#%  	, 	,E#077OIts###BF++++	, 	,rz   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 )#Nr3   r8   r9   r  i,     rV   r7   i     i   i  r   r4   r   r5   gI[?gq}!?r   g2\&gQp6g:O_?g a?皙?ffffff??333333?UUUUUU?r3  rd  rj  rf  r|  )r%  rm  )r  appendrf   r  r   )rn   r  r   r  ro  r   s         rx   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		: 	:rz   c                 @    t          j        ddgddgg          \  }}d S )Nr   r3   r:   i")rf   r  )rn   oddsr  s      rx   test_gh3014zTestFisherExact.test_gh3014  s)     )Aq6Ax=*ABBfffrz   rk  rb  rd  rf  c                     t          j        ddgddgg          }t          j        ||          }t	          |j        |j        f|           d S )Nr  r  r  r  rj  )r   r   rf   r  r   r  r  )rn   rk  r  r   s       rx   test_resultzTestFisherExact.test_result  sR    5%.5%.9:: K@@@cmSZ0#66666rz   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 r3   r8   r9   z4`alternative` must be the default \(None\) unless...r   r  rd  r  rk  z6...not recognized; if provided, `method` must be an...r  z3If the `method` argument of `fisher_exact` is an...r  z2`table` must have at least one row and one column.r   r   r  r  r   r4   r3   r4   )r   r  r  rd   r   r   r   rf   r  r  r  r  normr  zerosr  r   )rn   r  r  r  r  s        rx   $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>rY   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  r3   r8   r9   r   rS   r   r  r  g{Gzd?r$  )r   r  r  rd   rf   r  r  random_tablesumpmfr  r   r   r  r  )rn   r  r  r  
ref_pvalueref_statr  r   s           rx   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-----rz   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   r3   r3   r   r   r   r   )r3   r   r   r3   r4   r   r   )r   r   r   r   r3   r8   r4   )r   r   r3   r   r   r   r   )r   r   r   r   r   r   r   gk$?l   |Kr  r  gMb@?r$  i )r  n_resamples)
r   rd   r  r  rf   r  r  r   r  r  )rn   r  r&  r  r  r   s         rx   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::::::rz   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   r4   r5   r  +=r$  )
r   r  r  rf   r  r  rd   r  r   r  )
rn   r  r  r*  r4  cdr  r  r   s
             rx   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rz   N)r   r   r   r  r5  r  r  r  r   r   r  r  r  r	  r  r  r  r  r!  r  r(  r+  xslowr0  r   rz   rx   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rz   r  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d%S )&TestCorrSpearmanrr   c                 N    t           j                            d          | _        d S )NiGr   r  r  r  rn   s    rx   setup_methodzTestCorrSpearmanr.setup_method/  s    9((33rz   c                     t          j        dd          }t          t          j        |                                                     d S )Nr   r   )rf   	spearmanrr   r   isnanr  )rn   rr   s     rx   test_scalarzTestCorrSpearmanr.test_scalar2  s9    OB##!!"""""rz   c                     t          t          t          j        g dddg           t          t          t          j        g dd           d S )Nr   r3   r   r9   r:   )r   r   rf   r9  r6  s    rx   test_uneven_lengthsz%TestCorrSpearmanr.test_uneven_lengths6  s@    j%/999q!fEEEj%/999a@@@@@rz   c                    | j                             d          }| j                             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r5   r4   r5   r3   r6   r6   r   rS   )
r  standard_normalrf   r9  r  r  r   r  r   r   rn   rq   rr   s      rx   test_uneven_2d_shapesz'TestCorrSpearmanr.test_uneven_2d_shapes:  s    H$$V,,H$$V,,q!$$.4>>>>qsACa0007=GGGGj%/1aa@@@@j%/13<<<<<rz   c                    | j                             d          }t          t          t          j        |           t          t          t          j        ||           t          t          t          j        |d d            t          t	          j        ||d           t	          j        |                                |                                d                     d S )N)r5   r4   r3   rS   r   )r  rC  r   r   rf   r9  r   flattenrn   rq   s     rx   test_ndim_too_highz$TestCorrSpearmanr.test_ndim_too_highD  s    H$$Y//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rz   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   r:   r   r   )r   r   r   r   )r   r   rm   r	   rf   r9  r   r   rH  s     rx   test_nan_policyz!TestCorrSpearmanr.test_nan_policyM  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Mrz   c                    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 )Nl   LG r6   rY   r7   r   rS   r   r   r   r-  r$  )r   r  r  rm   deleterf   r9  r   )	rn   r  rq   krr   corxpxcorypys	            rx   test_nan_policy_bug_12458z+TestCorrSpearmanr.test_nan_policy_bug_12458V  s    i##J//JJw&!!!Q$Ia###?1888b?1%%by4333QQ???YryQQ///;;;d////BU++++++rz   c                    dd}| j                             |f          t          j        d<   t          j        d<   t	          j        dd          \  }}fdt                    D             }t          ||           d S )	Nr6   rY   r   r   )r4   r_   r   	propagaterT   r   c                 J    g | ]fd t                    D             S )c           	      l    g | ]0}t          j        |d d f         d d f                   j        1S N)rf   r9  r  ).0r  jrq   s     rx   
<listcomp>zJTestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>.<listcomp>j  s@    NNN!QQQ$1aaa411;NNNrz   r  )r\  r]  mrq   s    @rx   r^  z?TestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>j  sH     " " " ONNNNU1XXNNN " " "rz   )r  rC  r   rm   rf   r9  r  r   )rn   ncorrr  r   r`  rq   s        @@rx   test_nan_policy_bug_12411z+TestCorrSpearmanr.test_nan_policy_bug_12411c  s    H$$aV,,&$6%qq[IIIf" " " " "a" " "c"""""rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r9  re   r
   r   s      rx   test_sXXzTestCorrSpearmanr.test_sXXn  s2    OAa  aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  re   r   r
   r   s      rx   
test_sXBIGzTestCorrSpearmanr.test_sXBIGs  s2    OAc""aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  re   r   r
   r   s      rx   test_sXLITTLEzTestCorrSpearmanr.test_sXLITTLEx  s2    OAf%%aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  re   r   r
   r   s      rx   test_sXHUGEzTestCorrSpearmanr.test_sXHUGE}  2    OAd##aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  re   r   r
   r   s      rx   test_sXTINYzTestCorrSpearmanr.test_sXTINY  rl  rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  re   r   r
   r   s      rx   test_sXROUNDzTestCorrSpearmanr.test_sXROUND  s2    OAe$$aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r9  r   r
   r   s      rx   test_sBIGBIGzTestCorrSpearmanr.test_sBIGBIG  s2    OC$$aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sBIGLITTLEz!TestCorrSpearmanr.test_sBIGLITTLE  s2    OC''aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sBIGHUGEzTestCorrSpearmanr.test_sBIGHUGE  2    OC%%aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sBIGTINYzTestCorrSpearmanr.test_sBIGTINY  rw  rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sBIGROUNDz TestCorrSpearmanr.test_sBIGROUND  s2    OC&&aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r9  r   r
   r   s      rx   test_sLITTLELITTLEz$TestCorrSpearmanr.test_sLITTLELITTLE  s2    OF6**aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sLITTLEHUGEz"TestCorrSpearmanr.test_sLITTLEHUGE  2    OF4((aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sLITTLETINYz"TestCorrSpearmanr.test_sLITTLETINY  r  rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sLITTLEROUNDz#TestCorrSpearmanr.test_sLITTLEROUND  s2    OF5))aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r9  r   r
   r   s      rx   test_sHUGEHUGEz TestCorrSpearmanr.test_sHUGEHUGE  2    OD&&aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sHUGETINYz TestCorrSpearmanr.test_sHUGETINY  r  rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sHUGEROUNDz!TestCorrSpearmanr.test_sHUGEROUND  2    OD''aDAc"""""rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r9  r   r
   r   s      rx   test_sTINYTINYz TestCorrSpearmanr.test_sTINYTINY  r  rz   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rf   r9  r   r   r
   r   s      rx   test_sTINYROUNDz!TestCorrSpearmanr.test_sTINYROUND  r  rz   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rf   r9  r   r
   r   s      rx   test_sROUNDROUNDz"TestCorrSpearmanr.test_sROUNDROUND  s2    OE%((aDAc"""""rz   c                     t          j        t          t                    }d}t          ||           t	          |j        |j                   d S r  )rf   r9  re   r   r   r  r  r  s      rx    test_spearmanr_result_attributesz2TestCorrSpearmanr.test_spearmanr_result_attributes  sB    oa##.
C,,,S_cm44444rz   c                     g d}g d}t          j        ||          }t          j        t          j        ||g          j                  }t          ||           d S )Nr   r3   r4   r5   r6   r7   )r   r3   r4   r5   r7   r6   )rf   r9  r   rd   r   r   rn   x1x2res1r  s        rx   test_1d_vs_2dzTestCorrSpearmanr.test_1d_vs_2d  s_    r2&&rz2r(33566d#####rz   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)rW  r   r   r4   r5   r6   r7   r3   r   )r   rm   rf   r9  rd   r   r   )rn   r   r  r  r  r  s         rx   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$''''	( 	(rz   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 )Nr7   )r   r   r3   r4   r6   r5   )r   r_   3+?)r_   r   3+)r  r  r   r4   r4   rH   g+Hs]s?r3   r   )r   r   r   rd   r   rf   r9  r   floatr   r  r  )rn   r  r  x3rq   actualexpected_correxpected_pvalues           rx   
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7rz   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   rL   ffffff@r   ffffff"@ffffff@g333333@皙@)r<   r   ffffff@ffffff@r   r  ffffff@r   rW  r   r   r   r   r3   )gacJC?g%ln?g_0nYt!޿rn  rl  )r   r   rm   r   r   rf   r9  r  )rn   rq   rb  r   s       rx   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rz   c                 
   d}t           j                            d          }|                    |          }|                    |          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  RandomStaterandr   rf   r9  r  rm   astypeint32r   )rn   ra  r  rq   r`  r*  r4  r  r  res3expecteds              rx   test_gh_8111zTestCorrSpearmanr.test_gh_8111  s    i##F++HHQKKHHQKK# 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5rz   N)'r   r   r   r  r7  r;  r>  rE  rI  rK  rT  rc  re  rg  ri  rk  rn  rp  rr  rt  rv  ry  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rz   rx   r3  r3  &  s7        4 4 4# # #A A A= = =K K KN N N, , ,	# 	# 	## # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
5 5 5$ $ $( ( (8 8 8 G G G6 6 6 6 6rz   r3  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   r3   r4   r5   r6   r6   r7   r8   r9   r8   gh
C?gR?r   r   )rf   r9  r
   rn   r  r  r  r   s        rx   test_spearmanr_vs_rz&TestCorrSpearmanr2.test_spearmanr_vs_r'  sb     ____>ob"%%CFHQK000CFHQK00000rz   c                 x    t          t          j        g g           t          j        t          j        f           d S r[  )r   rf   r9  r   rm   r6  s    rx   test_empty_arraysz$TestCorrSpearmanr2.test_empty_arrays1  s-    U_R,,rvrv.>?????rz   c                    t           j                            d          }t          j        |                    ddd          |                    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choleskyrf   r9  r
   )rn   r  rq   rb  r  r   s         rx   test_normal_drawsz$TestCorrSpearmanr2.test_normal_draws4  s    i##D))HcjjQacj::jjQacj::< = =c
c
F29%%d++Q//?oadAaD))CFHQK000CFHQK00000rz   c                 `    t          t          j        g dg d          d         d           d S )Nr   r   r3   r   r   )r
   rf   r9  r6  s    rx   test_corr_1zTestCorrSpearmanr2.test_corr_1@  s1    EOIIIyyyAA!DcJJJJJrz   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   r:   r   r   )r   r   r   r   )	r   r   rm   r	   rf   r9  r   r   r   rH  s     rx   test_nan_policiesz$TestCorrSpearmanr2.test_nan_policiesC  s    IcNNv!5?1a0026262BCCC1@@@ 	" 	" 	"j%/1aGLLLLj%/1aHMMMMMMrz   c                     t          j        d          }t          j        d          }t          t          t          j        ||           d S )Nr         4@)r   r   r   r   rf   r9  rD  s      rx   test_unequal_lengthsz'TestCorrSpearmanr2.test_unequal_lengthsL  s8    IcNNIcNNj%/1a88888rz   c                     g d}dddt           j        g}t          j        ||d          }t          j        |d d         |d d         d          }t	          ||           d S )Nri  r9   r8   r7   r   r   r4   )r   rm   rf   r9  r   r  s        rx   test_omit_paired_valuez)TestCorrSpearmanr2.test_omit_paired_valueQ  sm    \\Arvr2&999r"1"vr"1"v&AAAT4     rz   c                    t          t          d                    }t          t          d                    }|d         |d         c|d<   |d<   |d         |d         c|d<   |d<   |d         |d         c|d<   |d<   |                    t          j                   |                    d           t          t          j        ||d	
          d         d           d S )N  r:   r   i  rY   i  i  r   r   r   gV-?)listr  r  r   rm   r   rf   r9  rD  s      rx   #test_gh_issue_6061_windows_overflowz6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflowX  s    ttqT1Q4
!ad#""qvD'1S6#$ 	
	EOAqVDDDQGOOOOOrz   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   r3   r3   r3   r3   r   r3   )r   warnsrf   r?  r9  r   r   rm   )rn   warn_msgr   rA  s       rx   	test_tie0zTestCorrSpearmanr2.test_tie0e  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   r   r   r   )r   r   r   r   )r   r>   r>   r   )rf   r9  r   r   )rn   rq   rr   xryrsrprs          rx   	test_tie1zTestCorrSpearmanr2.test_tie1s  sh          !!!!!! _Q""^B##B#####rz   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   r3   r>   r3   )r   r4   r>   r5   r   r3   r>   r4   r5   r   r   )r   rm   rf   r9  r   )rn   r  rs   r  rt   sr1sr2s          rx   	test_tie2zTestCorrSpearmanr2.test_tie2  sy     ^^^^CBF#CBF# ob"%%ob"888C%%%%%rz   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   ri  r<  r   r   rS   	r   r   r   r  rf   r?  r9  r   rm   )rn   z1z2z3r  r   rA  s          rx   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  )rn   rq   rr   r  r   rA  s         rx   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   r   r   r   r   r   r   r   r   r  r3   rS   )r   r   r   r   rf   r9  rD  s      rx   test_index_errorz#TestCorrSpearmanr2.test_index_error  s[    HGGGHHH - - - . . 	j%/1aa@@@@@@rz   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  rd  rj  r   r   r3   rf  `alternative` must be 'less'...r   	ekki-ekki)rf   r9  r
   r   r   r   r  s        rx   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rk  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   rk  rj  r   r   r   r   r  )	r   rm   r	   rf   r9  r   r   r   r   )	rn   rk  r  r  x1nanx2nan
res_actualres_expectedr  s	            rx   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   rz   rx   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 5rz   r  zfails in parallelr   c                     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          j        t          d+,          5  t          t          j        g g           t          j        t          j        f           d d d            n# 1 swxY w Y   t          j                            d-          }
t          j        |
                    ddd./          |
                    ddd./          g          }d0d1gd1d0gg}t          j        t          j                            |          |          }d2}t          j        |d         |d                   }t          |d         |d                    t          |d         |d                    t          t          j        g d3g d3d          d         d0           t          t          j        g d3g d3d           d         d4           t          j        d5          }t          j        |d6<   t-          t          j        ||          t          j        t          j        f           t/          t          j        ||d78          d9d:;           t/          t          j        ||d7d<=          d>d:;           t          t          t           j        ||d?8           t          t          t           j        ||d@8           t          j        d5          }t          j        dA          }t          t          t           j        ||           t          j        t          d+,          5  t          j        dgdg          \  }}d d d            n# 1 swxY w Y   t          t          j        |           t          t          j        |           t          j        dBt0          C          }t          j                            |dD          }t          j        dBt0          C          }t          j        |dEd          |d dE         f          }t9          t          j        t           j                            ||          d                              d S )FN)r4  r.  )r6   r3   r   r4   r7   r5   r8   r9   )r6   r3   r7   r4   r   r9   r8   r5   r  )variantr   r   )	r   r6   r3   r   r4   r7   r5   r8   r9   )	r6   r3   r   r7   r4   r   r9   r8   r5   )r6   r3   r   r4   r7   r5   r8   )r6   r3   r7   r4   r   r8   r5   )gJ$I¿gmK?)r3   r   r4   r7   r5   r8   r9   )r3   r7   r4   r   r9   r8   r5   )gJkaa?r   rY   )r   紞xO~>r3   )g?>?aV>r6   r7   )g}'}'?o&5>r_   )r.  r  )g?>r  )g}'}'r	  )
r   r3   r3   r5   r5   r7   r7   r9   r:   r:   )
r   r3   r5   r5   r5   r5   r9   r9   r9   rY   gok|?r4  gffffff?r.  r  r  bananarmsr[   r3   r   r[   r3   r   r5   r8   r   r   )g}+޿g`=i?r  r  r  One or more sample...r   r  r  r  r   r  )g\zf?g^n)=r  g#q?r   r:   r   r   )r   g/>rn  rl  r  )r   r  )r   g&?r   r   r  r  rH   i  r  )rf   
kendalltaur
   r   r   r   r   r   r   r   r  r  rm   r   r  r   r  r  r  r  r  r  r	   r   r  mamasked_greaterconcatenater   r  mstats)variantsrq   rr   r  tauxr   r4  r  r  r   r  rb  taup_values                 rx   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%	' 	' 	' 	' 
(0G	H	H	H A AU%b"--/?@@@A A A A A A A A A A A A A A A )


%
%C
#**!#*66**!#*668 	9 	9A#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 
(0G	H	H	H 2 2'aS11W2 2 2 2 2 2 2 2 2 2 2 2 2 2 2!!! 		$e$$$A
Q%%A
	$e$$$A
$%%!ETE(+,,ABK//!44Q78899999s$   $:[**[.1[.gg	g	c                     t           j                            d          } t          dd          D ]}g }t          |          D ]}||g|z  z  }t	          |          }|                     |           |                     |           t          j        ||          }t          j        ||          }t          |d         |d                    t          |d         |d                    d S )N*   r4   rY   r   r   )
r   r  r  r  r  shufflemstats_basicr  rf   r
   )r  sr*  r  r4  r  r  s          rx   test_kendalltau_vs_mstats_basicr    s    
)


#
#C1b\\ 4 4q 	 	A!QJAAGGAA*1a00!!Q''F1Ix{333F1Ix{33334 4rz   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   rm   rf   r  r   r  )rq   rr   r1r2s       rx   test_kendalltau_nan_2nd_argr%    su    A	c3A		!Q6	2	2	2B		!ABB%122	'	'BBL",U;;;;;;rz   c                  "   dd l } |                     d           g d}d}|                     ||          }|                     ||          }t          j        ||          }t          |j        d           t          |j        dd	           d S )
Nr   i_ r   r3   r4   r5   r6   r7   r8   i@ rO  g*8_2\S?gd`TR?gMb`?r$  )r  seedchoicesrf   r  r   r  r  )r  classes	n_samplesrq   rr   r   s         rx    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2rz   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  rb  rj  r   rd  r   r3   rf  r  r   r  )rf   r  r   r   reverser   r   r   r  s        rx   &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)rd  rb  rf  )r   r   r<   )r   RUUUU?ZUUUU?)g~?r3  r4  )?r   r5  )ˮ[?r   r6  )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 )Nr_   r  r  )r   rd   rf   r  r   )	rn   rq   rr   rk  revstat_expected
p_expectedr   r  s	            rx   
exact_testz$TestKendallTauAlternative.exact_test5  s\     	 AARMq!GMMM$j0\*****rz   Fr4   Tzalternative, p_expected, revc           	          dgdg}}t           j        }t          j        t          d          5  |                     ||||||           d d d            d S # 1 swxY w Y   d S )Nr   r3   r  r   )r   rm   r   r  r   r;  rn   rk  r:  r8  rq   rr   r9  s          rx   test_against_R_n1z+TestKendallTauAlternative.test_against_R_n1@  s    sQC1\,4KLLL 	O 	OOOAq+sM:NNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	Os   AAAc                 N    ddgddg}}d}|                      ||||||           d S )Nr   r3   r4   r5   g?r;  r=  s          rx   test_against_R_n2z+TestKendallTauAlternative.test_against_R_n2J  s:    1v1v1*1k3zJJJJJrz   c                 N    g dg d}}d}|                      ||||||           d S )Nr  r   r@  r=  s          rx   test_against_R_c0z+TestKendallTauAlternative.test_against_R_c0S  s:    yy)))11k3zJJJJJrz   c                 N    g dg d}}d}|                      ||||||           d S )Nri  )r   r3   r5   r4   gVUUUUU?r@  r=  s          rx   test_against_R_c1z+TestKendallTauAlternative.test_against_R_c1\  s:    ||\\\1*1k3zJJJJJrz   c                 N    g dg d}}d}|                      ||||||           d S )Nr  )r   r6   r5   r3   r4   r   r@  r=  s          rx   test_against_R_no_correlationz7TestKendallTauAlternative.test_against_R_no_correlationf  s:    11k3zJJJJJrz   c                 N    g dg d}}d}|                      ||||||           d S )Nr   r3   r4   r5   r6   r7   r8   r9   )r9   r7   r   r4   r3   r6   r5   r8   r   r@  r=  s          rx   test_against_R_no_correlationbz8TestKendallTauAlternative.test_against_R_no_correlationbp  s?    ''')A)A)A11k3zJJJJJrz   c                 N    g d}g d}d}|                      ||||||           d S )N)	g333333F@g33333F@g33333D@gfffffJ@gYF@gF@gYI@gF@gN@)	g@@r>   rL   @r   g@ffffff@r  gqq?r@  r=  s          rx   test_against_R_lt_171z/TestKendallTauAlternative.test_against_R_lt_171y  sB     CBB999*1k3zJJJJJrz   c                     t           j                            d          }|                    d          }|                    d          }d}|                     ||||||           d S )Nr   r  gUm*,r   r  r  r  r;  rn   rk  r:  r8  r  rq   rr   r9  s           rx   test_against_R_lt_171bz0TestKendallTauAlternative.test_against_R_lt_171b  s\    i##A&&HHSMMHHSMM,1k3zJJJJJrz   c                     t           j                            d          }|                    d          }|                    d          }d}|                     ||||||           d S )Nr      gH4?rQ  rR  s           rx   test_against_R_lt_171cz0TestKendallTauAlternative.test_against_R_lt_171c  s\    i##A&&HHSMMHHSMM*1k3zJJJJJrz   zalternative, revc                 l   t           j                            d          }|                    d          }|                    d          }t	          j        ||d|          }t	          j        ||d|          }t          |d         |d                    t          |d         |d         d           d S )	Nr   i  r  r  r  r   r  rl  )r   r  r  r  rf   r  r   r   )rn   rk  r8  r  rq   rr   res0r  s           rx   test_gt_171z%TestKendallTauAlternative.test_gt_171  s    i##A&&HHSMMHHSMM1W,79 9 91\,79 9 9T!Wd1g&&&Qat444444rz   r  )r  r  rk  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  )r6   r7   r8   r9   r:   r  r   )r   r  rk  r   r   r   r   r  )r   rm   rf   r  r   r   r   r   )
rn   r  rk  r  r  r  r   r  r  r  s
             rx   rK  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   r2  alternativesr   rm   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_n2rA  	case_R_c0rC  	case_R_c1rE  case_R_no_corrrG  case_no_cor_brJ  case_R_lt_171rO  case_R_lt_171brS  case_R_lt_171crV  case_gt_171rY  rK  r   rz   rx   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O O HGO 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rz   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        t          d          5  t          j        g g           \  }}d d d            n# 1 swxY w Y   t          t          j        |           t          t          j        |           t          j        t          d          5  t          j        dgdg          \  }}d d d            n# 1 swxY w Y   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g 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 } 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   rq   s    rx   <lambda>z"test_weightedtau.<locals>.<lambda>  s    Q rz   )weigherr  r  )rankgڿgn)rw  rq  g @ڿg[đ(gIکnTc                     dS rs  r   rt  s    rx   ru  z"test_weightedtau.<locals>.<lambda>       rz   )rw  rv  c                     dS rs  r   rt  s    rx   ru  z"test_weightedtau.<locals>.<lambda>  ry  rz   rH   r  r   r   r   r   r   r3   r5   r8   r[   r3   )      (@r   r   r|  r   r   r   r   r|  r   )r|  r   r   r|  r   )r   r   r   r   r   gt34+)rf   weightedtaur
   r   r   rm   r   r  r  rd   r   r   r   r  r   r   r   )rq   rr   r  r  r   r   s         rx   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	(0G	H	H	H 1 1(R00W1 1 1 1 1 1 1 1 1 1 1 1 1 1 1!!!	(0G	H	H	H 3 3(!qc22W3 3 3 3 3 3 3 3 3 3 3 3 3 3 3!!!*e/!QCCC*e/!Q!QKKK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1s$   P''P+.P+R((R,/R,c                     d} t          j        t          |           5  t          j        dgdg           t          j        dgdg           t          j        t
          j        gdg           d d d            d S # 1 swxY w Y   d S )Nz)One or more sample arguments is too smallr   r   r   4   )r   r  r   rf   r}  r   rm   )r  s    rx   test_segfault_issue_9710r  (  s     :G	(	8	8	8 * *1#u%%%1#u%%%26(RD)))	* * * * * * * * * * * * * * * * * *s   AA;;A?A?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   r_   r  r   )r  r   r   )r   r   r  r  rm   rf   r  r   )ra  rq   rr   _ro  s        rx   test_kendall_tau_larger  4  s    A
	!a%&&A
	!a%&&AFAbEq!GGGGGAtsrz   c            
      L   d } d }t           j                            d          }t          dd          D ]}g }t          |          D ]}||g|z  z  }t	          |          }|                    |           |                    |           t          j        t          |          t           j                  }t          d          D ]X}dD ]>}	 | |||||	          }
t          j
        |||||	          j        }t          |
|           ?|                    |           Yd 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'  )rq   rr   rw  rv  addtotconcdiscuvr  r]  ws                rx   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Brz   c                     d| dz   z  S )Nr   r   r   rt  s    rx   rv  z.test_weightedtau_vs_quadratic.<locals>.weigherP  s    QU|rz   r  r4   rY   rH   r3   r]   )r   r  r  r  r  r  r   r  intprf   r}  r  r
   )r  rv  r  r  r*  r  r4  rw  r  r  r  r  s               rx   test_weightedtau_vs_quadraticr  >  sN   C C C    )


#
#C1R[[  q 	 	A!QJAAGGAAyQrw///q 	 	A$ 6 63q!T7C88*1awDDN#Hf5555KK	 rz   c                   n    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S )TestRegressionc                     t          j        t          t                    }t	          |j        d           t	          |j        d           t	          |j        d           t	          |j        d           d S )Nir   r   )	rf   
linregressre   r   r   	interceptrvaluestderrintercept_stderrrn   rs  s     rx   test_linregressBIGXz"TestRegression.test_linregressBIGXh  sf    !!S))F,h777FM3/// 	FM3///F3S99999rz   c                     t          j        t          t                    }t          |j        d           t          |j        d           t          |j        d           t          |j        d           d S )Nr   r   )rf   r  re   r   r  r  r  r  r  s     rx   test_regressXXzTestRegression.test_regressXXr  sf    
 !!Q''F,c222FM3///FM3///F3S99999rz   c                 P   t          j        t          t                    }t	          |j        d           t          j        t           j        d          5  t          j	        t          t                    j
        }d d d            n# 1 swxY w Y   t	          |j        |           d S )Nr   zAn input array...r   )rf   r  re   ZEROr   r  r   r  r?  r   r  r  )rn   rs  
ref_rvalues      rx   test_regressZEROXz TestRegression.test_regressZEROX  s    
 !!T**F,c222\%4<OPPP 	; 	;400:J	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;FM:66666s   %BB
B
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  皙?rY   r  g4_Qc?)
r   linspacesinrf   r  r    r   
isinstancer   r  )rn   rq   rr   rs  lrs        rx   test_regress_simplez"TestRegression.test_regress_simple  s    K3$$"+ac***R/	RVBK2s++,,,!!Q''
62&&'''FM+@AAAAArz   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  rY   r  r  r   r  rj  rb  rd  r   r3   rf  )r   r  r  r   r   r   rf   r  r   r  r  )rn   rq   rr   r  r  r  s         rx   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  rb  rj  gؗh?gJK@:Cgag?g->g5ՒO?g]؊E @)rf   r  r   sloper  r  r   r'  r  r  r  )rn   rq   rr   r   s       rx   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>>>>>rz   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 )NrZ   r6   r   r   r   r_   c                 &    t          | |d          S )NrW   r  )r   rq   rr   s     rx   	assert_aez1TestRegression.test_linregress.<locals>.assert_ae  s    &q!R8888rz   r   rL   gePUn?g.bt>gڽE?gʺL7?)
r   r   rf   r  r  r  r  r  r  r  )rn   rq   rr   rs  r  s        rx   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	&)+>?????rz   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順 r3   r_   )
r   r  rf   r  r   r  r   r:  r  r  )rn   r*  ra  rq   rr   rs  s         rx    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6rz   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  rY   r  )r  r  r  r  r  r  )
r   r  r  rf   r  r    r   r  r   dir)rn   rq   rr   rs  r  r   s         rx   !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0rz   c                     t          j        d          }t          j        dd          }t          j        ||          }t	          |j        d           t	          |j        d           t	          |j        d           d S )Nr3   r4   r6   r   )r   r   rf   r  r   r  r  r  rn   rq   rr   rs  s       rx   test_regress_two_inputsz&TestRegression.test_regress_two_inputs  sq    IaLLIaOO!!Q'' 	FM3/// 	FM3///F3S99999rz   c                     t          j        d          }t          j        d          }t          j        ||          }t          |j        d           t          |j        d           t          |j        d           d S )Nr3   r   r   )	r   r   r  rf   r  r   r  r  r  r  s       rx   'test_regress_two_inputs_horizontal_linez6TestRegression.test_regress_two_inputs_horizontal_line
	  so    IaLLGAJJ!!Q'' 	FM3/// 	FM3///F3S99999rz   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@333333&@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!пr3   gpX?r   gh-h*<?gg?)	rf   r  r   r  r  r  r  r  r  r  s       rx   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Frz   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  rY   r  r   )	r   r  r  rf   r  polyfitr   r  r  )rn   rq   rr   rs  polys        rx   test_compare_to_polyfitz&TestRegression.test_compare_to_polyfit2	  s    K3$$"+ac***R/	RVBK2s++,,,!!Q''z!Q"" 	FL$q'222F,d1g66666rz   c                     t          j        t          d          5  t          j        g g           }t          j        t          j        |                    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r   )r   r  r   rf   r  r   r  r:  rn   r   s     rx   test_empty_inputzTestRegression.test_empty_input>	  s    \,4KLLL 	) 	)"2r**C6"(3--((((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   >A((A,/A,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   r:   r   invalidr6   )r   r   rm   errstaterf   r  r    r   r  r	   r   r  )rn   rq   rs  r  s       rx   test_nan_inputzTestRegression.test_nan_inputC	  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          }d}t	          t
          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nl   ,w* rY   z$Cannot calculate a linear regressionr   )r   r  r  r   r   r   rf   r  )rn   r  rq   rr   r   s        rx   test_identical_xzTestRegression.test_identical_xP	  s    i##J//HRLLJJrNN4:S111 	# 	#Q"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   !BBBN)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rz   rx   r  r  g  s       : : :
: 
: 
:*	7 	7 	7	B 	B 	B9 9 9*? ? ?&@ @ @,7 7 7$1 1 1 : : :: : :G G G6
7 
7 
7) ) )
6 6 6# # # # #rz   r  c                  $   t          j        g d          \  } }}}t          | d           t          |d           d}t          j        t
          |          5  t          j        g dd           d d d            n# 1 swxY w Y   t          j        g dd          \  } }}}t          | d           t          |d           g d	}g d
}t          j        ||dd          \  } }}}t          | d           t          |d           t          |dd           t          |dd           t          j        ||dd          \  } }}}t          | d           t          |d           t          |dd           t          |dd           d S )Nr   r   r   r<   zHmethod must be either 'joint' or 'separate'.'joint_separate' is invalid.r   joint_separater  jointr   )r   r3   r4   r5   rY   r[      )r:   r     r  -   7   N   gQ?separater5   r   gQ@r3   r  gGz@r   )rf   theilslopesr   r   r   r   )r  r  lowerupperr   rq   rr   s          rx   test_theilslopesr  Y	  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   r5   r3   r   r4   r   r5   numbins)r   r   rL   r   )r=   r6   )r  defaultreallimitsr4   )cumcountr   binsizeextrapoints)rf   cumfreqr   r   r   r   r   )rq   cumfreqslowlimr  r  r   r   s          rx   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(((((rz   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  r5   r  )r<   K}\UU?r	  r	  )	frequencyr   r  r  )r   r   rf   relfreqr   r   )r*  relfreqsr  r  r  r   r   	relfreqs2s           rx   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2rz   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)r4   r5   r6   rY   r`   r7   )r4   r  r9   r8   r5   r3   r   )r   r5   r6   rY   r`   r  r  r   )a1a2a3r6  s    rx   r7  z"TestScoreatpercentile.setup_method	  s-    ***,,,111rz   c                     t          d          dz  }t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           d S )	Nr9   r<   r   r   r  r?   2         ?)r   r   rf   scoreatpercentilerH  s     rx   r5  z TestScoreatpercentile.test_basic	  sn    1IIOU,Q22B777U,Q44c:::U,Q33T:::::rz   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 )NrY   r  r@   r3   r8   r  r   r9   )limitr   rY   r  rY   r  r  r   rY   rA   fractioninterpolation_methodr  r$  rf   r  r   r  r  r   r   rn   scoreatpercs     rx   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	 	 	 	 	rz   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 )NrY   r  r  r#  r5   higherr6   r  r%  r  r  r  r   r!  r   r&  r'  s     rx   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rz   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 )Nr9   r<   )r   r?   r  )r   r  r  r[   r4   r5   )r   r   r  r  r   rS   )r   r5   r9   )Q?gQ@g(\ @r4   r8   rZ   )
r   r   r   rf   r  r   r   r  ndarrayrh   )rn   rq   r  r   r  	expected2s         rx   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(((((rz   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[   r4   r5   )r  r  r  )g      @rA         &@)r3   r4   r5   r6   )r5   r6   r7   r8   )r9   r:   rY   rZ   r   rS   )      ?g      @g     !@)r=   rA         #@r0  r   r   r   r   )r5   r5   r4   r  r   r   r4   )rf   r  r   rh   r   r   r  )rn   r(  rq   r0r#  scores         rx   	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&&&&&rz   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   r3   r  r   r#  e   r_   )r   r   rf   r  r6  s    rx   test_exceptionz$TestScoreatpercentile.test_exception
  sc    j%"9Aq62+3	5 	5 	5 	5j%"9A3DDDj%"9A3CCCCCrz   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   rf   r  r   rm   r   r6  s    rx   
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Mrz   N)r   r   r   r7  r5  r)  r,  r3  r<  r?  rB  r   rz   rx   r  r  	  s        2 2 2
; ; ;  4E E E2) ) )$' ' '0D D DN N N N Nrz   r  c                   <   e Zd Zd Zd Zd Zd Zd Zej	        
                    d edd                    d	             Zd
 Zd Z edd          d             Z edd          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dd                    d             Zd Z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                 X   t          t          t          |          5  t          j        |                    g                     \  }}d d d            n# 1 swxY w Y   t          ||                    |j                             t          ||                    d                     d S )Nr=  r   )r'   r   r   rf   moderd   r2   rm   )rn   ro   valscountss       rx   rB  zTestMode.test_empty
  s    +3HRPPP 	6 	6 :bjjnn55LD&	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6bjj00111

2/////s   +AAAc                     t          j        d          \  }}t          |t          j        dg                     t          |t          j        dg                     d S )Nr   r   )rf   rF  r   r   r   )rn   rG  rH  s      rx   r;  zTestMode.test_scalar
  sM    z"~~fT28RD>>***VRXqc]]+++++rz   c                     |                     g d          }t          j        |          }t          |d         |                     d                     t          |d         |                     d                     d S )Nr4   r6   r   rY      r4   r3   r7   r9   r7   rY   r7   r   r7   r   r4   rd   rf   rF  r2   )rn   ro   data1rG  s       rx   r5  zTestMode.test_basic
  sk    

BBBCCz%  QA///QA/////rz   c           
         g d}g d}g d}g d}g d}|                     |||||g          }t          j        |d d          }t          |d         |                     d	gg                     t          |d
         |                     dgg                     t          j        |dd          }t          |d         |                     g dg                     t          |d
         |                     g dg                     t          j        |d
d          }t          |d         |                     dgdgdgd	gd	gg                     t          |d
         |                     dgdgdgdgdgg                     d S )NrY   rY      (   rY   rY   rY   rY   r  rY   r  r  rQ  rQ  rQ  rQ  rR  rQ  rQ  rQ  TrT   keepdimsr   rQ  r   r9   rY   rY   rQ  rQ  r3   r4   r4   r3   rY   r  r3   r5   r4   rM  	rn   ro   rN  data2data3data4data5arrrG  s	            rx   test_axes_keepdimszTestMode.test_axes_keepdims#
  s                  jj%ue<==z#D4888QbTF!3!3444QaSE!2!2333z#A555Q-=-=-=,>!?!?@@@Q\\\N!;!;<<<z#A555QbTB4"tbT,J!K!KLLLQaS1#sQC!,E!F!FGGGGGrz   c                    g d}g d}g d}g d}g d}|                     |||||g          }t          j        |d           }t          |d         |                     d                     t          |d	         |                     d
                     t          j        |d          }t          |d         |                     g d                     t          |d	         |                     g d                     t          j        |d	          }t          |d         |                     g d                     t          |d	         |                     g d                     d S )NrP  rS  rT  rU  rV  rS   r   rQ  r   r9   rY  rZ  )rY   rY   r  rQ  rQ  )r3   r5   r4   r5   r4   rM  r[  s	            rx   	test_axeszTestMode.test_axes7
  si                  jj%ue<==z#D)))QB000QA///z#A&&&Q,<,<,<!=!=>>>QLLL!9!9:::z#A&&&Q,@,@,@!A!ABBBQOOO!<!<=====rz   rT   r   c                 d   t           j                            d          }|                    |                    d                    }t	          j        ||j        |z             }t	          j        ||          }t          |j        |j                   t          |j        |j                   d S )Nl   q!<M )rY   rZ   r[   r\   rS   )	r   r  r  rd   rf   rF  ndimr2   count)rn   rT   ro   r  r*  rX  r  s          rx   test_negative_axes_gh_15375z$TestMode.test_negative_axes_gh_15375K
  s    i##J//JJszz"23344z!!&+...z!$'''	49---
DJ/////rz   c                 b   |                     g d          }|                     g           }t          j        |          }d}t          |||           t	          t
          t          |          5  t          j        |          }d d d            n# 1 swxY w Y   t          |||           d S )NrK  )rF  rg  ro   r=  )rd   rf   rF  r   r'   r   r   )rn   ro   rN  r\  r  r   actual2s          rx   test_mode_result_attributesz$TestMode.test_mode_result_attributesT
  s    

BBBCC

2E""&
FJ26666+3HRPPP 	( 	(j''G	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(GZB777777s   1BBBc                 8   |                     dt          j        dddddddddddg          }t          j        |          }t          |d	         |                     d|j        
                     t          |d         |                     d                     d S )Nr4   r6   r   rY   rL  r3   r7   r9   r   rH   )rd   r   rm   rf   rF  r2   rI   )rn   ro   rN  r  s       rx   test_nan_propagatezTestMode.test_nan_propagate^
  s    

Arvq!RQ1aBJKKE""q	2::au{:#C#CDDDq	2::a==11111rz   Tlazy arrays don't do 'raise'.r   c                    |                     dt          j        dddddddddddg          }t          j        |d	
          }t          |j        |                     d                     t          |j        |                     d                     t          t          t          j        |d
           t          t          t          j        |d
           d S )Nr4   r6   r   rY   rL  r3   r7   r9   r   r   r   r   r   )	rd   r   rm   rf   rF  r2   rg  r   r   )rn   ro   rN  r   s       rx   test_nan_omitzTestMode.test_nan_omitd
  s    

Arvq!RQ1aBJKKj6222"**R..111	2::a==111j%*eHHHHj%*eIIIIIIrz   zlazy arrays don't do 'omit'.data)r4   r6   r   r   r   r4   r6   r   )r4   r6   r   rX  Fc                    t          j        |                    |          d|          }|r1t          |d         d         |                    d                     d S t          |d         |                    d                     d S )Nr   )r   rX  r   r   )rf   rF  rd   r2   )rn   rr  rX  ro   rs  s        rx   test_smallest_equalzTestMode.test_smallest_equalm
  sz     BJJt,,(SSS 	7F1IaL"**R..99999F1Irzz"~~66666rz   r`   c                    t           j                            d          }|                    |                    d                    }t          j        ||d          }t          |j                  }|	                    |           t           j
                            |j        j        |           t           j
                            |j        j        |           d S )Ni:r4   r5   r6   r  FrW  )r   r  r  rd   uniformrf   rF  r  r  popr  r	   rg  )rn   rT   ro   r  r*  r   reference_shapes          rx   test_mode_shape_gh_9955z TestMode.test_mode_shape_gh_9955|
  s    i##I..JJs{{	{2233j666qw--D!!!

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

%%cioGGGGGrz   c                     |                     dt          j        dt          j        g          }t          j        |          }|                    |j                  r|j        dk    sJ d S Nr3   r   )rd   r   rm   rf   rF  r:  rg  rn   ro   r*  r   s       rx   !test_nan_policy_propagate_gh_9815z*TestMode.test_nan_policy_propagate_gh_9815
  sU     JJ261bf-..jmmxx!!4ci1nnnnnnrz   c                     |                     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 S )N)r   r3   r4   r   r   FrW  )r   r4   r   T)r   r   r4   r   )r   rf   rF  r  rg  r}  s       rx   test_keepdims_emptyzTestMode.test_keepdims_empty
  s    HH\""jU333x~====I======jT222x~@@@@L@@@@@@@@rz   c                    |                     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        |d d          }t          j        t          |          d	          }t          |j        |j                   t          |j        |j                   |j        j        |j        j        cxk    rd
k    sn J t          j        |d d          }t          j        t          |          d	          }t          t          |j                  t          |j                             |j        j        dk    sJ t          t          |j                  t          |j                             |j        j        dk    sJ d S )Nr   r4   FrW  r   r   r3   TrX  r   r  )	rd   r   rm   rf   rF  r2   rg  r/   r  )selfselfro   r*  r   r  s        rx   test_keepdims_nonemptyzTestMode.test_keepdims_nonempty
  s&   JJAq"&)Aq"&!+<=>>jU333"**b"X"6"6777	2::q!f#5#5666jT222"**rdRD\":":;;;	2::sQCj#9#9:::JJqMMj666j!u555#(+++	39---x~55552555555j555j!t444**HSX,>,>???x~''''++Xci-@-@AAAy&((((((rz   c                    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 )Nr   r3   r6   Fr   )rT   rX  r   )r   r3   r6   )r3   r   r3   T)rX  r   r   r  )
r   rm   rf   rF  r	   rg  r   r  r  r   )rn   r*  r   r  s       rx   test_keepdims_nan_omitzTestMode.test_keepdims_nan_omit
  s   +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&((((((rz   r   rW  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 )Nr@  r  r   F)r*  rT   rX  r   r  r3   r4   r4   r4   asdfqwerr9  rY   rH   z=Argument `a` is not....|An argument has dtype...|The DType...r   r   )r   r  rm   rf   rF  r	   rg  rI   uint8r   r   r   r   	TypeError)rn   r   r  rr  r   my_dtypetestr  s           rx   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(+++Q]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   rX  r  r3   rW  r4   rS   )r   r  r   r   rf   rF  r   rm   r   r   r   r   r   )rn   r   r  r*  zs        rx   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          }|                    |d d          }|d         j	        |d         j	        cxk    r|j	        cxk    rdk    sn J d S )Nr   r   TrW  r   r8  )
rd   r  r   r  r   r   rf   rF  ri   r  )rn   r  ro   r   r  s        rx   test_gh17214zTestMode.test_gh17214
  s    JJqMM6Q;;08MNNN > >j===> > > > > > > > > > > > > > > *QTD999CggadTg221v|s1v|EEEEsyEEEEIEEEEEEEEs   A%%A),A)c                     G d d          }t           rdnd}t          j        t          |          5  t	          j         |t          j        d                               d d d            n# 1 swxY w Y   t           rdnd}t          j        t          |          5  t	          j        t          j        dt                               d d d            d S # 1 swxY w Y   d S )	Nc                       e Zd Zd ZddZdS )8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikec                     || _         d S r[  )_xrH  s     rx   __init__zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__
  s    rz   Nc                 @    | j                             t                    S r[  )r  r  object)rn   rI   ra   s      rx   	__array__zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__  s    w~~f---rz   )NN)r   r   r   r  r  r   rz   rx   ArrLiker  	  s7          . . . . . .rz   r  z'...only boolean and numerical dtypes...zCannot interpret...r   r4   z*Argument `a` is not recognized as numeric.rH   )	r-   r   r   r  rf   rF  r   r   r  )rn   r  r  s      rx   test_raise_non_numeric_gh18254z'TestMode.test_raise_non_numeric_gh18254  s   	. 	. 	. 	. 	. 	. 	. 	. AP .<<- 	 ]9G444 	. 	.Jwwry||,,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. AP E<<D 	]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   rB  r;  r5  ra  rc  r   r   r  r  rh  rl  rn  r   rq  r   rm   rt  rz  r~  r  r  r  r  r  r   emptyr  r  r   rz   rx   rD  rD  
  s       0 0 0, , ,
0 0 0H H H(> > >( [VUU2q\\220 0 3208 8 82 2 2 .MNNNJ J ONJ .LMMM[V	
BFAq!Q

	
BFAq	&   [Z%777 7 87  NM7 [VUU2q\\22H H 32H5 5 5A A A) ) )4) ) )6 [\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 3rz   rD  c                       e Zd Zg dZdZej                            d          d             Zd Z	 e
dd          d	             Zd
S )TestSEMr  r   r^  c                    |                     | j                  d         }t          |          rMt          j        t
          t                    5  t          j        |          }d d d            n# 1 swxY w Y   nst          j
                    5  t          j        dt                     t          j        dt                     t          j        |          }d d d            n# 1 swxY w Y   |                    |          sJ d S )Nr   r   r   )rd   scalar_testcaser)   r   r  r   r   rf   semr   r   simplefilterUserWarningr   r:  )rn   ro   r  rr   s       rx   test_sem_scalarzTestSEM.test_sem_scalar"  s`    **T%9::2>B<< 	/08MNNN / /Io../ / / / / / / / / / / / / / / (** / /%h<<<%h???Io../ / / / / / / / / / / / / / / xx{{s%   A11A58A5A	C%%C),C)c                 6   |                     | 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   ddofr3   r<   r   r:   )
rd   testcaserf   r  r1   r  r   whererm   r2   )rn   ro   r  rr   ra  rq   s         rx   test_semzTestSEM.test_sem5  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!VRVQ''	!bjj&8&899999rz   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   r:   r   r   gH=6?r   r   )r   r   rm   r   rf   r  r   r   r   s      rx   test_sem_nan_policyzTestSEM.test_sem_nan_policyA  st     IcNNv!UYqV4446HIIIj%)Q7CCCCj%)Q8DDDDDDrz   N)r   r   r   r  r  r   r   r   r  r  r   r  r   rz   rx   r  r    s          HO[ LMM  NM$
: 
: 
: dGI I IE EI IE E Erz   r  c                      e Zd Zej                            dg dg dfg dg dfg          d             Zd Zd Zej                            dd	d
g          d             Z	ej                            dd	d
g          d             Z
 edd          d             Zej                            d          ej                            d          d                         Zej                            d          d             ZdS )TestZmapzx, yr  r{  )r   r   r   r   r   c                    |                     |          |                     |          }}||                    |          z
  |                    |d          z  }t          j        ||          }t          ||           d S )Nr   r|   )rd   ri   r   rf   zmapr1   )rn   rq   rr   ro   r  r  s         rx   	test_zmapzTestZmap.test_zmapN  sp     zz!}}bjjmm1

NbffQ1f&=&==Jq!8$$$$$rz   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 Nr   r   r   r   )r   r   r   r   )r   r   r   r   .!	?3Ey?;f?r   rS   r   r3   r   r.  r.  r   r   gLXz?)r   r.  r   r.  rd   rf   r  r1   
rn   ro   rq   t1t2t3z0r  z0_expectedz1_expecteds
             rx   test_zmap_axiszTestZmap.test_zmap_axis[  s0   JJ,,,,,,,,,. / / Z11%%%Z11%%%bSURCE3/R"Q+RCE2s+- .--bS2#w/---/ jj--jj--K(((K(((((rz   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   r   r   r   )rT   r  )      r  r<   r<   g3Ey?)      r  r<   r=   g4?r   r  rn   ro   rq   r  r  r  s         rx   test_zmap_ddofzTestZmap.test_zmap_ddoft  s    JJ,,,,,,. / / Jq!!!,,,jj!7!7!788*Ejj!7!7!788D!QQQ$---!QQQ$-----rz   r  r   r3   c                 $   |                     dddt          j        g          }|                     dddddt          j        g          }t          j        |||d          }t          j        ||d d	         |
          }t          ||           d S )Nr`   r_   r3   r8   r[   r   r  r   r6   r  )rd   r   rm   rf   r  r1   )rn   r  ro   scorescomparer  r  s          rx   test_zmap_nan_policy_omitz"TestZmap.test_zmap_nan_policy_omit  s     RQ/00**b"aB788JvwTfEEE j!48883rz   c           	      <   |                     |                    dd          d          }t          j         t          j        ddd          d          }t          j        |d<   t          j        |d<   t          j        |d	<   |                    |d
d d f         t          j        |d
d d f                                       }|                    |dd d f         t          j        |dd d f                                       }|                    |          }t          j        ||dd|          }t          j        |d
d d f         ||          }t          j        |dd d f         ||          }	|	                    ||	f          }
t          ||
           d S )N      r   r3   r_   r  r7      )r   r5   r   r  r   r   r   )r   rT   r  r  )rh   r   r   r  rm   rd   r:  rf   r  stackr1   )rn   r  ro   r  r  compare_0_notnacompare_1_notnar  rX  r  r  s              rx   #test_zmap_nan_policy_omit_with_axisz,TestZmap.test_zmap_nan_policy_omit_with_axis  s   BIIdC00'::*R[Q33W== **WQT]BHWQT]4K4K3K%LMM**WQT]BHWQT]4K4K3K%LMM**W%%Jvw6MMMz&AAA,#% % %z&AAA,#% % %88T4L))8$$$$$rz   Tro  r   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 )Nr  r  r`   r3   r8   r[   zinput contains nanr   r   r   )rd   rm   r   r   r   rf   r  )rn   ro   r  r  s       rx   test_zmap_nan_policy_raisez#TestZmap.test_zmap_nan_policy_raise  s    III&&**b"aB788]:-ABBB 	< 	<Jvw7;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   A88A<?A<rS  rR  c                 R   |                     d          }|                    d          }|                    |j         |j        |j        g          }t          t          d|          5  t          j        ||          }d d d            n# 1 swxY w Y   t          ||           d S )Nr4   Precision loss occurred...r=  )
r   r  rd   r  rm   r'   r   rf   r  r2   )rn   ro   r  r  r  r   s         rx   test_degenerate_inputzTestZmap.test_degenerate_input  s     1''!**jj26'2626233/KPRSSS 	. 	.*VW--C	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.S!!!!!s   *BBBc                     t          j        |                    g d          |                    g d                    }|                    g d          }t          ||           d S )Nri  )r                 ?r_   r  )y      ?        y       @        y      @        y      @        )rf   r  rd   r1   )rn   ro   r   r  s       rx   test_complex_gh22404zTestZmap.test_complex_gh22404  sd    jLLL112::>N>N>N3O3OPPjj999::S!!!!!rz   N)r   r   r   r   r   r  r  r  r  r  r  r   r  r   r  r  r   rz   rx   r  r  K  s        [


,,,	-
,,,,,	-	/ 
% % 
%) ) )2
. 
. 
. [VaV,,	  	  -,	  [VaV,,% % -,%( .MNNN< < ON< [ WXX[ VWW" " XW YX" [ WXX" " YX" " "rz   r  c                      e Zd Zd Zd Zd Zd Zd Zd Z e	dd	          d
             Z
d Zej                            d          d             Zej                            d          d             Zej                            d          d             Zej                            d          d             Zej                            d ej        g            ej        d          g          d             Zed             ZdS )
TestZscorec                     t          j        |                    g d                    }g d}t          ||                    |                     d S )Nri  )gOT\wg%ܿg%?gOT\w?)rf   zscorerd   r1   )rn   ro   rr   desireds       rx   test_zscorezTestZscore.test_zscore  sV     LLLL11226 6 62::g../////rz   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  rd   rf   r  r1   r  s
             rx   test_zscore_axiszTestZscore.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4rz   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         rx   test_zscore_ddofzTestZscore.test_zscore_ddof  s    JJ,,,,,,. / / L+++jj!7!7!788*Ejj!7!7!788+F!QQQ$---!QQQ$-----rz   c                     |                     ddt          j        ddg          }t          j        |d          }t          ||                    |j        |j                             d S )Nr   r3   r5   r6   rW  r   )rd   r   rm   rf   r  r2   r   r  rn   ro   rq   r  s       rx   test_zscore_nan_propagatez$TestZscore.test_zscore_nan_propagate  s\    JJ1bfa+,,L{33327717BF3344444rz   c                     |                     dd|j        ddg          }t          j        |d          }|                     dd|j        d	d
g          }t	          ||           d S )Nr   r3   r5   r6   r   r   gIHb=gIHb=gIHb=?gIHb=?)rd   rm   rf   r  r1   rn   ro   rq   r  r  s        rx   test_zscore_nan_omitzTestZscore.test_zscore_nan_omit  su    JJ1bfa+,,Lv...::22!v11	! " " 	8$$$$$rz   c                 ,   |                     |j        dddddg          }t          j        |dd          }|                    |                     |j        g          t          j        |dd          d	          g          }t          ||           d S )
Nr   r   rL   r   r   r   r   r  r  )rd   rm   rf   r  concatr1   r  s        rx   test_zscore_nan_omit_with_ddofz)TestZscore.test_zscore_nan_omit_with_ddof  s    JJS#sC899Lv66699bjj"&22EL122Q4O4O4OPQQ8$$$$$rz   Tro  r   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   r3   r5   r6   zThe input contains nan...r   r   r   )rd   rm   r   r   r   rf   r  r   s      rx   test_zscore_nan_raisez TestZscore.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          t          d|          5  t          j        |          }d d d            n# 1 swxY w Y   t          ||                    |j        |j                             d S )NgʡEr4   r  r=  )	rd   r'   r   rf   r  r2   r   r  rm   r  s       rx   test_zscore_constant_input_1dz(TestZscore.test_zscore_constant_input_1d  s    JJx!|$$/KPRSSS 	  	 QA	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 27717BF3344444s   AAArR  c                 f   |                     g dg dg          }t          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          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          t          d|          5  t          j        |d           }d d d            n# 1 swxY w Y   t          ||                    ||j                             d S )Nr   r   r   r   r   r5  r|        *@r  r=  r   rS   r.  r   r   r_   )r4   r7   )rd   r'   r   rf   r  r1   rm   r2   r  rh   r  r  	full_like)rn   ro   rq   r  r  r  rr   s          rx   test_zscore_constant_input_2dz(TestZscore.test_zscore_constant_input_2d
  s   JJ0000002 3 3/KPRSSS 	) 	)aa(((B	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)BJJtT(B)+c3(?(A B B 	C 	C 	C /KPRSSS 	) 	)aa(((B	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)BHHbjj"&"&"&"&1Q&R&R&+l1QT7&;&;&= > > 	? 	? 	? L&&&2::el2::a3G3G&H&H!'RRSSSGGFOO/KPRSSS 	+ 	+QT***A	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+2<<262233333s5   AAA/CCCG==HHc                    |                     g dddd|j        gdd|j        dgg          }d}d}t          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          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   r5  r|  r  r  r  r=  r   r   r   rT   r.  r   r   r3   )rd   rm   r'   r   rf   r  r1   )rn   ro   rq   r  s2r  r  s          rx   -test_zscore_constant_input_2d_nan_policy_omitz8TestZscore.test_zscore_constant_input_2d_nan_policy_omit   s+   JJ000tT262tRVT24 5 5 /KPRSSS 	< 	<aF;;;B	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<BJJ!T26(B)+C(@)+BFBF(C(E F F 	G 	G 	G /KPRSSS 	< 	<aF;;;B	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<BJJ(H*+Q26(:*,QBFRCE(B(D E E 	F 	F 	F 	F 	Fs$   A,,A03A0$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  )rd   r   rm   rf   r  r1   r  s       rx   test_zscore_2d_all_nan_rowz%TestZscore.test_zscore_2d_all_nan_row4  s     JJ80002 3 3LvA6662::'G'='='='? @ @ 	A 	A 	A 	A 	Arz   c                     |                     d|j                  }t          j        |dd           }t	          ||           d S )Nr  r   r  )r   rm   rf   r  r2   )rn   ro   rr   r  s       rx   test_zscore_2d_all_nanz!TestZscore.test_zscore_2d_all_nan=  sE     GGFBF##LvD9991rz   rq   )r4   r   r6   c                 x    |                     |          }t          j        |          }t          ||           d S r[  )rd   rf   r  r2   )rn   rq   ro   r  s       rx   test_zscore_empty_inputz"TestZscore.test_zscore_empty_inputD  s4    JJqMMLOO1rz   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_ rY   Tr   r   rS   r  r   )r   r  r  rC  
zeros_liker  masked_arraymaskrf   r  anyr:  r   r   r  r   r   rm   )rn   ro   r  rq   r  rr   r  r   s           rx   $test_zscore_masked_element_0_gh19039z/TestZscore.test_zscore_masked_element_0_gh19039J  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	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   rz   rx   r  r    s       0 0 05 5 5.
. 
. 
.5 5 5
% % %% % % .MNNN0 0 ON0
5 5 5 [ VWW4 4 XW4* [ VWWF F XWF& [ VWWA A XWA [ VWW  XW [S828B<<)1D1D"EFF  GF
 & & & & &rz   r  c                   *    e Zd Zd Zed             ZdS )TestGZscorec           	         t          j        g d          }t          j        |                    |                    }t          j        |t          j        |          z            t          j        t          j        |d                    z  }t          ||                    ||                    d          j                             d S )Nri  r   r  r   rH   )	r   rd   rf   gzscoreloggmeangstdr1   rI   )rn   ro   rq   r  r  s        rx   test_gzscore_normal_arrayz%TestGZscore.test_gzscore_normal_arraye  s    J|||$$M"**Q--((&U[^^+,,rvej6K6K6K/L/LL2::gRZZ^^5I:JJKKKKKrz   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   r3   r_   r4   r5   )r   r   r   r   r   r  g0jg`ȿg/A?g(/?)r   r   r  r  rf   r  r  r   
compressedr  r  MaskedArray)rn   rq   r  mxr  r  s         rx   test_gzscore_masked_arrayz%TestGZscore.test_gzscore_masked_arrayk  s    H%%%&&U--M"#_bfn"$%$$W4$88(:(:(<(<===---!RU.///////rz   N)r   r   r   r  r%   r  r   rz   rx   r  r  c  sB        L L L 
0 
0 
0 
0 
0rz   r  c                   P   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        ddgfd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                 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| _        g d| _        d S )N皙@r!  r>   皙@rN  333333@=
ףp=@rL  (\
@r"  r?   rM  皙@)\(@Q@)r"  r"  r!  r!  r>   r#  rN  r$  r%  r%  rL  r&  r"  r"  r"  r?   rM  r'  r'  r'  r'  r(  r)  g33333<@)r   rm   dat_nandatr6  s    rx   r7  z#TestMedianAbsDeviation.setup_method{  sX    dCc3SdD$S#sS#sCtRVE6 6 6rz   c                 z   t          t          j        |                    | j                  d           |                    d                     |                    |                    | j                  d          }t          j        |d          }|                    g d          }t          ||           d S )NrS   gQ?)r7   r5   r   )gףp=
?r<   ?r  )r1   rf   median_abs_deviationrd   r+  rh   )rn   ro   r+  madmad_expecteds        rx   test_median_abs_deviationz0TestMedianAbsDeviation.test_median_abs_deviation  s    22::dh3G3GdSSS

5))	+ 	+ 	+jjDH--v66(1555zz"9"9"9::\*****rz   c                     t          j        |                    | j                  d          }t	          ||                    d                     d S )Nr   r   g(\?)rf   r.  rd   r*  r1   )rn   ro   r/  s      rx   test_mad_nan_omitz(TestMedianAbsDeviation.test_mad_nan_omit  sG    (DL)A)AfUUURZZ--.....rz   c                     |                     ddddt          j        gg dg          }t          j        |d          }t          ||                     t          j        dg                     d S )Nr   r   r   r   )r   r   rL   r   r   r   rS   )rd   r   rm   rf   r.  r1   )rn   ro   rq   r/  s       rx   test_axis_and_nanz(TestMedianAbsDeviation.test_axis_and_nan  so    JJc3RV41113 4 4(333RZZ6677777rz   c           	          |                     dddddt          j        t          j        g          }t	          j        |d          }t          ||                     d                     d S )	Nr   r4   r5   r7   rA  r   r   r   )rd   r   rm   r  rf   r.  r1   )rn   ro   r  r/  s       rx   test_nan_policy_omit_with_infz4TestMedianAbsDeviation.test_nan_policy_omit_with_inf  s[    JJ1aB788(v>>>RZZ__-----rz   rT   )r   r   r3   Nc           	      t   |                     d          }|dv rt          t          dt                    nt	          j                    }|5  t          j        ||          }d d d            n# 1 swxY w Y   t          ||	                    |
                    ||          |j                             d S )N)r4   r   r5   >   Nr   	too smallr=  rS   
fill_value)r   r'   r   r   
contextlibnullcontextrf   r.  r1   r  r$  rm   )rn   rT   ro   rq   contextr/  s         rx   test_size_zero_with_axisz/TestMedianAbsDeviation.test_size_zero_with_axis  s    HHYi'' 1LLLL-7-C-E-E 	 	; 	;,QT:::C	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;R\\"&&&*>*>26\RRSSSSSs   A..A25A2znan_policy, expectedr   r=   rW  c           	      X   |dk    r#t          |          st          j        d           |                    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          }|dk    rt          t          dt          	          nt          j	                    }|5  t          j        ||d
          }t          ||                    |                     d d d            d S # 1 swxY w Y   d S )Nr   z8nan_policy='omit' with n-d input only supported by NumPyr   r6   r4   r7   )r6   r7   r8   r:   r:   rY   r9  r=  r  )r)   r   skiprd   r   rm   r'   r   r<  r=  rf   r.  r1   )rn   r   r  ro   rq   r>  r/  s          rx   test_nan_policy_with_axisz0TestMedianAbsDeviation.test_nan_policy_with_axis  sN    vhrllKRSSSJJHAq!RVRV4+++- . .
 !F** 1LLLL0:0F0H0H 	 	7 	7,Q:ANNNCCH!5!5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   ;DD#&D#zaxis, expectedr   )r>   r   r|  )Nr@   c                     t          j        ddddt           j        gg dg dg          }t          j        |t           j        d|          }t          ||d	d	
           d S )Nr   r3   r5   r:   )r   r   r   r   r[   )rD  rD  r  r  r   )centerr   rT   r#  r  )r   r   rm   rf   r.  ri   r1   )rn   rT   r  rq   r/  s        rx   test_center_mean_with_nanz0TestMedianAbsDeviation.test_center_mean_with_nan  s|     Hq!Q26*&&&---/ 0 0 (27v.24 4 4XE>>>>>>rz   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   r3   r4   r6   rA  rE  )r   r   r  rf   r.  rd   rn   ro   s     rx   test_center_not_callablez/TestMedianAbsDeviation.test_center_not_callable  s    ]9J777 	L 	L&rzz,,,'?'?KKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L   ,AAAN)r   r   r   r7  r1  r3  r5  r7  r   r   r  r?  r   rm   rB  rF  rK  r   rz   rx   r   r   y  sT       6 6 6+ + +/ / /8 8 8. . .
 [V___55T T 65T [3%S'9:*RVRVS,ABDE E7 7E E7 [- "2"2"23[AC C? ?C C?L L L L Lrz   r   c                 x    t          t          |           |d           | D ]}t          |j        |u            dS )z
    Checks that all of the warnings from a list returned by
    `warnings.catch_all(record=True)` are of the required type and that the list
    contains expected number of warnings.
    znumber of warningsN)r   r  r   category)	warn_listexpected_typeexpected_lenwarn_s       rx   _check_warningsrS    sN     Y/CDDD 1 1-/00001 1rz   c                      e Zd Zej                            dg d          d             Zd Zej                            dd          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ej                            dd          d             Zd Zej                            dd          d             Zd ZdS )TestIQRrI   Nr   r   c                 L   t          j        d          dz  }t           j                            |           |t	          |          nt          ||          }t          t          j        |	                    ||                    |	                    d|                     d S )Nr9   r<   rH   r  )
r   r   r  r  r+   rE  r2   rf   iqrrd   rn   rI   ro   rq   s       rx   r5  zTestIQR.test_basic  s    IaLL3
	!(- $$$72u;M;M	"**Qe*"<"<==

4u
55	7 	7 	7 	7 	7rz   c                 `   |                     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	           d S )
NrB  r   r  )rY   Z   )rQ  r  r   r  r  r=   rW  r  rf   rX  rn   ro   r/  s      rx   test_apizTestIQR.test_api  s    GGFOO	!	!T	!Q	!V	!T8$$$	!T8S)))	!T8S+66666rz   	jax.numpyzlazy -> no nan_policyr  c           	          |                     d          }t          j        |d dddd           t          j        |d dddd	d
           d S )NrB  )r  r  r  r   linearr\  gٿr   r  Tr]  r^  s      rx   test_api_eagerzTestIQR.test_api_eager  sM    GGFOO	!T8XwAAA	!T8T67DAAAAArz   rq   r   c                 
   t          t          t          |          5  t          t	          j        |                    |                    |                    |j                             d d d            d S # 1 swxY w Y   d S Nr=  )r'   r   r   r2   rf   rX  rd   rm   )rn   rq   ro   s      rx   rB  zTestIQR.test_empty  s    +3HRPPP 	J 	JEIbjjmm44bjj6H6HIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js   AA88A<?A<c                    |                     d          }|                    d          }t          t          j        |          |           t          t          j        |d          |                    d                     t          t          j        |d          |                    d                     t          t          j        |d	          |           t          t          j        |d
	          |           t          t          j        |d	          |           t          t          j        |d	          |           t          t          j        |d	          |           |                     d          |                    d          z  }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d                     t          t          j        |d          |                    dd                     d S )N)r8   r5   r   r   rS   r5   r   r8   rb  interpolationmidpointnearestr  r+  r5   r6   r7   r   )r6   r7   )r5   r7   r3   r  r>   r  r7   r   r3   r6   r   r   r3   )r  rd   r2   rf   rX  r   r   r   )rn   ro   rq   zerorr   s        rx   test_constantzTestIQR.test_constant  sO   GGFOOzz#	!d+++	!!,,,bhhqkk:::	!!,,,bhhqkk:::	!8<<<dCCC	!:>>>EEE	!9===tDDD	!7;;;TBBB	!8<<<dCCC GGI2.	!!,,,bhhv.>.>???	!!,,,bhhv.>.>???	!!,,,bggfc.B.BCCC	!&111288A;;???	!&1112771b>>BBB	!&1112771b>>BBBBBrz   c                    |                     d          dz   }t          t          j        |d                   |                    d                     t          t          j        |          |                    d                     t          t          j        |d          |                    dg                     d S )Nr   r   r   r   Tr  )r   r2   rf   rX  rd   r   s      rx   test_scalarlikezTestIQR.test_scalarlike  s    IIbMMC	!A$C999	!bjjoo666	!d333RZZ5F5FGGGGGrz   c                 ~   |                     |                    d          d          }t          t          j        |          |                    d                     t          t          j        |d          |                    dd                     t          t          j        |d          |                    d	d
                     t          t          j        |d          |                    d                     t          t          j        |d          |                    d                     d S )Nr  r  r   r   rS   r6   rL   r   r4   r   r  rV  )rh   r   r2   rf   rX  rd   r   r   s      rx   test_2DzTestIQR.test_2D  s    JJryy}}f--	!bjjoo666	!!,,,bggann===	!!,,,bggann===	!&1112::c??CCC	!&1112::c??CCCCCrz   c                 	   t           j                            d          }t          j        |gdz            }|                    |          |                    |          }}|                    t          j        |          d          }t          t          j        |d          |           |	                    |dd          }t          t          j        |d	          |           t          |dd
|          }t          t          j        |d          |           t          |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        t          |d d d d d d df                                        t          t          j        |d          d
         t          j        t          |d d d d d
d d f                                        t          t          j        |d          d         t          j        t          |d d d d dd d f                                        t          t          j        |d          d         t          j        t          |dd d d d d d f                                        t          t          j        |d          d	         t          j        t          |dd
d d d d f                                        t          t          j        |d          d	         t          j        t          |dd d d d d
f                                        t          t          j        |d          d         t          j        t          |dd d dd d f                                        t          j        t"          d          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        t$          d          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )N)G   rL  r  rY   )rY   r  rS   r_   r   r  r   rj  rl  r{  r   i  r4   r6   r8   rZ   r   r   r4   )r4   r   rd  r3   )r4   r   r3   r4   r3   )r   r  r   r4   r3   r3   z`axis` is out of bounds...r   r5   z`axis` must contain only...r  )r   r  r  dstackrd   broadcast_torf   rX  r2   moveaxisr0   r   r  rh   r/   r   r   r$   r   )rn   ro   orq   qr/  s         rx   r<  zTestIQR.test_axis  s   I(++IqcBhzz!}}bjjmm1OOEIaLL%00	!&1111555KK2q!!	!&1111555!Q2&&&	!&1111555!Q2&&&	!)444	!$///	1 	1 	1	!$///	!!,,,	. 	. 	. In%% 		!IIm$$JJqMM	!)444Q7	(1QQQqqqAX;"7"788	: 	: 	:	!)444Q7	(1QQQqqq!AAAX;"7"788	: 	: 	:	!*555a8	(1QQQqqq!AAAX;"7"788	: 	: 	:	!)444Q7	(1Qqqq111W:"6"677	9 	9 	9	!&111$7	(1Q!!!AAAX;"7"788	: 	: 	:	!'22248	(1Q111aZ="9"9::	< 	< 	<	!&111$7	(1Q1QQQY<"8"899	; 	; 	; ]9,HIII 	! 	!Iaa    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]:-JKKK 	& 	&Iaf%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s$   R((R,/R,S22S69S6c                    |                     d          }t          t          j        |          |                    d                     t          t          j        |d          |                    d                     t          t          j        |d          |                    d                     t          t          j        |d          |                    d                     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        |t          j	        df           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 )Nr6   r   )r  g     U@r  r>   )g      )@r  )rY   r  g?z2Elements of `rng` must be in the range \[0, 100\].r   )r   r>  z`rng` must not contain NaNs.r  z%`rng` must be a two element sequence.)r   r  <   )r   r2   rf   rX  rd   r   r   r   r   rm   r  rn   ro   rq   r  s       rx   test_rngzTestIQR.test_rngA  sS   IIaLL	!bjjnn555	!444bjjooFFF	!444bjjooFFF	!222BJJsOODDDG]:W555 	' 	'IaX&&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 1]:W555 	+ 	+Iabfb\****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ :]9G444 	* 	*Ia[))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s6   D00D47D4#FFF/GGGc                    |                     d          }|                     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          j        t          d          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr6   r5   r   r=   rb  rg  r+  )r  P   )r  rh  r   r  rj  r   ri  r>   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedz`method` must be one of...r   r   )r   r2   rf   rX  rd   r   r   r   )rn   ro   rq   rr   r  s        rx   test_interpolationzTestIQR.test_interpolationT  sN   IIaLLIIaLL	!bjjnn555	!bjjoo666	!8<<<bjjnnMMM	!8<<<bjjooNNN	!8<<<bjjnnMMM	!JJJ

2	( 	( 	(	!8<<<bjjnnMMM	!7;;;RZZ^^LLL	!III

2	( 	( 	(	!7;;;RZZ^^LLL	!9===rzz"~~NNN	!9===rzz"~~NNN	!:>>>

2OOO	!LLL

3	) 	) 	)	!:>>>

2OOO* 	/ 	/F Iav.....]:-IJJJ 	1 	1Iax0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   N==OOc                    |                     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 )Nrw  FrW  r   r3   )r4   r6   rZ   r  )r8   rZ   )r   r4   )r6   r8   )r   r0  r   r   r3   r4   r  rx  r~   Tr  )r4   r6   r   rZ   )r   r   r8   rZ   )r   r6   r8   r   )r4   r   r8   rZ   )r   r   r8   r   )r  r   rf   rX  r  r   s      rx   test_keepdimszTestIQR.test_keepdimsz  s   GGM""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Urz   c           
         |                     |                    d          d          }t          t          j        |d          |                    d                     t          t          j        |d          |                    d                     t          t          j        |d          |                    d                     t          j        |          d                             |j	                  }t          t          j        |d          |                    |j	                             t          t          j        |d	d
          |                    dd|j	        ddg                     t          t          j        |dd
          |                    d|j	        dg                     t          t          j        |d          |                    d                     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 )N      .@r  rW  r   r   r   r   rm  r   rX  r6   r   r3   rC   r   r   r   barfood)rh   r   r2   rf   rX  rd   rj   rk   rl   rm   r   r   r   r  s       rx   test_nanpolicyzTestIQR.test_nanpolicy  s   JJryy// 		!<<<bjjnnMMM	!777BHHH	!888"**R..III F1IIdO''	!<<<

26**	, 	, 	,	!!DDD

Aq"&!Q#788	: 	: 	:	!!DDD

Arvq>22	4 	4 	4 		!777CIII1]:W555 	- 	-IaG,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 1]:W555 	/ 	/IaI....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s$   H66H:=H:JJ	JTz=nan_policy w/ multidimensional arrays only available w/ NumPyr   c                    |                     |                    d          d          }|j        |d<   t          t	          j        |dd          |                    dd                     t          t	          j        |d	d          |                    g d
                     d}t          j	        t          |          5  t	          j        |dd           d d d            n# 1 swxY w Y   t          j	        t          |          5  t	          j        |d	d           d d d            d S # 1 swxY w Y   d S )Nr  r  rm  r   r   rX  r6   rL   r   )r3   r>   r3   r   r   r   )rh   r   rm   r2   rf   rX  r   rd   r   r   r   r  s       rx   test_nanpolicy_ndzTestIQR.test_nanpolicy_nd  s    JJryy//&$	!!???2	( 	( 	(	!!???

;;;//	1 	1 	1 2]:W555 	5 	5IaaG4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5]:W555 	5 	5IaaG4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s$   C((C,/C,D33D7:D7c                     |                     |                    d          d          }t          t          j        |d          |                    d                     t          t          j        |d          |                    d                     t          t          j        |d          |                    d	                     t          j        |          d
         	                    |j
                  }|                    |j
                  }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                     t          t          j        |dd          |                    d                     d}t          j        t          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr  r  r   )r  r   r  g=V^w@r   r?   rm  rW  )r  r   r   rC   g	I1=@g      @z"foobar not a valid scale for `iqr`r   r   )rh   r   r2   rf   rX  rd   r1   rj   rk   rl   rm   r   r   r   )rn   ro   rq   rm   r  s        rx   
test_scalezTestIQR.test_scale  sX   JJryy// 		!3///B@@@	!8444bjj6O6OPPP	!3///CAAA F1IIdO''jj  	!3;GGGMMM	!8LLLcRRR	!3;GGGMMM	!36BBBBJJsOOTTT	!8GGG

?33	5 	5 	5	!36BBBBJJtDTDTUUU 7]:W555 	) 	)Iax((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   I33I7:I7c                 f   |                     |                    d          d          }t          j        |          d                             |j                  }t          t          j        |ddd          |	                    dt          j        dg                     t          t          j        |dd	d          |	                    dt          j        dg          d
z             t          t          j        |ddd          |	                    dt          j        dg                     d S )Nr  r  rm  r   r   rW  )rT   r  r   r3   r  gF7k?r   )rh   r   rj   rk   rl   rm   r2   rf   rX  rd   r   r1   r   s      rx   test_scale_nanpolicy_ndzTestIQR.test_scale_nanpolicy_nd  s    JJryy//F1IIdO''	!!3;OOO

Arvq>22	4 	4 	4	!!8TTT

Arvq>22Y>	@ 	@ 	@	!!3;OOO

Arvq>22	4 	4 	4 	4 	4rz   c                     |                     d          dz  }t          j        |d          }t          j        |          }t          ||           d S )Nr   r<   )r  r  r  )r   rf   rX  r2   rn   ro   rq   r   r  s        rx   test_rng_orderzTestIQR.test_rng_order  sM    IIbMMCix(((illS!!!!!rz   N)r   r   r   r   r   r  r5  r_  r   rc  r   r   rB  ro  rq  rs  r<  r  r  r  r  r  r  r  r  r   rz   rx   rU  rU    s        [W&B&B&BCC7 7 DC77 7 7 [!!+6M!NNB B ONB
 [S2yry||"455J J 65JC C C.H H HD D D+& +& +&Z* * *&$1 $1 $1LV V V&/ / /8 [!!$N " P P5 5P P5) ) )2 [!!$N " P P
4 
4P P
4" " " " "rz   rU  c                      e Zd ZdZg dZdZej                            d          Z	e	                    d          Z
ej                            dddg          ej                            d	 ed
d                    ej                            d          d                                     Zej                            dddg          ej                            dd          ej                            d          d                                     Zd Zd Zej                            dg d          ej                            dddg          d                         Zd Zd Zd Zd Zej                            dg d
          ej                            dg d          ej                            dd d!g          ej                            d          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   l   Jf r  r  rY   )rY   r3   zm, cr  Nr   r   z?ignore:divide by zero encountered in divide:RuntimeWarning:daskc                 t   t           j                            d          }|                    |                    |                    }t	          j        |||          }||                    |d          n|}|                    ||z
  |z  d          |j        d         z  }t          ||d           d S )Nl   rHZ r  rI  r   rS   缉ؗҜ<r$  )
r   r  r  rd   rf   momentri   r$  r  r1   )	rn   r  r`  r.  ro   r  rq   r   r  s	            rx    test_moment_center_scalar_momentz,TestMoments.test_moment_center_scalar_moment  s     i##$788JJszztz,,--l1a***"#)BGGAAGffa!eaZaf((3Su------rz   r.  c                 8   t           j                            d          }                    |                    |                    g d}t	          j        |          }                    fd|D                       }t          ||           d S )Nl   %~.}~= r  r  rI  c                 X    g | ]&}t          j        |           j        df         'S )rI  .)rf   r  newaxis)r\  r  r.  rq   ro   s     rx   r^  z?TestMoments.test_moment_center_array_moment.<locals>.<listcomp>  s5    RRR1a1555bj#oFRRRrz   )r   r  r  rd   rf   r  r  r2   )	rn   r  r.  ro   r  r`  r   r  rq   s	     ``    @rx   test_moment_center_array_momentz+TestMoments.test_moment_center_array_moment  s     i##$788JJszztz,,--LLl1a***iiRRRRRRPQRRRSSS!!!!!rz   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}d S )Nr   r   r   r   r3         ?r4   r5        @ri  )r   r  r   r  z)All elements of `order` must be integral.r   333333?)r   r3   r4   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 )	NrH   rV  r   rS   rv  r   orderrT   )r3   r   )rf   r  rd   r2   rm   r   r   r  )rr   ro   s    rx   
test_casesz+TestMoments.test_moment.<locals>.test_cases1  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0rz   )	rd   r  rf   r  r  r1   r   r   r   )rn   ro   r  rr   r  r  s    `    rx   test_momentzTestMoments.test_moment  so   ::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 
	1 
	1s   H66H:=H: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   r:   r3   r   r   r   r   r   )	r   r   rm   r   rf   r  r   r   r   rH  s     rx   rK  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Grz   rI   )r   r   
complex128zexpect, orderr  rV  c                 d   |dk    r"t          |          rt          j                     t          ||          }t          j                            d          }|                    |                    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  l   1G r6   rH   r  )r7   r6   r   )rT   r  )r6   r  r3   )r   r3   r5   r6   r   )r*   r   rA  rE  r   r  r  rd   rf   r  r2   r}  r   )rn   rI   expectr  ro   r  rq   rr   s           rx   test_constant_momentsz!TestMoments.test_constant_momentsE  s    ,8B<<KMMME""i##J//JJszz!}}EJ22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;;<<<<<rz   c                 h   |                     |                    d          d          }t          j        |          d                             |j                  }t          j        |                    |          dd          }t          ||                    d|j        g          d	           d S )
Nr   r  rV  r3   r   rS   r  r#  r$  )
rh   r   rj   rk   rl   rm   rf   r  rd   r1   )rn   ro   r*  mms       rx   test_moment_propagate_nanz%TestMoments.test_moment_propagate_nan[  s     JJryy}}g..F1IIdO''\"**Q--333BJJbf~66UCCCCCCrz   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   ri  r  )r   r   r   rf   r  rd   rJ  s     rx   test_moment_empty_orderz#TestMoments.test_moment_empty_orderd  s    ]: .E F F F 	= 	=LLLL11<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=rL  c                     |                     d          }t          j        |d          }t          j        |d          }t          ||           d S )NrY   r4   )r  r  )r   rf   r  r2   r  s        rx   test_rename_moment_orderz$TestMoments.test_rename_moment_orderj  sQ     IIbMMl1Q'''l1A&&&S!!!!!rz   c                     | j         t          j        | j                   z
  }t          t          j        |d                                          t          j        | j         d                     d S )Nr  )testcase_moment_accuracyr   ri   r   r   rf   r  )rn   
tc_no_means     rx   test_moment_accuracyz TestMoments.test_moment_accuracyr  sn     3 =>>?
R005577T%BBGG	I 	I 	I 	I 	Irz   r  rT   r1  rE  Nr   c                 2   t           j                            d          }|                    d          }t          j        |                    |          |||          }|                    t          ||||                    }t          ||           d S )Nl   hU~)r6   r7   r8   r  )rT   rE  )ri   )r   r  r  rf   r  rd   r   r1   )	rn   ro   r  rT   rE  r  rq   r   r  s	            rx   test_moment_array_apiz!TestMoments.test_moment_array_apiz  s     i##N33JJIJ&&l2::a==%d6JJJjjE4f===>>S!!!!!rz   )r   r   r   r  r  r  r   r  r  r  r  r   r   r  r   r   r  r  r  rK  r  r  r  r  r  r  r   rz   rx   r  r    s          HO
)



+
+C"zz"~~[Vb']33[VWW\<%H%HII[I . .  JI 43
. [Vb']33[S,//[I " "  0/ 43
")1 )1 )1VH H H [W&J&J&JKK[_vv.>??= = @? LK=(D D D= = =" " "I I I [Wlll33[VZZZ00[Xay11[I " "  21 10 43" " "rz   r  c                   (    e Zd ZdZg dZg dZd ZdS )SkewKurtosisTestr   r  )gp=
ף?g?߾?gD9?gQI?g}?5^Ic                    |                     g           }t          t          t          |          5  |                     |          }d d d            n# 1 swxY w Y   t          ||                     |j                             d S re  )rd   r'   r   r   stat_funr2   rm   r   s       rx   test_empty_1dzSkewKurtosisTest.test_empty_1d  s    JJrNN+3HRPPP 	# 	#--""C	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	RZZ//00000s   AAAN)r   r   r   r  r  testmathworksr  r   rz   rx   r  r    s>        OH<<<M1 1 1 1 1rz   r  c                   .   e Zd Zd Zej                            d          d             Zd Zd Z	d Z
d Z ed	          d
             Zej                            dg d          ej                            dddg          d                         ZdS )TestSkewc                 *    t          j        |          S r[  )rf   skewrH  s     rx   r  zTestSkew.stat_fun  s    z!}}rz   zEignore:invalid value encountered in scalar divide:RuntimeWarning:daskc                    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   )rf   r  rd   r  r1   rm   r  r  )rn   ro   rr   s      rx   test_skewnesszTestSkew.test_skewness  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7rz   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   r:   r   r  r   r   r   r   r   )	r   r   rm   r  r   rf   r  r   r   rH  s     rx   rK  zTestSkew.test_nan_policy  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 )NrY   r   )r   rf   r  r   r6  s    rx   test_skewness_scalarzTestSkew.test_skewness_scalar  s(    UZr

++S11111rz   c                    |                     d          }|                    |d          }t          j        |          d                             |j                  }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  rV  r   r  r   rS   r   )r   rh   rj   rk   rl   rm   r   r  rf   r  rd   r2   )rn   ro   r*  r  s       rx   test_skew_propagate_nanz TestSkew.test_skew_propagate_nan  s     IIbMMJJq'""F1IIdO''[*** 	2 	2
2::a==q111A	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	22::q"&k2233333s   3*B))B-0B-c                    |                     |                    dg          d          }t          t          d|          5  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9ѿrY   Precision loss occurredr=  g      CFr  g,@r8   r         r5   r  )	repeatrd   r'   r   r2   rf   r  rm   r   rn   ro   r*  s      rx   test_skew_constant_valuez!TestSkew.test_skew_constant_value  s   IIbjj+//44/HRPPP 
	? 
	?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   FG))G-0G-Tr   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  rY   r  )\(?r   )	r   r  r   r   r  r  rf   r  rd   )rn   ro   r  r*  s       rx   test_precision_loss_gh15554z$TestSkew.test_precision_loss_gh15554  s    
 \.0IJJJ 	& 	&)''44C

	
**AAaaadGJrzz!}}%%%		& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   A&BBBrT   r_   r   r3   Nr  Fc                 
   t           j                            d          }                    |                    d                    }fd}t	          j        |||          } ||||          }t          ||           d S )N   f#"rv  c                 *   |                     | d          } d}                    | |d          }                    | |z
  dz  |          }                    | |          }||dz  z  }|s!| j        |         }||dz
  |z  dz  |d	z
  z  z  }|S )
Nr  r   TrW  r4   rS   r   r<   r   )rh   ri   r   r  )	r*  rT   r  ri   mu3r   r   ra  ro   s	           rx   skewnessz-TestSkew.test_vectorization.<locals>.skewness  s    |JJq%((7714$777D''1t8a-d'33C&&&&&Cq.C :GDMSA#-S99Jrz   )rT   r  )r   r  r  rd   rf   r  r1   )	rn   ro   rT   r  r  rq   r  r   r  s	    `       rx   test_vectorizationzTestSkew.test_vectorization  s    
 i##M22JJszz),,--	 	 	 	 	 jD111hqt$///S!!!!!rz   N)r   r   r   r  r   r   r   r  rK  r  r  r  r   r  r  r  r   rz   rx   r  r    s          [O 8 8 8F F F2 2 24 4 4? ? ?  &&&& & '&& [V%5%5%566[VeT]33" " 43 76" " "rz   r  c                   J   e Zd Zd Zej                            d          d             Zd Zd Z	d Z
d Zej                            dg d	          ej                            d
ddg          ej                            dddg          d                                     ZdS )TestKurtosisc                 *    t          j        |          S r[  )rf   kurtosisrH  s     rx   r  zTestKurtosis.stat_fun  s    ~a   rz   z1ignore:invalid value encountered in scalar dividec                 V   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   r9   )rf   r  rd   r  r:  r  r1   r  r   r  rm   r2   )rn   ro   rr   rq   s       rx   test_kurtosiszTestKurtosis.test_kurtosis  sV    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!VRVQ''q))2::bf+=+=>>>>>rz   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   r:   r   r   Gzr   r   )r   r   rm   r   rf   r  r   r   rH  s     rx   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Irz   c                 |    t          t          t          j        g d                    t          j                   d S )Nr  )r   typerf   r  r   r   r6  s    rx   test_kurtosis_array_scalarz'TestKurtosis.test_kurtosis_array_scalar%  s0    T%.3344bjAAAAArz   c                 .   t          j        d                              dd                              t                    }t           j        |d<   t          j        |dd          }t           j        	                    |dt           j        gd	
           d S )Nr9   r3   r_   rV  r   rW  rX  g(\r#  r$  )
r   r   rh   r  r  rm   rf   r  r  r   )rn   r*  rO  s      rx   test_kurtosis_propagate_nanz(TestKurtosis.test_kurtosis_propagate_nan)  sy     IaLL  B''..u55&$N11===

""1ubfoE"BBBBBrz   c           	      4   |                     dgdz            }t          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  rY   r  r=  F)r  l           r  )rd   r'   r   r:  rf   r  r  r  s      rx   test_kurtosis_constant_valuez)TestKurtosis.test_kurtosis_constant_value2  s_   JJ}R'((/HRPPP 	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rT   r  r  FTr  c                    t           j                            d          }                    |                    d                    }fd}t	          j        ||||          } |||||          }	t          ||	           d S )Nr  rk  c                 l   |	                     | d          } d}	                    | |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   TrW  r5   rS   rT   r}   r3   r4   r   )rh   ri   r   r  )
r*  rT   r  r  ri   mu4mu2r   ra  ro   s
            rx   r  z1TestKurtosis.test_vectorization.<locals>.kurtosisD  s    |JJq%((7714$777D''1t8a-d'33C&&!&44C QCFlQ&GDMs!!}-!a%3sAv1E1Q31OP !-33cAg-rz   )rT   r  r  )r   r  r  rd   rf   r  r1   )
rn   ro   rT   r  r  r  rq   r  r   r  s
    `        rx   r  zTestKurtosis.test_vectorization;  s     i##M22JJszz),,--	. 	. 	. 	. 	.& nQTVDDDhqt$v>>>S!!!!!rz   N)r   r   r   r  r   r   r   r  r  r  r  r  r  r  r   rz   rx   r  r    s       ! ! ! [ STT? ? UT?>J J JB B BC C CI I I [V%5%5%566[VeT]33[Xt}55" " 65 43 76" " "rz   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   r3   )min_dimsmin_side)rI   elementsr  errorr  r   )dictnpstarray_shapesarraysr   r   r   r   r  r  r  r  r<  suppress	Exceptionrf   r  r  r  r  
hypothesisassume
strategiessampled_from)drawr	  r  rr  ok_axesrT   r   s          rx   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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ej                            d          ej                            d          d                         Zd Z edd          d             Zej                            d          d             Z edd          ej                            dg d          d                         Zd Z edd          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   r   r   r   gMXzg4/?gMXzgFX5t?gMXz?r3   r   rS  rR  c                    t          j                    5  t          j        dd          5  t          j        ddt
                     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  rj  r   r   )r   r   r   r  r   r   r)   rd   rf   ttest_1sampr2   rm   X1r1   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2)rn   ro   r*  trA  r   r   s          rx   test_onesamplezTestStudentTest.test_onesample  s$    $&& 	, 	,HX>>>	, 	,#=~O O O&.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           j                            dddd          }t          j        |d<   |                    |t          |                    }t          j        |d          }t          |j	        |                    |j                             t          |j
        |                    |j                             d S )	Nr6   rY   3   t r  r  r  r  r  rH   rL   )rf   r  r  r   rm   rd   r+   r   r2   r  r  r   s       rx   #test_onesample_nan_policy_propagatez3TestStudentTest.test_onesample_nan_policy_propagate  s    JNNq'NJJ"JJq 0 4 4J553''rzz"&'9'9:::
BJJrv$6$677777rz   Tro  r   c                    t           j                            dddd          }t          j        |d<   |                    |t          |                    }t          j        |dd	
          }t          |j	        |                    d                     t          |j
        |                    d                     t          j        t          d          5  t          j        |dd
           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        |dd
           d d d            d S # 1 swxY w Y   d S )Nr6   rY   r.  r/  r0  r  rH   rL   r   r   g̈́^Bg/kCm?r   r   r   znan_policy must be one ofr   )rf   r  r  r   rm   rd   r+   r   r1   r  r  r   r   r   r   s       rx   $test_onesample_nan_policy_omit_raisez4TestStudentTest.test_onesample_nan_policy_omit_raise  s   JNNq'NJJ"JJq 0 4 4J5536:::rzz2E'F'FGGG
BJJ/C$D$DEEE]:-LMMM 	: 	:a9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: ]:-HIII 	; 	;a::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s$   C==DD#EEEz+ignore:divide by zero encountered in dividec                    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
  rj  r   rd  rf  )r   r   r   rf   r   rd   r!  r1   P1_1_lr'  P1_1_g)rn   ro   r  r+  rA  s        rx   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r`  Generic stdtrit mutates array.r  rk  r  c                    t           j                            d          }d}|                    |dd          }|                                }|                    d          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 rY   r=   r3   r  r  r  r   rH   gÍ]?g$(}w@gS1?g]@rb  rf  rd  )popmeanrk  333333?confidence_levelr   r   )r   r  r  r  rd   rI   r  rf   r   rV  r1   rY  rZ  r2   df)rn   ro   rk  r  ra  rq   r=  rI   r  r   rt  s              rx   test_1samp_ci_1dz TestStudentTest.test_1samp_ci_1d  sR    i##$788JJA3aJ00**,, 

3%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0rz   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   rY   r?  )rf   r   r   r   r   r   rV  )rn   ro   r   r  s       rx   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.z	Too slow.r   r#  g?)alpha	data_axisrd  rf  c                    |\  }}|                     |          }t          j        |d||          }|                    |          \  }}	|dk    r|n|	}
|                    |
|          }
t          j        ||
||          }t          |j                  }|                    |           |                    |                     d|z
  |j	                  |          }t          |j        |           d S )Nr   r  r?  rf  rS   r   rH   )rd   rf   r   rV  expand_dimsr  r  rx  r}  r   r1   r  )rn   rF  rG  rk  ro   rr  rT   r   lr  r=  r  r  s                rx   test_pvalue_cizTestStudentTest.test_pvalue_ci  s     
dzz$b,7dD D D&&&>>1"i//!!Q..t.44g;TRRRTZ  		$oobjj5
jCCUKK
C(((((rz   N)!r   r   r   r!  r$  r"  r#  r'  r(  r)  r*  r%  r&  r6  r7  r   r   r   r,  r1  r   r3  r8  r  rB  rE  r1  r  givenr  floatsr  rK  r   rz   rx   r  r  {  s        
B	BDDDDDDDDAXF$(^F[ WXX[ VWW2 2 XW YX2B8 8 8 .MNNN; ; ON;  [ MNN2 2 ON2 k*JKKK[],L,L,LMM1 1 NM LK109 9 9 d;777[ZJ188HH 8 8 : :< < <[]VY,?@@) ) A@< <  87
) ) )rz   r  c                   l   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. Zd/S )0TestPercentileOfScorec                 $    t          j        |i |S r[  )rf   percentileofscore)rn   argskwargss      rx   fzTestPercentileOfScore.f  s    &7777rz   zkind, result))rw  rR  )ri   #   strictrQ  )weakrR  c                 Z    g d}t          |                     |d|          |           d S )N
r   r3   r4   r5   r6   r7   r8   r9   r:   rY   r5   kindr   rT  rn   r\  rs  r*  s       rx   test_uniquez!TestPercentileOfScore.test_unique  s7    
 ,++TVVAqtV,,f55555rz   ))rw  r  )ri   rR  rV  )rX  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r3   r4   r5   r5   r6   r7   r8   r9   r:   r5   r[  r]  r^  s       rx   test_multiple2z$TestPercentileOfScore.test_multiple2  7    
 +**TVVAqtV,,f55555rz   ))rw  r  )ri   r  rV  )rX  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r3   r4   r5   r5   r5   r6   r7   r8   r9   r5   r[  r]  r^  s       rx   test_multiple3z$TestPercentileOfScore.test_multiple3%  rb  rz   ))rw  rQ  )ri   rQ  rV  )rX  rQ  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r3   r4   r6   r7   r8   r9   r:   rY   rZ   r5   r[  r]  r^  s       rx   test_missingz"TestPercentileOfScore.test_missing-  s7    
 -,,TVVAqtV,,f55555rz   c                 Z    g d}t          |                     |d|          |           d S )N
rY   r  rQ  rR  r  r  F   r  r[  r  rR  r[  r]  r^  s       rx   r  z(TestPercentileOfScore.test_large_numbers5  s7    
 655TVVArV--v66666rz   c                 Z    g d}t          |                     |d|          |           d S )N)
rY   r  rQ  rR  rR  rR  r  r  ri  r  rR  r[  r]  r^  s       rx   test_large_numbers_multiple3z2TestPercentileOfScore.test_large_numbers_multiple3=  s7    
 544TVVArV--v66666rz   c                 Z    g d}t          |                     |d|          |           d S )N
rY   r  rQ  r  r  ri  r  r[  r  n   rR  r[  r]  r^  s       rx   test_large_numbers_missingz0TestPercentileOfScore.test_large_numbers_missingE  s7    
 766TVVArV--v66666rz   rw  )r   rY   r  r  ri   )r   r6   _   r  rW  )r   r   r[  r  rX  c                 ^    g d}t          |                     |g d|          |           d S )Nrm  )r   rY   rn  r  r[  r]  r^  s       rx   test_boundariesz%TestPercentileOfScore.test_boundariesM  s>    
 766TVVA000tV<<fEEEEErz   )r   rY   r  )r   r6   rp  )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   r3   r4   r5   r6   r7   r8   r9   r:   r[  )r   r  r   rT  r^  s       rx   test_infzTestPercentileOfScore.test_infU  sY    
 1aAq!Q0TVVARVG44V@@&IIIIIrz   rW  r   r{  r3   r  r  r   )r   r  r  r   zpolicy, a, score, resultc                 R    t          |                     |||          |           d S )Nr   r]  )rn   policyr*  r;  rs  s        rx   test_nans_okz"TestPercentileOfScore.test_nans_oke  s*    TVVAuV88&AAAAArz   r   r4   r  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   rT  )rn   rv  r*  r;  r  s        rx   test_nans_failz$TestPercentileOfScore.test_nans_failp  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  ))r7   r  r3   r   r4   )r3   r   r   r4   c                     t          j        g d          }|                    |          }|dz  }g d}t          |                     ||d          |           d S )N)r   r   r3   r4   r5   r6   rY   rZ  rw  r[  )r   r   rh   r   rT  )rn   r  r*  r  resultss        rx   test_ndzTestPercentileOfScore.test_ndu  sg     H'''((5!!)+++TVVAvFV33W=====rz   c                     d}t          j        t          |          5  t          j        t          j        d          d           d d d            d S # 1 swxY w Y   d S )Nz`a` must be 1-dimensional.r   r  r   )r   r   r   rf   rQ  r   r  r  s     rx   test_multidimensional_errorz1TestPercentileOfScore.test_multidimensional_error  s     /]:W555 	8 	8#BGFOOQ777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8   (AAAN)r   r   r   rT  r   r   r  r_  ra  rd  rf  r  rk  ro  rr  rt  r   rm   casesrw  ry  r}  r  r   rz   rx   rO  rO    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 ' ' '  > > >8 8 8 8 8rz   rO  Case)f_obsf_expr  rT   chi2r  mod_logcr)r5   r9   r[   r9   r5   r3   r<   r[   r=   r9   r   r  gfx(@)r3   r   r[   r3   r  r   r         ?g{T4@)r4   r6   r8   r:   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.||                    ||          n|f}
|
d         j        |         }	t          j                    5  t          j        ddt                     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   rH   r   r   zMean of empty slicer  r  rT   lambda_r   pearson)r  r  rT   )rd   rI   r,   broadcast_arraysr  r   r   r   r   rf   power_divergencer1   	chisquarer   distributionsr  sf)rn   r  r  r  rT   r  expected_statro   rI   num_obsr  statrA  
expected_ps                 rx   check_power_divergencez*TestPowerDivergence.check_power_divergence  s   

2$

5
..272C

5
...<ennGG;@;Lb))%777!8 Qiod+G$&& 	N 	N#H.C^TTT, %U%)7< < <GD! D"**]%*"H"HIII!||w)33/%u4/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  r  r  )r   r  log-likelihoodr  mod-log-likelihoodr  cressie-readr  r  r  c           	          |\  }}t          ||          }|                     |j        |j        |j        |j        |||           d S r[  )rE  r  r  r  r  rT   rn   r  r  ro   r  attrr  s          rx   r5  zTestPowerDivergence.test_basic  sZ     $d++##DJ
DIty$+]B	@ 	@ 	@ 	@ 	@rz   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   r  rj  r  r  r  r{  )power_div_1d_casesr   vstackr  	ones_likeri   r  rd   r  r  r  r  r  rh   )rn   ro   case0case1r  r  f_obs_reshapes          rx   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%* 	$ 	- 	- 	- 	- 	-rz   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                   \  }}|                    ||j        d d f         ||j        d d f         fd          }t          |
|           d S )	Nr   r   r   rH   r  r  rV  rS   )r  r   r  r  r   r  ri   r  r  rd   rI   rf   r  r1   r  r  )rn   ro   r  r  r  r  expected_chi2rI   r  r  rA  r  p0p1r  s                  rx   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,,, &ue$t*EEE2&ue$t*EEE2YY2:qqq= 12bj!!!m3DEAYNN
:&&&&&rz   )r  r  r  r  r  c           
          |\  }}t          ||          }t          j                    5  |                     |j        |j        |j        |j        |||           d d d            d S # 1 swxY w Y   d S r[  )rE  r   r   r  r  r  r  rT   r  s          rx   test_empty_casesz$TestPowerDivergence.test_empty_cases6  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   rH   r  r  r  rj  )
r  r  r  r  rT   rd   rI   rf   r  r   )	rn   ro   r  r  r  rT   rI   r   r   s	            rx   'test_power_divergence_result_attributesz;TestPowerDivergence.test_power_divergence_result_attributesC  s    "1%+"1%+!!$)!!$)

2$

5
.. $U%d*.	C C C,
C333333rz   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        >@rL   r  g     A@g      9@For each axis slice...r         N@r  r   )r  rT   g̑m@gUUU@gj^4;?g4;?)rd   r   r   r   rf   r  r1   )rn   ro   r  r  r  r  ro  s          rx   test_power_divergence_gh_12282z2TestPowerDivergence.test_power_divergence_gh_12282Q  s   

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

RISz233*]:W555 	H 	H"5

C:0F0FGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H]:W555 	? 	?"5A>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?+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             }|                    ||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)r  r5        ,@g      1@rL   r5  r   r   r   r   r   r   r5  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@r   gfffff6@r   g8@rL   g     A@r   g     j@)r_   r3   r   )r  g{Gzt?rl  )rd   r   r  r  r$  expr  r  r   rh   r  rf   r  r1   )rn   ro   obsbetar  rF  expected_countstable4table5r  r  r  rA  s                rx   /test_power_divergence_against_cressie_read_datazCTestPowerDivergence.test_power_divergence_against_cressie_read_data^  s    jj @ @ @ A AIIb#)A,+,,rvvc{{RVVBFF46NN%;%;;<<&&a00 C
AAA.+BJM:< = ==> 	      & FG,,v|A'' 	< 	<A%+AqD\6!Q$<]G,VAAAaC[&1+5<> > >GD!D-d;;;;;		< 	<rz   N)r   r   r   r  r   r   r  r  r5  r<  r  power_div_empty_casesr  r  r  r  r   rz   rx   r  r    s7       @ @ @@ [V%788[]	. 	. 	./ /@ @	/ / 98
@- - -: '  '  'D [V%:;;[]	. 	. 	./ /, ,	/ / <;
,4 4 4D D D-< -< -< -< -<rz   r  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   rd   rf   r  )rn   ro   r  r  s       rx   test_chisquare_12282az#TestChisquare.test_chisquare_12282a  s     :-EFFF 	0 	0JJSz**EJJSz**EOE////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   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 rY   r  r  r  rH   r_   F)r  r  	sum_checkr3   )r   r  r  rw  poissonrd   rI   rf   r  r'  r$  r1   r  r#   r  r  )
rn   ro   r  ra  lamrq   r   r  r  r$  s
             rx   test_chisquare_12282bz#TestChisquare.test_chisquare_12282b  s    i##$455kk$1k--KKjjooJJq	J**oasuEEEW$FF1a4LL	y111AY_==>>
BEE)$4$455555rz   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   rH   r3   r   vIh%<=rl  )	rE  rd   rf   r  r1   rI   r2   r  r  )	rn   ra  rI   ro   r  r  r   r  rA  s	            rx   #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&&&&&rz   N)	r   r   r   r  r  r   r   r  r  r   rz   rx   r  r    sg        0 0 06 6 6& [Z.:L)MNN
' 
' ON
' 
' 
'rz   r  c                      e Zd Zg dg dg dg dgZdZg dg dg dg d	gZd
Zg dg dg dg dgZdZe	j
                            dg d          e	j
                            deefeefeefg          d                         Zd ZdS )TestFriedmanChiSquare)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=
?)gNt$@gBv?)r5   r4   r6   r4   r6   r4   r3   r6   r5   r5   r5   r4   )r3   r3   r   r3   r4   r   r3   r4   r3   r   r   r4   )r3   r5   r4   r4   r5   r4   r4   r5   r5   r   r3   r   )r4   r6   r5   r4   r5   r5   r4   r4   r4   r5   r5   r5   )g
__2@g5"]i2?)r   g#@rD   r  g$@)g333333@g@g@r?   g@)r  r  rA   rN   @)g!@g!@333333 @ffffff
@g333333"@)g\(\%@g+ԋ?rI   rV  z	data, refc                    t                    r%j        dk     rdk    rt          j        d           nt	                    fd|D             }t          j        | }t          |j        	                    |d                              t          |j
        	                    |d                              d S )N2.0r   (NumPy doesn't preserve dtype pre-NEP 50.c                 >    g | ]}                     |           S rH   rd   )r\  r   rI   ro   s     rx   r^  zATestFriedmanChiSquare.test_against_references.<locals>.<listcomp>  s)    AAA5

5
..AAArz   r   rH   r   )r)   __version__r   rA  rE  rf   friedmanchisquarer1   r  rd   r  )rn   rI   rr  r  ro   r   s    `  ` rx   test_against_referencesz-TestFriedmanChiSquare.test_against_references  s     B<< 	DBNU22ui7G7GKBCCCGB,>,>AAAAADAAA%t,rzz#a&z'F'FGGG
BJJs1vUJ$C$CDDDDDrz   c                    d}t          j        t          |          5  t          j        |                    | j        d                   |                    | j        d                              d d d            d S # 1 swxY w Y   d S )Nz At least 3 samples must be givenr   r   r   )r   r   r   rf   r  rd   r  rn   ro   r  s      rx   test_too_few_samplesz*TestFriedmanChiSquare.test_too_few_samples  s    4]:W555 	T 	T#BJJtwqz$:$:BJJtwqz<R<RSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	Ts   AA==BBN)r   r   r   r  ref1r  ref2r  ref3r   r   r  r  r  r   rz   rx   r  r    sB       
9 9 9: : :; ; ;: : :
;B 2D /
.
.
.
.
.
.
.
.
.
.
.
0B 4D %
$
$
#
#
#
#
#
#
#
#
#
%B 'D[W&B&B&BCC[[B:DzB:*NOOE E PO DCET T T T Trz   r  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.autorW   c                     t          j        |d||          }t          j        ||g          }t	          t          j        |          ||           d S Nr  rk  rF  r  )rf   kstestr   r   r   )	rn   rq   rk  expected_statisticexpected_probrF  r  rs  r  s	            rx   _testOnezTestKSTest._testOne  sT    a[tLLL8/?@@!"(6"2"2HgNNNNNNrz   c                     t          j        |d||          }t          j        |t           j        j        ||          }t          t          j        |          ||           d S r  )rf   r  ks_1sampr  cdfr   r   r   )rn   rq   rk  rF  r  rs  result_1samps          rx   _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Rrz   c                     t          j        ddd          }d}t          j        |d          }t	          ||           d S )Nr_   r   r:   r  r  )r   r  rf   r  r   )rn   rq   r   r   s       rx   test_namedtuple_attributesz%TestKSTest.test_namedtuple_attributes  sA    KAq!!,
l1f%%C,,,,,rz   c                 J   t          j        ddd          }|                     |d           t          j        ddd          }|                     |d           g d}|                     |d           |                     |dd	
           |                     |dd	
           d S )Nr_   r   r:   rb  r  
r  Q?g333333g(\?Q?g(\ſg{GzgHzG?g\(\gGzrf  r  rF  rd  )r   r  r  rH  s     rx   test_agree_with_ks_1sampz#TestKSTest.test_agree_with_ks_1samp  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%>>>>>rz   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  rf   r  cauchyr  r  r  r   r:  r  r  )rn   rG  r   r  s       rx   test_pm_inf_gh20386zTestKSTest.test_pm_inf_gh20386  s     Arv&l4!122l4!1DAAAvbk#&&'''''S#8CM*****8CJ'''''''rz   N)r  rW   )	r   r   r   r  r  r  r  r  r	  r   rz   rx   r  r    s|        VV ')O O O OS S S S- - -
? 
? 
?	( 	( 	( 	( 	(rz   r  c                   b   e Zd ZdZdddZej                            dg d          d             Zej                            dg d          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  r  c                    ||j         k    rdnd}t          j        |t          j        ||          }	|                    ||          }
|                    ||          }t          |	j        |
|           t          |	j        ||           d S )NgvIh%,=h㈵>r  rH   rl  )	r   rf   r  r   ndtrrd   r1   r  r  )rn   rq   rk  r  r  rF  rI   ro   rm  r   ref_statisticr&  s               rx   r  zTestKSOneSample._testOne!  s    ++uunQ+DQQQ

#5U
CCZZUZ;;
}4@@@@
JT::::::rz   rI   rV  c           	      \   t          |          r%|j        dk     r|dk    rt          j        d           |t	          |          nt          ||          }|                    ddd|          }|                     |dd	d
||           |                    ddd|          }|                     |ddd||           g d}|                    ||          }|                     |ddd||           |                     |dddd||           |                     |dddd||           d S )Nr  r   !Pre-NEP 50 doesn't respect dtypesr_   r   r:   rH   rb  g|N?g7.s?rI   ro   r   r  g{CTp?g M<b*?r  gZL?g86J4?rf  g+?r  )rF  rI   ro   rd  gHD?gr?)	r)   r  r   rA  r+   rE  r  r  rd   rY  s       rx   test_agree_with_rz!TestKSOneSample.test_agree_with_r*  s    B<< 	=BNU22u	7I7IK;<<<(- $$$72u;M;MKKAqK..a&9;N!b 	 	* 	* 	* KKR%K00a&9;O!b 	 	* 	* 	* ONNJJqJ&&a&79J!b 	 	* 	* 	*a$57Hw!b 	 	* 	* 	*a!24EG!b 	 	* 	* 	* 	* 	*rz   c           	         t          |          r%|j        dk     r|dk    rt          j        d           |t	          |          nt          ||          }t          j                            ddd          }|	                    ||          }| 
                    |d	d
dd||           | 
                    |dd
d||           | 
                    |ddd||           d S )Nr  r   r  r  r  ih:)r  r  r  rH   rb  ghх?g7?asymp)rF  ro   rI   rd  g^h?)ro   rI   rf  gv!ԉ}?g*z)?)r)   r  r   rA  r+   rE  rf   r  r  rd   r  )rn   ro   rI   rq   s       rx   test_known_examplesz#TestKSOneSample.test_known_examplesA  s    B<< 	=BNU22u	7I7IK;<<<(- $$$72u;M;MJNNs9NEEJJqJ&&a&9;O"r 	 	8 	8 	8a!46J5 	 	* 	* 	*a$9;N5 	 	* 	* 	* 	* 	*rz   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=   r_   ))r>  r   Tr   )r>  皙?Tr   )r>  r   Tr   )r>  gTr   )          ?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{  r4   )dtypes)r   r   r:  r   rm   r   r   rd   r   checkintr  bool)rn   datasets     rx   test_ks1samp_allpathsz%TestKSOneSample.test_ks1samp_allpathsQ  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))rf  r   r   r   )rd  r   r   r_   )rb  r   r   r   )rb  r   r   r_   c                    |                     d          dz   }t          j        |          d                             |          }d } ||                    |          ||          }	|j        |j        k    rdnd}
t          |	j        |                    d          |
	           t          |	j
        |                    |                     t          |	j        |                    ||j        
                     d S )Nr   r<   r7   c                     | dz  S )Nr   r   rt  s    rx   r  z/TestKSOneSample.test_location_sign.<locals>.cdf  s
    1s7Nrz   rj  r#  rn  r  rl  rH   )r   rj   rk   rl   rd   rI   r   r1   r  r2   statistic_locationstatistic_signint8)rn   r%  rk  x6valref_locationref_signro   rq   r  r   rm  s              rx   test_location_signz"TestKSOneSample.test_location_signt  s     IIcNNS F1IIaLU##"""fRZZ]]C[AAA2:--uu4rzz#TBBBB.

<0H0HIII*BJJxrwJ,O,OPPPPPrz   N)r   r   r   r  r  r   r   r  r  r  r$  rf   r  r  r/  r   rz   rx   r  r    s)        
 ; ; ; ; ; [W&B&B&BCC* * DC*, [W&B&B&BCC* * DC*!R !R !RF [Xen'EFF[I9 9 9: :
Q Q: : GFQ Q Qrz   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  )rf   ks_2sampr   r   r   )	rn   r  r  rk  r  r  rF  rs  r  s	            rx   r  zTestKSTwoSamples._testOne  sO    B$???8/?@@!"(6"2"2H=====rz   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   rb  r   rf  r<   rd  r   )r  r6  s    rx   	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3rz   c                    t          j        ddg          }|dz   }|dz
  }t          j        g d          }|                     ||ddd           |                     ||ddd           |                     ||d	dd           |                     ||dd
d           |                     ||dd
d           |                     ||d	dd           d S )Nr   r   r  r{  rb  r3  rf  r  rd  r  r  r  r   r   r   r  rn   rN  data1pdata1mr\  s        rx   testTwoVsThreezTestKSTwoSamples.testTwoVsThree  s    #s$$))fe['3???feY===feVWc:::fe['3???feY===feVQ44444rz   c                    t          j        ddg          }|dz   }|dz
  }t          j        g d          }|                     ||ddd           |                     ||ddd	           |                     ||d
dd           |                     ||ddd           |                     ||ddd           |                     ||d
dd           d S )Nr   r   r  r  rb  r<   g?rf  g?rd  r  皙?r6  r  r  r   r7  r8  s        rx   testTwoVsFourzTestKSTwoSamples.testTwoVsFour  s    #s$$---..fe['7CCCfeY@@@feVWg>>>fe['6BBBfeY@@@feVQ44444rz   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  r3   r  rb  r/  g~z?rf  gz;.B?rd  r   r   g{Gz?gn2IU?r   r  r  )rn   x100	x100_2_p1	x100_2_m1s       rx   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6rz   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  rn  r  r  rb  g?g@߿?rf  g}n?rd  r   g:[?g]O);?gѫ);?r   r   r@  )rn   rA  x110
x110_20_p1
x110_20_m1s        rx   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9rz   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 )Nr3   r4   r5   r6   r7   rH   r   rY   r8   rb  g      ?g^dH?rf  gQl6y?rd  r   r   gVdEVdE?g(f^?g!?gii?g+ ϖ?)r   r   r!  r  )rn   x2233x3344x2356x3467s        rx   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Krz   c                 *   t          j        g d          }|                     ||dz   ddd           |                     ||dz   ddd           |                     ||dz   dd	d           |                     ||d
z   ddd           |                     ||d
z   ddd           |                     ||d
z   dd	d           |                     ||d
z
  ddd           |                     ||d
z
  dd	d           |                     ||d
z
  ddd           d S )Nr{  r   rb  r3  r   rf  r6  rd  r   r<   r7  )rn   r\  s     rx   testEqualSizeszTestKSTwoSamples.testEqualSizes  s)   ))eU1Wk5#>>>eU1Wi===eU1WfeR888eU3YUC@@@eU3Y	5$???eU3Yr:::eU3YUC@@@eU3Y	5#>>>eU3Yt<<<<<rz   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          j                    5  d}t          j        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   r3   r   r  rb  g     @@r  r  r  rf  g2JE?rd  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.r   r  Trecordalways	r   r  r  r   r   r   r   r  rS  rn   n1n2deltarq   rr   r  r  s           rx   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" 	 	$ 	$ 	$$&& 	( 	(AG#Hg~FFF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??GG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          j                    5  d}t          j        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   r3   r   r  rb  g     ȹ@r  r  r  rf  gZ?rd  g     @@g@J?rS  r   r  TrT  rV  rW  rX  s           rx   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" 	 	$ 	$ 	$ $&& 	( 	(AG#Hg~FFF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 	2r]  c                 <   d\  }}|dz  }d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd	|z  d
           |                     ||dd|z  d           |                     ||dd	|z  d           d S )N)'  rn  r5  r   r3   r   r  r  rb  g    `@g      <rf  g     @g򼉷?rd  gimb:r@  )rn   rY  rZ  lcmr[  rq   rr   s          rx   	testLargezTestKSTwoSamples.testLarge  s    BgBr	!AK3##e+K3##aK38NOOOaIus{4GHHHaFGcM3IJJJJJrz   c                    t           j                            d          }|                    d          }|                    d          dz  }|                     ||dddd	
           |                     ||dddd
           d S )N@ i  r  i  r=   rb  gC?      <r  r  r  r   r  r  r  r  rn   r  rq   rr   s       rx   test_gh11184zTestKSTwoSamples.test_gh11184)  s    i##F++JJDJ!!JJDJ!!C'aK)<>T" 	 	$ 	$ 	$aK)<>T" 	 	$ 	$ 	$ 	$ 	$rz   c                 z   t           j                            d          }|                    d          }|                    d          dz  }|                     ||dddd	
           |                     ||dddd
           |                     ||dddd	
           |                     ||dddd	
           d S )Nrf  rb  r  i'  r=   rb  g 	_r!?gAD5r  r  rg  r  rf  gלN#y7rd  gvqw?rh  ri  s       rx   test_gh11184_biggerz$TestKSTwoSamples.test_gh11184_bigger3  s     i##F++JJEJ""JJEJ""S(aK)<>T" 	 	$ 	$ 	$aK)<>T" 	 	$ 	$ 	$aI':<R" 	 	$ 	$ 	$aF$79O" 	 	$ 	$ 	$ 	$ 	$rz   c                    t           j                            d          }t          ddd          D ]}|                    |          }|                    |dz   d          }t          j        ||d	          j        }t          j        ||d
	          j        }t          |d|z             t          |d|z             d S )Nrf  r  i.  r  rY   r<   r  r  r  r  r  r4   )	r   r  r  r  r  rf   r3  r  r   )rn   r  rq   vals1vals2r  r  s          rx   test_gh12999zTestKSTwoSamples.test_gh12999B  s    i##F++tUD)) 	0 	0AJJQJ((EJJQV#J66EN5%g>>>EEN5%g>>>EEeQY///eQY////	0 	0rz   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          j                    5  d}t          j        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)rb  i*  r5  r   r3   r   r  rb  g     @gkHY?r  r  gLɔ.?r  r  rf  g.LbG2?rd  r   gr?֎?rS  r   )r   r  r  r   r   r   r   )rn   rY  rZ  rc  r[  rq   rr   r  s           rx   testLargeBothzTestKSTwoSamples.testLargeBothN  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$&& 	( 	(AG#Hg~FFF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   r3   r4   )rf   r3  r   )rn   r   r   s      rx   testNamedAttributesz$TestKSTwoSamples.testNamedAttributesf  s4    ,
naVaS))C,,,,,rz   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  r_  iK  r  )scipy.stats._stats_pyrw  rx  r   r  r   FloatingPointError)rn   rw  rx  s      rx   test_some_code_pathsz%TestKSTwoSamples.test_some_code_pathsl  s   	
 	
 	
 	
 	
 	
 	
 	

 	*)!Q1555##D!Q555[))) 	, 	,,.Ia, , ,,.Ia, , ,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   3A::A>A>r  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 Nr   )r   r  r   r   rf   r3  r   r  r   rm   r  )rn   r  r   s      rx   test_argument_checkingz'TestKSTwoSamples.test_argument_checking}  s     \,4IJJJ 	- 	-.$'C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   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.l   9B i    r   r   )r  r  r  r  rf  r  r  rd  rb  N)r   r  r  rf   rw  r  r3  )rn   r  rY  rvs1rvs2s        rx   test_gh12218zTestKSTwoSamples.test_gh12218  s    
 i##J//}  bb LLaxtTywGGGGtTvGDDDDtT{IIIIIIrz   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   rd  rj  r   r-  r$  )
r   r  r  r   r  r   rf   r3  r   r  )rn   r  rN  r\  r  r   s         rx   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&  ))rf  皙@r  r   )rd  ffffff@r   r_   )rb  r  r  r   )rb  r  r   r_   c                     t          j        dt           j                  }|                                }||d<   t	          j        |||          }|j        dk    sJ |j        |k    sJ |j        |k    sJ d S )NrY   rH   r7   rj  r  )	r   r   r   ra   rf   r3  r  r)  r*  )	rn   r%  rk  r,  r-  r.  rq   rr   r   s	            rx   r/  z#TestKSTwoSamples.test_location_sign  s     Ib
+++FFHH!nQ{;;;}####%5555!X------rz   N)r  )!r   r   r   r  r  r5  r;  r>  rD  rI  rO  rQ  r   r   r  r\  r`  rd  rj  r1  rl  rq  rs  ru  r{  r  r~  r  r  rf   r  r3  r/  r   rz   rx   r1  r1    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
. 
. 
.rz   r1  c            	         d\  } }| |  g||gf}t          j        ddd          }t          j        ddd          }t          j        t          j        ddd          t          j        ddd          g          }t          j        t          j        ddd          t          j        ddd          g          }t          j        ||d          \  }}t          ||g| |f           t          j        |j        |j        d          \  }}t          ||g|           t          j        ||d          \  }}t          ||g|           t          j                    5  t          j	        dd	          5  t          j
        dd
t                     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  t9          t          j        ||          t           j        t           j        f           d d d            n# 1 swxY w Y   t          t          j        ||d           d!           t)          t*          t          j        ||d"            t)          t*          t          j        ||d#            t;          j        t          d$%          5  t          j        g d&g d'          \  }}d d d            n# 1 swxY w Y   t#          t          j        |          |ft           j        df           t          j	        d          5  t#          t          j        g d&g d&          t           j        t           j        f           t          j        dt           j        gd(dgg          }t#          t          j        |t          j         d)                    dt           j        gdt           j        gf           d d d            n# 1 swxY w Y   t          j!        d*          }t)          t*          t          j        |"                    d+          |"                    d,                     d- }t          j#        |          }t           j        |d d d.d/f<   t           j        |d d d0d1f<   t;          j        tH          tJ          %          5  t          j        ||dd           \  } }d d d            n# 1 swxY w Y   t;          j        tH          tJ          %          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   t;          j        tH          tJ          %          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   rS   r   r  r  r   r   r  r  r3   ry  r
  rj  rd  r  rf  Na r6   rY     r0  r  r  )r  r  r  r  r   r   )ghm#1?gry̧?r   r   r  r   r  r8  r_   r{  r  )r9   r4   r3   r4   r5   c                 L    | dk     r|dk    s| dk    r|dk    r|dz  S d|dz  z
  S Nr   rd  rf  r3   r   r   r+  rA  alts      rx   convertztest_ttest_rel.<locals>.convert  <    EEcVmmQ3)3C3Cq5LAE{rz   r  rQ  r  r  r  r-  rl  )&r   r  r   rf   	ttest_relr   r   r   r   r  r   r   r   r:  r   r|  absr   r  r~  r   r   r   r  r  r  r  rm   r	   r   r  r  r   r   rh   	vectorizer   r   )trr  tprr  r  rvs1_2Drvs2_2Dr+  rA  r   r   rvs1_3Drvs2_3Dr  rq   rr   ananr  	converters                      rx   test_ttest_relr    sV   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:::' '9>	K 	K 	K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14F1%G1F5	5G8F5	9GGG:TT!$T!.WWW'B1[$$[(+[(+___>`''`+.`+bb
b.ccc	d44d8;d8c                     t           j        dddg} g d}t          j        | |d          }t          j        || d          }t	          |j        |j         d           t	          |j        |j        d           t          j        |d	d          | d	d                    }t	          ||d           t	          |d
d           d S )Nr   r   r   r   r   r   r   r   r   r#  r$  r   )r  grh|?-C6?)r   rm   rf   r  r   r  r  )rq   rr   r#  r$  r3s        rx   test_ttest_rel_nan_2nd_argr  '  s    	c3AA	A&	1	1	1B	A&	1	1	1BBL2<-e<<<<BIryu5555 
122!""	&	&BB'''' B4000000rz   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 r}  )r   r  r   r   rf   r  r  	_stats_pyTtestResultr   r   rm   )rs  s    rx   #test_ttest_rel_empty_1d_returns_nanr  <  s     
(0E	F	F	F ) )R(() ) ) ) ) ) ) ) ) ) ) ) ) ) )feo9:::::"&"&)*****s   AA
Ab, expected_shaper   r6   r   r  r   r   r   r4   r   c                    t          j        d          }t          j                    5  t          j        d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r4   r   r   r   r_   rS   r:  )r   r  r   r   r   r   r   rf   r  r  r  r  r   rm   r   r  r  )r4  expected_shaper*  rs  expected_values        rx   test_ttest_rel_axis_size_zeror  E  s    	A		 	"	" 0 0*?ASTTTAB///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 feo9:::::W^???N!>222/////s   8A,,A03A0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   r9   r   r6   r9   r   r   rS   r6   r   )r   r  rf   r  r  r  r  r   r  r  r  )r*  r4  rs  s      rx    test_ttest_rel_nonaxis_size_zeror  W  s    
 	A
A_Q***Ffeo9:::::!'000$f-----rz   rk  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:  rY   r=   r3   r;  gZ?Ygi{a?g8 gC?r<  rj  r>  r?  r   )r   r  r  r  r  rf   r  rV  r   r   rA  )rk  r  ra  rq   rr   r  r   rt  s           rx   test_ttest_rel_ci_1dr  d  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rz   ztest_fun, argsrY   c                      | | }d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )NrD  r   rY   r?  )r   r   r   rV  )test_funrR  r   r  s       rx   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rj  c                j    t          | |          ndfd	} || |           |||          z   S )Nr   c                                          |           }                     | |          }                    | |d          }| j        |         }|||fS )NrS   r   r  )rd   ri   r   r  )rq   rT   mur   nobsro   s        rx   _statsz_desc_stats.<locals>._stats  sU    JJqMMWWQTW""ffQTaf00wt}3}rz   rv  )r&   )r  r  rT   ro   r  s      ` rx   _desc_statsr    s^    $&JR	 	 	 BB      6"dffR....rz   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ѱ?r6   i   r  r   r   rS   r5  r   r
  rj  rk  rd  r3   rf  r  )rd   r  r  rf   	ttest_indr1   ttest_ind_from_statsr  r   r  r  r   r   r   rm   r  r   r  r2   )ro   r  r  tr_2Dpr_2Dr  r  r  r  r   r+  rA  r  rR  r  r  NaNs                    rx   test_ttest_indr    se    
&	'	'B	'	(	(BHHb2#YEHHb"X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 )"Nr6   r  r  r   r  rY   r  r0  r  r   r  r   r   )guͷ?g*,?r   r   r  r   r  r8  r   r_   r{  r  r7   r[   c                 L    | dk     r|dk    s| dk    r|dk    r|dz  S d|dz  z
  S r  r   r  s      rx   r  z*test_ttest_ind_nan_policy.<locals>.convert  r  rz   rX  rd  )rT   r   rk  r-  rl  rf  )r   r  r   r|  r  r  rf   r  r  rm   r  r	   r  r   r   r   r   r  r   r   r  r  r   r  r   )r  r  r  r  r  r  r  rq   rr   r+  rA  r  r  r  r  r  s                   rx   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                  t   t          j                    5  t          j        d          5  t          j        ddt
                     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   r   rf   r  r:  )r+  rA  s     rx   test_ttest_ind_scalarr  #  s2   		 	"	" ' 'BK$A$A$A ' '9>	K 	K 	Kr2&&1' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 8A;;8A;;s4   B4A*B*A.	.B1A.	2BBBz&ignore:Arguments...:DeprecationWarningc                   6   e Zd ZdZej                            d          Z ej         ej	        dez  dz            e                    dez  dz            f          Z
 ej         ej	        edz            dz   e                    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	dd
e                              dd	          j        Zej                            ddde          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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"dS )"Test_ttest_ind_permutationsr  i
r4   r5   r  rY   r   r3   r6   r  r0  r9   g'^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rT   r   N)r  rT   	equal_varTr_   )rT   r  r3  rk  r  r  )r[   )r3   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  r_   rT   rk  r  c                 :    t          j        | ||          j        S NrS   rf   r  r  rq   rr   rT   s      rx   r  zFTest_ttest_ind_permutations.test_permutation_method.<locals>.statistice      %/!QT*J*J*J*T#Trz   )rT   r  rk  r  r/  rl  r   )r   r  r  r  rf   r  r  permutation_testr   r  r  r   )rn   rk  r  r  rq   rr   rS  r  r   r  r  s              rx   test_permutation_methodz3Test_ttest_ind_permutations.test_permutation_methodV  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::::::rz   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      rx   r  zFTest_ttest_ind_permutations.test_monte_carlo_method.<locals>.statistic|  r  rz   r  r_   )r  r  rT   rk  r  r  r  r  r  rl  r   )r   r  r  r  rC  rf   monte_carlo_testr  r  r   r  r  r   )rn   rk  r  r  rq   rr   rS  r  r  r  r  r   s               rx   test_monte_carlo_methodz3Test_ttest_ind_permutations.test_monte_carlo_methodr  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::::::rz   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   r  rk  	migratoryr  )r   r   r   rf   r  r  s     rx    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s   AAA)#r   r   r   Nr   r  r  r  r  r   r*  r4  r  b2r  b3rf   r  r  rh   r   r  r  p_dp_d_genp_d_bigr   r  paramsr   r   r  r  r  r  r   rz   rx   r  r  -  sB       
A )

	
*
*C	929QqS!V$$cjj1a&8&89::A	929QT??S(#**QT*:*:;<<A 
2B	2	B QB
QB :>>ar"  6 66=gc1ooa 	:>>ar#>FFD<
 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 [],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 F Frz   r  c                      e Zd Zej                                        ej                            dddii gddg          ej                            dddgdd	g          d
                                     Zej                            dddii gddg          ej                            dddg          d                         ZdS )Test_ttest_ind_commonkwdstrimr  basic)idsr  TFunequal_varc           	         t           j                            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 )Nl   H-F )r6   r5   r5   r8   r   r7   r5   r   r9   r3   r7   rT   r`   )r3   r4   r   r   r  r   r   r   r   r3   r   r_   r6   r   r5   r   r   r   c              3   4   K   | ]}t          |          V  d S r[  r_  r\  r  s     rx   	<genexpr>z=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>  s(       9 9aq 9 9 9 9 9 9rz   )r   r  r  rf   r  r   r  r  r~  tiler  r   r   r   )rn   r  r  r  r*  r4  r   r  r]  rO  r  r  r  rq   rr   r  
statisticspvaluesindicesxiyir  s                         rx   test_ttest_many_dimsz*Test_ttest_ind_common.test_ttest_many_dims  s/    i##J//JJ)**JJ''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,,,,,rz   rT   r_   r   c                    t           j                            d          }|                    dd                              d          }|                    dd                              d          }t           j        |d         d         d<   t           j        |d         d         d	<   t          j        t          j        ||z   |
                    }t          j	                    5  t          j
        d          5  t          j        ddt                     t          j        ddt                     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 )Nl   AoI;rY   )r6   r4   rY   r  r  r   r3   r4   r7   rS   r   r  z'invalid value encountered in less_equalr  rT   )r   r  r  integersr  rm   r:  r$  r   r   r  r   r   rf   r  r  r	   r  )
rn   r  rT   r  r*  r4  r  r   p_nansstatistic_nanss
             rx   test_nans_on_axisz'Test_ttest_ind_common.test_nans_on_axis  s    i##$9::LL*L--44W==LL*L--44W==V!Q
V!Q
 8BF1q5t44455 $&& 	; 	;H(E(E(E 	; 	;#C^U U U#H.GXXX/!Q::T:T::C		; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;
 #*%%68,,,#-00>844444s7   (E->AE
E-E	E-E	E--E14E1N)	r   r   r   r   r   r1  r  r  r  r   rz   rx   r  r    s       [[VvrlB%7"('!2  4 4[[4-"-}!=  ? ?!- !-? ?4 4 
!-F [VvrlB%7"('!2  4 4[Vb!W--5 5 .-4 45 5 5rz   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
 edd          d             Zej                            dg d           d!             Zd"S )#Test_ttest_trimr  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  rB   g@r  r?   r<   r  g333333@r  r7  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rf   r  r   )rn   r*  r4  r  r  r  r  r  s           rx   test_ttest_compare_rz$Test_ttest_trim.test_ttest_compare_r  sR    @ "OAqtuMMM	6	2E2222//////rz   c                     g d}g d}t          j        ||dd          \  }}t          |dd           t          |d	d           d S )
N)r[   rW   r  r  r  ,   r[   rW   r  r  r  r  )rb   r  rW   r[   rQ     r  rb   r  rW   r[   rQ  r  r  g
ףp=
?Fr  gRbv?rn  r$  gOi?r  rn   r*  r4  r  r  s        rx   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7rz   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        rx   test_equal_varzTest_ttest_trim.test_equal_var)  sh    & DCCCCC!OAqr:::	6 3%@@@@	#5EBBBBBBrz   z	alt,pr,tr))rf  gjΜ>5?r  )rd  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  rk  r  r$  Nr  )rn   r  r  r  r*  r4  r  r  s           rx   test_alternativesz!Test_ttest_trim.test_alternativesC  sq     DCCCCC!OAqrU8;= = =	6////	2E222222rz   TzUses NumPy for pvalue, CIcpu_onlyr   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.rY   r   r  r  r   )r   r)   rf   r  r   r   NotImplementedError)rn   ro   r  r*  r4  s        rx   %test_permutation_not_implement_for_xpz5Test_ttest_trim.test_permutation_not_implement_for_xpW  s    G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   r3   r  )r   r   rf   r  )rn   r  r   s      rx   test_trim_bounds_errorz&Test_ttest_trim.test_trim_bounds_errora  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   r"  r   rz   rx   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  t,GHHH0 0 IH0 [V\\\227 7 327 7 7rz   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           ed/d01          d2                                                 Zd3S )4Test_ttest_CI)r4   r3   r3   r6   )r  )gͿe13@gv7?gę"Ͽg8 {M(?r  r%  r&  gv7?gx_?r  g
/?gD .ɿ)r3   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   r'  r(  g?JJ?gF?)r   r   r   g{?gads2ѿ)r3   r   r   gs"%οr  gW"?)r   r   r   gW"?r   r   r   g:T'?)r3   r   r   g:пrW   g0:5?r  g0:5?r8  g be?)r3   r   r   rk  r  r  FTr  r   r  r`  r9  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' rZ   r\   )rk  r  r  r   r   r3   r  r|  rl  r  )r   xfailr)   rA  r   r  r  rd   rf   r  r   r!  ceilr1   r  rA  r  rV  rY  rZ  )rn   rk  r  r  ro   r  rq   rr   r   r[  r  r  rA  r  rY  rZ  rm  rt  s                     rx   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rz   N)r   r   r   r   r  r   r  rm   r   r   r  r   r-  r   rz   rx   r$  r$  h  s       < 	|$$$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..k*JKKKB B LK /. 98 NMB B Brz   r$  c            	      &   t           j                            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 )
Nl   e~Z )r6   r5   r5   r4   r   r7   r  r`   rS   r  )N.r  c              3   4   K   | ]}t          |          V  d S r[  r_  r  s     rx   r  z.test__broadcast_concatenate.<locals>.<genexpr>  s(      55588555555rz   )r   r  r  r   r  r   r  )r  r*  r4  r.  indexr  r]  rO  rJ  r`  ra  s              rx   test__broadcast_concatenater1    sH    )



+
+C

%&&A

?##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rz   c                   j   e Zd Z eej                  d             Zej        	                    d          ej        	                    d          d                         Z
d Zd Zej                            d ej        d          d	f ej        d
          dfg          d             Zd Zd ZdS )TestTTestIndc                 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 )Nr{  r	  g9(?geFr  r  r  gJ?g9ʿr  g@[?gωұ?ghG?r   r  r  r6   r  r   )rT   r  rS   )rd   rf   r  r1   r  r  r  r  r   r  r  )rn   ro   r*  r4  r  r  r+  rA  	tr_uneq_n	pr_uneq_nr  r  rvs3r  r  r  r  r   rR  s                      rx   test_ttest_ind_with_uneq_varz)TestTTestInd.test_ttest_ind_with_uneq_var  s    JJ|||$$JJ''ZZ+,,ZZ-..q!u555122);q!+<+<NNN122JJ'''((ZZ+,,ZZ-..q!u555122);q!+<+<NNN122 ZZ*++JJ233	ZZ+,,JJ233	"rc##"b""{{1c2&&{{1c3''{{1c3''((D$<((((D$<((tTUCCC122);tT+B+BTeTT122tTUCCC19%%%9%%%);tT+B+BTeTT19%%%9%%%ogieLLLu---
E***79gi00($@%@@u---
E***ogwQ%HHHu---
E***7G!444($@%@@u---
E*****rz   0ignore:divide by zero encountered:RuntimeWarning/ignore:invalid value encountered:RuntimeWarningc                 
   |                     d          }|                    d          }t          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 )Nr4   r  r=  Fr5  r   r   r  r   r_   r{  r   )r   r  r'   r   rf   r  r2   rd   r  r   r  rm   )rn   ro   rq   rr   r+  rA  r  s          rx   test_ttest_ind_zero_divisionz)TestTTestInd.test_ttest_ind_zero_division  s<    HHQKKGGAJJ/HRPPP 	: 	:?1a5999DAq	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	2::rvg..///2::b>>***[X&&& 		9 		9?1a5999DAqArzz"&11222Arzz"&11222 ::26{RG455D?4&)9)9UKKKDAqArzz2rv,77888Arzz2rv,77888		9 		9 		9 		9 		9 		9 		9 		9 		9 		9 		9 		9 		9 		9 		9 		9 		9 		9s%   A))A-0A-DG88G<?G<c                 ~   t           j        dddg}g d}t          j        ||d          }t          j        ||d          }t	          |j        |j         d           t	          |j        |j        d           t          j        ||d	d                    }t	          ||d           t	          |d
d           d S )Nr   r   r   r  r   r   r#  r$  r   )g8HgW@?)r   rm   rf   r  r   r  r  )rn   rq   rr   r#  r$  r  s         rx   test_ttest_ind_nan_2nd_argz'TestTTestInd.test_ttest_ind_nan_2nd_arg6  s    VS#s#   _Qf555_Qf555r|m%@@@@	2959999 _Q!""&&BU++++ 	G"	$ 	$ 	$ 	$ 	$ 	$rz   c                    t          t          t          |          5  t          j        |                    g           |                    g                     }d d d            n# 1 swxY w Y   t          |t          j        j                  sJ |                    |j	                  d         }t          |j        |           t          |j        |           d S )Nr=  r   )r'   r   r   rf   r  rd   r  r  r  rm   r2   r  r  rn   ro   r   r  s       rx   #test_ttest_ind_empty_1d_returns_nanz0TestTTestInd.test_ttest_ind_empty_1d_returns_nanK  s    +3HRPPP 	B 	B/"**R.."**R..AAC	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B#u:;;;;;jj  $s+++
C(((((s   <A%%A),A)r  r  r  r  r  c                    |                     d          }|                    ||j                  }t          j                    5  t          j        d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 )Nr  rH   r   r_   rS   r:  )r  rd   rI   r   r   r   r   r   rf   r  r  r  r  r   rm   r2   r  r  )rn   r4  r  ro   r*  r   r  s          rx   test_ttest_ind_axis_size_zeroz*TestTTestInd.test_ttest_ind_axis_size_zeroU  s    HHYJJqJ(($&& 	1 	1#H.CEWXXX/!QR000C	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 #u:;;;;;BFCC~666
N33333s   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  rf   r  r  r  r  r  r  r  rn   ro   r*  r4  r   s        rx    test_ttest_ind_nonaxis_size_zeroz-TestTTestInd.test_ttest_ind_nonaxis_size_zerog  s    
 HHYHHYoa+++#u:;;;;;}"V++++z6))))))rz   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   r8   r   r  r   rS   r  rG  rH  s        rx   2test_ttest_ind_nonaxis_size_zero_different_lengthsz?TestTTestInd.test_ttest_ind_nonaxis_size_zero_different_lengthss  s     HHYHHYoa+++#u:;;;;;}"V++++z6))))))rz   N)r   r   r   r.   rf   r  r9  r   r   r   r>  r@  rC  r  r   r  rE  rI  rK  r   rz   rx   r3  r3    s3       u122N+ N+ 32N+` [:  [9 9 9  9,$ $ $*) ) ) [0&bhy116:%RXi00&9;< <4 4< <4
* 
* 
** * * * *rz   r3  c                       e Zd Zej                            dd          d             Zej                            d          d             ZdS )TestTTestIndFromStatsTz"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   r3   r4   r5   r6         r     )rd   rf   r  )rn   ro   mean1mean2std1std2nobs1nobs2s           rx   test_gh5686z!TestTTestIndFromStats.test_gh5686  s     zz1a&))2::q!f+=+=uZZA''QF););dzz3*--rzz3*/E/Eu"5$udEJJJJJrz   r;  c           	         |                     d          }|                     d          }|                     |j                  }t          j        ||||||d          }t	          |j        |           t	          |j        |           d S )Nr   r   Fr5  )rd   rm   rf   r  r2   r  r  )rn   ro   rn  sixr  r   s         rx   %test_ttest_ind_from_stats_inputs_zeroz;TestTTestIndFromStats.test_ttest_ind_from_stats_inputs_zero  s     zz"~~jjnnjj  (tS$c38: : :s+++
C(((((rz   N)	r   r   r   r   r   r   rX  r   r[  r   rz   rx   rM  rM    s        [!!$'K " M MK KM MK [ QRR) ) SR) ) )rz   rM  TzTest uses ks_1sampr  rR  rS  c                 l   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          |j        |                     d                     t          |j        |                     d                     d S )Nl   bQ )rb  r3   r  )rb  r   r  Tr_   )r  rT   r  r  r$  )r   r   rL   r=   r5  gzNd?gJ?)r   r  r  rd   r  rw  rf   r  r  r  r  r   quantiler1   r  )ro   r  rq   rr   r  r   r  s          rx   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
 ::lll##RZZ%6%6qA
/!Q$
/
/
/CCM2::o#>#>???CJ

> : :;;;;;rz   c                     |                     |dk              }|                     |dk              }| dk     |z  | dk    |z  z  }|                    ||dz  d|dz  z
            S )Nrd  rf  r   r3   r   )rd   r  )r+  rA  r  ro   rd  rf  r  s          rx   _convert_pvalue_alternativer`    sl     ::cVm$$Djj	)**G
a%4QUg-.A88AqsA!G$$$rz   c                 J
   t           j                            d          }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 )Ni@rY   r  r  r6   rY   r0  r   r   rS   r   r-  rl  r  r3   )r   r   r   r   rf  rj  rd  r   r=  r.  )r   r  r  rf   r  r  rd   r  r   r1   r   r  r2   r  r  r`  r  r  rm   r  )ro   r  rY  rZ  n3rvn1r=  r  r  r  p2r  p3r+  rA  r  r  pcr   r  s                       rx   test_ttest_1samp_newrh    s*   
 )


)
)CJBB:>>arR3>OOD::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TTTz(Only NumPy has nan_policy='omit' for nowr   c                    t           j                            d          }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 )Nl   U] )r6   rY   r  r6   rY   r0  r   r3   r   r4   r5   r9   r   r   r   rf  r  rd  )r   r  r  rf   r  r  rd   rm   r   r`  r1   )ro   r  rY  rZ  rc  rd  r  r  r+  rA  rg  s              rx   test_ttest_1samp_new_omitrj     s   
)



+
+CJBB:>>arR3>OOD::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rz   r`  r9  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 |                                \  }}|                     |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.)r6   r3   r  r   r  )r=  rT   )r6   r   r  )r6   r  rS   g?rH   )r   r  r  rd   r   r   r   rf   r   r  r  rV  rI  r}  r   r  r1   )	ro   r  rq   r  r=  r   rJ  r  r  s	            rx   test_ttest_1samp_popmean_arrayrl    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='))))""$$DAq
qr""A
qr""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j                            d          ej                            d          d                         Zd Zd Zd Z	d Z
d Zd	 Zd
 ZdS )TestDescriberR  rS  c                 @   t          j                    5  t          j        dd          5  t          j        ddt
                     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   r   rf   describerd   r2   rm   )rn   ro   ra  r  r`  r  skkurts           rx   test_describe_scalarz!TestDescribe.test_describe_scalar9  s    $&& 	G 	Gk(8<<<	G 	G#=~O O O$)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;BB	BB	BB"%B"c                 ,   |                     |                    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.  r3   r5   r   r6   r   r   r   r   r   r   r   r   ffffff?ry  ry  ry  )r  r  r  r  H,p ?r5   TUUUUUr   r   rl  rS   )r  r  r   rd   rf   rp  r2   r1   r   rI   epsr   rn   ro   rq   ncmmcmcvcskckurtcra  r  r`  r  rq  rr  s                  rx   test_describe_numbersz"TestDescribe.test_describe_numbersI  st   IIrwwv(;(;<==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$$$$$rz   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   r:   )r:   )r   r   r   rC   r   gGzr   r   r\   r  )r   r   rm   rf   rp  r   r   )rn   rq   r~  r  r  r  r  r  ra  r  r`  r  rq  rr  s                 rx   describe_nan_policy_omit_testz*TestDescribe.describe_nan_policy_omit_testc  s    IcNNv!!C# %qV D D D2q!RQRQQ!"c***!$r::::::rz   c                    |                     d          }|                    |dk    |j        |          }t          |          rJt	          j        t          d          5  t          j        |d           d d d            n# 1 swxY w Y   nIt	          j        t          d          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|                                  nXt          |          rIt	          j        t          d          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:   not supported for lazy arraysr   r   r   r   rW  r   rY   r   r   r   r   r   )r   r  rm   r(   r   r   r  rf   rp  r   rd   r2   r)   r  )rn   ro   rq   ra  r  r`  r  rq  rr  r  r  s              rx   test_describe_nan_policy_otherz+TestDescribe.test_describe_nan_policy_othert  s7   IIcNNHHQT261%% 	6y0OPPP 6 6qW55556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 z1PQQQ 6 6qW55556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 !&q[ I I I2q!Rjj  $Bwwww1s###1s###33C   c"""B<< 	5..00001 	5y0OPPP 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 	3sH    BB
B*CCCG::G>G>"II
I
c                 v    t          j        t          j        d                    }d}t	          ||           d S )NrL   )r  minmaxri   variancer  r  )rf   rp  r   r   r   )rn   r  r   s      rx   test_describe_result_attributesz,TestDescribe.test_describe_result_attributes  s6     	"..S
FJ/////rz   c                    |                     |                    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.  ru  r   r6   rv  rw  rx  )Q?r  r  r  rz  r5   r{  r   r  r   r  r  r   rd   rf   rp  r2   r1   r}  s                  rx   test_describe_ddofzTestDescribe.test_describe_ddof  sm   IIrwwv(;(;<==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$$$$$rz   c                    |                     |                    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.  ru  r   r  r   ry  ga+?gE,p ?gUUUUUUrS   r   r   r  r}  s                  rx   test_describe_axis_nonez$TestDescribe.test_describe_axis_none  sC   IIrwwv(;(;<== zz#

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

.// !&qt < < <2q!RBwwww1s1v&&&1s1v&&&22C   e$$$$$rz   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   rf   rp  rd   r  s      rx   test_describe_emptyz TestDescribe.test_describe_empty  s    0]:W555 	+ 	+N2::b>>***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+r  N)r   r   r   r   r   r   rs  r  r  r  r  r  r  r  r   rz   rx   rn  rn  7  s        [ VWW[ WXX2 2 YX XW2% % %4; ; ;"3 3 3>0 0 0% % %"% % %,+ + + + +rz   rn  c                   `    e Zd Zej                            dg d          d             Zd ZdS )NormalityTestsrk  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   >   rd  rf  >   skewtestkurtosistestrd  r3   r  rk  z,`alternative` not available for `normaltest`)r  r_   r   r   r3   r   r  r_   r   r   r3   r   r  r_   r   r   r3   r   r  r_   r   r   r3   r   r  rj  )		test_namerE  rf   rd   case_refr   rA  r1   r   )rn   rk  ro   r  r  r  r&  rS  rq   r   res_statistic
res_pvalues               rx   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@@@@@@rz   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  rH   r  r   r  )rE  rf   r  r   rd   rm   rI   r  r   r  r2   r  r  )rn   ro   r  rq   r  r   s         rx   test_nanzNormalityTests.test_nan  s    5$.11IIcNNjjqwj//HHQ"Wc1%%[*** 	- 	-(1++CCM3///CJ,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   6CCCN)r   r   r   r   r   r  r  r  r   rz   rx   r  r    sZ        [],L,L,LMMA A NMA<	- 	- 	- 	- 	-rz   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   rb  {   )r*  r  r  rf  rj  r   rH   g?̔>r$  )rf   skewnormr  rd   r  r  r1   rI   )rn   ro   r  a1_xpro  s        rx   test_intuitivezTestSkewTest.test_intuitive  sq    ^!%cBB

2~e;;;BbjjEKj@@tLLLLLLrz   c                    t          j        |                    d                     |                    d          }t          t          t
          |          5  t          j        |          }|                    |j                  }t          |j	        |           t          |j
        |           d d d            d S # 1 swxY w Y   d S )Nr   r   r=  )rf   r  r   r'   r   r   rd   rm   r2   r  r  rn   ro   rq   r   r  s        rx   "test_skewtest_too_few_observationsz/TestSkewTest.test_skewtest_too_few_observations   s     	ryy~~&&&IIcNN+3HRPPP 	- 	-.##C**RV$$CCM3///CJ,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   AB??CCN)r   r   r   r  r  r  r  r   rz   rx   r  r    s?        I9HM M M- - - - -rz   r  c                   (    e Zd ZdZdZd Zd Zd ZdS )TestKurtosisTestr  )gglg2J@?c                     t           j                            dd          }|                    |          }t          j        |d          j        }t          ||                    d|j                  d	           d S )
Nrb  r  )r  r  rf  rj  r   rH   r#  r$  )rf   laplacer  rd   r  r  r1   rI   )rn   ro   r  a2_xpro  s        rx   r  zTestKurtosisTest.test_intuitive  sp    ]E<<

2!%Y???FbjjEKj@@uMMMMMMrz   c                     g d}t          j        d t          |          D                       }|                    ||j                  }t          j        |          d         dk     sJ d S )N)
r  r   :   r8   r   )   r   r   r      c                 >    g | ]\  }}t          j        ||          S r   )r   r   )r\  r  r.  s      rx   r^  z;TestKurtosisTest.test_gh9033_regression.<locals>.<listcomp>  s&    CCCArwq!}}CCCrz   rH   r   r  )r   hstack	enumeraterd   r   rf   r  )rn   ro   rH  rq   s       rx   test_gh9033_regressionz'TestKurtosisTest.test_gh9033_regression  ss     766ICC61B1BCCCDDJJq
J++!!$$Q'$......rz   c                    t          j        |                    d                     t          t          t
          |          5  t          j        |                    d                    }|                    |j                  }t          |j	        |           t          |j
        |           d d d            d S # 1 swxY w Y   d S )NrL   r=  r   )rf   r  r   r'   r   r   rd   rm   r2   r  r  rB  s       rx   &test_kurtosistest_too_few_observationsz7TestKurtosisTest.test_kurtosistest_too_few_observations"  s     	299S>>***+3HRPPP 	- 	-$RYYr]]33C**RV$$CCM3///CJ,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-   A,B==CCN)r   r   r   r  r  r  r  r  r   rz   rx   r  r    sN        I:HN N N/ / /	- 	- 	- 	- 	-rz   r  c                       e Zd ZdZdZd ZdS )TestNormalTest
normaltest)gاc@g?c                    t          j        |                    d                     t          t          t
          |          5  t          j        |                    d                    }|                    |j                  }t          |j	        |           t          |j
        |           d d d            d S # 1 swxY w Y   d S )Nr   r=  r   )rf   r  r   r'   r   r   rd   rm   r2   r  r  rB  s       rx   test_too_few_observationsz(TestNormalTest.test_too_few_observations3  s    2''' +3HRPPP 	- 	-"299R==11C**RV$$CCM3///CJ,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-r  N)r   r   r   r  r  r  r   rz   rx   r  r  .  s-        I9H- - - - -rz   r  c                       e Zd Zej                            d          Ze                    d          \  ZZe	j
                            dg d          d             Zd Zd ZdS )	TestRankSums   hZ r3   rY   rk  r  c                     t          j        | j        | j        |          j        }t          j        | j        | j        d|          j        }t          ||           d S )Nrj  F)use_continuityrk  )rf   ranksumsrq   rr   r  mannwhitneyur   )rn   rk  r  r  s       rx   test_ranksums_result_attributesz,TestRankSums.test_ranksums_result_attributesC  sk     ~dfdf*57 7 77= 	!$&$&.9; ; ;;A 	d#####rz   c                 d    t          j        | j        | j                  }t	          |d           d S )Nr  )rf   r  rq   rr   r   r  s     rx   test_ranksums_named_resultsz(TestRankSums.test_ranksums_named_resultsL  s.    nTVTV,,C!899999rz   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   rj  )r   r   rf   r  rq   rr   r6  s    rx   r  z"TestRankSums.test_input_validationP  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  r  rq   rr   r   r   r  r  r  r  r   rz   rx   r  r  >  s        
)



+
+C::gDAq[],L,L,LMM$ $ NM$: : :A A A A Arz   r  c                   p    e Zd Zd Z ed          d             Z edd          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   )rd   rf   jarque_berar1   r  r  )rn   ro   rq   r  r   s        rx   test_jarque_bera_against_Rz)TestJarqueBera.test_jarque_bera_against_RW  s{    
; ; ;JJqMMjj*O<==""s1v...
CF+++++rz   Tra  c                 6   t           j                            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 )Nl   uT r  r  r3   P  )r   r  r  rC  rf   r  r  tuplerh   r  r  )rn   ro   r  rq   jb_test1JB1r  jb_test2JB2re  jb_test3JB3rf  s                rx   test_jarque_bera_array_likez*TestJarqueBera.test_jarque_bera_array_liked  sH    i##J//V,,".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Vrz   array_api_strictzNoisy; see TestSkewr  c                 R   |                     g           }t          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 r}  )rd   r   r  r   r   rf   r  rm   r2   r  r  r  s        rx   %test_jarque_bera_too_few_observationsz4TestJarqueBera.test_jarque_bera_too_few_observationsq  s    JJrNN\,4IJJJ 	- 	-#A&&C**RV$$CCM3///CJ,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   ABB #B 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  )r3   r  r  rS   r  r   r   )r   r  r  rd   rf   r  rh   r2   r  r  r1   r  r   )rn   ro   r  rq   r   r  s0r  s1r  resTs              rx   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rxxR'9'9:::
BHHb"X$6$6777 1---t~666
DK00000rz   N)r   r   r   r  r   r  r  r<  r   rz   rx   r  r  U  s        , , , d###
W 
W $#
W (1FGGG- - HG-1 1 1 1 1rz   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  r  g333333@ffffff@g333333@r?   r  皙	@r   rN  rN  r>   r!  ffffff@ @333333?r  r=   ?r  r  r  r  r=  r  r  r<   r  r  r  r   g/"?r6   r  )r   rf   pointbiserialrr   r   r  r  )rq   rr   r   r   s       rx   test_pointbiserialr    s    	 	 	A	& 	& 	&A ,Q2215wBBB +J

q!
$
$CZ(((#-00000rz   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   r3   r5   )r8   r  r8   r   )r   r4   r7   r:   )rQ  r   r   rQ  r6   )㪪@I?g&>ڿr  r  )5@㪪@gIr  r  r3   r9   r  rZ   )r6   rZ   r:   r4   r3   r3   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r5   )
r   r   rf   obrientransformr   r   r   r   r  r  )r  r  r  r  r  r*  r4  r.  rs  valuesrepsrr  transformed_valuess                rx   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======rz   r|  )rT   rI   rm  weightsc                 T   |p| j         }t          |          dk    r|\  }}n|\  }}	}|                     ||          }|                     ||          }||                     ||          n|}t          |          dk    r|fn||	f} |||||d}
t          |
||           d S )Nr3   rH   )rT   rI   r  rl  )r   r  rd   r1   )ro   mean_funrT   rI   rm  r  rR  
array_liker  rA  rq   s              rx   check_equal_xmeanr    s     RZE
4yyA~~"
GG!%
AwJe44Jjjj..G292Ebjjj...7GIINNJ==QD$T@@@AAwT******rz   c                  2    t          | dt          j        i|S Nr  )r  rf   r  rR  rS  s     rx   check_equal_gmeanr        dCU[CFCCCrz   c                  2    t          | dt          j        i|S r  )r  rf   hmeanr  s     rx   check_equal_hmeanr	    r  rz   c                  2    t          | dt          j        i|S r  )r  rf   pmeanr  s     rx   check_equal_pmeanr	    r  rz   c                      e Zd Zej                            d          d             Zd Zej                            d          ej                            d          d                         Zej                            d          d             Z	d Z
d	 Zej                            d          d
             Zd Zej                            d          d             Z edd          d             Zd Zd Zd Zed             ZdS )	TestHMeanrS  c                 6    g d}d}t          |||           d S N)r   r   r3   r   rj  r	  rn   ro   r*  r  s       rx   test_0zTestHMean.test_0  s+    II!W,,,,,,rz   c                 f    g d}d}t          |||           g d}d}t          |||           d S )Nrh  g=b#A@rj  ri  gQ?r
	  r	  s       rx   test_1dzTestHMean.test_1d  sP    555!W,,,,LL:!W,,,,,,rz   rR  c                 \    t          j        ddg          }d}t          |||d           d S )Nr   r   r   ro   rm  r   r   r	  r	  s       rx   test_1d_with_zerozTestHMean.test_1d_with_zero  s9     HaV!W#666666rz   r:  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   r_   z$The harmonic mean is only defined...r   r   r	  )r   r   r   r  r   r	  rm   )rn   ro   r*  r  s       rx   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rY   r  rQ  rR  r  r  ri  r  r[  r  rn  x   gmWUC@rj  )r	  r   r   r	  s       rx   test_2dzTestHMean.test_2d
  sJ    ///1D1D1DE"(1++w2666666rz   c                 n    g dg dg dg}t          j        g d          }t          ||d|           d S )Nr	  r	  r	  )U|ϊ6@g4.=C@JQ6LsJ@E]P@r   rT   ro   r	  r	  s       rx   test_2d_axis0zTestHMean.test_2d_axis0  sU    ///1D1D1DE(OOOPP!W1444444rz   c                 n    g dg dg dg}t          j        g d          }t          ||d|           d S )NrY   r   rQ  rR  r	  r	  )r	  r   r	  r	  r   r 	  r	  r	  s       rx   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4rz   c                 n    g dg dg dg}t          j        g d          }t          ||d|           d S )Nr	  r	  r	  )g3333333@O@y@Y@r   r 	  r	  r	  s       rx   test_2d_axis1zTestHMean.test_2d_axis1  sU    ///1D1D1DE(<<<==!W1444444rz   c                 n    g dg dg dg}t          j        g d          }t          ||d|           d S )Nr#	  r	  r	  )r   r&	  r'	  r   r 	  r	  r	  s       rx   test_2d_axis1_with_zeroz!TestHMean.test_2d_axis1_with_zero"  sS    __...0C0C0CD(;;;<<!W1444444rz   T,array-likes only supported for NumPy backendr   c                     g d}g d}d}t          j        ||          }t          |t          j        |          d           d S )Nr3   rY   r7   rY   r6   r4   r   r  r  rl  )rf   r	  r1   r   rd   rn   ro   r*  r  r  r   s         rx   test_weights_1d_listzTestHMean.test_weights_1d_list(  sV     JJ** k!W---RZ00t<<<<<<rz   c                     t          j        g d          }t          j        g d          }d}t          |||d|           d S )Nr-	  r.	  r4   r  r  rm  ro   )r   rd   r	  rn   ro   r*  r  r  s        rx   test_weights_1dzTestHMean.test_weights_1d8  sN     Jzzz""*ZZZ((!WgDRHHHHHHrz   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 )
Nr3   r6   rY   r7   r   r4   r   r  rT   r  rm  ro   r	  r4	  s        rx   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Prz   c                     t          j        g dg dg          }t          j        g dg dg          }t          j        ddg          }t          ||d|d|	           d S )
Nr-	  r8   r8   r8   r.	  r8  r4   r8   r   r  r7	  r	  r4	  s        rx   test_weights_2d_axis1zTestHMean.test_weights_2d_axis1H  sp     Hjjj))),--(JJJ			233(Aq6""!W1gDRPPPPPPrz   c                     t          j        g d          }t           j                            g dg d          }d}t           j        }t          |||dt           j        |           d S )Nr3   rY   r7   r  rY   r6   r4   r  r   r   r   r   r  r4   r  r  rm  rI   ro   )r   r   r  r	  r   r4	  s        rx   test_weights_masked_1d_arrayz&TestHMean.test_weights_masked_1d_arrayP  sr     H^^^$$%++nnn<<<+@@U!WgD "
r	3 	3 	3 	3 	3 	3rz   N)r   r   r   r   r   r   r	  r	  r	  r	  r	  r!	  r$	  r(	  r*	  r   r1	  r5	  r8	  r;	  r%   rA	  r   rz   rx   r	  r	    s       [ WXX- - YX-
- - - [ WXX[ VWW7 7 XW YX7
 [: : : :7 7 75 5 5 [ WXX5 5 YX5
5 5 5 [ WXX5 5 YX5
 =  
= 
=	 
=I I IQ Q QQ Q Q 3 3 3 3 3rz   r	  c                   F   e Zd Zej                            d          d             Zd Zd Zd Z	d Z
d Zej                            d          d             Zej                            d	          d
             Z edd          d             Zd Zed             ZdS )	TestGMeanz<ignore:divide by zero encountered in log:RuntimeWarning:daskc                 6    g d}d}t          |||           d S r		  r  r	  s       rx   r	  zTestGMean.test_0^  s-     II!W,,,,,,rz   c                    g d}d}t          |||           g d}t          dd          }t          ||d|           t          g dt                    }t          dd          }t          |||j        |	           d S )
Nrh  gsŤF@rj  ri  r  r  r-  rm  ro   r  )r  r   r   r   r	  s       rx   r	  zTestGMean.test_1df  s    555!W,,,,LLw//!W5R8888,,,((w//!WBJ2>>>>>>rz   c                 D    g dg dg dg}d}t          |||           d S )Nr	  r	  r	  g/,$qJ@rj  rE	  r	  s       rx   r	  zTestGMean.test_2du  sB    ///1D1D1DE!W,,,,,,rz   c                     g dg dg dg}t          j        g d          }t          ||d|           t          g dg dg dg          }t          g d          }t          ||dd|	           d S )
Nr	  r	  r	  )g4@A@g5H@g`8|wЭN@gm~&+R@r   r 	  ri  r-  rT   rm  ro   r   r   r  r	  s       rx   r!	  zTestGMean.test_2d_axis0{  s    ///1D1D1DE(NNNOO!W14444<<<|||<==%%!W15R@@@@@@rz   c                 
   g dg dg dg}t          j        g d          }t          ||d|           t          g dg dg dg          }t          dd	          }t          |||g          }t          ||dd
|           d S )Nr	  r	  r	  )gD" 6"6@gcP@g
ҧZ@r   r 	  ri  r  r  r-  rJ	  )r   r   r  r   )rn   ro   r*  r  r  s        rx   r(	  zTestGMean.test_2d_axis1  s    ///1D1D1DE(CCCDD!W14444<<<|||<==-))Aq	""!W15R@@@@@@rz   c                 R    t          g d          }d}t          ||d|           d S )N)g}Ô%ITrP  gu <7~rP  r  rG	  )r   r  r	  s       rx   test_large_valueszTestGMean.test_large_values  s8    '''((!W5R888888rz   c                     g d}d}t          j        d          5  t          |||           d d d            d S # 1 swxY w Y   d S )N)
rY   r  rQ  rR  r  r  ri  r  r[  r   r   r   r=  rj  )r   r  r  r	  s       rx   test_1d_with_0zTestGMean.test_1d_with_0  s    
 4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 z;ignore:invalid value encountered in log:RuntimeWarning:daskc                     g d}t           j        }t          j        d          5  t          |||           d d d            d S # 1 swxY w Y   d S )N)
rY   r  rQ  rR  r  r  ri  r  r[  r_   r   r  rj  )r   rm   r  r  r	  s       rx   test_1d_negzTestGMean.test_1d_neg  s    
 5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
Tr+	  r   c                     g d}g d}d}t          j        ||          }t          |t          j        |          d           d S )Nr  r3   r6   r7   r5   r4   GZ*oG8@r/	  r  rl  )rf   r  r1   r   rd   r0	  s         rx   r1	  zTestGMean.test_weights_1d_list  sV     OO!//
 k!W---RZ00t<<<<<<rz   c                     t          j        g d          }t          j        g d          }d}t          |||d|           d S )Nr  rT	  rU	  r  r3	  rK	  r4	  s        rx   r5	  zTestGMean.test_weights_1d  sN     H___%%(???++!WgDRHHHHHHrz   c                     t          j        g d          }t           j                            g dg d          }d}t           j        }t          |||dt           j        |           d S )Nr  )r3   r6   r7   r5   r4   r6   )r   r   r   r   r   r   r  rU	  r  r@	  )r   r   r  r  r   r4	  s        rx   rA	  z&TestGMean.test_weights_masked_1d_array  s{     H'''((%++0007I7I7I+JJU!WgD "
r	3 	3 	3 	3 	3 	3rz   N)r   r   r   r   r   r   r	  r	  r	  r!	  r(	  rN	  rP	  rR	  r   r1	  r5	  r%   rA	  r   rz   rx   rC	  rC	  \  s`       [F - - -
? ? ?- - -A A A	A 	A 	A9 9 9
 [F 1 1 1 [E 1 1 1 =  = =	 =I I I 3 3 3 3 3rz   rC	  c            
          e Zd Zd Zd Zd Zd Zej        	                    d          ej        	                    d          d                         Z
d Zej                            d	d
dgddgddggdf ej        d
dgddgddgg          dfg          d             Zej                            d	g dg dg dgdfg dg dg dgdfg          d             Zej                            d	g dg dg dgdfg dg dg dgdfg          d             Zd Z edd          d             Zed             Zej                            dg d           d!             Zd" Zd#S )$	TestPMeanc                 L    t          j        | |z            | j        z  d|z  z  S rs  )r   r$  r  r*  rA  s     rx   pmean_referencezTestPMean.pmean_reference  s$    q!tqv%1--rz   c                 l    t          j        || |z  z            t          j        |          z  d|z  z  S rs  )r   r$  )r*  rA  r  s      rx   wpmean_referencezTestPMean.wpmean_reference  s0    wA~&&8AaC@@rz   c                     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   r  r   )r   r   r   rf   r	  rd   rJ  s     rx   test_bad_exponentzTestPMean.test_bad_exponent  s    ]:-JKKK 	@ 	@K

999--rzz1#???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   ?A((A,/A,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 )Nrh  r?   rj  g      ri  r3   rC   )rY	  r\	  r   r   r	  r'  rn   ro   r*  rA  r  s        rx   r	  zTestPMean.test_1d  s    888#1++BHQKK;;!QB////888$1++BHQKK;;!QB////||Q1'9::!QB//////rz   rR  rS  c                 b    t          j        ddg          d}}d}t          |||d|           d S )Nr   r   r_   r   rG	  )r   r   r	  rb	  s        rx   r	  zTestPMean.test_1d_with_zero  s?     xA1!Qcb999999rz   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   rj  )r   r   r   r  r   r	  rm   )rn   ro   r*  rA  r  s        rx   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 r[	  rY   r  r  r  r[  r  r  r<   c                     t                               t          j        |          |          }t	          ||||           d S )Nrj  )rY	  r\	  r   r   r	  rn   r*  rA  ro   r  s        rx   test_2d_axisnonezTestPMean.test_2d_axisnone  s>     ++BHQKK;;!QB//////rz   r	  r	  r	  r#	  c                     fdt          t          d                             D             }t          |d|           d S )Nc                     g | ]Vt                               t          j        fd t	          t                              D                                 WS )c                 ,    g | ]}|                  S r   r   )r\  r  r*  r]  s     rx   r^  z6TestPMean.test_2d_axis0.<locals>.<listcomp>.<listcomp>  s!    999a!A$q'999rz   )rY	  r\	  r   r   r  r  )r\  r]  r*  rA  s    @rx   r^  z+TestPMean.test_2d_axis0.<locals>.<listcomp>  so     
 
 
  %%999995Q==999::A 
 
 
rz   r   r 	  )r  r  r	  rg	  s    ``  rx   r!	  zTestPMean.test_2d_axis0  sf    
 
 
 
 
 3qt99%%	
 
 
 	!QaB777777rz   c                 L    fd|D             }t          ||d|           d S )Nc                 j    g | ]/}t                               t          j        |                    0S r   )rY	  r\	  r   r   )r\  a_rA  s     rx   r^  z+TestPMean.test_2d_axis1.<locals>.<listcomp>  s1    JJJ"9,,RXb\\1==JJJrz   r   r 	  )r	  rg	  s     `  rx   r(	  zTestPMean.test_2d_axis1  s>     KJJJJJJ!QaB777777rz   c                     g dd}}g d}t                               t          j        |          ||          }t	          ||||d|           d S )Nr-	  ރBr.	  r  r3	  )rY	  r^	  r   r   r	  rn   ro   r*  rA  r  r  s         rx   r5	  zTestPMean.test_weights_1d  sX    zz;1**,,RXa[[!WEE!QtKKKKKKrz   Tr+	  r   c                     g dd}}g d}t                               t          j        |          ||          }t	          j        |||          }t          |t          j        |          d           d S )Nr-	  rp	  r.	  r/	  r  rl  )rY	  r^	  r   r   rf   r	  r1   rd   )rn   ro   r*  rA  r  r  r   s          rx   r1	  zTestPMean.test_weights_1d_list  sv    
 zz;1**,,RXa[[!WEE k!Q000RZ00t<<<<<<rz   c           	         t          j        g d          d}}t           j                            g dg d          }t          j        ||          }t           j        }t	          ||||dt           j        |           d S )	Nr=	  r   r>	  r?	  r  r/	  r  r@	  )r   r   r  averager	  r   rq	  s         rx   rA	  z&TestPMean.test_weights_masked_1d_array)  s    x''1%++nnn<<<+@@*Q000U!Qt "
r	3 	3 	3 	3 	3 	3rz   )rT   fun_namerA  ))Nr^	  g3E#@)r   r  r   )r   r	  r_   c           	         |dk    rfd}nt          t          |          }t          j        ddgddgddgg          }t          j        ddgddgddgg          } ||||	          }t	          ||||d
|           d S )Nr^	  c                 <    t                               | |          S r[  )rY	  r^	  )r*  rT   r  rA  s      rx   funz&TestPMean.test_weights_2d.<locals>.fun:  s     11!Q@@@rz   r3   r6   rY   r7   r   r4   )rT   r  r  r7	  )rE  rf   r   r   r	  )	rn   rT   ru	  rA  ro   rx	  r*  r  r  s	      `     rx   test_weights_2dzTestPMean.test_weights_2d2  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Vrz   c                     d}t          j        t          |          5  t          j        dgt
          j                   d d d            d S # 1 swxY w Y   d S )Nz*Power mean only implemented for finite `p`r   r3   )r   r   r  rf   r	  r   r  r  s     rx   test_infinite_p_gh23111z!TestPMean.test_infinite_p_gh23111C  s     ?].g>>> 	% 	%KRV$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   !AAAN)r   r   r   r\	  r^	  r`	  r	  r   r   r   r	  r	  r  r   r   rh	  r!	  r(	  r5	  r   r1	  r%   rA	  ry	  r{	  r   rz   rx   rY	  rY	    s       . . .A A A@ @ @0 0 0 [ VWW[ WXX: : YX XW:
3 3 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 =  = =	 = 3 3 3 [!	 	 	 	W 	W 	W% % % % %rz   rY	  c            	          e Zd Z ej        d          dz                                   ZdZ ej        ed                                          Z	d Z
 edd          d	             Zed
             Zej                            d          ej                            d          ej                            dddej        ej        f          d                                     Zd Z edd          d             Zd Zd Zd Zd Zd ZdS )TestGSTDr  r   gv aZ@r  c                     t          j        |                    | j                            }t	          ||                    | j                             d S r[  )rf   r  rd   array_1dr1   gstd_array_1drn   ro   gstd_actuals      rx   test_1d_arrayzTestGSTD.test_1d_arrayR  sD    jDM!:!:;;RZZ0B%C%CDDDDDrz   Tz$Only NumPy supports array-like inputr   c                 |    t          j        t          | j                            }t	          || j                   d S r[  )rf   r  r  r	  r   r	  r	  s      rx    test_1d_numeric_array_like_inputz)TestGSTD.test_1d_numeric_array_like_inputV  s4    jt}!5!566T%788888rz   c                     d}t          j        t          t          f|          5  t	          j        d           d d d            d S # 1 swxY w Y   d S )Nz.could not convert string to float|The DType...r   z*You cannot take the logarithm of a string.)r   r   r   r  rf   r  r  s      rx   #test_raises_error_non_numeric_inputz,TestGSTD.test_raises_error_non_numeric_input[  s    B]J	2'BBB 	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ArS  rR  	bad_valuer   r_   c                    |                     | j        |gz             }t          j        |          rYt	          |          sJd}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   )rd   r	  r   r  r(   r   r  r   rf   r  r2   rm   )rn   r	  ro   rq   r  r   s         rx   test_returns_nan_invalid_valuez'TestGSTD.test_returns_nan_invalid_valuea  s     JJt}	{233;y!! 	 -*:*: 	 KGnG<<< $ $jmm$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ *Q--CRZZ//00000s   B  BBc                     |                     g d|j        dddgg          }t          j        |d          }t	          ||                     dt
          j        g                     d S )N)r   r   r   r   r   r3   r4   rS   r5   )rd   rm   rf   r  r1   r   )rn   ro   r*  r	  s       rx   test_propagates_nan_valuesz#TestGSTD.test_propagates_nan_valuesn  sc    JJ1a'89::j+++RZZBF%<%<=====rz   r`  z returns subnormal instead of nanr  c                     |                     | j                  }t          j        ||j        d                   }t          ||                     |j                             d S )Nr   r  )rd   r	  rf   r  r  r2   rm   r   s       rx   )test_ddof_equal_to_number_of_observationsz2TestGSTD.test_ddof_equal_to_number_of_observationss  sS    JJt}%%j,,,RZZ//00000rz   c                     |                     | j                  }t          j        |d           }|                     | j                  }t          ||           d S r  )rd   array_3drf   r  r	  r1   rn   ro   rq   r	  r  s        rx   test_3d_arrayzTestGSTD.test_3d_arrayy  sS    JJt}%%j...jj+,,S)))))rz   c                     |                     | j                  }t          j        |d          }|                     ddg          }t	          ||           d S )Nrm  rS   g~d@g<
?rd   r	  rf   r  r1   r	  s        rx   test_3d_array_axis_type_tuplez&TestGSTD.test_3d_array_axis_type_tuple  sU    JJt}%%j000jj*j122S)))))rz   c                     |                     | j                  }t          j        |d          }|                     g dg dg dg          }t	          ||           d S )Nr   rS   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?r	  rn   ro   rq   r	  gstd_desireds        rx   test_3d_array_axis_0zTestGSTD.test_3d_array_axis_0  st    JJt}%%j+++zzOOOOOOOOO#
  
 	\22222rz   c                     |                     | j                  }t          j        |d          }|                     g dg dg          }t	          ||           d S )Nr   rS   )gN@g85@g'ĥ?gwth?)gHnaX?gG?gBu?gE?r	  r	  s        rx   test_3d_array_axis_1zTestGSTD.test_3d_array_axis_1  sk    JJt}%%j+++zzLLLLLL#
   	\22222rz   c                     |                     | j                  }t          j        |d          }|                     g dg dg          }t	          ||           d S )Nr3   rS   )gt80?gі?g?)gۘ]~?gmT6(?g	G?r	  r	  s        rx   test_3d_array_axis_2zTestGSTD.test_3d_array_axis_2  sk    JJt}%%j+++zz??????#
   	\22222rz   N)r   r   r   r   r   r   r	  r	  rh   r	  r	  r   r	  r%   r	  r   r   r   r  r  rm   r	  r	  xfail_xp_backendsr	  r	  r	  r	  r	  r	  r   rz   rx   r}	  r}	  K  s        	)$$q(0022H"Mrz(I..5577HE E E d+QRRR9 9 SR9 E E E
 [ WXX[ VWW[[1b"&"&*ABB1 1 CB XW YX1> > >
 {+MNNN1 1 ON1
* * ** * *3 3 33 3 33 3 3 3 3rz   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  r6   r-  g?r>  ffffff?r  i  )r   r   gs  gG|G{g	ɺM>6g>
ztt+g#ӌRM/gF׸fz2gU8u5g8M8gФ)Ba?g%վ?g*+a5?gś?gڒJ|>r[   z
fail forp=)r  err_msgr  r  gVݶ3;r  )r   r  r  r  r
   rf   	binomtestr  )ppra  rq   r|  rA  r   s         rx   test_binomtestr	    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</$&( ( ( ( ( (rz   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   rZ   c                 F    g | ]}t          j        |d           j        S )r<   )rf   r	  r  r\  r  rO  s     rx   r^  z#test_binomtest2.<locals>.<listcomp>  s*    HHHa1c**1HHHrz   rY   r  )r  r   )r  r  rO  s     @rx   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 9rz   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 )r3   rZ   r   r  rf   r	  r  r	  s      rx   r^  z#test_binomtest3.<locals>.<listcomp>  s]     9 9 95B<<9 9&' OAqsBqD))0 9 9 9 9rz   r   rZ   )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 r3   rZ   r   r   r	  r	  s      rx   r^  z#test_binomtest3.<locals>.<listcomp>&  a     < < <eArll< <)* qsAaCA..5 < < < <rz   c           	      |    g | ]9}t          d d          D ]&}t          j        |dz
  ||z  d|z            j        ':S r	  r	  r	  s      rx   r^  z#test_binomtest3.<locals>.<listcomp>(  r	  rz   r\   r  )r  r   r   r  r  r!  r   r   )r  binom_testm1binom_testp1res4_p1res4_m1s        rx   test_binomtest3r	    s   9 91b\\9 9 9Drws4yy#../// 8 
 
 
  LP 8 
 
 
  L>< <a< < <G< <a< < <G r::::r::::::rz   c                       e 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 )NrZ   r  rY   r  r:   left)tailr3   tE]t?r4   r   r  r  r7   r5   r6   r   )r	  rT   rS   r   )r   r   r   sortrf   trim1rh   r   )rn   r*  r  rT   trimmeds        rx   
test_trim1zTestTrim.test_trim11  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8rz   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 )NrZ   r	  r4   r9   r  )r3   r4   r5   r6   r7   r8   r9   r  r7   r5   r  r3  )r3   r9   rW   r  )r4   r:   r  rV   r  r  )r   r   r   r	  rf   trimbothr   rh   r   r   r   )rn   r*  s     rx   test_trimbothzTestTrim.test_trimbothM  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2rz   N)r   r   r   r	  r	  r   rz   rx   r	  r	  /  s2        9 9 983 3 3 3 3rz   r	  c                       e Zd Zd Zej                            dd          ej                            dd          d                         ZdS )TestTrimMeanc                    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          |                    g d                     t	          t          j        |                    |          d          |                    g d	                     t          j        g d
          }t          j        d                              dd          |d d f         }t	          t          j        |                    |          d          |                    g d                     g d}t	          t          j        |                    |          d          |                    d                     t	          t          j        |                    g d          d          |                    d                     t           j        	                    d          }|
                    dd          }|                    |          }dD ]S}	t          j        |d|	          }
t          j        |                    ||	d          d          }t	          |
|           Tt          j        |dd           }
t          j        t          |          d          }t	          |
|           t          j        t          d          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )N)r4   r6   r   r   r3   r5   r  r7   r5   Fr  r3  )r>   rD   g      -@g     4@r  )r   r   r4   r3   )r   r   r5  r|  r  r  )r8   rZ   r[   rV   r   r7   r  r   r6   r   r  rY   rb   r:   r  r  rL  r  r3   rW   r5   r\   r9   r4   rX   )r6   r5   r4   r   r3   r   r>   r  r  )r6   r7   r5   r8   r  )r   r   r3   r4   r_   rS   r   zProportion too big.r   r  )r   r   r   rh   r2   rf   	trim_meanrd   r  r  r  r~  r/   r   r   r   )rn   ro   idxr  r  idx4a4r*  r  rT   r  r  s               rx   test_trim_meanzTestTrimMean.test_trim_meanb  sS   h)))**Yr]]""1a((aaa0Yr]]""1as"33CF;

2==

#9#9#9::	< 	< 	<

2==

#7#7#788	: 	: 	: x%%Yr]]""1a((qqq1

2==

#@#@#@AA	C 	C 	C% % %

1t<<bjj>N>NOOO

3E3E3E(F(FMM

3	) 	) 	) i##J//LL,L//JJqMM$ 	( 	(D?1d666D?2;;q$#:#:DAADD$''''q$T222x{{D11d###]:-BCCC 	$ 	$OAs###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   M&&M*-M*r`  lazy -> no _axis_nan_policyr  
dask.arrayc                    t          j        t          d          5  t          t	          j        |                    g           d          |                    |j                             d d d            n# 1 swxY w Y   t          j        t          d          5  t          t	          j        |                    g           d          |                    |j                             d d d            d S # 1 swxY w Y   d S )Nr9  r   r   r  )r   r  r   r2   rf   r	  rd   rm   rJ  s     rx   r  zTestTrimMean.test_empty_input  sv    \,K@@@ 	V 	VEOBJJrNNC@@"**RVBTBTUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V\,K@@@ 	V 	VEOBJJrNNC@@"**RVBTBTUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	Vs%   AA77A;>A;AC99C= C=N)r   r   r   r	  r   r   r   r  r   rz   rx   r	  r	  `  s~        %$ %$ %$P [!!+6S!TT[!!,7T!UUV V VU UTV V Vrz   r	  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestSigmaClipc                 <   |                     |                    ddd          |                    ddd          f          }d}t          j        |          \  }}}|                    |          |k    sJ |                    |          |k     sJ t          ||                    |          ||                    |          z  z
             t          ||                    |          ||                    |          z  z              |j	        |j	        k    sJ d S )Nr7  r^      r   r  r6   r5   
r  r  rf   	sigmaclipminmaxr2   ri   r   r  rn   ro   r*  factr.  rY  upps          rx   test_sigmaclip1zTestSigmaClip.test_sigmaclip1  s    IIr{{3b11{{2sA..0 1 1oa((3vvayy3vvayy3RWWQZZ$rvvayy.8999RWWQZZ$rvvayy.8999w!'!!!!!!rz   c                 P   |                     |                    ddd          |                    ddd          f          }d}t          j        |||          \  }}}|                    |          |k    sJ |                    |          |k     sJ t          ||                    |          ||                    |          z  z
             t          ||                    |          ||                    |          z  z              |j	        dk    sJ |j	        d	k    sJ d S )
Nr7  r^   r	  r   r  r6   r=   )r5   )$   r	  r	  s          rx   test_sigmaclip2zTestSigmaClip.test_sigmaclip2  s   IIr{{3b11{{2sA..0 1 1oat443vvayy3vvayy3RWWQZZ$rvvayy.8999RWWQZZ$rvvayy.8999w$w%rz   c                 f   |                     |                    ddd          |                    ddd          f          }d}t          j        |||          \  }}}|                    |          |k    sJ |                    |          |k     sJ t          ||                    |          ||                    |          z  z
             t          ||                    |          ||                    |          z  z              t          ||                    ddd                     d S )Nr7  r^   rZ         Y      Ir4   ?)	r  r  rf   r	  r	  r	  r2   ri   r   r	  s          rx   test_sigmaclip3zTestSigmaClip.test_sigmaclip3  s   IIr{{3b11{{5$224 5 5oat443vvayy3vvayy3RWWQZZ$rvvayy.8999RWWQZZ$rvvayy.89992;;sD"5566666rz   c                     |                     |                    ddd          |                    ddd          f          }d}t          j        |||          }d}t	          |||	           d S )
Nr7  r^   rZ   r	  r	  r4   r	  )clippedr  r  rj  )r  r  rf   r	  r   )rn   ro   r*  r	  r   r   s         rx    test_sigmaclip_result_attributesz.TestSigmaClip.test_sigmaclip_result_attributes  sw    IIr{{3b11{{5$224 5 5oat,,2
C333333rz   c                     |                     d          }t          t          j        |          d         |           d S )NrY   r   )r  r2   rf   r	  r   s      rx   test_std_zerozTestSigmaClip.test_std_zero  s6    GGBKK**1-q11111rz   N)r   r   r   r	  r	  r	  r	  r	  r   rz   rx   r	  r	    s_        	" 	" 	"
  
  
 	7 	7 	74 4 42 2 2 2 2rz   r	  c            	          e Zd Zd Z edd           edd          ej                            dddgg fddgdfddgdgfg          d	                                     Zej        	                    d
          d             Z
d Zd Zd Zd Z edd           edd          d                         Z edd           edd          d                         Z edd           edd          d                         Z edd           edd          ej                            dg d          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[   )	rW   r\   r[   r[   r[   r[   r[   rZ   rZ   )	rW   rW   r\   r\   r\   r\   r\   r[   r[   )	r  rW   r\   r\   r\   r[   r[   r[   rZ   c                 N    g | ]"}t          j        |t           j                   #S r  )r   rd   r   r\  args     rx   r^  z;TestAlexanderGovern.test_compare_dtypes.<locals>.<listcomp>  )    FFF#bjBH555FFFrz   c                 N    g | ]"}t          j        |t           j                   #S r  )r   rd   r  r
  s     rx   r^  z;TestAlexanderGovern.test_compare_dtypes.<locals>.<listcomp>  r
  rz   c                 N    g | ]"}t          j        |t           j                   #S r  )r   rd   r  r
  s     rx   r^  z;TestAlexanderGovern.test_compare_dtypes.<locals>.<listcomp>  r
  rz   c                 N    g | ]"}t          j        |t           j                   #S r  )r   rd   r   r
  s     rx   r^  z;TestAlexanderGovern.test_compare_dtypes.<locals>.<listcomp>  s)    JJJc
3bj999JJJrz   )rf   alexandergovernr  r  )
rn   rR  
args_int16
args_int32
args_uint8args_float64	res_int16	res_int32	res_uint8res_float64s
             rx   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'<= = = = = = = =rz   r`  z%Requires `_axis_nan_policy` decoratorr  r	  r  r   r3   c                    t          |          }|                    |d         |          |                    |d         |          f}t          j        t          t
                    5  t          j        | }d d d            n# 1 swxY w Y   t          |j	        |                    |j
                             t          |j        |                    |j
                             d S )Nr   rH   r   r   )r+   rd   r   r  r   r   rf   r
  r2   r  rm   r  )rn   r  ro   rI   r   s        rx   test_too_small_inputsz)TestAlexanderGovern.test_too_small_inputs  s   
 !$$zz$q'z//DG51Q1QQ\,4IJJJ 	/ 	/'.C	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/rzz"&'9'9:::
BJJrv$6$677777s   *BB	B	r;  c                 F   |                     ddg          |                     |j        |j        g          f}t          j        | }t	          |j        |                     |j                             t	          |j        |                     |j                             d S )Nr   r   )rd   r  rf   r
  r2   r  rm   r  )rn   ro   samplesr   s       rx   test_bad_inputsz#TestAlexanderGovern.test_bad_inputs  s     **b"X&&

BFBF3C(D(DD#W-rzz"&'9'9:::
BJJrv$6$677777rz   c                 h   g d}g d}g d}|                     |          |                     |          |                     |          }}}t          j        |||          }t          |j        |                     d                     t          |j        |                     d                     dS )a  
        Data generated in R with
        > set.seed(1)
        > library("onewaytests")
        > library("tibble")
        > y <- c(rnorm(40, sd=10),
        +        rnorm(30, sd=15),
        +        rnorm(20, sd=20))
        > x <- c(rep("one", times=40),
        +        rep("two", times=30),
        +        rep("eight", times=20))
        > x <- factor(x)
        > ag.test(y ~ x, tibble(y,x))

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

        statistic  : 1.359941
        parameter  : 2
        p.value    : 0.5066321

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

        )(g5gb?gl"k g^s/@gQ\
@gRh gIF@gpZ>q@g7D @g-ѪZng(Q<.@gON/@g	Ogҷ%6gs&@gw)ܿg789Ŀgzp"@gzl @g57@g>m@*a"@g,ZbI@gX9
]?g3g1@gg"Jbgy:@j-g2A g;@gL97vp,+@gp/rg"@gfT|7g^v+g٘Yg0/gglA! &@go@)g!_5*gqTEgg1$@g	a, @gˤ$g9%gZ@gT6U'@gS g6aGn*@gO@g\\"g^4w@g0gr~5@gDP=@gٿԙg:4R/gOx]r!@gU4 gta)B@g,Gg2$@gD%?gI,VL&g@gч
;g5@gWJc@gYjK@@)gj7#@g<e,g}m(@gr2g#^9gr/P@g:RO!g'9?g6F
?gcʱ'gt*&gg~*0Ώ7@gWzx>gIK'@g?Ң@g7C5@g;C>ϯUg7@g)n}.^@gFQ?gsdlT6?Nrd   rf   r
  r1   r  r  )rn   ro   rX  twoeightsolns         rx   test_compare_rz"TestAlexanderGovern.test_compare_r  s    :" " "	I 	I 	I7 7 7 **S//2::c??BJJu<M<M%S$S#u55

3H(I(IJJJRZZ0F%G%GHHHHHrz   c                    g d}g d}g d}|                     |          |                     |          |                     |          }}}t          j        |||          }t          |j        |                     d          d           t          |j        |                     d          d           	 t          |j        |                     d	          d
           t          |j        |                     d          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@>rl  g&Zݱ?Nr
  )rn   ro   youngmiddleoldr
  s         rx   test_compare_scholarz(TestAlexanderGovern.test_compare_scholar5  s   0 0 08 8 8G G GZZ..

60B0BBJJsOOsv$UFC88

6(:(:FFFFRZZ%8%8tDDDD	: 	

8(<(<4HHHHRZZ
%;%;$GGGGGGrz   c                    g d}g d}|                     |          |                     |          }}t          j        ||          }t          |j        |                     d          d           t          |j        |                     d          d           	 t          |j        |                     d          d	           t          |j        |                     d
          d	           dS )aA  
        Data taken from 'Robustness And Comparative Power Of WelchAspin,
        Alexander-Govern And Yuen Tests Under Non-Normality And Variance
        Heteroscedasticity', by Ayed A. Almoied. 2017. Page 34-37.
        https://digitalcommons.wayne.edu/cgi/viewcontent.cgi?article=2775&context=oa_dissertations
        )gQhgMOgY9gnSgdȿg}"Ogиp $?g8~4?g
p?gZ?g)J=?gX?gpG?gᛦ?gg?gh8en?g?guwg?gbX?g9SI?)gN]g	cZgAJigMg'gk,	Pg<gΈ׿g%zrKտg0BxҿgPNg:ǀgvꭁg?k~?gI\߇?gi?g<)?g0Xr?g
F%u?gsFZ*o?g7n:?g[z4?r  r$  gOZ}?g9$?r
  rl  g6MDd}?Nr
  )rn   ro   r  r  r
  s        rx   test_compare_scholar3z)TestAlexanderGovern.test_compare_scholar3h  s    " " "! ! ! BBB$R,,

8(<(<4HHHHRZZ%9%9EEEE	8 	

9(=(=DIIIIRZZ	%:%:FFFFFFrz   c                 <   |                     g d          |                     d|j        g          f}t          j        | }t	          |j        |                     |j                             t	          |j        |                     |j                             d S )Nr  r   rd   rm   rf   r
  r2   r  r  )rn   ro   rR  r   s       rx   test_nan_policy_propagatez-TestAlexanderGovern.test_nan_policy_propagate  s    zz***++RZZBF-D-DD#T*
BJJrv$6$6777rzz"&'9'9:::::rz   c                     |                     g d          |                     d|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 )Nr  r   r   r   r   r   )rd   rm   r   r   rf   r
  )rn   ro   rR  s      rx   test_nan_policy_raisez)TestAlexanderGovern.test_nan_policy_raise  s     zz***++RZZRV-E-EE:-LMMM 	= 	=!4<G<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   
A))A-0A-c                    |                     ddd|j        dg          |                     d|j        ddg          f}|                     g d          |                     g d          f}t          j        |d	d
i}t          j        | }t	          |j        |j                   t	          |j        |j                   d S )Nr   r3   r4   r5   r  r  ri  )r   r  r  r   r   r%
  )rn   ro   args_nanargs_no_nanres_nan
res_no_nans         rx   test_nan_policy_omitz(TestAlexanderGovern.test_nan_policy_omit  s     ::q!Q233RZZBFBPR@S5T5TTjj..

;;;0G0GG'EfEE*K8

(9:::):+?@@@@@rz   c                    |                     g d          }|                     g d          }t          j        t          d          5  t	          j        ||          }d d d            n# 1 swxY w Y   t          |j        |                     |j                             t          |j	        |                     |j                             d S )Nr7  r9  r  r   )
rd   r   r  r   rf   r
  r2   r  rm   r  )rn   ro   r  r  r   s        rx   rB  z'TestAlexanderGovern.test_constant_input  s     ZZ---..ZZ---..\.0LMMM 	0 	0'B//C	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0rzz"&'9'9:::
BJJrv$6$677777s   
A,,A03A0rT   r  c                    t           j                            d          dfdt          d          D             }fd|D             }t	          j        |d|i}t	          j        |d|i}t          |j                            |j                             t          |j	                            |j	                             d S )Nl   >030 )rZ   r[   c                 :    g | ]}                               S r   )r  )r\  r  r  r  s     rx   r^  z5TestAlexanderGovern.test_2d_input.<locals>.<listcomp>  s%    7773::e$$777rz   r4   c                 :    g | ]}                     |          S r   r  )r\  samplero   s     rx   r^  z5TestAlexanderGovern.test_2d_input.<locals>.<listcomp>  s%    ???Vbjj((???rz   rT   )
r   r  r  r  rf   r
  r1   r  rd   r  )	rn   ro   rT   r
  
xp_samplesr  r   r  r  s	    `     @@rx   test_2d_inputz!TestAlexanderGovern.test_2d_input  s    
 i##$89977777eAhh777????w???
#W8488#Z;d;;rzz#-'@'@AAA
BJJsz$:$:;;;;;rz   N)r   r   r   r
  r   r   r   r  r
  r   r
  r
  r!
  r#
  r&
  r(
  r.
  rB  r5
  r   rz   rx   r	  r	    sv       > > >* k*QRRRl+RSSS[Vq!fb\QFA;!Q!$NOO8 8 PO TS SR8 [ QRR8 8 SR8BI BI BIH1H 1H 1Hf1G 1G 1Gf; ; ; k*QRRRl+RSSS= = TS SR=
 k*QRRRl+RSSSA A TS SRA k*QRRRl+RSSS8 8 TS SR8 k*QRRRl+RSSS[V\\\22	< 	< 32 TS SR	< 	< 	<rz   r	  c            
       @   e Zd Zd Zej                            dg d          d             Zej                            dg d          d             Zd Z	d Z
d Zd	 Zej                            d
g d          d             Zej                            d          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d          ej                            dd          ej                            dg d          d                                     Zej                            dd          ej                            dd          d                         Zd Zej                            dd          ej                            dd          d                         Zd Zej                            dd          ej                            dd          ej                            dd g d!fg          d"                                     Zej                            dd          ej                            dd          d#                         Zej                            dd          ej                            dd          d$                         Zd%S )&TestFOneWayc                    t          j        |                    ddg          |                    ddg                    \  }}t          ||                    d                     t          ||                    d                     d S )Nr   r3   r   r   rf   f_onewayrd   r2   rn   ro   r	  rA  s       rx   test_trivialzTestFOneWay.test_trivial  sq    ~bjj!Q00"**aV2D2DEE12::c??+++2::c??+++++rz   rI   rV  c                    t          |          r%|j        dk     r|dk    rt          j        d           |d nt	          ||          }t          j        |                    ddg|          |                    ddg|                    \  }}t          ||                    d|                     t          ||                    d	|                     d S )
Nr  r   r  r   r3   rH   r5   r   gf3þ?)
r)   r  r   rA  rE  rf   r:
  rd   r2   r1   )rn   rI   ro   r	  rA  s        rx   r5  zTestFOneWay.test_basic  s     B<< 	DBNU22ui7G7GKBCCC72u+=+=~bjj!Quj== jj!Quj==? ?12::c:778882::l%:@@AAAAArz   c                    t          |          r%|j        dk     r|dk    rt          j        d           |d nt	          ||          }|                    g d|          |                    g d|          |                    g d|          g}t          j        |dd	i\  }}t          ||                    d
|                     t          ||                    d|                     d S )Nr  r   r  g(\5IgHz'D@gףp=
2g
ףp=A@g333333g)\(?rH   gq=
ףp7@r@   g333333.@gRQ#@gzG'@r  g=
ףp#@gGz."@gp=
ף
@r  FgM;yQ?gWe?)	r)   r  r   rA  rE  rd   rf   r:
  r1   )rn   rI   ro   r
  r	  rA  s         rx   test_unequal_varzTestFOneWay.test_unequal_var  s    B<< 	DBNU22ui7G7GKBCCC72u+=+=::HHHPU:VV::666e:DD::>>>e:LLN ~w8%881& 	2::&7u:EEFFF2::&7u:EEFFFFFrz   c                    |                     g d          |                     g d          |                     g d          g}d}t          j        t          |          5  t	          j        |ddi d d d            d S # 1 swxY w Y   d S )Nr?
  r@
  rA
  z(Expected a boolean value for 'equal_var'r   r  False)rd   r   r   r  rf   r:
  )rn   ro   r
  r  s       rx   test_equal_var_input_validationz+TestFOneWay.test_equal_var_input_validation  s    ::HHHII::66677::>>>??A =]9G444 	8 	8NG7w777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   "BBBc                 >   t          j        |                    dg          |                    dg          |                    g d                    \  }}t          ||                    d                     t          ||                    d                     d S )Nr3   r  r  r  )rf   r:
  rd   r1   r;
  s       rx   test_known_exactzTestFOneWay.test_known_exact  s     ~bjj!oorzz1# jj335 512::c??+++2::c??+++++rz   c                     |                     ddg|j                  }|                     ddg|j                  }t          j        ||          \  }}t	          ||                     d                     d S )N    rH       gŸ?)rd   uint16rf   r:
  r1   )rn   ro   r*  r4  r	  rA  s         rx   test_large_integer_arrayz$TestFOneWay.test_large_integer_array  sr    JJSzJ33JJSzJ33~a##1 	2::&9::;;;;;rz   c                     |                     ddg|j                  }|                     ddg|j                  }t          j        ||          }d}t	          |||           d S )NrI
  rJ
  rH   rK
  rL
  r  rj  )rd   rM
  rf   r:
  r   )rn   ro   r*  r4  r   r   s         rx   test_result_attributesz"TestFOneWay.test_result_attributes  si    JJSzJ33JJSzJ33nQ"",
C333333rz   	test_case)SiRstvSmLs01SmLs02SmLs03AtmWtAgSmLs04SmLs05SmLs06SmLs07SmLs08SmLs09c                     |dz   }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
                             |j                  |           d S )Nz.datr|  zdata/nist_anova
c                 ^    g | ]*}|                                 |                                +S r   )stripsplit)r\  lines     rx   r^  z)TestFOneWay.test_nist.<locals>.<listcomp>.  s<     & & &d

&TZZ\\ & & &rz   rR  r  r  )skiprowsr   r_   c                 N    g | ]!}                     |k                       "S r   r  )r\  r  rq   ro   rr   s     rx   r^  z)TestFOneWay.test_nist.<locals>.<listcomp>6  s-    5551Aa1fI&&555rz   )rZ
  r[
  r\
  r  rH   rl  )ospathabspathjoindirname__file__openreadra
  r   loadtxtr   r  r!  uniquer  rf   r:
  r1   rd   r   )rn   rQ
  ro   filenamerm  fnamerT  content	certifieddatafcatyxlistr   hard_tcrq   rr   s     `           @@rx   	test_nistzTestFOneWay.test_nist"  s    v%RW__X-F-F->!J !J K K%[[ 	+AffhhnnT**G	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+& &gben & & &	
52...w1HHSMMy||)A,r"##555555555ne$ 1DA

1BJ
 ? ?dKKKKKKs   :(B..B25B2r   za, b, expected)r  r  r  r:	  r   c                 &   t          j        |                    |          |                    |                    \  }}t          ||                    |d                              t          ||                    |d                              d S r  r9
  )rn   r*  r4  r  ro   rT  rA  s          rx   rB  zTestFOneWay.test_constant_input@  ss     ~bjjmmRZZ]];;12::hqk223332::hqk2233333rz   r`  r	  r  r	  rT   )r  r_   r   r   c                    t          j        g dg dg dg dg dgt           j                  }t          j        g dg dg dg d	g d
g dg dg dgt           j                  }t          j        g dg dg dg dgt           j                  }|dv r|j        }|j        }|j        }d}nd}t	          j        |                    |          |                    |          |                    |          |          \  }}dD ]}	t	          j        t          j        ||	|          t          j        ||	|          t          j        ||	|                    \  }
}t          ||	         |                    |
                     t          ||	         |                    |                     dD ]}	t	          j        t          j        ||	|          t          j        ||	|          t          j        ||	|                    \  }
}t          ||	         |                    |
                     t          ||	         |                    |                     d S )N)r   r5   r4   r4   )r3   r6   r4   r4   )r4   r7   r4   r4   r  rH   )r4   r   r6   r4   )r5   r7   r6   r4   )r5   r4   r6   r4   )r   r6   r6   r4   )r6   r6   r6   r4   )r3   r4   r6   r4   )r9   r3   r6   r4   )r3   r3   r6   r4   )r5   r4   r5   r4   )r5   r3   r5   r4   )r6   r5   r5   r4   r_   r   r   r   rS   r  r  )	r   r   r   r   rf   r:
  rd   taker1   )rn   rT   ro   r*  r4  r.  	take_axisrT  rA  r]  fjpjs               rx   test_2d_inputszTestFOneWay.test_2d_inputsK  s    Hlll"ll"ll"ll"ll	$ ,.:	7 7 7
 Hlll"ll"ll"ll"ll"ll"ll"ll$ ,.:7 7 7 Hlll"ll"ll"ll$ ,.:7 7 7
 7??AAAIII~bjjmmRZZ]]BJJqMM#') ) )1
  	2 	2A^BGAq)$<$<$&GAq)$<$<$&GAq)$<$<> >FB AaD"**R..111AaD"**R..1111 	2 	2A^BGAq)$<$<$&GAq)$<$<$&GAq)$<$<> >FB AaD"**R..111AaD"**R..1111	2 	2rz   c           
         |                     d|                    dd|j                  z  d          }|                     d|                    dd|j                  z  d          }|                     d|                    dd	|j                  z  d
          }|                    |          }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   g     a@rH   )r5   r6   r8   r3   g      l@)r5   r9   r8   g     @\@)r5   r5   r8   rS   )r5   r8   r   )	rh   r   r   cosrf   r:
  r  r  r1   )rn   ro   r*  r4  r.  rT  rA  r  r]  fijpijs              rx   test_3d_inputszTestFOneWay.test_3d_inputs{  s    JJq3
"*EEEyQQJJq3
"*EEEyQQJJq3
"*EEEyQQFF1II~aAA...1w&    w&    qwqz"" 	. 	.A171:&& . . >!Aqqq!G*a111aj!Aqqq!G*MMSQq!tW---Qq!tW----.	. 	.rz   c           	         t          t          t          |          5  t          j        |                    g d          |                    g           |                    g d                    }t          |j        |                    |j                             t          |j	        |                    |j                             d d d            d S # 1 swxY w Y   d S )Nr=  r{  )r   rL   r   r   )
r'   r   r   rf   r:
  rd   r2   r  rm   r  )rn   ro   rs  s      rx   test_length0_1d_errorz!TestFOneWay.test_length0_1d_error  s   +3HRPPP 	? 	?^BJJ|||$<$<bjjnn$&JJ/?/?/?$@$@B BFF,bjj.@.@AAAFM2::bf+=+=>>>		? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   B.CCCc                    t          t          t          |          5  d}|                    d|f          }|                    d|f          }|                    d|f          }t	          j        |||          \  }}|                    |f|j                  }t          ||           t          ||           d d d            d S # 1 swxY w Y   d S )Nr=  r4   r5   r   r6   r:  )	r'   r   r   r  rf   r:
  r   rm   r2   )	rn   ro   ncolsr*  r4  r.  rT  rA  r  s	            rx   test_length0_2d_errorz!TestFOneWay.test_length0_2d_error  s    +3HRPPP 	% 	%EE
##AE
##AE
##A>!Q**DAq77E8777DAt$$$At$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   BCCCc                    |                     dg          |                     dg          |                     dg          |                     dg          f}t          t          |          5  t          j        | }t          |j        |                     |j                             t          |j        |                     |j                             d d d            d S # 1 swxY w Y   d S )NrY   rZ   r[   r\   rj  )	rd   r'   r   rf   r:
  r2   r  rm   r  )rn   ro   r
  rs  s       rx   test_all_length_onezTestFOneWay.test_all_length_one  s   **bT""BJJt$4$4bjj"6F6F

TVSWHXHXX+333 	? 	?^W-FF,bjj.@.@AAAFM2::bf+=+=>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   -A)C##C'*C'zlazy->reduced input validationrR  r   r  c                     fd|D             }d}t          j        t          |          5  t          j        |  d d d            d S # 1 swxY w Y   d S )Nc                 :    g | ]}                     |          S r   r  )r\  r
  ro   s     rx   r^  z3TestFOneWay.test_too_few_inputs.<locals>.<listcomp>  s#    000C

3000rz   z$At least two samples are required...r   )r   r   r  rf   r:
  )rn   rR  ro   r  s     ` rx   test_too_few_inputszTestFOneWay.test_too_few_inputs  s     100040008]9G444 	" 	"ND!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   A		AAc                     |                     d          }|                     d          }t          j        t                    5  t	          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr.  r6   r5   r3   rS   )r  r   r   r$   rf   r:
  rn   ro   r*  r4  s       rx   test_axis_errorzTestFOneWay.test_axis_error  s     GGFOOGGFOO]9%% 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)   A))A-0A-c                     |                     d          }|                     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   rS   )r  r   r   r   rf   r:
  r
  s       rx   test_bad_shapeszTestFOneWay.test_bad_shapes  s     GGFOOGGFOO]:&& 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r
  N)r   r   r   r<
  r   r   r  r5  rB
  rE
  rG
  rN
  rP
  rw
  r   r   r   r  rm   rB  r   r
  r
  r
  r
  r
  r
  r
  r
  r   rz   rx   r7
  r7
    s1       , , , [W&B&B&BCC	B 	B DC	B [W&B&B&BCCG G DCG>8 8 8, , ,< < <4 4 4 [[	1 	1 	12 2L L2 2L6 [))[-	,,,		)))!4!4rvrlC	,,,		,,,!7!7"&"&9IJ0
  4 4	  *)
4 [!!+6S!TT[!!,7T!UU[V^^^44+2 +2 54 VU UT+2Z [!!+6S!TT[!!,7T!UU. . VU UT.$? ? ? [!!+6S!TT[!!,7T!UU	% 	% VU UT	%? ? ? [!!+6V!WW[!!,7W!XX[Vb999,%788" " 98 YX XW" [!!+6V!WW[!!,7W!XX) ) YX XW) [!!+6V!WW[!!,7W!XX) ) YX XW) ) )rz   r7
  c                      e Zd Zd Zd Zej                            dg d          d             Zd Z	d Z
d Zej                            d	d
          d             Zej                            d	d
          d             Zd Zd ZdS )TestKruskalc                     t          j        dgdg          \  }}t          |d           t          |t           j                            |d                     d S )Nr   r3   r   )rf   kruskalr   r   r  r  )rn   hrA  s      rx   test_array_likezTestKruskal.test_array_like  sQ    }aS1#&&1Q5:==A../////rz   c           	      x   |                     dg          }|                     dg          }t          j        ||          \  }}t          ||                     d                     t	          |          }t          ||                     t          j                            dd          |                     d S )Nr   r3   r   rH   )rd   rf   r
  r1   r+   r  r  )rn   ro   rq   rr   r
  rA  rI   s          rx   test_simplezTestKruskal.test_simple  s    JJsOOJJsOO}Q""12::c??+++ $$2::ejmmAq&9&9:GGHHHHHrz   rI   )r   r   Nc           	          |dk    r$t           j        dk     rt          j        d           |t	          |          nt          ||          }|                    g d|          }|                    g d|          }t          j        ||          \  }}t          ||                    d|                     t          ||                    t          j
                            dd          |                     d S )	Nr   2z*Scalar dtypes only respected after NEP 50.)r   r4   r6   r8   r:   rH   )r3   r5   r7   r9   rY   r	  r   )r   r  r   rA  r+   rE  rd   rf   r
  r1   r  r  )rn   ro   rI   rq   rr   r
  rA  s          rx   r5  zTestKruskal.test_basic  s    I".3"6"6KDEEE(- $$$72u;M;MJJeJ44JJ'''uJ55}Q""12::d%:889992::ejmmD!&<&<E:JJKKKKKrz   c                 T   dg}ddg}t          j        |                    |          |                    |                    \  }}d}d}|                    ||z            }t          ||           t	          |t          j        |                    d          |                     d S )Nr   r3   r	  r6  r   )rf   r
  rd   r2   r1   r   chdtrc	rn   ro   rq   rr   r
  rA  h_uncorrrb  r  s	            rx   test_simple_tiezTestKruskal.test_simple_tie  s    CF}RZZ]]BJJqMM::1*::ho.. 	8$$$7>"**R..(CCDDDDDrz   c                 |   g d}g d}t          j        |                    |          |                    |                    \  }}d}dt          d          dz  z
  }|                    ||z            }t	          ||           t	          |t          j        |                    d          |                     d S )N)r   r   r   r3   )r3   r3   r3   r3   r   r        r   rf   r
  rd   r  r1   r   r
  r
  s	            rx   test_another_tiezTestKruskal.test_another_tie  s    LLLL}RZZ]]BJJqMM::1>5,--::::ho..8$$$7>"**R..(CCDDDDDrz   c                    g d}g d}ddg}t          j        |                    |          |                    |          |                    |                    \  }}d}dt          d          dz  z
  }|                    ||z            }	t	          ||	           t	          |t          j        |                    d          |	                     d S )	Nr8  r  r3   rL   r   r
  r
  r   r
  )
rn   ro   rq   rr   r  r
  rA  r
  rb  r  s
             rx   test_three_groupszTestKruskal.test_three_groups  s    IIIIF}RZZ]]BJJqMM2::a==II1G5,--::::ho..8$$$7>"**R..(CCDDDDDrz   r`  r	  r  c                    |                     g d          }|                     g d          }|                     g |j                  }t          j        t          t
                    5  t          j        |||          }d d d            n# 1 swxY w Y   t          |j	        |                     |j
                             t          |j        |                     |j
                             d S )Nr8  r  rH   r   )rd   rI   r   r  r   r   rf   r
  r2   r  rm   r  )rn   ro   rq   rr   r  r   s         rx   rB  zTestKruskal.test_empty  s
    JJyyy!!JJyyy!!JJrJ))\,4IJJJ 	) 	)-1a((C	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)rzz"&'9'9:::
BJJrv$6$677777s   +BBBc                    |                     d          }|j        |d<   t          j        ||          }t	          |j        |                    |j                             t	          |j        |                    |j                             t          j        ||d          }t	          |j        |                    d                     t	          |j        |                    d                     t          j	        t          d          5  t          j        ||d	           d d d            n# 1 swxY w Y   t          j	        t          d
          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr   r:   r   r   r   r   r   r   r   r   r   )r   rm   rf   r
  r2   r  rd   r  r   r   r   r   s       rx   rK  zTestKruskal.test_nan_policy  s   IIcNNv!mAq!!rzz"&'9'9:::
BJJrv$6$6777mAqV444rzz#777
BJJsOO444]:-LMMM 	4 	4M!Q73333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 ]:-KLLL 	5 	5M!Q84444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s$   D55D9<D9F  FFc                 r   d}t           j                            d          }|                    |                    |                    }|                    |                    |          dz             }t          j        ||          \  }}t          ||                    d|j                             d S )Nr  ykr  r   rH   )	r   r  r  rd   rC  rf   r
  r1   rI   )rn   ro   ra  r  rq   rr   r
  rA  s           rx   test_large_sampleszTestKruskal.test_large_samples%  s    i##J//JJs**1--..JJs**1--233}Q""12::b:8899999rz   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   rf   r
  r  s      rx   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  r5  r
  r
  r
  r   rB  rK  r
  r
  r   rz   rx   r
  r
    s(       0 0 0
I I I [W&B&B&BCCL L DCLE E E
E 
E 
EE E E [!!+6S!TT8 8 UT8 [!!+6S!TT5 5 UT5$: : :    rz   r
  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g d          d                         ZdS )TestCombinePvaluesz+method, expected_statistic, expected_pvalue))r  g'"x-@g({#H?)stoufferv!:@/?)r  gQ4gF?)tippettr  gL^i?)mudholkar_georgegzP@guKqN?c                     g d}t          j        |                    |          |          }t          |j        |                    |                     t          |j        |                    |                     d S )Nr  r  r  r  )rf   combine_pvaluesrd   r1   r  r  )rn   ro   r  r  r  rq   r   s          rx   test_reference_valuesz(TestCombinePvalues.test_reference_values>  so     MM#BJJqMM&AAArzz2D'E'EFFF
BJJ$?$?@@@@@rz   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
  )r  r  )rd   rf   r
  r1   r  r  )rn   ro   r  r  r  rq   r   s          rx   test_weighted_stoufferz)TestCombinePvalues.test_weighted_stoufferL  s     JJ}}}%%#Aj"**WBUBUVVVrzz2D'E'EFFF
BJJ$?$?@@@@@rz   )r  r  r
  r
  r
  r  )singler  r  r  c           
      J   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 )N)rY   r8   l	   TrU(	"b-= r
  r  r  rz
  r   rS   r  r  r   r  c           
      v    g | ]5}t          t          j        |d d f                   d                   6S )Nr  r   )r  rf   r
  )r\  r  r  pvaluesss     rx   r^  z8TestCombinePvalues.test_monotonicity.<locals>.<listcomp>r  sR     '
 '
 '
 %'AAAvFFFqIJJ'
 '
 '
rz   r_   )r   r  r  r}  rd   r  rh   r  r   r	  rw  r  r  r  )	rn   r  r  ro   r`  ra  r  combined_pvaluesr
  s	     `     @rx   test_monotonicityz$TestCombinePvalues.test_monotonicity^  s    1i##$KLL hrzz#**Q--'@'@1a&IIHyy"**R[[c1-E-Ew"O"O"*111abb5/"39: ! < <HHr{{3Q'?'?!QHHJHH  wwrzz#++a!Q+*H*HIIPQwRRH:: '
 '
 '
 '
 '
8>!,--'
 '
 '
   vv&qrr*-=crc-BBaGHHHHHHHrz   c                     t          j        |                    g d          |          }t          |j        |d                    t          |j        |d                    d S )Nr
  r  r   r   )rf   r
  rd   r2   r  r  )rn   r  ro   r   s       rx   r  zTestCombinePvalues.test_resultx  sY    #BJJ}}}$=$=fMMMs1v...
CF+++++rz   rT   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   )rT   r  r  r  r   )r   r  r  rd   r   rf   r
  rh   r1   r  r  )rn   r  rT   ro   r  rq   r   r  r  r  ref0r  s               rx   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3rz   N)r   r   r   r   r   r  r
  r
  r  r
  r  r<  r   rz   rx   r
  r
  4  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0 [Xw//, , 0/,
 [Xw//[V\\\224 4 32 0/4 4 4rz   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   r3   r5   r4   r   r   r   rf   wasserstein_distancer6  s    rx   &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Orz   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   r3   r4   r
  r6  s    rx   test_zero_weightz*TestCdfDistanceValidation.test_zero_weight  sf     	j%"<!fqcAq6	+ 	+ 	+j%"<!fqcAq6A3	0 	0 	0 	0 	0rz   c           	      \    t          t          t          j        ddgddgddgddg           d S )Nr   r   r3   r4   r_   r
  r6  s    rx   test_negative_weightsz/TestCdfDistanceValidation.test_negative_weights  s>    j%"<!fq!fq!fq"g	7 	7 	7 	7 	7rz   c                     t          t          t          j        g ddg           t          t          t          j        dgg            d S r|  r
  r6  s    rx   test_empty_distributionz1TestCdfDistanceValidation.test_empty_distribution  s>     	j%"<b1a&IIIj%"<qc2FFFFFrz   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   rf   r
  r   r  r6  s    rx   test_inf_weightz)TestCdfDistanceValidation.test_inf_weight  sG    j%"<ii!Q!RVQ!Q	A 	A 	A 	A 	Arz   N)	r   r   r   r  r
  r
  r
  r
  r
  r   rz   rx   r
  r
    st         
P P P0 0 07 7 7
G G GA A A A Arz   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  rA  r7   r   r
  )r  r  ry  ry  ry  r6   r   r
  r
  r
  r
  r
  r
  )r8   r   )r   r   rL   r   r   r   )r   gw@r   r  r   r   )rf   wasserstein_distance_ndr   r   r$  r   )rn   r  r  r   flowdistr  s          rx   test_published_valuesz/TestWassersteinDistanceND.test_published_values  s    
" " "" " " +Aq11 x00011x@@@AAfTD[!!"&,,.S!!!!!rz   n_value)r5   r  rU  rf  )r4   r5   r8   max_repeatsrM  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  rI   r  r   rS   r/	  r#  r$  )r   r  r  r  r!  r  r$  r   r  bincountr  rf   r
  r   )rn   rf  r
  r
  r  repeatsu_valuesv_values	v_weightsrange_repeat	u_weightsr0  r   s                rx   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++++++rz   nu)r9   r:   &   nv)r9   r[   rb   )r4   r6   rL  c                    t           j                            d          }|                    ||f          }t          j        ||f          }|                    |          }|                    |          }t          j        t           j                            |d          |          }	t          j        ||||          }
t          |
|	           d S )N   }&=:! r  r   rS   r/	  )
r   r  r  r   rt	  r  r  rf   r
  r   )rn   r
  r
  rf  r  r
  r
  r
  r
  r  r   s              rx   test_collapse_nDz*TestWassersteinDistanceND.test_collapse_nD  s     i##$899::B::..8RJ''JJBJ''	JJBJ''	jq999MMM+Hh	9UUS!!!!!rz   )r9   r   r  )r   r3   r7   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   r3   rS   )	r   r  r  rf   r
  r  insertr   r   )rn   r
  r
  rf  r  r
  r
  r
  r
  r  add_rownrows	add_valuer   s                 rx   test_zero_weight_nDz-TestWassersteinDistanceND.test_zero_weight_nD  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!!!!!rz   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   r3   r   r  )r   r  rf   r
  r   r  rm   )rn   uvvvuwdistances        rx   test_inf_valuesz)TestWassersteinDistanceND.test_inf_values   s    !fq!f%"&(9':QFB0R<<Xrv&&&[*** 	+ 	+vrv&'26BF7*;)<B4R<<H26***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   ,A#CC #C rb  )r   r4   r6   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   rS   )r   r  r  rf   r
  r  r
  r   )rn   r
  r
  rf  r  r
  r
  r
  r
  r  add_dimr
  r   s                rx   test_multi_dim_nDz+TestWassersteinDistanceND.test_multi_dim_nD   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!!!!!rz   )r8   r\   r  )r3   r5   r8   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  rf   r
  ortho_groupr  r   )rn   r
  r
  rf  r  r
  r
  r
  r
  r  r
  	transformshiftr   s                 rx   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!!!!!rz   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   )r5   rY   r  r  )r7   r3   r8   z Invalid input values. Dimensions)r  )r4   r  z(Invalid input values. If two-dimensionalr  r{  )r   r  r  r   r   r   rf   r
  )rn   r  r
  r
  r  s        rx   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   rY   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  rf   r
  r
  r   )rn   r  r	  r  r
  r
  u_values_flatv_values_flatd1d2d3r
  r
  s                rx   test_optimization_vs_analyticalz9TestWassersteinDistanceND.test_optimization_vs_analyticalP   sZ    i##K00::FA;://::FA;:// (( (( '}EE*8X>>*=-HHBBJJFJ++	JJFJ++	'}(19> >*8X(19> >*=-(19> >BBrz   N)r   r   r   r  r
  r   r   r  r
  r
  r
  r
  r   r  r  r  r   rz   rx   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     rz   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<   r4   r  r3   r{  r  r   rf   r
  r6  s    rx   r
  z#TestWassersteinDistance.test_simpleq   s     	&1vsQFQC@@	 	 	 	2FQC!Q!& &	 	 	 	2FQC!Q!& &	 	 	 	2IIyyy" "	 	 	 	 	rz   c           	          t          t          j        g dg d          d           t          t          j        g dddgg dddg          d           d S 	Nr  rz  r   )r   r   r   r5   r5   r   r  r4   )r   rf   r
  r6  s    rx   test_same_distributionz.TestWassersteinDistance.test_same_distribution   sq     	U/			999EEqIII&|||aV'3||aV= =	 	 	 	 	rz   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  r6   rY   r  )rZ   r[   r\   rW   r  )r@   g@r  )r  r8   r  )r4   r   r   )r   r4   r   r>   r  r6  s    rx   
test_shiftz"TestWassersteinDistance.test_shift   s     	2A3<<a@@@2B4!==rBBB&8L8L8LMM	 	 	 	&'0yy)))= =	 	 	 	 	rz   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   r6   )r   r4   r4   r4   r4   r5   r5   )r   r   r   r   r   r   r   )r6   r   r   )r   r5   r4   r   r3   r5   r  r6  s    rx   test_combine_weightsz,TestWassersteinDistance.test_combine_weights   s     	&%%%'<'<'<%%%'<'<'<> > &yyy)))'0yy)))= =		> 	> 	> 	> 	>rz   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 )NrD  rQ  r  r_   r/	  )
r   r   r  r   rf   r
  ri   r  r  rt	  )rn   r  r  r
  r
  s        rx   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 	6rz   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   r3   r  r   r)  r3   r  r6  s    rx   r
  z(TestWassersteinDistance.test_zero_weight   sp    &~~~1v'0yy1a&: :&1v1v1v1vFF	H 	H 	H 	H 	Hrz   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          j        t          d          5  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   r3   r   r   )	r   rf   r
  r   r  r   r  r   rm   r6  s    rx   r
  z'TestWassersteinDistance.test_inf_values   sZ    	&1bf~1v>>F	 	 	 	&1bf~|DDF	 	 	 	&BF7BF';aVDDF	 	 	 \.@@@ 	 	*Aq"&>BFA;GG  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   &AD::D>D>N)r   r   r   r  r
  r  r  r  r  r
  r
  r   rz   rx   r  r  m   s                > > >6 6 6 H H H    rz   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   r3   r<   r4   r  r   r{  r  r  r   rf   energy_distancer   r'  r6  s    rx   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**	, 	, 	, 	, 	,rz   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   rf   r)  r6  s    rx   r  z)TestEnergyDistance.test_same_distribution   sl     	U*999iii@@!DDD!,,,Aq!fMM	 	 	 	 	rz   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   r3   r  r6   gS[:XL	@r(  r6  s    rx   r  zTestEnergyDistance.test_shift   sm     	E11#s;;RWQZZHHH!2$,,GAJJ	! 	! 	! 	! 	!rz   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   rf   r)  r6  s    rx   r  z'TestEnergyDistance.test_combine_weights   s     	!"7"7"79N9N9N"7"7"79N9N9NP P!)))YYY			999MM	O 	O 	O 	O 	Orz   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-  r6  s    rx   r
  z#TestEnergyDistance.test_zero_weight   sk    !...1a&)))aVLL!1a&1a&1a&1a&AA	C 	C 	C 	C 	Crz   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          j        t          d          5  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   rf   r)  r   r  r   r  r   rm   r6  s    rx   r
  z"TestEnergyDistance.test_inf_values   sP    	U*Aq"&>Aq6BBBFKKK!1a.BF7A,??F	 	 	 	!1rvgrv"6A??F	 	 	 \.@@@ 	 	%q!RVnrvqkBB  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r$  N)
r   r   r   r  r
  r  r  r  r
  r
  r   rz   rx   r&  r&     s~         , , ,   ! ! !O O OC C C    rz   r&  c                      e Zd Zg dZg 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ej                            dddg          d             Zd ZdS )TestBrunnerMunzel)r   r3   r   r   r   r   r   r   r   r   r3   r5   r   r   )r4   r4   r5   r4   r   r3   r4   r   r   r6   r5   c                 2   |                     | j                  |                     | j                  }}t          j        ||d          \  }}t          j        ||d          \  }}t          j        ||d          \  }}	t          j        ||d          \  }
}t          ||           t          |	|           ||	k    sJ t          ||                     d                     t          ||                     d                     t          ||                     d                     t          |
|                     d                     t          ||                     d                     t          |	|                     d                     d S )Nrd  rj  rf  |	&	@|	&	gҏGg?g@-pL?rd   re   Yrf   brunnermunzelr1   )rn   ro   re   r6  u1r  u2re  u3rf  u4p4s               rx   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sided!  st   zz$&!!2::df#5#51$Qv>>>B$QyAAAB$QyAAAB$Qv>>>BBBRxxxxBJJ'9::;;;BJJ':;;<<<BJJ'9::;;;BJJ':;;<<<BJJ'<==>>>BJJ':;;<<<<<rz   c                    |                     | j                  |                     | j                  }}t          j        ||d          \  }}t          j        ||d          \  }}t          ||                     |                     t          ||                     d                     t          ||                     d                     t          ||                     d                     d S )Nrb  rj  r3  r4   ҏGw?r5  rn   ro   re   r6  r8  r  r9  re  s           rx   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sided%!  s    zz$&!!2::df#5#51$Q{CCCB$Q{CCCBBJJrNN+++BJJ'9::;;;BJJ':;;<<<BJJ'<==>>>>>rz   c                    |                     | j                  |                     | j                  }}t          j        ||          \  }}t          j        ||          \  }}t          ||           t          ||                     d                     t          ||                     d                     t          ||                     d                     d S )Nr3  r4  r?  r5  r@  s           rx   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default0!  s    zz$&!!2::df#5#51$Q**B$Q**BBBJJ'9::;;;BJJ':;;<<<BJJ'<==>>>>>rz   c                    d}d}d}|dvsJ d}t          j        t          |          5  t          j        |                    | j                  |                    | j                  |||           d d d            d S # 1 swxY w Y   d S )Nr
  r+  rW  r<  r5  r   r   r   r   rf   r7  rd   re   r6  rn   ro   rk  distributionr   r  s         rx   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error;!  s     
"BBBBBL]:W555 	G 	G

46 2 2BJJtv4F4F +\:G G G	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G   A	B  BBc                    |                     | j                  |                     | j                  }}t          j        ||d          \  }}t          j        ||d          \  }}t          ||                     |                     t          ||                     d                     t          ||                     d                     t          ||                     d                     d S )Nr  rG  r3  r4  g "H[?r5  r@  s           rx   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_normE!  s    zz$&!!2::df#5#51$QAAAB$QAAABBJJrNN+++BJJ'9::;;;BJJ':;;<<<BJJ'<==>>>>>rz   c                    d}d}d}|dvsJ d}t          j        t          |          5  t          j        |                    | j                  |                    | j                  |||           d d d            d S # 1 swxY w Y   d S )Nrb  r
  rW  )r+  r  z&distribution should be 't' or 'normal'r   rE  rF  s         rx   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_errorN!  s    ! 
?2222:]:W555 	G 	G

46 2 2BJJtv4F4F +\:G G G	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	GrI  kwarg_updaterr   rq   r  c                    | j         | j        d}|                    |           fd|                                D             }t	          t
          t                    5  t          j        di |\  }}d d d            n# 1 swxY w Y   t          |
                    j                             t          |
                    j                             d S )Nr  c           	      `    i | ]*\  }}|                     |t                               +S r  )rd   r+   )r\  keyvalro   s      rx   
<dictcomp>zDTestBrunnerMunzel.test_brunnermunzel_empty_imput.<locals>.<dictcomp>]!  sH     2 2 2c3 bjj,<R,@,@jAA 2 2 2rz   r=  r   )re   r6  updateitemsr'   r   r   rf   r7  r2   rd   rm   )rn   rO  ro   rS  r  r  s     `   rx   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imputX!  s!    vDF++l###2 2 2 2"(,,..2 2 2+3HRPPP 	> 	> % 3 = =f = =Iv	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>	2::bf#5#5666

26 2 233333s   "BB
Bc                 .   |                     dddddddddddddd|j        g          }|                     g d          }t          j        ||d          \  }}t          j        ||d          \  }}t	          ||                     |j                             t	          ||                     |j                             t	          ||                     |j                             t	          ||                     |j                             d S )Nr   r3   r5   r4   r4   r5   r4   r   r3   r4   r   r   r6   r   rW  r   )rd   rm   rf   r7  r2   r@  s           rx   &test_brunnermunzel_nan_input_propagatez8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagated!  s    JJ1aAq!Q1aAq"&IJJJJ999::$QkBBBB$QkBBBBBJJrv..///BJJrv..///BJJrv..///BJJrv../////rz   c                    |                     dddddddddddddd|j        g          }|                     g d          }d}d}d}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 )
Nr   r3   r5   rY  rb  r+  r   r   r   )rd   rm   r   r   r   rf   r7  )rn   ro   re   r6  rk  rG  r   r  s           rx   "test_brunnermunzel_nan_input_raisez4TestBrunnerMunzel.test_brunnermunzel_nan_input_raiseo!  s   JJ1aAq!Q1aAq"&IJJJJ999::!
1]:W555 	M 	M1k<LLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M]:W555 	M 	M1k<LLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms$   $B		BB/CCC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          ||                     d                     t          ||                     d                     t          ||                     d	                     d S )
Nr   r3   r5   rY  r   r   r3  r4  r?  )rd   r   rm   rf   r7  r1   r@  s           rx   !test_brunnermunzel_nan_input_omitz3TestBrunnerMunzel.test_brunnermunzel_nan_input_omit|!  s    JJ1aAq!Q1aAq"&IJJJJ999::$Qf===B$Qf===BBBJJ'9::;;;BJJ':;;<<<BJJ'<==>>>>>rz   vectorized_callFTc                 h   |                     g d          }|                     g d          }|r8|                    ||f          j        }|                    ||f          j        }d}t          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)
        r{  rL   r   r   r   r   zDp-value cannot be estimated|divide by zero|invalid value encounteredr=  r+  rK  N)rd   r  r   r'   r   rf   r7  )rn   r_  ro   rq   rr   r   s         rx   test_brunnermunzel_return_nanz/TestBrunnerMunzel.test_brunnermunzel_return_nan!  s    
 JJ|||$$JJ+++,, 	#!Q  "A!Q  "ATsr::: 	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   B''B+.B+c                 :   |                     g d          }|                     g d          }t          t          d|          5  t          j        ||d          \  }}ddd           n# 1 swxY w Y   t          ||                     d                     dS )	zo tests that a p is 0 for datasets that cause p->nan
        when t-distribution is used (see gh-15843)
        r{  ra  zdivide by zeror=  r  rK  Nr   )rd   r'   r   rf   r7  r2   )rn   ro   rq   rr   r  rA  s         rx   test_brunnermunzel_normal_distz0TestBrunnerMunzel.test_brunnermunzel_normal_dist!  s     JJ|||$$JJ+++,,/?BGGG 	D 	D&q!(CCCDAq	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D2::b>>*****s   A--A14A1N)r   r   r   re   r6  r=  rA  rC  rH  rL  rN  r   r   r  rW  rZ  r\  r^  rb  rd  r   rz   rx   r1  r1  !  sQ        	322A)))A= = =&	? 	? 	?	? 	? 	?G G G? ? ?G G G [^sBi#r46R.@.@.B C C4 4C C4	0 	0 	0M M M	? 	? 	? [.>>8 8 ?>8	+ 	+ 	+ 	+ 	+rz   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 )Nr  z/`x` must be a one-dimensional array of numbers.r   z`q` must be a scalar.r   r3   )r  z-`p` must be a float strictly between 0 and 1.r<   r6  )rA  r  z`alternative` must be one of...z	one-sidedrj  rD  )r   r   r   rf   quantile_testrV  )rn   rq   r  s      rx   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蜶?rb  )r<   r  g-tA?gP"?rb  r  r	  g{gA?rd  r=  r  gg @rf  c                     t          j        t          j        ddd                    }t          j        |||          }t          |                    |          ||gd           d S )Nr   r  r  )rA  rk  r#  rl  )r   r  r   rf   rh  r   rV  )rn   rA  rF  lbubrk  rq   r   s           rx   test_R_ci_quantilez#TestQuantileTest.test_R_ci_quantile!  se      F29Qd++,,!!qkBBB//66RuMMMMMMrz   zq, p, alternative, ref)r  r  rb  gͯI	?)r	  r<   rb  gɍQ%e?c                     t          j        t          j        ddd                    }t          j        ||||          }t          |j        |d           d S )Nr   r  r  r  rA  rk  r;   rl  )r   r  r   rf   rh  r   r  )rn   r  rA  rk  r  rq   r   s          rx   test_R_pvaluezTestQuantileTest.test_R_pvalue!  sW     F29Qd++,,!!qA;GGG
Ce444444rz   r  
continuousdiscreterk  rF  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 )Nr8   rq  r3   r  r  r   rZ   ro  r?  rd  )r!  r  r   r  r  r  rf   rh  rV  rZ  rY  r  )rn   r  rk  rF  r)  r  rA  r  r  r   rt  i_insiderq   s                rx   test_pval_ci_matchz#TestQuantileTest.test_pval_ci_match!  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	)))))	* 	*rz   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?r  r6  rb  ro  r  rl  ;   r9   rU   h   r<   p   )rA  ra  r(  r  rf  r  r$  )rf   rh  r   r  binomr%  )rn   rq   pvalue_expectedr   s       rx   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%@@@@@@rz   N)r   r   r   r  ri  r   r   r  r   r  rm  rp  ru  r  r   rz   rx   rf  rf  !  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rz   rf  c                       e Zd Zd Zej                            d          Ze                    d          Zej                            d          Ze                    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 d/g d0gfd1d2d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                            d3e
          d4             Zd5d6ddg d7g d8gfd9d:ddg d7g d7g d7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 dAg dAg dAg dAg dAgfgZej                            d3e          ej                                        dB                         ZdC ZdD ZdE ZdFS )GTestPageTrendTestc                 N    t           j                            d          | _        d S )Nr
  r5  r6  s    rx   r7  zTestPageTrendTest.setup_method/"  s    9((44rz   l   /*s )r4   r  )rY      i2  g<n?Fr  iu  gRn@?i,0  gY@?)r  r  I   rU  r  `   rQ  r  r  r	  r  1   r  +   ri  r  r  r  r  r  rU   r  r  r  r  )D   r  r  "   r  r  A   X   rV   r  r  r	  r	  C   E   r  rQ  r  rR  W   ri  r  r  r  r  )r  r\   U   rU  O   r[   \   V   rV   @   r   r  r  rb   r   Y   ru  r  r  r	  6   r\   B   r.  r  i
  gXY?r  )r=   r   g @r6   r  rZ   )r6   r5   r?   rY   r  rV   )r  r  rY   r[   rW   r  iL  gs˜?T)r5   r4   r3   r   )r4   r5   r   r3   ri     gĞ?)r4   r3   r   rz  r     g>K=?)r7   r6   r5   r4   r3   r   )r   r4   r5   r6   r3   r7   i  gqူ?)r6   r5   r4   r3   r   )r5   r   r4   r3   r6   r     ga?i  g;?)r8   r7   r6   r5   r4   r3   r   )r7   r6   r8   r5   r4   r3   r   r'  u   g[^6?zL, p, ranked, method, datac                     t          j        |||          }t          ||j                   t	          ||j                   t          ||j                   d S N)rankedr  rf   page_trend_testr   r  r   r  r  rn   LrA  r  r  rr  r   s          rx   test_accuracyzTestPageTrendTest.test_accuracyq"  sU    #DGGGQ&&&3:&&&VSZ(((((rz   i  g-lpW?)
rY   r:   r9   r8   r7   r6   r5   r4   r3   r   )
r   r9   r5   r8   r7   r6   r:   r4   r3   rY   i*  gh[?)
r:   r3   r9   r8   r7   r6   r5   r4   rY   r   rZ  i  g&]2?)r9   r8   r7   r6   r5   r4   r3   r   )r   r4   r6   r7   r5   r8   r3   r9   rI  c                     t          j        |||          }t          ||j                   t	          ||j                   t          ||j                   d S r  r  r  s          rx   test_accuracy2z TestPageTrendTest.test_accuracy2"  sW     #DGGGQ&&&3:&&&VSZ(((((rz   c                    t           j                            d          }d\  }}t          j        d|dz             }|                    t          j        |                    }|                    ||f          }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 )	Ni7
)rY   r  r   rS   Tr  F)predicted_ranks)
r   r  r  r   r  rf   rankdatar  r   r  )rn   r  r`  ra  r  permrr  ranksr  r  r  res4res5s                rx   test_optionszTestPageTrendTest.test_options"  sL   i##I..1)Aqs++ry||,,zz1a&!!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4rz   c                    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 )N)r>  r  o   )r  r[  k   )g      y   )r  rP  r
  )r        )   r	  t   r   r8   Fr  )r  r  r  i  gy&1l?r5   r  r  gHPsb?)
r   r   r   r   rf   r  r   r  r   r  )rn   rr  r  r   s       rx   test_Ames_assayz!TestPageTrendTest.test_Ames_assay"  s    ///Cx~~)Aq//#D4C+79 9 9 	S]C(((CJ::::#D4C+24 4 4 	S]C(((CJ::::::rz   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          j                            d          }t          t          d          5  t          j        |                    d                     d d d            n# 1 swxY w Y   t          t          d          5  t          j        |                    d                     d d d            n# 1 swxY w Y   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   r3   l   s' zPage's L is only appropriaterz  r{  z+`predicted_ranks` must include each integerr  r{  )rr  r  )r  r3   r4   )r   r3   r4   r4   r  z`data` is not properly ranked)r   r3   r4   Tr  z`data` contains NaNsFr  z`method` must be inekki)rr  r  z`ranked` must be boolean.)rr  r  )	r   r   rf   r  r   r  r  rm   r  )rn   r  r  s      rx   r  z'TestPageTrendTest.test_input_validation"  s   :-IJJJ 	( 	(!$'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(:-IJJJ 	& 	&!"%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&:-IJJJ 	* 	*!1a&)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*:-IJJJ 	+ 	+!QC5'***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ i##J//:-KLLL 	6 	6!#**V"4"4555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6:-KLLL 	6 	6!#**V"4"4555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 @: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(E77E;>E;(GGG/HH!H;I&&I*-I*J22J69J6K<<L L MM	M	&NNN/(O##O'*O'P--P14P1Q88Q<?Q<N)r   r   r   r7  r   r  r  r  	data_3_25
data_10_26tsr   r   r  r  ts2r  r  r  r  r  r   rz   rx   r  r  ."  sj       5 5 5" )



+
+C

7##I
)



+
+CH%%J .%y
A/5,

C$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( [93??[) )  @?)5 5 5$; ; ;&01 01 01 01 01rz   r  iv5z	fun, argsc                      | |ddi} | |ddi}t          ||           | j         d}t          j        t          t          j        |                    5   | |ddd d d d            d S # 1 swxY w Y   d S )Nr  r  rF  z#() got multiple values for argumentr   )r  rF  )r   r   r   r   r  reescape)rx	  rR  r   r  errs        rx   test_rename_mode_methodr  "  s     #t
$G
$
$C3#7##Ddl
?
?
?C	y	#	7	7	7 1 1T'00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   
A//A36A3c                      e Zd Zd Zd Zd Zd Zej        	                    dg d          ej        	                    ddd	g          d
                         Z
ej        	                    ddd	g          d             ZdS )TestExpectilec                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nr  r  r  r<   rF  )r   r  r  r   rf   	expectileri   rn   r  rq   s      rx   test_same_as_meanzTestExpectile.test_same_as_mean#  sW    i##B''JJBJ555rwqzzBBBBBrz   c                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nr  r  r  r   r  )r   r  r  r   rf   r  aminr  s      rx   test_minimumzTestExpectile.test_minimum#  W    i##B''JJBJ333RWQZZ@@@@@rz   c                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nr  r  r  r   r  )r   r  r  r   rf   r  amaxr  s      rx   test_maximumzTestExpectile.test_maximum#  r  rz   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   r3   )r   r  r$  )r  r*  rF  r  r  s        rx   rx	  z'TestExpectile.test_weights.<locals>.fun#  sH    Q5111AE	Aa1fI6!g+Q
2333rz   c                     t          j        |           t          j        |           f}t          j        || ||f          j        S )N)bracketrR  )r   r	  r	  r   minimize_scalarrq   )r*  rF  r  r  rx	  s       rx   
expectile2z.TestExpectile.test_weights.<locals>.expectile2#  sL    fQii*G+C23UG1DF F FFGHrz   rY   r/	  )r   r  r  rf   r  r   )
rn   r  r  ra  r*  rF  r  r   r  rx	  s
            @rx   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!!!!!rz   rF  )r  g?r<   g/#    ?r=  ra  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  rY   rn  r<   c                 &    t          | |           d S r[  )r   r*  r4  s     rx   	assert_opz:TestExpectile.test_expectile_properties.<locals>.assert_ope#  s    1%%%%%rz   c                     | |k     sJ d S r[  r   r  s     rx   r  z:TestExpectile.test_expectile_properties.<locals>.assert_opi#      1uuuuuurz   c                     | |k    sJ d S r[  r   r  s     rx   r  z:TestExpectile.test_expectile_properties.<locals>.assert_opm#  r  rz   r6   )r  r<   r=  r   N)r   r  r  r  r   rf   r  r   exponentiallogisticr_)rn   rF  ra  r  rq   r.  rr   r  s           rx   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....	
 	
 	
 	
 	
rz   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  r3   )r*  r  r   r<   r  r   r   r_   r  )r   r  r  paretologspacelog10r  r  rf   r  r  diff)rn   ra  r  rq   e_list	alpha_seqrF  s          rx   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)*******rz   N)r   r   r   r  r  r  r  r   r   r  r  r  r   rz   rx   r  r  #  s        C C C
A A A
A A A
" " "4 [:::  [S2t*--_
 _
 .- _
B [S2t*--+ + .-+ + +rz   r  c            	          e Zd Zg dZdg dej        ej        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ej                            dddg          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	@re	  Q?r  p=
ף @r  gp=
ף@gq=
ףp@gRQ?Gz?g
ףp=
?r  gHzG?g      @re	  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?ry  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   r3   r?   c                     d}t          j        t          |          5  t          j        |                    | j        |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   rH   )r   r   r   rf   lmomentrd   rr  r  r  s      rx   test_dtype_ivzTestLMoment.test_dtype_iv#  s    >]:W555 	F 	FM"**TYbm*DDEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   4A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   rf   r  r   r   rr  r  r  s     rx   test_dtype_iv_non_numericz%TestLMoment.test_dtype_iv_non_numeric#  s    >]:W555 	= 	=M"(49F;;;<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   3AA"%A"r  r   r_   r  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   rf   r  rd   rr  )rn   r  ro   r  s       rx   test_order_ivzTestLMoment.test_order_iv#  s    >]:W555 	> 	>M"**TY//u====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>   /AA!ArT   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 integerr   rS   r  )rn   rT   ro   r  s       rx   test_axis_ivzTestLMoment.test_axis_iv#  s    -]:W555 	< 	<M"**TY//d;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<r  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  )rn   r  ro   r  s       rx   test_sorted_ivzTestLMoment.test_sorted_iv#  s    3]:W555 	@ 	@M"**TY//????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@r  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  )rn   r  ro   r  s       rx   test_standardize_ivzTestLMoment.test_standardize_iv#  s    8]:W555 	J 	JM"**TY//[IIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Jr  r   r5   ri  FT	presortedc                    |                     g d          }|s5t          j        |          dd                              |d                   }|rt	          | j                  n| j        }|                     |          }t          j        ||||          }t          |||                     |          dz
                      d S )N)g0ʻEH?gk?gz[?g+3 ?r3   r   )r  r  )	rd   rj   rk   multiplyr  rr  rf   r  r1   )rn   r  r  r  ro   r  rr  r   s           rx   test_lmomentzTestLMoment.test_lmoment#  s     jj B B B C C  	3&++abb/**3q622C$-<vdi   49zz$mD%[SSSSE!2!21!4566666rz   c                 "   |j         }|                    | j                  }t          j        |                    ||                    }|                    t          j        |          |          }t          ||d           |j        }|                    g d          }t          j        |                    ||                    }t          j        |                    |t          |                              }t          ||           d S )Nr  rl  r  )	r   rd   rr  rf   r  r  r1   int64r+   )rn   ro   rI   r3
  r   r  s         rx   
test_dtypezTestLMoment.test_dtype#  s    
DI&&mBIIfe4455iif--u55St,,,,OOO,,mBIIfe4455mBIIf.>r.B.BCCDDS!!!!!rz   c                 4   t           j                            d          }|                    d          }t          j        |                    |          |          }|                    t          j        ||                    }t          ||           d S )Nl   jU3a )rY   rZ   r  rS   )r   r  r  rf   r  rd   r1   )rn   rT   ro   r  rq   r   r  s          rx   r<  zTestLMoment.test_axis#  s     i##$9::JJHJ%%mBJJqMM555jjqt44455S!!!!!rz   N)r   r   r   rr  mathrm   r  not_integersr  r%   r  r   r   r  r  r  r  r  r"  r%  r<  r   rz   rx   r  r  #  s       
N 
N 
ND dh9LF F F
 = = =
 [WlaR)))5M&MNN> > ON>
 [V\22< < 32<
 [X|44@ @ 54@
 []L99J J :9J
 [Wq!\\\&:;;[]UDM::[[5$-887 7 98 ;: <;7$" " " [VaV,," " -," " "rz   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ej                            d
          ej                            d          d                         Z	ej                            d          d             Z
 ed          d             Zd Zej                            d          d             Zd Zd ZdS )TestXP_MeanrT   Nr   r_   )r  r3   r  NTrX  Fc                    t           j                            d          }|                    d          }|                    |          }d x}}	|rB|                    d          }|                    |          }	t          j        ||          \  }}t          ||	||          }
t          j        ||||          }t          |
|                    |                     d S )N   -fH rv  r   )r  rT   rX  )r   r  r  rd   r  r!   rt	  r1   )rn   ro   rT   r  rX  r  rq   x_xpr  w_xpr   r  s               rx   test_xp_mean_basiczTestXP_Mean.test_xp_mean_basic#  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__-----rz   c                     |                     d          |                    d          }}d}t          j        t          |          5  t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r6   z/Array shapes are incompatible for broadcasting.r   r/	  )r   r   r   r   r   r!   )rn   ro   rq   r  r  s        rx   test_non_broadcastablez"TestXP_Mean.test_non_broadcastable$  s    yy~~rxx{{1C]:W555 	# 	#Q""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   A''A+.A+rS  rR  c                    |                     g d          }t          |                     g d          |          }t          ||                     |j                             t          |                     g d          |          }t          ||                     t          j                              t          |                     g d          |          }t          ||                     t          j                             d S )Nr  r
  r/	  )r   r   r   )r   r   r   )rd   r!   r1   rm   r   r  )rn   ro   r  r   s       rx   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0rz   r;  c                    |                     d          }|dk    }|                    ||j        |          }t          |          rEt	          j        t          d          5  t          |d           d d d            n# 1 swxY w Y   nDt	          j        t          d          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 S )Nr   r4   r  r   r   r   r   rW  r   rY   )r  r   )r   r  rm   r(   r   r   r  r!   r   rd   r2   ri   r1   r  )	rn   ro   rq   r  r  r  r  r   r  s	            rx   rK  zTestXP_Mean.test_nan_policy'$  sD    IIcNNQHHT261%%  	0y0OPPP 0 0w////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z1PQQQ 0 0w////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {{k222jj  c"""c""" qV,,,ggahS!!! ''"++((411ryy~~w6JJJggahS!!!!!s$   "B  BB'CC	C	r  c                 l   |                     d          }|                    |dk    |j        |          }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   r4   zAfter omitting NaNs...r   r   r   )
r   r  rm   r   r  r   r!   r   rd   r2   rn   ro   rq   r  r   r  s         rx   test_nan_policy_warnsz!TestXP_Mean.test_nan_policy_warnsJ$  s    IIcNNHHQ!VRVQ'' +\.888 	& 	&1rv:&999C**RV$$CC%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&   A	B))B-0B-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   rS   r   )r   r  r   r!   rd   rm   r2   rn   ro   r  r   r  s        rx   rB  zTestXP_Mean.test_emptyV$  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 4ignore:overflow encountered in reduce:RuntimeWarningc                    |                     |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 )NrH   r   )over)r   r   r	  r   rd   r  r!   ri   r  r   r  r1   r   rn   ro   r	  x_npr.  r   r  s          rx   r%  zTestXP_Mean.test_dtypeg$  sS    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 )NrY   r   r/	  )r   r2   r!   r   s       rx   test_integerzTestXP_Mean.test_integer{$  sl    IIbMMIIcNNXa[[111A...A0F0F0FGGGGGrz   c                    t           j                            d          }|                    d          \  }}}}t          |                    ||dz  z             |                    ||dz  z                       }t          j        ||dz  z   ||dz  z             }t          ||                    |                     d S )Nr-  )r5   r  r  r/	  )r   r  r  r!   rd   rt	  r1   )	rn   ro   r  rq   rr   wxwyr   r  s	            rx   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__-----rz   )r   r   r   r   r   r  r0  r2  r   r4  rK  r   r9  rB  r%  rE  r  r   rz   rx   r*  r*  #  s       [V%;%;%;<<[Yt55[Z%77. . 87 65 =<. # # # [ WXX[ VWW1 1 XW YX1 [9 " " "@ &&&	& 	& '&	&" " "" [> " " ""H H H. . . . .rz   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 e	d          d             Z
 e	d          d             Zd Zej                            d          d             Zd Zd ZdS )
TestXP_VarrT   r+  rX  FTr}   r   r   r   rW  r   c                 H   t           j                            d          }|                    d          }t           j        }|dk    r:|                    |j                  dk    }	t           j        ||	<   t           j        }|                    |          }
t          |
||||          }t          j
                    5  t          j        ddt                      |||||	          }d d d            n# 1 swxY w Y   t          ||                    |                     d S )
Nr-  rv  r   r  r<   )rT   rX  r}   r   r   r  )rT   rX  r  )r   r  r  r   r  rm   nanvarrd   r"   r   r   r   r   r1   )rn   ro   rT   rX  r}   r   r  rq   var_refnan_maskr.  r   r  s                rx   test_xp_var_basiczTestXP_Var.test_xp_var_basic$  sg   
 i##N33JJy!!&zzqwz//#5H&AhKiGzz!}}dZ!+- - - $&& 	L 	L#=~O O O'!$
KKKC	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
 	RZZ__-----s   =+C44C8;C8c                     t          |                    ddg          d          }t          ||                    |j                             d S )Nr   r   r4   r|   )r"   rd   r1   rm   )rn   ro   r   s      rx   r4  zTestXP_Var.test_special_cases$  sH    bjj"b**q999RZZ//00000rz   c                    |                     d          }|dk    }|                    ||j        |          }t          |          }t          |d          }|                    |j                  }t          ||           t          ||           t          |d          }|                    ||                    }t          ||           d S )Nr   r4   rW  r   r   )r   r  rm   r"   rd   r2   r   r1   )rn   ro   rq   r  r  r  r  r   s           rx   rK  zTestXP_Var.test_nan_policy$  s    IIcNNQHHT261%% qzzq[111jj  c"""c""" aF+++ffQuXS!!!!!rz   r  c                 l   |                     d          }|                    |dk    |j        |          }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 r7  )
r   r  rm   r   r  r   r"   r   rd   r2   r8  s         rx   r9  z TestXP_Var.test_nan_policy_warns$  s    IIcNNHHQ!VRVQ'' +\.888 	& 	&!bf*888C**RV$$CC%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&r:  c                     d}t          j        t          |          5  t          |                    dd|j        g          d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r3   r   r   )r   r   r   r"   rd   rm   r  s      rx   r(
  z TestXP_Var.test_nan_policy_raise$  s     2]:W555 	D 	DBJJ1bf~..7CCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   -AAA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"   rd   rm   r2   r=  s        rx   rB  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>  r?  c                 n   |                     |j                  j        }t          j        ||dz  gt          j                  }|                    |          }t          |          }t          j        |          }t          j                            |t          j	                   t          ||                    |                     t          ||j                  }|                    t          j        t          j        |t          j                                      }t          ||           d S )Nr3   rH   )r   r   r	  r   rd   r"   r   r  r   r  r1   r   rB  s          rx   r%  zTestXP_Var.test_dtype$  s     hhrz""&z3A,bj999zz$dmmfTll

RV,,,RZZ__--- d"*---jj
4rz B B BCCDDS!!!!!rz   c                     |                     d          }|                     d          }t          t          |          t          |                     d S )NrY   r   )r   r2   r"   r   s       rx   rE  zTestXP_Var.test_integer$  sB    IIbMMIIcNN

GAJJ/////rz   c                 B   t           j                            d          }|                    d          \  }}t          |                    ||dz  z                       }t          j        ||dz  z             }t          ||                    |          d           d S )Nr-  )r3   r  r  F)check_dtype)r   r  r  r"   rd   r   r1   r  s          rx   r  zTestXP_Var.test_complex_gh22404$  s    i##N33zz'""1bjjQrT**++fQ2XRZZ__%@@@@@@rz   N)r   r   r   r   r   r  rO  r4  rK  r   r9  r(
  rB  r   r%  rE  r  r   rz   rx   rJ  rJ  $  s       [V%;%;%;<<[Z%77[\Aq622[\K+@AA. . BA 32 87 =<.,1 1 1
" " "" &&&	& 	& '&	& &&&D D '&D" " "" [> " " "0 0 0A A A A Arz   rJ  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r  r  r   r 	  r   r3   r  )	r   r  r  rd   r   r2   r   r  
atleast_1d)ro   r  r  rq   rT   x_outaxis_outs          rx   test_chk_asarrayr]  $  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     rz   rv  (  r  r'  re
  r  r   collectionsr   	itertoolsr   hypothesis.extra.numpyextranumpyr  r  r<  numpy.testingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   scipy.statsrf   scipy.stats._mstats_basic_mstats_basicr  scipy.stats._ksstatsr   scipy.special._testutilsr   scipyr   r   common_testsr   scipy.stats._axis_nan_policyr   r   r   r   r   r   ry  r   r   r    r!   r"   r#   scipy._lib._utilr$   scipy.conftestr%   scipy._lib._array_apir&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   scipy._lib._array_api_no_0dr1   r2   scipy._lib.array_api_extra_libarray_api_extrarj   lazy_xp_modulesr   r   r	  r  re   r  r   r   r   r   r   rF   r   r   r  r  r3  r  thread_unsafer  r  r%  r-  r/  r~  r  r  r  r  r  r  r  r  rF  rD  r  r  r  r  r  r  r  r  r.  r   rS  rX  rU  r  r  r  r  r  r  r  r  	compositer  r   r  rO  PowerDivCaser  r  r   r  r  r  r  r  r  r  r  r  r  r1  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r$  r1  r3  rM  r^  r`  r  rh  rj  rl  rp  rn  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r	  r	  r	  r  rC	  r	  rY	  r  r}	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r	  r:
  r7
  r
  r
  r
  r
  r
  r
  r  r&  r7  r1  rf  r  r  r  r  rq   rr   wilcoxonr  r  r3  r  r  r  r  r  r*  rJ  r]  r   rz   rx   <module>rx     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 & & & & & & . . . . . .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 I H H H H H H H ( ( ( ( ( ( ( ( (';/ K1  
E


u%%u   %((e      !&( (	 2 2 238
: 
:uDDDeLLuDDDeLL333U;;LT LT LT LT LT LT LT LT^p# p# p# p# p# p# p# p#f 5>""L> L> L> L> L> L> L> #"L>^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 ~5T "566V: V: 76V:r4 4 4 < < < "5663 3 763$TE TE TE TE TE TE TE TEnY2 Y2 Y2x	* 	* 	*  & & &Ro# o# o# o# o# o# o# o#d0 0 0D) ) )3 3 3"rN rN rN rN rN rN rN rNj 5:I3 I3 I3 I3 I3 I3 I3 I3X 59+E +E +E +E +E +E +E +E\ 5:j" j" j" j" j" j" j" j"Z 5<  f& f& f& f& f& f& f& ! f&R 5=!!0 0 0 0 0 0 0 "!0* 5-..GL GL GL GL GL GL GL /.GLT1 1 1 59U" U" U" U" U" U" U" U"p 5<  \" \" \" \" \" \" \" ! \"~
1 
1 
1 
1 
1 
1 
1 
1 5:_" _" _" _" _" _" _" _"D 5>""`" `" `" `" `"# `" `" #"`"F    ! < 5$%%Q) Q) Q) Q) Q) Q) Q) &%Q)hw8 w8 w8 w8 w8 w8 w8 w8t 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 5)**A< A< A< A< A< A< A< +*A<H 5?##(' (' (' (' (' (' (' $#('V 5*++-T -T -T -T -T -T -T ,+-T`+( +( +( +( +( +( +( +(` 5>""jQ jQ jQ jQ jQ jQ jQ #"jQ^c. c. c. c. c. c. c. c.L	sE sE sEl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 
/ 
/ 
/ 
/ 
/ 5?E$>??Q% Q% @?Q%h7A 7A 7At   DEEjF jF jF jF jF jF jF FEjFZD5 D5 D5 D5 D5 D5 D5 D5NC7 C7 C7 C7 C7 C7 C7 C7L 5?##IB IB IB IB IB IB IB $#IBXL L L$ 5?##v* v* v* v* v* v* v* $#v*r 5-..) ) ) ) ) ) ) /.), t4HIIRSSSTT< < UT TS JI<6% % % STTRSS5$%%:> :> &% TS UT :>z $'QRRR  SR. 5$%%k2RSS% % TS &%%: 5>""L+ L+ L+ L+ L+ L+ L+ #"L+^*- *- *- *- *- *- *- *-Z 5>""- - - - -> - - #"-2 5%&&- - - - -~ - - '&-> 5#$$- - - - -^ - - %$-A A A A A A A A. 5$%%61 61 61 61 61 61 61 &%61r1 1 1"(> (> (>V 15D+ + + + + D D DD D DD D D 5;q3 q3 q3 q3 q3 q3 q3  q3h 5;n3 n3 n3 n3 n3 n3 n3  n3b 5;y% y% y% y% y% y% y%  y%x 5:S3 S3 S3 S3 S3 S3 S3 S3l( ( (.9 9 90[; [; [;|.3 .3 .3 .3 .3 .3 .3 .3b 5?##0V 0V 0V 0V 0V 0V 0V $#0Vf 5?##.2 .2 .2 .2 .2 .2 .2 $#.2b 5())C< C< C< C< C< C< C< *)C<L 5>""t) t) t) t) t) t) t) #"t)n 5=!!k k k k k k k "!k\ 5())`4 `4 `4 `4 `4 `4 `4 *)`4F#A #A #A #A #A #A #A #ALl  l  l  l  l  l  l  l ^Z Z Z Z Z Z Z Zz? ? ? ? ? ? ? ?D 5&''S+ S+ S+ S+ S+ S+ S+ ('S+l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 5=!!\" \" \" \" \" \" \" "!\"~J. J. J. J. J. J. J. J.ZrA rA rA rA rA rA rA rAj! ! ! ! !rz   