
    >qj                    T   d Z ddlZddlZddlZddlmZ ddlmZ ddlm	c m
Z ddlZddlZddlmZmZmZmZmZmZmZ ddlZddlmZ ddl
mZmZmZ ddl
Zddl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)m*Z*m+Z+m,Z,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJ ddlKmLZLmMZMmNZN ddlOmPc mQZR ddl5mSZS egZTej                  j                  ZVej                  j                  ZW	  eg deX      ZY eg deX      ZZ eg deX      Z[ eg deX      Z\ eg deX      Z] eg deX      Z^ eg deX      Z_ G d d      Z` G d d      Za eBej                         G d d              Zc G d! d"      Zd G d# d$      Ze G d% d&      Zf eBej                         G d' d(             Zh eBej                         G d) d*             Zi G d+ d,      Zj eBej                         G d- d.             Zl G d/ d0      Zm eBej                         G d1 d2em             Zo eBej                         G d3 d4em             Zq G d5 d6      Zr eBej                         G d7 d8             Zt eBej                         G d9 d:             Zv eBej                         G d; d<             Zx eBej                         G d= d>             Zz eBej                         G d? d@             Z| eBej                         G dA dB             Z~ eBej                         G dC dD             Z eBej                         G dE dF             Z G dG dH      Z eBej                         G dI dJe             Z eBej                         G dK dLe             Zej                  j                  dM        Z eBej                         G dN dO             Z G dP dQ      Z edRg dS      Z eg dTddddUdVdU ej                  dW      z  dX ej                  dY      z  z   z  dVdZ ej                  d[      z  dZ ej                  d\      z  z   z  d]S       eg dTg d^ddd_dVdU ej                  d[      z  dZ ej                  dW      z  z   dZ ej                  d`      z  z   z  dVdV ej                  dW      z  da ej                  d[      z  z   dV ej                  db      z  z   z  dcS       eg dTdZdddUdVdU ej                  dW      z  dX ej                  dY      z  z   z  dVdZ ej                  d[      z  dZ ej                  d\      z  z   z  d]S       eg ddg ddddddddS      gZ eg dddddddS       e ej2                  g g g g      j"                  dddg deg deg deg deS       e ej2                  g g g g      dddg g g g S      gZ eBej&                         G df dg             Z eBej*                         G dh di             Z eBej.                         G dj dk             Z eBej2                         G dl dm             Z eBej6                         G dn do             Z eBej:                         G dp dq             Zej                  j?                  dr      ej                  j?                  ds       eBej@                         G dt du                           Zej                  jE                  dv eJej                   ej4                  dw      df       eJej@                   ej4                  dw       ej4                  dw      f      g      dx        ZdddydzZ eBejJ                  ejL                         G d{ d|             Z eBejJ                         eVd}d~      ej                  j?                  d       G d d                           Z eBejJ                         G d d             Z eBejJ                         G d d             Z eBejJ                         G d d             Z eBejJ                         G d d             Z eBejL                         G d d             Z eBej                         G d d             Z eBej^                         G d d             Z G d d      Z eBejd                         G d de             Z eBejh                         G d de             Z eBejl                         G d de             Z G d d      Z eBejr                         G d d             Z eBejv                         G d d             Z eBejz                         G d d             ZddddddZd Zd Zd Z eBej                         G d d             Z eBej                         G d d             Z eBej                         G d d             Z eBej                         G d d             Z G d d      Z eBej                         G d d             Z eBej                         G d d             Z eBej                         G d d             Z eBej                         G d d             Z eBej                         G d d             Z eBej                         G d d             Z G d d      Z G d d      Z G d d      Z G d dë      Z eBej                         G dĄ dū             Z eSdddȫ      dɄ        Z eBej                         G dʄ d˫             Z G d̄ dͫ      Z eBej                         G d΄ dϫ             Z eBej                         G dЄ dѫ             Z eBe2       G d҄ dӫ             Z eBe3       G dԄ dի             Zej                  j                  dd׬      d؄        Z eVddڬ      ej                  jE                  d eJej                         eJej6                         eJej:                         eJej2                        g      d܄               Zy)z Test functions for stats module

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

    Additional tests by a host of SciPy developers.
    N)
namedtuple)product)assert_assert_equalassert_almost_equalassert_array_almost_equalassert_array_equalassert_approx_equalassert_allclose)raises)arrayarangepower)kolmogn)FuncData)optimizespecial   )check_named_results)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_result_typeis_jaxis_cupyxp_copy
xp_promotemake_xp_pytest_param)xp_assert_closexp_assert_equalxp_assert_less)_apply_over_batch)	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            	       p   e Zd Z ej                  ej
                        j                  Z ee	j                        d        Z ee	j                        ej                  j                  d      d               Z ee	j"                        d        Z ee	j&                        d        Zej                  j+                  de	j&                  e	j,                  g      d        Z edd	
      ej                  j+                  d ee	j&                  d       ee	j,                  d      g      d               Z ee	j,                        d        Z ee	j&                  e	j,                        d        Z edd
       ee	j&                  e	j,                        d               Z ee	j<                        d        Zy)TestTrimmedStatsc           	         t        |      }|j                  t        |      }t        j                  |dd      }t        ||j                  d             t        j                  |dd      }t        j                  |d       }t        ||       |j                  |j                  d      d	      }t        j                  |d 
      }t        ||j                  |             t        j                  |d
      }t        ||j                  |d
             t        j                  |d
      }t        ||j                  |d
             t        j                  |dd       }t        ||j                  d             t        j                  |dd      }g d}t        ||j                  |             t        j                  |ddd      }g d}t        ||j                  |             t        j                  |      ddd f   j                  |j                  d      }	t        j                  |	dd      }dddd|j                  |j                  |j                  g}t        ||j                  |             t        j                  |dd      }ddd d!|j                  |j                  |j                  |j                  |j                  g	}t        ||j                  |             t        j                  |dd"d      }ddd d!|j                  |j                  |j                  |j                  |j                  g	}t        ||j                  |             y )#Ndtyper8   r>   TT      @)FFlimits	inclusiverS        O@r?   r=   axisr   r   )r8   =   )rS   rY   g     ?@)r8      )         '@r?   
            TF)rS   rT   rY   )      %@r]   r?   r^   r_   r`   ra   T)copy)r   ra   r=   rE   rF   rG   r:   r^      r[   FT)r(   asarrayXstatstmeanr4   reshaper   meanxpxatsetnan)
selfxpdefault_dtypexyy1y2x_2dy_truex_2d_with_nans
             [/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/scipy/stats/tests/test_stats.py
test_tmeanzTestTrimmedStats.test_tmeanR   s   (,JJqJ.KK6<02::c?+[[6^D[[4(Bzz"))C.&1KK4(2774=)KK1%2774a701KK1%2774a701KKW482::d+,KKW15.2::f-.KKWAN02::f-.tRW-11"&&t1DKKgA>S#sBFFBFFBFF;2::f-.KKW15RRH2::f-.KKW"/a9r2r266266266266266J2::f-.    z>ignore:invalid value encountered in divide:RuntimeWarning:daskc                    |j                  t        j                               }t        j                  |dd      }t        ||j                  d             t        j                  |d       }t        ||j                  |d             |j                  |j                  d      d	      }t        j                  |d 
      }t        ||j                  |d             t        j                  |d
      }t        ||j                  dd             t        j                  |d
      }t        ||j                  dd             t        j                  |ddd      }t        |d   |j                  d             t        j                  |ddd      }t        |d   |j                  d             t        |d   |j                  |j                               y )NrO   rP   rR   g@rU   r   
correctionrV   rW   rX   r   r=   g     v@)r?   g㪪@r   r;   )rS   rY   rT   rC   r   r<   g@)ri   rj   tolistrk   tvarr4   varrm   r   fullr5   rr   )rs   rt   rv   rw   rz   s        r}   	test_tvarzTestTrimmedStats.test_tvar   sc   
 JJqxxz"JJq<@2::&89:JJq&266!623zz"))C.&1JJt$'266$1656JJt!$2774/0JJt!$277445 JJtFlK!bjjo. JJtFlK!bjj):;<!bjj01r   c                    |j                  t        j                               }t        j                  |dd      }t        ||j                  d             t        j                  |d       }t        ||j                  |d             y )NrO   rP   gBĆ/H@rU   r   r   )ri   rj   r   rk   tstdr4   stdrs   rt   rv   rw   s       r}   	test_tstdzTestTrimmedStats.test_tstd   sc    JJqxxz"JJq&,/2::&89:JJq&266!623r   c           	      J   |j                  d      }t        t        j                  |      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |dd      |j	                  d             |j                  |d      }t        t        j                  |dd      |j	                  d	dg             t        t        j                  |d
      |j	                  g d             t        t        j                  |d       |j	                  d             t        j                  |j                  d      d      j                  |j                        }t        t        j                  |      |j	                  |j                               |j                  |j                  d      d      }t        j                  |dd
      }t        ||j	                  t        j                  dddg             y )N      $@        r   
lowerlimitF)r   rT         ?r;   r8          @r   rX   )r   r         @      @       @r?      r:   r:   r:   )r   rY   r>   r`   )r   r5   rk   tminri   rm   ro   rp   rq   rr   nprs   rt   rv   ress       r}   	test_tminzTestTrimmedStats.test_tmin   sk   IIcN

1rzz"~6

13RZZ^D

1eDbjjQSnUJJq&!

1eD

B8,	.

11-rzz:N/OP

140"**R.AFF299S>1%))"&&1

1rzz"&&'9: JJryy}f-jjqq1RZZAr(:;<r   tfunc                 (    t         |d      d       y )Nr:   )r   )rs   r   s     r}   test_tmin_tmax_scalar_inputz,TestTrimmedStats.test_tmin_tmax_scalar_input   s    T!Wa r   T'lazy -> reduced nan_policy capabilities
eager_onlyreasonz	tfun, refr         "@c                 R   |j                  d      }|j                  |d<   t         ||d      |j                  |             d}t	        t
        |      5   ||d       d d d        d}t	        t
        |      5   ||d	       d d d        y # 1 sw Y   0xY w# 1 sw Y   y xY w)
Nr   r>   omit
nan_policyThe input contains nan valuesmatchraisenan_policy must be one of...foobar)r   rr   r5   ri   assert_raises
ValueError)rs   r   refrt   rv   msgs         r}   test_tmin_tmax_nanpolicyz)TestTrimmedStats.test_tmin_tmax_nanpolicy   s     IIcNvv!Q62BJJsOD-:S1 	(w'	(,:S1 	)x(	) 	)	( 	(	) 	)s   B=BBB&c           
         |j                  d      }t        t        j                  |      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |dd      |j	                  d             |j                  |d      }t        t        j                  |dd      |j	                  dd	g             t        t        j                  |d
      |j	                  g d             t        t        j                  |d       |j	                  d             t        j                  |j                  d      d      j                  |j                        }t        t        j                  |      |j	                  |j                               t        j                         5  t        j                  ddt               |j                  |j                  d      d      }t        j                  |dd
      }t        ||j	                  dddt        j                  g             d d d        y # 1 sw Y   y xY w)Nr   r   r?   
upperlimitF)r   rT   r   r         @r   rX   )r         @rQ   r   r   ignorezAll-NaN slice encounteredr   r   r_   )r   rY   r9   r=   )r   r5   rk   tmaxri   rm   ro   rp   rq   rr   warningscatch_warningsfilterwarningsRuntimeWarningr   r   s       r}   	test_tmaxzTestTrimmedStats.test_tmax   s   IIcN

1rzz"~6

13RZZ^D

1eDbjjQSnUJJq&!

1eD

B8,	.

11-rzz:N/OP

140"**R.AFF299S>1%))"&&1

1rzz"&&'9: $$& 	A##5~G

299R=&1A**Q2A6CCQ2rvv,>!?@	A 	A 	As   BII&c                 n   |j                  |j                  d|j                        d      j                  }t	        |      rt        |      n|j                  }t        t        j                  |      |j                  ddg|             t        t        j                  |      |j                  ddg|             t        t        j                  |d	      |j                  |j                  d
g             t        t        j                  |d      |j                  d|j                  g             y )Nr^   rM   r8   r;   r   r;   r:   r?   r<   r   r   r9   r   r   )rm   r   int16Tr%   r(   rN   r5   rk   r   ri   r   rr   )rs   rt   rv   expect_dtypes       r}   test_tmin_tmax_int_dtypez)TestTrimmedStats.test_tmin_tmax_int_dtype   s    JJryy288y4f=??
 0=Q/?'+QWW

1rzz1a&z'MN

1rzz1a&z'MN 	

13RZZ5MN

13RZZRVV5MNr   z%Only with data-dependent output dtypec                     |j                  dd      }t        t        j                  |d d d f         |       t        t        j                  |d d d f         |       y )Nl            l   
        )r   r5   rk   r   r   rs   rt   rv   s      r}   test_gh_22626zTestTrimmedStats.test_gh_22626   sJ     IIeX&

1T1W:.2

1T1W:.2r   c                 h   |j                  t        j                               }t        j                  |dd      }|j                  g d      }t        ||j                  |d      t        |      dz  z         t        t        j                  |dd	g
      t        j                  |d 
             y )N)r9   r>   rh   rR   )r   rQ   r   r   r   r   r   rA   rd   r^   rU   )ri   rj   r   rk   tsemr4   r   r)   )rs   rt   rv   rw   y_refs        r}   	test_tsemzTestTrimmedStats.test_tsem  s    JJqxxz"JJq=A

/0266%A669LLM

1b"X6

1T8RSr   N) __name__
__module____qualname__r   finfofloat64	precisiondprecr+   rk   rl   r~   r   pytestmarkr   r   r   r   r   r   parametrizer   r   skip_xp_backendsr3   r   r   r   r   r   r    r   r}   rK   rK   N   s   BHHRZZ **Eu{{#,/ $,/\ uzz"[[H2 #28 uzz"4 #4 uzz"= #=* [[Vejj%**%=>! ?! .WX[[[+?

B+O+?

B+O+Q R	)R Y	) uzz"A #A0 uzz5::.O /O .UVuzz5::.3 / W3 uzz"T #Tr   rK   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y)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                 b    t        j                  t        t              }|d   }t        |d       y Nr   r   )rk   pearsonrrj   r
   rs   rw   rs      r}   test_pXXzTestPearsonrWilkinson.test_pXX  s%    NN1QaDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   rj   BIGr
   r   s      r}   
test_pXBIGz TestPearsonrWilkinson.test_pXBIG  s%    NN1S!aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   rj   LITTLEr
   r   s      r}   test_pXLITTLEz#TestPearsonrWilkinson.test_pXLITTLE   s%    NN1V$aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   rj   HUGEr
   r   s      r}   test_pXHUGEz!TestPearsonrWilkinson.test_pXHUGE%  %    NN1T"aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   rj   TINYr
   r   s      r}   test_pXTINYz!TestPearsonrWilkinson.test_pXTINY*  r   r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   rj   ROUNDr
   r   s      r}   test_pXROUNDz"TestPearsonrWilkinson.test_pXROUND/  s%    NN1U#aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r   r   r
   r   s      r}   test_pBIGBIGz"TestPearsonrWilkinson.test_pBIGBIG4  s%    NN3s#aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pBIGLITTLEz%TestPearsonrWilkinson.test_pBIGLITTLE9  s%    NN3v&aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pBIGHUGEz#TestPearsonrWilkinson.test_pBIGHUGE>  %    NN3t$aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pBIGTINYz#TestPearsonrWilkinson.test_pBIGTINYC  r   r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pBIGROUNDz$TestPearsonrWilkinson.test_pBIGROUNDH  s%    NN3u%aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r   r   r
   r   s      r}   test_pLITTLELITTLEz(TestPearsonrWilkinson.test_pLITTLELITTLEM  s%    NN6&)aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pLITTLEHUGEz&TestPearsonrWilkinson.test_pLITTLEHUGER  %    NN6$'aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pLITTLETINYz&TestPearsonrWilkinson.test_pLITTLETINYW  r  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pLITTLEROUNDz'TestPearsonrWilkinson.test_pLITTLEROUND\  s%    NN6%(aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r   r   r
   r   s      r}   test_pHUGEHUGEz$TestPearsonrWilkinson.test_pHUGEHUGEa  %    NN4%aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pHUGETINYz$TestPearsonrWilkinson.test_pHUGETINYf  r  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pHUGEROUNDz%TestPearsonrWilkinson.test_pHUGEROUNDk  %    NN4&aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r   r   r
   r   s      r}   test_pTINYTINYz$TestPearsonrWilkinson.test_pTINYTINYp  r  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r   r   r   r
   r   s      r}   test_pTINYROUNDz%TestPearsonrWilkinson.test_pTINYROUNDu  r  r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r   r   r
   r   s      r}   test_pROUNDROUNDz&TestPearsonrWilkinson.test_pROUNDROUNDz  s%    NN5'aDAc"r   N)r   r   r   __doc__r   r   r   r   r   r   r   r   r   r   r  r  r  r  r
  r  r  r  r  r  r  r   r   r}   r   r     sp    #
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#r   r   c                   *   e Zd Zd Zd Zd Zd Zd Zej                  j                  dddg      d	        Zd
 Zd Zd Zej                  j                  d      ej                  j                  d      d               Zej                  j                  d      ej                  j                  d      d               Zej                  j                  d      d        Zej                  j                  dg d      d        Zd Zej                  j                  d      d        Zd Zej                  j/                  d      ej                  j1                  d      ej                  j                  dd      ej                  j                  dd      d                             Zej                  j4                  ej                  j                  dd      d                Zej                  j                  d!d"d#g      d$        Zd% Zd& Zej                  j                  d      ej                  j                  d      d'               Zd( Z ej                  j                  d!g d)      ej                  j                  dg d      d*               Z!y+),TestPearsonrc                     t        j                  |j                  t              |j                  t                    }d}t	        |||       t        |j                  |j                         y )Ncorrelationpvaluert   )rk   r   ri   rj   r   r5   r  	statistic)rs   rt   r   
attributess       r}   test_pearsonr_result_attributesz,TestPearsonr.test_pearsonr_result_attributes  sE    nnRZZ]BJJqM:.
C37r   c           
         |j                  d      }t        j                  ||      \  }}t        ||j	                  d      d       t        ||j	                  d      t        j                  dt        j                  d      z               y )Nr   r   V瞯<atolr   r8   r   rk   r   r4   ri   r   sqrtspacingrs   rt   ar   probs        r}   test_r_almost_exactly_pos1z'TestPearsonr.test_r_almost_exactly_pos1  sc    IIcN..A&42::c?7 	bjjoBGGAbjjo<M4NOr   c           
          |j                  d      }t        j                  ||       \  }}t        ||j	                  d      d       t        ||j	                  d      t        j                  dt        j                  d      z               y )Nr         r%  r&  r   r8   r   r(  r+  s        r}   test_r_almost_exactly_neg1z'TestPearsonr.test_r_almost_exactly_neg1  sf    IIcN..QB'42::d+%8 	bjjoBGGAbjjo<M4NOr   c                     |j                  g d      }|j                  g d      }t        j                  ||      \  }}t        ||j                  d             t        ||j                  d             y )Nrd   r   r   )r   r   r9   LXz?UUUUUU?)ri   rk   r   r4   )rs   rt   r,  br   r-  s         r}   
test_basiczTestPearsonr.test_basic  sY     JJz"JJy!..A&42::h/0bjjo.r   c                 |   |j                  g d      }|j                  g d      }d}t        t        j                  ||      5  t        j                  ||      \  }}t        ||j                  |j                               t        ||j                  |j                               d d d        y # 1 sw Y   y xY w)NMbX?r:  r:  rh|?v/?gsh|??An input array is constantr   rt   ri   r$   rk   ConstantInputWarningr   r4   rr   rs   rt   rv   rw   r   r   ps          r}   test_constant_inputz TestPearsonr.test_constant_input  s     JJ,-JJ,-*3332F 	3>>!Q'DAqArzz"&&12Arzz"&&12	3 	3 	3   A$B22B;rN   float32r   c           
         t        t        |      }t        ||      }|j                  dddt        j                  d|      z   g|      }|j                  ddddt        j                  d|      z  z   g|      }d}t	        t
        j                  ||      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr8   rM   r9   r<   z/An input array is nearly constant; the computedr?  )getattrr   ri   r*  r$   rk   NearConstantInputWarningr   )rs   rN   rt   npdtyperv   rw   r   s          r}   test_near_constant_inputz%TestPearsonr.test_near_constant_input  s    "e$E"JJ1a"**Qg">>?uJMJJ1a!BJJq$@"@@AJO?77srJ 	! NN1a 	! 	! 	!s   B::Cc                 N   |j                  g d|j                        }|j                  g d|j                        }t        j                  ||      \  }}t	        ||j                  d|j                               t	        ||j                  d|j                               y )N)gy)r?gxd{s?gnp?g$9"o?ge =:k?rM   )goȟg`
,gzg2l?g>??'ge;E?g3R?ri   r   rk   r   r4   rs   rt   rv   rw   r   rC  s         r}   test_very_small_input_valuesz)TestPearsonr.test_very_small_input_values  s     JJVZZ  )JJNZZ  )~~a#1 	2::&8

:KL2::&8

:KLr   c                 V   d|j                  g d|j                        z  }d|j                  d|j                        z  }t        j                  ||      \  }}t        ||j                  d|j                               t        ||j                  d|j                               y )NgY)	kR)r   r   r   r   r   r   r   rM   r=   r4  g͗~-?)ri   r   r   rk   r   r4   rN  s         r}   test_very_large_input_valuesz)TestPearsonr.test_very_large_input_values  s     1DD1BJJ//~~a#1 	2::&8

:KL2::&:"**:MNr   c                 N   |j                  g d|j                        }|j                  g d|j                        }t        j                  ||      \  }}t	        ||j                  d|j                               t	        ||j                  d|j                               y )N)g7	igNig_b4igZbirM   )gDig<'(½igmQiZbtig*D{?gݣ?rM  rN  s         r}   !test_extremely_large_input_valuesz.TestPearsonr.test_extremely_large_input_values  s     JJ9JLJJ;2::JN~~a#1 	2::&7rzz:JK2::&7rzz:JKr   4ignore:invalid value encountered:RuntimeWarning:dask5ignore:divide by zero encountered:RuntimeWarning:daskc                 0   |j                  ddg      }|j                  ddg      }t        j                  ||      }|\  }}|j                  d      }t        ||       t        ||       |j	                         \  }}	t        ||        t        |	|       y )Nr   r   r   rQ   ri   rk   r   r5   confidence_interval
rs   rt   rv   rw   r   r   rC  onelowhighs
             r}   test_length_two_pos1z!TestPearsonr.test_length_two_pos1  s    
 JJBx JJBx nnQ"1jjn33++-	TcT"c"r   c                 2   |j                  ddg      }|j                  ddg      }t        j                  ||      }|\  }}|j                  d      }t        ||        t        ||       |j	                         \  }}	t        ||        t        |	|       y )Nr   r   r   rQ   rX  rZ  s
             r}   test_length_two_neg1z!TestPearsonr.test_length_two_neg1  s    
 JJBx JJBx nnQ"1jjnC4 3++-	TcT"c"r   *ignore:invalid value encountered in dividec                 |   |j                  ddg      }|j                  ddg      }d}t        t        j                  ||      5  t        j                  ||      \  }}t        ||j                  |j                               t        ||j                  |j                               d d d        y # 1 sw Y   y xY w)Nr:  r<  r=  r>  r?  r@  rB  s          r}   test_length_two_constant_inputz+TestPearsonr.test_length_two_constant_input  s    
 JJu~&JJu~&*3332F 	3>>!Q'DAqArzz"&&12Arzz"&&12	3 	3 	3rE  z$alternative, pval, rlow, rhigh, sign))	two-sided?gmgƎ?r   )lessK˅?r0  g?
?r   )greater.?gդζr   r   )rd  re  gfǎgl?rd   )rf  ri  r0  gդζ?rd   )rh  rg  g?
r   rd   c                    |j                  g d      }|j                  g d      |z  }t        j                  |||      }	t        |	j                  |j                  d|z               t        |	j
                  |j                  |             |	j                         }
t        |
j                  |j                  |             t        |
j                  |j                  |             y )Nr   r   r   r   )r   r   rA   r   alternativeg?)	ri   rk   r   r4   r!  r  rY  r\  r]  )rs   rm  pvalrlowrhighsignrt   rv   rw   resultcis              r}   test_basic_examplezTestPearsonr.test_basic_example  s     JJ'(JJ()D01+>(("**5G5L*MNrzz$'78'')

4 01E!23r   c                 $   |j                  d      }| }t        j                  ||d      }t        j                  ||d      }t        |j                  |j                  d             t        |j                  |j                  d      d       y )	Nr   rh  rl  rf  r   r   g#B;r&  )r   rk   r   r4   r  ri   )rs   rt   rv   rw   test_greater	test_lesss         r}   (test_negative_correlation_pvalue_gh17795z5TestPearsonr.test_negative_correlation_pvalue_gh17795*  sl    IIcNB~~a	BNN1aV<	++RZZ^<	(("**R.uEr   c                 <   |j                  g d      }|j                  g d      }t        j                  ||      }|\  }}|j                  d      }t        ||        t        |d|z  d       |j	                         \  }}	t        ||        t        |	|       y )Nr   r   r   )rQ   g      g      *r   r   Hz>r&  )ri   rk   r   r4   rY  r5   rZ  s
             r}   #test_length3_r_exactly_negative_onez0TestPearsonr.test_length3_r_exactly_negative_one2  s    JJ|$JJ'nnQ" 1jjoC4 1S5t,++-	TcT"c"r   c                    g d}dg}d}t        j                  t        |      5  t        j                  ||       d d d        g d}ddg}d}t        j                  t        |      5  t        j                  ||       d d d        dg}dg}d	}t        j                  t        |      5  t        j                  ||       d d d        g d
}g d
}d}t        j                  t        |      5  t        j                  ||       d d d        d}t        j                  t        |      5  t        j                  ddgddgd       d d d        t        j                  ddgddg      }t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   gxY w# 1 sw Y   0xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r8   r9   r:   z3`x` and `y` must have the same length along `axis`.r   r;   "`x` and `y` must be broadcastable.r   r8   (`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...r9   
asymptoticmethodexact)r   r   r   rk   r   rY  )rs   rv   rw   messager   s        r}   test_input_validationz"TestPearsonr.test_input_validationA  s   CG]]:W5 	!NN1a 	! F6]]:W5 	!NN1a 	! CC<]]:W5 	!NN1a 	! ?]]:W5 	!NN1a 	! 7]]:W5 	@NNAq6Aq6,?	@ nnaVaV,]]:W5 	4##7#3	4 	45	! 	!	! 	!	! 	!	! 	!	@ 	@	4 	4sG   F!)F.+F;/G+GG!F+.F8;GGGG(r^   z-Monte Carlo method needs > a few kB of memoryrm  rf  rh  rd  method_namepermutationmonte_carlomonte_carlo2c                 "   t         j                  j                  d      }|dk(  rdnd}|j                  |      }|j                  |      }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(  rqt	        j                  d	      }t	        j                  ||||d      }t        |j                  |	j                         t        |j                  |	j                         y y )Nl   o#[mr  r8   d   )r8     sizerngr8   rvsi  r  rd   )rm  r  rY   rm  rY   r%  rtol{Gz?MbP?r  r'  r  )r   randomdefault_rngnormalrk   PermutationMethodMonteCarloMethodr   r   r!  r  r   )rs   r  rm  r  r  rv   rw   methodsr  r   r   res2s               r}   test_resampling_pvaluez#TestPearsonr.test_resampling_pvaluec  s<    ii##$56&-7xYJJDJ!JJDJ!"'"9"9c"B"'"8"8cjj]1_"M#(#9#9d#CE %nnQ{6PRSnnQ{Ds}}5A

CJJTE.(++5F>>!QKUWXD7cjj1	 )r   c                 ,   t         j                  j                  d      }|j                  d      }|j                  d      }t	        j
                  |||d      }t         j                  j                  d      }t	        j                  |      }|j                  |      }|j                         }t        ||d	
       t         j                  j                  d      }t	        j                  |      }|j                  |      }	t        |	|       y )Nl   _Y F r  r  rd   r  l   |#(AkPrandom_stater  gQ?r&  r  )	r   r  r  r  rk   r   BootstrapMethodrY  r   )
rs   rm  r  rv   rw   r   r  res_ciref_cires_ci2s
             r}   test_bootstrap_cizTestPearsonr.test_bootstrap_ci|  s     ii##$45JJHJ%JJHJ%nnQ{D ii##$67&&C8(((7((*V4 ii##$67&&3/)))8(r   rY   r   r   c                    t         j                  j                  d      }d}|j                  d|z         \  }}t	        j
                  |||      }|j                         }|dk(  r|j                  |j                  }}t        |j                  d         D ]  }t	        j
                  ||   ||         }	|	j                         }
t        |j                  |   |	j                         t        |j                  |   |	j                         t        |j                  |   |
j                         t        |j                  |   |
j                          y )N   I.v# r?   r^   r8   r  rX   r   )r   r  r  r  rk   r   rY  r   rangeshaper   r!  r  r\  r]  )rs   rY   r  r  rv   rw   r   rs  ires_ici_is              r}   test_axis01zTestPearsonr.test_axis01  s   ii##K0zzte|z,1nnQ-$$&1933qAqwwqz" 	3ANN1Q41.E,,.DCMM!,eoo>CJJqM5<<8BFF1Itxx0BGGAJ		2	3r   c                    t         j                  j                  d      }d}|j                  d|z         \  }}t	        j
                  ||d       }|j                         }t	        j
                  |j                         |j                               }|j                         }t        |j                  |j                         t        |j                  |j                         t        ||       y )Nr  r  r  r  rX   )r   r  r  r  rk   r   rY  ravelr   r!  r  )	rs   r  r  rv   rw   r   rs  r   ci_refs	            r}   test_axis_NonezTestPearsonr.test_axis_None  s    ii##K0zzte|z,1nnQ-$$&nnQWWY	2((*s}}5

CJJ/F#r   c                    |j                  d      x}}d}t        j                  t        |      5  t	        j
                  ||d       d d d        d}t        j                  t        |      5  t	        j
                  ||j                  d      d       d d d        d	}t        j                  t        |      5  t	        j
                  |j                  d      |j                  d      d       d d d        d
}t        j                  t        |      5  t	        j
                  ||j                  d      d       d d d        d}t        |      s`|j                  d      }t        j                  t        |      5  t	        j
                  ||t	        j                                d d d        y y # 1 sw Y   nxY w# 1 sw Y   .xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   z`axis` must be an integer.r   rB   rX   z2`x` and `y` must have the same length along `axis`r8   r   r   r  r  r9   r;   z:`method` must be `None` if arguments are not NumPy arrays.r^   r  )	onesr   r   r   rk   r   r&   r   r  )rs   rt   rv   rw   r  s        r}   test_nd_input_validationz%TestPearsonr.test_nd_input_validation  s   A.]]:W5 	+NN1ac*	+ G]]:W5 	7NN1bggfoA6	7 =]]:W5 	ENN2776?BGGFO!D	E 7]]:W5 	7NN1bggfoA6	7 O|		"Az9 Gq!E,C,C,EFG G !	+ 	+	7 	7	E 	E	7 	7G Gs;   F6/(G<7G(G+G(6G GGG%(G1c                    t         j                  j                  d      }|j                  d      |j                  d      }}d|d<   d|d<   |j                  |      |j                  |      }}d}t	        t
        j                  ||      5  t        j                  ||d	      }|j                         }	|j                  |j                  |j                  g|j                  
      }
t        |j                  dd |
       t        |j                  dd |
       t        |	j                  dd |
       t        |	j                  dd |
       |j!                  |j#                  |j                  dd              sJ |j!                  |j#                  |j                  dd              sJ |j!                  |j#                  |	j                  dd              sJ |j!                  |j#                  |	j                  dd              sJ 	 d d d        d\  |d<   |d<   |j                  |      |j                  |      }}d}t	        t
        j$                  ||      5  t        j                  ||d	       d d d        |j                  ddgddgddgddgg      }|j                  ddgddgddgddgg      }|j'                  d      }t        j                  ||d	      }|j                         }	t)        |j                  |j                  g d             t)        |j                  |       t)        |	j                  |        t)        |	j                  |       y # 1 sw Y   TxY w# 1 sw Y   xY w)Nl   U!Jr:   r;   r   r   .r8   r   .r>  r?  rX   rM   r   )g     ?g      @r   r   r   r   z!An input array is nearly constantr   r:   rd   )r   rd   rd   r   )r   r  r  ri   r$   rk   rA  r   rY  rr   r   r5   r!  r  r\  r]  allisfiniterI  r  r4   )rs   rt   r  x0y0rv   rw   r  r   rs  nansr  s               r}   test_nd_special_casesz"TestPearsonr.test_nd_special_cases  s    ii##N3F#SZZ%7B6
6
zz"~rzz"~1.337rJ 	4..AA.C((*B::rvvrvv.bjj:ADCMM!A.5CJJqOT2BFF1QK.BGGAaL$/66"++cmmAB&7899966"++cjjn566666"++bffQRj122266"++bggabk2333	4 24"T(zz"~rzz"~1577w2N 	)NN1aa(	) JJAAAB89JJAAAB89wwqznnQ+$$&rzz/'BC

D)&&9	4 	4 	) 	)s   E<MM(M%(M1c                 &   t         j                  j                  d      }|j                  d      }|j                  d      }t        j                  ||d      }t        j                  ||d      }t        |j                  |j                         y )Nl   [LY)r9   r^   r^   r   rX   rd   )r   r  r  rk   r   r   r!  rs   rt   r  rv   rw   r   r   s          r}   test_different_dimensionalityz*TestPearsonr.test_different_dimensionality  sj     ii##$56JJwJJrNnnQ*nnQ+S]]CMM2r   r   r   Nc                    t         j                  j                  d      }|j                  d      \  }}t	        j
                  |j                  |      |j                  |      ||      }t	        j
                  ||||      }t        |j                  |j                  |j                               t        |j                  |j                  |j                               |j                         }	|j                         }
t        |	j                  |j                  |
j                               t        |	j                  |j                  |
j                               y )Ni8)r8   r^   r_   r  rY   rm  )r   r  r  r  rk   r   ri   r4   r!  r  rY  r\  r]  )rs   rt   rY   rm  r  rv   rw   r   r   r  r  s              r}   test_array_apizTestPearsonr.test_array_api   s     ii##J/zz{z+1nnRZZ]BJJqM"&KAnnQ+Frzz#--'@A

BJJszz$:;((*((*

BJJvzz$:;RZZ%<=r   N)"r   r   r   r#  r.  r1  r7  rD  r   r   r   rK  rO  rQ  rT  r   r^  r`  rc  rt  rx  r|  r  	fail_slowxfail_on_32bitr  slowr  r  r  r  r  r  r  r   r   r}   r  r    s   8PP/	3 [[Wy)&<=
! >
!MOL [[ VW[[ WX# Y X# [[ VW[[ WX# Y X# [[ LM
3 N
3& [[CHI4I4F [[ WX# Y# 4D [[2[[ OP[[],LM[[]KM2M N Q 
2( [[[[],LM) N )& [[VaV,3 -3 
$G0 [[ VW[[ WX$' Y X$'L3$ [[V\2[[],LM> N 3>r   r  c                      e Zd ZdZd Zd Zd Zd Zej                  j                  d        Zd Zd Zd	 Zd
 Zej                  j!                  dg d      d        Zd Zej                  j'                  d      ej                  j                         d               Zej                  j'                  d      ej                  j                         d               Zej                  j-                         d        Zy)TestFisherExacta  Some tests to show that fisher_exact() works correctly.

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

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

    R:
    > phyper(18999, 99000, 110000, 39000, lower.tail = FALSE)
    [1] 1.701815e-09
    c                    t         j                  } |ddgddgg      d   }t        |dd        |d	d
gddgg      d   }t        |dd        |d
dgdd
gg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgdd
gg      d   }t        |d        |dd
gddgg      d   }t        |d        |d
dgdd
gg      }t        |d   dd       t        |d   d       y ) N8   N  0u  @  r   g؞Y?r:   significantr  r8   r  r;   g,Ԛ?r=   r>   g2c?r<   r^   gY
A?      g_?r      gO^M?r   gօa?r9   r   ggE?g$I$I?)rk   fisher_exactr
   )rs   r  r   s      r}   r7  zTestFisherExact.test_basic  s   ))UENUEN;<Q?Ca8S!HtQi01!4CQ7QFQF+,Q/C:QFRH-.q1C:QGb"X./2C:QGb"X./2C:RGb!W-.q1C:QFQF+,Q/C;QFQF+,Q/C%QFQF+,Q/C.QFQF+,CFI1=CFH-r   c                    ddgddggdfddgddggdfdd	gd
d
ggdfddgddggdfddgddggdfd
dgd
d	ggdfd
dgd
dggdfddgd	dggt         j                  dffddgd	dggdfdd	gddggt         j                  dffdd	gddggdfg}|D ]V  \  }}t        j                  t        j                  |            }t         j
                  j                  |d	   |d	   dd       X y )Nr  r8   r  r;   )gAn&	?g}K
T?r=   r>   )g	7?g?r   r^   )g!@j)A?r  r  )gU!a?gKY?r   r  )g7X?g~ltP?)gFu|?r  r   )r   gQN^?r:   gaa?)r   r   gaa?r9   r_   T)decimalverbose)r   infrk   r  ri   testingr   )rs   tablisttableres_rr   s        r}   test_precisezTestFisherExact.test_precise:  se    Ahq	"$TU!fq!fOP!fr2h!QR"gBx "RS"gBx "RS1gAw!QR1gAw!QR!fq!f(>?@!fq!fOP!fq!f(>?@!fq!fOP $ 	9LE5$$RZZ%67CJJ**3q658R37 + 9	9r   c                    ddgddgg}t        j                  |      }t        |d   d       ddgdd	gg}t        j                  |      }t        |d   d
       ddgddgg}t        j                  |      }t        |d   d       y )Nr<   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rk   r  r   rs   rv   r   s      r}   test_gh4130zTestFisherExact.test_gh4130R  s     WsCj!  #A 12 !Wq#h  #A 56 "Xe}%  #A 56r   c                 `    ddgddgg}t        j                  |      }t        |d   dd       y )NiiX iV iW r   r   gѧRr&  r  r  s      r}   test_gh9231zTestFisherExact.test_gh9231h  s8     w'7!34  #A/r   c                     g d}t        |g d      D ]1  \  }}t        j                  ddgd|gg      d   }t        ||d       3 t        j                  d	d
gddgg      d   }t        |dd       y )N)g?=gNuP=gs=)K   L   M   i(E  i  i)  r   r:   r  iPF  i8 r  i_ g^K=?)ziprk   r  r
   )rs   pvalsrn  numr   s        r}   test_large_numbersz"TestFisherExact.test_large_numberso  s     1UL1 	:ID#$$uclT3K%@A!DCTq9	:   5%.5%.!AB1ECQ7r   c                     d}t        j                  t        |      5  t        j                  t        j                  d             d d d        y # 1 sw Y   y xY w)Nz+The input `table` must have two dimensions.r   r<   )r   r   r   rk   r  r   r   rs   r  s     r}   test_raiseszTestFisherExact.test_raisesz  s@    ?]]:W5 	-ryy|,	- 	- 	-s   )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 ]@  }t        j                  |      \  }}t        |d       t        |t        j                         B y )Nr   r;   r^   r   )rk   r  r   r   rr   )rs   tablesr  	oddsratiorn  s        r}   test_row_or_col_zeroz$TestFisherExact.test_row_or_col_zero  s    q6Ar7#r7QF#q6Ar7#q6B7#%  	,E#007OIts#BFF+	,r   c                    ddgddggddgddggddgdd	ggd
dgddggddgddggddgddggddgddggddgddggddgddggf	}ddgddgddgddgddgddgddgddgddgf	}t        ||      D ]h  \  }}g }|j                  t        j                  |d      d          |j                  t        j                  |d       d          t	        ||dd!"       j y )#Nr8   r=   r>   r  i,     r[   r<   i     i   i  r   r9   r   r:   gI[?gq}!?r   g2\&gQp6g:O_?g a?皙?ffffff??333333?UUUUUU?r5  rf  rl  rh  r{  )r'  r  )r  appendrk   r  r   )rs   r  r   r  rn  r   s         r}   test_less_greaterz!TestFisherExact.test_less_greater  sW    VaV1X3x "X4y!3Z#s$ VaVVaVVaVVaVVaV  "#56)*()	"#J#J#J3K$K vu- 	:KE4CJJu))%VDQGHJJu))%YGJKCAD9		:r   c                 @    t        j                  ddgddgg      \  }}y )Nr   r8   r?   i")rk   r  )rs   oddsr  s      r}   test_gh3014zTestFisherExact.test_gh3014  s%     ))Aq6Ax=*ABfr   rm  rd  rf  rh  c                     t        j                  ddgddgg      }t        j                  ||      }t	        |j
                  |j                  f|       y )Nr  r  r  r  rl  )r   r   rk   r  r   r!  r  )rs   rm  r  r   s       r}   test_resultzTestFisherExact.test_result  sF    5%.5%.9:  K@cmmSZZ0#6r   c                    t         j                  j                  d      }t        j                  ddgddgg      }d}t	        j
                  t        |      5  t        j                  |      }t        j                  ||d	       d d d        d
}t	        j
                  t        |      5  t        j                  |      }t        j                  ||       d d d        d}t	        j
                  t        |      5  t        j                  t        j                  j                        }t        j                  ||       d d d        d}t	        j
                  t        |      5  t        j                  t        j                  d             d d d        t         j                  j!                  t        j                  g dg      d       t         j                  j!                  t        j                  dgdgdgg      d       t         j                  j!                  t        j                  t        j                  d            d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   (xY w# 1 sw Y   xY w)N   9o8o r8   r=   r>   z4`alternative` must be the default \(None\) unless...r   r  rf  r  rm  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   r9   r8   r9   )r   r  r  ri   r   r   r   rk   r  r  r  r  normr  zerosr  r   )rs   r  r  r  r  s        r}   $test_input_validation_edge_cases_rxcz4TestFisherExact.test_input_validation_edge_cases_rxc  s   ii##$78

QFQF+,I]]:W5 	I,,5FuVH	I K]]:W5 	5**s3FuV4	5 H]]:W5 	5++

?FuV4	5 G]]:W5 	1rxx/0	1
 	

 2 2I; ?H


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


 2 2288F3C DfM-	I 	I
	5 	5
	5 	5
	1 	1s1   /I,.I?AI+*)I8II(+I58Jr^   c                    t         j                  j                  d      }t        j                  ddgddgg      }t	        j
                  |      }|j                  }t	        j                  |j                  d      |j                  d            j                  |      }t	        j                  |      }t	        j
                  ||	      }t        |j                  |d
       t        |j                  |       t	        j                  |      }t	        j
                  ||	      }t        |j                  |j                  d
       t        |j                  |       y )Nr  r8   r=   r>   r   rX   r   r  r  g{Gzd?r&  )r   r  r  ri   rk   r  r  random_tablesumpmfr  r   r   r!  r  )rs   r  r  r   
ref_pvalueref_statr  r   s           r}   test_resampling_2x2z#TestFisherExact.test_resampling_2x2  s    ii##$78

QFQF+,  'ZZ
%%eiiQi&79JKOOPUV''C0  v6

JV<S]]H-((S1  v6

CJJV<S]]H-r   c                    g dg dg dg dg dg}t        j                  |      }d}t         j                  j                  d      }t	        j
                  |      }t	        j                  ||	      }t        |j                  |d
       t	        j                  |d      }t	        j                  ||	      }t        |j                  |d
       y )N)r   r8   r8   r   r   r   r   )r8   r   r   r8   r9   r   r   )r   r   r   r   r8   r=   r9   )r   r   r8   r   r   r   r   )r   r   r   r   r   r   r   gk$?l   |Kr  r  gMb@?r&  i )r  n_resamples)
r   ri   r  r  rk   r  r  r   r  r  )rs   r  r&  r  r  r   s         r}   test_resampling_rxcz#TestFisherExact.test_resampling_rxc  s     '&&&&	(
 

5!%
ii##M2((S1  v6

JT:''CUC  v6

JT:r   c           	         t         j                  j                  d      }t        j                  |      }t        dd      D ]  }t        dd      D ]  }t        dd      D ]|  }t        dd      D ]k  }t        j                  ||g||gg      }t        j                  |      }t        j                  ||      }	t        |	j                  |j                  d       m ~   y )	Nr  r  r   r9   r:   r  +=r&  )
r   r  r  rk   r  r  ri   r  r   r  )
rs   r  r  r,  r6  cdr  r   r   s
             r}   test_resampling_exact_2x2z)TestFisherExact.test_resampling_exact_2x2  s     ii##$78((S1q! 	LA1a[ Lq! LA"1a[ L "

QFQF+; <#007#00vF'

CJJUK	LLL	Lr   N)r   r   r   r  r7  r  r  r  r   r   r  r  r  r	  r  r  r   r  r!  r  r(  r+  xslowr0  r   r   r}   r  r    s   .6907,0 [[8 8-, :DC
 [[],LM7 N7
N> [[2[[.  ." [[2[[;  ;: [[L Lr   r  c                   *   e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
ddg      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*y))*TestCorrSpearmanrr   c                 L    t         j                  j                  d      | _        y )NiGr   r  r  r  rs   s    r}   setup_methodzTestCorrSpearmanr.setup_method!  s    99((3r   c                     t        j                  dd      }t        t        j                  |      j                                y )Nr   r   )rk   	spearmanrr   r   isnanr  )rs   rw   s     r}   test_scalarzTestCorrSpearmanr.test_scalar$  s)    OOB#!"r   c                     t        t        t        j                  g dddg       t        t        t        j                  g dd       y )Nr   r8   r   r>   r?   )r   r   rk   r9  r6  s    r}   test_uneven_lengthsz%TestCorrSpearmanr.test_uneven_lengths(  s*    j%//9q!fEj%//9a@r   c                    | j                   j                  d      }| j                   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                         y )Nr:   r9   r:   r8   r;   r;   r   rX   )
r  standard_normalrk   r9  r!  r  r   r  r   r   rs   rv   rw   s      r}   test_uneven_2d_shapesz'TestCorrSpearmanr.test_uneven_2d_shapes,  s    HH$$V,HH$$V,q!$..44>>>qssACCa077==GGGj%//1aa@j%//133<r   c                    | j                   j                  d      }t        t        t        j
                  |       t        t        t        j
                  ||       t        t        t        j
                  |d d        t        t	        j
                  ||d       t	        j
                  |j                         |j                         d             y )N)r:   r9   r8   rX   r   )r  rC  r   r   rk   r9  r   flattenrs   rv   s     r}   test_ndim_too_highz$TestCorrSpearmanr.test_ndim_too_high6  s    HH$$Y/j%//15j%//1a8j%//1dDA148		QYY[qI	Kr   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  ||      t         j                  t         j                  f       t        t	        j
                  ||d      d       t        t        t        j
                  ||d       t        t        t        j
                  ||d       y )Nr   r?   r   r   )r   r   r   r   )r   r   rr   r	   rk   r9  r   r   rH  s     r}   test_nan_policyz!TestCorrSpearmanr.test_nan_policy?  s    IIcNvv!5??1a02662662BC5??1aFC%	'j%//1aGLj%//1aHMr   c                    t         j                  j                  d      }|j                  d      }d}t         j                  |d d |f<   t        j                  ||d      }t        j                  |d      \  }}t        j                  |      \  }}t        j                  t        j                  ||d      |d      }t        j                  t        j                  ||d      |d      }t        ||d	
       t        ||d	
       y )Nl   LG r;   r^   r<   r   rX   r   r   r   r-  r&  )r   r  r  rr   deleterk   r9  r   )	rs   r  rv   krw   corxpxcorypys	            r}   test_nan_policy_bug_12458z+TestCorrSpearmanr.test_nan_policy_bug_12458H  s    ii##J/JJw&&!Q$IIa#??18b??1%byy43QQ?YYryyQQ/;d/BU+r   c                    d}d}| j                   j                  ||f      }t        j                  |d<   t        j                  |d<   t	        j
                  |dd      \  }}t        |      D cg c]G  }t        |      D cg c]0  }t	        j
                  ||d d f   ||d d f         j                  2 c}I }}}t        ||       y c c}w c c}}w )Nr;   r^   r   r   )r9   rd   r   	propagaterY   r   )	r  rC  r   rr   rk   r9  r  r!  r   )	rs   mnrv   corrr  jr  r   s	            r}   test_nan_policy_bug_12411z+TestCorrSpearmanr.test_nan_policy_bug_12411U  s    HH$$aV,&&$66%qq[Ifa" FK1XN!Q$1a41;;N " "c" O "s   1C5C8CCrY   r   r   c           	      |   t        j                  d      }t        j                  dd      |d d df<   t        j                  dd       |d d df<   t        j                  t         j                  t         j                  t         j                  t         j                  gt         j                  t         j                  t         j                  t         j                  gt         j                  t         j                  ddgt         j                  t         j                  ddgg      }|dk(  r|j
                  }t        j                  t        j                  j                        5  t        j                  ||	      }d d d        t        j                  |       t        |j                  d|z  d
       y # 1 sw Y   ;xY w)N)r^   r:   r   r^   r8   r9   r   r0  r   rX   gJz5r&  )r   r   r   r   rr   r   r   warnsrk   _warnings_errorsrA  r9  r   r!  r  )rs   rY   rj   r[  r   s        r}   test_constant_input_gh22816z-TestCorrSpearmanr.test_constant_input_gh22816`  s&   HHW))Ar"!Q$99Q##!Q$xx"&&"&&"&&"&&9&&"&&"&&"&&9&&"&&"c2&&"&&#r24 5 19A\\%00EEF 	0//!$/C	0t,

AdF7	0 	0s    F22F;c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r9  rj   r
   r   s      r}   test_sXXzTestCorrSpearmanr.test_sXXq  s%    OOAa aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  rj   r   r
   r   s      r}   
test_sXBIGzTestCorrSpearmanr.test_sXBIGv  s%    OOAc"aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  rj   r   r
   r   s      r}   test_sXLITTLEzTestCorrSpearmanr.test_sXLITTLE{  s%    OOAf%aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  rj   r   r
   r   s      r}   test_sXHUGEzTestCorrSpearmanr.test_sXHUGE  %    OOAd#aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  rj   r   r
   r   s      r}   test_sXTINYzTestCorrSpearmanr.test_sXTINY  rj  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  rj   r   r
   r   s      r}   test_sXROUNDzTestCorrSpearmanr.test_sXROUND  s%    OOAe$aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r9  r   r
   r   s      r}   test_sBIGBIGzTestCorrSpearmanr.test_sBIGBIG  s%    OOC$aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sBIGLITTLEz!TestCorrSpearmanr.test_sBIGLITTLE  s%    OOC'aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sBIGHUGEzTestCorrSpearmanr.test_sBIGHUGE  %    OOC%aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sBIGTINYzTestCorrSpearmanr.test_sBIGTINY  ru  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sBIGROUNDz TestCorrSpearmanr.test_sBIGROUND  s%    OOC&aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r9  r   r
   r   s      r}   test_sLITTLELITTLEz$TestCorrSpearmanr.test_sLITTLELITTLE  s%    OOF6*aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sLITTLEHUGEz"TestCorrSpearmanr.test_sLITTLEHUGE  %    OOF4(aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sLITTLETINYz"TestCorrSpearmanr.test_sLITTLETINY  r~  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sLITTLEROUNDz#TestCorrSpearmanr.test_sLITTLEROUND  s%    OOF5)aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r9  r   r
   r   s      r}   test_sHUGEHUGEz TestCorrSpearmanr.test_sHUGEHUGE  %    OOD&aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sHUGETINYz TestCorrSpearmanr.test_sHUGETINY  r  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sHUGEROUNDz!TestCorrSpearmanr.test_sHUGEROUND  %    OOD'aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r9  r   r
   r   s      r}   test_sTINYTINYz TestCorrSpearmanr.test_sTINYTINY  r  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rk   r9  r   r   r
   r   s      r}   test_sTINYROUNDz!TestCorrSpearmanr.test_sTINYROUND  r  r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rk   r9  r   r
   r   s      r}   test_sROUNDROUNDz"TestCorrSpearmanr.test_sROUNDROUND  s%    OOE%(aDAc"r   c                     t        j                  t        t              }d}t        ||       t	        |j
                  |j                         y )Nr  )rk   r9  rj   r   r   r  r!  )rs   r   r"  s      r}    test_spearmanr_result_attributesz2TestCorrSpearmanr.test_spearmanr_result_attributes  s3    ooa#.
C,S__cmm4r   c                     g d}g d}t        j                  ||      }t        j                  t        j                  ||g      j                        }t        ||       y )N)r   r8   r9   r:   r;   r<   )r   r8   r9   r:   r<   r;   )rk   r9  r   ri   r   r   rs   x1x2res1r  s        r}   test_1d_vs_2dzTestCorrSpearmanr.test_1d_vs_2d  sG    r2&rzz2r(3556d#r   c                    dD ]  }dt         j                  ddddg}dddddt         j                  g}t        j                  |||      }t        j                  t        j                  ||g      j
                  |      }t        ||        y )	N)rW  r   r   r9   r:   r;   r<   r8   r   )r   rr   rk   r9  ri   r   r   )rs   r   r  r  r  r  s         r}   test_1d_vs_2d_nansz$TestCorrSpearmanr.test_1d_vs_2d_nans  s|    / 	(JRVVQ1a(BQ1a(B??2rjAD??2::r2h#7#9#9jQDD$'	(r   c                    t        j                  d      }| }t        j                  g d      }t        j                  |||g      j                  }t        j                  |      }t        j                  g dg dg dg      }t        j                  dt              }d|d	d
d	f<   d|d
d	d	f<   t        |j                  |       t        |j                  |       y )Nr<   )r   r   r8   r9   r;   r:   )r   rd   3+?)rd   r   3+)r  r  r   r9   r9   rM   g+Hs]s?r8   r   )r   r   r   ri   r   rk   r9  r   floatr   r!  r  )rs   r  r  x3rv   actualexpected_correxpected_pvalues           r}   
test_3colszTestCorrSpearmanr.test_3cols  s    YYq\SXX()JJB|$&&#"5"6">"@ A ((67"/1Q3"/!Q((-87r   c           
         t        j                  t         j                  ddddddgdt         j                  ddd	ddgg d
g      j                  }t        j                  t         j                  t         j                  t         j                  gt         j                  t         j                  t         j                  gt         j                  t         j                  dgg      }t	        t        j                  |d      j                  |       t        j                  |d      j                  }t	        |d   d   |d   d   |d   d   fdd       y )Nr   r   rQ   ffffff@r   ffffff"@ffffff@g333333@皙@)rA   r   ffffff@ffffff@r   r  ffffff@r   rW  r   r   r   r   r8   )gacJC?g%ln?g_0nYt!޿ư>r  )r   r   rr   r   r   rk   r9  r!  )rs   rv   r[  r   s       r}   test_gh_9103zTestCorrSpearmanr.test_gh_9103   s   HHrvvsCc3<BFFCc3<9; <<=A 	
 xx"&&"&&"&&1&&"&&"&&1&&"&&"-/ 0 	kBLL	 ooaF3==QCF1Is1vay9:	Gr   c                    d}t         j                  j                  d      }|j                  |      }|j                  |      dkD  }|dkD  }t        j                  |      }t        j                  ||d      j                  }t         j                  ||<   t        j                  ||d      j                  }|j                  t         j                        }t        j                  ||d      j                  }	g d}
t        |||	g|
       y )Nr  iH r  rA   r   r   )gonj?)Wn%?r  )r   r  RandomStaterandr   rk   r9  r!  rr   astypeint32r   )rs   rZ  r  rv   rY  r,  r6  r  r  res3expecteds              r}   test_gh_8111zTestCorrSpearmanr.test_gh_8111  s    ii##F+HHQKHHQK# VHHQKq!7AA vv!q!7AA HHRXXq!7AA:tT*H5r   N)+r   r   r   r  r7  r;  r>  rE  rI  rK  rT  r]  r   r   r   ra  rc  re  rg  ri  rl  rn  rp  rr  rt  rw  ry  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r}   r3  r3    s    4#A=KN,	# [[VaV,8 -8 #
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
5$(8 G6r   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(                  j+                  dd      d        Zy)TestCorrSpearmanr2z-Some further tests of the spearmanr function.c                     g d}g d}d}t        j                  ||      }t        |d   |d          t        |d   |d          y )Nr   r8   r9   r:   r;   r;   r<   r=   r>   r=   gh
C?gR?r   r   )rk   r9  r
   rs   r  r  r  r   s        r}   test_spearmanr_vs_rz&TestCorrSpearmanr2.test_spearmanr_vs_r*  sG     >oob"%CFHQK0CFHQK0r   c                     t        t        j                  g g       t        j                  t        j                  f       y N)r   rk   r9  r   rr   r6  s    r}   test_empty_arraysz$TestCorrSpearmanr2.test_empty_arrays4  s$    U__R,rvvrvv.>?r   c                    t         j                  j                  d      }t        j                  |j	                  ddd      |j	                  ddd      g      }ddgddgg}t        j
                  t         j                  j                  |      |      }d}t        j                  |d   |d         }t        |d   |d          t        |d   |d          y )	Nz  r     locscaler  r   r  )gCzYW?ge*=r   )r   r  r  r   r  dotlinalgcholeskyrk   r9  r
   )rs   r  rv   r[  r  r   s         r}   test_normal_drawsz$TestCorrSpearmanr2.test_normal_draws7  s    ii##D)HHcjjQacj:jjQacj:< =c
c
FF299%%d+Q/?ooadAaD)CFHQK0CFHQK0r   c                 R    t        t        j                  g dg d      d   d       y )Nr   r   r8   r   r   )r
   rk   r9  r6  s    r}   test_corr_1zTestCorrSpearmanr2.test_corr_1C  s    EOOIyA!DcJr   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  ||      t         j                  t         j                  f       t        t	        j
                  ||d      d       t        t        t        j
                  ||d       t        t        t        j
                  ||d       y )Nr   r?   r   r   )r   r   r   r   )	r   r   rr   r	   rk   r9  r   r   r   rH  s     r}   test_nan_policiesz$TestCorrSpearmanr2.test_nan_policiesF  s    IIcNvv!5??1a02662662BC1@ 	"j%//1aGLj%//1aHMr   c                     t        j                  d      }t        j                  d      }t        t        t        j
                  ||       y )Nr         4@)r   r   r   r   rk   r9  rD  s      r}   test_unequal_lengthsz'TestCorrSpearmanr2.test_unequal_lengthsO  s.    IIcNIIcNj%//1a8r   c                     g d}dddt         j                  g}t        j                  ||d      }t        j                  |d d |d d d      }t	        ||       y )Nr   r8   r9   r:   r>   r=   r<   r   r   r9   )r   rr   rk   r9  r   r  s        r}   test_omit_paired_valuez)TestCorrSpearmanr2.test_omit_paired_valueT  sS    Arvvr2&9r"1vr"1v&AT4 r   c                 d   t        t        d            }t        t        d            }|d   |d   c|d<   |d<   |d   |d   c|d<   |d<   |d   |d   c|d<   |d<   |j                  t        j                         |j                  d       t        t        j                  ||d	
      d   d       y )N  r?   r   i  r^   i  i  r   r   r   gV-?)listr  r  r   rr   r   rk   r9  rD  s      r}   #test_gh_issue_6061_windows_overflowz6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflow[  s    ttqT1Q4
!ad#""qvD'1S6#$ 	
	EOOAqVDQGOr   c                 b   d}t        j                  t        j                  |      5  t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         d d d        y # 1 sw Y   y xY w)Nr>  r   r8   r8   r8   r8   r   r8   )r   r_  rk   rA  r9  r   r   rr   )rs   warn_msgr   rC  s       r}   	test_tie0zTestCorrSpearmanr2.test_tie0h  s    /\\%44HE 		$??9i8DAqBFF#BFF#??9i8DAqBFF#BFF#??9i8DAqBFF#BFF#		$ 		$ 		$s   C4D%%D.c                     g d}g d}g d}g d}t        j                  ||      }t        j                  ||      }t        ||       y )Nrk  )r   r   r   r   )r   rC   rC   r   )rk   r9  r   r   )rs   rv   rw   xryrsrprs          r}   	test_tie1zTestCorrSpearmanr2.test_tie1v  sB      !! __Q"^^B#B#r   c                     g d}g d}ddddt         j                  g}ddddt         j                  g}t        j                  ||      }t        j                  ||d	      }t	        ||       y )
N)r   r8   rC   r8   )r   r9   rC   r:   r   r8   rC   r9   r:   r   r   )r   rr   rk   r9  r   )rs   r  rx   r  ry   sr1sr2s          r}   	test_tie2zTestCorrSpearmanr2.test_tie2  sd     CBFF#CBFF# oob"%oob"8C%r   c                    t        j                  g dg dg      }t        j                  g dg dg      }t        j                  g dg dg      }d}t        j                  t        j
                  |      5  t	        j                  |d      \  }}t        |t         j                         t        |t         j                         t	        j                  |d      \  }}t        |t         j                         t        |t         j                         t	        j                  |d      \  }}t        |t         j                         t        |t         j                         d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r  r>  r   r   rX   	r   r   r   r_  rk   rA  r9  r   rr   )rs   z1z2z3r  r   rC  s          r}   test_ties_axis_1z#TestCorrSpearmanr2.test_ties_axis_1  s    XX|\23XX|\23XX|\23/\\%44HE 		$??2A.DAqBFF#BFF#??2A.DAqBFF#BFF#??2A.DAqBFF#BFF#		$ 		$ 		$s   9C+E--E6c                 r   t        j                  g d      }t        j                  g d      }d}t        j                  t        j
                  |      5  t	        j                  ||      \  }}t        |t         j                         t        |t         j                         d d d        y # 1 sw Y   y xY w)N)
r   r   r   r   r   r   r   r   r   r   
r   gN}	?r   r   g	/`?gY%uX-H?gC1tq1?r   r   g*I?r>  r   r  )rs   rv   rw   r  r   rC  s         r}   test_gh_11111z TestCorrSpearmanr2.test_gh_11111  s    HHGHHH - . 0\\%44HE 	$??1a(DAqBFF#BFF#	$ 	$ 	$s   AB--B6c                     t        j                  g d      }t        j                  g d      }t        t        t        j
                  ||d       y )N)
r   r   r   r   r   r   r   r   r   r   r  r8   rX   )r   r   r   r   rk   r9  rD  s      r}   test_index_errorz#TestCorrSpearmanr2.test_index_error  s:    HHGHHH - . 	j%//1aa@r   c                    g d}g d}d}t        j                  ||d      }t        |d   |d          t        |d   d|d   dz  z
         t        j                  ||d	      }t        |d   |d          t        |d   |d   dz         t        j                  t
        d
      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr  r  r  rf  rl  r   r   r8   rh  `alternative` must be 'less'...r   	ekki-ekki)rk   r9  r
   r   r   r   r  s        r}   test_alternativez#TestCorrSpearmanr2.test_alternative  s      ? oob"&9CFHQK0CFA!q$9: oob")<CFHQK0CFHQK!O4]]:-NO 	=OOB<	= 	= 	=s   'C		Crm  r  c                    g d}g d}|t         j                  gz   }|t         j                  gz   }t        t        j                  ||      t         j                  t         j                  f       t        j                  ||d|      }t        j                  |||      }t        ||       d}t        j                  t        |      5  t        j                  ||d|       d d d        d	}t        j                  t        |      5  t        j                  ||d
|       d d d        y # 1 sw Y   IxY w# 1 sw Y   y xY w)Nr  r  r   r   rm  rl  r   r   r   r   r  )	r   rr   r	   rk   r9  r   r   r   r   )	rs   rm  r  r  x1nanx2nan
res_actualres_expectedr  s	            r}   test_alternative_nan_policyz.TestCorrSpearmanr2.test_alternative_nan_policy  s    bffXbffX 	5??5%8266266:JK __UEf1<>
r2;G
L1 2]]:W5 	5OOE5W(35	5
 1]]:W5 	5OOE5[(35	5 	5	5 	5	5 	5s   	D+D7+D47E N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r   r   r}   r  r  '  s|    71@
1KN9
!P$$&$ 	$A=. [[],LM5 N5r   r  c                      e Zd Zej                  j                  dg dg dddfg dg dddfg dg d	d
dfg dg dddfg dg dddfg dg dddfg dg dddfg dg dddfg dg dddfg dg dddfg
      ej                  j                  dddg      d                Zd! Zd" Zej                  j                  dddg      d#        Z	ej                  j                  d$g d%g d%fg d&g d%fg d%g d&fg      ej                  j                  dddg      d'               Z
ej                  j                  d(g d)      d*        Zd+ Zd, Zej                  j                  d-.      d/        Zd0 Zy1)2TestKendallTauzx, y, statistic, pvalue)r;   r8   r   r9   r<   r:   r=   r>   )r;   r8   r<   r9   r   r>   r=   r:   r   r   )	r   r;   r8   r   r9   r<   r:   r=   r>   )	r;   r8   r   r<   r9   r   r>   r=   r:   )r;   r8   r   r9   r<   r:   r=   )r;   r8   r<   r9   r   r=   r:   gJ$I¿gmK?)r8   r   r9   r<   r:   r=   r>   )r8   r<   r9   r   r>   r=   r:   gJkaa?)
r   r   r8   r9   r:   r;   r<   r=   r>   r?   gxO~>)
r   r8   r   r9   r:   r;   r<   r=   r>   r?   g?>?gaV>)
r   r8   r   r9   r:   r<   r;   r=   r>   r?   g}'}'?go&5>)
r?   r>   r=   r<   r;   r:   r9   r8   r   r   r0  )
r?   r=   r>   r<   r;   r:   r9   r8   r   r   g?>)
r?   r=   r>   r<   r;   r9   r:   r8   r   r   g}'}'variantr6  r.  c                     t        j                  |j                  |      |j                  |      |      }t        |d   |j                  |             t        |d   |j                  |             y )Nr  r   r   )rk   
kendalltauri   r4   )rs   rv   rw   r!  r  r  rt   r   s           r}   test_kendalltau_no_tiesz&TestKendallTau.test_kendalltau_no_ties  sV    . rzz!}bjjmWMA

9 56A

6 23r   c                    |j                  g d      }|j                  g d      }d}t        t        j                  ||d      d   |j                  |             d}t        t        j                  ||d      d   |j                  |             |j                  g d	      }|j                  g d
      }d}t        j                  ||      }t	        |d   |j                  |d                t	        |d   |j                  |d                |j                  g d      }t        t        j                  ||d      d   |j                  d             t        t        j                  ||d      d   |j                  d             y )N
r   r8   r8   r:   r:   r<   r<   r>   r?   r?   )
r   r8   r:   r:   r:   r:   r>   r>   r>   r^   gok|?r6  r  r   gffffff?r.  r`   r8   r   r`   r8   r   r:   r=   r   r   )g}+޿g`=i?r   r  r   g#q?)ri   r4   rk   r  r
   )rs   rt   rv   rw   r  r  r  r   s           r}   test_kendalltau_tiesz#TestKendallTau.test_kendalltau_ties  sC    JJ56JJ67((As;A>

8@TU((As;A>

8@TU
 ZZ)*ZZ(>r2&CFBJJx{$;<CFBJJx{$;< JJy!((As;A>

3P((As;A>

:@VWr   c                    |j                  g d      }|j                  g d      }d}t        j                  t        |      5  t	        j
                  ||d       d d d        d}t        j                  t        |      5  t	        j
                  ||d       d d d        d	}t        j                  t        |      5  t	        j
                  ||d
       d d d        t        t        d|      5  t	        j
                  |j                  g       |j                  g             }d d d        t        j                  |j                  |j                               t        |j                  |j                  |j                               t        j                  t        d      5  t	        j
                  |j                  dg      |j                  dg            \  }}d d d        t        |j                  t        j                               t        |j                  t        j                               t        j                  d      }t        j                  d      }d}t        j                  t        |      5  t	        j
                  ||       d d d        y # 1 sw Y   IxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr
  
r   r8   r8   r:   r:   r:   r>   r>   r>   r^   z(Ties found; exact method cannot be used.r   r  r  z$Unknown `method` 'banana' specified.bananaz"Unknown `variant` 'rms' specified.rmsr  One or more sample...r?  r   r   r  /Array shapes are incompatible for broadcasting.)ri   r   r   r   rk   r  r$   r   r5   r!  rr   r  r_  r   r   )rs   rt   rv   rw   r  r   taup_values           r}    test_input_validation_edge_casesz/TestKendallTau.test_input_validation_edge_cases  s1   JJ56JJ67 =]]:W5 	3Q'2	3 9]]:W5 	4Q(3	4 7]]:W5 	2Q51	2 +3JrR 	C""2::b>2::b>BC	Crzz"&&'9:

BJJrvv$67 \\,4KL 	N ++BJJsORZZ_MLC	NRZZ/0BFF!34 IIcNIIcNC]]:W5 	#Q"	# 	#;	3 	3
	4 	4
	2 	2	C 	C	N 	N	# 	#sH   J$J1 J>35K):KK$$J.1J;>KKK!$K-c                     |j                  g d      }|j                  g d      }d}t        j                  |||      }t        |||       t	        |j
                  |j                         y )Nr
  r  r  r  r   )ri   rk   r  r   r5   r  r!  )rs   r  rt   r  r  r"  r   s          r}   test_attributeszTestKendallTau.test_attributesE  sW    ZZ67ZZ78.
r2w7C37r   x, yr  r  c                 4   |j                  |      |j                  |      }}t        j                  |||      }t        |j                  |j                  |j
                               t        |j                  |j                  |j
                               y )Nr  )ri   rk   r  r5   r!  rr   r  )rs   rv   rw   r  rt   r   s         r}   test_degenerate_inputz$TestKendallTau.test_degenerate_inputO  sg     zz!}bjjm1q!W5rzz"&&'9:

BJJrvv$67r   rN   NrF  r   c                 t   |t        |      nt        ||      }t        j                  j	                  d      }t        j
                  |j                  ddd      |j                  ddd      g      }ddgddgg}t        j                  t        j                  j                  |      |      }|j                  |d   |      }|j                  |d   |      }d	}t        j                  ||      }	t        |	d   |j                  |d   |             t        |	d   |j                  |d   |             y )
Nr  r   r  r  r   r  r   rM   )g\zf?g^n)=)r(   rH  r   r  r  r   r  r  r  r  ri   rk   r  r4   )
rs   rN   rt   r  rv   r[  r  r  r  r   s
             r}   test_large_arraysz TestKendallTau.test_large_arrays\  s    ). $72u;Mii##D)HHcjjQacj:jjQacj:< =c
c
FF299%%d+Q/ZZ!EZ*ZZ!EZ*@r2&A

8A;e
 DEA

8A;e
 DEr   c                 4   t        j                  d      }t         j                  |d<   |j                  |j	                               }t        j                  ||      }t        |j                  |j                  |j                               t        |j                  |j                  |j                               t        j                  ||d      }t        |j                  |j                  d             t        |j                  |j                  d      d       t        j                  ||dd	
      }t        |j                  |j                  d             t        |j                  |j                  d      d       d}t        j                  t        |      5  t        j                  ||d       d d d        d}t        j                  t        |      5  t        j                  ||d       d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)Nr   r?   r   r   r   g/>r  r  r  )r   r  g&?r   r   r   r   r   )r   r   rr   ri   r   rk   r  r5   r!  r  r4   r   r   r   )rs   rt   rv   r   r  s        r}   rK  zTestKendallTau.test_nan_policym  s|   IIcNvv!JJqxxz"q!$rzz"&&'9:

BJJrvv$67q!7rzz#7

BJJ|$<5Iq!|Lrzz#7

BJJ/E$FUS1]]:W5 	7Qg6	7 1]]:W5 	8Qh7	8 	8		7 	7	8 	8s   "H HHHc                    |j                  g d      }|j                  t        j                  dddg      }t        j                  ||d      }t        j                  |dd  |dd        }t        |j                  |j                  d       y )	Nrk  333333@333333@r   r   r   r%  r&  )ri   r   rr   rk   r  r4   r!  )rs   rt   rv   rw   r1r2s         r}   "test_kendalltau_nan_2nd_arg_gh6134z1TestKendallTau.test_kendalltau_nan_2nd_arg_gh6134  sr    JJ'(JJS#./av6aeQqrU+bll?r   zfails in parallelr   c                    dd l }|j                  d       g d}d}|j                  |j                  ||            }|j                  |j                  ||            }t	        j
                  ||      }t        |j                  |j                  d             t        |j                  |j                  d      d	       y )
Nr   i_ r   r8   r9   r:   r;   r<   r=   i@ rO  g*8_2\S?gd`TR?gMb`?r&  )	r  seedri   choicesrk   r  r4   r!  r  )rs   rt   r  classes	n_samplesrv   rw   r   s           r}    test_kendalltau_gh18139_overflowz/TestKendallTau.test_kendalltau_gh18139_overflow  s    
 	G'	JJv~~g~;<JJv~~g~;<q!$rzz2G'HI 	

BJJv$6TBr   c                    d}t        j                  |dz         j                  t              }t        j                  |dz         j                  t              }t         j                  |d<   |j                  |j                               |j                  |j                               }}t        j                  ||dd      \  }}t        ||j                  d             y )N   r   rd   r  r   )r  r   r   )
r   r   r  r  rr   ri   r   rk   r  r5   )rs   rt   rZ  rv   rw   _rn  s          r}   !test_kendall_tau_large_nan_policyz0TestKendallTau.test_kendall_tau_large_nan_policy  s    IIa!e##E*IIa!e##E*"zz!((*%rzz!((*'=1""1aFK4bjjo.r   N)r   r   r   r   r   r   r  r  r  r  r  r  rK  r&  thread_unsafer/  r3  r   r   r}   r  r    s   [[6 
"#;S#F	$&A3L	 5~}U	 5~sK	')G	 	"	')G	/	1	')G	/	1	')G	!	#	')G	0	2	')G	0	2%9 * [[Yc
34 4+,4
X4$#L [[Yc
38 48 [[V	I	I	I& 
 [[Yc
38 48 [[W&BCF DF 84@ [[&9:C ;C"/r   r  c            	       h   e Zd Zd ZdZej                  ej                  ej                  gZg dZg dZ	g dZ
g dZg dZg dZg d	Zg d
Zd Z e eeedgdz               e ee ee      dgdz              z   Zej,                  j/                  de      d        Z e eeedgdz               e ee ee      dgdz              z   Zej,                  j/                  de      d        Z e eee	dgdz               e ee ee	      dgdz              z   Zej,                  j/                  de      d        Z e eee
dgdz               e ee ee
      dgdz              z   Zej,                  j/                  de      d        Z e eeedgdz               e ee ee      dgdz              z   Zej,                  j/                  de      d        Z  e eeedgdz               e ee ee      dgdz              z   Z!ej,                  j/                  de!      d        Z" e eeedgdz               e ee ee      dgdz              z   Z#ej,                  j/                  de#      d        Z$ e eeedgdz               e ee ee      dgdz              z   Z%ej,                  j/                  de%      d        Z& e eeedgdz               e ee ee      dgdz              z   Z'ej,                  j/                  de'      d        Z( e eedgdz               e eedgdz              z   Z)ej,                  j/                  de)      d        Z*ej,                  j/                  dd      ej,                  j/                  dd      d               Z+y )!TestKendallTauAlternativec                    g d}g d}t        j                  |j                  |      |j                  |      d      }|d   dkD  sJ t        j                  |j                  |      |j                  |      d      }t        |d   |j                  |d                t	        |d   |j                  d|d   dz  z
               t        j                  |j                  |      |j                  |      d	      }t        |d   |j                  |d                t	        |d   |j                  |d   dz               |j                          t        j                  |j                  |      |j                  |      d      }|d   dk  sJ t        j                  |j                  |      |j                  |      d	      }t        |d   |j                  |d                t	        |d   |j                  d|d   dz  z
               t        j                  |j                  |      |j                  |      d      }t        |d   |j                  |d                t	        |d   |j                  |d   dz               t        j                  t        d
      5  t        j                  |j                  |      |j                  |      d       d d d        y # 1 sw Y   y xY w)Nr  r  rd  rl  r   rf  r   r8   rh  r  r   r  )	rk   r  ri   r5   r4   reverser   r   r   )rs   rt   r  r  r  r   s         r}   &test_kendalltau_alternative_asymptoticz@TestKendallTauAlternative.test_kendalltau_alternative_asymptotic  s_     ##BJJrNBJJrN0;={Q rzz"~rzz"~6RA

8A; 78A

1a+@ AB rzz"~rzz"~9UA

8A; 78A

8A;? ;< 	

 ##BJJrNBJJrN0;={Q rzz"~rzz"~9UA

8A; 78A

1a+@ AB rzz"~rzz"~6RA

8A; 78A

8A;? ;<]]:-NO 	VRZZ^RZZ^U	V 	V 	Vs   &7K&&K/)rf  rd  rh  )r   r   rA   )r   RUUUU?ZUUUU?)g~?r:  r;  )?r   r<  )ˮ[?r   r=  )g?gSǌ?gSǌ?)g:
?g3
?g<t'.?)gN  A?gss?gYss?c                 "   |j                  |      |j                  |      }}|r| }|dz  }t        j                  ||d|      }t        |j                  |j                  |             t        |j
                  |j                  |             y )Nrd   r  r  )ri   rk   r  r4   r!  r  )	rs   rv   rw   rm  revstat_expected
p_expectedrt   r   s	            r}   
exact_testz$TestKendallTauAlternative.exact_test  ss    zz!}bjjm1ARMq!GMrzz-'@A

BJJz$:;r   Fr9   Tzalternative, p_expected, revc           
          dgdg}}t         j                  }t        j                  t        d      5  | j                  |||||||       d d d        y # 1 sw Y   y xY w)Nr   r8   r  r   r   )r   rr   r   r_  r   rB  rs   rm  rA  r?  rt   rv   rw   r@  s           r}   test_against_R_n1z+TestKendallTauAlternative.test_against_R_n1  s\    sQC1\\,4KL 	VOOAq+sM:RTOU	V 	V 	Vs   AAc           	      H    ddgddg}}d}| j                  |||||||       y )Nr   r8   r9   r:   g?r   rB  rD  s           r}   test_against_R_n2z+TestKendallTauAlternative.test_against_R_n2  s2    1v1v1*1k3zbQr   c           	      H    g dg d}}d}| j                  |||||||       y )Nr~  r   r   rG  rD  s           r}   test_against_R_c0z+TestKendallTauAlternative.test_against_R_c0  s*    )11k3zbQr   c           	      H    g dg d}}d}| j                  |||||||       y )Nr  )r   r8   r:   r9   gVUUUUU?r   rG  rD  s           r}   test_against_R_c1z+TestKendallTauAlternative.test_against_R_c1  s*    \1*1k3zbQr   c           	      H    g dg d}}d}| j                  |||||||       y )Nr  )r   r;   r:   r8   r9   r   r   rG  rD  s           r}   test_against_R_no_correlationz7TestKendallTauAlternative.test_against_R_no_correlation"  s*    11k3zbQr   c           	      H    g dg d}}d}| j                  |||||||       y )Nr   r8   r9   r:   r;   r<   r=   r>   )r>   r<   r   r9   r8   r;   r:   r=   r   r   rG  rD  s           r}   test_against_R_no_correlationbz8TestKendallTauAlternative.test_against_R_no_correlationb,  s+    ')A11k3zbQr   c           	      H    g d}g d}d}| j                  |||||||       y )N)	g333333F@g33333F@g33333D@gfffffJ@gYF@gF@gYI@gF@gN@)	g@@rC   rQ   @r   g@ffffff@r  gqq?r   rG  rD  s           r}   test_against_R_lt_171z/TestKendallTauAlternative.test_against_R_lt_1715  s.     C9*1k3zbQr   c           	          t         j                  j                  d      }|j                  d      j	                         }|j                  d      j	                         }d}| j                  |||||||       y )Nr   r  gUm*,r   r   r  r  r  r   rB  	rs   rm  rA  r?  rt   r  rv   rw   r@  s	            r}   test_against_R_lt_171bz0TestKendallTauAlternative.test_against_R_lt_171bB  sa    ii##A&HHSM  "HHSM  ",1k3zbQr   c           	          t         j                  j                  d      }|j                  d      j	                         }|j                  d      j	                         }d}| j                  |||||||       y )Nr      gH4?r   rX  rY  s	            r}   test_against_R_lt_171cz0TestKendallTauAlternative.test_against_R_lt_171cN  sa    ii##A&HHSM  "HHSM  "*1k3zbQr   zalternative, revc                    t         j                  j                  d      }|j                  |j	                  d      j                               }|j                  |j	                  d      j                               }t        j                  ||d|      }t        j                  ||d|      }t        |d   |d          t        |d   |d   d       y )	Nr   i  r  r  r  r   r  r  )
r   r  r  ri   r  r   rk   r  r5   r4   )	rs   rm  r?  rt   r  rv   rw   res0r  s	            r}   test_gt_171z%TestKendallTauAlternative.test_gt_171Y  s    ii##A&JJsxx}++-.JJsxx}++-.1W+N1\{SQa)Qat4r   r  )r  r  rm  r  c                    g d}g d}|t         j                  gz   }|t         j                  gz   }|j                  |      |j                  |      }}|j                  |      |j                  |      }}t        j                  ||||      }t        |j                  |j                  |j                               t        |j                  |j                  |j                               t        j                  ||d||      }t        j                  ||||      }	t        |j                  |	j                         t        |j                  |	j                         d}
t        j                  t        |
      5  t        j                  ||d||       d d d        d	}
t        j                  t        |
      5  t        j                  ||d
||       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr  )r;   r<   r=   r>   r?   r  r   )r   r  rm  r   r   r   r   r  )r   rr   ri   rk   r  r5   r!  r  r   r   r   )rs   r  rm  rt   r  r  r  r  r  r   r  s              r}   rK  z)TestKendallTauAlternative.test_nan_policyc  s    bffXbffXBBBzz%("**U*;u %%eU-3N

,,bjj.@A
))2::bff+=> %%eUv-3N
''Bv4?A
,,l.D.DE
))<+>+>? 2]]:W5 	EUEg$*E	E
 1]]:W5 	EUEk$*E	E 	E	E 	E	E 	Es   <G <G, G),G5N),r   r   r   r9  alternativesr   rr   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_171crB  r  r  reversed	case_R_n1r   r   r   rE  	case_R_n2rH  	case_R_c0rJ  	case_R_c1rL  case_R_no_corrrN  case_no_cor_brQ  case_R_lt_171rV  case_R_lt_171brZ  case_R_lt_171cr]  case_gt_171r`  rK  r   r   r}   r6  r6    s   )Vl 4LFFBFFBFF#DD2D>D>?DJCKGK< c,ugai89L(4.4&(CDEI [[;YGV HV c,ugai89L(4.4&(CDEI [[;YGR HR
 c,ugai89L(4.4&(CDEI [[;YGR HR
 c,ugai89L(4.4&(CDEI [[;YGR HR
 3|-=wqyIJSx8H/I"&+ ,,N [[;^LR MR
 #l,=wqyIJCh7H.I!%q* ++M [[;]KR LR
 #lJ	BCChz.BTF1HMNOM [[;]KR LR 3|[5'!)DESx/D"&+ ,,N [[;^LR MR 3|[5'!)DESx/D"&+ ,,N [[;^LR MR L5'!)45L4&(345K [[/=5 >5 [[X'>?[[],LM!E N @!Er   r6  c                       e Zd Zd Zd Zd Zy)TestWeightedTauc                    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        t        t        j
                  |       t        t        j
                  |       t        j                  t        d      5  t        j                  dgdg      \  }}d d d        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(       y # 1 sw Y   xY w# 1 sw Y   RxY w))Nr  r  gs$F)additivegROoc                      yNr   r   rv   s    r}   <lambda>z2TestWeightedTau.test_weightedtau.<locals>.<lambda>      r   )weigherr  r  )rankgڿgn)r  rz  g @ڿg[đ(gIکnTc                      yr|  r   r}  s    r}   r~  z2TestWeightedTau.test_weightedtau.<locals>.<lambda>  r  r   )r  r  c                      yr|  r   r}  s    r}   r~  z2TestWeightedTau.test_weightedtau.<locals>.<lambda>  r  r   rM   r  r   r   r   r   r   r8   r:   r=   r`   r8   )      (@r   r   r  r   r   r   r   r  r   )r  r   r   r  r   )r   r   r   r   r   gt34+)rk   weightedtaur
   r   r   rr   r   r  r!  ri   r   r   r   r_  r   r   r   )rs   rv   rw   r  r  r   r"  s          r}   test_weightedtauz TestWeightedTau.test_weightedtau  s>   ((A.WC!56RVVW%((A>WC!56RVVW%((A{CWC!56RVVW% 1%.
C,S__cmm4 ((AD9WC!45RVVW%((AD9WC!45RVVW%((AD5IWC!56RVVW%((AD5IWC!56RVVW%((AE:WC!56RVVW%((AD+NWC!56RVVW%((AD+NWC!56RVVW%((ARZZ)H!LWC!56((ARXX)FJWC!56((ARZZ)H)+ARZZ)HJWC!56\\,4KL 	5 ,,R4LC	5RVVS!RVVW%\\,4KL 	7 ,,aS1#6LC	7RVVS!RVVW%j%"3"3aVYGj%"3"3aVaVYO1a ((A.WC!56BFFB"((A.WC!56'#sC(((A.WC!563c*((A.WC!56'%((A.WC!453bff-((A.WC!45VVS#rvvrvv.((A.WC!45K	5 	5	7 	7s   2[#[[[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        y # 1 sw Y   y xY w)Nz)One or more sample arguments is too smallr   r   r   4   )r   r_  r   rk   r  r   rr   r  s     r}   test_segfault_issue_9710z(TestWeightedTau.test_segfault_issue_9710  sm    
 >\\,G< 	.qcC5)qcC5)rvvh-		. 	. 	.s   AA>>Bc           
      "   d }d }t         j                  j                  d      }t        dd      D ]  }g }t        |      D ]  }||g|z  z  } t	        |      }|j                  |       |j                  |       t        j                  t        |      t         j                        }t        d      D ]U  }	dD ]=  }
 ||||||
      }t        j                  |||||
      j                  }t        ||       ? |j                  |       W  y )	Nc                 h   dx}x}x}x}}	t        t        t        |             t        t        |                   D ]  \  }
}|r |||
          |||         z   n |||
          |||         z  }||z  }| |
   | |   k(  r||z  }||
   ||   k(  r|	|z  }	| |
   | |   k  r||
   ||   k  s| |
   | |   kD  r||
   ||   kD  r||z  }| |
   | |   k  r||
   ||   kD  s| |
   | |   kD  s||
   ||   k  s||z  } ||z
  t        j                  ||z
        z  t        j                  ||	z
        z  S )Nr   )r   r  lenr   r)  )rv   rw   r  r  addtotconcdiscuvr  r\  ws                r}   wkqz:TestWeightedTau.test_weightedtau_vs_quadratic.<locals>.wkq  sm   ())C)$))A!%A-s1v? A;>GDG$wtAw'77 a)GDG,<< qQ41Q4<FAQ41Q4<FAQ4!A$;1Q4!A$;!A$1+!A$1+AIDqTAaD[QqTAaD[AaD1Q4KAaD1Q4KAID 4K27737#33bggcAg6FFFr   c                     d| dz   z  S )Nr   r   r   r}  s    r}   r  z>TestWeightedTau.test_weightedtau_vs_quadratic.<locals>.weigher  s    Q<r   *   r9   r^   rM   r8   rb   )r   r  r  r  r  shuffler   r  intprk   r  r!  r
   )rs   r  r  r  sr,  r  r6  r  r2  r  r  r  s                r}   test_weightedtau_vs_quadraticz-TestWeightedTau.test_weightedtau_vs_quadratic  s    	G 	  ii##B'q 	"AA1X aSU
QAKKNKKN99SV2773D1X "( :C"1aw<H"..q!T7CHRRF'&9:
 D!"	"r   N)r   r   r   r  r  r  r   r   r}   rx  rx    s    Y6x
.&"r   rx  c                       e Zd Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestRegressionc                    |j                   }t        j                  |j                  t              |j                  t
                    }t        |j                  |j                  d|             t        |j                  |j                  d|             |j                  d|      }t        |j                  |d       t        |j                  |d       y )Ng   ؃חArM   r   r   r{  r&  )r   rk   
linregressri   rj   r   r4   	interceptrvaluestderrintercept_stderr)rs   rt   rN   rr  zeros        r}   test_linregressBIGXz"TestRegression.test_linregressBIGX  s    

!!"**Q-CA(("**Ye**LMrzz#Uz'CD zz#Uz+t$7//DAr   c                    t        j                  |j                  t        j	                               |j                  t        j	                                     }t        |j                  |j                  d      d       t        |j                  |j                  d             t        |j                  |j                  d      d       t        |j                  |j                  d      d       y )Nr   r%  r&  r   r{  )
rk   r  ri   rj   r   r4   r  r  r  r  rs   rt   rr  s      r}   test_regressXXzTestRegression.test_regressXX*  s    
 !!"**QXXZ"8"**QXXZ:PQ(("**S/Frzz#7rzz#TB//CtLr   c                 P   t        j                  |j                  t        j	                               |j                  t
        j	                                     }t        |j                  |j                  d             t        t         j                  d|      5  t        j                  |j                  t        j	                               |j                  t
        j	                                     j                  }d d d        t        |j                         y # 1 sw Y    xY w)Nr   zAn input array...r?  )rk   r  ri   rj   r   ZEROr4   r  r$   rA  r   r!  r  )rs   rt   rr  
ref_rvalues       r}   test_regressZEROXz TestRegression.test_regressZEROX?  s    
 !!"**QXXZ"8"**T[[]:ST(("**S/:33;NSUV 	M

188:(>(*

4;;=(ACCL9 	M 	z2	M 	Ms   A#DD%c                 D   |j                  ddd      }d|j                  ddd      z  dz   }||j                  |j                  ddd            z   }t        j                  ||      }t        }t        ||      sJ t        |j                  |j                  d             y )Nr   r  皙?r^   r  g4_Qc?)	linspacesinrk   r  r   
isinstancer4   r  ri   )rs   rt   rv   rw   rr  lrs         r}   test_regress_simplez"TestRegression.test_regress_simpleK  s    KK3$"++ac**R/r{{1b#.//!!!Q'&"%%%rzz2G'HIr   c                    |j                  ddd      }d|j                  ddd      z  dz   }||j                  |j                  ddd            z   }t        j                  t        d      5  t        j                  ||d	       d d d        t        j                  ||d
	      }t        j                  ||d	      }t        |j                  d|j                  dz  z
         t        j                  ||d	      }t        |j                  |j                  dz         |j                  |j                  cxk(  r|j                  k(  sJ  J y # 1 sw Y   xY w)Nr   r  r  r^   r  r  r   r  rl  rd  rf  r   r8   rh  )
r  r  r   r   r   rk   r  r4   r  r  )rs   rt   rv   rw   r  r  r  s          r}   test_regress_alternativez'TestRegression.test_regress_alternativeV  s   KK3$"++ac**R/r{{1b#.//]]:-NO 	<Q{;	< 1+> 1&9Q$++/%:; 1)<T[[1_5{{dkk8T[[88888	< 	<s   -EErN   r  c           	         ||nt        ||      }|j                  g d|      }|j                  g d|      }t        j                  ||d      }t	        |j
                  |j                  d|             t	        |j                  |j                  d|             t	        |j                  |j                  |j                  d|                   t	        |j                  |j                  d	|             t	        |j                  |j                  d
|             t	        |j                  |j                  d|             y )N)
                              rM   )
?   Q   8   [   /   9   r  H   >   r  rd  rl  gؗh?gJK@:Cgag?g->g5ՒO?g]؊E @)rH  ri   rk   r  r4   sloper  r  r)  r  r  r  )rs   rN   rt   rv   rw   r   s         r}   test_regress_against_Rz%TestRegression.test_regress_against_Rk  s    GB,>JJIQVJWJJ?uJMq!=		2::oU:#KLrzz2C5z'QR

BGGBJJ}EJ,R$ST

BJJ/@J$NO

BJJeJ$LM,,bjjPUj.VWr   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                  j	                  |      j	                  |            }fd} ||j
                  d	        ||j                  d
        ||j                  d        ||j                  d        ||j                  d        ||j                  d       y )Nr_   r;   r   r   r   rd   c                 >    t        | j                  |      d      S )Nr-  r&  )r4   ri   )rv   rw   rt   s     r}   	assert_aez1TestRegression.test_linregress.<locals>.assert_ae  s    "1bjjm%@@r   r   rQ   gePUn?g.bt>gڽE?gʺL7?)r   r   rk   r  ri   r  r  r  r  r  r  )rs   rt   rv   rw   rr  r  s    `    r}   test_linregresszTestRegression.test_linregress  s    IIbMIIa	A+!	A+!!!"**Q-A?	A&,,$&""C(&--!12&--1&--!56&))+>?r   c                    d\  }}|j                   }|j                  |d|z  ||      }|j                  d|z  |||      }t        j                  ||      }|j                  dk\  sJ t        |j                  |j                  d|             |j                  |j                        rJ |j                  |j                        rJ y )N)gJr 11順 r8   rM   rd   r0  )
r   r  rk   r  r  r4   ri   r:  r  r  )rs   rt   r,  rZ  rN   rv   rw   rr  s           r}    test_regress_simple_negative_corz/TestRegression.test_regress_simple_negative_cor  s     1

KK1q5!5K1KKAq!5K1!!!Q' }}"""rzz#Uz'CD 88FMM***88F334444r   c                 8   |j                  ddd      }d|j                  ddd      z  dz   }||j                  |j                  ddd            z   }t        j                  ||      }t        }t        ||      sJ d}t        |||       dt        |      v sJ y )	Nr   r  r  r^   r  )r  r  r  r  r  r   r  )r  r  rk   r  r   r  r   dir)rs   rt   rv   rw   rr  r  r"  s          r}   !test_linregress_result_attributesz0TestRegression.test_linregress_result_attributes  s    KK3$"++ac**R/r{{1b#.//!!!Q' &"%%% J
FJ26!S[000r   c                    |j                  d      }|j                  dd      }t        j                  ||      }t        |j                  |j                  d             t        |j                  |j                  d             t        |j                  |j                  d             |j                  |j                        }t        |j                  |       t        |j                  |       t        |j                  |       y )Nr8   r9   r;   r   r   )r   rk   r  r4   r  ri   r  r  rr   r5   r  r  r  rs   rt   rv   rw   rr  NaNs         r}   test_regress_two_inputsz&TestRegression.test_regress_two_inputs  s    IIaLIIaO!!!Q'bjjo6(("**S/:rzz#7jj s+s+//5r   c                    |j                  d      }|j                  d      }t        j                  ||      }t	        |j
                  |j                  d             t	        |j                  |j                  d             |j                  |j                        }t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       y )Nr   r8   r   r   )r   r  rk   r  r4   r  ri   r  rr   r5   r  r  r  r  r  s         r}   'test_regress_two_inputs_horizontal_linez6TestRegression.test_regress_two_inputs_horizontal_line  s    IIbMGGAJ!!!Q' 	bjjo6(("**S/:jj s+s+s+//5r   c                    g d}g d}t        j                  |j                  |      |j                  |            }t        |j                  |j                  d             t        |j
                  |j                  d             t        |j                  dz  |j                  d             t        |j                  |j                  d      d	       |j                  j                  |j                  k(  rKt        |j                  |j                  d
             t        |j                  |j                  d             y y )N)$r  gfffffu@ǧ]@g̤@333333$@g     Pl@gfffff҄@gfffff"@g	|@g     H@gq@皙?333333?g     <@g33333ׄ@g      u@g     {@g333333'@g     `@33333l@gfffff@g̼@g^@r  r  gffffff@g1u@g@g     8@g     X@333333&@g33333]@gfffffl@g@fffff|@rA   )$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!пr8   gpX?r   g#aMR/r&  gh-h*<?gg?)rk   r  ri   r4   r  r  r  r  rN   r   r  r  )rs   rt   rv   rw   rr  s        r}   test_nist_norriszTestRegression.test_nist_norris  s    77 !!"**Q-A?bjj1A&BC(("**5G*HIq("**5F*GHrzz#UC=="**,FMM2::6F+GHF33RZZ@P5QR -r   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                  |j                  |      |j                  |            }t        j                  ||d      }t        |j                  |j                  |d                t        |j                  |j                  |d                y )Nr   r  r  r^   r  r   )
r   r  r  rk   r  ri   polyfitr4   r  r  )rs   rt   rv   rw   rr  polys         r}   test_compare_to_polyfitz&TestRegression.test_compare_to_polyfit  s    KK3$"++ac**R/	RVVBKK2s+,,!!"**Q-A?zz!Q" 	bjja&9:(("**T!W*=>r   c                    |j                  ddg      }|j                  ddg      }t        j                  ||      }|j                  |j                        }t	        |j
                  |       t	        |j                  |       t	        |j                  |       t        |j                  |j                  d             t        |j                  |j                  d             y )Nr   r   )ri   rk   r  rr   r5   r  r  r  r4   r  r  )rs   rt   rv   rw   r   r  s         r}   (test_linregress_two_points_nan_inferencez7TestRegression.test_linregress_two_points_nan_inference  s    JJBx JJBx q!$jj 

C(

C(,,c2 			2::c?3rzz#7r   c                    t        t        d|      5  t        j                  |j	                  g       |j	                  g             }|j	                  |j
                        }t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)Nr  r?  )r$   r   rk   r  ri   rr   r5   r  r  r  r  r  r  rs   rt   r   r  s       r}   test_empty_inputzTestRegression.test_empty_input	  s    +3JrR 	7""2::b>2::b>BC**RVV$CCIIs+CMM3/CJJ,CJJ,CJJ,C00#6	7 	7 	7s   CC00C9c                 z   t        j                  d      }t         j                  |d<   |j                  |j	                               }t        j
                  d      5  t        j                  ||      }d d d        t        }t        |      sJ |j                  |j                        }t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       t        |j                   |       y # 1 sw Y   xY w)Nr   r?   r   invalid)r   r   rr   ri   r   errstaterk   r  r   r  r5   r  r  r  r  r  r  )rs   rt   rv   rr  r  r  s         r}   test_nan_inputzTestRegression.test_nan_input	  s    IIcNvv!JJqxxz"[[* 	,%%a+F	, &"%%%jj c*((#.s+s+s+//5	, 	,s   D11D:c                    t         j                  j                  d      }|j                  d      }|j	                  |j                  d      j                               }t        j                  d      5  t        j                  ||      }d d d        |j	                  |j                        }t        j                  |       t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       t        |j                   |       y # 1 sw Y   xY w)Nl   ,w* r^   r   r  )r   r  r  r   ri   r   r  rk   r  rr   r5   r  r  r  r  r  r  )rs   rt   r  rv   rw   r   r  s          r}   test_identical_xzTestRegression.test_identical_x-	  s    ii##J/HHRLJJszz"~,,./[[* 	)""1a(C	)jj 		3's+

C(

C(

C(,,c2	) 	)s   5D44D=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    s    
B
M*
3	J9* [[W&BCX DX&@,5&1 66 S8
?8 	76&3r   r  c                       e Zd Zd Zej
                  j                  dg d      ej
                  j                  dddg      ej
                  j                  dddg      ej
                  j                  dddg      d	                             Zy
)HistFunctionsTestc           
         t        t        | j                        }|j                  d      }d}d}|j	                  d      }d}t        j                  t        |      5   |||d       d d d        t        j                  t        |      5   |||d       d d d        t        j                  t        |      5   ||||d d d          d d d        d}t        j                  t        |      5   ||j                  ||j                        ||       d d d        t        j                  t        |      5   |||||j                  ||j                               d d d        t        |      s3d	}t        j                  t        |      5   |||||        d d d        y y # 1 sw Y   >xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   y xY w)
Nr  r^   )r   r  z,If specified, `defaultreallimits` must be...r   r~  rd   z8`a` and \(if specified\) `weights` must have real dtype.z#All `weights` must be non-negative.)rH  rk   histfunr   r  r   r   r   r  
complex128r%   )rs   rt   r  r,  numbinsdefaultreallimitsweightsr  s           r}   r  z'HistFunctionsTest.test_input_validation=	  s   %.IIbM#''"+@]]:W5 	$Aw#	$]]:W5 	+Aw	*	+]]:W5 	9Aw 1$B$ 78	9 N]]:W5 	MBIIa/:KL	M]]:W5 	VAw 1299Wbmm3TU	V W%;Gz9 A7$5x@A A &	$ 	$	+ 	+	9 	9	M 	M	V 	V
A AsH   F%F2:F?0%G8&GG#%F/2F<?GGG #G,rN   r  edge_pointsFTspecify_limitsspecify_weightsc           
         t         j                  j                  d      }t        |j	                  dd            }|r|st        j                  d       |r@t        |      s |dk7  rt        |      s|dk7  r t        |      rt        j                  d       t        j                  |j                  d      |      }|r;t        j                  t        j                  |j                  d            |      }	|	}
nRd	|j                         |j                         z
  z  |d
z
  z  }|j                         |z
  |j                         |z   f}
d }	|rtt        j                  |||
d      \  }}t        j                  ||j	                  d|j                         j#                               }t        j$                  ||g|      }|r/t        j                  |j                  |j                         |      nd }t        j                  |||
d      \  }}t        j                  |||
|d      \  }}|t'        |      nt)        ||      }t)        t*        | j,                        }||n|j/                  ||      } ||j/                  ||      ||	|      }|j/                  ||      }||j0                  k(  rdnd}|t*        j2                  k(  r*|j5                  |      }t7        |j8                  ||       nP||j                   d   n|j;                  |      }|j/                  ||z  |      }t7        |j<                  ||       t7        |j>                  |j/                  |d   |             t7        |j@                  |j/                  |d
   |d   z
  |             t7        |jB                  |j/                  |jD                  t;        |j#                               z
               y )Nl   =k r^   r  z2Limits must be specified to determine edge points.r   z<Some backends are having trouble with edge point arithmetic.r  r8   rA   r   F)binsr  densityr;   r  rM   )r  r  r  r  r@   gh㈵>r  r   )#r   r  r  intintegersr   skipr/   r'   r0   r  sortmaxmin	histogramrepeatr  r   concatr(   rH  rk   r  ri   r   cumfreqcumulative_sumr4   cumcountr$  	frequencyr   binsizeextrapointsr  )rs   rN   r   r  r  rt   r  nbinsr,  rS   range_r  r2  edgesa2r  
bin_countsref_binsref_histr  r   r  ref_cumcountdenref_frequencys                            r}   test_against_referencez(HistFunctionsTest.test_against_referenceW	  s    ii##J/CLLR()~KKLMF2J % 2x| % 2wr{KKVWIIcjjou-YYrwwszz!}5u=FF 1557*+uqy9Aeegk1557Q;/FF||AEOHAu5#,,qu{{,"C"J"J"LMB		1b'/A;J"))CJJqww/7PT!||AEQVW
Hll15+2EC! ). $72u;M%.$_'"**WE*2Rbjj%j0%I::he:4+uemm#,,X6LCLL,TB '!''!*RVVG_CJJx|5JAMCMM=tD

8A;e
(LMRZZhqk0IQVZ%WXAFFSARARAT=U4U)VWr   N)r   r   r   r  r   r   r   r  r   r   r}   r  r  <	  s    A4 [[W&BC[[]UDM:[[-t}=[[.>2X ? > ; D2Xr   r  c                       e Zd ZdZd Zy)TestCumfreqr  c                 4   |j                  g d      }t        j                  |d      \  }}}}t        ||j                  g d             t        j                  |dd      \  }}}}|dk(  sJ d}t        j                  |dd      }t	        |||	       y )
Nr   r:   r8   r   r9   r   r:   r  )r   r   rQ   r   )rB   r;   )r  r  r9   )r  r   r  r  r   )ri   rk   r  r5   r   )	rs   rt   rv   cumfreqslowlimr  r  r"  r   s	            r}   test_cumfreqzTestCumfreq.test_cumfreq	  s    JJ)*16q!1L.&';"**-=">?16qH26.&';a J
mmAqHEC3r   N)r   r   r   r  r'  r   r   r}   r!  r!  	  s    G4r   r!  c                       e Zd ZdZd Zd Zy)TestRelfreqrelfreqc                     |j                  g d      }t        j                  |d      \  }}}}t        ||j                  g d             d}t        j                  |d      }t	        |||       y )Nr#  r:   r$  )rA   K}\UU?r,  r,  )r  r   r  r  r   )ri   rk   r*  r4   r   )	rs   rt   r,  relfreqsr&  r  r  r"  r   s	            r}   test_relfreqzTestRelfreq.test_relfreq	  sb    JJ)*16q!1L.&';"**-V"WX K
mmAq)C3r   c                     g d}t        j                  |d      \  }}}}t        j                  t        j                  |      d      \  }}}}t	        ||       y )Nr#  r:   r$  )rk   r*  r   ri   r5   )rs   r,  r   r2  r   s        r}   test_relfreq_array_likez#TestRelfreq.test_relfreq_array_like	  sI    }}Q2Q1}}RZZ]A>Q1S!r   N)r   r   r   r  r.  r0  r   r   r}   r)  r)  	  s    G4"r   r)  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestScoreatpercentilec                 :    g d| _         g d| _        g d| _        y )N)r9   r:   r;   r^   re   r<   )r9   r  r>   r=   r:   r8   r   )r   r:   r;   r^   re   r4  r5  r   )a1r  a3r6  s    r}   r7  z"TestScoreatpercentile.setup_method	  s    *,1r   c                     t        d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       y )	Nr>   rA   r   r   r  rD   2         ?)r   r   rk   scoreatpercentilerH  s     r}   r7  z TestScoreatpercentile.test_basic	  sT    1IOU,,Q2B7U,,Q4c:U,,Q3T:r   c           	      F   t         j                  }t         |t        t	        d            d      d       t         |t        t	        d            dd      d       t         |t        t	        d            dd      d       t         |t        j                  g d      dd	      d
       t         |t        j                  g d      dd      d       t         |t        t	        d            dd      d       t         |t        t	        d            ddd      d       t         |t        t	        d            ddd      d       t         |t        j                  g d      dd	d      d
       t         |t        j                  g d      ddd      d       y )Nr^   r9  rE   r8   r=   r  r   r>   )limitr   r^   r  r^   r  7   r   r^   rF   fractioninterpolation_methodr?  rF  rk   r;  r   r  r  r   r   rs   scoreatpercs     r}   test_fractionz#TestScoreatpercentile.test_fraction	  sP   -- 	[eBi"5s;[eBi"e<cB[eCj!12VDcJ[+!6HErJ[+!6FCSI 	[eBi":V	[eBi"F6@B	 	[eCj!12V6@B	 	[+!6I6@B	 	[+!6F6@B	r   c           	      X   t         j                  }t         |t        t	        d            dd      d       t         |t        t	        d            dd      d       t         |t        t	        d            ddd      d       t         |t        t	        d            ddd	      d       t         |t        t	        d
            ddd      d       t         |t        t	        d
            ddd      d       t         |t        j                  g d      ddd      d       t         |t        j                  g d      ddd	      d
       t         |t        j                  g d      ddd      d       t         |t        j                  g d      ddd	      d       y )Nr^   r9  lowerrE  r:   higherr;   r=  rG  r  r>  r@  rA  rC  r   rH  rI  s     r}   test_lower_higherz'TestScoreatpercentile.test_lower_higher	  s~   -- 	[eBi"6=?@A	C[eBi"6>@AB	D[eBi"e6=?@A	C[eBi"E6>@AB	D[eCj!12u6=?@A	C[eCj!12u6>@AB	D[,!7Y6=?@B	D[,!796>@AD	F[,!7W6=?@A	C[,!776>@AC	Er   c           	      *   t        d      dz  }t        j                  g d      }t        j                  |g d      }t        ||       t        t        |t        j                               t        t        j                  |t        j                  g d            |       t        j                  t        j                   d      j                  d      t        j                  g d      d	      }t        g d
g dg dg dg      }t        ||       y )Nr>   rA   )r   rD   r:  )r   r  r9  r`   r9   r:   )r   r   r  r  r   rX   )r   r:   r>   )Q?gQ@g(\ @r9   r=   r_   )
r   r   r   rk   r;  r   r   r  ndarrayrm   )rs   rv   r  r   r  	expected2s         r}   test_sequence_perz'TestScoreatpercentile.test_sequence_per	  s    1IO88N+%%a6X&
3

+,//288L3IJ 	" &&ryy}'<'<U'C')xx0@'AK9-%%' (	 	i(r   c                     t         j                  }t        d      j                  dd      }t	         ||d      g d       g dg dg dg}t	         ||dd	
      |       g dg dg dg}t	         ||dd
      |       t        g dg dg dg dg dg      }t        j                  |d      }t	        |j                  d       t	        |d       t        j                  |dd	
      }t	        |j                  d       t	        |g d       y )Nr`   r9   r:   )r  r9  r  )g      @rF         &@)r8   r9   r:   r;   )r:   r;   r<   r=   )r>   r?   r^   r_   r   rX   )      ?g      @g     !@)rB   rF         #@rS  r   r   r   r   )r:   r:   r9   r9  r   r   r9   )rk   r;  r   rm   r   r   r  )rs   rJ  rv   r0r$  scores         r}   	test_axiszTestScoreatpercentile.test_axis	
  s    --2Jq!$[M24EFL.9[M:B? /:>[M:B?9	 
 ''2.U[["%UC ''2A6U[[$'UI&r   c                     t        t        t        j                  ddgdd       t        t        t        j                  dgd       t        t        t        j                  dgd       y )Nr   r8   r  r   rE  e   rd   )r   r   rk   r;  r6  s    r}   test_exceptionz$TestScoreatpercentile.test_exception!
  sK    j%"9"9Aq62+3	5j%"9"9A3Dj%"9"9A3Cr   c                 f   t        t        j                  g d      t        j                         t        t        j                  t        j
                  g g g      d      t        j                         t        t        j                  g ddg      t        j                  t        j                  g       y )Nr9  c   )r   rk   r;  r   rr   r   r6  s    r}   
test_emptyz TestScoreatpercentile.test_empty'
  sm    U,,R4bff=U,,RXXr2h-?DbffMU,,R"b:RVVRVV<LMr   N)r   r   r   r7  r7  rK  rO  rV  r_  rb  re  r   r   r}   r2  r2  	  s-    2
;4E2)$'0DNr   r2  c                      e Zd Zd Zd Zd Zd Zd Zej                  j                  d edd            d	        Zd
 Zd Z edd      d        Z edd      ej                  j                  dg ddej$                  ddddgg ddej$                  ddgg      ej                  j                  dddg      d                      Zej                  j                  d edd            d        Zd Zd Zd Zd Zej                  j                  d d!d"g      d#        Zd$ Zej                  j7                  d%      ej                  j                  d& ej8                  d'       ej8                  d(      g      d)               Zd* Zy+),TestModec                 (   t        t        t        |      5  t        j                  |j                  g             \  }}d d d        t        |j                  |j                               t        |j                  d             y # 1 sw Y   JxY w)Nr?  r   )r$   r   r   rk   moderi   r5   rr   )rs   rt   valscountss       r}   re  zTestMode.test_empty0
  sh    +3HRP 	6 ::bjjn5LD&	6bjj01

2/	6 	6s   (BBc                     t        j                  d      \  }}t        |t        j                  dg             t        |t        j                  dg             y )Nr   r   )rk   ri  r   r   r   )rs   rj  rk  s      r}   r;  zTestMode.test_scalar6
  s;    zz"~fT288RD>*VRXXqc]+r   c                     |j                  g d      }t        j                  |      }t        |d   |j                  d             t        |d   |j                  d             y )Nr9   r;   r   r^      r9   r8   r<   r>   r<   r^   r<   r   r<   r   r9   ri   rk   ri  r5   )rs   rt   data1rj  s       r}   r7  zTestMode.test_basic;
  sK    

BCzz% QA/QA/r   c           
         g d}g d}g d}g d}g d}|j                  |||||g      }t        j                  |d d      }t        |d   |j                  d	gg             t        |d
   |j                  dgg             t        j                  |dd      }t        |d   |j                  g dg             t        |d
   |j                  g dg             t        j                  |d
d      }t        |d   |j                  dgdgdgd	gd	gg             t        |d
   |j                  dgdgdgdgdgg             y )Nr^   r^      (   r^   r^   r^   r^   r  r^   r  r  rt  rt  rt  rt  ru  rt  rt  rt  TrY   keepdimsr   rt  r   r>   r^   r^   rt  rt  r8   r9   r9   r8   r^   r  r8   r:   r9   rp  	rs   rt   rq  data2data3data4data5arrrj  s	            r}   test_axes_keepdimszTestMode.test_axes_keepdimsA
  s,        jj%ue<=zz#D48QbTF!34QaSE!23zz#A5Q-=,>!?@Q\N!;<zz#A5QbTB4"tbT,J!KLQaS1#sQC!,E!FGr   c                 Z   g d}g d}g d}g d}g d}|j                  |||||g      }t        j                  |d       }t        |d   |j                  d             t        |d	   |j                  d
             t        j                  |d      }t        |d   |j                  g d             t        |d	   |j                  g d             t        j                  |d	      }t        |d   |j                  g d             t        |d	   |j                  g d             y )Nrs  rv  rw  rx  ry  rX   r   rt  r   r>   r|  r}  )r^   r^   r  rt  rt  )r8   r:   r9   r:   r9   rp  r~  s	            r}   	test_axeszTestMode.test_axesU
  s         jj%ue<=zz#D)QB0QA/zz#A&Q,<!=>QL!9:zz#A&Q,@!ABQO!<=r   rY   r   c                 x   t         j                  j                  d      }|j                  |j                  d            }t	        j
                  ||j                  |z         }t	        j
                  ||      }t        |j
                  |j
                         t        |j                  |j                         y )Nl   q!<M )r^   r_   r`   ra   rX   )	r   r  r  ri   rk   ri  ndimr5   count)rs   rY   rt   r  r,  r_  r  s          r}   test_negative_axes_gh_15375z$TestMode.test_negative_axes_gh_15375i
  sz    ii##J/JJszz"234zz!!&&+.zz!$'		499-

DJJ/r   c                 2   |j                  g d      }|j                  g       }t        j                  |      }d}t        |||       t	        t
        t        |      5  t        j                  |      }d d d        t        ||       y # 1 sw Y   xY w)Nrn  )ri  r  r   r?  )ri   rk   ri  r   r$   r   r   )rs   rt   rq  r  r  r"  actual2s          r}   test_mode_result_attributesz$TestMode.test_mode_result_attributesr
  sz    

BC

2E"&
FJ26+3HRP 	(jj'G	(GZB7	( 	(s    BBc                    |j                  dt        j                  dddddddddddg      }t        j                  |      }t        |d	   |j                  d|j                  
             t        |d   |j                  d             y )Nr9   r;   r   r^   ro  r8   r<   r>   r   rM   )ri   r   rr   rk   ri  r5   rN   )rs   rt   rq  r  s       r}   test_nan_propagatezTestMode.test_nan_propagate|
  sr    

Arvvq!RQ1aBJKE"q	2::au{{:#CDq	2::a=1r   Tlazy arrays don't do 'raise'.r   c                    |j                  dt        j                  dddddddddddg      }t        j                  |d	
      }t        |j                  |j                  d             t        |j                  |j                  d             t        t        t        j                  |d
       t        t        t        j                  |d
       y )Nr9   r;   r   r^   ro  r8   r<   r>   r   r   r   r   r   )	ri   r   rr   rk   ri  r5   r  r   r   )rs   rt   rq  r   s       r}   test_nan_omitzTestMode.test_nan_omit
  s    

Arvvq!RQ1aBJKjj62"**R.1		2::a=1j%**eHj%**eIr   zlazy arrays don't do 'omit'.data)r9   r;   r   r   r   r9   r;   r   )r9   r;   r   r{  Fc                     t        j                  |j                  |      d|      }|r"t        |d   d   |j                  d             y t        |d   |j                  d             y )Nr   )r   r{  r   r   )rk   ri  ri   r5   )rs   r  r{  rt   rr  s        r}   test_smallest_equalzTestMode.test_smallest_equal
  sR     BJJt,(SF1IaL"**R.9F1Irzz"~6r   re   c                    t         j                  j                  d      }|j                  |j	                  d            }t        j                  ||d      }t        |j                        }|j                  |       t         j                  j                  |j                  j                  |       t         j                  j                  |j                  j                  |       y )Ni:r9   r:   r;   r  Frz  )r   r  r  ri   uniformrk   ri  r  r  popr  r	   r  )rs   rY   rt   r  r,  r   reference_shapes          r}   test_mode_shape_gh_9955z TestMode.test_mode_shape_gh_9955
  s    ii##I.JJs{{	{23jj6qww-D!


%%chhnnoF


%%ciiooGr   c                     |j                  dt        j                  dt        j                  g      }t        j                  |      }|j                  |j                        r|j                  dk(  sJ y Nr8   r   )ri   r   rr   rk   ri  r:  r  rs   rt   r,  r   s       r}   !test_nan_policy_propagate_gh_9815z*TestMode.test_nan_policy_propagate_gh_9815
  sR     JJ2661bff-.jjmxx!cii1n44nr   c                 f   |j                  d      }t        j                  |dd      }|j                  j                  |j                  j                  cxk(  rdk(  sJ  J t        j                  |dd      }|j                  j                  |j                  j                  cxk(  rdk(  sJ  J y )N)r   r8   r9   r   r   Frz  )r   r9   r   T)r   r   r9   r   )r   rk   ri  r  r  r  s       r}   test_keepdims_emptyzTestMode.test_keepdims_empty
  s    HH\"jjU3xx~~=I=====jjT2xx~~@L@@@@@r   c                 8   |j                  dddt        j                  gddt        j                  dgg      }t        j                  |dd      }t        |j                  |j                  ddg             t        |j                  |j                  ddg             t        j                  |dd      }t        |j                  |j                  dgdgg             t        |j                  |j                  dgdgg             |j                  |      }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J  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 y )Nr   r9   Frz  r   r   r8   Tr{  r   r  )	ri   r   rr   rk   ri  r5   r  r,   r  )selfselfrt   r,  r   r   s        r}   test_keepdims_nonemptyzTestMode.test_keepdims_nonempty
  s   JJAq"&&)Aq"&&!+<=>jjU3"**b"X"67		2::q!f#56jjT2"**rdRD\":;		2::sQCj#9:JJqMjj6jj!u5#((+		399-xx~~5255555jj5jj!t4*HSXX,>?xx~~'''+Xcii-@Ayy&(((r   c                 J   dt         j                  t         j                  t         j                  dgt         j                  t         j                  t         j                  t         j                  dgddt         j                  ddgg}t        j                  |ddd      }t	        |j                  g d       t	        |j
                  g d       t        j                  |dd	d      }t	        |j                  dgdgdgg       t	        |j
                  dgdgdgg       t        j                  |      }t        j                  |d dd      }t        j                  |j                         dd
      }t	        ||       |j                  j                  |j                  j                  cxk(  rdk(  sJ  J t        j                  |d d	d      }t        j                  |j                         d	d
      }t        |j                  j                         |j                  j                                |j                  j                  dk(  sJ t        |j
                  j                         |j
                  j                                |j
                  j                  dk(  sJ y )Nr   r8   r;   Fr   )rY   r{  r   )r   r8   r;   )r8   r   r8   T)r{  r   r   r  )
r   rr   rk   ri  r	   r  r   r  r  r   )rs   r,  r   r   s       r}   test_keepdims_nan_omitzTestMode.test_keepdims_nan_omit
  s   +ffbffbffbffa0BFFAq!# jjUvF388Y/399i0jjTfE388qcA3_5399sQC!o6HHQKjj&IjjUvF3$xx~~5255555jjHjjTfESXX^^%sxx~~'78xx~~'''SYY__&		(9:yy&(((r   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        y # 1 sw Y   y xY w)Nr@  r  r   F)r,  rY   r{  r   r  r8   r9   r9   r9   asdfqwerr\  r^   rM   z=Argument `a` is not....|An argument has dtype...|The DType...r   r   )r   r  rr   rk   ri  r	   r  rN   uint8r   r   r   r   	TypeError)rs   r   r  r  r   my_dtypetestr  s           r}   test_gh16955zTestMode.test_gh16955
  s     wwu~VVT
jj4a%JO388\2399l3 88fbhh/&"**d1KLMxx(+Q]]9G4 	4JJt
3	4 	4 	4s    DD
c                 ~   t        j                  t        t              5  t	        j
                  g       }d d d        t        j                  df}t        |       t        j                  t        t              5  t	        j
                  t        j                  gd      }d d d        t        ||       g dt        j                  t        j                  t        j                  gg}t        j                  t        t              5  t	        j
                  |dd      }d d d        dt        j                  gd	dgf}t        ||       t	        j
                  |dd
      }dt        j                  gd	dgf}t        ||       t        j                  g g g      }t        j                  t        t              5  t	        j
                  |d      }d d d        t        j                  t        j                  gddgf}t        ||       y # 1 sw Y   xY w# 1 sw Y   yxY w# 1 sw Y   xY w# 1 sw Y   axY w)Nr   r   r   r   )r   r  r  r   rX  r  r8   rW  r9   rX   )r   r_  r   r   rk   ri  r   rr   r   r   r   r   r   )rs   r   r   r,  zs        r}   test_gh9955zTestMode.test_gh9955
  s    \\,4IJ 	!**R.C	!vvqkS#\\,4EF 	:**bffX&9C	:S#rvvrvvrvv67\\,4EF 	;**QQ6:C	;BFF|aV$S#jj{;BFF|aV$S#HHb"X\\,4IJ 	(**QQ'C	(!Q(S#/	! 	!
	: 	:
	; 	;	( 	(s/   H;'HH&;H3HH#&H03H<zignore::RuntimeWarningr  r  r  c                    |j                  |      }|j                  dk(  rAt        j                  t        t
              5  t        j                  |d d      }d d d        nt        j                  |d d      }|j                  |d d      }d   j                  |d   j                  cxk(  r|j                  cxk(  rdk(  sJ  J y # 1 sw Y   XxY w)Nr   r   Trz  r   r[  )
ri   r  r   r_  r   r   rk   ri  rn   r  )rs   r  rt   r   r   s        r}   test_gh17214zTestMode.test_gh17214  s     JJqM66Q;08MN >jj=> > **QTD9CggadTg21v||s1v||EsyyEIEEEEE> >s    C		Cc                     G d d      }t         rdnd}t        j                  t        |      5  t	        j
                   |t        j                  d                   d d d        t         rdnd}t        j                  t        |      5  t	        j
                  t        j                  dt                     d d d        y # 1 sw Y   fxY w# 1 sw Y   y xY w)	Nc                       e Zd Zd ZddZy)8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikec                     || _         y r  )_xrH  s     r}   __init__zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__(  s	    r   Nc                 @    | j                   j                  t              S r  )r  r  object)rs   rN   rf   s      r}   	__array__zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__+  s    ww~~f--r   )NN)r   r   r   r  r  r   r   r}   ArrLiker  '  s    .r   r  z'...only boolean and numerical dtypes...zCannot interpret...r   r9   z*Argument `a` is not recognized as numeric.rM   )	r*   r   r   r  rk   ri  r   r   r  )rs   r  r  s      r}   test_raise_non_numeric_gh18254z'TestMode.test_raise_non_numeric_gh18254%  s    	. 	. AP<- 	 ]]9G4 	.JJwryy|,-	. AP<D 	]]9G4 	3JJryy&12	3 	3	. 	.
	3 	3s   /C/CCCN)r   r   r   re  r;  r7  r  r  r   r   r   r  r  r  r  r   r  r   rr   r  r  r  r  r  r  r  r  r   emptyr  r  r   r   r}   rg  rg  -
  s   0,
0H(>( [[VU2q\20 3082 .MNJ OJ .LM[[V	
BFFAq!Q	
BFFAq	&  [[Z%77 8 N7 [[VU2q\2H 3H5A)4)6 [[\K+@A4 B4": [[ 89[[S8288I#68K"LMF N :F3r   rg  c                       e Zd Zg dZdZej                  j                  d      d        Zd Z	 e
dd      d	        Zy
)TestSEMrk  r   ra  c                    |j                  | j                        d   }t        |      r>t        j                  t
        t              5  t        j                  |      }d d d        nft        j                         5  t        j                  dt               t        j                  dt               t        j                  |      }d d d        |j                        sJ y # 1 sw Y   xY w# 1 sw Y   )xY w)Nr   r   r   )ri   scalar_testcaser&   r   r_  r   r   rk   semr   r   simplefilterUserWarningr   r:  )rs   rt   r  rw   s       r}   test_sem_scalarzTestSEM.test_sem_scalar@  s     **T%9%9:2>B<08MN /IIo./ / ((* /%%h<%%h?IIo./ xx{{/ // /s   	C"<A
C."C+.C7c                    |j                  | j                        }t        j                  |      }t	        ||j                  d             t        | j                        }t	        t        j                  |d      ||dz
  z  dz  z  t        j                  |d             |j                  d      }|j                  |dk(  |j                  |      }t        t        j                  |      |j                  |j                               y )Ng㝎?r   ddofr8   rA   r   r?   )
ri   testcaserk   r  r4   r  r   whererr   r5   )rs   rt   r  rw   rZ  rv   s         r}   test_semzTestSEM.test_semS  s    ::dmm,IIh2::l34		(3q!A#wnD		(3	5 IIcNHHQ!VRVVQ'		!bjj&89r   Tr   r   c                    |j                  d      }|j                  |d<   t        t        j                  |d      |j                  d             d}t        j                  t        |      5  t        j                  |d       d d d        d	}t        j                  t        |      5  t        j                  |d
       d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)Nr   r?   r   r   gH=6?r   r   r   r   r   )	r   rr   r4   rk   r  ri   r   r   r   rs   rt   rv   r  s       r}   test_sem_nan_policyzTestSEM.test_sem_nan_policy_  s    IIcNvv!		!7DV9WX1]]:W5 	-IIaG,	-0]]:W5 	.IIaH-	. 	.	- 	-	. 	.s   .C+CCC!N)r   r   r   r  r  r   r   r   r  r  r   r  r   r   r}   r  r  :  sS      HO[[ LM N$
: .WX	. Y	.r   r  c                      e Zd Zej                  j                  dg dg dfg dg dfg      d        Zd Zd Zej                  j                  dd	d
g      d        Z	ej                  j                  dd	d
g      d        Z
 edd      d        Zej                  j                  d      ej                  j                  d      d               Zej                  j                  d      d        Zy)TestZmapr  rk  rz  )r   r   r   r   r   c                     |j                  |      |j                  |      }}||j                  |      z
  |j                  |d      z  }t        j                  ||      }t        ||       y )Nr   r   )ri   rn   r   rk   zmapr4   )rs   rv   rw   rt   r  r  s         r}   	test_zmapzTestZmap.test_zmapo  sZ     zz!}bjjm1
NbffQ1f&==JJq!8$r   c                 ~   |j                  g dg dg dg      }d}d}d}t        j                  ||d      }t        j                  ||d	      }| | d
z  | d
z  dgd|| d
z  |g|| d
z  || gg}g d| | | dgg dg}	|j                  |      }|j                  |	      }	t        ||       t        ||	       y Nr   r   r   r   )r   r   r   r   )r   r   r   r   .!	?3Ey?;f?r   rX   r   r8   r   r0  r0  r   r   gLXz?)r   r0  r   r0  ri   rk   r  r4   
rs   rt   rv   t1t2t3z0r  z0_expectedz1_expecteds
             r}   test_zmap_axiszTestZmap.test_zmap_axis|  s    JJ,,,. / ZZ11%ZZ11%bSURCE3/R"Q+RCE2s+- .bS2#w/-/ jj-jj-K(K(r   c                    |j                  g dg dg      }t        j                  ||dd      }|j                  g d      dz  }|j                  g d      dz  }t        |d	d d f   |       t        |dd d f   |       y 
Nr  )r   r   r   r   r   )rY   r  )      r  rA   rA   g3Ey?)      r  rA   rB   g4?r   r  rs   rt   rv   r  r  r  s         r}   test_zmap_ddofzTestZmap.test_zmap_ddof  s}    JJ,,. / JJq!!!,jj!78*Ejj!78D!Q$-!Q$-r   r  r   r8   c                    |j                  dddt        j                  g      }|j                  dddddt        j                  g      }t        j                  |||d      }t        j                  ||d d	 |
      }t        ||       y )Nre   rd   r8   r=   r`   r   r  r   r;   r  )ri   r   rr   rk   r  r4   )rs   r  rt   scorescomparer  r   s          r}   test_zmap_nan_policy_omitz"TestZmap.test_zmap_nan_policy_omit  sv     RQ/0**b"aB78JJvwTfE jj!483r   c           	         |j                  |j                  dd      d      }t        j                   t        j                  ddd      d      }t        j                  |d<   t        j                  |d<   t        j                  |d	<   |j                  |d
d d f   t        j                  |d
d d f                   }|j                  |dd d f   t        j                  |dd d f                   }|j                  |      }t        j                  ||dd|      }t        j                  |d
d d f   ||      }t        j                  |dd d f   ||      }	|j                  ||	f      }
t        ||
       y )N      r   r8   rd   r  r<      )r   r:   r   r  r   r   r   )r   rY   r  r  )rm   r   r   r  rr   ri   r:  rk   r  stackr4   )rs   r  rt   r  r  compare_0_notnacompare_1_notnar  r_  r  r  s              r}   #test_zmap_nan_policy_omit_with_axisz,TestZmap.test_zmap_nan_policy_omit_with_axis  s;   BIIdC0':**R[[Q3W= **WQT]BHHWQT]4K3K%LM**WQT]BHHWQT]4K3K%LM**W%JJvw6Mzz&A,#%zz&A,#%88T4L)8$r   Tr  r   c                     |j                  g d      }|j                  ddddd|j                  g      }t        j                  t        d      5  t        j                  ||d	
       d d d        y # 1 sw Y   y xY w)Nr~  r  re   r8   r=   r`   zinput contains nanr   r   r   )ri   rr   r   r   r   rk   r  )rs   rt   r  r  s       r}   test_zmap_nan_policy_raisez#TestZmap.test_zmap_nan_policy_raise  sc    I&**b"aB78]]:-AB 	<JJvw7;	< 	< 	<s   A22A;rV  rU  c                 @   |j                  d      }|j                  d      }|j                  |j                   |j                  |j                  g      }t        t        d|      5  t        j                  ||      }d d d        t        |       y # 1 sw Y   xY w)Nr9   Precision loss occurred...r?  )
r   r  ri   r  rr   r$   r   rk   r  r5   )rs   rt   r  r  r   r   s         r}   r  zTestZmap.test_degenerate_input  s~     1''!*jj266'26626623/KPRS 	.**VW-C	.S!	. 	.s   (BBc                     t        j                  |j                  g d      |j                  g d            }|j                  g d      }t        ||       y )Nr  )r                 ?rd   r  )y      ?        y       @        y      @        y      @        )rk   r  ri   r4   )rs   rt   r   r   s       r}   test_complex_gh22404zTestZmap.test_complex_gh22404  s>    jjL12::>N3OPjj9:S!r   N)r   r   r   r   r   r   r  r  r  r  r  r   r  r   r  r  r   r   r}   r  r  l  s    [[
,	-
,	-	/
%
%)2
. [[VaV,	  -	  [[VaV,% -%( .MN< O< [[ WX[[ VW" X Y" [[ WX" Y"r   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                  j                  d      d        Zej                  j                  d      d        Zej                  j                  d      d        Zej                  j                  d      d        Zej                  j'                  d ej*                  g        ej,                  d      g      d        Zed        Zy)
TestZscorec                     t        j                  |j                  g d            }g d}t        ||j                  |             y )Nr  )gOT\wg%ܿg%?gOT\w?)rk   zscoreri   r4   )rs   rt   rw   desireds       r}   test_zscorezTestZscore.test_zscore  s5     LLL1262::g./r   c                 r   |j                  g dg dg dg      }d}d}d}t        j                  |d      }t        j                  |d	      }| | d
z  | d
z  dgd|| d
z  |g|| d
z  || gg}g d| | | dgg dg}	t        ||j                  |             t        ||j                  |	             y r  ri   rk   r  r4   r  s
             r}   test_zscore_axiszTestZscore.test_zscore_axis  s    JJ,,,. / \\!!$\\!!$bSURCE3/R"Q+RCE2s+- .bS2#v.-/ 	BJJ{34BJJ{34r   c                    |j                  g dg dg      }t        j                  |dd      }|j                  g d      dz  }|j                  g d      dz  }t        |d	d d f   |       t        |dd d f   |       y r  r  r  s         r}   test_zscore_ddofzTestZscore.test_zscore_ddof  s{    JJ,,. / LL+jj!78*Ejj!78+F!Q$-!Q$-r   c                     |j                  ddt        j                  ddg      }t        j                  |d      }t        ||j                  |j                  |j                               y )Nr   r8   r:   r;   rW  r   )ri   r   rr   rk   r  r5   r   r  rs   rt   rv   r  s       r}   test_zscore_nan_propagatez$TestZscore.test_zscore_nan_propagate  sL    JJ1bffa+,LL{3277177BFF34r   c                     |j                  dd|j                  ddg      }t        j                  |d      }|j                  dd|j                  d	d
g      }t	        ||       y )Nr   r8   r:   r;   r   r   gIHb=gIHb=gIHb=?gIHb=?)ri   rr   rk   r  r4   rs   rt   rv   r  r  s        r}   test_zscore_nan_omitzTestZscore.test_zscore_nan_omit  sa    JJ1bffa+,LLv.::22!vv11	! " 	8$r   c                    |j                  |j                  dddddg      }t        j                  |dd      }|j	                  |j                  |j                  g      t        j                  |dd  d	      g      }t        ||       y )
Nr   r   rQ   r   r   r   r   r  r  )ri   rr   rk   r  r  r4   r  s        r}   test_zscore_nan_omit_with_ddofz)TestZscore.test_zscore_nan_omit_with_ddof  sp    JJS#sC89LLv699bjj"&&2ELL12Q4OPQ8$r   Tr  r   c                     |j                  dd|j                  ddg      }t        j                  t        d      5  t        j                  |d       d d d        y # 1 sw Y   y xY w)	Nr   r8   r:   r;   zThe input contains nan...r   r   r   )ri   rr   r   r   r   rk   r  r   s      r}   test_zscore_nan_raisez TestZscore.test_zscore_nan_raise  sQ    JJ1bffa+,]]:-HI 	0LLw/	0 	0 	0s   AA&c                    |j                  dgdz        }t        t        d|      5  t        j                  |      }d d d        t        |j                  |j                  |j                               y # 1 sw Y   :xY w)NgʡEr9   r   r?  )	ri   r$   r   rk   r  r5   r   r  rr   r  s       r}   test_zscore_constant_input_1dz(TestZscore.test_zscore_constant_input_1d%  sc    JJx!|$/KPRS 	 QA	 277177BFF34	  	 s   A77B rU  c                 .   |j                  g dg dg      }t        t        d|      5  t        j                  |d      }d d d        t        |j                  |j                  dddg|j                  dddgg             t        t        d|      5  t        j                  |d	      }d d d        t        |j                  |j                  |j                  |j                  |j                  |j                  g      t        j                  |d	d d f         g             t        j                  |d       }t        ||j                  t        j                  |j                  |d
            |j                               |j                  d      }t        t        d|      5  t        j                  |d       }d d d        t        ||j                  ||j                               y # 1 sw Y   xY w# 1 sw Y   SxY w# 1 sw Y   JxY w)Nr   r   r   r   r   rX  r        *@r   r?  r   rX   r0  r   r   rd   )r9   r<   )ri   r$   r   rk   r  r4   rr   r5   r  rm   r  r  	full_like)rs   rt   rv   r  r  r  rw   s          r}   test_zscore_constant_input_2dz(TestZscore.test_zscore_constant_input_2d+  s   JJ002 3/KPRS 	)aa(B	)BJJtT(B)+c3(?(A B 	C /KPRS 	)aa(B	)BHHbjj"&&"&&"&&"&&1Q&R&+ll1QT7&;&= > 	? LL&2::ell2::a3G&H!''RSGGFO/KPRS 	+QT*A	+2<<26623!	) 	)
	) 	)	+ 	+s#   G1G>*H1G;>HHc                 .   |j                  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        t        |j                  |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        t        |j                  |j                  |j                  |j                  |j                  g| d
||j                  g| dz  ||j                  | dz  gg             y # 1 sw Y   xY w# 1 sw Y   xY w)Nr  r   rX  r  r  r  r   r?  r   r   r   rY   r0  r   r   r8   )ri   rr   r$   r   rk   r  r4   )rs   rt   rv   r  s2r  r  s          r}   -test_zscore_constant_input_2d_nan_policy_omitz8TestZscore.test_zscore_constant_input_2d_nan_policy_omitA  st   JJ0tT2662tRVVT24 5 /KPRS 	<aF;B	<BJJ!T266(B)+C(@)+BFFBFF(C(E F 	G /KPRS 	<aF;B	<BJJ(H*+Q266(:*,QBFFRCE(B(D E 	F	< 	<	< 	<s   	E>-F>FFc           	         |j                  t        j                  t        j                  t        j                  t        j                  gg dg      }t        j                  |dd      }t        ||j                  t        j                  t        j                  t        j                  t        j                  gg dg             y )N)r   r   r  r  r   r   r#  r  )ri   r   rr   rk   r  r4   r  s       r}   test_zscore_2d_all_nan_rowz%TestZscore.test_zscore_2d_all_nan_rowU  s     JJ802 3LLvA62::'G'='? @ 	Ar   c                     |j                  d|j                        }t        j                  |dd       }t	        ||       y )Nr  r   r#  )r   rr   rk   r  r5   )rs   rt   rw   r  s       r}   test_zscore_2d_all_nanz!TestZscore.test_zscore_2d_all_nan^  s4     GGFBFF#LLvD91r   rv   )r9   r   r;   c                 h    |j                  |      }t        j                  |      }t        ||       y r  )ri   rk   r  r5   )rs   rv   rt   r  s       r}   test_zscore_empty_inputz"TestZscore.test_zscore_empty_inpute  s&    JJqMLLO1r   c                    t         j                  j                  d      }|j                  d      }t        j                  |      }t         j
                  j                  ||      }d|j                  d<   t        j                  |dd        }t        j                  t        j                  |            rJ t        j                  |      }t        |dd  |       t        j                  |d       }t        |dd  |       |d   |dd  t        j                  t        d      5  t        j                  |      }d d d        t!        |dd  t         j"                         t        j                  t        d      5  t        j                  |d       }d d d        t!        |dd  t         j"                         y # 1 sw Y   xY w# 1 sw Y   3xY w)	Ni_ r^   Tr   r   rX   r   r   )r   r  r  rC  
zeros_likemamasked_arraymaskrk   r  anyr:  r   r   r_  r   r   rr   )rs   rt   r  rv   r0  rw   r   r   s           r}   $test_zscore_masked_element_0_gh19039z/TestZscore.test_zscore_masked_element_0_gh19039k  s`    ii##G,#}}QEEq$'q	ll1QR5!66"((3-(((ll1oAB%ll14(AB%!!"\\.0LM 	",,q/C	"SWbff%\\.0LM 	-,,qt,C	-SWbff%	" 	"	- 	-s   $F8:G8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"   r2  r   r   r}   r  r    s.   05.
.5
%% .MN0 O0
5 [[ VW4 X4* [[ VWF XF& [[ VWA XA [[ VW X [[S8288B<)1D"EF G
 & &r   r  c                   "    e Zd Zd Zed        Zy)TestGZscorec           	         t        j                  g d      }t        j                  |j                  |            }t        j                  |t        j
                  |      z        t        j                  t        j                  |d            z  }t        ||j                  ||j                  d      j                               y )Nr  r   r  r   rM   )	r   ri   rk   gzscoreloggmeangstdr4   rN   )rs   rt   rv   r  r  s        r}   test_gzscore_normal_arrayz%TestGZscore.test_gzscore_normal_array  s    JJ|$MM"**Q-(&&U[[^+,rvvejj6K/LL2::gRZZ^5I5I:JKr   c                    t        j                  g d      }g d}t         j                  j                  ||      }t	        j
                  |      }ddt         j                  ddg}t         j                  j                  ||      }t        |j                         |j                                t        |j                  |j                         t        |t         j                  j                        sJ y )N)r   r8   rd   r9   r:   )r   r   r   r   r   r0  g0jg`ȿg/A?g(/?)r   r   r.  r/  rk   r6  r  r   
compressedr0  r  MaskedArray)rs   rv   r0  mxr  r  s         r}   test_gzscore_masked_arrayz%TestGZscore.test_gzscore_masked_array  s    HH%&UU-MM"#_bffn"$%%$$W4$8(:(:(<=-!RUU..///r   N)r   r   r   r:  r"   r@  r   r   r}   r4  r4    s    L 
0 
0r   r4  c                      e Zd Zd Zd Z edd      d        Zd Z edd      d        Ze	j                  j                  d	g d
      d        Ze	j                  j                  ddej                  ddgfdej                  ej                  dgfg      d        Ze	j                  j                  ddg dfdg      d        Zd Zy)TestMedianAbsDeviationc                 p    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| _        y )N皙@r"  rC   皙@rU  333333@=
ףp=@rS  (\
@r#  rD   rT  皙@)\(@Q@)rD  rD  r"  r"  rC   rE  rU  rF  rG  rG  rS  rH  r#  r#  r#  rD   rT  rI  rI  rI  rI  rJ  rK  g33333<@)r   rr   dat_nandatr6  s    r}   r7  z#TestMedianAbsDeviation.setup_method  sL    dCc3SdD$S#sS#sCtRVVE6r   c                 X   t        t        j                  |j                  | j                        d       |j                  d             |j                  |j                  | j                        d      }t        j                  |d      }|j                  g d      }t        ||       y )NrX   gQ?)r<   r:   r   )gףp=
?rA   g?r  )r4   rk   median_abs_deviationri   rM  rm   )rs   rt   rM  madmad_expecteds        r}   test_median_abs_deviationz0TestMedianAbsDeviation.test_median_abs_deviation  sz    222::dhh3GdS

5)	+jjDHH-v6((15zz"9:\*r   	jax.numpyzlazy -> no nan_policy="omit"r'  c                     t        j                  |j                  | j                        d      }t	        ||j                  d             y )Nr   r   g(\?)rk   rO  ri   rL  r4   )rs   rt   rP  s      r}   test_mad_nan_omitz(TestMedianAbsDeviation.test_mad_nan_omit  s4    ((DLL)AfURZZ-.r   c                     |j                  ddddt        j                  gg dg      }t        j                  |d      }t        ||j                  t        j                  dg             y )Nr   r   r   r   )r   r   rQ   r   r   r   rX   )ri   r   rr   rk   rO  r4   )rs   rt   rv   rP  s       r}   test_axis_and_nanz(TestMedianAbsDeviation.test_axis_and_nan  sV    JJc3RVV413 4((3RZZ67r   c           	          |j                  dddddt        j                  t        j                  g      }t	        j
                  |d      }t        ||j                  d             y )	Nr   r9   r:   r<   rd  r   r   r   )ri   r   rr   r  rk   rO  r4   )rs   rt   r  rP  s       r}   test_nan_policy_omit_with_infz4TestMedianAbsDeviation.test_nan_policy_omit_with_inf  sK    JJ1aB78((v>RZZ_-r   rY   )r   r   r8   Nc           	      N   |j                  d      }|dv rt        t        dt              nt	        j
                         }|5  t        j                  ||      }d d d        t        |j                  |j                  ||      |j                               y # 1 sw Y   BxY w)N)r9   r   r:   >   Nr   	too smallr?  rX   
fill_value)r   r$   r   r   
contextlibnullcontextrk   rO  r4   r   r$  rr   )rs   rY   rt   rv   contextrP  s         r}   test_size_zero_with_axisz/TestMedianAbsDeviation.test_size_zero_with_axis  s    HHYi' 1L-7-C-C-E 	 	;,,QT:C	;R\\"&&&*>266\RS	; 	;s   BB$znan_policy, expectedr   rB   rW  c           	      d   |dk(  r t        |      st        j                  d       |j                  t        j
                  t        j
                  t        j
                  t        j
                  t        j
                  t        j
                  gddddt        j
                  t        j
                  gg dg      }|dk(  rt        t        dt        	      nt        j                         }|5  t        j                  ||d
      }t        ||j                  |             d d d        y # 1 sw Y   y xY w)Nr   z8nan_policy='omit' with n-d input only supported by NumPyr   r;   r9   r<   )r;   r<   r=   r?   r?   r^   r[  r?  r#  )r&   r   r  ri   r   rr   r$   r   r^  r_  rk   rO  r4   )rs   r   r  rt   rv   r`  rP  s          r}   test_nan_policy_with_axisz0TestMedianAbsDeviation.test_nan_policy_with_axis  s     vhrlKKRSJJHAq!RVVRVV4+- .
 !F* 1L0:0F0F0H 	 	7,,Q:ANCCH!56	7 	7 	7s   )4D&&D/zaxis, expectedr   )rC   r   r  )NrE   c                     t        j                  ddddt         j                  gg dg dg      }t        j                  |t         j
                  d|      }t        ||d	d	
       y )Nr   r8   r:   r?   )r   r   r   r   r`   )re  re  r  r  r   )centerr   rY   r%  r  )r   r   rr   rk   rO  rn   r4   )rs   rY   r  rv   rP  s        r}   test_center_mean_with_nanz0TestMedianAbsDeviation.test_center_mean_with_nan  s[     HHq!Q266*&-/ 0 ((277v.24XE>r   c                     t        j                  t        d      5  t        j                  |j                  g d      d       d d d        y # 1 sw Y   y xY w)Ncallabler   )r   r8   r9   r;   rd  rf  )r   r   r  rk   rO  ri   rs   rt   s     r}   test_center_not_callablez/TestMedianAbsDeviation.test_center_not_callable  sB    ]]9J7 	L&&rzz,'?K	L 	L 	L   )AAN)r   r   r   r7  rR  r   rU  rW  rY  r   r   r   ra  r   rr   rc  rg  rl  r   r   r}   rB  rB    s   6+ k*HI/ J/8 k*HI. J.
 [[V_5T 6T [[3%S'9:*RVVRVVS,ABDE7E7 [[- "23[AC?C?Lr   rB  c                      e Zd Zej                  j                  dg d      d        Zd Z edd      d        Z	ej                  j                  d	g  e
j                  d
      g      d        Zd Zd Zd Zd Zd Zd Zd Z edd      d        Z edd      d        Zd Zd Zd Z edd      d        Zd Zd Zy) TestIQRrN   r  c                 &   t        j                  d      dz  }t         j                  j                  |       |t	        |      nt        ||      }t        t        j                  |j                  ||            |j                  d|             y )Nr>   rA   rM   r:  )
r   r   r  r  r(   rH  r5   rk   iqrri   rs   rN   rt   rv   s       r}   r7  zTestIQR.test_basic  sn    IIaL3
		!(- $72u;M		"**Qe*"<=

4u
5	7r   c                 d   |j                  d      }t        j                  |       t        j                  |d        t        j                  |d       t        j                  |d       t        j                  |d d       t        j                  |d dd       t        j                  |d ddd	       y )
NrB  r   r  )r^   Z   )rt  r  r   r  r  rB   rW  r  rk   rq  rs   rt   r/  s      r}   test_apizTestIQR.test_api  sy    GGFO		!		!T		!Q		!V		!T8$		!T8S)		!T8S+6r   rS  r   r'  c           	          |j                  d      }t        j                  |d dddd       t        j                  |d dddd	d
       y )NrB  )r9  r9  r  r   linearru  gٿr   rM  Trv  rw  s      r}   test_api_eagerzTestIQR.test_api_eager  s=    GGFO		!T8XwA		!T8T67DAr   rv   r   c                     t        t        t        |      5  t        t	        j
                  |j                  |            |j                  |j                               d d d        y # 1 sw Y   y xY wNr?  )r$   r   r   r5   rk   rq  ri   rr   )rs   rv   rt   s      r}   re  zTestIQR.test_empty  sQ    +3HRP 	JEIIbjjm4bjj6HI	J 	J 	Js   AA((A1c                    |j                  d      }|j                  d      }t        t        j                  |      |       t        t        j                  |d      |j                  d             t        t        j                  |d      |j                  d             t        t        j                  |d	      |       t        t        j                  |d
	      |       t        t        j                  |d	      |       t        t        j                  |d	      |       t        t        j                  |d	      |       |j                  d      |j                  d      z  }t        t        j                  |d      |j                  d             t        t        j                  |d      |j                  d             t        t        j                  |d      |j                  dd             t        t        j                  |d      |j                  d             t        t        j                  |d      |j                  dd             t        t        j                  |d      |j                  dd             y )N)r=   r:   r   r   rX   r:   r   r=   rz  interpolationmidpointnearestrM  rN  r:   r;   r<   r   )r;   r<   )r:   r<   r8   r  rC   r  r<   r   r8   r;   r   r   r8   )r  ri   r5   rk   rq  r   r   r   )rs   rt   rv   r  rw   s        r}   test_constantzTestIQR.test_constant  s   GGFOzz#		!d+		!!,bhhqk:		!!,bhhqk:		!8<dC		!:>E		!9=tD		!7;TB		!8<dC GGI2.		!!,bhhv.>?		!!,bhhv.>?		!!,bggfc.BC		!&1288A;?		!&12771b>B		!&12771b>Br   c                 L   |j                  d      dz   }t        t        j                  |d         |j	                  d             t        t        j                  |      |j	                  d             t        t        j                  |d      |j	                  dg             y )Nr   r   r   r   Tr  )r   r5   rk   rq  ri   r   s      r}   test_scalarlikezTestIQR.test_scalarlike  sl    IIbMC		!A$C9		!bjjo6		!d3RZZ5FGr   c                 &   |j                  |j                  d      d      }t        t        j                  |      |j                  d             t        t        j                  |d      |j                  dd             t        t        j                  |d      |j                  d	d
             t        t        j                  |d      |j                  d             t        t        j                  |d      |j                  d             y )Nr  r  r   r   rX   r;   rQ   r   r9   r   r  rV  )rm   r   r5   rk   rq  ri   r   r   s      r}   test_2DzTestIQR.test_2D$  s    JJryy}f-		!bjjo6		!!,bggan=		!!,bggan=		!&12::c?C		!&12::c?Cr   c                    t         j                  j                  d      }t        j                  |gdz        }|j	                  |      |j	                  |      }}|j                  t        j                  |      d      }t        t        j                  |d      |       |j                  |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                  j                  |       |j                  d      }|j	                  |      }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        t        j                   t$        d      5  t        j                  |d       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)N)G   ro  r  r^   )r^   r  rX   rd   r   r  r   r   r  r  r   i  r9   r;   r=   r_   r   r   r9   )r9   r   r  r8   )r9   r   r8   r9   r8   )r   r  r   r9   r8   r8   z`axis` is out of bounds...r   r:   z`axis` must contain only...r  )r   r  r  dstackri   broadcast_tork   rq  r5   moveaxisr-   r   r  rm   r,   r   r   r!   r   )rs   rt   orv   qr/  s         r}   r_  zTestIQR.test_axis,  s@   II(+IIqcBhzz!}bjjm1OOEIIaL%0		!&115KK2q!		!&115!Q2&		!&115!Q2&		!)4		!$/	1		!$/		!!,	. IIn% 			!IIm$JJqM		!)4Q7		(1QqAX;"78	:		!)4Q7		(1Qq!AX;"78	:		!*5a8		(1Qq!AX;"78	:		!)4Q7		(1Qq1W:"67	9		!&1$7		(1Q!AX;"78	:		!'248		(1Q1aZ="9:	<		!&1$7		(1Q1QY<"89	; ]]9,HI 	!IIaa 	!]]:-JK 	&IIaf%	& 	&	! 	!	& 	&s   Q#Q/#Q,/Q8c                 x   |j                  d      }t        t        j                  |      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |d      |j	                  d             d	}t        j                  t        |
      5  t        j                  |d       d d d        d}t        j                  t        |
      5  t        j                  |t        j                  df       d d d        d}t        j                  t        |
      5  t        j                  |d       d d d        y # 1 sw Y   xY w# 1 sw Y   SxY w# 1 sw Y   y xY w)Nr;   r   )r  g     U@r  rC   )g      )@r  r^   r9  g?z2Elements of `rng` must be in the range \[0, 100\].r   )r   ra  z`rng` must not contain NaNs.r  z%`rng` must be a two element sequence.)r   r9  <   )r   r4   rk   rq  ri   r   r   r   r   rr   r  r  s       r}   test_rngzTestIQR.test_rngY  s3   IIaL		!bjjn5		!4bjjoF		!4bjjoF		!2BJJsODG]]:W5 	'IIaX&	' 1]]:W5 	+IIabffb\*	+ :]]9G4 	*IIa[)	* 	*	' 	'	+ 	+	* 	*s$   -F*(F$7F0F!$F-0F9c                    |j                  d      }|j                  d      }t        t        j                  |      |j	                  d             t        t        j                  |      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |dd	      |j	                  d
             t        t        j                  |d      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |dd	      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |dd	      |j	                  d             t        t        j                  |d      |j	                  d             dD ]  }t        j                  ||        t        j                  t        d      5  t        j                  |d       d d d        y # 1 sw Y   y xY w)Nr;   r:   r   rB   rz  r  rN  )r  P   )r  r  r   rM  r  r   r  rC   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedz`method` must be one of...r   r   )r   r5   rk   rq  ri   r   r   r   )rs   rt   rv   rw   r  s        r}   test_interpolationzTestIQR.test_interpolationl  s-   IIaLIIaL		!bjjn5		!bjjo6		!8<bjjnM		!8<bjjoN		!8<bjjnM		!J

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

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

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

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

2O* 	/F IIav.		/ ]]:-IJ 	1IIax0	1 	1 	1s   +MMc                    |j                  d      }t        t        j                  |d d      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |d	d      j                  d
       t        t        j                  |dd      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |d d      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |d	d      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |dd      j                  d       y )Nr  Frz  r   r8   )r9   r;   r_   r  )r=   r_   )r   r9   )r;   r=   r   rS  r   r   r8   r9   r  r  r   Tr  )r9   r;   r   r_   )r   r   r=   r_   )r   r;   r=   r   )r9   r   r=   r_   )r   r   r=   r   )r  r   rk   rq  r  r   s      r}   test_keepdimszTestIQR.test_keepdims  s   GGM"UYYqte<BBBGUYYqq59??LUYYqv>DDgNUYYqv>DDfMUYYqte<BBJOUYYq,?EErJUYYqy5AGGNUYYqtd;AA<PUYYqq48>>NUYYqv=CC]SUYYqv=CC\RUYYqtd;AA=QUYYq,>DDlSUYYqy4@FFUr   z(lazy -> reduced nan_policy capabilitiesyc           
         |j                  |j                  d      d      }t        t        j                  |d      |j                  d             t        t        j                  |d      |j                  d             t        t        j                  |d      |j                  d             t        j                  |      d   j                  |j                        }t        t        j                  |d      |j                  |j                               t        t        j                  |d	d
      |j                  dd|j                  ddg             t        t        j                  |dd
      |j                  d|j                  dg             t        t        j                  |d      |j                  d             d}t        j                  t        |      5  t        j                  |d       d d d        d}t        j                  t        |      5  t        j                  |d       d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)N      .@r  rW  r   r   r   r   r  r   rX  r;   r   r8   rH   r   r   r   barfood)rm   r   r5   rk   rq  ri   ro   rp   rq   rr   r   r   r   r  s       r}   test_nanpolicyzTestIQR.test_nanpolicy  s   JJryy/ 			!<bjjnM		!7BH		!8"**R.I FF1IdO'		!<

266*	,		!!D

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

Arvvq>2	4 			!7CI1]]:W5 	-IIaG,	- 1]]:W5 	/IIaI.	/ 	/	- 	-
	/ 	/s   (I%IIITz=nan_policy w/ multidimensional arrays only available w/ NumPynp_onlyr   c                 R   |j                  |j                  d      d      }|j                  |d<   t        t	        j
                  |dd      |j                  dd             t        t	        j
                  |d	d      |j                  g d
             d}t        j                  t        |      5  t	        j
                  |dd       d d d        t        j                  t        |      5  t	        j
                  |d	d       d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)Nr  r  r  r   r   rX  r;   rQ   r   )r8   rC   r8   r   r   r   )rm   r   rr   r5   rk   rq  r   ri   r   r   r   r  s       r}   test_nanpolicy_ndzTestIQR.test_nanpolicy_nd  s     JJryy/&&$		!!?2	(		!!?

;/	1 2]]:W5 	5IIaaG4	5]]:W5 	5IIaaG4	5 	5	5 	5	5 	5s   3D/DDD&c                 f   |j                  |j                  d      d      }t        t        j                  |d      |j                  d             t        t        j                  |d      |j                  d             t        t        j                  |d      |j                  d	             y )
Nr  r  r   r  r   r  g=V^w@r   rD   )rm   r   r5   rk   rq  ri   r4   r   s      r}   test_scale_no_nanszTestIQR.test_scale_no_nans  sr    JJryy/		!3/B@		!84bjj6OP		!3/CAr   c                    |j                  |j                  d      d      }t        j                  |      d   j	                  |j
                        }|j                  |j
                        }t        t        j                  |dd      |       t        t        j                  |dd      |       t        t        j                  |dd      |       y )	Nr  r  r  r   rW  r  r   r  r   )
rm   r   ro   rp   rq   rr   ri   r5   rk   rq  )rs   rt   rv   rr   s       r}   test_scale_with_nanszTestIQR.test_scale_with_nans  s    JJryy/FF1IdO'jj 		!3;GM		!8LcR		!3;GMr   c                     |j                  d      }d}t        j                  t        |      5  t	        j
                  |d       d d d        y # 1 sw Y   y xY w)Nr  z"foobar not a valid scale for `iqr`r   r   r  )r   r   r   r   rk   rq  r  s       r}   test_invalid_scalezTestIQR.test_invalid_scale  sE    IIdO6]]:W5 	)IIax(	) 	) 	)s   AAc                    |j                  |j                  d      d      }t        j                  |      d   j	                  |j
                        }t        t        j                  |dd      |j                  d             t        t        j                  |dd      |j                  d	             t        t        j                  |d
d      |j                  d             y )Nr  r  r  r   r   r  rH   r  g	I1=@r   g      @)rm   r   ro   rp   rq   rr   r5   rk   rq  ri   r4   r   s      r}   test_scale_nan_policy_omitz"TestIQR.test_scale_nan_policy_omit  s    JJryy/FF1IdO'		!36BBJJsOT		!8G

?3	5		!36BBJJtDTUr   c                 @   |j                  |j                  d      d      }t        j                  |      d   j	                  |j
                        }t        t        j                  |ddd      |j                  dt        j
                  dg             t        t        j                  |dd	d      |j                  dt        j
                  dg      d
z         t        t        j                  |ddd      |j                  dt        j
                  dg             y )Nr  r  r  r   r   rW  )rY   r  r   r8   r  gF7k?r   )rm   r   ro   rp   rq   rr   r5   rk   rq  ri   r   r4   r   s      r}   test_scale_nanpolicy_ndzTestIQR.test_scale_nanpolicy_nd  s    JJryy/FF1IdO'		!!3;O

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

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

Arvvq>2	4r   c                     |j                  d      dz  }t        j                  |d      }t        j                  |      }t        ||       y )Nr   rA   )r  r  r  )r   rk   rq  r5   rs   rt   rv   r   r   s        r}   test_rng_orderzTestIQR.test_rng_order  s;    IIbMCiix(iilS!r   N)r   r   r   r   r   r   r7  rx  r   r{  r   r   re  r  r  r  r_  r  r  r  r  r  r  r  r  r  r  r  r   r   r}   ro  ro    s#    [[W&BC7 D77 k*STB UB
 [[S2yryy|"45J 6JC.HD+&Z*&$1LV& k*TU/ V/8 dNP5P5BN) k*STV UV
4"r   ro  c            
       :   e Zd ZdZg dZdZej                  j                  d      Z	e	j                  d      Z
ej                  j                  dddg      ej                  j                  d	 e ed
d                  d               Zej                  j                  dddg      ej                  j                  dd      d               Zd Z edd      d        Zd Zd Zej                  j                  dg d      ej                  j                  dddg      d               Zd Zd Zd Zd Zej                  j                  d g d
      ej                  j                  d!g d"      ej                  j                  d#d$d%g      d&                      Zy$)'TestMomentsa  
        Comparison numbers are found using R v.1.5.1
        note that length(testcase) = 4
        testmathworks comes from documentation for the
        Statistics Toolbox for Matlab and can be found at both
        https://www.mathworks.com/help/stats/kurtosis.html
        https://www.mathworks.com/help/stats/skewness.html
        Note that both test cases came from here.
    rk  r   l   Jf r  r  r^   )r^   r8   zm, cr  Nr   r   c                 P   t         j                  j                  d      }|j                  |j                  |            }t	        j
                  |||      }||j                  |d      n|}|j                  ||z
  |z  d      |j                  d   z  }t        ||d       y )Nl   rHZ r  rj  r   rX   缉ؗҜ<r&  )
r   r  r  ri   rk   momentrn   r$  r  r4   )	rs   r  rY  r.  rt   r  rv   r   r   s	            r}    test_moment_center_scalar_momentz,TestMoments.test_moment_center_scalar_moment  s     ii##$78JJszztz,-ll1a*"#)BGGAAGffa!eaZaf(3Su-r   r.  c           
      f   t         j                  j                  d      }|j                  |j                  |            }g d}t	        j
                  |||      }|j                  |D cg c])  }t	        j
                  |||      |j                  df   + c}      }	t        ||	       y c c}w )Nl   %~.}~= r  r  rj  .)	r   r  r  ri   rk   r  r  newaxisr4   )
rs   r  r.  rt   r  rv   rY  r   r  r   s
             r}   test_moment_center_array_momentz+TestMoments.test_moment_center_array_moment  s     ii##$78JJszztz,-ll1a*iiPQR1a15bjj#oFRSS! Ss   ,.B.c                    |j                  | j                        }t        j                  |j                  | j                              }t        ||j                  d             t        j                  |d      }t        ||j                  d             t        j                  |d      }t        ||j                  d             t        j                  |d      }t        ||j                  d             t        j                  |d      }t        ||j                  d             t        j                  |d      }t        ||j                  d	             t        j                  |g d
      }t        ||j                  g d             t        j                  |d      }t        ||j                  d             t        j                  |g d      }t        ||j                  g d             y )Nr   r   r   r   r8         ?r9   r:        @r  )r   r  r   r  )r   r8   r9   r   )ri   r  rk   r  r  r4   )rs   rt   r  rw   s       r}   test_momentzTestMoments.test_moment'  s^   ::dmm,LLD$8$89:2::c?+LL1%2::c?+LL1%2::c?+LL1%2::d+,LL1%2::c?+LL1%2::f-. LL<02::&:;< LL3'2::c?+LL#342::&:;<r   rS  zarray value-dependent errorr'  c                     |j                  | j                        }d}t        j                  t        |      5  t        j                  |d       d d d        y # 1 sw Y   y xY w)Nz)All elements of `order` must be integral.r   333333?)ri   r  r   r   r   rk   r  )rs   rt   r  r  s       r}   test_order_input_validationz'TestMoments.test_order_input_validationD  sJ    ::dmm,=]]:W5 	(LL3'	( 	( 	(s   AA"c                    d}t        t        ||      5  t        j                  |j	                  g             }t        ||j	                  |j                               d d d        t        t        ||      5  t        j                  |j	                  g |j                              }t        ||j	                  |j                  |j                               d d d        d}t        t        ||      5  t        j                  |j	                  g g      d      }t        ||j	                  |j                  g             d d d        t        j                  |j                  d      d      }t        ||j                  d	             t        j                  |j	                  g g      ddgd
      }t        ||j                  d             y # 1 sw Y   wxY w# 1 sw Y   xY w# 1 sw Y   xY w)NzOne or more sample arguments...r?  rM   zAll axis-slices of one or morer   rX   rV  r   r  orderrY   )r8   r   )
r$   r   rk   r  ri   r5   rr   rF  r   r  )rs   rt   r  rw   s       r}   test_zero_sizezTestMoments.test_zero_sizeK  sz   3+7rB 	3RZZ^,AArzz"&&12	3 +7rB 	ERZZ"**Z=>AArzz"&&

zCD	E 3+7rB 	5RZZ-A6AArzz266(34	5 LL&)2288D>*LLRD)!Qa@288F+,!	3 	3	E 	E
	5 	5s&   A
G9A"G!7AG.G!G+.G7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       y )	Nr   r?   r8   r   r   r   r   r   )	r   r   rr   r   rk   r  r   r   r   rH  s     r}   rK  zTestMoments.test_nan_policy_  sn    IIcNvv!U\\!Q'0ELLv>Dj%,,gFj%,,hGr   rN   )rF  r   r  zexpect, orderr  rV  c           	         |dk(  r"t        |      rd}t        j                  |       t        ||      }t        j
                  j                  d      }|j                  |j                  d      |      }t        j                  ||      }t        ||j                  ||             d}t        t        ||      5  t        j                  |j                  |d	      d
|      }t        ||j                  d||             d d d        t        t        ||      5  t        j                  |j                  |d      d|      }t        ||j                  d||             d d d        t        j                  |j                  |d      d |      }t        ||j                  d||             y # 1 sw Y   xY w# 1 sw Y   \xY w)Nr  z?torch can't round complex input; data-apis/array-api-compat#407l   1G r;   rM   r  z-Precision loss occurred in moment calculationr?  )r<   r;   r   )rY   r  )r;   r  r8   )r   r8   r:   r;   r   )r'   r   r  rH  r   r  r  ri   rk   r  r5   r$   r   r  r   )	rs   rN   expectr  rt   r  r  rv   rw   s	            r}   test_constant_momentsz!TestMoments.test_constant_momentsg  s    ,8B<WGKK E"ii##J/JJszz!}EJ2LL%(2::fE::;Aw2> 	CR__Q7auMAArwwtV5wAB	C w2> 	KR__Q@q#(*AArww|V5wIJ	K
 LLO<4$&2772vU7;<	C 	C	K 	Ks   =AF4AG 4F= G	c                 H   |j                  |j                  d      d      }t        j                  |      d   j	                  |j
                        }t        j                  |j                  |      dd      }t        ||j                  d|j
                  g      d	       y )
Nr   r  rV  r8   r   rX   r  r%  r&  )
rm   r   ro   rp   rq   rr   rk   r  ri   r4   )rs   rt   r,  mms       r}   test_moment_propagate_nanz%TestMoments.test_moment_propagate_nan  ss     JJryy}g.FF1IdO'\\"**Q-3BJJbff~6UCr   c                     t        j                  t        d      5  t        j                  |j                  g d      g        d d d        y # 1 sw Y   y xY w)Nz1`order` must be a scalar or a non-empty 1D array.r   r  r  )r   r   r   rk   r  ri   rk  s     r}   test_moment_empty_orderz#TestMoments.test_moment_empty_order  sC    ]]: .E F 	=LLL1<	= 	= 	=rm  c                     |j                  d      }t        j                  |d      }t        j                  |d      }t        ||       y )Nr^   r9   )r  r  )r   rk   r  r5   r  s        r}   test_rename_moment_orderz$TestMoments.test_rename_moment_order  s;     IIbMll1Q'll1A&S!r   c                     | j                   t        j                  | j                         z
  }t        t        j                  |d      j                         t        j                  | j                   d             y )Nr  )testcase_moment_accuracyr   rn   r   r   rk   r  )rs   
tc_no_means     r}   test_moment_accuracyz TestMoments.test_moment_accuracy  sY     33 = =>?
R0557T%B%BBG	Ir   r  rY   r3  rf  Nr   c                 B   t         j                  j                  d      }|j                  d      }t        j                  |j                  |      |||      }||nt        j
                  |      }|j                  t        ||||      d         }t        ||       y )Nl   hU~)r;   r<   r=   r  )rY   rf  rj  r   )r   r  r  rk   r  ri   r   r4   )	rs   rt   r  rY   rf  r  rv   r   r   s	            r}   test_moment_array_apiz!TestMoments.test_moment_array_api  s     ii##N3JJIJ&ll2::a=%d6J!>rzz&/AjjE4?CDS!r   )r   r   r   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   r   r}   r  r    s     HO
))



+C"zz"~[[Vb']3[[VT',*M%NO. P 4. [[Vb']3[[S,/" 0 4"=: k*GH( I(-(H [[W&JK[[_vv.>?= @ L=0D="I [[Wl3[[VZ0[[Xbz2" 3 1 4"r   r  c                   &    e Zd ZdZg dZg dZd Zy)SkewKurtosisTestr   rk  )gp=
ף?g?߾?gD9?gQI?g}?5^Ic                     |j                  g       }t        t        t        |      5  | j	                  |      }d d d        t        |j                  |j                               y # 1 sw Y   /xY wr}  )ri   r$   r   r   stat_funr5   rr   r   s       r}   test_empty_1dzSkewKurtosisTest.test_empty_1d  sY    JJrN+3HRP 	#--"C	# 	RZZ/0	# 	#s   A((A1N)r   r   r   r  r  testmathworksr  r   r   r}   r  r    s    OH<M1r   r  c                       e Zd Zd Zej
                  j                  d      d        Zd Zd Z	d Z
d Zd Zej
                  j                  d	g d
      ej
                  j                  dddg      d               Zy)TestSkewc                 ,    t        j                  |      S r  )rk   skewrH  s     r}   r  zTestSkew.stat_fun  s    zz!}r   rU  c                 p   t        j                  |j                  | j                              }t	        ||j                  |j
                               t        j                  |j                  | j                              }t	        ||j                  d      d       t        j                  |j                  | j                        d      }t	        ||j                  d      d       t        j                  |j                  | j                              }t	        ||j                  d      d       y )Ng7l*ҿ绽|=r&  r   biasg2۠ۿr   )rk   r  ri   r  r4   rr   r  r  )rs   rt   rw   s      r}   test_skewnesszTestSkew.test_skewness  s    
 JJrzz$"6"6782::bff-. JJrzz$"4"4562::&78uEJJrzz$"4"45A>2::&89FJJrzz$--012::c?7r   c                    t        j                  d      }t         j                  |d<   t        j                  d      5  t	        t        j                  |      t         j                         d d d        t	        t        j                  |d      d       t        t        t
        j                  |d       t        t        t
        j                  |d	       y # 1 sw Y   mxY w)
Nr   r?   r   r  r   r   r   r   r   )	r   r   rr   r  r   rk   r  r   r   rH  s     r}   rK  zTestSkew.test_nan_policy  s    IIcNvv![[* 	0A/	0UZZf5r:j%**aGDj%**aHE		0 	0s   .CC"c                 T    t        t        j                  t        d            d       y )Nr^   r   )r   rk   r  r   r6  s    r}   test_skewness_scalarzTestSkew.test_skewness_scalar  s    UZZr
+S1r   c                    |j                  d      }|j                  |d      }t        j                  |      d   j	                  |j
                        }t        j                  d      5  t        j                  |j                  |      d      }d d d        t        |j                  d|j
                  g             y # 1 sw Y   1xY w)	Nr   r  rV  r   r  r   rX   r   )r   rm   ro   rp   rq   rr   r   r  rk   r  ri   r5   )rs   rt   r,  r  s       r}   test_skew_propagate_nanz TestSkew.test_skew_propagate_nan  s     IIbMJJq'"FF1IdO'[[* 	2

2::a=q1A	22::q"&&k23	2 	2s   +'CCc                    |j                  |j                  dg      d      }t        t        d|      5  t	        t        j                  |      |j                  |j                               t	        t        j                  |dz        |j                  |j                               t	        t        j                  |dz        |j                  |j                               t	        t        j                  |d      |j                  |j                               |j                  dgd	z        }t	        t        j                  |      |j                  |j                               d
|j                  dd      dz  z   }t	        t        j                  |      |j                  |j                               d d d        y # 1 sw Y   y xY w)N9ѿr^   Precision loss occurredr?  g      CFr  g,@r=   r         r:   r  )	r  ri   r$   r   r5   rk   r  rr   r   rs   rt   r,  s      r}   test_skew_constant_valuez!TestSkew.test_skew_constant_value  s6   IIbjj+/4/HRP 
	?EJJqM2::bff+=>EJJqx0"**RVV2DEEJJqx0"**RVV2DEEJJqu5rzz"&&7IJ 

D6!8$AEJJqM2::bff+=>RYYsA&u,,AEJJqM2::bff+=>
	? 
	? 
	?s   FGGc                    t        t        d|      5  t        j                  j	                  d      }|j                  d      }d|d d df<   t        j                  |j                  |             d d d        y # 1 sw Y   y xY w)Nr  r?  l   :"z` )r  r^   r  )\(?r   )r$   r   r   r  r  rk   r  ri   )rs   rt   r  r,  s       r}   test_precision_loss_gh15554z$TestSkew.test_precision_loss_gh15554  sk     /HRP 	&))''4C

	
*AAadGJJrzz!}%		& 	& 	&s   AA;;BrY   rd   r   r8   Nr  FTc                     t         j                  j                  d      }j                  |j                  d            }fd}t	        j
                  |||      } ||||      }t        ||       y )N   f#"r  c                    |j                  | d      } d}j                  | |d      }j                  | |z
  dz  |      }j                  | |      }||dz  z  }|s#| j                  |   }||dz
  |z  dz  |d	z
  z  z  }|S )
Nr  r   Trz  r9   rX   r   rA   r   )rm   rn   r   r  )	r,  rY   r  rn   mu3r   r   rZ  rt   s	           r}   skewnessz-TestSkew.test_vectorization.<locals>.skewness  s    |JJq%(7714$77D''1t8a-d'3C&&&&Cq.CGGDMSA#-S99Jr   )rY   r  )r   r  r  ri   rk   r  r4   )	rs   rt   rY   r  r  rv   r  r   r   s	    `       r}   test_vectorizationzTestSkew.test_vectorization   sa    
 ii##M2JJszz),-	 jjD1qt$/S!r   N)r   r   r   r  r   r   r   r  rK  r  r  r  r  r   r  r   r   r}   r  r    s     [[>88F24? & [[V%56[[VeT]3" 4 7"r   r  c                   8   e Zd Zd Zej
                  j                  d      d        Zd Zd Z	d Z
d Zej
                  j                  dg d	      ej
                  j                  d
ddg      ej
                  j                  dddg      d                      Zy)TestKurtosisc                 ,    t        j                  |      S r  )rk   kurtosisrH  s     r}   r  zTestKurtosis.stat_fun  s    ~~a  r   rU  c                     t        j                  |j                  | j                              }|j	                  |      sJ t        j                  |j                  | j
                        ddd      }t        ||j                  d             t        j                  |j                  | j
                        dd      }t        ||j                  d             t        j                  |j                  | j                        dd      }t        ||j                  d             |j                  d      }|j                  |dk(  |j                  |      }t        t        j                  |      |j                  |j                               y )	Nr   r   fisherr  gO߻S@gx|N@g=
ףp=?r   r>   )rk   r  ri   r  r:  r  r4   r  r   r  rr   r5   )rs   rt   rw   rv   s       r}   test_kurtosiszTestKurtosis.test_kurtosis   s    NN2::d&:&:;<xx{{ NN2::d&8&891QQO2::o67 NN2::d&8&89!!L2::&789NN2::dmm4a;2::d+,IIcNHHQ!VRVVQ'q)2::bff+=>r   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  |d      d       t        t        t        j
                  |d       t        t        t        j
                  |d       y )Nr   r?   r   r   Gzr   r   )r   r   rr   r   rk   r  r   r   rH  s     r}   test_kurtosis_nan_policyz%TestKurtosis.test_kurtosis_nan_policy@  sU    IIcNvv!ENN1@)Lj%..!Hj%..!Ir   c                 t    t        t        t        j                  g d            t        j
                         y )Nr~  )r   typerk   r  r   r   r6  s    r}   test_kurtosis_array_scalarz'TestKurtosis.test_kurtosis_array_scalarH  s    T%..34bjjAr   c                 .   t        j                  d      j                  dd      j                  t              }t         j
                  |d<   t        j                  |dd      }t         j                  j                  |dt         j
                  gd	
       y )Nr>   r8   rd   rV  r   rW  rX  g(\r%  r&  )
r   r   rm   r  r  rr   rk   r  r  r   )rs   r,  rO  s      r}   test_kurtosis_propagate_nanz(TestKurtosis.test_kurtosis_propagate_nanL  si     IIaL  B'..u5&&$NN11=


""1ubffoE"Br   c           	         |j                  dgdz        }t        t        d|      5  |j                  t	        j
                  |d            sJ |j                  t	        j
                  |t        d      z  d            sJ |j                  t	        j
                  |t        d      z  d            sJ |j                  t	        j
                  |dd            sJ 	 d d d        y # 1 sw Y   y xY w)	Nr  r^   r  r?  F)r  l           r  )ri   r$   r   r:  rk   r  r  r  s      r}   test_kurtosis_constant_valuez)TestKurtosis.test_kurtosis_constant_valueU  s    JJ}R'(/HRP 	I88ENN1U;<<<88ENN1uU|+;EJKKK88ENN1uU|+;EJKKK88ENN1UGHHH		I 	I 	Is   B:C,,C5rY   r  r  FTr  c                     t         j                  j                  d      }j                  |j                  d            }fd}t	        j
                  ||||      } |||||      }	t        ||	       y )Nr  r  c                 P   |	j                  | d      } d}	j                  | |d      }	j                  | |z
  dz  |      }	j                  | |d      }|r||dz  z  d	z
  }n8| j                  |   }|d
z
  |dz
  |d	z
  z  z  |d
z   |z  |dz  z  d	|d
z
  z  z
  z  }|r|S |d	z   S )Nr  r   Trz  r:   rX   rY   r   r8   r9   r   )rm   rn   r   r  )
r,  rY   r  r  rn   mu4mu2r   rZ  rt   s
            r}   r  z1TestKurtosis.test_vectorization.<locals>.kurtosisg  s    |JJq%(7714$77D''1t8a-d'3C&&!&4CCFlQ&GGDMs!!}-!a%3sAv1E1Q31OP !3-cAg-r   )rY   r  r  )r   r  r  ri   rk   r  r4   )
rs   rt   rY   r  r  r  rv   r  r   r   s
    `        r}   r  zTestKurtosis.test_vectorization^  se     ii##M2JJszz),-	.& nnQTVDqt$v>S!r   N)r   r   r   r  r   r   r   r  r  r  r  r  r   r  r   r   r}   r  r    s    ! [[ VW? X?>JBCI [[V%56[[VeT]3[[Xt}5" 6 4 7"r   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	kD        r9t	        j"                  t	        j$                  |            r|j'                  |       d d d         	 d d d        t)        j*                  |        | t(        j,                  j/                  |            }||fS # 1 sw Y   xY w# 1 sw Y   SxY w)
NF)	allow_nanallow_infinityr   r8   )min_dimsmin_side)rN   elementsr  errorr  r   )dictnpstarray_shapesarraysr   r   r   r   r  r  r  r  r^  suppress	Exceptionrk   r  r  r  r  
hypothesisassume
strategiessampled_from)drawr)  r  r  ok_axesrY   r   s          r}   ttest_data_axis_strategyr7    s3    eE:Hq15E "**xuMND G 
	 	 	" )g&#djj/* 	)D$$Y/ )ll4qt<66#'?rvvbkk#.>'?NN4() )	)) g 
%%227;<D:) )) )s&   'AE>7A*E2!
E>2E;7E>>F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                   j#                  d      ej                   j#                  d      d               Zd Z edd      d        Zej                   j#                  d      d        Z edd      ej                   j/                  dg d      d               Zd Z edd      ej                   j4                   ej8                  ej:                  j=                  dd        e       !      ej                   j/                  dd"d#g      d$                             Z y%)&TestTTest_1sampr0  r   r   )r   r   r   r   r   gMXzg4/?gMXzgFX5t?gMXz?r8   r   rV  rU  c                 H   t        j                         5  t        j                  dd      5  t        j                  ddt
               t        |      s|j                  d      nd}t        j                  |d      \  }}d d d        d d d        t        |j                  |j                               t        |j                  |j                               t        j                  |j                  | j                        d      \  }}t        ||j                  | j                               t        ||j                  | j                               t        j                  |j                  | j                        d      }d}t!        |||       t        j                  |j                  | j"                        d      \  }}t        ||j                  | j$                               t        ||j                  | j&                               t        j                  |j                  | j                        d	      \  }}t        ||j                  | j(                               t        ||j                  | j*                               t        j                  |j                  | j                        d
      \  }}t        ||j                  | j,                               t        ||j                  | j.                               y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r  divide!Degrees of freedom <= 0 for slicer   r   r   r!  r  r   r   r   )r   r   r   r  r   r   r&   ri   rk   ttest_1sampr5   rr   X1r4   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2)rs   rt   r,  trC  r   r"  s          r}   test_onesamplezTestTTest_1samp.test_onesample  s.    $$& 	,HX>	,##=~O&.rl

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

477 3R8,
C3  DGG!4b912::dii012::dii01  DGG!4b912::dii012::dii01  DGG!4b912::dii012::dii01=	, 	, 	, 	,s#   LAL
 L
L	LL!c                    t         j                  j                  dddd      }t        j                  |d<   |j                  |t        |            }t        j                  |d      }t        |j                  |j                  |j                               t        |j                  |j                  |j                               y )	Nr;   r^   3   t r  r  r  r  r9  rM   rQ   )rk   r  r  r   rr   ri   r(   r@  r5   r!  r  r   s       r}   #test_onesample_nan_policy_propagatez3TestTTest_1samp.test_onesample_nan_policy_propagate  s    JJNNq'NJ"JJq 0 4J53'rzz"&&'9:

BJJrvv$67r   Tr  r   c                    t         j                  j                  dddd      }t        j                  |d<   |j                  |t        |            }t        j                  |dd	
      }t        |j                  |j                  d             t        |j                  |j                  d             t        j                  t        d      5  t        j                  |dd
       d d d        t        j                  t        d      5  t        j                  |dd
       d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)Nr;   r^   rN  rO  rP  r9  rM   rQ   r   r   g̈́^Bg/kCm?r   r   r   nan_policy must be one ofr   )rk   r  r  r   rr   ri   r(   r@  r4   r!  r  r   r   r   r   s       r}   $test_onesample_nan_policy_omit_raisez4TestTTest_1samp.test_onesample_nan_policy_omit_raise  s    JJNNq'NJ"JJq 0 4J536:rzz2E'FG

BJJ/C$DE]]:-LM 	:a9	: ]]:-HI 	;a:	; 	;	: 	:	; 	;s   D.D:.D7:Ez+ignore:divide by zero encountered in dividec                    d}t        j                  t        |      5  t        j                  |j                  | j                        dd       d d d        t        j                  |j                  | j                        dd      \  }}t        ||j                  | j                               t        ||j                  | j                               t        j                  |j                  | j                        dd      \  }}t        ||j                  | j                               t        ||j                  | j                               y # 1 sw Y   xY w)	N8`alternative` must be 'less', 'greater', or 'two-sided'.r   r   r*  rl  r   rf  rh  )r   r   r   rk   r@  ri   rA  r4   P1_1_lrG  P1_1_g)rs   rt   r  rK  rC  s        r}   test_1samp_alternativez&TestTTest_1samp.test_1samp_alternative  s    L]]:W5 	Lbjj127K	L   DGG!4bfM12::dkk232::dii01  DGG!4biP12::dkk232::dii01	L 	Ls   2EErS  Generic stdtrit mutates array.r'  rm  r  c                    t         j                  j                  d      }d}|j                  |dd      }|j                         }|j	                  d      j
                  }|j	                  ||      }|j	                  ||      }dd	gd
t         j                  gt         j                   dgd}t        j                  |||      }	|	j                  d      }
t        |
j                  |j	                  ||   d                t        |
j                  |j	                  ||   d                t        |	j                  |j	                  |dz
               y )Nl   <PleH r^   rB   r8   r  r  r  r   rM   gÍ]?g$(}w@gS1?g]@rd  rh  rf  )popmeanrm  333333?confidence_levelr   r   )r   r  r  r  ri   rN   r  rk   r@  rY  r4   r\  r]  r5   df)rs   rt   rm  r  rZ  rv   r^  rN   r   r   rs  s              r}   test_1samp_ci_1dz TestTTest_1samp.test_1samp_ci_1d  s&    ii##$78JJA3aJ0**, 

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

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

1Q30r   c                     t        j                  |j                  d      d      }d}t        j                  t
        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr   r   4`confidence_level` must be a number between 0 and 1.r   r^   r`  )rk   r@  r   r   r   r   rY  )rs   rt   r   r  s       r}   test_1samp_ci_ivz TestTTest_1samp.test_1samp_ci_iv  sU    		#3H]]:W5 	9##R#8	9 	9 	9s   AA(z	Too slow.r  r%  g?)alpha	data_axisrf  rh  c                    |\  }}|j                  |      }t        j                  |d||      }|j                  |      \  }}	|dk(  r|n|	}
|j	                  |
|      }
t        j                  ||
||      }t        |j                        }|j                  |       |j                  |j                  d|z
  |j                        |      }t        |j                  |       y )Nr   r  r`  rh  rX   r   rM   )ri   rk   r@  rY  expand_dimsr  r  r  r  r   r4   r  )rs   rg  rh  rm  rt   r  rY   r   lr  r^  r  r   s                r}   test_pvalue_cizTestTTest_1samp.test_pvalue_ci  s     
dzz$b,7dD&&&>1"i/!Q..t.4g;TRTZZ 		$oobjj5

jCUK

C(r   N)!r   r   r   rA  rD  rB  rC  rG  rH  rI  rJ  rE  rF  rW  rX  r   r   r   rL  rQ  r   rT  rY  r   rc  rf  r1  r1  givenr3  floatsr7  rl  r   r   r}   r9  r9    s    
B	BDDDDDDDDAXF$(^F[[ WX[[ VW2 X Y2B8 .MN; O;  [[ MN2 O2 k*JK[[],LM1 N L109 d;7[[ZJ1188H 8 :<[[]VY,?@) A<  8
)r   r9  c                      e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Z	ej
                  j                  dg d	      d
        Z
ej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d	      d        Zej
                  j                  ddg dfdg dfdg dfdg dfg      d        Zej
                  j                  ddg dfdg dfdg dfdg dfg      d        Zdg dej"                  fdej"                  gdej"                  fdej"                  gg dej"                  ej"                  ej"                  gfdddgddej"                  gddej"                  gfd ddej"                  gg dg d!fd ddgd"dej"                  gd"dej"                  gfd ej"                  ej"                  gg dej"                  ej"                  ej"                  gfgZej
                  j                  d#e      d$        Zd%ddd&ej"                  gg d'd(fd%g d'ddd&ej"                  gd(fgZej
                  j                  d)e      d*        Zej
                  j                  d+g d,      d-        Zd. Zy/)0TestPercentileOfScorec                 ,    t        j                  |i |S r  )rk   percentileofscore)rs   argskwargss      r}   fzTestPercentileOfScore.f5  s    &&777r   zkind, result))r  ru  )rn   #   strictrt  )weakru  c                 H    g d}t        | j                  |d|      |       y )N
r   r8   r9   r:   r;   r<   r=   r>   r?   r^   r:   kindr   ru  rs   r}  rr  r,  s       r}   test_uniquez!TestPercentileOfScore.test_unique8  s"    
 ,TVVAqtV,f5r   ))r  -   )rn   ru  rw  )ry  r9  c                 H    g d}t        | j                  |d|      |       y )N)
r   r8   r9   r:   r:   r;   r<   r=   r>   r?   r:   r|  r~  r  s       r}   test_multiple2z$TestPercentileOfScore.test_multiple2@  "    
 +TVVAqtV,f5r   ))r  r9  )rn   r  rw  )ry  r  c                 H    g d}t        | j                  |d|      |       y )N)
r   r8   r9   r:   r:   r:   r;   r<   r=   r>   r:   r|  r~  r  s       r}   test_multiple3z$TestPercentileOfScore.test_multiple3H  r  r   ))r  rt  )rn   rt  rw  )ry  rt  c                 H    g d}t        | j                  |d|      |       y )N)
r   r8   r9   r;   r<   r=   r>   r?   r^   r_   r:   r|  r~  r  s       r}   test_missingz"TestPercentileOfScore.test_missingP  s"    
 -TVVAqtV,f5r   c                 H    g d}t        | j                  |d|      |       y )N
r^   r  rt  ru  r9  r  F   r  rt  r  ru  r|  r~  r  s       r}   r  z(TestPercentileOfScore.test_large_numbersX  s"    
 6TVVArV-v6r   c                 H    g d}t        | j                  |d|      |       y )N)
r^   r  rt  ru  ru  ru  r9  r  r  r  ru  r|  r~  r  s       r}   test_large_numbers_multiple3z2TestPercentileOfScore.test_large_numbers_multiple3`  s"    
 5TVVArV-v6r   c                 H    g d}t        | j                  |d|      |       y )N
r^   r  rt  r9  r  r  r  rt  r  n   ru  r|  r~  r  s       r}   test_large_numbers_missingz0TestPercentileOfScore.test_large_numbers_missingh  s"    
 7TVVArV-v6r   r  )r   r^   r  r  rn   )r   r;   _   r  rx  )r   r   rt  r  ry  c                 L    g d}t        | j                  |g d|      |       y )Nr  )r   r^   r  r  r|  r~  r  s       r}   test_boundariesz%TestPercentileOfScore.test_boundariesp  s#    
 7TVVA0tV<fEr   )r   r^   r  )r   r;   r  )r   r   rt  c           
          ddddddddd	t         j                  g
}t        | j                  |t         j                   dt         j                  g|
      |       y )Nr   r8   r9   r:   r;   r<   r=   r>   r?   r|  )r   r  r   ru  r  s       r}   test_infzTestPercentileOfScore.test_infx  sP    
 1aAq!Q0TVVARVVG44V@&Ir   rW  r   r  r8   r9  r  r   )r   r9  r  r   zpolicy, a, score, resultc                 @    t        | j                  |||      |       y )Nr   r~  )rs   policyr,  r^  rr  s        r}   test_nans_okz"TestPercentileOfScore.test_nans_ok  s    TVVAuV8&Ar   r   r9   r~  r   zpolicy, a, score, messagec                 x    t        t        |      5  | j                  |||       d d d        y # 1 sw Y   y xY w)Nr   r   )r   r   ru  )rs   r  r,  r^  r  s        r}   test_nans_failz$TestPercentileOfScore.test_nans_fail  s3    :W5 	0FF1eF/	0 	0 	0s   09r  ))r<   r  r8   r   r9   )r8   r   r   r9   c                     t        j                  g d      }|j                  |      }|dz  }g d}t        | j	                  ||d      |       y )N)r   r   r8   r9   r:   r;   r^   r{  r  r|  )r   r   rm   r   ru  )rs   r  r,  r  resultss        r}   test_ndzTestPercentileOfScore.test_nd  sH     HH'(5!)+TVVAvFV3W=r   c                     d}t        j                  t        |      5  t        j                  t        j                  d      d       d d d        y # 1 sw Y   y xY w)Nz`a` must be 1-dimensional.r   r  r   )r   r   r   rk   rr  r   r  r  s     r}   test_multidimensional_errorz1TestPercentileOfScore.test_multidimensional_error  sD     /]]:W5 	8##BGGFOQ7	8 	8 	8   *AAN)r   r   r   ru  r   r   r   r  r  r  r  r  r  r  r  r  r   rr   casesr  r  r  r  r   r   r}   rp  rp  3  sk   8 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =7	=7 [[^ .< =7	=7 [[^ .< =7	=7 [[^v7H.I/5.G/7.I/57H.I.K LF	LF [[^v|.D/5z.B/7.D/5|.D.F GJ	GJ 2q"&&)BFF8Q/BFF8Y0HIAq6Aq"&&>BRVV3DEq!RVVni>q!fq!RVVnq"bffo>rvvrvv&	BFFBFFBFF3KLNE [[7?B @B 
1aBFF#Y	(	*	)aArvv.	(	*E [[8%@0 A0 [[W ' >>8r   rp  Case)f_obsf_expr  rY   chi2r7  mod_logcr)r:   r>   r`   r>   r:   r8   rA   r`   rB   r>   r   r  gfx(@)r8   r   r`   r8   r  r   r         ?g{T4@)r9   r;   r=   r?   r   r   r   c                   <   e Zd Zd Zej
                  j                  de      ej
                  j                  dg d      d               Zd Z	d Z
ej
                  j                  de      ej
                  j                  dg d      d	               Zd
 Zd Zd Zy)TestPowerDivergencec                 B   |j                  d      j                  }|j                  ||      }||j                  ||      n|}|t        |      }	n)||j                  ||      n|f}
|
d   j                  |   }	t        j                         5  t        j                  ddt               t        j                  |||||      \  }}t        ||j                  ||             |dk(  s|dk(  r9t        j                  ||||	      \  }}t        ||j                  ||             d d d        t        j                   |      }t        j                  j                  j!                  ||	dz
  |z
        }t        |j                  ||             y # 1 sw Y   lxY w)
Nr   rM   r   r   zMean of empty slicer  r  rY   lambda_r   pearson)r  r  rY   )ri   rN   r)   broadcast_arraysr  r   r   r   r   rk   power_divergencer4   	chisquarer   distributionsr  sf)rs   r  r  r  rY   r  expected_statrt   rN   num_obsr.  statrC  
expected_ps                 r}   check_power_divergencez*TestPowerDivergence.check_power_divergence  s   

2$$

5
.272C

5
.<enG;@;Lb))%7!8 Qiood+G$$& 	N##H.C^T,, %U%)7<GD! D"**]%*"HI!|w)3//%u4/35abjjej&LM	N zz$((--00181t1CE
2::j:>?!	N 	Ns   BFFcaselambda_stat))Nr  r  r  )r   r  log-likelihoodr7  mod-log-likelihoodr  cressie-readr  r  r  c           	          |\  }}t        ||      }| j                  |j                  |j                  |j                  |j
                  |||       y r  )rH  r  r  r  r  rY   rs   r  r  rt   r  attrr  s          r}   r7  zTestPowerDivergence.test_basic  sG     $d+##DJJ

DIItyy$+]B	@r   c           	         t         d   }t         d   }t        j                  |j                  |j                  f      }t        j                  t        j                  |j                        t        j
                  |j                        z  |j                  f      }|j                  |      }||j                  |      n|}| j                  ||ddd|j                  |j                  g|       | j                  ||ddd|j                  |j                  g|       | j                  ||ddd|j                  |j                  g|       | j                  ||ddd|j                  |j                  g|       |j                  |j                  |j                        d      }| j                  |d dd d|j                  |       y )	Nr   r   r  r   r  r  r  r  )power_div_1d_casesr   vstackr  	ones_likern   r  ri   r  r  r7  r  r  rm   )rs   rt   case0case1r  r  f_obs_reshapes          r}   r_  zTestPowerDivergence.test_axis  s   "1%"1%		5;;45		2<<4RWWU[[5II ;;( ) 

5!%*%6

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

2::ekk#:FC##dAt%** 	$ 	-r   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}|j                  d      j                  }|j                  ||      }|j                  ||      }|j                  ||      }|j                  dgdgg      }t        j                  |||      \  }	}
t        |	|       t        j                  |||d         \  }}t        j                  |||d         \  }}|j                  ||j                  d d f   ||j                  d d f   fd      }t        |
|       y )	Nr   r   r   rM   r  r  rV  rX   )r  r   r  r  r   r  rn   r  r  ri   rN   rk   r  r4   r  r  )rs   rt   r  r  r  r  expected_chi2rN   r  r  rC  r2  p0p1r  s                  r}   test_ddof_broadcastingz*TestPowerDivergence.test_ddof_broadcasting7  s    #1%"1%		5;;4577		2<<4RWWU[[5II ;;( ))* 	 UZZ0

2$$

5
.

5
.

=
> zzA3*%((DAam, &&ue$t*E2&&ue$t*E2YY2::q= 12bjj!m3DEAYN
:&r   )r  r  r  r  r  c           
          |\  }}t        ||      }t        j                         5  | j                  |j                  |j
                  |j                  |j                  |||       d d d        y # 1 sw Y   y xY wr  )rH  r   r   r  r  r  r  rY   r  s          r}   test_empty_casesz$TestPowerDivergence.test_empty_casesY  sh     $d+$$& 	,''

DJJ		499,	, 	, 	,s   A A//A8c                 L   t         d   j                  }t         d   j                  }t         d   j                  }t         d   j                  }|j                  d      j                  }|j                  ||      }t        j                  ||||d      }d}t        |||       y )Nr   r   rM   r  r  r?  r   )
r  r  r  r  rY   ri   rN   rk   r  r   )	rs   rt   r  r  r  rY   rN   r   r"  s	            r}   'test_power_divergence_result_attributesz;TestPowerDivergence.test_power_divergence_result_attributesf  s    "1%++"1%++!!$))!!$))

2$$

5
. $$U%d*.	C,
C3r   c                    |j                  ddgddgg      }|j                  ddgddgg      }t        j                  ||      \  }}t        ||j                  d	d
g             t        ||j                  ddg             t	        |      rt        j                  ||j                  ddg            }t        |j                  |j                  |j                  |j                  g             t        |j                  |j                  |j                  |j                  g             t        j                  ||d      }t        |j                  |j                  |j                  |j                  g             t        |j                  |j                  |j                  |j                  g             |j                  ddgddgg      }t        j                  ||      }t        |j                  |j                  |d   |j                  g             t        |j                  |j                  |d   |j                  g             y d}t        j                  t        |      5  t        j                  ||j                  ddg             d d d        t        j                  t        |      5  t        j                  ||d       d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)Nr   r        >@rQ   r  g     A@      9@r  g̑m@gUUU@gj^4;?g4;?      N@r   )r  rY   r   For each axis slice...r   )ri   rk   r  r4   r%   r5   r!  rr   r  r   r   r   )rs   rt   r  r  r  rn  r   r  s           r}   test_power_divergence_gh_12282z2TestPowerDivergence.test_power_divergence_gh_12282t  sH   

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

RISz23++E?
dbjj*j)ABCbjj*j)ABC((bjj#s6LMCCMM2::rvvrvv6F+GHCJJ

BFFBFF3C(DE((e!DCCMM2::rvvrvv6F+GHCJJ

BFFBFF3C(DE JJS	C:67E((e<CCMM2::tAw6G+HICJJ

DGRVV3D(EF.Gz9 L&&uBJJSz4JKLz9 C&&uEBC CL LC Cs   /)K;K)K&)K2c           	         |j                  g d      }d}|j                  d|j                  d   dz         }|j                  |j	                  |      |j	                  |j                  ||z              z        }|j                  |||z  z         }|j                  ||j                  d d f   ||j                  d d f   f      j                  }t        j                   g d      }t        j                  |d      }t        |j                  d         D ]h  }t        ||df         t        ||df         }
}	t        j                  |d d df   |d d df   |	      \  }}t        ||j                  |
      d	
       j y )N)r  rX        ,@g      1@rQ   rX  r   r   r   r   r   r   rX  r   r   r   r   r   g*kqr   r   ) g      $g    @r  g     r@r   gffffffP@       gLD@r  g      A@r0  g     =@r  g     :@r   g8@rA   gffffff7@gq=
ףp?g7@r   g333336@rB   g6@r   gfffff6@r   g8@rQ   g     A@r   g     j@)rd   r8   r   )r  g{Gzt?r  )ri   r   r  r7  r$  expr  r  r   r   rm   r  r  rk   r  r4   )rs   rt   obsbetar  rg  expected_countstable4table5r  r  r  rC  s                r}   /test_power_divergence_against_cressie_read_datazCTestPowerDivergence.test_power_divergence_against_cressie_read_data  se    jj @ AIIb#))A,+,rvvc{RVVBFF46N%;;<&&a0 C

A.+BJJM:< ==>Q 	   & FG,v||A' 	HA%*6!Q$<%8%q!t:M]G,,VAqD\6!Q$<5<>GD!D"**]";$G		Hr   N)r   r   r   r  r   r   r   r  r7  r_  r  power_div_empty_casesr  r  r  r  r   r   r}   r  r    s    @@ [[V%78[[]	./@	/ 9
@-: 'D [[V%:;[[]	./,	/ <
,4C:-Hr   r  c                   `    e Zd Zd Zd Zej                  j                  dddg      d        Zy)TestChisquarec                    |j                  ddg      }|j                  ddg      }t        |      rvt        j                  ||      }t	        |j
                  |j                  |j                               t	        |j                  |j                  |j                               y t        t        d      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr   r  r  r  r  r  r   )
ri   r%   rk   r  r5   r!  rr   r  r   r   )rs   rt   r  r  r   s        r}   test_chisquare_12282az#TestChisquare.test_chisquare_12282a  s     

C:&

C:&//%u5CCMM2::bff+=>CJJ

266(:;z1IJ 4U34 4 4s   9CC#c                 6   t         j                  j                  d      }d}|j                  dd|      }|j	                  |      }|j                  |      }|j                  ||j                        }t        j                  ||dd	      }||z
  |j                  |      z  }|j                  |d
z        }t        |j                  |       t        |j                  ||j                              }	t        |j                  |	j                  |             y )Nl   *m{m r^   r  r  r  rM   rd   F)r  r  	sum_checkr8   )r   r  r  r  poissonri   rN   rk   r  r)  r$  r4   r!  r    r  r  )
rs   rt   r  rZ  lamrv   r   r  r!  rD  s
             r}   test_chisquare_12282bz#TestChisquare.test_chisquare_12282b  s     ii##$45kk$1k-KKjjoJJq		J*ooasuEW$FF1a4L	y1AY__=>

BEE)$45r   zn, dtype)r  r  )i@B r  c           	      z   t        ||      }|j                  |dg|      }|j                  |dz  |dz  g|      }t        j                  ||      }|\  }}t	        ||j                  ||j                  d      j
                        d       t        |j                  |       t        |j                  |       y )Nr   rM   r8   r   vIh%<=r  )	rH  ri   rk   r  r4   rN   r5   r!  r  )	rs   rZ  rN   rt   r  r  r   r  rC  s	            r}   #test_chiquare_data_types_attributesz1TestChisquare.test_chiquare_data_types_attributes  s     E"jj!Quj-jj!q&!q&)j7ooc3'abjj"**R.2F2FjGeTt,

A&r   N)	r   r   r   r  r  r   r   r   r  r   r   r}   r  r    s8    46& [[Z.:L)MN
' O
'r   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                  j                  dg d      e	j                  j                  deefeefeefg      d               Zd Zy)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?)r:   r9   r;   r9   r;   r9   r8   r;   r:   r:   r:   r9   )r8   r8   r   r8   r9   r   r8   r9   r8   r   r   r9   )r8   r:   r9   r9   r:   r9   r9   r:   r:   r   r8   r   )r9   r;   r:   r9   r:   r:   r9   r9   r9   r:   r:   r:   )g
__2@g5"]i2?)r   g#@rI   r  g$@)g333333@g@g@rD   g@)r  r  rF   rU   @)g!@g!@333333 @ffffff
@g333333"@)g\(\%@g+ԋ?rN   r  z	data, refc                 :   ||nt        ||      }|D cg c]  }|j                  ||       }}t        j                  | }t	        |j
                  |j                  |d   |             t	        |j                  |j                  |d   |             y c c}w )NrM   r   r   )rH  ri   rk   friedmanchisquarer4   r!  r  )rs   rN   r  r   rt   r   r   s          r}   test_against_referencesz-TestFriedmanChiSquare.test_against_references  s     GB,><@A5

5
.AA%%t,rzz#a&z'FG

BJJs1vUJ$CD Bs   Bc                    d}t        j                  t        |      5  t        j                  |j                  | j                  d         |j                  | j                  d                d d d        y # 1 sw Y   y xY w)Nz At least 3 samples must be givenr   r   r   )r   r   r   rk   r  ri   r  rs   rt   r  s      r}   test_too_few_samplesz*TestFriedmanChiSquare.test_too_few_samples  s`    4]]:W5 	T##BJJtwwqz$:BJJtwwqz<RS	T 	T 	Ts   AA66A?N)r   r   r   r  ref1r  ref2r  ref3r   r   r   r  r  r   r   r}   r  r    s    
9:;:
;B 2D /
.
.
.
0B 4D %
#
#
#
%B 'D[[W&BC[[[B:DzB:*NOE P DETr   r  c                       e Zd ZdZddZd Zd Zej                  j                  dg d      ej                  j                  dg d      d	               Z
d
 Zy)
TestKSTestzLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.c                    t        j                  |d||      }t        j                  |t        j                  ||      }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y )Nr  rm  ri  )rk   kstestks_1sampr   ndtrr4   r!  r  r5   statistic_locationstatistic_sign)rs   rv   rm  ri  r  rr  result_1samps          r}   _test_kstest_and_ks1sampz#TestKSTest._test_kstest_and_ks1samp%  s    a[tL~~a2=DJ((,*@*@A|':':;1163L3LM--v/D/DEr   c                     |j                  ddd      }d}t        j                  |t        j                        }t        |||       y )Nrd   r   r?   r?  r   )r  rk   r  r   r  r   )rs   rt   rv   r"  r   s        r}   test_namedtuple_attributesz%TestKSTest.test_namedtuple_attributes.  s9    KKAq!,
ll1gll+C3r   c                 6   |j                  ddd      }| j                  |d       |j                  ddd      }| j                  |d       g d}|j                  |      }| j                  |d       | j                  |dd	
       | j                  |dd	
       y )Nrd   r   r?   rd  r  
r  Q?g333333g(\?Q?g(\ſg{GzgHzG?g\(\gGzrh  r  ri  rf  )r  r  ri   r   s      r}   test_agree_with_ks_1sampz#TestKSTest.test_agree_with_ks_1samp5  s    KKAq!%%a5KKR#%%a5NJJqM%%a5%%a%A%%ag%>r   r  )autor  asymprm  r  c                    t         j                  j                  d      }|j                  d      \  }}|j                  |      |j                  |      }}t	        j
                  ||||      }t	        j                  ||||      }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y )Ni)r8   r?   r^   )rm  r  )r   r  r  ri   rk   r  ks_2sampr5   r!  r  r  r  )	rs   r  rm  rt   r  rv   rw   r   r   s	            r}   test_agree_with_ks_2sampz#TestKSTest.test_agree_with_ks_2sampD  s     ii##I.zz*%1zz!}bjjm1ll1a[HnnQ{6Js}}5

CJJ/..0F0FG**C,>,>?r   c                    j                  j                   ddj                  g      }fd}t        j                  ||      }t        j                  ||d      }j	                  |j
                        sJ j	                  |j                        sJ j	                  |j                        sJ j	                  |j                        sJ t        |j
                  |j
                         t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         y )Nr   r   c                 b    j                  j                  |       |        j                  z  S r  )atan2r  pi)rv   rt   s    r}   cdfz+TestKSTest.test_pm_inf_gh20386.<locals>.cdfU  s'    88BLLOaR025588r   T)_no_deco)
ri   r  rk   r  r  r!  r  r  r  r5   )rs   rt   rj  r)  r   r   s    `    r}   test_pm_inf_gh20386zTestKSTest.test_pm_inf_gh20386Q  s     zzBFF7Aq"&&12	9ll4%ll4t4{{3==))){{3::&&&{{311222{{3--...s}}5

CJJ/..0F0FG**C,>,>?r   N)r   r\   )r   r   r   r  r  r  r  r   r   r   r$  r+  r   r   r}   r  r  !  s_    VF4? [[X'AB[[],LM	@ N C	@@r   r  c                   j   e Zd ZdZdddZej                  j                  dg d      d        Zej                  j                  dg d      d        Z	d	 Z
ej                  j                  d
ej                  ej                  g      ej                  j                  dg d      d               Zd Zy)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                  ||      }	|j                  ||      }
|j                  ||      }t        |	j                  |
|       t        |	j                  ||       y )NgvIh%,=h㈵>r  rM   r  )	r   rk   r  r   r  ri   r4   r!  r  )rs   rv   rm  expected_statisticexpected_probri  rN   rt   r  r   ref_statisticr&  s               r}   _testOnezTestKSOneSample._testOnek  sq    +unnQ+DQ

#5U
CZZUZ;
}4@

JT:r   rN   r  c           	         |t        |      nt        ||      }|j                  ddd|      }| j                  |ddd||       |j                  d	d
d|      }| j                  |ddd||       g d}|j	                  ||      }| j                  |ddd||       | j                  |dddd||       | j                  |dddd||       y )Nrd   r   r?   rM   rd  g|N?g7.s?rN   rt   r  r  g{CTp?g M<b*?r  gZL?g86J4?rh  g+?r  )ri  rN   rt   rf  gHD?gr?)r(   rH  r  r3  ri   rr  s       r}   test_agree_with_rz!TestKSOneSample.test_agree_with_rt  s    ). $72u;MKKAqK.a&9;N!b 	 	* KKR%K0a&9;O!b 	 	* OJJqJ&a&79J!b 	 	*a$57Hw!b 	 	*a!24EG!b 	 	*r   c           	      ,   |t        |      nt        ||      }t        j                  j	                  ddd      }|j                  ||      }| j                  |dddd	||
       | j                  |ddd||       | j                  |ddd||       y )Nr  r  ih:)r  r  r  rM   rd  ghх?g7?r!  )ri  rt   rN   rf  g^h?)rt   rN   rh  gv!ԉ}?g*z)?)r(   rH  rk   r  r  ri   r3  )rs   rt   rN   rv   s       r}   test_known_examplesz#TestKSOneSample.test_known_examples  s     ). $72u;MJJNNs9NEJJqJ&a&9;O"r 	 	8a!46J5 	 	*a$9;N5 	 	*r   c           	         t        t        j                  t        t        j                  dd                   t        t        d      5  t        ddd       d d d        t        t        j                  t        ddd                   t        j                  g d      }t        t        |dd	      j                  t        t        t        g
       y # 1 sw Y   {xY w)Nr   Tzn is not integral: 1.5r   rB   rd   ))ra  r   Tr   )ra  皙?Tr   )ra  r   Tr   )ra  gTr   )          ?Tr   )r;  r<  Fr   )r;  rA   Tgb?)r;  rA   FgiNq>)r;  g      ?Tgv(?)r;  r  TgT	?)@  g\(\?Fr   )r=  g      ?Fg(>)r=  gQ?Fg@c?)r=  g      ?FgX+ʳP?r  r9   )dtypes)r   r   r:  r   rr   r   r   ri   r   checkr  r  bool)rs   datasets     r}   test_ks1samp_allpathsz%TestKSOneSample.test_ks1samp_allpaths  s    D123:-EF 	"CD!	"Q-./** 
 4 	'9a066sE4>P6Q=	" 	"s   	CCksfunc*alternative, x6val, ref_location, ref_sign))rh  r   r   r   )rf  r   r   rd   )rd  r   r   r   )rd  r   r   rd   c                    |j                  d      dz   }t        j                  |      d   j                  |      }d } ||j	                  |      ||      }	|j
                  |j                  k(  rdnd}
t        |	j                  |j	                  d      |
	       t        |	j                  |j	                  |             t        |	j                  |j	                  ||j                  
             y )Nr   rA   r<   c                     | dz  S )Nr   r   r}  s    r}   r)  z/TestKSOneSample.test_location_sign.<locals>.cdf  s
    1s7Nr   rl  r%  r  r  r  rM   )r   ro   rp   rq   ri   rN   r   r4   r!  r5   r  r  int8)rs   rC  rm  x6valref_locationref_signrt   rv   r)  r   r  s              r}   test_location_signz"TestKSOneSample.test_location_sign  s     IIcNS FF1IaLU#"RZZ]C[A2::-u4rzz#TB..

<0HI**BJJxrwwJ,OPr   c                 ,   t         j                  j                  d      }|j                  d      }t	        j
                  t        d      5  t        j                  |t        j                  d       d d d        t	        j
                  t        d      5  t        j                  |t        j                  dd	       d d d        t	        j
                  t        d      5  t        j                  |t        j                  dd
	       d d d        t	        j
                  t        d      5  t        j                  |t        j                  j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   vxY w# 1 sw Y   y xY w)Nr  r^   zInvalid value for methodr   any_other_stringr  typorh  r  rf  )r   r  r  rC  r   r   r   rk   r  r   r  r  r  r)  )rs   r  rv   s      r}   test_invalid_method_raisesz*TestKSOneSample.test_invalid_method_raises  s,    ii##B'#]]:-GH 	GNN1gll3EF	G ]]:-GH 	2NN1gll6'02	2 ]]:-GH 	/NN1gll6'-/	/ ]]:-GH 	GLLEJJNN3EF	G 	G	G 	G	2 	2	/ 	/	G 	Gs0   'E&(E2!(E>,1F
&E/2E;>F
FN)r   r   r   r  r3  r   r   r   r6  r8  rB  rk   r  r  rK  rO  r   r   r}   r-  r-  e  s    
 ; [[W&BC* D*( [[W&BC
* D
*!RF [[Xenn'EF[[I9:
Q: GQGr   r-  c                   P   e Zd 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                   ed      d               Zej                  j7                  dg dgfdgg fg g ff      d        Zej                  j(                  d        Zej                  j7                  dg d      d        Zej                  j7                  dej@                  ejB                  g      ej                  j7                  dg d      d                Z"y!)#TestKSTwoSamplesz<Tests 2-samples with K-S various sizes, alternatives, modes.c                 l    t        t        |      |d       |D ]  }t        |j                  |u         y)z
        Checks that all of the warnings from a list returned by
        `warnings.catch_all(record=True)` are of the required type and that the list
        contains expected number of warnings.
        znumber of warningsN)r   r  r   category)rs   	warn_listexpected_typeexpected_lenwarn_s        r}   _check_warningsz TestKSTwoSamples._check_warnings  s5     	S^\3GH 	5EENNm34	5r   c                   |j                  |      |j                  |      }}t        ||d|      }t        j                  ||||      \  }	}
|j                  ||      }|j                  ||      }t	        |	|       t	        |
|d       y )NTforce_floatingrt   r  rM   r-  r&  )ri   r.   rk   r#  r4   )rs   r  r  rm  r2  r&  ri  rt   rN   res_statistic
res_pvalues              r}   r3  zTestKSTwoSamples._testOne  s    BBBr2drB$)NN2r;T$R!z

=
>ZZ
%Z8
}5
 	
JU;r   c                 0   | j                  dgdgddd|       | j                  dgdgddd|       | j                  dgdgdd	d|       | j                  dgdgddd|       | j                  dgdgdd	d|       | j                  dgdgddd|       y )
Nr   r   rd  r   r   rh  rA   rf  r   )r3  rk  s     r}   	testSmallzTestKSTwoSamples.testSmall  s    qcA3UCB?qcA3	5#"=qcA3sr:qcA3UCB?qcA3	5#"=qcA3sr:r   c                 x   |j                  ddg      }|dz   }|dz
  }|j                  g d      }| j                  ||ddd|       | j                  ||ddd	|       | j                  ||d
dd	|       | j                  ||ddd|       | j                  ||ddd|       | j                  ||d
dd|       y )Nr   r   r  rz  rd  r5  r   rh  r  rf  r  r  r  r   ri   r3  rs   rt   rq  data1pdata1mr  s         r}   testTwoVsThreezTestKSTwoSamples.testTwoVsThree  s    

C:&

?+fe['32FfeYDfeVWcbAfe['32FfeYDfeVQ;r   c                 x   |j                  ddg      }|dz   }|dz
  }|j                  g d      }| j                  ||ddd|       | j                  ||d	dd
|       | j                  ||ddd|       | j                  ||ddd|       | j                  ||d	dd|       | j                  ||ddd|       y )Nr   r   r  rk  rd  rA   g?r   rh  g?rf  r  皙?rY  r  r  r   ra  rb  s         r}   testTwoVsFourzTestKSTwoSamples.testTwoVsFour  s    

C:&

/0fe['7rJfeYBGfeVWg"Efe['6bIfeYBGfeVQ;r   c                 ^   |j                  ddd      }|dz   dz   }|dz   dz
  }| j                  ||ddd|       | j                  ||d	dd
|       | j                  ||ddd|       | j                  ||ddd|       | j                  ||d	dd|       | j                  ||ddd|       y )Nr   r  r8   r  rd  rR  gz?r   rh  gz;.B?rf  r   r   g{Gz?gn2IU?r  r3  )rs   rt   x100	x100_2_p1	x100_2_m1s        r}   test100_100zTestKSTwoSamples.test100_100  s    {{1c3'1HsN	1HsN	dI{I?PUWXdIy)=OTVWdIvq#"=dI{IsrJdIy)=NSUVdIvq#"=r   c                    |j                  ddd      }|j                  ddd      }|dz   dz   }|dz   dz
  }| j                  ||ddd|	       | j                  ||d
dd|	       | j                  ||ddd|	       | j                  ||ddd|	       | j                  ||d
dd|	       | j                  ||ddd|	       y )Nr   r  r  r  r  rd  g?g@߿?r   rh  g}n?rf  r   g:[?g]O);?gѫ);?r   r   rj  )rs   rt   rk  x110
x110_20_p1
x110_20_m1s         r}   test100_110zTestKSTwoSamples.test100_110(  s    {{1c3'{{1c3'BY_
BY_
dJ"$8R 	 	AdJ	"$8R 	 	AdJr 	 	#dJ"$8R 	 	AdJ	"$8R 	 	AdJ32 	 	'r   c                    |j                  dgdz  dgdz  z   dgdz  z   dgdz  z         }|dz   }|j                  dgdz  dgdz  z   dgdz  z   dgdz  z         }|j                  dgdz  dgdz  z   dgdz  z   dgdz  z         }| j                  ||d	d
d|       | j                  ||dd
d|       | j                  ||ddd|       | j                  ||d	dd|       | j                  ||ddd|       | j                  ||ddd|       y )Nr8   r9   r:   r;   r<   r   r^   r=   rd  g      ?g^dH?r   rh  gQl6y?rf  r   r   gVdEVdE?g(f^?g!?gii?g+ ϖ?ra  )rs   rt   x2233x3344x2356x3467s         r}   testRepeatedValuesz#TestKSTwoSamples.testRepeatedValues;  sB   

A37aS1W,sQw6!q@A	

A37aS1W,sRx71#'AB

A38qcAg-b8A37BCeUK9KPRSeUIv7JrReUFFCB?eUK>PUWXeUI{<NSUVeUFJ8JrRr   c                    |j                  g d      }| j                  ||dz   ddd|       | j                  ||dz   ddd|       | j                  ||dz   d	d
d|       | j                  ||dz   ddd|       | j                  ||dz   ddd|       | j                  ||dz   d	d
d|       | j                  ||dz
  ddd|       | j                  ||dz
  dd
d|       | j                  ||dz
  d	dd|       y )Nrz  r   rd  r5  r   r   rh  rY  rf  r   rA   ra  )rs   rt   r  s      r}   testEqualSizeszTestKSTwoSamples.testEqualSizesG  s   

?+eU1Wk5#"EeU1WiDeU1WfeRB?eU3YUCBGeU3Y	5$2FeU3YrbAeU3YUCBGeU3Y	5#"EeU3YtCr   c           
      Z   d\  }}d|z  |z  dz  dz  }|j                  dd|      |z
  }|j                  dd|      }| j                  ||dd|z  |z  dd|	       | j                  ||dd|z  |z  dd
|	       | j                  ||dd|z  |z  dd
|	       | j                  ||dd|z  |z  dd
|	       t        j                         5  d}t        j                  d|t
               | j                  ||dd|z  |z  dd|	       | j                  ||dd|z  |z  dd|	       d d d        t        j                  d      5 }t        j                  d       | j                  ||dd|z  |z  dd|	       | j                  |t
        d       d d d        y # 1 sw Y   sxY w# 1 sw Y   y xY w)N)r  iX  r   r8         i@r   rd  g     @@r   ri  rt   r!  rh  g2JE?rf  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.r   r  Trecordalwaysr   r  r3  r   r   r   r   r  rX  	rs   rt   n1n2deltarv   rw   r  r  s	            r}   testMiddlingBothz!TestKSTwoSamples.testMiddlingBothS  s    BBr	!AKKD"%-KKD"%aK"r)93!b 	 	*aK"r)93"r 	 	+aIv{R'79K"r 	 	+aFEBJO5G"r 	 	+$$& 	/AG##Hg~FMM!Q	6B;+;=O&2  /MM!Q
R9K&2  /	/ $$D1 	7Q!!(+MM!Q
R9K&2  /  NA6		7 	7	/ 	/	7 	7   	AFAF!F!F*c           
      Z   d\  }}d|z  |z  dz  dz  }|j                  dd|      |z
  }|j                  dd|      }| j                  ||dd|z  |z  dd|	       | j                  ||dd|z  |z  dd
|	       | j                  ||dd|z  |z  dd|	       | j                  ||dd|z  |z  dd|	       t        j                         5  d}t        j                  d|t
               | j                  ||dd|z  |z  dd|	       | j                  ||dd|z  |z  dd|	       d d d        t        j                  d      5 }t        j                  d       | j                  ||dd|z  |z  dd|	       | j                  |t
        d       d d d        y # 1 sw Y   sxY w# 1 sw Y   y xY w)N)r  L  r   r8   r}  r   rd  g     ȹ@r!  r~  r   rh  gZ?rf  g     @@g@J?r  r   r  Tr  r  r   r  r  s	            r}   testMediumBothzTestKSTwoSamples.testMediumBotho  s    BBr	!AKKD"%-KKD"%aK"r)93"r 	 	+aK"r)93!b 	 	*aIv{R'79K"r 	 	+aFFRK"$46H"r 	 	+ $$& 	/AG##Hg~FMM!Q	6B;+;=O&2  /MM!Qb(8:L&2  /	/ $$D1 	7Q!!(+MM!Qb(8:L&2  /  NA6		7 	7	/ 	/	7 	7r  c                 "   d\  }}|dz  }d|z  |z  dz  dz  }|j                  dd|      |z
  }|j                  dd|      }| j                  ||dd	|z  d
|       | j                  ||dd|z  d|       | j                  ||dd	|z  d|       y )N)'  r  rX  r   r8   r}  r         Y@rd  g    `@g      <r   rh  g     @g򼉷?rf  gimb:rj  )rs   rt   r  r  lcmr  rv   rw   s           r}   	testLargezTestKSTwoSamples.testLarge  s    BgBr	!AKKD"%-KKD"%aK38NSUVaIus{4GBOaFGcM3IbQr   c           	      $   t         j                  j                  d      }|j                  d      j	                         }|j                  dd      j	                         }| j                  ||ddd	d
|       | j                  ||ddd	d|       y )N@ i  r  i  rB   r  r  rd  gC?      <r!  r~  r  r   r  r  r  r   r3  rs   rt   r  rv   rw   s        r}   test_gh11184zTestKSTwoSamples.test_gh11184  s    ii##F+JJDJ!((*JJDJ,335aK)<>T"r 	 	+aK)<>T"r 	 	+r   c           	         t         j                  j                  d      }|j                  d      j	                         }|j                  dd      j	                         }| j                  ||ddd	d
|       | j                  ||dddd|       | j                  ||dddd
|       | j                  ||dddd
|       y )Nr  r  r  i'  rB   r  rd  g 	_r!?gAD5r!  r~  r  r  rh  gלN#y7rf  gvqw?r  r  s        r}   test_gh11184_biggerz$TestKSTwoSamples.test_gh11184_bigger  s     ii##F+JJEJ"))+JJEJ-446aK)<>T"r 	 	+aK)<>T"r 	 	+aI':<R"r 	 	+aF$79O"r 	 	+r   c                    t         j                  j                  d      }t        ddd      D ]  }|j	                  |j                  |            }|j	                  |j                  |dz   d            }t        j                  ||d	      j                  }t        j                  ||d
	      j                  }t        |d|z         t        |d|z          y )Nr  r  i.  r  r^   rA   r  r  r  r  r!  r9   )
r   r  r  r  ri   r  rk   r#  r  r6   )rs   rt   r  rv   vals1vals2r  r!  s           r}   test_gh12999zTestKSTwoSamples.test_gh12999  s    ii##F+tUD) 	-AJJszzz34EJJszzBSzABENN5%g>EEENN5%g>EEE5!e),5!e),	-r   c           
         d\  }}|dz  }d|z  |z  dz  dz  }|j                  dd|      |z
  }|j                  dd|      }| j                  ||dd|z  d	d
|       | j                  ||dd|z  dd|       | j                  ||dd|z  d	d|       | j                  ||dd|z  d|       | j                  ||dd|z  d|       t        j                         5  d}t        j                  d|t
               | j                  ||dd|z  dd|       | j                  ||dd|z  dd|       d d d        y # 1 sw Y   y xY w)N)r  i*  rX  r   r8   r   r  rd  g     @gkHY?r!  r~  gLɔ.?r  r   rh  g.LbG2?r   rf  r   gr?֎?r  r   )r  r3  r   r   r   r   )	rs   rt   r  r  r  r  rv   rw   r  s	            r}   testLargeBothzTestKSTwoSamples.testLargeBoth  s    BgBr	!AKK3#e+KK3#aK6H"r 	 	+aK6H"r 	 	+aK6H!b 	 	*aIus{4F2NaFD3J0BrJ$$& 	/AG##Hg~FMM!Q	53;8J&2  /MM!Qs
4F&2  /	/ 	/ 	/s   AD88Ec                     d}t        j                  |j                  ddg      |j                  dg            }t        |||       y )Nr?  r   r8   r9   r   )rk   r#  ri   r   )rs   rt   r"  r   s       r}   testNamedAttributesz$TestKSTwoSamples.testNamedAttributes  s:    ,
nnRZZA/QCAC3r   Tr  c           	          ddl m}m}  |dddd        |dddd       t        j                  d      5  t        t        |dd	dd       t        t        |d
ddd       d d d        y # 1 sw Y   y xY w)Nr   )_count_paths_outside_method!_compute_outer_prob_inside_methodr   r  i  r   r  r  iK  r  )scipy.stats._stats_pyr  r  r   r  r   FloatingPointError)rs   r  r  s      r}   test_some_code_pathsz%TestKSTwoSamples.test_some_code_paths  st    	

 	*!Q15#D!Q5[[) 	,,.Ia,,.Ia,	, 	, 	,s   )A''A0r  r   c                    t        t        t        |      5  t        j                  |j                  |d         |j                  |d               }t        |j                  |j                  t        j                               t        |j                  |j                  t        j                               d d d        y # 1 sw Y   y xY w)Nr?  r   r   )r$   r   r   rk   r#  ri   r5   r!  r   rr   r  )rs   r  rt   r   s       r}   test_argument_checkingz'TestKSTwoSamples.test_argument_checking  s     +3HRP 	<..DG!4bjja6IJCCMM2::bff+=>CJJ

266(:;	< 	< 	<s   B!CC
c                 b   t         j                  j                  d      }d}|j                  t        j
                  j                  ||      j                               }|dz   }t	        j                  ||dd       t	        j                  ||dd       t	        j                  ||d	d       y
)zEnsure gh-12218 is fixed.l   9B i    r  r  r   rh  r!  r  rf  rd  N)	r   r  r  ri   rk   r  r  r   r#  )rs   rt   r  r  rvs1rvs2s         r}   test_gh12218zTestKSTwoSamples.test_gh12218  s    
 ii##J/zz%--++#+FMMOPaxtTywGtTvGDtT{Ir   rN   r  c                    |t        |      nt        ||      }t        j                  j	                  d      }|j                  |j                  d      dz   |      }|j                  |j                  d      |      }d}t        t        ||	      5  t        j                  ||d
      }t        |j                  |j                  d|      d       d d d        y # 1 sw Y   y xY w)Ni{fr+  iq  r  rA   rM   iq  z(ks_2samp: Exact calculation unsuccessfulr?  rf  rl  r   r-  r&  )r(   rH  r   r  r  ri   r$   r   rk   r#  r4   r  )rs   rN   rt   r  rq  r  r  r   s           r}   test_warnings_gh_14019z'TestKSTwoSamples.test_warnings_gh_14019  s    (- $72u;M ii###2

3::3:/#5U
C

3::3:/u
=<w2> 	Q..6BCCJJ

2U
(C%P	Q 	Q 	Qs   AC""C+rC  rD  ))rh  皙@r  r   )rf  ffffff@r   rd   )rd  r  r  r   )rd  r  r   rd   c                 |   |j                  d|j                        }t        |      }t        j                  |      d   j                  |      }t        j                  |||      }	t        |	j                  |j                  d|j                        d       |	j                  |k(  sJ |	j                  |k(  sJ y )Nr   rM   r<   rl  r  r%  r  )r   r   r1   ro   rp   rq   rk   r#  r4   r!  ri   r  r  )
rs   rC  rm  rH  rI  rJ  rt   rv   rw   r   s
             r}   rK  z#TestKSTwoSamples.test_location_sign  s     IIcI,AJFF1IaLU#nnQ{;rzz#RZZz'HuU%%555!!X---r   N)r   )#r   r   r   r  rX  r3  r_  re  rh  rn  rs  ry  r{  r   r   r  r  r  r  r  r1  r  r  r  r  r   r  r   r  r  r  rk   r  r#  rK  r   r   r}   rQ  rQ    s   F5 <;
<<	>'&
S
D [[7 76 [[7 78	R+ [[+ + [[	- 	- [[/ /.4 [[d#, $ ,  [[VrB4jB4*r2h%GH< I< [[
J 
J [[W&BCQ DQ [[Xenn'EF[[I;<

.< G
.r   rQ  z)ignore:divide by zero:RuntimeWarning:daskz(ignore:invalid value:RuntimeWarning:daskc                      e Zd Zd Zd Zd Z edd      d        Zd Z edd	
      d        Z	 edd      d        Z
d Z edd      ej                  j                  d ej                   d      df ej                   d      dfg      d               Zd Z edd      ej                  j                  dg d      d               Zy)TestTTestRelc           	         |j                  d|j                        }|j                  d|j                        }|j                  ddd|j                        }|j                  ddd|j                        }|j                  |j                  ddd|j                        |j                  ddd|j                        g      }|j                  |j                  ddd|j                        |j                  ddd|j                        g      }t	        j
                  ||d	      \  }}	t        ||       t        |	|       t	        j
                  |j                  |j                  d	      \  }}	t        ||j                  || g             t        |	|j                  ||g             t	        j
                  ||d	      \  }}	t        ||j                  || g             t        |	|j                  ||g             y )
Nu?rM   ȵI?r   r  r  KX@r   rX   )ri   r   r  r  rk   	ttest_relr4   r   )
rs   rt   trr  r  r  rvs1_2Drvs2_2DrK  rC  s
             r}   test_ttest_rel_xpzTestTTestRel.test_ttest_rel_xp&  s    ZZ+2::Z>ZZ+2::Z>{{1c3bjj{9{{4BJJ{?((Ac3bjj9D&#RZZ@
 ((D&#RZZ@AsCrzz:
 tT2122wyy'))!<1288R"I./288RH-.wa81288R"I./288RH-.r   c           	      L	   |j                   }|j                  d|      }|j                  d|      }|j                  || g      |j                  ||g      f}|j                  ddd|      }|j                  ddd|      }|j                  |j                  ddd|      |j                  ddd|      g      }|j                  |j                  ddd|      |j                  ddd|      g      }	t	        j
                  ||d	      \  }
}t        |
|       t        ||       t	        j
                  |j                  |	j                  d	      \  }
}t        |
|d          t        ||d          t	        j
                  ||	d	      \  }
}t        |
|d          t        ||d          t        j                         5  t        j                  d
d
      5  t        j                  d
dt               t	        j
                  |j                  d      |j                  d            \  }
}d d d        d d d        |j                  |
      sJ |j                  |      sJ d}t	        j
                  ||d	      }t        |||       |j                  |||g      }|j                  |	|	|	g      }t	        j
                  ||d	      \  }
}t        |
|j                  |d   fdz               t        ||j                  |d   fdz               t	        j
                  |j!                  |dd      |j!                  |dd      d	      \  }
}t        |
|j                  |d   fdz               t        ||j                  |d   fdz               d}t#        j$                  t&        |      5  t	        j
                  ||d       d d d        t	        j
                  ||dd      \  }
}t        ||j                  d|dz  z
               t        |
|j                  |             t	        j
                  ||dd      \  }
}t        ||j                  |dz               t        |
|j                  |             y # 1 sw Y   TxY w# 1 sw Y   YxY w# 1 sw Y   xY w)Nr  rM   r  r   r  r  r  r   rX   r   r<  r>  r   r   r?  r   rd   r9   r8   rV  r   r*  rl  rf  r  rh  )r   ri   r  r  rk   r  r4   r   r   r   r   r  r   r   r:  r   r  r   r   r   )rs   rt   rN   r  r  tprr  r  r  r  rK  rC  r"  r   rvs1_3Drvs2_3Dr  s                    r}   test_ttest_relzTestTTestRel.test_ttest_relK  s   

 ZZ+5Z9ZZ+5Z9hhRCy!288RH#55{{1c3e{4{{4E{:((BKK35KAKKfcKGI J((BKKfcKGKK35KAC D tT2122oogii;!3q6"3q6"oogwQ7!3q6"3q6" $$& 	CHX>	C##=~O??2::b>2::b>BDAq		C 	C
 xx{{xx{{ -
oodDq1C3 ((GWg67((GWg67wb91288SVIaK01288SVIaK01r{{7Aq9!{{7Aq9$%'1 	288SVIaK01288SVIaK01 M]]:W5 	=OOD$G<	= tTvF12::a"Q$h/02::b>*tTyI12::bd+,2::b>*K	C 	C 	C 	C8	= 	=s1   RAR .R1R R
	RRR#c                    t         j                  j                  d      }t        j                  j                  ddd|      }t         j                  |d<   t        j                  j                  ddd|      t        j                  j                  dd|      z   }t         j                  |d<   |j                  |j                               |j                  |j                               }}t        j                  ||      }t        |j                  |j                  |j                               t        |j                  |j                  |j                               y )	NNa r;   r^     rP  r  r  r  r  r  )r   r  r  rk   r  r  rr   ri   r   r  r5   r!  r  )rs   rt   r  rv   rw   r   s         r}   test_nan_policy_propagatez&TestTTestRel.test_nan_policy_propagate  s    ii##H-JJNNq3NG#ZZ^^#C^HZZ^^#Cc^BC#zz!((*%rzz!((*'=1ooa#rzz"&&'9:

BJJrvv$67r   Tz lazy->limited nan_policy supportr   c                    t         j                  j                  d      }t        j                  j                  ddd|      }t         j                  |d<   t        j                  j                  ddd|      t        j                  j                  dd|      z   }t         j                  |d<   |j                  |j                               |j                  |j                               }}t        j                  ||d	
      }t        |j                  |j                  d             t        |j                  |j                  d             d}t        j                  t        |      5  t        j                  ||d
       d d d        d}t        j                  t        |      5  t        j                  ||d
       d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)Nr  r;   r^   r  rP  r  r  r  r   r   ghm#1?gry̧?r   r   r   rS  r   )r   r  r  rk   r  r  rr   ri   r   r  r4   r!  r  r   r   r   )rs   rt   r  rv   rw   r   r  s          r}   rK  zTestTTestRel.test_nan_policy  sb    ii##H-JJNNq3NG#ZZ^^#C^HZZ^^#Cc^BC#zz!((*%rzz!((*'=1ooav6rzz2E'FG

BJJ/A$BC1]]:W5 	6OOAqW5	6 .]]:W5 	7OOAqX6	7 	7		6 	6	7 	7s   ,G*GGG!c                 F   t        t        d|      5  t        j                  |j	                  g d      |j	                  g d            \  }}d d d        t        |j                        |j	                  |j                               t        |j	                  d             t        j                  d      5  t        j                  |j	                  g d      |j	                  g d            }d d d        t        j                  |j	                  |j                               t        |j                  |j	                  |j                               |j	                  dt        j                  gd	dgg      }t        j                  ||j                  d
            }t        |j                  |j	                  dt        j                  g             t        |j                  |j	                  dt        j                  g             |j                  d      }d}t        j                   t"        |      5  t        j                  |j%                  |d      |j%                  |d             d d d        y # 1 sw Y   0xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r?  r  r[  r   r   r  r   r0  r  r   r   r  zXArray shapes are incompatible for broadcasting.|operands could not be broadcast togetherr   )r>   r9   r8   r9   r:   )r$   r   rk   r  ri   r5   absr  r   r  r!  rr   r  r   r   r   r   r   rm   )rs   rt   rK  rC  r   ananrv   r  s           r}   test_edge_caseszTestTTestRel.test_edge_cases  s   /HRP 	Q??2::i#8"**Y:OPDAq	Q 	q	2::bff#562::c?+[[* 	P//"**Y"7I9NOC	Przz"&&'9:

BJJrvv$67zzB<#r34oodBHHV$45rzz1bff+'>?

BJJ266{$;< IIbM>]]:W5 	MOOBJJq&12::a3KL	M 	M)	Q 	Q	P 	P	M 	Ms#   <I=<9J
=7J=J
JJ z"multidimensional 'omit' is np-onlyr  c           	         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 d ddf<   t         j                  |d d ddf<   t         j                  d	        }t        j                  t        t        
      5  t        j                  ||dd      \  }}d d d        t        j                  t        t        
      5  t        j                  ||ddd      \  }}d d d        t        d       t        j                  d      5  t         ||d      d       d d d        t        j                  t        t        
      5  t        j                  ||ddd      \  }}d d d        t        ||d       t        j                  d      5  t         ||d      d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   y xY w)Nr   r  r  r  r  rt  r  r  c                 D    | dk  r|dk(  s
| dkD  r
|dk(  r|dz  S d|dz  z
  S Nr   rf  rh  r8   r   r   rK  rC  alts      r}   	converterzETestTTestRel.test_multidimensional_nan_policy_omit.<locals>.converter  s3    A#-QUsi7G1uA;r   r   r   r   r   rf  r  r-  r  r   r  rh  )r   r  r  rr   	vectorizer   r_  r   r   rk   r  r   r  )	rs   rt   r  r  r  r  r  rK  rC  s	            r}   %test_multidimensional_nan_policy_omitz2TestTTestRel.test_multidimensional_nan_policy_omit  s   ((BKK34KKfc:< =((BKKfc:KK346 7FF2b5FF2b5 
	 
	
 \\,4EF 	M__WgqVLFB	M \\,4EF 	J??7GQ.4&JDAq	J 	2E*[[* 	FAyR8uE	F \\,4EF 	M??7GQ.4)MDAq	M 	2E*[[* 	IAyR;%H	I 	I	M 	M	J 	J	F 	F	M 	M	I 	Is<   *H .H-8H96I I H*-H69III"lazy -> limited nan_policy supportc                    |j                  |j                  dddg      }|j                  g d      }t        j                  ||d      }t        j                  ||d      }t	        |j
                  |j
                          t	        |j                  |j                         t        j                  |dd  |dd        }t	        |j
                  |j
                         t	        |j                  |j                         t	        |j
                  |j                  d      d	
       t	        |j                  |j                  d      d	
       y )Nr   r   r   r   r   r   r   r   r   r   r  -C6?r&  grh|?)ri   rr   rk   r  r4   r!  r  )rs   rt   rv   rw   r$  r%  r3s          r}   test_ttest_rel_nan_2nd_argz'TestTTestRel.test_ttest_rel_nan_2nd_arg  s     JJS#./JJ+,__Qf5__Qf5r||m4		299- __QqrUAabE*bll3		299- 	bjjoDA		2::f#5DAr   c                    t        t        t        |      5  t        j                  |j                  g       |j                  g             }d d d        t        t        j                  j                        sJ t        |j                  |j                  |j                               t        |j                  |j                  |j                               y # 1 sw Y   xY wr}  )r$   r   r   rk   r  ri   r  	_stats_pyTtestResultr5   r!  rr   r  r  s      r}   #test_ttest_rel_empty_1d_returns_nanz0TestTTestRel.test_ttest_rel_empty_1d_returns_nan  s     +3HRP 	E__RZZ^RZZ^DF	E&%//"="=>>>(("**RVV*<=rzz"&&'9:		E 	Es   5CC"
dask.arrayzdask fails this oner'  b, expected_shaper   r;   r   r  r   r   r   r9   r   c                    |j                  d      }|j                  ||j                        }t        j                         5  t        j
                  dt        t               t        j                  ||d      }d d d        t        t        j                  j                        sJ |j                  ||j                        }t        |j                   |       t        |j"                  |       y # 1 sw Y   yxY wN)r9   r   r   rM   r   rd   rX   r\  )r  ri   rN   r   r   r   r   r   rk   r  r  r  r  r   rr   r5   r!  r  )rs   r6  expected_shapert   r,  rr  expected_values          r}   test_ttest_rel_axis_size_zeroz*TestTTestRel.test_ttest_rel_axis_size_zero  s     HHYJJqJ($$& 	4##H.CEWX__Q3F	4 &%//"="=>>>BFFC((.9~6	4 	4   8C33C<c                 0   |j                  d      }|j                  d      }t        j                  ||d      }t        |t        j                  j
                        sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ y N)r   r>   r   r;   r>   r   r   rX   r;   r   )	r  rk   r  r  r  r  r!  r  r  )rs   rt   r,  r6  rr  s        r}    test_ttest_rel_nonaxis_size_zeroz-TestTTestRel.test_ttest_rel_nonaxis_size_zero  s~    
 HHYHHYAA.&%//"="=>>>%%///}}""f,,,r   rS  z*needs stdtrit; lazy->can't use root finderrm  r  c                    t         j                  j                  d      }d}|j                  |j	                  |dd      j                               }|j                  |j	                  |dd      j                               }ddgdt         j                  gt         j                   d	gd
}t        j                  |||      }|j                  d      }	t        |	j                  |j                  ||   d                t        |	j                  |j                  ||   d                t        |j                  |j                  |dz
               y )Nl   C67l:  r^   rB   r8   r\  gZ?Ygi{a?g8 gC?r]  rl  r_  r`  r   r   )r   r  r  ri   r  r   r  rk   r  rY  r4   r\  r]  rb  )
rs   rm  rt   r  rZ  rv   rw   r   r   rs  s
             r}   test_ttest_rel_ci_1dz!TestTTestRel.test_ttest_rel_ci_1d*  s    ii##$78JJszzqcz;BBDEJJszzqaqz9@@BC 01BC-rvv6!457 ooa<$$d$;

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

1Q30r   N)r   r   r   r  r  r  r   rK  r  r  r  r  r   r   r   r   r  r  r  r  r   r   r}   r  r  "  s   #/J?+B8 .PQ7 R7,M2 d+OPI QI@ .RSB TB,; l+@A[[0'rxx	2F;'rxx	2F;=>7> B7
- k*VW[[],LM1 N X1r   r  ztest_fun, argsr^   c                      | fd|D         }d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nc              3   @   K   | ]  }j                  |        y wr  )ri   ).0argrt   s     r}   	<genexpr>z#test_ttest_ci_iv.<locals>.<genexpr>I  s     5RZZ_5s   re  r   r^   r`  )r   r   r   rY  )test_funrs  rt   r   r  s     `  r}   test_ttest_ci_ivr  D  sN    
 55
6CDG	z	1 545 5 5s   A		Ar   c                V    t        | |      ndfd	} || |       |||      z   S )Nc                     j                  |       } j                  | |      }j                  | |d      }| j                  |   }|||fS )NrX   r   r!  )ri   rn   r   r  )rv   rY   mur   nobsrt   s        r}   _statsz_desc_stats.<locals>._statsR  sO    JJqMWWQTW"ffQTaf0wwt}3}r   r  )r#   )r  r  rY   rt   r  s      ` r}   _desc_statsr  O  s5    $&JR	 BB "dfR...r   c                   ^    e Zd Zd Z edd      d        Z edd      d        Zd Zd Zy	)
TestTTestIndc                    |j                  d      }|j                  d      }|j                  || g      }|j                  ||g      }|j                  ddd      }|j                  ddd      }|j                  ||g      }|j                  ||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        t        |j                  |	j                        }t        j                  t        |
      5  t        j                  |ddi d d d        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                        }|j                  |j!                  |j"                  d         dk(  ||      }t        j                  ||d      }
t%        |
j                  |       t%        |
j                  |       t        j                  t        ||       }
t%        |
j                  |       t%        |
j                  |       y # 1 sw Y   xY w# 1 sw Y   xY w)N	ru?g8Mѱ?r;   i   r  r   r   rX   rV  r   r*  rl  rm  rf  r8   rh  r  )ri   r  r  rk   	ttest_indr4   ttest_ind_from_statsr  r   r!  r  r   r   r   rr   r  r   r  r5   )rs   rt   r  r  tr_2Dpr_2Dr  r  r  r  r   rK  rC  r  rs  r  r  r  s                     r}   test_ttest_indzTestTTestInd.test_ttest_ind^  s$   ZZ*+ZZ+,"rc#"b"{{1c3'{{1c3'((D$<(((D$<(oodDq1122((+dD*AB122oogii;u-

E*((+gii*KLu-

E*oogwQ7u-

E*((+gwQ*OPu-

E* M]]:W5 	?OOD$g>	? 799gii0]]:W5 	E&&DGD	E tTv>111:&2tTyA12a4 2 wyy'))!P799gii0))4DVD7T[[1wyy'))!P799gii0))4DVD7T[[1 jj xx		$**Q-0A5sDAoodDq1s+

C(((+dD*ABs+

C(M	? 	?	E 	Es   #U*?U7*U47VTr  r   c                    t         j                  j                  d      }t        j                  j                  ddd|      }t        j                  j                  ddd|      }t         j                  |d<   |j                  |j                               |j                  |j                               }}t        j                  ||      }t        |j                  |j                  |j                               t        |j                  |j                  |j                               t        t        d|      5  t        j                  |j                  g d	      |j                  g d
            \  }}d d d        t        |j                  |j                                t        |j                  d             |j                  g d	      }t        j                  ||      }t        |j                  |j                  |j                               t        |j                  |j                  |j                               |j                  dt         j                  gddgg      }t        j                  ||j!                  d            }t        |j                  |j                  d|j                  g             t        |j                  |j                  d|j                  g             y # 1 sw Y   xY w)NiURr;   r^   r  rP  r  r  r?  r  r[  r   r   rd   r  r   )r   r  r  rk   r  r  rr   ri   r   r	  r5   r!  r  r$   r   r  r   )	rs   rt   r  rv   rw   r   rK  rC  r  s	            r}   test_special_caseszTestTTestInd.test_special_cases  s    ii##H-JJNNq3NGJJNNq3NG#zz!((*%rzz!((*'=1ooa#rzz"&&'9:

BJJrvv$67 /HRP 	Q??2::i#8"**Y:OPDAq	Q2::rvvg./2::b>*JJy!ooa#rzz"&&'9:

BJJrvv$67 zzArvv;Q01oodBHHV$45rzz1bff+'>?

BJJ266{$;<	Q 	Qs   =<K66L c                    t         j                  j                  d      }t        j                  j                  ddd|      }t        j                  j                  ddd|      }t         j                  |d<   |j                  |j                               |j                  |j                               }}t        j                  ||d      }t        j                  ||j                  |          |d      }t        |j                  |j                         t        |j                  |j                         d	}t        j                  t         |
      5  t        j                  ||d       d d d        d}t        j                  t         |
      5  t        j                  ||d       d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)Ni#r;   r^   r  rP  r  r   r   r   r   r   rS  r   )r   r  r  rk   r  r  rr   ri   r   r	  r:  r4   r!  r  r   r   r   )rs   rt   r  rv   rw   r   r   r  s           r}   test_ttest_ind_nan_policyz&TestTTestInd.test_ttest_ind_nan_policy  sK   ii##H-JJNNq3NGJJNNq3NG#zz!((*%rzz!((*'=1ooav6ooa!oqVDs}}5

CJJ/1]]:W5 	6OOAqW5	6 .]]:W5 	7OOAqX6	7 	7		6 	6	7 	7s   F7G7G Gc                    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 d d d ddf<   t         j                  |d d d d ddf<   d	 }t        j
                  |      }t        j                  ||d
d      \  }	}
t        j                  ||d
dd      \  }}t        ||	d       t        | ||	|
d      d       t        j                  ||d
dd      \  }}t        ||	d       t        | ||	|
d      d       y )Nr;   r  r  r   r^   r  r<   r`   c                 D    | dk  r|dk(  s
| dkD  r
|dk(  r|dz  S d|dz  z
  S r  r   r  s      r}   convertz5TestTTestInd.test_3D_nan_policy_omit.<locals>.convert  s3    A#-QUsi7G1uA;r   r   r   rX  rf  )rY   r   rm  r-  r  rh  )	r   r  r   r  rr   r  rk   r	  r   )rs   r  r  r  r  r  r  r  r  r  r  rK  rC  s                r}   test_3D_nan_policy_omitz$TestTTestInd.test_3D_nan_policy_omit  sM   {{1c3'{{1c3'((D$<(((D$<())Wgw78))Wgw78!vv1be ff1ad
	 LL)	'fMBwaF+1312E*9RV45AwaF+4612E*9RY7eDr   c                 p   t        j                         5  t        j                  d      5  t        j                  ddt
               t        j                  dd      \  }}d d d        d d d        t        j                        sJ t        j                        sJ y # 1 sw Y   @xY w# 1 sw Y   DxY w)Nr   r  r>  r   r   )	r   r   r   r  r   r   rk   r	  r:  )rs   rK  rC  s      r}   test_ttest_ind_scalarz"TestTTestInd.test_ttest_ind_scalar  s    $$& 	+H(E 	+##=~O??2r*DAq	+ 	+ xx{{xx{{	+ 	+ 	+ 	+s"   B,5B !B, B)	%B,,B5N)	r   r   r   r  r   r  r  r  r  r   r   r}   r  r  \  sN    Q)f .RS= T=: .RS7 T7(E>r   r  r  z&Dask doesn't support ResamplingMethodsr'  z&ignore:Arguments...:DeprecationWarningc                      e Zd ZdZej
                  j                  d      Z ej                   ej                  dez  dz        ej                  dez  dz        f      Z
 ej                   ej                  edz        dz   ej                  edz        f      Z ej                  d      Z ej                  d      dz   ZddgZddgZej"                  j%                  d	dd
e      j'                  dd	      j(                  Zej"                  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   j5                         edddf   j5                         ddied   fe
edddefe
eej
                  j7                  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
                  j                  d      ddefg
Zej<                  j?                  dg d      ej<                  j?                  dddg      d               Z ej<                  j?                  dg d      ej<                  j?                  dddg      d                Z!d! Z"y)"TestTTestIndResamplingr  i
r9   r:   r  r^   r   r8   r;   r  rP  r>   g'^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rY   r   N)r  rY   	equal_varTrd   )rY   r  r5  rm  r  r  )r`   )r8   r`   c                 j   t         j                  j                  d      }|j                  |j                  |      j	                               }|j                  |j                  d      j	                               }t        d      }t         j                  j                  d      }t        j                  dd|i|}t        j                  ||d||	      }	d
 }
t         j                  j                  d      }t        j                  ||f|
fd||d|}t        |	j                  |j                         t        |	j                  |j                         t        j                  ||d|      }t        |	j                  |j                         t        |	j                  |j                  d       y )N   Nvf_aB r  ra     r*     N\Sju	 r  rd   rY   rm  r  c                 F    t        j                  | ||      j                  S NrX   )rk   r	  r!  )rv   rw   rY   s      r}   r!  zATestTTestIndResampling.test_permutation_method.<locals>.statisticG  s    %//!QT*J*T*T#Tr   )rY   r  rm  r  rR  r  r   )r   r  r  ri   r   r+  rk   r  r	  permutation_testr4   r!  r  )rs   rm  r  rt   r  rv   rw   rt  r  r   r!  r   s               r}   test_permutation_methodz.TestTTestIndResampling.test_permutation_method8  sV    ii##$45JJszzuz-4467JJszzrz*1134#& ii##O4((;S;F;ooaVT 	Uii##O4$$aVY HRS1<H@FH 	s}}5

CJJ/ ooaEs}}5

CJJT:r   c                    t         j                  j                  d      }j                  |j                  |      j	                               }j                  |j                  d      j	                               }t        d      }fd}t         j                  j                  d      }|j                  |j                  g}	t        j                  ||ff|	|d|d	|}
t         j                  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       y )Nr  r  ra   r  r  c                     j                  |       j                  |      }} t        j                  | ||      j                  S r"  )ri   rk   r	  r!  )rv   rw   rY   rt   s      r}   r!  zATestTTestIndResampling.test_monte_carlo_method.<locals>.statistic^  s5    ::a="**Q-qA??1ad3===r   r  rd   )r  r!  rY   rm  r  r   r  r  r  r  r   )r   r  r  ri   r   r+  rC  rk   monte_carlo_testr  r	  r4   r!  r  )rs   rm  r  rt   r  rv   rw   rt  r!  r  r   r  r   s      `         r}   test_monte_carlo_methodz.TestTTestIndResampling.test_monte_carlo_methodT  s    ii##$45JJszzuz-4467JJszzrz*1134#&	> ii##O4""C$7$78$$aV H	PR1<H@FH ii##O4""C$7$78'':C:6:ooaVTs}}5

CJJ/ ''FOFvFooaVTs}}5

CJJ/ ooaEs}}5

CJJT:r   c                     d}t        j                  t        |      5  |j                  g d      |j                  g d      }}t	        j
                  ||d       d d d        y # 1 sw Y   y xY w)NzC`method` must be an instance of `PermutationMethod`, an instance...r   r~  r  	migratoryr  )r   r   r   ri   rk   r	  )rs   rt   r  rv   rw   s        r}    test_resampling_input_validationz7TestTTestIndResampling.test_resampling_input_validationz  sU    W]]:W5 	6::i("**Y*?qAOOAq5	6 	6 	6s   ?A&&A/)#r   r   r   Nr   r  r  r  r  r   r,  r6  r  b2r7  b3rk   r  r  rm   r   r  r  p_dp_d_genp_d_bigr   r  paramsr   r   r   r$  r(  r+  r   r   r}   r  r    s    	A ))

	
*C		9299QqS!V$cjj1a&89:A		9299QT?S(#**QT*:;<A 
2B	2	B QB
QB ::>>ar"  66=gc1oaa 	::>>ar#>FD<
 C~&G+G 
A{C 	
accFA;$	
1a4!AqD'FD>3q62	
1a4	1QT7>>+fd^SVD	
A1-s3	
A		 5 5a 8!DcJ	R+t$f-	tb!4g>	RS	
A		 5 5a 8!DgN
F [[],LM[[Wug&67; 8 N;4 [[],LM[[Wug&67"; 8 N";H6r   r  c            	       ^   e Zd Zej                  j                  dddii gddg      ej                  j                  dddgdd	g      d
               Zej                  j                  ej                  j                  dddii gddg      ej                  j                  dddgdd	g       edd       edd       edd      d                                           Z	ej                  j                  dddii gddg      ej                  j                  dddg      d               Z
y)TestTTestIndCommonkwdstrimr  basic)idsr  TFunequal_varc           	      \   t         j                  j                  d      }|j                  |j                  d      j	                               }|j                  |j                  d      j	                               }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                         y )	N   H-F r;   r:   r:   r=   r   r<   r:   r   r>   r8   r<   rY   re   )r8   r9   r   r   r  )
r   r  r  ri   r   rk   r	  r4   r!  r  )rs   r5  r  rt   r  r,  r6  r   r  r\  rO  r  r-  r  s                 r}   test_ttest_many_dims_fastz,TestTTestIndCommon.test_ttest_many_dims_fast  s    ii##J/JJszz"45<<>?JJszz/299;<ooa44t4 1aq!Q1a q!Q1}r27B7$7aAq!m4dnnE

1aAq=14;;?r   array_api_strictzindexing in test is too fancyr'  rS  r  ztoo slowc                    t         j                  j                  d      }|j                  d      j                         }|j                  d      j                         }t	        j
                  |j                  |      |j                  |      fddi|}t        j                  t        j                  |d      dd      }t        j                  t        j                  |d      dd      }	|j                  |j                               |j                  |	j                               }	}|j                  d d }
|j                  |
      }|j                  |
      }t        d	 |
D         D ]C  }||   }|	|   }t	        j
                  ||fddi|}|j                  ||<   |j                  ||<   E t        |j                  |       t        |j                  |       y )
Nr;  r<  r=  rY   re   )r   r   r   r   r8   r   rd   )r;   r   r:   r   r   r   c              3   2   K   | ]  }t        |        y wr  )r  )r  r  s     r}   r  z?TestTTestIndCommon.test_ttest_many_dims_full.<locals>.<genexpr>  s      9aq 9s   )r   r  r  r   rk   r	  ri   r  tiler  r   r   r!  r  r4   )rs   r5  r  rt   r  r,  r6  r   rv   rw   r  
statisticspvaluesindicesxiyir  s                    r}   test_ttest_many_dims_fullz,TestTTestIndCommon.test_ttest_many_dims_full  s    ii##J/JJ)*113JJ'..0oobjjmRZZ]LLtL KK#56B?KK#56B?zz!((*%rzz!((*'=1XXe_
((5/ 95 9: 	+G7B7B??2r;;d;D"&..Jw#{{GG	+ 	z2

G,r   rY   rd   r   c                    t         j                  j                  d      }|j                  dd      j	                  d      }|j                  dd      j	                  d      }t         j
                  |d   d   d<   t         j
                  |d   d   d	<   |j                  |j                               |j                  |j                               }}|j                  |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        d d d        |j                  j"                        }	t%        |	|       |j                  |j&                        }
t%        |
|       y # 1 sw Y   `xY w# 1 sw Y   dxY w)Nl   AoI;r^   )r;   r9   r^   r  r  r   r8   r9   r<   rX   r   r  z'invalid value encountered in less_equalr  rY   )r   r  r  r  r  rr   ri   r   r:  r$  r   r   r  r   r   rk   r	  r  r5   r!  )rs   r5  rY   rt   r  r,  r6  r  r   p_nansstatistic_nanss              r}   test_nans_on_axisz$TestTTestIndCommon.test_nans_on_axis  s    ii##$9:LL*L-44W=LL*L-44W=VV!Q
VV!Q
zz!((*%rzz!((*'=1 88BFF1q5tF45 $$& 	;H(E 	;##C^U##H.GX//!Q:T:T:C		; 	; #**%)#--01	; 	; 	; 	;s%   G$AG4GG	GG(N)r   r   r   r   r   r   r>  r1  r   rH  rL  r   r   r}   r4  r4    st    [[VvrlB%7"('!2  4[[[4-"-}!=  ?@?4@ [[[[VvrlB%7"('!2  4[[[4-"-}!=  ?(1PQk*IJl:6- 7 K R?4 -2 [[VvrlB%7"('!2  4[[Vb!W-2 .42r   r4  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
                  j                  de      ej
                  j                  dg d      d               Zd Zd Z	ej
                  j                  dd      d        Z
ej
                  j                  dg d      d         Zy!)"TestTTestTrimmedrz  r:  rF  g@g9(?ger  )      L@33333`@r`   33333^@(\P@N   fffffڇ@gBM)u?g]@)rP  rQ  r  rR  rS  g     S@rU  gyd?g	s5v@g{Gz?rE  rE  r:  r   ffffff?r   r  r  r  rW  rW  rG   g@r  rD   rA   r  g333333@r  rZ  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, trimrN   r  c                    ||nt        ||      }|j                  ||      |j                  ||      }}t        j                  |||d      \  }}	t	        ||j                  ||             t	        |	|j                  ||             y)a  
        Using PairedData's yuen.t.test method. Something to note is that there
        are at least 3 R packages that come with a trimmed t-test method, and
        comparisons were made between them. It was found that PairedData's
        method's results match this method, SAS, and one of the other R
        methods. A notable discrepancy was the DescTools implementation of the
        function, which only sometimes agreed with SAS, WRS2, PairedData and
        this implementation. For this reason, most comparisons in R are made
        against PairedData's method.

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

            Two-sample Yuen test, trim=0.2

        data:  x and y
        t = -0.68649512735573, df = 3.4104431643464, p-value = 0.5361949075313
        alternative hypothesis: true difference in trimmed means is not equal
        to 0
        95 percent confidence interval:
         -3.912777195645217  2.446110528978550
        sample estimates:
        trimmed mean of x trimmed mean of y
        2.000000000000000 2.73333333333333
        NrM   Fr6  r  )rH  ri   rk   r	  r4   )
rs   r,  r6  r  r  r6  rN   rt   r!  r  s
             r}   test_ttest_compare_rz%TestTTestTrimmed.test_ttest_compare_r  s    B GB,>zz!5z)2::au:+E1!OOAqtuM	6	2::b:#>?

2U
 ;<r   c                    g d}g d}|j                  |      |j                  |      }}t        j                  ||dd      \  }}t        ||j                  d      d       t        ||j                  d	      d       y )
N)r`   r\      r  r;  ,   r`   r\   r^  r  r;  r_  )rg   r  r\   r`   rt        rg   r  r\   r`   rt  r`  ra  g
ףp=
?Fr[  gRbv?r  r&  gOi?ri   rk   r	  r4   rs   rt   r,  r6  r!  r  s         r}   test_compare_SASz!TestTTestTrimmed.test_compare_SAS  sl     =Dzz!}bjjm1 "OOAqseL	6

8 44@	2::h#7dCr   c                     g d}g d}|j                  |      |j                  |      }}t        j                  ||d      \  }}t        ||j                  d             t        ||j                  d             y)a  
        The PairedData library only supports unequal variances. To compare
        samples with equal variances, the multicon library is used.
        > library(multicon)
        > a <- c(2.7, 2.7, 1.1, 3.0, 1.9, 3.0, 3.8, 3.8, 0.3, 1.9, 1.9)
        > b <- c(6.5, 5.4, 8.1, 3.5, 0.5, 3.8, 6.8, 4.9, 9.5, 6.2, 4.1)
        > dv = c(a,b)
        > iv = c(rep('a', length(a)), rep('b', length(b)))
        > yuenContrast(dv~ iv, EQVAR = TRUE)
        $Ms
           N                 M wgt
        a 11 2.442857142857143   1
        b 11 5.385714285714286  -1

        $test
                              stat df              crit                   p
        results -4.246116897032513 12 2.178812829667228 0.00113508833897713
        rV  rX  r  r6  gR?g^Nrb  rc  s         r}   test_equal_varzTestTTestTrimmed.test_equal_var"  sg    & DCzz!}bjjm1!OOAqr:	6

+> ?@	2::.@#ABr   z	alt,pr,tr))rh  gjΜ>5?rY  )rf  gn4aƂW?rY  c                     g d}g d}|j                  |      |j                  |      }}t        j                  ||dd|      \  }}t        ||j                  |             t        ||j                  |             y)z
        > library(PairedData)
        > a <- c(2.7,2.7,1.1,3.0,1.9,3.0,3.8,3.8,0.3,1.9,1.9)
        > b <- c(6.5,5.4,8.1,3.5,0.5,3.8,6.8,4.9,9.5,6.2,4.1)
        > options(digits=16)
        > yuen.t.test(a, b, alternative = 'greater')
        rV  rX  r  F)r6  r  rm  Nrb  )	rs   r  r  r  rt   r,  r6  r!  r  s	            r}   test_alternativesz"TestTTestTrimmed.test_alternatives=  sj     DCzz!}bjjm1!OOAqrU8;=	6

2/	2::b>2r   r6  )gɿrA   r   c                     d}t        t        |      5  t        j                  |j	                  ddg      |j	                  ddg      |       d d d        y # 1 sw Y   y xY w)Nz/Trimming percentage should be 0 <= `trim` < .5.r   r   r8   rf  )r   r   rk   r	  ri   )rs   r6  rt   r   s       r}   test_trim_bounds_errorz'TestTTestTrimmed.test_trim_bounds_errorQ  sT    A:U3 	OOOBJJ1v.

Aq60BN	O 	O 	Os   ;AA!N)r   r   r   r2  r   r   r   r\  rd  rg  ri  rk  r   r   r}   rN  rN    s    
(;=PRTU	2O	/	5	4o	/	6	@	@	,b	2
H
  "34Db	JKF$ [[16:[[W&BC#= D ;#=JD C6 [[[N3	3  [[V\2O 3Or   rN  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                  j                  d'g d(      ej                  j                  d)d*d+g      ej                  j                  d,d-d.g       ed/d01      d2                             Zy3)4TestTTestCI)r9   r8   r8   r;   )r  )gͿe13@gv7?gę"Ͽg8 {M(?r  rn  ro  gv7?gx_?r  g
/?gD .ɿ)r8   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   rp  rq  g?JJ?gF?)r   r   r   g{?gads2ѿ)r8   r   r   gs"%οr  gW"?)r   r   r   gW"?r   r   r   g:T'?)r8   r   r   g:пr\   g0:5?)r   r   r   g0:5?r[  g be?)r8   r   r   rm  r  r  FTr6  r   r  rS  rZ  r'  c                    |r|rt        j                  d       |r t        |      st        j                  d       t        j
                  j                  d      }|j                  |j                  d            }|j                  |j                  d            }t        j                  |||||      }ddd	d
}	| j                  |	|   t        |      t        t	        j                  |            f   }
|
\  }}}}}d}t        |j                  |j                  |      |       t        |j                  |j                  |      |       t        |j                   |j                  |      |       |s`|j#                  d      }t        |j$                  |j                  |      |       t        |j&                  |j                  |      |       y y )Nz3Discrepancy in `main`; needs further investigation.z*`trim` is only compatible with NumPy inputl   'Nk' r_   ra   )rm  r  r6  r   r   r8   r  r{  r  r  )r   xfailr&   r  r   r  r  ri   rk   r	  r   r  ceilr4   r!  rb  r  rY  r\  r]  )rs   rm  r  r6  rt   r  rv   rw   r   rb  r   r!  rb  r  r\  r]  r  rs  s                     r}   test_confidence_intervalz$TestTTestCI.test_confidence_interval  sg   
 LLNOKKDEii##$78JJszz"~&JJszz"~&ooa(1> &'a@ff\+.IBGGDM@RRS+.(	2vsDrzz)'<4H

2T:

BJJv$6TB((-BBFFBJJsO$?BGGRZZ%5DA r   N)r   r   r   r   r  r   r  rr   r   r   r   r   rv  r   r   r}   rm  rm  X  s   < 	|$ANAgJibffWlKAgJiM266JAgJLAgJibffWlKAgJiL"&&IAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ[[],LM[[[5$-8[[VaX.k*JKB L / 9 NBr   rm  c                   `   e Zd Z eej
                        d        Zej                  j                  d      ej                  j                  d      d               Z
d Zd Zej                  j                  d ej                  d      d	f ej                  d
      dfg      d        Zd Zd Zej                  j'                  dd      ej                  j                  d      ej                  j                  d      ej                  j)                  dd      d                             Zy)TestTTestIndMorec                    |j                  g d      }|j                  g d      }|j                  d      }|j                  d      }t        j                  ||d      \  }}t        ||       t        ||       t        j                  t        ||      ddi\  }}t        ||       t        ||       |j                  g d      }|j                  d	      }|j                  d
      }t        j                  ||d      \  }}t        ||       t        ||       t        j                  t        ||      ddi\  }}t        ||       t        ||       |j                  d      }|j                  d      }|j                  d      }|j                  d      }	|j                  || g      }
|j                  ||g      }|j                  ddd      }|j                  ddd      }|j                  ddd      }|j                  ||g      }|j                  ||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                  |       y )Nrz  rO  g9(?geFr  r  rk  gJ?g9ʿr  g@[?gωұ?ghG?r   r  r  r;   r  r   )rY   r  rX   )ri   rk   r	  r4   r
  r  r  r  r   r!  r  )rs   rt   r,  r6  r  r  rK  rC  	tr_uneq_n	pr_uneq_nr  r  rvs3r  r  r  r  r   rs  s                      r}   test_ttest_ind_with_uneq_varz-TestTTestIndMore.test_ttest_ind_with_uneq_var  s    JJ|$JJ'ZZ+,ZZ-.q!u5122));q!+<NN122JJ'(ZZ+,ZZ-.q!u5122));q!+<NN122 ZZ*+JJ23	ZZ+,JJ23	"rc#"b"{{1c2&{{1c3'{{1c3'((D$<(((D$<(tTUC122));tT+BTeT122tTUC19%9%));tT+BTeT19%9%oogiieLu-

E*799gii0(($@%@u-

E*oogwQ%Hu-

E*7G!4(($@%@u-

E*r   z0ignore:divide by zero encountered:RuntimeWarning/ignore:invalid value encountered:RuntimeWarningc                    |j                  d      }|j                  d      }t        t        d|      5  t	        j
                  ||d      \  }}d d d        t        |j                  |j                                t        |j                  d             t        j                  d      5  t	        j
                  ||d      \  }}t        ||j                  |j                               t        ||j                  |j                               |j                  d	|j                  gd
d	gg      }t	        j
                  ||j                  d      d      \  }}t        ||j                  dt        j                  g             t        ||j                  dt        j                  g             d d d        y # 1 sw Y   qxY w# 1 sw Y   y xY w)Nr9   r  r?  Frz  r   r   r  r   rd   r  r   )r   r  r$   r   rk   r	  r5   ri   r  r   r  rr   )rs   rt   rv   rw   rK  rC  r  s          r}   test_ttest_ind_zero_divisionz-TestTTestIndMore.test_ttest_ind_zero_division  sc    HHQKGGAJ/HRP 	:??1a59DAq	: 	2::rvvg./2::b>*[[X& 		9??1a59DAqArzz"&&12Arzz"&&12 ::266{RG45D??4&)9UKDAqArzz2rvv,78Arzz2rvv,78		9 		9	: 	:		9 		9s   G 0DG 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       y )Nr   r   r   r  r   r   r%  r&  r   )g8HgW@?)r   rr   rk   r	  r   r!  r  )rs   rv   rw   r$  r%  r  s         r}   test_ttest_ind_nan_2nd_argz+TestTTestIndMore.test_ttest_ind_nan_2nd_arg  s    VVS#s# __Qf5__Qf5r||m%@		29959 __Q!"&BU+ 	G"	$r   c                    t        t        t        |      5  t        j                  |j                  g       |j                  g             }d d d        t        t        j                  j                        sJ |j                  |j                        d   }t        |j                  |       t        |j                  |       y # 1 sw Y   zxY w)Nr?  r   )r$   r   r   rk   r	  ri   r  r  r  rr   r5   r!  r  r  s       r}   #test_ttest_ind_empty_1d_returns_nanz4TestTTestIndMore.test_ttest_ind_empty_1d_returns_nan)  s     +3HRP 	B//"**R."**R.AC	B#u::;;;jj $s+

C(	B 	Bs   5CCr  r  r  r  r  c                    |j                  d      }|j                  ||j                        }t        j                         5  t        j
                  dt        t               t        j                  ||d      }d d d        t        t        j                  j                        sJ |j                  ||j                        }t        |j                   |       t        |j"                  |       y # 1 sw Y   yxY wr  )r  ri   rN   r   r   r   r   r   rk   r	  r  r  r  r   rr   r5   r!  r  )rs   r6  r  rt   r,  r   r  s          r}   test_ttest_ind_axis_size_zeroz.TestTTestIndMore.test_ttest_ind_axis_size_zero3  s     HHYJJqJ($$& 	1##H.CEWX//!QR0C	1 #u::;;;BFFC~6

N3	1 	1r  c                 0   |j                  d      }|j                  d      }t        j                  ||d      }t        |t        j                  j
                        sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ y r  	r  rk   r	  r  r  r  r!  r  r  rs   rt   r,  r6  r   s        r}    test_ttest_ind_nonaxis_size_zeroz1TestTTestIndMore.test_ttest_ind_nonaxis_size_zeroE  s|    
 HHYHHYooa+#u::;;;}}""V+++zz6)))r   c                 0   |j                  d      }|j                  d      }t        j                  ||d      }t        |t        j                  j
                        sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ y )N)r   r=   r   r  r   rX   r  r  r  s        r}   2test_ttest_ind_nonaxis_size_zero_different_lengthszCTestTTestIndMore.test_ttest_ind_nonaxis_size_zero_different_lengthsQ  s|     HHYHHYooa+#u::;;;}}""V+++zz6)))r   TzTest uses ks_1samp)cpu_onlyr   rU  rV  Fznot used in this test yetr'  c                 d   t         j                  j                  d      }|j                  |j	                  d            }|j                  |j	                  d            }|j                  d      }t        j                  ||dd      }t        j                  |j                        }t        j                  |t        j
                         j                        j                  d	kD  sJ t        t        j                  ||      |d
       t        j                  ||dd      }t        j                  |j                        }t        j                  |t        j
                         j                        j                  d	kD  sJ t        t        j                  ||      |d
       |j                  g d      |j                  dg      }}t        j                  ||d      }t        |j                  |j                  d             t        |j                  |j                  d             y )Nl   bQ )r  r8   r  )r  r   r  Trd   )r  rY   r  r  r&  )r   r   rQ   rB   rz  gzNd?gJ?)r   r  r  ri   r  r  rk   r	  r  r  r)  r   quantiler4   r!  )rs   rt   r  rv   rw   r  r   r  s           r}   test_ttest_uniform_pvaluesz+TestTTestIndMore.test_ttest_uniform_pvalues^  s    ii##O4JJszzzz23JJszzzz23KKSK!ooad<CJJ'~~femmo&9&9:AACGGGFA.=ooad<CJJ'~~femmo&9&9:AACGGGFA.=
 zz,'SE):1ooad3rzz/'BC

BJJ~$>?r   N)r   r   r   r+   rk   r
  r~  r   r   r   r  r  r  r   r   r  r  r  r  r   uses_xp_capabilitiesr  r   r   r}   rx  rx    sE   u112N+ 3N+` [[: [[999,$*) [[0&bhhy16:%RXXi0&9;<4<4
** [[!!48L!M[[ VW[[ WX[[%%e4O%P@ Q Y X N@r   rx  c                   T    e Zd Zd Zej
                  j                  d      d        Zy)TestTTestIndFromStatsc                    |j                  ddg      |j                  ddg      }}|j                  ddg      |j                  ddg      }}|j                  ddg      |j                  dd	g      }}t        j                  ||||||       y )
Nr   r8   r9   r:   r;         r     )ri   rk   r
  )rs   rt   mean1mean2std1std2nobs1nobs2s           r}   test_gh5686z!TestTTestIndFromStats.test_gh5686  s    zz1a&)2::q!f+=uZZA'QF);dzz3*-rzz3*/Eu""5$udEJr   r  c           	         |j                  d      }|j                  d      }|j                  |j                        }t        j                  ||||||d      }t	        |j
                  |       t	        |j                  |       y )Nr   r   Frz  )ri   rr   rk   r
  r5   r!  r  )rs   rt   r  sixr  r   s         r}   %test_ttest_ind_from_stats_inputs_zeroz;TestTTestIndFromStats.test_ttest_ind_from_stats_inputs_zero  sk     zz"~jjnjj ((tS$c38:s+

C(r   N)r   r   r   r  r   r   r   r  r   r   r}   r  r  ~  s-    K [[ QR) S)r   r  c                   (   e Zd Zd Zej
                  j                  ej
                  j                  d      ej
                  j                  d      d                      Z e	dd      d        Z
ej
                  j                  d	d
      d        Zy)TestTTest1Sampc                     |j                  |dk(        }|j                  |dk(        }|dk  |z  |dkD  |z  z  }|j                  ||dz  d|dz  z
        S )Nrf  rh  r   r8   r   )ri   r  )rs   rK  rC  r  rt   rf  rh  r  s           r}   _convert_pvalue_alternativez*TestTTest1Samp._convert_pvalue_alternative  sc     zz#-(**SI-.!et^Q' 12xx1Q3AaC((r   rV  rU  c                 	   t         j                  j                  d      }d\  }}}t        j                  j                  dd|||f|      }|j                  |      }|j                  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       |j                  |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       |j                  ||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                  |j                  g d      d	      \  }}t        |j                  |      |j                  |j                               t        ||j                  d             t        j                  |d d d d d d f   d	      \  }}t        j                  |d d d d d d f   d	d      \  }}| j                  ||d|      }t        ||       t        ||       t        j                  |d d d d d d f   d	d      \  }}| j                  ||d|      }t        ||       t        ||       t        j                   d      5  t        j                  |j                  g d      d      }t        |j"                  |j                  |j$                               t        |j&                  |j                  |j$                               |j                  d	t         j$                  gdd	gg      }t        j                  |d      }t        |j"                  |j                  d|j$                  g             t        |j&                  |j                  d	|j$                  g             d d d        y # 1 sw Y   y xY w)Ni@r^   r  r  r;   r^   rP  r   r   rX   r   r-  r  r  r8   )r   r   r   r   rh  rl  rf  r   r  r0  )r   r  r  rk   r  r  ri   r  r@  r4   r   r  r5   r  r  r  r  r!  rr   r  )rs   rt   r  r  r  n3rvn1r^  r  r  r  p2r  p3rK  rC  r  r  pcr   r  s                        r}   test_ttest_1samp_newz#TestTTest1Samp.test_ttest_1samp_new  s    ii##H-!
Bzz~~!2RRLs~Szz$ ''1b"+&""4q9B""4!4B""41a="5BBU+4"51RXXBx(''2q"+&""4q9B""4!4B""41a="5BBU+4"51RXXBx(''2r1+&""4q9B""4!4B""41a="5BBU+4"51RXXBx(   L!92>1q	2::bff#562::b>*""41a="5B  aAg	J1--b"iD22  aAgG1--b"fbA22[[X& 		B##BJJ|$<bACCMM2::bff+=>CJJ

266(:; ::BFF|c2Y78D##D"-CCMM2::r266l+CDCJJ

B<(@A		B 		B 		Bs   D#S		STr   r   c                    t         j                  j                  d      }d\  }}}t        j                  j                  dd|||f|      }|j                  |      }|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      \  }	}
| j                  ||d|      }t        |
|       t        |	|       t        j                  |d d d d d d f   ddd      \  }	}
| j                  ||d|      }t        |
|       t        |	|       y )Nl   U] )r;   r^   r  r;   r^   rP  r   r8   r   r9   r:   r>   r   r   r   rh  r  rf  )r   r  r  rk   r  r  ri   rr   r@  r  r4   )rs   rt   r  r  r  r  r  r  r  rK  rC  r  s               r}   test_ttest_1samp_new_omitz(TestTTest1Samp.test_ttest_1samp_new_omit  s3   ii##J/ 
Bzz~~!2RRLs~Szz$ ffQqS!A#qs]""41a="HB  aAgv-681--b"iD22  aAgv-351--b"fbA22r   rS  rZ  r'  c                    t         j                  j                  d      }|j                  d      }|j                  |      }d}|j                  |j                  d            }t	        j
                  t        |      5  t        j                  ||d       d d d        |j                  |j                  d	            }t        j                  ||d      }|j                  j                  d
k(  sJ |j                         \  }}|j                  |d      }|j                  |d      }t        j                  ||d      }|j                  |j                  d|j                        |j                  j                        }	t!        |j                  |	       t        j                  ||d      }t!        |j                  |	       y # 1 sw Y   5xY w)Nl   iI}pC )r   r  r  r  z%`popmean.shape\[axis\]` must equal 1.)r;   r8   r  r   r  )r^  rY   )r;   r   r  )r;   r  rX   g?rM   )r   r  r  ri   r   r   r   rk   r@  r!  r  rY  rj  r  r   r  r4   )
rs   rt   r  rv   r  r^  r   rk  r  r   s
             r}   test_ttest_1samp_popmean_arrayz-TestTTest1Samp.test_ttest_1samp_popmean_array  su   
 ii##$78JJKJ(JJqM:**SZZZZ89]]:W5 	;ar:	; **SZZZZ897<}}""g---&&(1NN12N&NN12N&126oobjjRZZj@#**BRBRS

C(126

C(!	; 	;s   GGN)r   r   r   r  r   r   r  r   r  r   r  r  r   r   r}   r  r    s    ) [[[[ WX[[ VW:B X Y :Bx .WX Y, [[!!+6V!W) X)r   r  c                       e Zd Zej                  j                  d      ej                  j                  d      d               Zd Zd Zd Z	d Z
d Zd	 Zd
 Z edd      d        Zy)TestDescriberU  rV  c                    t        j                         5  t        j                  dd      5  t        j                  ddt
               t        j                  |j                  d      d         \  }}}}}}d d d        d d d        dk(  sJ t        d   |j                  d             t        |d   |j                  d             t        |j                  d             t        |j                  |j                               t        |j                  |j                               t        |j                  |j                               y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r<  r>  r   r   r   r   )r   r   r   r  r   r   rk   describeri   r5   rr   )rs   rt   rZ  r  rY  r  skkurts           r}   test_describe_scalarz!TestDescribe.test_describe_scalar  s    $$& 	Gkk(8<	G##=~O$)NN2::b>"3E$F!Ar1aT		G 	G
 Avv1rzz#/1rzz#/2::c?+2::bff-.BJJrvv./bjj01	G 	G 	G 	Gs#   E!A
E7E!E	E!!E*c                    |j                  |j                  d      |j                  dd      f      }d}|j                  g d      |j                  g d      f}|j                  g d      }|j                  g d      }|j                  d	gd
z        }|j                  dgd
z        }t	        j
                  |      \  }	}
}}}}|	|k(  sJ t        |
d   |d          t        |
d   |d          t        ||d
|j                  |j                        j                  z         t        ||d
|j                  |j                        j                  z         t        ||       t        ||       t	        j
                  |j                  d      \  }	}
}}}}|	|k(  sJ t        |
d   |d          t        |
d   |d          t        ||d
|j                  |j                        j                  z         t        ||d
|j                  |j                        j                  z         t        ||       t        ||       y )NrQ  r8   r:   r   r;   r   r   r   r   r   r   r   r   ffffff?r  r  r  )r  r  r  r  H,p ?r:   TUUUUUr   r   r  rX   )r  r  r   ri   rk   r  r5   r4   r   rN   epsr   rs   rt   rv   ncmmcmcvcskckurtcrZ  r  rY  r  r  r  s                  r}   test_describe_numbersz"TestDescribe.test_describe_numbers#  s   IIrwwv(;<=zz*+RZZ8H-IJZZ,-ZZ,-jj-.23

./!34 %q 12q!RBww1s1v&1s1v&2A(9(=(=$=>2A(9(=(=$=>C e$ %qss ;2q!RBww1s1v&1s1v&2A(9(=(=$=>2A(9(=(=$=>C e$r   c                 >   t        j                  d      }t         j                  |d<   d\  }}d}d}d}d}t        j                  |d	      \  }}	}
}}}t        ||       t        |	|       t        |
|       t        ||       t        ||       t        ||d
       y )Nr   r?   )r?   )r   r   r   rH   r   gGzr   r   ra   r  )r   r   rr   rk   r  r   r   )rs   rv   r  r  r  r  r  r  rZ  r  rY  r  r  r  s                 r}   describe_nan_policy_omit_testz*TestDescribe.describe_nan_policy_omit_test=  s    IIcNvv!!C# %qV D2q!RQRQQ!"c*!$r:r   c                 .   |j                  d      }|j                  |dk(  |j                  |      }t        |      r<t	        j
                  t        d      5  t        j                  |d       d d d        n;t	        j
                  t        d      5  t        j                  |d       d d d        t        j                  |d      \  }}}}}}|j                  |j                        d	   }	|d
k(  sJ t        |d   |	       t        |d   |	       t        ||	       t        ||	       t        ||	       t        ||	       t        |      r| j                          nFt        |      r;t	        j
                  t        d      5  t        j                  |d       d d d        d}
t	        j
                  t        |
      5  t        j                  |d       d d d        y # 1 sw Y   ;xY w# 1 sw Y   HxY w# 1 sw Y   axY w# 1 sw Y   y xY w)Nr   r?   not supported for lazy arraysr   r   r   r   rW  r   r^   r   r   r   r   r   )r   r  rr   r%   r   r   r  rk   r  r   ri   r5   r&   r  )rs   rt   rv   rZ  r  rY  r  r  r  r   r  s              r}   test_describe_nan_policy_otherz+TestDescribe.test_describe_nan_policy_otherN  s   IIcNHHQT2661%y0OP 6qW56 6 z1PQ 6qW56 !&q[ I2q!Rjj $Bww1s#1s#33C c"B<..01y0OP 5qV45 1]]:W5 	3NN12	3 	3/6 66 6 5 5	3 	3s0   G%G2G?H%G/2G<?HHc                 p    t        j                  t        j                  d            }d}t	        ||       y )NrQ   )r  minmaxrn   variancer  r  )rk   r  r   r   r   )rs   r  r"  s      r}   test_describe_result_attributesz,TestDescribe.test_describe_result_attributesm  s)     		".S
FJ/r   c                 J   |j                  |j                  d      |j                  dd      f      }d}|j                  g d      |j                  g d      f}|j                  g d      }|j                  g d      }|j                  d	gd
z        }|j                  dgd
z        }t	        j
                  |d      \  }	}
}}}}|	|k(  sJ t        |
d   |d          t        |
d   |d          t        ||       t        ||       t        ||       t        ||       y )NrQ  r  r   r;   r  r  r  )Q?r  r  r  r  r:   r  r   r  r   r  r  r   ri   rk   r  r5   r4   r  s                  r}   test_describe_ddofzTestDescribe.test_describe_ddoft  s   IIrwwv(;<=zz*+RZZ8H-IJZZ,-ZZ01jj-.23

./!34 %qq 92q!RBww1s1v&1s1v&22C e$r   c                 *   |j                  |j                  d      |j                  dd      f      }d}|j                  d      |j                  d      f}|j                  d      }|j                  d      }|j                  d      }|j                  d	      }t	        j
                  |d 
      \  }	}
}}}}|	|k(  sJ t        |
d   |d          t        |
d   |d          t        ||       t        ||       t        ||       t        ||       y )NrQ  r  r   r  r   r  ga+?gE,p ?gUUUUUUrX   r   r   r  r  s                  r}   test_describe_axis_nonez$TestDescribe.test_describe_axis_none  s    IIrwwv(;<= zz#

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

./ !&qt <2q!RBww1s1v&1s1v&22C e$r   c                     d}t        j                  t        |      5  t        j                  |j                  g              d d d        y # 1 sw Y   y xY w)NzThe input must not be empty.r   )r   r   r   rk   r  ri   r  s      r}   test_describe_emptyz TestDescribe.test_describe_empty  s>    0]]:W5 	+NN2::b>*	+ 	+ 	+s   %AAr?  z"min/max don't accept boolean inputr'  c                    t         j                  j                  d      }d}|j                  |j                  |      dk        }t	        j
                  |      }t        |j                  |j                  ||j                               t        |j                  d   |j                  |             t        |j                  d   |j                  |             t        |d|      }t        |j                  |j                  |             t        |j                  |j!                  |d	             t        |j"                  t	        j$                  |             t        |j&                  t	        j&                  |             y )
Nl   Dr+\ r  rA   rM   r   r   TrZ  r   )r   r  r  ri   rk   r  r5   r  int64r  r  r
  r2   r4   rn   r  r   r  r  r  )rs   rt   r  rZ  rv   r   s         r}   test_boolean_input_gh24847z'TestDescribe.test_boolean_input_gh24847  s    ii##$45JJszz!}s*+nnQ"**Qbhh*"?@

1rvvay1

1rvvay1q"5"''!*-bffQ1f&=>ejjm4ennQ&78r   N)r   r   r   r   r   r   r  r  r  r  r  r  r  r  r   r  r   r   r}   r  r    s    [[ VW[[ WX2 Y X2%4;"3>0%"%,+
 (1UV9 W9r   r  c                   Z    e Zd Zej                  j                  dg d      d        Zd Zy)NormalityTestsrm  r  c                    | j                   }t        t        |      }|j                  | j                  d         }|j                  | 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	       |j                  d
      dz  } ||fi |}	|	\  }
}t        |
|       t        ||       t        |	d|       y )Nr   r   >   rf  rh  >   skewtestkurtosistestrf  r8   r  rm  z,`alternative` not available for `normaltest`)r  rd   r   r   r8   r   r  rd   r   r   r8   r   r  rd   r   r   r8   r   r  rd   r   r   r8   r   r?  r   )		test_namerH  rk   ri   case_refr   r  r4   r   )rs   rm  rt   r  r  r2  r&  rt  rv   r   r\  r]  s               r}   test_against_RzNormalityTests.test_against_R  s     NN	5),zz$--"23ZZa 01
--88-8F-BZ\*UV,
-6*-DQz\*
(3}%JKJJ./2q#F#$'!z}5
J/C!8R@r   c                    t        t        | j                        }|j                  d      }|j	                  |j
                  |j                        }|j                  |dk(  ||      }t        j                  d      5   ||      }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)Nr  rM   r`  r   r  )rH  rk   r  r   ri   rr   rN   r  r   r  r5   r!  r  )rs   rt   r  rv   r  r   s         r}   test_nanzNormalityTests.test_nan  s    5$..1IIcNjjqwwj/HHQ"Wc1%[[* 	-1+CCMM3/CJJ,	- 	- 	-s   ?5B==CN)r   r   r   r   r   r   r  r  r   r   r}   r  r    s.    [[],LMA NA<	-r   r  c                        e Zd ZdZdZd Zd Zy)TestSkewTestr  )gvO?gbH`?c                     t         j                  j                  ddd      }|j                  |      }t        j                  |d      j
                  }t        ||j                  d|j                        d	
       y )Nr   r  {   )r,  r  r  rh  rl  r   rM   g?̔>r&  )rk   skewnormr  ri   r  r  r4   rN   )rs   rt   r6  a1_xprn  s        r}   test_intuitivezTestSkewTest.test_intuitive  s]    ^^!%cB

2~~e;BBbjjEKKj@tLr   c                 |   t        j                  |j                  d             |j                  d      }t        t        t
        |      5  t        j                  |      }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)Nr   r   r?  )rk   r  r   r$   r   r   ri   rr   r5   r!  r  rs   rt   rv   r   r  s        r}   "test_skewtest_too_few_observationsz/TestSkewTest.test_skewtest_too_few_observations  s     	ryy~&IIcN+3HRP 	-..#C**RVV$CCMM3/CJJ,		- 	- 	-s   AB22B;N)r   r   r   r  r  r  r  r   r   r}   r  r    s    I9HM-r   r  c                   &    e Zd ZdZdZd Zd Zd Zy)TestKurtosisTestr  )gglg2J@?c                     t         j                  j                  dd      }|j                  |      }t        j                  |d      j
                  }t        ||j                  d|j                        d	       y )
Nr  r  r  rh  rl  r   rM   r%  r&  )rk   laplacer  ri   r  r  r4   rN   )rs   rt   r  a2_xprn  s        r}   r  zTestKurtosisTest.test_intuitive  s]    ]]E<

2!!%Y?FFbjjEKKj@uMr   c           
         g d}t        j                  t        |      D cg c]  \  }}t        j                  ||       c}}      }|j	                  ||j
                        }t        j                  |      d   dk  sJ y c c}}w )N)
r  r   :   r=   r   )   r   r   r      rM   r   r  )r   hstack	enumerater   ri   r   rk   r  )rs   rt   rk  r  r.  rv   s         r}   test_gh9033_regressionz'TestKurtosisTest.test_gh9033_regression  so     7II61BCArwwq!}CDJJq

J+!!!$Q'$... Ds    B
c                 x   t        j                  |j                  d             t        t        t
        |      5  t        j                  |j                  d            }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)NrQ   r?  r   )rk   r  r   r$   r   r   ri   rr   r5   r!  r  r  s       r}   &test_kurtosistest_too_few_observationsz7TestKurtosisTest.test_kurtosistest_too_few_observations  s     	299S>*+3HRP 	-$$RYYr]3C**RVV$CCMM3/CJJ,		- 	- 	-   A,B00B9N)r   r   r   r  r  r  r 	  r	  r   r   r}   r  r    s    I:HN/	-r   r  c                       e Zd ZdZdZd Zy)TestNormalTest
normaltest)gاc@g?c                 x   t        j                  |j                  d             t        t        t
        |      5  t        j                  |j                  d            }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)Nr   r?  r   )rk   r	  r   r$   r   r   ri   rr   r5   r!  r  r  s       r}   test_too_few_observationsz(TestNormalTest.test_too_few_observations  s    2' +3HRP 	-""299R=1C**RVV$CCMM3/CJJ,		- 	- 	-r	  N)r   r   r   r  r  r	  r   r   r}   r	  r	    s    I9H-r   r	  c                   `    e Zd Zej                  j                  dg d      d        Zd Zd Zy)TestRankSumsrm  r  c                 N   t         j                  j                  d      }|j                  d      \  }}t        j                  |||      }t        j
                  ||d|d      }t        |j                  |j                         t        |j                  |j                         y )N   hZ r8   r^   rl  Fr  )use_continuityrm  r  )
r   r  r  rk   ranksumsmannwhitneyur   r  r!  
zstatistic)rs   rm  r  rv   rw   r  r  s          r}   test_ranksums_is_mannwhitneyuz*TestRankSums.test_ranksums_is_mannwhitneyu*  s|    ii##J/zz'"1 ~~a<!!!Qu.9,PT[[18r   c                     t        j                  t        j                  d      t        j                  d            }t	        |d       y )Nr^   r?  )rk   r	  r   r   r   )rs   r   s     r}   test_ranksums_named_resultsz(TestRankSums.test_ranksums_named_results6  s-    nnRYYr]BIIbM:C!89r   c                     t        t        d      5  t        j                  t	        j
                  d      t	        j
                  d      d       d d d        y # 1 sw Y   y xY w)Nz`alternative` must be 'less'r   r^   r   rl  )r   r   rk   r	  r   r   r6  s    r}   r  z"TestRankSums.test_input_validation:  sF    :-KL 	ONN299R="))B-XN	O 	O 	Os   ?AA#N)	r   r   r   r   r   r   r	  r	  r  r   r   r}   r
	  r
	  (  s2    [[],LM	9 N	9:Or   r
	  c                   <    e Zd Zd Z ed      d        Zd Zd Zy)TestJarqueBerac                     g d}|j                  |      }|j                  ddg      }t        j                  |      }t        |j                  |d          t        |j
                  |d          y )N)g8MK~Ŀg/?g6r=TgGg!J_l gq"?gPHK?r   r   )ri   rk   jarque_berar4   r!  r  )rs   rt   rv   r   r   s        r}   test_jarque_bera_against_Rz)TestJarqueBera.test_jarque_bera_against_RA  s^    
;JJqMjj*O<="s1v.

CF+r   Tr  c                 F   t         j                  j                  d      }|j                  d      }t	        j
                  t        |            x}\  }}t	        j
                  t        |            x}\  }}	t	        j
                  |j                  dd            x}
\  }}||cxk(  r6|cxk(  r0|j                  cxk(  r |j                  cxk(  r|
j                  k(  sJ  J ||	cxk(  r6|cxk(  r0|j                  cxk(  r |j                  cxk(  r|
j                  k(  sJ  J y )Nl   uT r  r  r8   P  )r   r  r  rC  rk   r	  r  tuplerm   r!  r  )rs   rt   r  rv   jb_test1JB1r  jb_test2JB2r  jb_test3JB3r  s                r}   test_jarque_bera_array_likez*TestJarqueBera.test_jarque_bera_array_likeN  s     ii##J/V,"..tAw7773"..uQx8873"..qyyE/BCC73cbSbH$6$6b(:L:LbPXPbPbbbbbbRV2VVHOOVxVVVVVr   c                 F   |j                  g       }t        j                  t        t              5  t        j                  |      }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)Nr   )ri   r   r_  r   r   rk   r	  rr   r5   r!  r  r  s        r}   %test_jarque_bera_too_few_observationsz4TestJarqueBera.test_jarque_bera_too_few_observations[  sr    JJrN\\,4IJ 	-##A&C**RVV$CCMM3/CJJ,		- 	- 	-s   ABB c                    t         j                  j                  d      }|j                  |j                  d            }t	        j
                  |d       }t	        j
                  |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                  |j                  ||g             t        |j                  |j                  ||	g             t	        j
                  |j                  d      }
t        |j                  |
j                         t        |j                  |
j                         y )	NiKr  )r8   r  r  rX   r  r   r   )r   r  r  ri   rk   r	  rm   r5   r!  r  r4   r  r   )rs   rt   r  rv   r   r   s0r  s1r  resTs              r}   r_  zTestJarqueBera.test_axisd  s=   ii###3JJszzwz/0-

1e 45s}}5

CJJ/*""1QT7+B""1QT7+BrxxR'9:

BHHb"X$67  1-t~~6

DKK0r   N)r   r   r   r	  r   r$	  r&	  r_  r   r   r}   r	  r	  ?  s,    , d#
W $
W-1r   r	  c                       e Zd Zd Zy)TestPointBiserialRc                    g d}g d}t        j                  |j                  |      |j                  |            }t        |d   |j                  d      d       d}t	        |||       t        |j                  |j                         y )	N)"r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )"g-@g+@g(@r  r  r  g333333@ffffff@g333333@rD   r  皙	@r   rU  rU  rC   r"  ffffff@ @333333?r2	  rB   ?r3	  r  r  r:  rg  r  r  rA   r  r  r  r   g/"?r/  r&  r  r   )rk   pointbiserialrri   r4   r   r5   r  r!  )rs   rt   rv   rw   r   r"  s         r}   test_pointbiserialz%TestPointBiserialR.test_pointbiserialz  sr    * ""2::a="**Q-@A

7 3$? /
C37r   N)r   r   r   r5	  r   r   r}   r,	  r,	  x  s    8r   r,	  c                   $    e Zd Zd Zd Zd Zd Zy)TestObrientransformc                 T   |j                  g d      }t        j                  |      }|j                  g d      }t        |d   d d  |       |j                  g d      }t        j                  |      }|j                  g d      }t        |d   d d  |       t        j                  ||      \  }}t        ||d   d d         t        ||d   d d         t        j                  |||      \  }}}	t        ||d   d d         t        ||d   d d         t        |	|d   d d         y )N)r   r8   r:   )r   r  r   r   )r   r9   r<   r?   )r  r   r   r  )ri   rk   obrientransformr4   )
rs   rt   r  r  r  r  r  r,  r6  r.  s
             r}   r7  zTestObrientransform.test_basic  s   ZZ	"""2&::m,1a(+ZZ%""2&::011a(+ $$R,12a58$2a58$ ''B31a2a58$2a58$2a58$r   c                     |j                  d      }|j                  g dg dg      }t        j                  |d|z        }t	        |d   |d          t	        |d   |d          y )	Nr;   )㪪@I?g&>ڿr<	  r;	  )5@㪪@gIr>	  r=	  r8   r   r  r   r  )r   ri   rk   r9	  r4   )rs   rt   r  r   r   s        r}   test_somethingz"TestObrientransform.test_something  sh     YYq\jjHJLM ##B"-AF,AF,r   c                 h   t        j                  dd      }g d}t        j                  ||      }t        j                  g d      }t        j                  ||      }t	        j
                  |j                  |            }t        |d   d d  |j                  |j                               d       y )Nr;   r_   )r;   r_   r?   r9   r8   r8   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r   r  r  )r   r   r  ri   rk   r9	  r4   r   )rs   rt   valuesrepsr  transformed_valuesr  rr  s           r}   test_referencez"TestObrientransform.test_reference  s    1b!"yy&ZZ )B C99/6&&rzz$'78q	!bjj1B&C$Or   c                 2   t         j                  j                  d      }|j                  d      }t         j                  |d<   |j	                  |      }t        |      s<t        j                  t        d      5  t        j                  |d       d d d        n;t        j                  t        d      5  t        j                  |d       d d d        t        j                  |d	      d
   }t        ||j                  ||j                               |j                  |      }t        j                  |d      d
   }t        j                  ||          d
   }t        ||   ||          t        ||    |       y # 1 sw Y   xY w# 1 sw Y   xY w)Nl   37j"Fzr^   r9   r   r   r   r   #nan_policy='raise' is not supportedrW  r   r   )r   r  r  rr   ri   r%   r   r   r   rk   r9	  r  r5   r   r:  r4   )rs   rt   r  rv   r   r  r   s          r}   rK  z#TestObrientransform.test_nan_policy  sL   ii##$:;JJrNvv!JJqM Qz1PQ =%%aG<= = y0UV =%%aG<= ##A+>qAR\\!RVV45 HHQK##A&9!<##AqbE*1-A!%QB%= == =s   ;F7FF
FN)r   r   r   r7  r?	  rD	  rK  r   r   r}   r7	  r7	    s    %.	-	P&r   r7	  )rY   rN   r  r  c                 p   |xs | j                   }t        |      dk(  r|\  }}n|\  }}	}| j                  ||      }| t        j                  k7  rt        |d|       nd }
| j                  ||
      }|| j                  ||      n|}t        |      dk(  r|fn|	f} ||||d}t        |||       y )Nr8   rM   TrZ  rY   r  r  )r   r  ri   r   r.  r.   r4   )rt   mean_funrY   rN   r  r  rs  
array_liker  rC  dtype_referencerv   s               r}   check_equal_xmeanrL	    s     RZZE
4yA~"
G!%
AwJe4J+ &j"M+/ jjj8G292Ebjjj.7GINJ=QD$T73AAwT*r   c                  8    t        | dt        j                  i|S NrI	  )rL	  rk   r8  rs  rt  s     r}   check_equal_gmeanrP	        dCU[[CFCCr   c                  8    t        | dt        j                  i|S rN	  )rL	  rk   hmeanrO	  s     r}   check_equal_hmeanrT	    rQ	  r   c                  8    t        | dt        j                  i|S rN	  )rL	  rk   pmeanrO	  s     r}   check_equal_pmeanrW	    rQ	  r   c                   j   e Zd Zej                  j                  d      d        Zej                  j                  dg d      d        Zej                  j                  d      ej                  j                  d      d               Z	ej                  j                  d      ej                  j                  d      d               Z
d	 Zd
 Zej                  j                  d      d        Zd Zej                  j                  d      d        Z edd      d        Zd Zd Zd Zed        Zy)	TestHMeanrV  c                 ,    g d}d}t        |||       y N)r   r   r8   r   r   )rT	  rs   rt   r,  r  s       r}   test_0zTestHMean.test_0  s    !W,r   rN   Nr  rF  r   c                 x    ||nt        ||      }g d}d}t        ||||       g d}d}t        ||||       y )Nr  g=b#A@r5  r  gQ?)rH  rT	  rs   rN   rt   r,  r  s        r}   test_1dzTestHMean.test_1d  sF    GB,> 6!WEb9:!WEb9r   rU  c                 T    t        j                  ddg      }d}t        |||d       y )Nr   r   r   rt   r  r   r   rT	  r\	  s       r}   test_1d_with_zerozTestHMean.test_1d_with_zero  s)     HHaV!W#6r   c                     t        j                  g d      }d}t        t        ||      5  t	        ||j
                  |d       d d d        y # 1 sw Y   y xY w)Nr   r   rd   z$The harmonic mean is only defined...r?  r   rc	  )r   r   r$   r   rT	  rr   )rs   rt   r,  r  s       r}   test_1d_with_negative_valuez%TestHMean.test_1d_with_negative_value  sJ     HHZ 8w2> 	:aBS9	: 	: 	:s   AAc                 `    g dg dg dg}d}t        t        j                  |      ||       y )Nr^   r  rt  ru  r9  r  r  r  rt  r  r  x   gmWUC@r   )rT	  r   r   r\	  s       r}   test_2dzTestHMean.test_2d  s)    /1DE"((1+w26r   c                 f    g dg dg dg}t        j                  g d      }t        ||d|       y )Nrj	  rk	  rl	  )U|ϊ6@g4.=C@JQ6LsJ@E]P@r   rY   rt   rd	  r\	  s       r}   test_2d_axis0zTestHMean.test_2d_axis0  s-    /1DE((OP!W14r   c                 f    g dg dg dg}t        j                  g d      }t        ||d|       y )Nr^   r   rt  ru  rk	  rl	  )rp	  r   rq	  rr	  r   rs	  rd	  r\	  s       r}   test_2d_axis0_with_zeroz!TestHMean.test_2d_axis0_with_zero#  s-    .0CD((GH!W14r   c                 f    g dg dg dg}t        j                  g d      }t        ||d|       y )Nrj	  rk	  rl	  )g3333333@O@y@Y@r   rs	  rd	  r\	  s       r}   test_2d_axis1zTestHMean.test_2d_axis1)  s-    /1DE((<=!W14r   c                 f    g dg dg dg}t        j                  g d      }t        ||d|       y )Nrv	  rk	  rl	  )r   ry	  rz	  r   rs	  rd	  r\	  s       r}   test_2d_axis1_with_zeroz!TestHMean.test_2d_axis1_with_zero/  s-    .0CD((;<!W14r   T,array-likes only supported for NumPy backendr  c                     g d}g d}d}t        j                  ||      }t        |t        j                  |      d       y )Nr8   r^   r<   r^   r;   r9   r   r  r/  r  )rk   rS	  r4   r   ri   rs   rt   r,  r  r  r   s         r}   test_weights_1d_listzTestHMean.test_weights_1d_list5  s:      kk!W-RZZ0t<r   c                     t        j                  g d      }t        j                  g d      }d}t        |||d|       y )Nr	  r	  r9   r/  r  r  rt   )r   ri   rT	  rs   rt   r,  r  r  s        r}   test_weights_1dzTestHMean.test_weights_1dE  s5     JJz"**Z(!WgDRHr   c                     t        j                  ddgddgddgg      }t        j                  ddgddgddgg      }t        j                  ddg      }t        ||d|d|	       y )
Nr8   r;   r^   r<   r   r9   r   r/  rY   r  r  rt   rd	  r	  s        r}   test_weights_2d_axis0zTestHMean.test_weights_2d_axis0M  sj     HHq!fr1g1v./((RGaVaV45((Aq6"!W1gDRPr   c                     t        j                  g dg dg      }t        j                  g dg dg      }t        j                  ddg      }t        ||d|d|	       y )
Nr	  r=   r=   r=   r	  r[  r9   r=   r   r/  r	  rd	  r	  s        r}   test_weights_2d_axis1zTestHMean.test_weights_2d_axis1U  sN     HHj),-((J	23((Aq6"!W1gDRPr   c                     t        j                  g d      }t         j                  j                  g dg d      }d}t         j                  }t        |||dt         j                  |       y )Nr   r   r         E@r   rQ   r   r	  r   r   r   r   r<  r   r/  r  r  rN   rt   )r   r   r.  rT	  r   r	  s        r}   test_weights_masked_1d_arrayz&TestHMean.test_weights_masked_1d_array]  sQ     HH'(%%++0|+DUU!WgD "

r	3r   N)r   r   r   r   r   r   r]	  r   ra	  re	  rh	  rn	  rt	  rw	  r{	  r}	  r   r	  r	  r	  r	  r"   r	  r   r   r}   rY	  rY	    sf   [[ WX- Y-
 [[W&KL
: M
: [[ WX[[ VW7 X Y7
 [[ VW[[ WX: Y X:75 [[ WX5 Y5
5 [[ WX5 Y5
 =
=	
=IQQ 3 3r   rY	  c                   h   e Zd Zej                  j                  d      d        Zej                  j                  dg d      d        Zd Z	d Z
d Zd	 Zej                  j                  d      d
        Zej                  j                  d      d        Z edd      d        Zd Zed        Zy)	TestGMeanz<ignore:divide by zero encountered in log:RuntimeWarning:daskc                 ,    g d}d}t        |||       y r[	  rP	  r\	  s       r}   r]	  zTestGMean.test_0k  s     !W,r   rN   r^	  c                     ||nt        ||      }g d}d}t        ||||       g d}t        dd      }t        |||d|       y )	Nr  gsŤF@r5  r  r  r  r-  )rN   r  rt   )rH  rP	  r   r`	  s        r}   ra	  zTestGMean.test_1ds  sO    GB,> 6!WEb9w/!WE"Er   c                 :    g dg dg dg}d}t        |||       y )Nrj	  rk	  rl	  g/,$qJ@r   r	  r\	  s       r}   rn	  zTestGMean.test_2d  s!    /1DE!W,r   c                     g dg dg dg}t        j                  g d      }t        ||d|       t        g dg dg dg      }t        g d      }t        ||dd|	       y )
Nrj	  rk	  rl	  )g4@A@g5H@g`8|wЭN@gm~&+R@r   rs	  r  r-  rY   r  rt   r   r   rP	  r\	  s       r}   rt	  zTestGMean.test_2d_axis0  sX    /1DE((NO!W14<|<=%!W15R@r   c                     g dg dg dg}t        j                  g d      }t        ||d|       t        g dg dg dg      }t        dd	      }t        |||g      }t        ||dd
|       y )Nrj	  rk	  rl	  )gD" 6"6@gcP@g
ҧZ@r   rs	  r  r  r  r-  r	  )r   r   rP	  r   )rs   rt   r,  r  r  s        r}   r{	  zTestGMean.test_2d_axis1  sj    /1DE((CD!W14<|<=-)Aq	"!W15R@r   c                 @    t        g d      }d}t        ||d|       y )N)g}Ô%ITrS  gu <7~rS  r  r  rt   )r   rP	  r\	  s       r}   test_large_valueszTestGMean.test_large_values  s     '(!W5R8r   c                     g d}d}t        j                  d      5  t        |||       d d d        y # 1 sw Y   y xY w)N)
r^   r  rt  ru  r9  r  r  r  rt  r   r   r   r  r   )r   r  rP	  r\	  s       r}   test_1d_with_0zTestGMean.test_1d_with_0  s;    
 4[[X& 	1aR0	1 	1 	1s   5>z;ignore:invalid value encountered in log:RuntimeWarning:daskc                     g d}t         j                  }t        j                  d      5  t        |||       d d d        y # 1 sw Y   y xY w)N)
r^   r  rt  ru  r9  r  r  r  rt  rd   r   r  r   )r   rr   r  rP	  r\	  s       r}   test_1d_negzTestGMean.test_1d_neg  s?    
 5&&[[* 	1aR0	1 	1 	1s   AATr~	  r  c                     g d}g d}d}t        j                  ||      }t        |t        j                  |      d       y )Nr  r8   r;   r<   r:   r9   GZ*oG8@r	  r/  r  )rk   r8  r4   r   ri   r	  s         r}   r	  zTestGMean.test_weights_1d_list  s:     !
 kk!W-RZZ0t<r   c                     t        j                  g d      }t        j                  g d      }d}t        |||d|       y )Nr  r	  r	  r/  r	  r	  r	  s        r}   r	  zTestGMean.test_weights_1d  s5     HH_%((?+!WgDRHr   c                     t        j                  g d      }t         j                  j                  g dg d      }d}t         j                  }t        |||dt         j                  |       y )N)r   r   r   r   rQ   r   )r   rQ   r   r   r   rQ   )r   r   r   r   r   r   r<  r	  r/  r	  )r   r   r.  rP	  r   r	  s        r}   r	  z&TestGMean.test_weights_masked_1d_array  sR     HH-.%%++6=O+PUU!WgD "

r	3r   N)r   r   r   r   r   r   r]	  r   ra	  rn	  rt	  r{	  r	  r	  r	  r   r	  r	  r"   r	  r   r   r}   r	  r	  i  s    [[F--
 [[W&KL
F M
F-A	A9
 [[F11 [[E11 ==	=I 3 3r   r	  c            
       <   e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	ej                  j                  d      ej                  j                  d      d	               Zd
 Zej                  j                  dddgddgddggdf ej                  ddgddgddgg      dfg      d        Zej                  j                  dg dg dg dgdfg dg dg dgdfg      d        Zej                  j                  dg dg dg dgdfg dg dg dgdfg      d        Zd Z edd      d        Zed         Zej                  j                  d!g d"      d#        Zd$ Zej                  j                  d%d&d'g d(d)fg      d*        Zy+),	TestPMeanc                 X    t        j                  | |z        | j                  z  d|z  z  S r|  )r   r$  r  r,  rC  s     r}   pmean_referencezTestPMean.pmean_reference  s&    q!tqvv%1--r   c                 p    t        j                  || |z  z        t        j                  |      z  d|z  z  S r|  )r   r$  )r,  rC  r  s      r}   wpmean_referencezTestPMean.wpmean_reference  s/    wA~&8AaC@@r   c                     t        j                  t        d      5  t        j                  |j                  g d      |j                  dg             d d d        y # 1 sw Y   y xY w)NzPower mean only defined forr   r~  r   )r   r   r   rk   rV	  ri   rk  s     r}   test_bad_exponentzTestPMean.test_bad_exponent  sK    ]]:-JK 	@KK

9-rzz1#?	@ 	@ 	@s   8AA&rN   r^	  c                 v   ||nt        ||      }g dd}}t        j                  t        j                  |      |      }t        |||||       g dd}}t        j                  t        j                  |      |      }t        |||||       g dd}}t        j                  d      }t        |||||       y )Nr  rD   r5  g      r  r8   rH   )rH  r	  r	  r   r   rW	  r)  )rs   rN   rt   r,  rC  r  s         r}   ra	  zTestPMean.test_1d  s    GB,>8#1++BHHQK;!Qu<8$1++BHHQK;!Qu<Q1''9:!Qu<r   rU  rV  c                 Z    t        j                  ddg      d}}d}t        |||d|       y )Nr   r   rd   r   r	  )r   r   rW	  )rs   rt   r,  rC  r  s        r}   re	  zTestPMean.test_1d_with_zero  s/     xxA1!Qcb9r   c                     t        j                  g d      d}}d}t        t        ||      5  t	        |||j
                  |       d d d        y # 1 sw Y   y xY w)Nrg	  Gz?z!The power mean is only defined...r?  r   )r   r   r$   r   rW	  rr   )rs   rt   r,  rC  r  s        r}   rh	  z%TestPMean.test_1d_with_negative_value  sL    xx
#T15w2> 	3aBFFr2	3 	3 	3s   AAr	  r^   r  r9  r  rt  r  r  rA   c                 t    t         j                  t        j                  |      |      }t	        ||||       y )Nr   r	  r	  r   r   rW	  )rs   r,  rC  rt   r  s        r}   test_2d_axisnonezTestPMean.test_2d_axisnone  s,     ++BHHQK;!QB/r   rj	  rk	  rl	  rv	  c                     t        t        |d               D cg c]Q  }t        j                  t	        j
                  t        t        |            D cg c]
  }||   |    c}      |      S }}}t        |||d|       y c c}w c c}}w )Nr   rs	  )r  r  r	  r	  r   r   rW	  )rs   r,  rC  rt   r\  r  r  s          r}   rt	  zTestPMean.test_2d_axis0  s     3qt9%	
  %%5Q=9a!A$q'9:A
 
 	!QaB7	 :
s   9B
B#B
B
c                     |D cg c]+  }t         j                  t        j                  |      |      - }}t	        |||d|       y c c}w )Nr   rs	  r	  )rs   r,  rC  rt   a_r  s         r}   r{	  zTestPMean.test_2d_axis1  sD     IJJ"9,,RXXb\1=JJ!QaB7 Ks   0Ac                     g dd}}g d}t         j                  t        j                  |      ||      }t	        ||||d|       y )Nr	  ރBr	  r/  r	  )r	  r	  r   r   rW	  rs   rt   r,  rC  r  r  s         r}   r	  zTestPMean.test_weights_1d$  s>    ;1,,RXXa[!WE!QtKr   Tr~	  r  c                     g dd}}g d}t         j                  t        j                  |      ||      }t	        j
                  |||      }t        |t        j                  |      d       y )Nr	  r	  r	  r	  r/  r  )r	  r	  r   r   rk   rV	  r4   ri   )rs   rt   r,  rC  r  r  r   s          r}   r	  zTestPMean.test_weights_1d_list*  sW    
 ;1,,RXXa[!WE kk!Q0RZZ0t<r   c           	         t        j                  g d      d}}t         j                  j                  g dg d      }t        j                  ||      }t         j                  }t	        ||||dt         j
                  |       y )	Nr	  r   r	  r	  r<  r	  r/  r	  )r   r   r.  averagerW	  r   r	  s         r}   r	  z&TestPMean.test_weights_masked_1d_array8  s`    xx*+Q1%%++0|+D**Q0UU!Qt "

r	3r   )rY   fun_namerC  ))Nr	  g3E#@)r   r8  r   )r   rS	  rd   c           	          |dk(  rfd}nt        t        |      }t        j                  ddgddgddgg      }t        j                  ddgddgddgg      } ||||	      }t	        ||||d
|       y )Nr	  c                 2    t         j                  | |      S r  )r	  r	  )r,  rY   r  rC  s      r}   funz&TestPMean.test_weights_2d.<locals>.funI  s     11!Q@@r   r8   r;   r^   r<   r   r9   rH	  r/  r	  )rH  rk   r   r   rW	  )	rs   rY   r	  rC  rt   r	  r,  r  r  s	      `     r}   test_weights_2dzTestPMean.test_weights_2dA  s     ))A %*CHHq!fr1g1v./((RGaVaV45adG4!QdG$SUVr   c                     d}t        j                  t        |      5  t        j                  dgt
        j                         d d d        y # 1 sw Y   y xY w)Nz*Power mean only implemented for finite `p`r   r8   )r   r   NotImplementedErrorrk   rV	  r   r  r  s     r}   test_infinite_p_gh23111z!TestPMean.test_infinite_p_gh23111R  sA     ?]].g> 	%KKRVV$	% 	% 	%s   &AAzp, weights, ref)缉ؗҬ<NgDG@r	  )r   r   r   r   r   r   r   g9K@c                     |j                  g d      }|d n|j                  |      }t        j                  |||      }t        ||j                  |             y )N)g      I@r  g     r@g     Q@r  r  r   r	  )ri   rk   rV	  r4   )rs   rt   rC  r  r   rv   r  r   s           r}   test_small_p_gh23407zTestPMean.test_small_p_gh23407Z  sO    8 JJ1
 ODG)<kk!Q*RZZ_-r   N)r   r   r   r	  r	  r	  r   r   r   ra	  r   re	  rh	  r   r   r	  rt	  r{	  r	  r   r	  r"   r	  r	  r	  r	  r   r   r}   r	  r	    s.   .A@ [[W&KL= M= [[ VW[[ WX: Y X:
3 [[8b"XCy
)4	0
"((RHr2hS	2
3S	9	;
0
0 [[-/B
CT	J,.A
BC	H	J
8
8 [[-/B
CT	J,.A
BC	H	J
8
8L ==	= 3 3 [[!		W	W% [[  -
 02CD)	
2	.32	.r   r	  c            	          e Zd Z ej                  d      dz   j                         ZdZ ej                  ed      j                         Z	d Z
 edd      d	        Zed
        Zej                   j#                  d      ej                   j#                  d      ej                   j%                  dddej&                  ej(                  f      d                      Zd Zd Zd Zd Zd Zd Zd Zy)TestGSTDr  r   gv aZ@r  c                     t        j                  |j                  | j                              }t	        ||j                  | j
                               y r  )rk   r9  ri   array_1dr4   gstd_array_1drs   rt   gstd_actuals      r}   test_1d_arrayzTestGSTD.test_1d_array  s6    jjDMM!:;RZZ0B0B%CDr   Tz$Only NumPy supports array-like inputr  c                     t        j                  t        | j                              }t	        || j
                         y r  )rk   r9  r	  r	  r   r	  r	  s      r}    test_1d_numeric_array_like_inputz)TestGSTD.test_1d_numeric_array_like_input  s)    jjt}}!56T%7%78r   c                     d}t        j                  t        t        f|      5  t	        j
                  d       d d d        y # 1 sw Y   y xY w)Nz.could not convert string to float|The DType...r   z*You cannot take the logarithm of a string.)r   r   r   r  rk   r9  r  s      r}   #test_raises_error_non_numeric_inputz,TestGSTD.test_raises_error_non_numeric_input  s@    B]]J	2'B 	EJJCD	E 	E 	Es   AArV  rU  	bad_valuer   rd   c                    |j                  | j                  |gz         }t        j                  |      rGt	        |      s<d}t        j                  t        |      5  t        j                  |      }d d d        nt        j                  |      }t        |j                  t        j                               y # 1 sw Y   3xY w)Nz3The geometric standard deviation is only defined...r   )ri   r	  r   r  r%   r   r_  r   rk   r9  r5   rr   )rs   r	  rt   rv   r  r   s         r}   test_returns_nan_invalid_valuez'TestGSTD.test_returns_nan_invalid_value  s     JJt}}	{23;;y!-*:KGnG< $jjm$ $ **Q-CRZZ/0	$ $s   B;;Cc                     |j                  g d|j                  dddgg      }t        j                  |d      }t	        ||j                  dt
        j                  g             y )N)r   r   r   r   r   r8   r9   rX   r:   )ri   rr   rk   r9  r4   r   )rs   rt   r,  r	  s       r}   test_propagates_nan_valuesz#TestGSTD.test_propagates_nan_values  sM    JJ1a'89:jj+RZZBFF%<=r   c                     |j                  | j                        }t        j                  ||j                  d         }t        ||j                  |j                               y )Nr   r  )ri   r	  rk   r9  r  r5   rr   r   s       r}   )test_ddof_equal_to_number_of_observationsz2TestGSTD.test_ddof_equal_to_number_of_observations  sC    JJt}}%jj,RZZ/0r   c                     |j                  | j                        }t        j                  |d       }|j                  | j                        }t        ||       y r"  )ri   array_3drk   r9  r	  r4   rs   rt   rv   r	  r   s        r}   test_3d_arrayzTestGSTD.test_3d_array  sB    JJt}}%jj.jj++,S)r   c                     |j                  | j                        }t        j                  |d      }|j                  ddg      }t	        ||       y )Nr  rX   g~d@g<
?ri   r	  rk   r9  r4   r	  s        r}   test_3d_array_axis_type_tuplez&TestGSTD.test_3d_array_axis_type_tuple  sA    JJt}}%jj0jj*j12S)r   c                     |j                  | j                        }t        j                  |d      }|j                  g dg dg dg      }t	        ||       y )Nr   rX   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?r	  rs   rt   rv   r	  gstd_desireds        r}   test_3d_array_axis_0zTestGSTD.test_3d_array_axis_0  sL    JJt}}%jj+zzOOO#
 
 	\2r   c                     |j                  | j                        }t        j                  |d      }|j                  g dg dg      }t	        ||       y )Nr   rX   )gN@g85@g'ĥ?gwth?)gHnaX?gG?gBu?gE?r	  r	  s        r}   test_3d_array_axis_1zTestGSTD.test_3d_array_axis_1  sI    JJt}}%jj+zzLL#
  	\2r   c                     |j                  | j                        }t        j                  |d      }|j                  g dg dg      }t	        ||       y )Nr8   rX   )gt80?gі?g?)gۘ]~?gmT6(?g	G?r	  r	  s        r}   test_3d_array_axis_2zTestGSTD.test_3d_array_axis_2  sI    JJt}}%jj+zz??#
  	\2r   N)r   r   r   r   r   r   r	  r	  rm   r	  r	  r   r	  r"   r	  r   r   r   r   r  rr   r	  r	  r	  r	  r	  r	  r	  r	  r   r   r}   r	  r	    s    		)$q(002H"Mrzz(I.557HE d+QR9 S9 E E
 [[ WX[[ VW[[[1b"&&"&&*AB1 C X Y1>
1
**333r   r	  c                       e Zd Zd Zd Zy)TestTrimc           	      `   t        j                  d      }t        t        j                  t	        j
                  |d            t        j                  d             t        t        j                  t	        j
                  |d            t        j                  d             t        t        j                  t	        j
                  |dd            t        j                  dd             t        t        j                  t	        j
                  |d	d            t        j                  d
d             t        t	        j
                  |d      g        t        t	        j
                  |dd      g        t        t	        j
                  g d      g        t        t	        j
                  g d	d      g        t        t	        j
                  g d      g        t        j                  d      j                  dd      }t        j                  dd      j                  dd      }d}t	        j
                  |dd|      }t        t        j                  ||      |       d}t	        j
                  |j                  dd|      }t        t        j                  ||      |j                         y )Nr_   r  r^   r  r?   left)tailr8   tE]t?r9   r   r  r  r<   r:   r;   r   )r	  rY   rX   r   )r   r   r   r	  rk   trim1rm   r   )rs   r,  r   rY   trimmeds        r}   
test_trim1zTestTrim.test_trim1  s   IIbMRWWU[[C01299R=ARWWU[[C01299Q<@RWWU[[Cf=>YYq"%	'RWWU[[E?@YYq"%	'U[[C("-U[[Cf5r: 	U[[S)2.U[[U8"=U[[T*B/ IIbM!!!Q'ii2&&q!,++a6=RWWW40#6++acc3V$?RWWW40#%%8r   c           
         t        j                  d      }t        t        j                  t	        j
                  |d            t        j                  dd             t        t        j                  t	        j
                  |d            t        j                  g d             t        t        j                  t	        j
                  t        j                  d      j                  dd	      d            t        j                  d	d
      j                  d	d	             t        t        j                  t	        j
                  t        j                  d      j                  d	d      j                  d            t        j                  g dg dg             t        t        t        j
                  t        j                  d      j                  d	d      j                  d       t        t	        j
                  g d      g        t        t	        j
                  g d      g        t        t	        j
                  g d      g        y )Nr_   r	  r9   r>   r  )r8   r9   r:   r;   r<   r=   r>   r  r<   r:   r  r5  )r8   r>   r\   r  )r9   r?   r  r[   r  r  )r   r   r   r	  rk   trimbothr   rm   r   r   r   )rs   r,  s     r}   test_trimbothzTestTrim.test_trimboth  ss   IIbMRWWU^^Au56		!QHRWWU^^As34XX34	6RWWU^^BIIbM,A,A!Q,GMNYYq"%--a3	5RWWU^^BIIbM,A,A!Q,G,I,I,02 3XX~~>?	A 	j%..iim++Aq133T	; 	U^^B,b1U^^B.3U^^B-r2r   N)r   r   r   r	  r	  r   r   r}   r	  r	    s    983r   r	  c                   2    e Zd Zd Z edd      d        Zy)TestTrimMeanc                 ,   t        j                  g d      }t        j                  d      j                  dd      |d d f   }t        j                  d      j                  ddd      |d d f   }t	        t        j                  |j                  |      d      |j                  g d             t	        t        j                  |j                  |      d      |j                  g d	             t        j                  g d
      }t        j                  d      j                  dd      |d d f   }t	        t        j                  |j                  |      d      |j                  g d             g d}t	        t        j                  |j                  |      d      |j                  d             t	        t        j                  |j                  g d      d      |j                  d             t         j                  j                  d      }|j                  dd      }|j                  |      }dD ]M  }	t        j                  |d|	      }
t        j                  |j                  ||	d      d      }t	        |
|       O t        j                  |dd       }
t        j                  t        |      d      }t	        |
|       t        j                  t        d      5  t        j                  |d       d d d        y # 1 sw Y   y xY w)N)r9   r;   r   r   r8   r:   r  r<   r:   Fr  r5  )rC   rI   g      -@g     4@r  )r   r   r9   r8   )r   r   rX  r  r  r  )r=   r_   r`   r[   r   r<   r  r   r;   r   r^  r^   rg   r?   ra  r  ro  r  r8   r\   r:   ra   r>   r9   r]   )r;   r:   r9   r   r8   r   rC   r	  r  )r;   r<   r:   r=   r  )r   r   r8   r9   rd   rX   r   zProportion too big.r   r  )r   r   r   rm   r5   rk   	trim_meanri   r  r  r  r  r,   r   r   r   )rs   rt   idxr  r7  idx4a4r,  r  rY   r  r  s               r}   test_trim_meanzTestTrimMean.test_trim_mean  sF   hh)*YYr]""1a(a0YYr]""1as"3CF;

2=

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

2=

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

2=

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

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

3E(FM

3	) ii##J/LL,L/JJqM$ 	(D??1d6D??2;;q$#:DADD$'	(
 q$T2x{D1d#]]:-BC 	$OOAs#	$ 	$ 	$s   *L

Lr  zlazy -> no _axis_nan_policyr'  c                    t        j                  t        d      5  t        t	        j
                  |j                  g       d      |j                  |j                               d d d        t        j                  t        d      5  t        t	        j
                  |j                  g       d      |j                  |j                               d d d        y # 1 sw Y   vxY w# 1 sw Y   y xY w)Nr[  r   r   r  )r   r_  r   r5   rk   r
  ri   rr   rk  s     r}   r  zTestTrimMean.test_empty_input/  s     \\,K@ 	VEOOBJJrNC@"**RVVBTU	V\\,K@ 	VEOOBJJrNC@"**RVVBTU	V 	V	V 	V	V 	Vs   A	CA	C&C#&C/N)r   r   r   r
  r   r  r   r   r}   r	  r	    s'    %$N l+HIV JVr   r	  c                   r    e Zd Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Zy	)
TestSigmaClipc                    |j                  |j                  ddd      |j                  ddd      f      }d}t        j                  |      \  }}}|j	                  |      |kD  sJ |j                  |      |k  sJ t        ||j                  |      ||j                  |      z  z
         t        ||j                  |      ||j                  |      z  z          |j                  |j                  k(  sJ y )NrZ  rc      r   r  r;   r:   
r  r  rk   	sigmaclipr  r
  r5   rn   r   r  rs   rt   r,  factr.  r\  upps          r}   test_sigmaclip1zTestSigmaClip.test_sigmaclip1:  s    IIr{{3b1{{2sA.0 1ooa(3vvay3vvay3RWWQZ$rvvay.89RWWQZ$rvvay.89ww!''!!!r   c                    |j                  |j                  ddd      |j                  ddd      f      }d}t        j                  |||      \  }}}|j	                  |      |kD  sJ |j                  |      |k  sJ t        ||j                  |      ||j                  |      z  z
         t        ||j                  |      ||j                  |      z  z          |j                  dk(  sJ |j                  d	k(  sJ y )
NrZ  rc   r
  r   r  r;   rB   )r:   )$   r
  r
  s          r}   test_sigmaclip2zTestSigmaClip.test_sigmaclip2E  s    IIr{{3b1{{2sA.0 1ooat43vvay3vvay3RWWQZ$rvvay.89RWWQZ$rvvay.89ww$ww%r   c                    |j                  |j                  ddd      |j                  ddd      f      }d}t        j                  |||      \  }}}|j	                  |      |kD  sJ |j                  |      |k  sJ t        ||j                  |      ||j                  |      z  z
         t        ||j                  |      ||j                  |      z  z          t        ||j                  ddd             y )NrZ  rc   r_         Y      Ir9   ?)	r  r  rk   r
  r  r
  r5   rn   r   r
  s          r}   test_sigmaclip3zTestSigmaClip.test_sigmaclip3Q  s    IIr{{3b1{{5$24 5ooat43vvay3vvay3RWWQZ$rvvay.89RWWQZ$rvvay.892;;sD"56r   c                     |j                  |j                  ddd      |j                  ddd      f      }d}t        j                  |||      }d}t	        |||	       y )
NrZ  rc   r_   r
  r
  r9   r
  )clippedrM  upperr   )r  r  rk   r
  r   )rs   rt   r,  r
  r   r"  s         r}    test_sigmaclip_result_attributesz.TestSigmaClip.test_sigmaclip_result_attributes\  s\    IIr{{3b1{{5$24 5ooat,2
C3r   c                 j    |j                  d      }t        t        j                  |      d   |       y )Nr^   r   )r  r5   rk   r
  r   s      r}   test_std_zerozTestSigmaClip.test_std_zerod  s'    GGBK*1-q1r   rN   r  c                    |d nt        ||      }t        j                  j                  d      }|j                  d      }t        j                  |d<   |j                  |j                         |      }t        |      s<t        j                  t        d      5  t        j                  |d       d d d        n;t        j                  t        d	      5  t        j                  |d       d d d        t        j                  |d
      }t        |j                  |j                  g |             t        |j                   |j                  |j                  |             t        |j"                  |j                  |j                  |             t        j                  |d      }t        j                  ||j%                  |                }t        |j                  |j                         t        |j                   |j                          t        |j"                  |j"                         y # 1 sw Y   JxY w# 1 sw Y   WxY w)Nl   &G# r^   r9   rM   r   r   r   r   rF	  rW  r   )rH  r   r  r  rr   ri   r   r%   r   r   r   rk   r
  r  r5   r
  rM  r
  r:  )rs   rN   rt   r  rv   r   r   s          r}   rK  zTestSigmaClip.test_nan_policyi  s   72u+=ii##$9:JJrNvv!JJqxxzJ/ Qz1PQ 7g67 7 y0UV 7g67 ooaK8RZZ%Z%@A		2::bffE:#BC		2::bffE:#BC ooaF3ooa!o.S[[1		399-		399-#7 77 7s   H7I7IIN)r   r   r   r
  r
  r
  r
  r
  r   r   r   rK  r   r   r}   r	
  r	
  8  sB    	"
 	742
 [[W&BC. D.r   r	
  c                      e Zd Zd Z edd      ej                  j                  dddgg fddgdfddgdgfg      d               Zej                  j                  d	      d
        Z
d Zd Zd Zd Z edd      d        Z edd      d        Z edd      d        Z edd      ej                  j                  dg d      d               Zy)TestAlexanderGovernc                 `   g dg dg dg dg}|D cg c]'  }t        j                  |t         j                        ) }}|D cg c]'  }t        j                  |t         j                        ) }}|D cg c]'  }t        j                  |t         j                        ) }}|D cg c]'  }t        j                  |t         j
                        ) }}t        j                  | }t        j                  | }t        j                  | }	t        j                  | }
|j                  |j                  cxk(  r |	j                  cxk(  r|
j                  k(  sJ  J |j                  |j                  cxk(  r |	j                  cxk(  r|
j                  k(  sJ  J y c c}w c c}w c c}w c c}w )N)	ra   ra   ra   ra   ra   ra   ra   r`   r`   )	r\   ra   r`   r`   r`   r`   r`   r_   r_   )	r\   r\   ra   ra   ra   ra   ra   r`   r`   )	r  r\   ra   ra   ra   r`   r`   r`   r_   rM   )
r   ri   r   r  r  r   rk   alexandergovernr  r!  )rs   rs  r  
args_int16
args_int32
args_uint8args_float64	res_int16	res_int32	res_uint8res_float64s              r}   test_compare_dtypesz'TestAlexanderGovern.test_compare_dtypes  s|   44446 BFF#bjjBHH5F
FAEF#bjjBHH5F
FAEF#bjjBHH5F
FEIJc

3bjj9JJ)):6	)):6	)):6	++\:  I$4$4 7  7$/$6$67 	8 7 	8 7##y':': =##='2'<'<= 	> = 	> = GFFJs   ,F,F!7,F&),F+r  z%Requires `_axis_nan_policy` decoratorr'  r  r   r8   c                    t        |      }|j                  |d   |      |j                  |d   |      f}t        j                  t        t
              5  t        j                  | }d d d        t        j                  |j                  |j                               t        |j                  |j                  |j                               y # 1 sw Y   hxY w)Nr   rM   r   r   )r(   ri   r   r_  r   r   rk   r$
  r5   r!  rr   r  )rs   r  rt   rN   r   s        r}   test_too_small_inputsz)TestAlexanderGovern.test_too_small_inputs  s     !$zz$q'z/DG51QQ\\,4IJ 	/''.C	/rzz"&&'9:

BJJrvv$67	/ 	/s   CCr  c                 X   |j                  ddg      |j                  |j                  |j                  g      f}t        j                  | }t	        |j
                  |j                  |j                               t	        |j                  |j                  |j                               y )Nr   r   )ri   r  rk   r$
  r5   r!  rr   r  )rs   rt   samplesr   s       r}   test_bad_inputsz#TestAlexanderGovern.test_bad_inputs  sw     **b"X&

BFFBFF3C(DD##W-rzz"&&'9:

BJJrvv$67r   c                 D   g d}g d}g d}|j                  |      |j                  |      |j                  |      }}}t        j                  |||      }t        |j                  |j                  d             t        |j
                  |j                  d             y)a  
        Data generated in R with
        > set.seed(1)
        > library("onewaytests")
        > library("tibble")
        > y <- c(rnorm(40, sd=10),
        +        rnorm(30, sd=15),
        +        rnorm(20, sd=20))
        > x <- c(rep("one", times=40),
        +        rep("two", times=30),
        +        rep("eight", times=20))
        > x <- factor(x)
        > ag.test(y ~ x, tibble(y,x))

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

        statistic  : 1.359941
        parameter  : 2
        p.value    : 0.5066321

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

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

3H(IJRZZ0F%GHr   c                    g d}g d}g d}|j                  |      |j                  |      |j                  |      }}}t        j                  |||      }t        |j                  |j                  d      d       t        |j
                  |j                  d      d       	 t        |j                  |j                  d	      d
       t        |j
                  |j                  d      d
       y)z
        Data taken from 'The Modification and Evaluation of the
        Alexander-Govern Test in Terms of Power' by Kingsley Ochuko, T.,
        Abdullah, S., Binti Zain, Z., & Soaad Syed Yahaya, S. (2015).
        )g{G&~@g(\E~@g=
ףp~@gfffff~@gp=
~@gףp=
k@gR@gQ2@g8@g`@g)\`@g=
ףp@g(\#@g@g=
ףpE@gQ@g
ףp=@gףp=
Մ@g33333#@)g=
ףpt@g{G&u@gq=
ףv@gQDy@g     X{@g\(P}@g]~@gt~@gzG~@g)\~@g1@gzG@)gGz8@g     @gp=
ב@g
ףp=@gGzԀ@gq=
ףր@gRi@g{Gt@gw@g=
ףp@gQS@gQ@g(\©@gQ-@gQ@g]FxK@r  r&  g R8߱?r  g.UikL@>r  g&Zݱ?Nr4
  )rs   rt   youngmiddleoldr7
  s         r}   test_compare_scholarz(TestAlexanderGovern.test_compare_scholar  s    08GZZ.

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

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

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

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

9(=DIRZZ	%:Fr   c                 D   |j                  g d      |j                  d|j                  g      f}t        j                  | }t	        |j
                  |j                  |j                               t	        |j                  |j                  |j                               y )Nrk  r   ri   rr   rk   r$
  r5   r  r!  )rs   rt   rs  r   s       r}   r  z-TestAlexanderGovern.test_nan_policy_propagate[  sm    zz*+RZZBFF-DD##T*

BJJrvv$67rzz"&&'9:r   Tr   r   c                     |j                  g d      |j                  d|j                  g      f}t        t        d      5  t	        j
                  |ddi d d d        y # 1 sw Y   y xY w)Nrk  r   r   r   r   r   )ri   rr   r   r   rk   r$
  )rs   rt   rs  s      r}   test_nan_policy_raisez)TestAlexanderGovern.test_nan_policy_raiseb  sZ    zz*+RZZRVV-EE:-LM 	=!!4<G<	= 	= 	=s   A!!A*c                    |j                  ddd|j                  dg      |j                  d|j                  ddg      f}|j                  g d      |j                  g d      f}t        j                  |d	d
i}t        j                  | }t	        |j
                  |j
                         t	        |j                  |j                         y )Nr   r8   r9   r:   ra  r  r  )r   ra  r  r   r   rB
  )rs   rt   args_nanargs_no_nanres_nan
res_no_nans         r}   test_nan_policy_omitz(TestAlexanderGovern.test_nan_policy_omith  s    ::q!Q23RZZBFFBPR@S5TTjj.

;0GG''EfE**K8

(9(9:)):+?+?@r   z"lazy -> no data-dependent warningsc                    |j                  g d      }|j                  g d      }t        j                  t        d      5  t	        j
                  ||      }d d d        t        j                  |j                  |j                               t        |j                  |j                  |j                               y # 1 sw Y   hxY w)Nr9  r;  r   r   )
ri   r   r_  r   rk   r$
  r5   r!  rr   r  )rs   rt   r  r  r   s        r}   rD  z'TestAlexanderGovern.test_constant_inputq  s     ZZ-.ZZ-.\\.0LM 	0''B/C	0rzz"&&'9:

BJJrvv$67	0 	0s   C  C	rY   r  c                    t         j                  j                  d      }d}t        d      D cg c]  }|j                  |       }}|D cg c]  }|j	                  |       }}t        j                  |d|i}	t        j                  |d|i}
t        |
j                  |j	                  |	j                               t        |
j                  |j	                  |	j                               y c c}w c c}w )Nl   >030 )r_   r`   r9   rY   )
r   r  r  r  ri   rk   r$
  r4   r!  r  )rs   rt   rY   r  r  r  r1
  sample
xp_samplesr   r   s              r}   test_2d_inputz!TestAlexanderGovern.test_2d_input{  s     ii##$89.3Ah73::e$777>?Vbjj(?
?##W848##Z;d;rzz#--'@A

BJJszz$:; 8?s   C0C5N)r   r   r   r-
  r   r   r   r   r/
  r   r2
  r8
  r>
  r@
  r  rD
  rJ
  rD  rO
  r   r   r}   r"
  r"
    s.   >* l+RS[[Vq!fb\QFA;!Q!$NO8 P T8 [[ QR8 S8BIH1Hf1Gf; .WX= Y=
 .WXA YA .RS8 T8 l+RS[[V\2	< 3 T	<r   r"
  c            
          e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zd Z	d Z
d Zd	 Zej
                  j                  d
g d      d        Zej
                  j                  d      ej
                  j                  d ej                   g d       ej                   g d      ej"                  dff ej                   g d       ej                   g d      ej$                  ej$                  ffg      d               Z edd      ej
                  j                  dg d      d               Z edd      d        Zd Z edd      d        Zd Z edd      ej
                  j                  ddg d fg      d!               Z edd      d"        Zd# Zy$)%TestFOneWayc                     t        j                  |j                  ddg      |j                  ddg            \  }}t        ||j                  d             t        ||j                  d             y )Nr   r8   r   r   rk   f_onewayri   r5   rs   rt   r
  rC  s       r}   test_trivialzTestFOneWay.test_trivial  sT    ~~bjj!Q0"**aV2DE12::c?+2::c?+r   rN   r  c                    |d nt        ||      }t        j                  |j                  ddg|      |j                  ddg|            \  }}t	        ||j                  d|             t        ||j                  d|             y )Nr   r8   rM   r:   r   gf3þ?)rH  rk   rT
  ri   r5   r4   )rs   rN   rt   r
  rC  s        r}   r7  zTestFOneWay.test_basic  s}     72u+=~~bjj!Quj= jj!Quj=?12::c:782::l%:@Ar   c                 D   |d nt        ||      }|j                  g d|      |j                  g d|      |j                  g d|      g}t        j                  |ddi\  }}t	        ||j                  d|             t	        ||j                  d|             y )	Ng(\5IgHz'D@gףp=
2g
ףp=A@g333333g)\(?rM   gq=
ףp7@rE   g333333.@gRQ#@gzG'@r  g=
ףp#@gGz."@gp=
ף
@r  FgM;yQ?gWe?)rH  ri   rk   rT
  r4   )rs   rN   rt   r1
  r
  rC  s         r}   test_unequal_varzTestFOneWay.test_unequal_var  s     72u+=::HPU:V::6e:D::>e:LN ~~w8%81& 	2::&7u:EF2::&7u:EFr   c                    |j                  g d      |j                  g d      |j                  g d      g}d}t        j                  t        |      5  t	        j
                  |ddi d d d        y # 1 sw Y   y xY w)NrY
  rZ
  r[
  z(Expected a boolean value for 'equal_var'r   r  Falseri   r   r   r  rk   rT
  )rs   rt   r1
  r  s       r}   test_equal_var_input_validationz+TestFOneWay.test_equal_var_input_validation  sl    ::HI::67::>?A =]]9G4 	8NNG7w7	8 	8 	8s   A55A>c                    t        j                  |j                  dg      |j                  dg      |j                  g d            \  }}t        ||j                  d             t        ||j                  d             y )Nr8   r  r  r  )rk   rT
  ri   r4   rU
  s       r}   test_known_exactzTestFOneWay.test_known_exact  s^     ~~bjj!orzz1# jj3512::c?+2::c?+r   c                     |j                  ddg|j                        }|j                  ddg|j                        }t        j                  ||      \  }}t	        ||j                  d             y )N    rM       gŸ?)ri   uint16rk   rT
  r4   )rs   rt   r,  r6  r
  rC  s         r}   test_large_integer_arrayz$TestFOneWay.test_large_integer_array  s`    JJSzJ3JJSzJ3~~a#1 	2::&9:;r   c                     |j                  ddg|j                        }|j                  ddg|j                        }t        j                  ||      }d}t	        |||       y )Nrd
  re
  rM   rf
  rg
  r?  r   )ri   rh
  rk   rT
  r   )rs   rt   r,  r6  r   r"  s         r}   test_result_attributesz"TestFOneWay.test_result_attributes  sW    JJSzJ3JJSzJ3nnQ",
C3r   	test_case)SiRstvSmLs01SmLs02SmLs03AtmWtAgSmLs04SmLs05SmLs06SmLs07SmLs08SmLs09c                 Z   |dz   }d}t         j                  j                  t         j                  j                  t         j                  j	                  t
              d|            }t        |      5 }|j                         j                  d      }d d d        dd D cg c]"  }|j                         r|j                         $ }	}t        j                  |d      }
|
j                  \  }}|j                  t              }t        j                  |      }t!        |	d	   d
         }|D cg c]  }|j#                  |||k(            }}t%        j&                  | }d}||v rd}t)        |d	   |j#                  ||j*                        |       y # 1 sw Y   xY wc c}w c c}w )Nz.datr{  zdata/nist_anova
ru  r  r  )skiprowsr   rd   )ru
  rv
  rw
  r  rM   r  )ospathabspathjoindirname__file__openreadsplitstripr   loadtxtr   r  r  uniquer  ri   rk   rT
  r4   r   )rs   rl
  rt   filenamer  fnameru  contentline	certifieddatafrw   rv   catyr  xlistr   hard_tcs                     r}   	test_nistzTestFOneWay.test_nist  sg    v%RWW__X-F->!J K%[ 	+AffhnnT*G	+.5bn &d

 ZZ\ &	 &

52.ww1HHSMyy|)A,r"#0451Aa1fI&55nne$ 1DA

1BJJ
 ?dK%	+ 	+& 6s   2 F!'F#/F(F r   za, b, expected)r  r  r  r	  r   c                     t        j                  |j                  |      |j                  |            \  }}t        ||j                  |d                t        ||j                  |d                y r  rS
  )rs   r,  r6  r  rt   ru  rC  s          r}   rD  zTestFOneWay.test_constant_input  sV     ~~bjjmRZZ];12::hqk232::hqk23r   r  zneeds _axis_nan_policyr'  rY   )r  rd   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
                  |j                  |      |j                  |      |j                  |      |      \  }}dD ]  }	t	        j
                  t        j                  ||	|      t        j                  ||	|      t        j                  ||	|            \  }
}t        ||	   |j                  |
             t        ||	   |j                  |              dD ]  }	t	        j
                  t        j                  ||	|      t        j                  ||	|      t        j                  ||	|            \  }
}t        ||	   |j                  |
             t        ||	   |j                  |              y )N)r   r:   r9   r9   )r8   r;   r9   r9   )r9   r<   r9   r9   r  rM   )r9   r   r;   r9   )r:   r<   r;   r9   )r:   r9   r;   r9   )r   r;   r;   r9   )r;   r;   r;   r9   )r8   r9   r;   r9   )r>   r8   r;   r9   )r8   r8   r;   r9   )r:   r9   r:   r9   )r:   r8   r:   r9   )r;   r:   r:   r9   rd   r   r   r   rX   r  r  )	r   r   r   r   rk   rT
  ri   taker4   )rs   rY   rt   r,  r6  r.  	take_axisru  rC  r\  fjpjs               r}   test_2d_inputszTestFOneWay.test_2d_inputs  s    HHl""""	$ ,.::	7
 HHl"""""""$ ,.::7 HHl"""$ ,.::7
 7?AAAII~~bjjmRZZ]BJJqM#')1
  	2A^^BGGAq)$<$&GGAq)$<$&GGAq)$<>FB AaD"**R.1AaD"**R.1	2  	2A^^BGGAq)$<$&GGAq)$<$&GGAq)$<>FB AaD"**R.1AaD"**R.1	2r   c           
         |j                  d|j                  dd|j                        z  d      }|j                  d|j                  dd|j                        z  d      }|j                  d|j                  dd	|j                        z  d
      }|j                  |      }t	        j
                  |||d      \  }}|j                  dk(  sJ |j                  dk(  sJ t        |j                  d         D ]s  }t        |j                  d         D ]V  }t	        j
                  ||d d |f   ||d d |f   ||d d |f         \  }	}
t        |	|||f          t        |
|||f          X u y )Nr   r   g     a@rM   )r:   r;   r=   r8   g      l@)r:   r>   r=   g     @\@)r:   r:   r=   rX   )r:   r=   r   )	rm   r   r   cosrk   rT
  r  r  r4   )rs   rt   r,  r6  r.  ru  rC  r  r\  fijpijs              r}   test_3d_inputszTestFOneWay.test_3d_inputs2  sU    JJq3
"**EEyQJJq3
"**EEyQJJq3
"**EEyQFF1I~~aAA.1ww&   ww&   qwwqz" 	.A1771:& . >>!Aq!G*a1aj!Aq!G*MSQq!tW-Qq!tW-.	.r   c           	         t        t        t        |      5  t        j                  |j                  g d      |j                  g       |j                  g d            }t        |j                  |j                  |j                               t        |j                  |j                  |j                               d d d        y # 1 sw Y   y xY w)Nr?  rz  )r   rQ   r   r   )
r$   r   r   rk   rT
  ri   r5   r!  rr   r  r  s      r}   test_length0_1d_errorz!TestFOneWay.test_length0_1d_errorE  s    +3HRP 	?^^BJJ|$<bjjn$&JJ/?$@BFF,,bjj.@AFMM2::bff+=>		? 	? 	?s   B'CCc                 p   t        t        t        |      5  d}|j                  d|f      }|j                  d|f      }|j                  d|f      }t	        j
                  |||      \  }}|j                  |f|j                        }t        ||       t        ||       d d d        y # 1 sw Y   y xY w)Nr?  r9   r:   r   r;   r\  )	r$   r   r   r  rk   rT
  r   rr   r5   )	rs   rt   ncolsr,  r6  r.  ru  rC  r  s	            r}   test_length0_2d_errorz!TestFOneWay.test_length0_2d_errorM  s    +3HRP 	%EE
#AE
#AE
#A>>!Q*DAq77E877DAt$At$	% 	% 	%s   BB,,B5c                    |j                  dg      |j                  dg      |j                  dg      |j                  dg      f}t        t        |      5  t        j                  | }t        |j                  |j                  |j                               t        |j                  |j                  |j                               d d d        y # 1 sw Y   y xY w)Nr^   r_   r`   ra   r   )	ri   r$   r   rk   rT
  r5   r!  rr   r  )rs   rt   r1
  rr  s       r}   test_all_length_onezTestFOneWay.test_all_length_oneY  s    **bT"BJJt$4bjj"6F

TVSWHXX+3 	?^^W-FF,,bjj.@AFMM2::bff+=>	? 	? 	?s   A1CCzlazy->reduced input validationrs  r   r~  c                     |D cg c]  }|j                  |       }}d}t        j                  t        |      5  t	        j
                  |  d d d        y c c}w # 1 sw Y   y xY w)Nz$At least two samples are required...r   r_
  )rs   rs  rt   r  r  s        r}   test_too_few_inputszTestFOneWay.test_too_few_inputs`  s]     ,00C

3008]]9G4 	"NND!	" 	" 1	" 	"s   AAA&c                     |j                  d      }|j                  d      }t        j                  t              5  t	        j
                  ||d       d d d        y # 1 sw Y   y xY w)NrQ  r;   r:   r8   rX   )r  r   r   r!   rk   rT
  rs   rt   r,  r6  s       r}   test_axis_errorzTestFOneWay.test_axis_errorh  sM    GGFOGGFO]]9% 	)NN1aa(	) 	) 	)   AA'c                     |j                  d      }|j                  d      }t        j                  t              5  t	        j
                  ||d       d d d        y # 1 sw Y   y xY w)NrQ  r
  r   rX   )r  r   r   r   rk   rT
  r
  s       r}   test_bad_shapeszTestFOneWay.test_bad_shapeso  sM    GGFOGGFO]]:& 	)NN1aa(	) 	) 	)r
  N)r   r   r   rV
  r   r   r   r7  r\
  r`
  rb
  ri
  rk
  r
  r   r   r   r  rr   rD  r   r
  r
  r
  r
  r
  r
  r
  r
  r   r   r}   rQ
  rQ
    s
   , [[W&BCB DB [[W&BCG DG:8,<4 [[[	12L2L6 [[)[[-	,	)!4rvvrlC	,	,!7"&&"&&9IJ0
 4	 *
4 l+CD[[V^4+2 5 E+2Z l+CD. E.$? l+CD	% E	%? l+KL[[Vb9,%78" 9 M" l+KL) M))r   rQ
  c                       e Zd Zd Zd Zej                  j                  dg d      d        Zd Z	d Z
d Zd	 Z ed
d      d        Z ed
d       edd      d               Zd Zd Zy)TestKruskalc                     t        j                  dgdg      \  }}t        |d       t        |t         j                  j                  |d             y )Nr   r8   r   )rk   kruskalr   r   r  r  )rs   hrC  s      r}   test_array_likezTestKruskal.test_array_likex  s=    }}aS1#&1Q5::==A./r   c           	      @   |j                  dg      }|j                  dg      }t        j                  ||      \  }}t        ||j                  d             t	        |      }t        ||j                  t        j
                  j                  dd      |             y )Nr   r8   r   rM   )ri   rk   r
  r4   r(   r  r  )rs   rt   rv   rw   r
  rC  rN   s          r}   test_simplezTestKruskal.test_simple}  sv    JJsOJJsO}}Q"12::c?+ $2::ejjmmAq&9:GHr   rN   )rF  r   Nc           	      l   |t        |      nt        ||      }|j                  g d|      }|j                  g d|      }t        j                  ||      \  }}t        ||j                  d|             t        ||j                  t        j                  j                  dd      |             y )N)r   r9   r;   r=   r?   rM   )r8   r:   r<   r>   r^   r	  r   )r(   rH  ri   rk   r
  r4   r  r  )rs   rt   rN   rv   rw   r
  rC  s          r}   r7  zTestKruskal.test_basic  s    (- $72u;MJJeJ4JJ'uJ5}}Q"12::d%:892::ejjmmD!&<E:JKr   c                 &   dg}ddg}t        j                  |j                  |      |j                  |            \  }}d}d}|j                  ||z        }t        ||       t	        |t        j                  |j                  d      |             y )Nr   r8   g      ?rY  r   )rk   r
  ri   r5   r4   r   chdtrc	rs   rt   rv   rw   r
  rC  h_uncorrr[  r  s	            r}   test_simple_tiezTestKruskal.test_simple_tie  s{    CF}}RZZ]BJJqM:1*::ho. 	8$7>>"**R.(CDr   c                 F   g d}g d}t        j                  |j                  |      |j                  |            \  }}d}dt        d      dz  z
  }|j                  ||z        }t	        ||       t	        |t        j                  |j                  d      |             y )N)r   r   r   r8   )r8   r8   r8   r8   r   r        r   rk   r
  ri   r  r4   r   r
  r
  s	            r}   test_another_tiezTestKruskal.test_another_tie  s    }}RZZ]BJJqM:1>5,-::::ho.8$7>>"**R.(CDr   c                 n   g d}g d}ddg}t        j                  |j                  |      |j                  |      |j                  |            \  }}d}dt        d      dz  z
  }|j                  ||z        }	t	        ||	       t	        |t        j                  |j                  d      |	             y )	Nr[  r  r8   rQ   r   r
  r
  r   r
  )
rs   rt   rv   rw   r  r
  rC  r
  r[  r  s
             r}   test_three_groupszTestKruskal.test_three_groups  s    F}}RZZ]BJJqM2::a=I1G5,-::::ho.8$7>>"**R.(CDr   c                    |j                  g d      }|j                  g d      }|j                  g |j                        }t        j                  t        t
              5  t        j                  |||      }d d d        t        j                  |j                  |j                               t        |j                  |j                  |j                               y # 1 sw Y   hxY w)Nr[  r  rM   r   )ri   rN   r   r_  r   r   rk   r
  r5   r!  rr   r  )rs   rt   rv   rw   r  r   s         r}   re  zTestKruskal.test_empty  s    JJy!JJy!JJrJ)\\,4IJ 	)--1a(C	)rzz"&&'9:

BJJrvv$67	) 	)s   #C""C+rS  needs jax-ml/jax#34628r'  c                 p   |j                  d      }t        j                  |      d   j                  |j                        }t        j                  ||      }t        |j                  |j                  |j                               t        |j                  |j                  |j                               y )Nr   r?   )r   ro   rp   rq   rr   rk   r
  r5   r!  ri   r  r   s       r}   r  z%TestKruskal.test_nan_policy_propagate  su    IIcNFF1IaLRVV$mmAq!rzz"&&'9:

BJJrvv$67r   r   cupyz,cupy returns small but nonzero res.statisticc                 l   |j                  d      }t        j                  |      d   j                  |j                        }t        j                  ||d      }t        |j                  |j                  d             t        |j                  |j                  d             t        j                  t        d      5  t        j                  ||d	       d d d        t        j                  t        d
      5  t        j                  ||d       d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)Nr   r?   r   r   r   r   r   r   r   r   r   )r   ro   rp   rq   rr   rk   r
  r5   r!  ri   r  r   r   r   r   s       r}   test_nan_policy_omit_raisez&TestKruskal.test_nan_policy_omit_raise  s     IIcNFF1IaLRVV$mmAqV4rzz#7

BJJsO4]]:-LM 	4MM!Q73	4 ]]:-KL 	5MM!Q84	5 	5	4 	4	5 	5s    D<D*D'*D3c                 L   d}t         j                  j                  d      }|j                  |j	                  |            }|j                  |j	                  |      dz         }t        j                  ||      \  }}t        ||j                  d|j                               y )Nr	  ykr9  r   rM   )	r   r  r  ri   rC  rk   r
  r4   rN   )rs   rt   rZ  r  rv   rw   r
  rC  s           r}   test_large_sampleszTestKruskal.test_large_samples  s    ii##J/JJs**1-.JJs**1-23}}Q"12::b:89r   c                     d}t        j                  t        |      5  t        j                          d d d        y # 1 sw Y   y xY w)Nz-Need at least two groups in stats.kruskal\(\)r   )r   r   r   rk   r
  r  s      r}   test_no_args_gh20661z TestKruskal.test_no_args_gh20661  s3    B]]:W5 	MMO	 	 	s	   <AN)r   r   r   r
  r
  r   r   r   r7  r
  r
  r
  re  r   r  xfail_xp_backendsr
  r
  r
  r   r   r}   r
  r
  v  s    0
I [[W&BCL DLE
EE8 k*BC8 D8 k*STv&TU5 V U5:r   r
  c                      e Zd Zej                  j                  dg d      d        Zej                  j                  dg dddfg dd	d
fg      d        Zg dZej                  j                  dg d      ej                  j                  de      d               Z	ej                  j                  de      d        Z
ej                  j                  de      ej                  j                  dg d      d               Zy)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                  |j                  |      |      }t        |j                  |j                  |             t        |j
                  |j                  |             y )Nr  r  r  r  )rk   combine_pvaluesri   r4   r!  r  )rs   rt   r  r0  r  rv   r   s          r}   test_reference_valuesz(TestCombinePvalues.test_reference_values  sR     ##BJJqM&Arzz2D'EF

BJJ$?@r   z,weights, expected_statistic, expected_pvaluer   r   r   r
  r
  )r   r   r   ga;?grmT?c                    |j                  g d      }t        j                  |d|j                  |            }t        |j                  |j                  |             t        |j
                  |j                  |             y )Nr
  r
  )r  r  )ri   rk   r
  r4   r!  r  )rs   rt   r  r0  r  rv   r   s          r}   test_weighted_stoufferz)TestCombinePvalues.test_weighted_stouffer    s^     JJ}%##Aj"**WBUVrzz2D'EF

BJJ$?@r   )r  r  r
  r
  r
  r  )singler  r  r  c                    d\  }}t         j                  j                  d      }|dk(  rr|j                  |j	                  |j                  |            ||f      }|j                  |j                  |j                  dd|      d      |d d dd f   gd      }np|d	k(  r0|j                  |j                  dd|      ||f      j                  }n;|d
k(  r6|j                  |j	                  |j                  dd||f            d      }|j	                  t        j                  d         D cg c],  }t        t        j                  ||d d f   |      d         . c}      }	|j!                  |	dd  |	d d z
  dk\        sJ y c c}w )N)r^   r=   l	   TrU(	"b-= r
  r  r  r
  r   rX   r  r  r   r  r  rd   )r   r  r  r  ri   r  rm   r  r   r	  r  r  r  r  rk   r
  r  )
rs   r  r  rt   rY  rZ  r  pvaluessr  combined_pvaluess
             r}   test_monotonicityz$TestCombinePvalues.test_monotonicity   s~    1ii##$KL hrzz#**Q-'@1a&IHyy"**R[[c1-Ew"O"*1ab5/"39: ! <Hr{{3Q'?!QHJJH wwrzz#++a!Q+*HIPQwRH::8>>!,-'
 %''AvFqIJ'
  vv&qr*-=cr-BBaGHHH	'
s   11F	c                     t        j                  |j                  g d      |      }t        |j                  |d          t        |j
                  |d          y )Nr
  r  r   r   )rk   r
  ri   r5   r!  r  )rs   r  rt   r   s       r}   r  zTestCombinePvalues.test_result,   sA    ##BJJ}$=fMs1v.

CF+r   rY   r  c                 p   t         j                  j                  d      }|j                  |j                  d            }|dk(  r|j                  n|}t        j                  |||      }|j|j                  |d      }t        j                  ||      }t        |j                  |j                         t        |j                  |j                         y |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                         y )	Nl   2'$FV r	  r  r   )rY   r  r  r  r   )r   r  r  ri   r   rk   r
  rm   r4   r!  r  )rs   r  rY   rt   r  rv   r   r   r  r  ref0r	  s               r}   r_  zTestCombinePvalues.test_axis2   sL    ii##O4JJszzwz/0AIACCA##AD@<

1e$A''&9CCMM3==9CJJ

3AIACCA1a4!AqD'B$$R7$$R7a($..9a($..9

1t{{3

1t{{3r   N)r   r   r   r   r   r   r
  r
  r  r
  r  r_  r   r   r}   r
  r
    s'    [[5	GHAHA [[ 	7
)+>	?
)+=	>	@	AA	AA OG[[Y(CD[[Xw/I 0 EI0 [[Xw/, 0,
 [[Xw/[[V\24 3 04r   r
  c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)TestCdfDistanceValidationzg
    Test that _cdf_distance() (via wasserstein_distance()) raises ValueErrors
    for bad inputs.
    c           	          t        t        t        j                  dgdgdgddg       t        t        t        j                  dgdgddg       y )Nr   r8   r:   r9   r   r   r   rk   wasserstein_distancer6  s    r}   &test_distinct_value_and_weight_lengthsz@TestCdfDistanceValidation.test_distinct_value_and_weight_lengthsR   sG     	j%"<"<cA3aV	-j%"<"<qcA3AOr   c                     t        t        t        j                  ddgdgddg       t        t        t        j                  ddgdgddgdg       y )Nr   r   r8   r9   r
  r6  s    r}   test_zero_weightz*TestCdfDistanceValidation.test_zero_weightY   sN     	j%"<"<!fqcAq6	+j%"<"<!fqcAq6A3	0r   c           	      X    t        t        t        j                  ddgddgddgddg       y )Nr   r   r8   r9   rd   r
  r6  s    r}   test_negative_weightsz/TestCdfDistanceValidation.test_negative_weightsa   s-    j%"<"<!fq!fq!fq"g	7r   c                     t        t        t        j                  g ddg       t        t        t        j                  dgg        y r  r
  r6  s    r}   test_empty_distributionz1TestCdfDistanceValidation.test_empty_distributionf   s2     	j%"<"<b1a&Ij%"<"<qc2Fr   c           	      v    t        t        t        j                  g dddgdt        j
                  dgddg       y )Nr=  r   )r   r   rk   r
  r   r  r6  s    r}   test_inf_weightz)TestCdfDistanceValidation.test_inf_weightl   s0    j%"<"<!Q!RVVQ!Q	Ar   N)	r   r   r   r  r
  r
  r
  r
  r
  r   r   r}   r
  r
  L   s#    
P07
GAr   r
  c                   l   e Zd ZdZd Zej                  j                  dd      ej                  j                  dd      ej                  j                  dd      d	                      Zej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Z	ej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Z
d Zej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Zej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Zd Zej                  j                  dg d      ej                  j                  dg d      d               Zy) TestWassersteinDistanceNDz8 Tests for wasserstein_distance_nd() output values.
    c                    g d}g d}t        j                  ||      }t        j                  g d      }t        j                  g d      }t        j                  ||z        t        j                  |      z  }t        ||       y )N)r  r  r  r  r  r  r  r  r  r  rA  r<   r   r
  )r  r  r  r  r  r;   r   r
  r
  r
  r
  r
  r
  )r=   r   )r   r   rQ   r   r   r   )r   gw@r   r  r   r   )rk   wasserstein_distance_ndr   r   r$  r   )rs   r  r  r   flowdistr   s          r}   test_published_valuesz/TestWassersteinDistanceND.test_published_valuesv   sm    
"" ++Aq1 xx01xx@AffTD[!"&&,.S!r   n_value)r:   r  rv  r  )r9   r:   r=   max_repeatsrM  c                 :   t         j                  j                  d      }|j                  d||t              }|j                  ||f      }t        j
                  ||d      }|j                  t        j                  |            }t        j
                  t        j                  t        |            |      }	t        j                  |	|      }
|j                  t        |            }||   ||   }}t        j                  |||
|      }t        |dd	       y )
Nl   na{F.aP	 r   )r  rN   r  r   rX   r	  r%  r&  )r   r  r  r  r  r  r$  r   r  bincountr  rk   r
  r   )rs   r  r
  r
  r  repeatsu_valuesv_values	v_weightsrange_repeat	u_weightsindexr   s                r}   test_same_distribution_nDz3TestWassersteinDistanceND.test_same_distribution_nD   s     ii##$<=,,q+G3,G::GT?:399XwQ7JJrvvg/	yy3w<!8'BKKi@	I/&uoy/?)++Hh	9UQU+r   nu)r>   r?   &   nv)r>   r`   rg   )r9   r;   ro  c                    t         j                  j                  d      }|j                  ||f      }t        j                  ||f      }|j                  |      }|j                  |      }t        j                  t         j
                  j                  |d      |      }	t        j                  ||||      }
t        |
|	       y )N   }&=:! r  r   rX   r	  )
r   r  r  r   r	  r  r  rk   r
  r   )rs   r  r
  r  r  r  r  r  r  r   r   s              r}   test_collapse_nDz*TestWassersteinDistanceND.test_collapse_nD   s     ii##$89::B::.88RJ'JJBJ'	JJBJ'	jjq99M++Hh	9US!r   )r>   r   r;  )r   r8   r<   c                 2   t         j                  j                  d      }|j                  ||f      }|j                  ||f      }|j                  |      }|j                  |      }t        j                  ||||      }	|j                  d|d      \  }
}|j                  ||f      }t        j                  ||
|d      }t        j                  ||
t        j                  |      d      }t        j                  ||||      }t        ||	       y )Nr  r  r   r8   rX   )	r   r  r  rk   r
  r  insertr   r   )rs   r  r
  r  r  r  r  r  r  r   add_rownrows	add_valuer   s                 r}   test_zero_weight_nDz-TestWassersteinDistanceND.test_zero_weight_nD   s    
 ii##$89::B::.::B::.JJBJ'	JJBJ'	++Hh	9Ua!4JJUDMJ2	99Xw	BIIi"((5/J	++Hh	9US!r   c                    ddgddggt         j                  t         j                   ggddg}}}t        j                  |||      }t	        |t         j                         t        j
                  d      5  t         j                  t         j                  ggt         j                  t         j                   gg}}t        j                  ||      }t	        |t         j                         d d d        y # 1 sw Y   y xY w)Nr   r8   r   r  )r   r  rk   r
  r   r  rr   )rs   uvvvuwdistances        r}   test_inf_valuesz)TestWassersteinDistanceND.test_inf_values   s     !fq!f%"&&(9':QFB00R<Xrvv&[[* 	+vvrvv&'266BFF7*;)<B44R<H266*	+ 	+ 	+s   6A4C33C<r  )r   r9   r;   c                    t         j                  j                  d      }|j                  ||f      }|j                  ||f      }|j                  |      }|j                  |      }t        j                  ||||      }	|j                  d|      }
|j                         }t        j                  ||
|d      }t        j                  ||
|d      }t        j                  ||||      }t        ||	       y )Nl   Lq/ r  r   r   rX   )r   r  r  rk   r
  r  r  r   )rs   r  r
  r  r  r  r  r  r  r   add_dimr  r   s                r}   test_multi_dim_nDz+TestWassersteinDistanceND.test_multi_dim_nD   s    
 ii##$78::B::.::B::.JJBJ'	JJBJ'	++Hh	9U,,q$'JJL	99Xw	B99Xw	B++Hh	9US!r   )r=   ra   ra  )r8   r:   r=   c                    t         j                  j                  d      }|j                  ||f      }|j                  ||f      }|j                  |      }|j                  |      }t        j                  ||||      }	t        j
                  |      }
|
j                  |      }|j                  |      }t        j                  ||z  |z   ||z  |z   ||      }t        ||	       y )Nl   uAh~r  r  )r   r  r  rk   r
  ortho_groupr  r   )rs   r  r
  r  r  r  r  r  r  r   r
  	transformshiftr   s                 r}   test_orthogonal_nDz,TestWassersteinDistanceND.test_orthogonal_nD   s     ii##N3::B::.::B::.JJBJ'	JJBJ'	++Hh	9U  &HH#H.	


%++Hy,@5,H)1I)=)E)2I? 	S!r   c                    t         j                  j                  d      }t        j                  t
        d      5  |j                  d      }|j                  d      }t        j                  ||      }d d d        t        j                  t
        d      5  |j                  d      }|j                  d	      }t        j                  ||      }d d d        t        j                  t
        d
      5  |j                  d      }|j                  d      }t        j                  ||      }d d d        y # 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)Nl   e36^[Y{lz Invalid input values. The inputsr   )r:   r^   r  r  )r<   r8   r=   z Invalid input values. Dimensions)r  )r9   r  z(Invalid input values. If two-dimensionalr	  r  )r   r  r  r   r   r   rk   r
  )rs   r  r  r  r2  s        r}   test_error_codez)TestWassersteinDistanceND.test_error_code   s1   ii##$>?]]:-OP 	Bzz{z3Hzzyz1H--hAA	B ]]:-OP 	Bzzuz-Hzzwz/H--hAA	B ]]:<> 	Bzzwz/Hzzvz.H--hAA		B 	B	B 	B	B 	B	B 	Bs#   ;D;;E7;E;EEEu_size)r   r^   r9  v_sizec                    t         j                  j                  d      }|j                  |df      }|j                  |df      }|j                         }|j                         }t	        j
                  ||      }t	        j                  ||      }	t	        j                  ||      }
t        |	|       t        |
|       |j                  |      }|j                  |      }t	        j
                  ||||      }t	        j                  ||||      }	t	        j                  ||||      }
t        |	|       t        |
|       y )Nl   Ku@* r   r  )r   r  r  r  rk   r
  r
  r   )rs   r$  r%  r  r  r  u_values_flatv_values_flatd1d2d3r  r  s                r}   test_optimization_vs_analyticalz9TestWassersteinDistanceND.test_optimization_vs_analytical!  s#    ii##K0::FA;:/::FA;:/ ( ( ''}E**8X>**=-HBBJJFJ+	JJFJ+	''}(19>**8X(19>**=-(19>BBr   N)r   r   r   r  r
  r   r   r   r  r  r  r  r  r!  r#  r,  r   r   r}   r
  r
  r   s   "& [[Y4[[VY/[[]G4, 5 0 5," [[T:.[[T;/[[VZ0" 1 0 /" [[T;/[[T;/[[VY/" 0 0 0" 	+ [[T<0[[T<0[[VY/" 0 1 1"" [[T;/[[T;/[[VY/" 0 0 0"$B  [[X{3[[X{3  4 4 r   r
  c                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y	)
TestWassersteinDistancez5 Tests for wasserstein_distance() output values.
    c                 <   t        t        j                  ddgdgddgdg      d       t        t        j                  ddgdgddgdg      d       t        t        j                  ddgdgddgdg      d       t        t        j                  g dg d      d       y )	Nr   r   rA   r9   r  r8   r  r~  r   rk   r
  r6  s    r}   r
  z#TestWassersteinDistance.test_simple%!  s     	&&1vsQFQC@	 	22FQC!Q!&	 	22FQC!Q!&	 	22y"	r   c           	          t        t        j                  g dg d      d       t        t        j                  g dddgg dddg      d       y 	Nr~  r  r   )r   r   r   r:   r:   r   r  r9   )r   rk   r
  r6  s    r}   test_same_distributionz.TestWassersteinDistance.test_same_distribution5!  sE     	U//	9EqI&&|aV'3aV=	r   c           	      (   t        t        j                  dgdg      d       t        t        j                  dgdg      d       t        t        j                  g dg d      d       t        t        j                  g dg d	g d
g d      d       y )Nr   r   r4  r;   r^   r  )r_   r`   ra   r\   r  )rE   g@r1	  )r.	  r=   r  )r9   r   r   )r   r9   r   rC   r0  r6  s    r}   
test_shiftz"TestWassersteinDistance.test_shift>!  sz     	22A3<a@22B4!=rB&&8LM	 	&&'0)=	r   c           
          t        t        j                  g dg dg dg d      t        j                  g dg dg dg d             y N)r   r   r   r   r   r   r;   )r   r9   r9   r9   r9   r:   r:   )r   r   r   r   r   r   r   )r;   r   r   )r   r:   r9   r   r8   r:   r0  r6  s    r}   test_combine_weightsz,TestWassersteinDistance.test_combine_weightsK!  s?     	&&%'<%'<> &&y)'0)=		>r   c                    t        j                  ddd      }t        j                  |      }t        t	        j
                  ||      t        j                  t        j                  |                   t        j                  t        |            }|d d d   }t        t	        j
                  ||||      t        j                  t        j                  |      |             y )Nre  rt  r  rd   r	  )
r   r   r-  r   rk   r
  rn   r  r  r	  )rs   r  r  r  r  s        r}   test_collapsez%TestWassersteinDistance.test_collapseU!  s     IIc2s#MM!&&q!,GGBFF1I	  IIc!f%	ddO	&&q!Y	BJJrvvay)4	6r   c           
          t        t        j                  g dddgg dddg      t        j                  ddgddgddgddg             y N)r   r8   r  r   rr  r8   r0  r6  s    r}   r
  z(TestWassersteinDistance.test_zero_weighte!  sN    &&~1v'01a&:&&1v1v1v1vF	Hr   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        y # 1 sw Y   y xY wNr   r8   zinvalid valuer   )	r   rk   r
  r   r  r   r_  r   rr   r6  s    r}   r  z'TestWassersteinDistance.test_inf_valuesl!  s     	&&1bff~1v>FF	 	&&1bff~|DFF	 	&&BFF7BFF';aVDFF	 \\.@ 	**Aq"&&>BFFA;G	 	 	   =AEEN)r   r   r   r  r
  r3  r5  r9  r;  r
  r  r   r   r}   r.  r.  !!  s+     >6 Hr   r.  c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	TestEnergyDistancez0 Tests for energy_distance() output values.
    c                    t        t        j                  ddgdgddgdg      t        j                  d      dz         t        t        j                  ddgdgddgdg      t        j                  d      dz         t        t        j                  ddgdgddgdg      d       t        t        j                  g dg d	      t        j                  d      d
z         y )Nr   r   r8   rA   r9   r  r   r  r~  r  r   rk   energy_distancer   r)  r6  s    r}   r
  zTestEnergyDistance.test_simple!  s     	!!1a&1#1vs;GGAJO	 	E11FQC!Q!&GGAJ	 	E11FQC!Q!&	 	!!)Y7GGAJ**	,r   c           	          t        t        j                  g dg d      d       t        t        j                  g dddgg dddg      d       y r2  )r   rk   rE  r6  s    r}   r3  z)TestEnergyDistance.test_same_distribution!  sB     	U**9i@!D!!,Aq!fM	r   c                     t        t        j                  dgdg      t        j                  d             t        t        j                  dgdg      t        j                  d      dz         y )Nr   r   r8   r4  r;   gS[:XL	@rD  r6  s    r}   r5  zTestEnergyDistance.test_shift!  sS     	E111#s;RWWQZH!!2$,GGAJ	!r   c           
          t        t        j                  g dg dg dg d      t        j                  g dg dg dg d             y r7  r   rk   rE  r6  s    r}   r9  z'TestEnergyDistance.test_combine_weights!  s<     	!!"79N"79NP!!)Y	9M	Or   c           
          t        t        j                  g dddgg dddg      t        j                  ddgddgddgddg             y r=  rI  r6  s    r}   r
  z#TestEnergyDistance.test_zero_weight!  sK    !!.1a&)aVL!!1a&1a&1a&1a&A	Cr   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        y # 1 sw Y   y xY wr?  )	r   rk   rE  r   r  r   r_  r   rr   r6  s    r}   r  z"TestEnergyDistance.test_inf_values!  s     	U**Aq"&&>Aq6BBFFK!!1a.BFF7A,?FF	 	!!1rvvgrvv"6A?FF	 \\.@ 	%%q!RVVnrvvqkB	 	 	r@  N)
r   r   r   r  r
  r3  r5  r9  r
  r  r   r   r}   rB  rB  ~!  s'    , !OCr   rB  c                   F   e Zd Zg dZg dZd Zd Zd Zd Zd Z	d Z
ej                  j                  d	d
g idg ig g dg      d        Z edd      d        Z edd      d        Z edd      d        Zej                  j                  dddg      d        Zd Zy)TestBrunnerMunzel)r   r8   r   r   r   r   r   r   r   r   r8   r:   r   r   )r9   r9   r:   r9   r   r8   r9   r   r   r;   r:   c                    |j                  | j                        |j                  | j                        }}t        j                  ||d      \  }}t        j                  ||d      \  }}t        j                  ||d      \  }}	t        j                  ||d      \  }
}t        ||       t        |	|       ||	k7  sJ t        ||j                  d             t        ||j                  d             t        ||j                  d             t        |
|j                  d             t        ||j                  d             t        |	|j                  d             y )Nrf  rl  rh  |	&	@|	&	gҏGg?g@-pL?ri   rj   Yrk   brunnermunzelr4   )rs   rt   rj   rR  u1r  u2r  u3r  u4p4s               r}   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sided!  s   zz$&&!2::dff#51$$Qv>B$$QyAB$$QyAB$$Qv>BBBRxxBJJ'9:;BJJ':;<BJJ'9:;BJJ':;<BJJ'<=>BJJ':;<r   c                    |j                  | j                        |j                  | j                        }}t        j                  ||d      \  }}t        j                  ||d      \  }}t        ||j                  |             t        ||j                  d             t        ||j                  d             t        ||j                  d             y )Nrd  rl  rO  rP   ҏGw?rQ  rs   rt   rj   rR  rT  r  rU  r  s           r}   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sided!  s    zz$&&!2::dff#51$$Q{CB$$Q{CBBJJrN+BJJ'9:;BJJ':;<BJJ'<=>r   c                    |j                  | j                        |j                  | j                        }}t        j                  ||      \  }}t        j                  ||      \  }}t        ||       t        ||j                  d             t        ||j                  d             t        ||j                  d             y )NrO  rP  r[  rQ  r\  s           r}   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default!  s    zz$&&!2::dff#51$$Q*B$$Q*BBBJJ'9:;BJJ':;<BJJ'<=>r   c                    d}d}d}|dvsJ d}t        j                  t        |      5  t        j                  |j                  | j                        |j                  | j                        |||       d d d        y # 1 sw Y   y xY w)Nr*  rK  rW  r]  rV  r   r   r   r   rk   rS  ri   rj   rR  rs   rt   rm  distributionr   r  s         r}   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error!  s     
"BBBBL]]:W5 	G

466 2BJJtvv4F +\:G	G 	G 	G   AA??Bc                    |j                  | j                        |j                  | j                        }}t        j                  ||d      \  }}t        j                  ||d      \  }}t        ||j                  |             t        ||j                  d             t        ||j                  d             t        ||j                  d             y )Nr  rc  rO  rP  g "H[?rQ  r\  s           r}   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_norm!  s    zz$&&!2::dff#51$$QAB$$QABBJJrN+BJJ'9:;BJJ':;<BJJ'<=>r   c                    d}d}d}|dvsJ d}t        j                  t        |      5  t        j                  |j                  | j                        |j                  | j                        |||       d d d        y # 1 sw Y   y xY w)Nrd  r*  rW  )rK  r  z&distribution should be 't' or 'normal'r   ra  rb  s         r}   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error"  s    ! 
?222:]]:W5 	G

466 2BJJtvv4F +\:G	G 	G 	Gre  kwarg_updaterw   rv   rv   rw   c                    | j                   | j                  d}|j                  |       |j                         D ci c]"  \  }}||j	                  |t        |            $ }}}t        t        t        |      5  t        j                  di |\  }}d d d        t        |j	                  |j                               t        |j	                  |j                               y c c}}w # 1 sw Y   ZxY w)Nrl  rM   r?  r   )rj   rR  updateitemsri   r(   r$   r   r   rk   rS  r5   rr   )rs   rk  rt   rt  keyvalr!  r  s           r}   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput"  s     vvDFF+l#"(,,.2c3 bjj,<R,@jAA 2 2+3HRP 	> % 3 3 =f =Iv	>	2::bff#56

266 232	> 	>s   'C*>C00C9rS  r
  r'  c                    |j                  dddddddddddddd|j                  g      }|j                  g d      }t        j                  ||d      \  }}t        j                  ||d      \  }}t	        ||j                  |j                               t	        ||j                  |j                               t	        ||j                  |j                               t	        ||j                  |j                               y )Nr   r8   r:   r9   r9   r:   r9   r   r8   r9   r   r   r;   r   rW  r   )ri   rr   rk   rS  r5   r\  s           r}   &test_brunnermunzel_nan_input_propagatez8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagate"  s    JJ1aAq!Q1aAq"&&IJJJ9:$$QkBB$$QkBBBJJrvv./BJJrvv./BJJrvv./BJJrvv./r   r   c                    |j                  dddddddddddddd|j                  g      }|j                  g d      }d}d}d}d}t        j                  t        |	      5  t        j                  |||||       d d d        t        j                  t        |	      5  t        j                  |||||       d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)
Nr   r8   r:   rt  rd  rK  r   r   r   )ri   rr   r   r   r   rk   rS  )rs   rt   rj   rR  rm  rc  r   r  s           r}   "test_brunnermunzel_nan_input_raisez4TestBrunnerMunzel.test_brunnermunzel_nan_input_raise$"  s    JJ1aAq!Q1aAq"&&IJJJ9:!
1]]:W5 	M1k<L	M]]:W5 	M1k<L	M 	M	M 	M	M 	Ms   !CCC
Cc                    |j                  ddddddddddddddt        j                  g      }|j                  g d      }t        j                  ||d      \  }}t        j                  ||d      \  }}t        ||       t        ||j                  d             t        ||j                  d             t        ||j                  d	             y )
Nr   r8   r:   rt  r   r   rO  rP  r[  )ri   r   rr   rk   rS  r4   r\  s           r}   !test_brunnermunzel_nan_input_omitz3TestBrunnerMunzel.test_brunnermunzel_nan_input_omit2"  s    JJ1aAq!Q1aAq"&&IJJJ9:$$Qf=B$$Qf=BBBJJ'9:;BJJ':;<BJJ'<=>r   vectorized_callFTc                 J   |j                  g d      }|j                  g d      }|r:|j                  ||f      j                  }|j                  ||f      j                  }d}t        t        ||      5  t        j                  ||d       ddd       y# 1 sw Y   yxY w)z| tests that a warning is emitted when p is nan
        p-value with t-distributions can be nan (0/0) (see gh-15843)
        rz  rQ   r   r   r   r   zDp-value cannot be estimated|divide by zero|invalid value encounteredr?  rK  rg  N)ri   r  r   r$   r   rk   rS  )rs   rz  rt   rv   rw   r   s         r}   test_brunnermunzel_return_nanz/TestBrunnerMunzel.test_brunnermunzel_return_nan>"  s    
 JJ|$JJ+,!Q ""A!Q ""ATsr: 	8137	8 	8 	8s   7BB"c                 
   |j                  g d      }|j                  g d      }t        t        d|      5  t        j                  ||d      \  }}ddd       t        |j                  d             y# 1 sw Y   %xY w)	zo tests that a p is 0 for datasets that cause p->nan
        when t-distribution is used (see gh-15843)
        rz  r|  zdivide by zeror?  r  rg  Nr   )ri   r$   r   rk   rS  r5   )rs   rt   rv   rw   r2  rC  s         r}   test_brunnermunzel_normal_distz0TestBrunnerMunzel.test_brunnermunzel_normal_distN"  sq     JJ|$JJ+,/?BG 	D&&q!(CDAq	D2::b>*	D 	Ds   A99BN)r   r   r   rj   rR  rY  r]  r_  rd  rh  rj  r   r   r   rr  r   ru  rw  ry  r}  r  r   r   r}   rM  rM  !  s     	3A)A=&	?	?G?G [[^sBi#r46R.@.B C4C4 k*BC	0 D	0 k*STM UM k*ST	? U	? [[.>8 ?8	+r   rM  )rv   r   )r  r   )rC  r   c                     t        j                  | |||      }|j                  |j                  g|j	                         S )Nr  rC  rm  )rk   quantile_testr!  r  rY  )rv   r  rC  rm  r   s        r}   quantile_test_referencer  Z"  s9    


a1{
CC==#**@s'>'>'@@@r   c                   F   e Zd ZdZd Zej                  j                  dg dg dddej                   dd	gd
ddej                  dgg      d        Z
ej                  j                  dg dg dg      d        Zej                  j                  dddg      ej                  j                  dd	dg      ej                  j                  dddg      d                      Zej                  j                  dg d      d        Z edd      ej                  j                  dg d      ej                  j                  d d!d"g      d#                      Zd$ Zd% Zd& Zej                  j'                  d'      ej                  j                  d(g d)      d*               Zy+),TestQuantileTestzb Test the non-parametric quantile test,
    including the computation of confidence intervals
    c                 T   |j                  g d      }d}t        j                  t        |      5  t	        j
                  |j                  ||j                               d d d        d}t        j                  t        |      5  t	        j
                  |d       d d d        d}t        j                  t        |      5  t	        j
                  |d	       d d d        |j                  d
ddd|j                  g      }t	        j
                  ||	      }t        |j                  |j                  ||j                               t        |j                  |j                  ||j                               t        |j                  |j                  ||j                               d}t        j                  t        |      5  t	        j
                  |d       d d d        d}t        j                  t        |      5  t	        j
                  |d       d d d        d}t        j                  t        |      5  t	        j
                  |d       d d d        d}t        j                  t        |      5  t	        j
                  ||j                  ddg      d       d d d        d}t        j                  t        |      5  t	        j
                  |d       d d d        d}t        j                  t        |      5  t	        j
                  |      j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   yxY w# 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr~  z `x` must be an array of numbers.r   z)`q` must be a scalar or array of numbers.F)r  z(`p` must be a scalar or array of floats.r8   )rC  r0  r   r   rB   z"`axis` must be an integer or None.rC   rX   z7`axis` is not compatible with the shapes of the inputs.z/If specified, `keepdims` must be True or False.r^   r  z"`keepdims` may be False only if...r  r  )rC  r{  z`alternative` must be one of...z	one-sidedrl  re  r   )ri   r   r   r   rk   r  r  r@  rr   r5   r!  r   statistic_typer  rY  )rs   rt   rv   r  rC  r   s         r}   test_quantile_test_ivz&TestQuantileTest.test_quantile_test_ivf"  s   JJy!4]]:W5 	7		!RWW 56	7 >]]:W5 	,U+	, =]]:W5 	(Q'	( JJRS"&&12!!!q)r||Arvv'>?**BLLBFF,CD

BLLBFF$;<6]]:W5 	-,	- L]]:W5 	+*	+ D]]:W5 	0B/	0 8]]:W5 	MRZZc
%;eL	M 4]]:W5 	<{;	< I]]:W5 	:"66q9	: 	:O	7 	7	, 	,	( 	(	- 	-	+ 	+	0 	0	M 	M	< 	<	: 	:sk   0L8MMMM,M9>*NN
%N8MMMM),M69NNNN'zp, alpha, lb, ub, alternative)r  ffffff?gX݊?g蜶?rd  )rA   r  g-tA?gP"?rd  r  r  g{gA?rf  rg  r  gg @rh  c                 .   |j                  |j                  ddd            }t        j                  |||      }|j	                  |      }	t        |	j                  |j                  |             t        |	j                  |j                  |             y )Nr   r  r  )rC  rm  )	r  r   rk   r  rY  r4   r\  ri   r]  )
rs   rC  rg  lbubrm  rt   rv   r   rs  s
             r}   test_R_ci_quantilez#TestQuantileTest.test_R_ci_quantile"  so      FF299S$-.!!!qkB$$U+

2/B0r   zq, p, alternative, ref)r  r  rd  gͯI	?)r
  rA   rd  gɍQ%e?c                     |j                  |j                  ddd            }t        j                  ||||      }t	        |j
                  |j                  |             y )Nr   r  r  r  )r  r   rk   r  r4   r  ri   )rs   r  rC  rm  r   rt   rv   r   s           r}   test_R_pvaluezTestQuantileTest.test_R_pvalue"  sK     FF299S$-.!!!qA;G

BJJsO4r   r  
continuousdiscreterm  rg  c                    t        dt        |      z  t        |      z   |z        }t        j                  j	                  |      }|dk(  r(|j                  d      \  }}|j                  d      }	n6|j                  ddd      }	|j                         }|j                  dd      }|j                  |	j                               t        |      t        |      }}}	t        j                  |	|||      }
|
j                  |	      }|d
k(  r4|j                  |	|j                  j                        |j                  k  }n3|j                  |	|j                  j                        |j                  k\  }|	|   D ]/  }t        j                  |	|||      }
|
j                   d|z
  kD  r/J  |	|    D ]/  }t        j                  |	|||      }
|
j                   d|z
  k  r/J  y )Nr=   r  r8   r  r  r   r_   r  r`  rf  )r  r  r   r  r  r  ri   r   r  rk   r  rY  r  r]  rN   r\  r  )rs   r  rm  rg  rt   r+  r  rC  r  r  r   rs  i_insiderv   s                 r}   test_pval_ci_matchz#TestQuantileTest.test_pval_ci_match"  s    As4yL3{#33U:;ii##D)<::1:%DAq**#*&C,,q"3,/C

AQ#AJJszz|,eAhaQ!!#a[I$$e$< & yybggmm4?Hyybffll3rvv=HX 	*A%%cQ!MC::E	)))	* hY 	*A%%cQ!MC::E	)))	*r   rN   r  c                    |t        |      nt        ||      }|j                  g d|      }d}t        j                  |ddd      }t        |j                  |j                  ||      d	       |j                  d
gdz  dgdz  z   |      }t        t        j                  dd      j                  d            }t        j                  |ddd      }t        |j                  |j                  ||      d       y )N)                                    r        rM   geX?r  rY  rd  r  r/  r  ;   r>   rZ   h   rA   p   )rC  rZ  r*  r  rh  r  r&  )
r(   rH  ri   rk   r  r4   r  r  binomr%  )rs   rN   rt   rv   
pvalue_refr   s         r}   test_match_conover_examplesz,TestQuantileTest.test_match_conover_examples"  s     ). $72u;MJJ ;BG  I
!!!sdL

BJJzJ$GdS JJtAve,EJ:5;;48818=>
!!!rSiH

BJJzJ$GeTr   r?  zindexing in _apply_over_batchr'  r  rY   r   r   c                    t         j                  j                  d      }|j                  d      }|j                  d      }||j                  d      dz  z   }fd|||fD        \  }}}t        ||||      }|\  }	}
}}|d	k(  r$|j                  |j                  |j                  }}}t        j                  |||||
      }|j                  |j                  }}|j                         \  }}|d	k(  r0|j                  |j                  }}|j                  |j                  }}t        ||	       t        ||
       t        ||       t        ||       y )Nl   z-\"}	r8   r  r  r  r  r  c              3   \   K   | ]#  }j                  |j                                % y wr  ri   r   r  r  rt   s     r}   r  z9TestQuantileTest.test_multidimensional.<locals>.<genexpr>#        A2::cjjl+A   ),rl  r   )r  rC  rm  rY   )r   r  r  r  r   rk   r  r!  r  rY  r4   )rs   rm  rY   rt   r  rv   rC  r  r   r2  r&  ref_lowref_highr   r\  r]  res_lowres_highs      `              r}   test_multidimensionalz&TestQuantileTest.test_multidimensional#  s5    ii##$56JJGJ$JJGJ$


',,A1ayA1a%aA;G7:4z7H19cc133!qA!!!qA;TR$'MM3::z33519(5:M '		8::XG}5
J/))r   c                    t         j                  j                  d      }d}d}|j                  |      }|j                  |      }||j                  |      dz  z   }fd|||fD        \  }}}j                  dg|      }|}	t	        j
                  |||d      }
|
j                         }t        |
j                  j                  |	             t        |
j                  j                  |	             t        |
j                  |	       t        |j                  |	       t        |j                  |	       j                  dg|      }j                  dg|      }	t	        j
                  |||d      }
|
j                         }t        |
j                  j                  |	             t        |
j                  j                  |	             t        |
j                  |	       t        |j                  |	       t        |j                  |	       j                  |j                  d   df      }j                  |j                         }	t	        j
                  |||d      }
|
j                         }t        |
j                  |	       t        |
j                  |	       t        |
j                  |	       t        |j                  |	       t        |j                  |	       y )	N   g3Dn&br8   r9  r	  r  c              3   \   K   | ]#  }j                  |j                                % y wr  r  r  s     r}   r  z2TestQuantileTest.test_zero_size.<locals>.<genexpr>'#  r  r  r   rd   r  rC  rY   )r   r  r  r  rk   r  rY  r5   r!  ri   r  r  r\  r]  r  r   rr   )rs   rt   r  x_shapeqp_shaperv   r  rC  qp_zerooutr   rs  x_zeros    `           r}   r  zTestQuantileTest.test_zero_size#  sE   ii##$67JJwJJx 

8$t++A1ayA1a ((A>>*!!!w'C$$&rzz#7**BJJsO<

C($% 1-w-(hh~H~&!!&A<$$&rzz#7**BJJsO<

C($% 1771:q/*ggh'!!&A<$$&s+**C0

C($%r   c                 V   t         j                  j                  d      }|j                  d      }|j                  d      }||j                  d      dz  z   }fd|||fD        \  }}}t        j                  |||d      }|j                         \  }}t        |      }	j                  |j                  |j                        dk        }
t        j                  |	      |
   j                  j                        }	j                  |
d      }j                  |      rJ t        j                  |	||d      }|j                         \  }}j                  j                  |j                   |               sJ j                  j                  |j"                  |               sJ j                  j                  |j$                  |               sJ j                  j                  ||               sJ j                  j                  ||               sJ t'        |j                   |    |j                   |           t'        |j"                  |    |j"                  |           t'        |j$                  |    |j$                  |           t'        ||    ||           t'        ||    ||           j                  |j                  |j                        dk        }j                  |j                  |j                        dk        }j                  |      sJ j                  |      sJ t        j                  |      j)                  ||j                           j                  j                        }t        j                  |      j)                  ||j                           j                  j                        }j                  ||z        }j                  |      rJ t        j                  |||d      }|j                         \  }}j                  j                  |j                   |               sJ j                  j                  |j"                  |               sJ j                  j                  |j$                  |               sJ j                  j                  ||               sJ j                  j                  ||               sJ t'        |j                   |    |j                   |           t'        |j"                  |    |j"                  |           t'        |j$                  |    |j$                  |           t'        ||    ||           t'        ||    ||           y )	Nl   I8Z R r  )r^   r^   r  c              3   \   K   | ]#  }j                  |j                                % y wr  r  r  s     r}   r  z-TestQuantileTest.test_nans.<locals>.<genexpr>R#  r  r  rd   r  rX   )r   r  r  rk   r  rY  r1   ri   r  ro   rp   rq   rr   r1  r  r:  r!  r  r  r5   r  )rs   rt   r  rv   r  rC  r   r  r  x_i_nan	i_nan_outr   r  r  i_nan_qi_nan_ps    `               r}   	test_nanszTestQuantileTest.test_nansM#  s   ii##$45JJx JJx 

8$t++A1ayA1a!!!qAB7335QZ

3::agg.56VVBZ""266*FF5rF*	66)$$$!!"QR8335vvbhhs}}Y78999vvbhhs11)<=>>>vvbhhszz)45666vvbhhwy12333vvbhhx	23444yj13==)3LM**I:68J8JI:8VW

I:.

I:0FG
+WiZ-@A),h	z.BC**SZZ0478**SZZ0478vvgvvgFF1Iboogqww78<<RVVDFF1Iboogqww78<<RVVDJJw01	66)$$$!!!qAB7335vvbhhs}}Y78999vvbhhs11)<=>>>vvbhhszz)45666vvbhhwy12333vvbhhx	23444yj13==)3LM**I:68J8JI:8VW

I:.

I:0FG
+WiZ-@A),h	z.BCr   c                    t         j                  j                  d      }d}d}|j                  |      }|j                  |      }||j                  |      dz  z   }fd|||fD        \  }}}t        j                  |||d       }|j                         \  }	}
t        j                  t        |      t        |      t        |      d       }|j                         \  }}t        |j                  |j                  j                  d d f          t        |j                  |j                  j                  d d f          t        |j                  |j                  j                  d d f          t        |	|j                  d d f          t        |
|j                  d d f          t        j                  |ddd       }|j                         \  }	}
t        j                  t        |      ddd       }|j                         \  }}t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         t        |	|       t        |
|       y )Nr  r  r	  r  c              3   \   K   | ]#  }j                  |j                                % y wr  r  r  s     r}   r  z2TestQuantileTest.test_axis_none.<locals>.<genexpr>#  r  r  r  rA   )r   r  r  rk   r  rY  r,   r5   r!  r  r  r  )rs   rt   r  r  r  rv   r  rC  r   r  r  r   r  r  s    `            r}   test_axis_nonezTestQuantileTest.test_axis_none#  s   ii##$67JJwJJx 

8$t++A1ayA1a!!!qAD9335!!(1+!RVW335s}}RZZ]'CD**C,>,>rzz1},MN

CJJrzz1}$=>Q!78(2::q="9:!!!sc=335!!(1+$G335s}}5**C,>,>?

CJJ/)(+r   zignore:torch:UserWarningz,x_shape, qp_shape, axis, keepdims, res_shape))r  r  NFr   )r  r  NTr  )r  r  rd   Fr  )r  r  rd   Tr  c                 ,   t         j                  j                  d      }|j                  |j                  |            |j                  |j                  |            }	}t	        j
                  ||	|	||      }
|
j                  j                  |k(  sJ y )Nr  )r  rC  rY   r{  )r   r  r  ri   rk   r  r!  r  )rs   r  r  rY   r{  	res_shapert   r  rv   qpr   s              r}   r  zTestQuantileTest.test_keepdims#  sv     ii##$67

3::g./CJJx<P1Q2!!!rRdXN}}""i///r   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  `"  s   ,:\ [['	G	F
rvvg/	8
s%rvvy	9	;11 [[ 	2	1	3
5
5 [[VlJ%?@[[]VY,?@[[WsDk2%* 3 A A%*N [[W&BCU DU> (1PQ[[],LM[[VaV,* - N R*2,&\2Dh,: [[ :;[[K N 0 <0r   r  c                       e Zd Zd Zej
                  j                  d      Zej                  d      Zej
                  j                  d      Zej                  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                  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                  j                  d3e      ej                  j!                         dB               ZdC ZdD ZdE ZyF)GTestPageTrendTestc                 L    t         j                  j                  d      | _        y )Nr
  r5  r6  s    r}   r7  zTestPageTrendTest.setup_method#  s    99((4r   l   /*s )r9   r  )r^      i2  g<n?Fr  iu  gRn@?i,0  gY@?)r  r  I   rv  r  `   rt  r  r  r
  r  1   r  +   r  r  r  r  r  r  rZ   r  r  r  r9  )D   r  r  "   r_  r  A   X   r[   r  r  r
  r
  C   E   r  rt  r  ru  W   r  r  r9  r  r  )r  ra   U   rv  O   r`   \   V   r[   @   r   r  r  rg   r   Y   r  r  r  r
  6   ra   B   rN  rB  i
  gXY?r  )rB   r   g @r;   ra  r_   )r;   r:   rD   r^   r  r[   )r   r/	  r^   r`   r\   r  iL  gs˜?T)r:   r9   r8   r   )r9   r:   r   r8   r     gĞ?)r9   r8   r   r  r~     g>K=?)r<   r;   r:   r9   r8   r   )r   r9   r:   r;   r8   r<   i  gqူ?)r;   r:   r9   r8   r   )r:   r   r9   r8   r;   r     ga?i  g;?)r=   r<   r;   r:   r9   r8   r   )r<   r;   r=   r:   r9   r8   r   r)  u   g[^6?zL, p, ranked, method, datac                     t        j                  |||      }t        ||j                         t	        ||j
                         t        ||j                         y N)rankedr  rk   page_trend_testr   r!  r   r  r  rs   LrC  r  r  r  r   s          r}   test_accuracyzTestPageTrendTest.test_accuracy#  s@    ##DGQ&3::&VSZZ(r   i  g-lpW?)
r^   r?   r>   r=   r<   r;   r:   r9   r8   r   )
r   r>   r:   r=   r<   r;   r?   r9   r8   r^   i*  gh[?)
r?   r8   r>   r=   r<   r;   r:   r9   r^   r   r{  i  g&]2?)r>   r=   r<   r;   r:   r9   r8   r   )r   r9   r;   r<   r:   r=   r8   r>   rP  c                     t        j                  |||      }t        ||j                         t	        ||j
                         t        ||j                         y r  r  r  s          r}   test_accuracy2z TestPageTrendTest.test_accuracy2
$  sB     ##DGQ&3::&VSZZ(r   c                    t         j                  j                  d      }d\  }}t        j                  d|dz         }|j	                  t        j                  |            }|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                         y )	Ni7
)r^   r  r   rX   Tr  F)predicted_ranks)
r   r  r  r   r  rk   rankdatar  r   r!  )rs   r  rY  rZ  r  permr  ranksr  r  r  res4res5s                r}   test_optionszTestPageTrendTest.test_options$  s   ii##I.1))Aqs+ryy|,zz1a&!t!,$$U+$$U48$$T%8$$UOL$$U1d7^5DT5JLT^^T^^4T^^T^^4T^^T^^4T^^T^^4r   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       y )N)ra  r  o   )r  rt  k   )g      y   )r  r  r
  )r        )   rm	  t   r   r=   Fr  )r  r  r  i  gy&1l?r:   r  r  gHPsb?)
r   r   r   r   rk   r  r   r!  r   r  )rs   r  r  r   s       r}   test_Ames_assayz!TestPageTrendTest.test_Ames_assay$$  s    /Cxx~))Aq/##D4C+79 	S]]C(CJJ:##D4C+24 	S]]C(CJJ:r   c                 F   t        t        d      5  t        j                  d        d d d        t        t        d      5  t        j                  g        d d d        t        t        d      5  t        j                  ddg       d d d        t        t        d      5  t        j                  dggg       d d d        t        j
                  j                  d      }t        t        d      5  t        j                  |j                  d             d d d        t        t        d      5  t        j                  |j                  d             d d d        d	}t        t        |      5  t        j                  g d
g d
gg d       d d d        t        t        |      5  t        j                  g d
g d
gg d       d d d        t        t        |      5  t        j                  g d
g d
gg d       d d d        t        t        |      5  t        j                  g d
g d
gd       d d d        t        t        d      5  t        j                  g dg d
gd       d d d        t        t        d      5  t        j                  g d
g dgd       d d d        t        t        d      5  t        j                  g d
ddt        j                  ggd       d d d        t        t        d      5  t        j                  g d
g d
gd       d d d        t        t        d      5  t        j                  g d
g d
gd       d d d        y # 1 sw Y   <xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   PxY w# 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   NxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz`data` must be a 2d array.r   r   r8   l   s' zPage's L is only appropriater  r  z+`predicted_ranks` must include each integerr~  r  )r  r  )r:  r8   r9   )r   r8   r9   r9   r  z`data` is not properly ranked)r   r8   r9   Tr8  z`data` contains NaNsFr  z`method` must be inekki)r  r  z`ranked` must be boolean.)r  r  )	r   r   rk   r  r   r  r  rr   r  )rs   r  r  s      r}   r  z'TestPageTrendTest.test_input_validation7$  si   :-IJ 	(!!$'	(:-IJ 	&!!"%	&:-IJ 	*!!1a&)	*:-IJ 	+!!QC5'*	+ ii##J/:-KL 	6!!#**V"45	6:-KL 	6!!#**V"45	6 @:W5 	=!!	9'=2;=	= :W5 	?!!	9'=2=?	? :W5 	@!!	9'=2>@	@ :W5 	=!!	9'=2;=	=
 :-LM 	@!!9i"8$?	@:-LM 	@!!9i"8$?	@ :-CD 	0!!9q!RVVn"=).0	0 :-BC 	1!!	9'=)/1	1 9,GH 	1!!	9'=)/1	1 	1Y	( 	(	& 	&	* 	*	+ 	+
	6 	6	6 	6
	= 	=	? 	?	@ 	@	= 	=
	@ 	@	@ 	@	0 	0	1 	1	1 	1s   M"M/0M<!N	2%N0%N#0 N0) N=" O
OO$O1>-O>P;P"M,/M9<N	NN #N-0N:=O
OO!$O.1O;>PPP 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   r   r}   r  r  #  s   5" ))



+C

7#I
))



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

C$e\===	>? %ug%#&() "D',l,l,l,()
 "D'y)Y	9y)Y	9y)Y	9y)-.
 "D' 24FGI"D'_o_o_o
 "D'y)Y	9y)Y	9y)Y	9
 !4!#8!#8:; "D'y)Y	9y)Y	CDO*
BX [[92>) ?) #T7,,./ $dG,.M,.M,./ $dG%'?%'?%'?%'?%'?%'?%'?%'(C( [[93?[[)  @)5$;&01r   r  c                   8   e Zd Zej                  j                  dg d      d        Zd Zd Zd Z	ej                  j                  dg d      ej                  j                  d	d
dg      d               Z
ej                  j                  d	d
dg      d        Zy)TestExpectilerN   r  c                    ||nt        ||      }t        j                  j                  d      }|j	                  |j                  d      j                         |      }t        t        j                  |d      |j                  |             |j	                  |j                  d      j                         |      }t        t        j                  |d|      t        ||             y )Nr  r  r  rM   rA   r	  )rH  r   r  r  ri   r   r4   rk   	expectilern   r   )rs   rN   rt   r  rv   r  s         r}   test_same_as_meanzTestExpectile.test_same_as_meanl$  s    GB,>ii##B'JJszzrz*1135JA3/<JJszzrz*1135JA3:HQPQ<RSr   c                     t         j                  j                  d      }|j                  |j                  d            }t	        t        j                  |d      |j                  |             y )Nr  r  r  r   rg  )r   r  r  ri   r4   rk   r  r  rs   rt   r  rv   s       r}   test_minimumzTestExpectile.test_minimumw$  L    ii##B'JJszzrz*+3RVVAY?r   c                     t         j                  j                  d      }|j                  |j                  d            }t	        t        j                  |d      |j                  |             y )Nr  r  r  r   r  )r   r  r  ri   r4   rk   r  r
  r  s       r}   test_maximumzTestExpectile.test_maximum|$  r  r   c                 r  
 t         j                  j                  d      }d 

fd}d}|j                  |      }|j                         }|j                  |      }t        j                  |j                  |      ||j                  |            } ||||      }	t        ||j                  |	             y )Nl   b@lN c                     t        j                  ||      }d|z
  ||| k  <   t        j                  ||z  || z
  dz  z        S )Nr\  r   r8   )r   r   r$  )r  r,  rg  r  r  s        r}   r	  z'TestExpectile.test_weights.<locals>.fun$  sC    Q51AE	Aa1fI66!g+Q
233r   c                     t        j                  |       t        j                  |       f}t        j                  || ||f      j
                  S )N)bracketrs  )r   r  r
  r   minimize_scalarrv   )r,  rg  r  r  r	  s       r}   
expectile2z.TestExpectile.test_weights.<locals>.expectile2$  sE    ffQi*G++C23UG1DFFGaHr   r^   r	  )r   r  r  rk   r  ri   r4   )rs   rt   r  r  rZ  r,  rg  r  r   r   r	  s             @r}   test_weightszTestExpectile.test_weights$  s    
 ii##$78	4
	H
 JJqM

**Q-oobjjmUBJJw<OPE7+RZZ_-r   rg  )r  g?rA   g/#    ?rg  rZ  r  r  c           
         t         j                  j                  d      }|j                  |j	                  |            }dD ]C  }t        t        j                  |j                  ||      |      |j                  |             E |j                  |j                               }t        t        j                  ||z   |      t        j                  ||      |z          t        t        j                  ||z
  |      t        j                  ||      |z
         t        t        j                  ||z  |      |t        j                  ||      z         |j                  |j                  |d            }|dk(  rd	 }n|dkD  rd
 }nd } |t        j                  ||z   |      t        j                  ||      t        j                  ||      z          |j                  |j	                  |d            }t        j                  ||      t        j                  ||      k  sJ |j                  |j                  |d            }dD ]b  } |t        j                  d|z
  |z  ||z  z   |      d|z
  t        j                  ||      z  |t        j                  ||      z  z          d t        t        j                  | |      t        j                  |d|z
                y)u  
        See Section 6 of
        I. Steinwart, C. Pasin, R.C. Williamson & S. Zhang (2014).
        "Elicitation and Identification of Properties". COLT.
        http://proceedings.mlr.press/v35/steinwart14.html

        and

        Propositions 5, 6, 7 of
        F. Bellini, B. Klar, and A. Müller and E. Rosazza Gianin (2013).
        "Generalized Quantiles as Risk Measures"
        http://doi.org/10.2139/ssrn.2225751
        r  r  )r  r   rA   )r  r]  r  r^   r  rA   c                     t        | |       y r  )r4   r,  r6  s     r}   	assert_opz:TestExpectile.test_expectile_properties.<locals>.assert_op$  s    1%r   c                     | |k  sJ y r  r   r"  s     r}   r#  z:TestExpectile.test_expectile_properties.<locals>.assert_op$      1uur   c                     | |kD  sJ y r  r   r"  s     r}   r#  z:TestExpectile.test_expectile_properties.<locals>.assert_op$  r%  r   r;   )r  rA   rg  r   N)r   r  r  ri   r  r4   rk   r  r   exponentiallogistic)	rs   rg  rZ  rt   r  rv   r.  rw   r#  s	            r}   test_expectile_propertiesz'TestExpectile.test_expectile_properties$  s~   $ ii##B'JJszzqz)*
   	AaA >eL

1	 JJs()OOAE/OOAU+a/	
 	OOAE/OOAU+a/	
 	OOAE///	
 JJs|||34C<& S[ 	OOAE/OOAU+ooau-.	
 JJszzqaz01OOAU+uq/NN	
N JJs|||34  	A1a!A#U;177EOOAU334	 	OOQBe,__Qag..	
r   c           	         t         j                  j                  d      }|j                  |j	                  d|            }g }t        j
                  dt        j                  d      d      }t         j                  d|d|d d	d	   z
  df   D ]1  }|j                  t        j                  |t        |      
             3 |j                  |j                  |j                  |            dkD        sJ y )Nr  r8   )r,  r  r  rA   r  r   r   rd   r  )r   r  r  ri   paretologspacelog10r_r  rk   r  r  r  diff)rs   rZ  rt   r  rv   e_list	alpha_seqrg  s           r}   test_monotonicity_in_alphaz(TestExpectile.test_monotonicity_in_alpha %  s    ii##B'JJszzAAz./KKRXXc]C8	UU1iYv2v->)>AB 	BEMM%//!5<@A	Bvvbggbjj01A5666r   N)r   r   r   r   r   r   r  r  r  r  r)  r2  r   r   r}   r  r  j$  s    [[W&BCT DT@
@
.4 [[: [[S2t*-_
 ._
B [[S2t*-7 .7r   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                  j                  deddg g d	ggz         d
        Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  dddg dg      ej                  j                  dddg      ej                  j                  dddg      d                      Zd Zej                  j                  dddg      d        Zy)TestLMoment)yףp=
?r5  p=
ף?rB   r2	  r  rB   rA   r   r  r0	  {Gz?g@(\?gףp=
?
ףp=
?g)\(?gRQ @r  {Gz?ffffff @r  g{Gz@gRQ?gGz@gQ?(\?r6  gzG?g
ףp=
?gQ?ffffff?gGz
@g(\?g(\?gQ?q=
ףp?g(\@Q?gGz	@r	  Q?r6  p=
ף @r:  gp=
ף@gq=
ףp@gRQ?Gz?g
ףp=
?r  gHzG?g      @r	  gQ?r  r@  RQ?rB  gQ?p=
ף?gQ@gGz?gQ?gp=
ף?q=
ףp?r3	  gp=
ף?gQ?r7  rC  g@r;  g)\( @gzG@rE  r  gGz?g(\?r  333333?)\(?r  r8  gGz@rg  g(\?g=
ףp=?r:  r5  gHzG?{Gz?rG  g
ףp=
?gףp=
?r?  rF  r7  gQ?r  g?rH  rD  g(\?r5  gQ?gffffff@gQ?g?r=  gGz?r7  g{Gz?gHzG@r<  rA  r>  g\(\?g(\?r9  g(\?rB   )r   r8   rD   c                     d}t        j                  t        |      5  t        j                  |j                  | j                  |j                               d d d        y # 1 sw Y   y xY wNz*`sample` must be an array of real numbers.r   rM   )r   r   r   rk   lmomentri   r  r  r  s      r}   test_dtype_ivzTestLMoment.test_dtype_iv%  sO    >]]:W5 	FMM"**TYYbmm*DE	F 	F 	Fs   ;A""A+c                     d}t        j                  t        |      5  t        j                  t        j                  | j                  t                     d d d        y # 1 sw Y   y xY wrJ  )	r   r   r   rk   rK  r   r   r  r  r  s     r}   test_dtype_iv_non_numericz%TestLMoment.test_dtype_iv_non_numeric"%  sE    >]]:W5 	=MM"((499F;<	= 	= 	=s   9A  A)r  r   rd   r~  c                 <   t        |      r/t        j                  |      r|dk  rt        j                  d       d}t        j
                  t        |      5  t        j                  |j                  | j                        |       d d d        y # 1 sw Y   y xY w)Nr   z5Order is treated as an array; can't do value-based IVz*`order` must be a scalar or a non-empty...r   r  )r/   r   isscalarr   r  r   r   rk   rK  ri   r  )rs   r  rt   r  s       r}   test_order_ivzTestLMoment.test_order_iv(%  sj    ":"++e,KKOP>]]:W5 	>MM"**TYY/u=	> 	> 	>s   1BBrY   c                     d}t        j                  t        |      5  t        j                  |j                  | j                        |       d d d        y # 1 sw Y   y xY w)Nz`axis` must be an integerr   rX   r   r   r   rk   rK  ri   r  )rs   rY   rt   r  s       r}   test_axis_ivzTestLMoment.test_axis_iv0%  sE    -]]:W5 	<MM"**TYY/d;	< 	< 	<   1AA!sortedc                     d}t        j                  t        |      5  t        j                  |j                  | j                        |       d d d        y # 1 sw Y   y xY w)Nz`sorted` must be True or False.r   )rV  rS  )rs   rV  rt   r  s       r}   test_sorted_ivzTestLMoment.test_sorted_iv6%  sI    3]]:W5 	@MM"**TYY/?	@ 	@ 	@rU  standardizec                     d}t        j                  t        |      5  t        j                  |j                  | j                        |       d d d        y # 1 sw Y   y xY w)Nz$`standardize` must be True or False.r   )rY  rS  )rs   rY  rt   r  s       r}   test_standardize_ivzTestLMoment.test_standardize_iv<%  sI    8]]:W5 	JMM"**TYY/[I	J 	J 	JrU  r   r:   r  FT	presortedc                 ^   |j                  g d      }|s*t        j                  |      dd  j                  |d         }|rt	        | j
                        n| j
                  }|j                  |      }t        j                  ||||      }t        |||j                  |      dz
            y )N)g0ʻEH?gk?gz[?g+3 ?r8   r   )rY  rV  )	ri   ro   rp   multiplyrV  r  rk   rK  r4   )rs   r  rY  r\  rt   r   r  r   s           r}   test_lmomentzTestLMoment.test_lmomentB%  s     jj B C &&+ab/**3q62C$-vdii 499zz$mmD%[SSE!21!456r   c                    |j                   }|j                  | j                        }t        j                  |j                  ||            }|j                  t        j                  |      |      }t        ||d       |j                  }|j                  g d      }t        j                  |j                  ||            }t        j                  |j                  |t        |                  }t        ||       y )Nr  r  r  )	rF  ri   r  rk   rK  r  r4   r  r(   )rs   rt   rN   rM
  r   r   s         r}   
test_dtypezTestLMoment.test_dtypeW%  s    

DII&mmBIIfe45iif-u5St,O,mmBIIfe45mmBIIf.>r.BCDS!r   c                    t         j                  j                  d      }|j                  d      }t        j                  |j                  |      |      }|j                  t        j                  ||            }t        ||       y )Nl   jU3a )r^   r_   r  rX   )r   r  r  rk   rK  ri   r4   )rs   rY   rt   r  rv   r   r   s          r}   r_  zTestLMoment.test_axisd%  sd     ii##$9:JJHJ%mmBJJqM5jjqt45S!r   N)r   r   r   r  mathrr   r  not_integersrL  r"   rN  r   r   r   rQ  rT  rX  r[  r_  ra  r_  r   r   r}   r4  r4  %  sy   
ND dhh9LF
 = =
 [[WlaR)5M&MN> O> [[V\2< 3<
 [[X|4@ 5@
 [[]L9J :J
 [[Wq!\&:;[[]UDM:[[[5$-87 9 ; <7$" [[VaV," -"r   r4  c                   4   e Zd Zej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                      Zd	 Zej                  j                  d
      ej                  j                  d      d               Z	ej                  j                  d      d        Z
ej                  j                  d      d        Zd Zej                  j                  d      d        Zd Zd Zy)TestXP_MeanrY   Nr   rd   )r  r8   r  NTr{  Fc                    t         j                  j                  d      }|j                  d      }|j                  |      }d x}}	|r;|j                  d      }|j                  |      }	t        j                  ||      \  }}t        ||	||      }
t        j                  ||||      }t        |
|j                  |             y )N   -fH r  r   )r  rY   r{  )r   r  r  ri   r  r   r	  r4   )rs   rt   rY   r  r{  r  rv   x_xpr  w_xpr   r   s               r}   test_xp_mean_basiczTestXP_Mean.test_xp_mean_basicp%  s     ii##N3JJy!zz!}D

6"A::a=D&&q!,DAqtTxHjjAD8DRZZ_-r   c                     |j                  d      |j                  d      }}d}t        j                  t        |      5  t        ||       d d d        y # 1 sw Y   y xY w)Nr   r;   r  r   r	  )r   r   r   r   r   r   )rs   rt   rv   r  r  s        r}   test_non_broadcastablez"TestXP_Mean.test_non_broadcastable%  sM    yy~rxx{1C]]:W5 	#Q"	# 	# 	#s    AA rV  rU  c                    |j                  g d      }t        |j                  g d      |      }t        ||j                  |j                               t        |j                  g d      |      }t        ||j                  t        j
                                t        |j                  g d      |      }t        ||j                  t        j
                               y )Nr:  r
  r	  )r   r   r   )r   r   r   )ri   r   r4   rr   r   r  )rs   rt   r  r   s       r}   r  zTestXP_Mean.test_special_cases%  s     **]+rzz,/ARZZ/0rzz,/ARZZ01rzz,/ARZZ/0r   r  c                 @   |j                  d      }|dk(  }|j                  ||j                  |      }t        |      r2t	        j
                  t        d      5  t        |d       d d d        n1t	        j
                  t        d      5  t        |d       d d d        t        |      }t        |d      }|j                  |j                        }t        ||       t        ||       t        |d	      }|j                  ||          }t        ||       |j                  d
      }|j                  ||j                  |      }t        |j                  d      |d	      }|j                  ||          }t        ||       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r9   r  r   r   r   r   rW  r   r^   )r  r   )r   r  rr   r%   r   r   r  r   r   ri   r5   rn   r4   r  )	rs   rt   rv   r0  r  r  r   r   r  s	            r}   rK  zTestXP_Mean.test_nan_policy%  s_    IIcNQHHT2661% y0OP 0w/0 0 z1PQ 0w/0 {k2jj c"c" qV,ggahS! ''"+((41ryy~w6JggahS!/0 00 0s   FFFFc                 B   |j                  d      }|j                  |dk(  |j                  |      }d}t        t        ||      5  t        |t        j                  z  d      }|j                  |j                        }t        ||       d d d        y # 1 sw Y   y xY wNr   r9   zAfter omitting NaNs...r?  r   r   )	r   r  rr   r$   r   r   r   ri   r5   rs   rt   rv   r  r   r   s         r}   test_nan_policy_warnsz!TestXP_Mean.test_nan_policy_warns%  s    IIcNHHQ!VRVVQ' +w2> 	&1rvv:&9C**RVV$CC%	& 	& 	&   ABBc                 L   d}t        j                  t        |      5  t        |j	                  g             }|j	                  |j
                        }t        ||       d d d        d}t        j                  t        |      5  t        |j	                  g g      d      }|j	                  |j
                  g      }t        ||       d d d        t        |j	                  g g      d      }|j	                  g       }t        ||       y # 1 sw Y   xY w# 1 sw Y   PxY wNz,One or more sample arguments is too small...r   z2All axis-slices of one or more sample arguments...r   rX   r   )r   r_  r   r   ri   rr   r5   rs   rt   r  r   r   s        r}   re  zTestXP_Mean.test_empty%  s    @\\,G< 	&2::b>*C**RVV$CC%	&
 G\\,G< 	&2::rd+!4C**bffX&CC%	&
 rzz2$'a0jjnS!	& 	&	& 	&   ADADDD#4ignore:overflow encountered in reduce:RuntimeWarningc                    |j                  |j                        j                  }t        j                  ||gt        j                        }|j	                  |      }t        j
                  d      5  t        |      }t        j                  |      }t        j                  j                  |t        j                         t        ||j	                  |             d d d        t        ||j                        }|j	                  t        j                  t        j                  |t        j                                    }t        ||       y # 1 sw Y   txY w)NrM   r   )over)r   rF  r
  r   ri   r  r   rn   r  r   r  r4   r   rs   rt   r
  x_nprj  r   r   s          r}   ra  zTestXP_Mean.test_dtype%  s     hhrzz"&&zz3*BJJ7zz$ [[h' 	24.C''$-CJJ##C0CC1		2 t2::.jjD

!CDES!	2 	2s   4A*EEc                     |j                  d      }|j                  d      }t        t        |      t        |             t        t        ||      t        ||             y )Nr^   r   r	  )r   r5   r   r   s       r}   test_integerzTestXP_Mean.test_integer%  sF    IIbMIIcNXa[1A.A0FGr   c                 X   t         j                  j                  d      }|j                  d      \  }}}}t        |j	                  ||dz  z         |j	                  ||dz  z               }t        j
                  ||dz  z   ||dz  z         }t        ||j	                  |             y )Nri  )r:   r  r  r	  )r   r  r  r   ri   r	  r4   )	rs   rt   r  rv   rw   wxwyr   r   s	            r}   r  z TestXP_Mean.test_complex_gh22404%  s    ii##N3zz'*1b"rzz!ad(+RZZRU
5KLjjQrT22:6RZZ_-r   )r   r   r   r   r   r   rl  rn  r   r  rK  rt  re  ra  r  r  r   r   r}   rf  rf  n%  s%   [[V%;<[[Yt5[[Z%7. 8 6 =. # [[ WX[[ VW1 X Y1 [[9""@ [[ QR	& S	&"" [[>"""H.r   rf  c                      e Zd Zej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      ej                  j                  d	d
dg      d                             Zd Zd Zej                  j                  d      d        Z
 ed      d        Zd Zej                  j                  d      d        Zd Zd Zy)
TestXP_VarrY   rg  r{  FTr   r   r   r   rW  r   c                 *   t         j                  j                  d      }|j                  d      }t         j                  }|dk(  rB|j                  |j                        dkD  }	t         j
                  ||	<   t         j                  }|j                  |      }
t        |
||||      }t        j                         5  t        j                  ddt                |||||	      }d d d        t        ||j                               y # 1 sw Y   %xY w)
Nri  r  r   r  rA   )rY   r{  r   r   r   r>  )rY   r{  r  )r   r  r  r   r  rr   nanvarri   r   r   r   r   r   r4   )rs   rt   rY   r{  r   r   r  rv   var_refnan_maskrj  r   r   s                r}   test_xp_var_basiczTestXP_Var.test_xp_var_basic%  s    
 ii##N3JJy!&&zzqwwz/#5H&&AhKiiGzz!}dZ!+- $$& 	L##=~O!$
KC	L
 	RZZ_-	L 	Ls   =(D		Dc                     t        |j                  ddg      d      }t        ||j                  |j                               y )Nr   r   r9   r   )r   ri   r4   rr   )rs   rt   r   s      r}   r  zTestXP_Var.test_special_cases&  s2    bjj"b*q9RZZ/0r   c                 \   |j                  d      }|dk(  }|j                  ||j                  |      }t        |      }t        |d      }|j	                  |j                        }t        ||       t        ||       t        |d      }|j                  ||          }t        ||       y )Nr   r9   rW  r   r   )r   r  rr   r   ri   r5   r   r4   )rs   rt   rv   r0  r  r  r   r   s           r}   rK  zTestXP_Var.test_nan_policy&  s    IIcNQHHT2661% qzq[1jj c"c" aF+ffQuXS!r   r  c                 B   |j                  d      }|j                  |dk(  |j                  |      }d}t        t        ||      5  t        |t        j                  z  d      }|j                  |j                        }t        ||       d d d        y # 1 sw Y   y xY wrr  )	r   r  rr   r$   r   r   r   ri   r5   rs  s         r}   rt  z TestXP_Var.test_nan_policy_warns.&  s    IIcNHHQ!VRVVQ' +w2> 	&!bff*8C**RVV$CC%	& 	& 	&ru  )r   c                     d}t        j                  t        |      5  t        |j	                  dd|j
                  g      d       d d d        y # 1 sw Y   y xY w)Nr   r   r   r8   r   r   )r   r   r   r   ri   rr   r  s      r}   rD
  z TestXP_Var.test_nan_policy_raise:&  sM     2]]:W5 	DBJJ1bff~.7C	D 	D 	Dr  c                 L   d}t        j                  t        |      5  t        |j	                  g             }|j	                  |j
                        }t        ||       d d d        d}t        j                  t        |      5  t        |j	                  g g      d      }|j	                  |j
                  g      }t        ||       d d d        t        |j	                  g g      d      }|j	                  g       }t        ||       y # 1 sw Y   xY w# 1 sw Y   PxY wrw  )r   r_  r   r   ri   rr   r5   rx  s        r}   re  zTestXP_Var.test_emptyA&  s    @\\,G< 	&"**R.)C**RVV$CC%	&
 G\\,G< 	&"**bT*3C**bffX&CC%	&
 bjj"&Q/jjnS!	& 	&	& 	&ry  rz  c                 j   |j                  |j                        j                  }t        j                  ||dz  gt        j                        }|j	                  |      }t        |      }t        j                  |      }t        j                  j                  |t        j                         t        ||j	                  |             t        ||j                        }|j	                  t        j                  t        j                  |t        j                                    }t        ||       y )Nr8   rM   )r   rF  r
  r   ri   r   r   r  r   r  r4   r   r}  s          r}   ra  zTestXP_Var.test_dtypeR&  s     hhrzz"&&zz3A,bjj9zz$dmffTl


RVV,RZZ_- d"**-jj

4rzz BCDS!r   c                     |j                  d      }|j                  d      }t        t        |      t        |             y )Nr^   r   )r   r5   r   r   s       r}   r  zTestXP_Var.test_integerd&  s.    IIbMIIcN
GAJ/r   c                    t         j                  j                  d      }|j                  d      \  }}t        |j	                  ||dz  z               }t        j
                  ||dz  z         }t        ||j	                  |      d       y )Nri  r  r  F)check_dtype)r   r  r  r   ri   r   r4   r  s          r}   r  zTestXP_Var.test_complex_gh22404j&  sm    ii##N3zz'"1bjjQrT*+ffQ2XRZZ_%@r   N)r   r   r   r   r   r   r  r  rK  r   rt  r   rD
  re  ra  r  r  r   r   r}   r  r  %  s    [[V%;<[[Z%7[[\Aq62[[\K+@A. B 3 8 =.,1
"" [[ QR	& S	& &D 'D"" [[>""0Ar   r  Fprivatec           	      2   t         j                  j                  d      }|j                  d      }| j                  |      }d}t	        |||       \  }}t        || j                  |             t        ||       d }t	        |||       \  }}t        || j                  |j                                      t        |d       d}t	        |d   ||       \  }}t        || j                  t        j                  |d                      t        ||       y )	Nl   ~Mr  r  r   rs	  r   r8   r  )	r   r  r  ri   r   r5   r   r  
atleast_1d)rt   r  r  rv   rY   x_outaxis_outs          r}   test_chk_asarrayr  r&  s    
))


.C		#B


2AD"14B7OE8E2::b>*4 D"14B7OE8E2::bhhj121D"1W:DR@OE8E2::bmmBwK&@AB4 r   rS  z!JAX+wilcoxon+'exact' incompatibler	  c                 t   t         j                  j                  d      }|j                  |j                  d            }|j                  |j                  d            }| t        j
                  k(  r|f}n*| t        j                  k(  r|t        j                  f}n||f} | |ddi} | |ddi}t        |j                  |j                         t        |j                  |j                         | j                   d}t        j                  t        |      5   | |ddd d d d        y # 1 sw Y   y xY w)	Nl   0:00 r^   r  r  ri  z%\(\) got multiple values for argumentr   )r  ri  )r   r  r  ri   rk   wilcoxonr  r   r  r5   r!  r  r   r   r   r  )	r	  rt   r  rv   rw   rs  r   r  errs	            r}   test_rename_mode_methodr  &  s     ))

 4
5C


3::b>"A


3::b>"A
ennt		7<< 1v
t
$G
$C#7#DCMM4>>2CJJ,ll^@
AC	y	, 1T'01 1 1s   
D..D7r  )r  rc  r{
  r   collectionsr   	itertoolsr   hypothesis.extra.numpyextranumpyr,  r1  r^  numpy.testingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   scipy.statsrk   scipy.stats._ksstatsr   scipy.special._testutilsr   scipyr   r   common_testsr   scipy.stats._axis_nan_policyr   r   r   r   r   r  r   r   r   r   r   r    scipy._lib._utilr!   scipy.conftestr"   scipy._lib._array_apir#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   scipy._lib._array_api_no_0dr4   r5   r6   scipy._external.array_api_extra	_externalarray_api_extraro   r7   lazy_xp_modulesr   r   r
  r  rj   r  r   r   r   r   r   rK   r   r   r  r  r3  r  r  r  r6  rx  r  r  r  r  r!  r*  r)  r2  ri  rg  r  r  r  r  r  r  r6  r4  rO  rB  rq  ro  r  r  r  r  r  r  r  r3  	compositer7  r@  r9  rp  PowerDivCaser7  r  r   r  r  r  r  r  r  r  r  r  r  r-  r#  rQ  r   r  r  r   r  r  r	  r
  r  r  r4  rN  rm  rx  r  r  r  r  r  r  r  r  r  r	  r	  r
	  r	  r	  r4	  r,	  r9	  r7	  rL	  rP	  rT	  rW	  rS	  rY	  r8  r	  rV	  r	  r9  r	  r	  r
  r	  r
  r	
  r$
  r"
  rT
  rQ
  r
  r
  r
  r
  r
  r
  r.  rB  rS  rM  r  r  r  r  r  r  rK  r4  rf  r  r  r  r  r  r   r   r}   <module>r     sj    	  "  % %  , , ,  * & &   ( - # -T TU U & .N N N N N
 Y X - - . ';;// KK11  

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