
    Cpj	                    f   S SK r S SKrS SKrS SKrS SKJr  S SKrS SKJ	r	  S SK
JrJrJrJrJrJrJr  S SKrS SKJr  S SKJrJrJr  S SKJrJrJrJr  SS	KJr  S
SK J!r!J"r"  S SK#J$r$  S SK%J&r&  S SK'J(r(  S SK)J*r*J+r+J,r,J-r-  S SK.J/s  J0r1  S SK2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;  S SK<J=r=J>r>J?r?  \/r@\R                  R                  rB\C" \(5      r( S SKDrDS\DR                  S'   S SKFJGrH  SrI/ SQrK/ SQrL/ SQrM/ SQrN/ SQrO/ SQrP/ SQrQ/ SQrR/ SQrS/ SQrTS  rU " S! S"5      rV " S# S$5      rW\4" \R                  5       " S% S&5      5       rY\R                  R                  S'5       " S( S)5      5       r[ " S* S+5      r\\R                  R                  S,5       " S- S.5      5       r] " S/ S05      r^\4" \R                  5       " S1 S25      5       r`\4" \R                  5       " S3 S45      5       rb\4" \R                  5       " S5 S65      5       rd\4" \R                  5       " S7 S85      5       rf\4" \R                  5       " S9 S:5      5       rhS; ri\4" \R                  5       " S< S=5      5       rk " S> S?5      rl\4" \R                  5       " S@ SA5      5       rn/ SBQro\4" \R                  5       " SC SD5      5       rq\4" \R                  5       " SE SF5      5       rs " SG SH5      rt " SI SJ5      ru\4" \R                  5       " SK SL5      5       rw/ SMQrx " SN SO5      ry " SP SQ\y5      rz " SR SS5      r{ " ST SU\{5      r| " SV SW5      r}\4" \R                  5       " SX SY5      5       r " SZ S[\y5      r " S\ S]\{5      r\4" \GR                  \GR                  \GR                  5       " S^ S_5      5       r " S` Sa5      r " Sb Sc5      r\4" \GR                  5       " Sd Se5      5       r\4" \GR                  5       " Sf Sg5      5       r\R                  GR                  SShSi9 " Sj Sk5      5       rg! \J a    SrI GNJf = f)l    N)partial)RandomState)assert_array_equalassert_almost_equalassert_array_lessassert_array_almost_equalassert_assert_allcloseassert_equal)raises)optimizestatsspecial)
_abw_state_get_As_weibull_Avals_weibull_yeojohnson_transform   )check_named_results   )_get_wilcoxon_distr_get_wilcoxon_distr2)swilk)_binary_search_for_binom_tst)distcont)SmallSampleWarningtoo_small_nd_omittoo_small_1d_omittoo_small_1d_not_omit)	is_torchmake_xp_test_caseeager_warnsxp_ravelis_numpyxp_default_dtypeis_array_api_strictis_jaxis_lazy_array)xp_assert_closexp_assert_equalxp_assert_lessAggbackendTF)
jt?Zd;?V-?      ?gX9v?-?x&1?+?+?r1   )
r0   r.   r1   r3   灕Cl?r0   r/   r1   r.   V-?)
ʡE?g/$?r6   r4   ףp=
?r5   r1   r4   r/   r/   )
gGz?r3   r5   r1   r9   r5   r0   r/   r3   r/   )
r0   r0   gCl?Gz?r3   rh|?r/   r2   g\(\?r/   )
羟/$?gh|?5?r<   r6   r7   r3   r9   r0   g1Zd?r/   )
r:   Mb?r/   gjt?r0   r1   g}?5^I?g)\(?r/   r3   )
r0   r1   r.   r1   r3   r/   r0   r/   r3   r.   )
r3   r0   r/   r9   r/   r=   r=   r0   r4   r8   )
r8   r9   r;   r5   r6   r6   r8   r0   r=   r6   c                  j    [         R                  " [        R                  R                  " U 0 UD65      $ N)nplogr   gammarvs)argskwargss     \/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/stats/tests/test_morestats.py_old_loggamma_rvsrG   H   s#    66%++//426233    c                   &    \ rS rSrS rS rS rSrg)TestBayes_mvsL   c                 >   / SQn[         R                  " U5      u  p#n[        UR                  S5        [	        UR
                  SSS9  [        UR                  S5        [	        UR
                  SSS9  [        UR                  S	S
S9  [	        UR
                  SSS9  g )N   	            rR            "@gURH#j@gV[%@ư>rtol      $@gai	@gӇu8@&.>_紫@   decimalgYs?g1O@+=)r   	bayes_mvsr   	statisticr
   minmaxselfdatameanvarstds        rF   
test_basicTestBayes_mvs.test_basicM   s     '.3DNNC0%L!	# 	CMM40

$K"	$ 	CMM+=rJ

$L"	$rH   c                 B    [        [        [        R                  / 5        g r?   )assert_raises
ValueErrorr   rb   rf   s    rF   test_empty_inputTestBayes_mvs.test_empty_input_   s    j%//26rH   c                     [         R                  " S5      nSn[        R                  " U5      nU H  n[	        XB5        M     g )N   )rc   rd   )r@   aranger   rb   r   )rf   x
attributesresis        rF   test_result_attributes$TestBayes_mvs.test_result_attributesb   s4    IIbM,
ooa A. rH    N)__name__
__module____qualname____firstlineno__rk   rq   rz   __static_attributes__r|   rH   rF   rJ   rJ   L   s    $$7/rH   rJ   c                   ,    \ rS rSrS rS rS rS rSrg)TestMvsdistk   c                 t   / SQn[         R                  " U5      u  p#n[        UR                  5       S5        [	        UR                  S5      SSS9  [        UR                  5       S5        [	        UR                  S5      SS	S9  [        UR                  5       S
SS9  [	        UR                  S5      SSS9  g )NrM   rT   ?rU   ra   rW   rY   rZ   r[   r\   r]   r^   r`   )r   mvsdistr   rh   r
   intervalre   s        rF   rk   TestMvsdist.test_basicl   s    &t,3DIIK-c* -AGL	N 	CHHJ-S) ,?EJ	L 	CHHJ(:BGS) ,@FK	MrH   c                 B    [        [        [        R                  / 5        g r?   rn   ro   r   r   rp   s    rF   rq   TestMvsdist.test_empty_input{   s    j%--4rH   c                 H    S/n[        [        [        R                  U5        g Nr   r   rf   rg   s     rF   test_bad_argTestMvsdist.test_bad_arg~   s    sj%--6rH   c                    [         R                  " 5          [         R                  " S[        5        [        R
                  " / SQ5       Vs/ s H  oR                  5       PM       n[        R
                  " / SQ5       Vs/ s H  oR                  5       PM       nS S S 5        g s  snf s  snf ! , (       d  f       g = f)Nerrorr   r      r   r   r         )warningscatch_warningssimplefilterRuntimeWarningr   r   rh   rf   rv   s     rF   
test_warnsTestMvsdist.test_warns   sy     $$&!!'>:$}}Y787!VVX78$}}_=>=!VVX=> '&8> '&s)   6B/B%%B/B*B/%
B//
B=r|   N)	r}   r~   r   r   rk   rq   r   r   r   r|   rH   rF   r   r   k   s    M57
?rH   r   c            	       4   \ rS rSrS r\R                  R                  S/ SQ5      S 5       r\	" SSS9\	" S	SS9\R                  R                  S
/ S/SS/45      S 5       5       5       r
S rS rS r\R                  R                  S/ SQ5      S 5       rSrg)TestShapiro   c                 z   / SQn[         R                  " UR                  U5      5      nUu  pE[        XAR                  S5      5        [        UR                  UR                  S5      5        [        XQR                  S5      5        [        UR
                  UR                  S5      5        / SQn[         R                  " UR                  U5      5      n[        UR                  UR                  S5      5        [        UR
                  UR                  S5      5        [         R                  R                  SSS	S
S9n[         R                  " UR                  UR                  5       5      5      n[        UR                  UR                  S5      5        [        UR
                  UR                  S5      5        g )N)g)\(?g{Gz@gq=
ףp@gHzG$@g@gQ	@gq=
ףp?gQ@gzG?g      @Q?gRQ?gQ	@g(\?gzG?gzG@g(\#@g333333@gGz?gp=
ף@gR?g*Ì?)g(\?g=
ףp=?g\(\@gffffff@\(\?g(\?gGz@g(\gףp=
@皙?g)\(?gRQr   gp=
ף?g@
ףp=
?g{Gz?g\(\@g{Gz@gQ@g"&GY?gTx]?r   r   d   iNa locscalesizerandom_stategFE?gj~ٴ?)	r   shapiroasarrayr)   rc   pvaluenormrC   tolist)rf   xpx1shapiro_testwpwx2x3s           rF   rk   TestShapiro.test_basic   s=   8 }}RZZ^4::&678..

;K0LMJJ'789++RZZ8H-IJ& }}RZZ^4..

;K0LM++RZZ-HIZZ^^8^L}}RZZ		%<=..

;K0LM++RZZ8H-IJrH   dtypeNfloat32float64c                 b   / SQnSUc  UO
[        X!5      0nUR                  " S0 UD6nUR                  " S0 UD6n[        R                  " UR                  " U40 UD65      n[	        UR
                  UR                  " U40 UD65        [	        UR                  UR                  " U40 UD65        g )N)gn?gjt?gffffff?gMb?gjt?g;On?gjt?gX9v?gS?g(\?gI+?gʡE?gx?g|?5^?r   gCl?g1Zd@gS@g(\	@gGz@g rh@g"~j@gQ@gtV@gʡE @r   )gr?)g,NM?)getattrr   r   r   r)   rc   r   )rf   r   r   x4
W_expected
p_expectedr   s          rF   test_basic2TestShapiro.test_basic2   s    ? 5=%gb6HIZZ:E:
ZZ;U;
}}RZZ%<e%<=..

:0O0OP++RZZ
-Le-LMrH   	jax.numpyz(lazy backend -> limited input validationreasonz
dask.arrayrv   r   r   c                 d   [        [        [        US9   [        R                  " UR                  U5      5      n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        S S S 5        g ! , (       d  f       g = fNmatchr   )
r"   r   r   r   r   r   r*   rc   nanr   )rf   rv   r   rx   s       rF   test_not_enough_values"TestShapiro.test_not_enough_values   sk     +3HRP--

1.CCMM2::bff+=>CJJ

266(:; QPPs   BB!!
B/c                    UR                  S5      n[        R                  " U5      S   R                  UR                  5      n[
        R                  " UR                  U5      5      n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        g )NrY   rO   )ru   xpxatsetr   r   r   r   r*   rc   r   )rf   r   rv   r   s       rF   test_nan_inputTestShapiro.test_nan_input   s    IIcNFF1IaLRVV$}}RZZ]3..

2660BC++RZZ-?@rH   c                 *   [         R                  " / SQ5      u  p#UR                  n[         R                  " UR	                  X$S95      nUR	                  SUS9nUR	                  SUS9n[        UR                  USS9  [        UR                  USS9  g )N)i i = i@ r   gPq~?gF?Ơ>rW   )r   boxcoxr   r   r   r)   rc   r   )rf   r   	trans_valmaxlogr   rx   ref_statistic
ref_pvalues           rF   test_gh14462TestShapiro.test_gh14462   s    
 "LL)AB	

mmBJJyJ>? 

#35
AZZuZ=
}4@

JT:rH   c                 \   [         R                  " UR                  / SQ5      5      nUR                  S:  d   e/ SQn[         R                  " UR                  U5      5      n[	        UR
                  UR                  S5      5        [	        UR                  UR                  S5      5        g )N)g9B.?        r   r   )g1gIۿg0!?gr??gel?)r   r   r   r   r)   rc   )rf   r   rx   rv   s       rF   test_length_3_gh18322!TestShapiro.test_length_3_gh18322   sy     mmBJJ'EFGzzQ KmmBJJqM*rzz2B'CD

BJJ$?@rH   n)r   r   r   rR         r            i  c                    [         R                  R                  U5      nUR                  U5      n[         R                  " US-  [         R
                  S9n[         R                  " U5      XAS-     -
  n[        XeS5      u  pxn	UR                  U5      n[        R                  " U5      n
UR                  XtR                  S9nUR                  XR                  S9n[        U
R                  USS9  [        U
R                  USS9  g )Nr   r   r   r   rW   )r@   randomdefault_rngstandard_normalzerosr   sortr   r   r   r   r   r)   rc   r   )rf   r   r   rngrv   ayr   r   _rx   s              rF   test_against_as181TestShapiro.test_against_as181   s    ii##A&"HHQ!V2::.GGAJ6"',Q1~$1JJqMmmA

=
@ZZ
''Z:
}4@

JT:rH   r|   N)r}   r~   r   r   rk   pytestmarkparametrizer   skip_xp_backendsr   r   r   r   r   r   r|   rH   rF   r   r      s    K: [[W&BC
N D
N k*TUl+UV[[S2sQF"34< 5 W V<A;&A  [[S"WX; Y;rH   r   z'ignore: As of SciPy 1.17: FutureWarningc                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS r\R                  R!                  S/ SQ5      S 5       rS rSrg)TestAnderson   c                 t   [        S5      nUR                  SS9nUR                  SS9n[        R                  " U5      u  pEn[        US S U5        [        R                  " U5      u  pEn[        XESS  5        [        R                  " S5      nSUS'   [        R                  " U5      u  pEn[        US5        g )	NI2   r   
   r   g	@)	r   standard_exponentialr   r   andersonr   r@   onesr
   )rf   rsr   r   Acritsigvs           rF   test_normalTestAnderson.test_normal   s    $$$"$-R(~~b)$s)Q'~~b)!"#Y'GGBK!~~a( 	8$rH   c                 V   [        S5      nUR                  SS9nUR                  SS9n[        R                  " US5      u  pEn[        XESS  5        [        R                  " SS9   [        R                  " US5      u  pEnS S S 5        [        XES   :  5        g ! , (       d  f       N= f)	Nr   r   r  exponr  ignoreallr  )	r   r  r   r   r  r   r@   errstater	   )rf   r  r   r   r	  r
  r  s          rF   
test_exponTestAnderson.test_expon  s    $$$"$-R(~~b'2!"#Y'[[X& >>"g6LAS 'H '&s   &B
B(c           	         [         R                  " S5      nSUS'   [        R                  " US5      u  p#n[	        U5      n[        R
                  R                  U5      u  pg[        R
                  R                  XU5      n[        R
                  R                  XU5      n	[         R                  " SUS-   5      n
U* [         R                  " SU
-  S-
  XS S S2   -   -  5      -
  n[        X+5        g )Nr   r   r   gumbelr   r   r  )r@   r  r   r  lengumbel_lfitlogcdflogsfru   rh   r
   )rf   r  a2r
  r  r   xbarsr  r  ry   expected_a2s               rF   test_gumbelTestAnderson.test_gumbel!  s     GGCL!q(3#F..$$Q'&&q2$$Qa0IIa1b277AaC!Gtt0D#EFF(rH   c                 B    [        [        [        R                  S/SS9  g Nr   plate_of_shrimpdist)rn   ro   r   r  rp   s    rF   r   TestAnderson.test_bad_arg1  s    j%..1#<MNrH   c                 ~    [        S5      nUR                  SS9n[        R                  " U5      nSn[	        X45        g )Nr   r   r  rc   critical_valuessignificance_level)r   r  r   r  r   )rf   r  rv   rx   rw   s        rF   rz   #TestAnderson.test_result_attributes4  s:    $###,nnQK
C,rH   c                     [        S5      nUR                  SS9n[        R                  " US5      u  p4n[        R                  " US5      u  pgn[	        Xc5        g )Nr   r   r  r  r  )r   r  r   r  r
   )	rf   r  rv   A1crit1sig1A2crit2sig2s	            rF   test_gumbel_lTestAnderson.test_gumbel_l;  sN     $II3I..H54..J74rH   c                    [        S5      nUR                  SS9n[        R                  " S5      nSUS'   [        R
                  " US5      u  pEn[        R
                  " US5      u  pxn	[        XESS  5        [        XxS   :  5        g )	Nr   r   r  r/   r   gumbel_rr  r  )r   r  r@   r  r   r  r   r	   )
rf   r  r   r   r0  r1  r2  r3  r4  r5  s
             rF   test_gumbel_rTestAnderson.test_gumbel_rE  sz     $YYCY WWS\ 1..Z84..Z84"BCj)2YrH   c                    [         R                  " / SQ5      n[        R                  " US5      nUR                  R
                  u  p4n[        X4U4SSS9  [        UR                  SSS9  UR                  UR                  S   :  d   eS	U-  n[        US
SS9  [        S   n[        S   nXvS-
  S-  X-
  -  -   n	[         R                  " UR                  U	:  5      (       d   e[        UR                  U	SS9  g )N)
            r@        rA  u   rB  weibull_min)g
ףp=
@gzGX@gQS@Mb`?rW   gp=
ף?MbP?r   r   g?r  皙?g?atol)r@   arrayr   r  
fit_resultparamsr
   rc   r,  r   r  )
rf   rv   rx   mr   r   cAs40As45As_refs
             rF   test_weibull_min_case_A$TestAnderson.test_weibull_min_case_AT  s    HHGHnnQ.--)=DIu48}}s2215555E6-b!b!S:.$+>>vvc))F23333++V$?rH   c                     [         R                  " / SQ5      nSn[        R                  " [        US9   [
        R                  " US5        S S S 5        g ! , (       d  f       g = f)N)J   9   0        rP   F      rY    ;            iF  z/Maximum likelihood estimation has converged to r   rD  )r@   rK  r   r   ro   r   r  rf   rv   messages      rF   test_weibull_min_case_B$TestAnderson.test_weibull_min_case_Bg  sB    HH 5 6C]]:W5NN1m, 655s   A
A#c                 @   [         R                  " / SQ5      * nSnSn[        R                  " [        US9n[        R
                  " [        US9nU   U   [        R                  " US5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)	r=  K   rW     r   rP   =   +   rY  z:Critical values of the test statistic are given for the...z;An error occurred while fitting the Weibull distribution...rb  rD  )	r@   rK  r   warnsUserWarningr   ro   r   r  )rf   rv   wmessageemessagewcontextecontexts         rF   test_weibull_warning_error'TestAnderson.test_weibull_warning_erroro  sf     XX=>>OP<<8<==8<xNN1m,  XXxxXXs$   BA>-B>
B	B
Bdistname)r   r  r  extreme1r  r9  logisticrD  c                    [         R                  R                  S5      nUS;   a  SOUn[        [        U5      n[
        U   nUR                  " USUS.6n[        R                  " Xa5      nUR                  R                  (       d   eg )Nl   'Dah$>   r  ru  r  r   r   r   )
r@   r   r   r   r   r   rC   r  rL  success)rf   rt  r   real_distnamer(  rM  rv   rx   s           rF   test_anderson_fit_params%TestAnderson.test_anderson_fit_paramsz  su    
 ii##$67'/3I'I& 	um,-(HHf4c:nnQ)~~%%%%rH   c                     Sn[        [        SU-  5      [        S   5        [        R                  n[        [        SU-  5      [        S   5        g )Nr   r  r   )r   r   r   r@   inf)rf   rN  s     rF   test_anderson_weibull_As%TestAnderson.test_anderson_weibull_As  s@    _QqS)>"+=>FF_QqS)>!+<=rH   r|   N)r}   r~   r   r   r  r  r"  r   rz   r6  r:  rS  re  rr  r   r   r   r{  r  r   r|   rH   rF   r   r      sh    %.) O-  @&-	- [[ZOP	&P	&>rH   r   c                      \ rS rSrS rS rS r\R                  R                  SSS\R                  " SS	\R                  R                  S
9\R                  " SS\R                  R                  S
9\R                  " SS\R                  R                  S
9/5      S 5       r\R                  R                  S/ SQ5      S 5       rSrg)TestAndersonMethodi  c                     Sn[         R                  " [        US9   [        R                  " / SQS5        S S S 5        g ! , (       d  f       g = f)NzAs of SciPy 1.17, users...rb  r   r   )r   rl  FutureWarningr   r  rf   rd  s     rF   test_warningTestAndersonMethod.test_warning  s/    .\\-w7NN9f- 877s	   ?
Ac                     Sn[         R                  " [        US9   [        R                  " / SQSSS9  S S S 5        g ! , (       d  f       g = f)Nz`method` must be either...rb  r   r   	ekki-ekkimethod)r   r   ro   r   r  r  s     rF   test_method_input_validation/TestAndersonMethod.test_method_input_validation  s1    .]]:W5NN9f[A 655s	   >
Ac                    [         R                  R                  S5      nSn[        R                  " [
        US9   [        R                  " UR                  S9n[        R                  " / SQSUS9  S S S 5        Sn[        R                  " [
        US9   [        R                  " S	S
9n[        R                  " / SQSUS9  S S S 5        [        R                  " SUS9n[        R                  " / SQSUS9nUR                  S	-  n[         R                  " U5      U:X  d   e[        R                  " [         R                  R                  S5      S9n[        R                  " / SQSUS9n[        R                  " [         R                  R                  S5      S9n[        R                  " / SQSUS9nUR                  UR                  :X  d   e[        R                  " [         R                  R                  S5      S9n[        R                  " / SQSUS9nUR                  UR                  :w  d   eg ! , (       d  f       GN= f! , (       d  f       GN= f)Nl   7.!Y zThe `rvs` attribute...rb  )rC   r   r   r  zThe `batch` attribute...r  )batchrO   n_resamplesr   l   Fp r   r   l   Fp )r@   r   r   r   rl  rm  r   MonteCarloMethodr  r   round)rf   r   rd  r  rx   ten_prefs          rF   test_monte_carlo_method*TestAndersonMethod.test_monte_carlo_method  s   ii##N3*\\+W5++

;FNN9fV< 6 -\\+W5++"5FNN9fV< 6 ''A3?nnYv>

Rxx%'''''BII,A,A+,NOnn_fVD''BII,A,A+,NOnn_fVDzzSZZ'''''BII,A,A+,NOnn_fVDzzSZZ'''- 65
 65s   7H6-I6
I
Izdist_name, seed)r   l   k2II)r  l   i!rv  l   v!)marksr  l   w!i;r9  l   {hrc                    [        [        U5      n[        R                  R	                  U5      nUR                  SUS9n[        R                  " XQSS9n[        R                  " XQ[        R                  " US9S9n[        R                  R                  UR                  UR                  5        [        R                  R                  UR                  UR                  SS9  g )Nr   rx  interpolater  r  {Gzt?rI  )r   r   r@   r   r   rC   r  r  testingr
   rc   r   )rf   	dist_nameseedr(  r   rv   r  rx   s           rF   test_method_consistency*TestAndersonMethod.test_method_consistency  s     ui(ii##D)HH"3H/nnQ-@nnQ%2H2HS2QR


""3==#--@


""3::szz"FrH   r  )r   r  rv  r  r9  rD  c                    [        [        U5      n[        R                  R	                  S5      nUS:X  a  SO	[        5       nUR                  " USUS.6n[        R                  " [        5         [        R                  " XQ5      nS S S 5        US:X  a#  S[        R                  " WR                  5      -
  O"[        R                  " WR                  5      S-  n[        R                  " U5      n[        R                  " U5      n	[        R                  " UR                  5      n
[        R                  " UR                  5      n[        R                  " XQSS	9nUR                   U
:  d   eUR"                  U	:X  d   e[        R                  " UR                  SS
9USS	9nUR                   U:  d   eUR"                  U:X  d   eg ! , (       d  f       GNH= f)Nl   l2IIrD  )      @r   rx  r   r   r  r  r  )r   r   r@   r   r   tuplerC   r   rl  r  r  r   r-  minmaxr,  rc   r   )rf   r  r(  r   rD   rv   rx   pvalues
pvalue_min
pvalue_maxstatistic_minstatistic_maxs               rF   test_interpolate_saturation.TestAndersonMethod.test_interpolate_saturation  sc    ui(ii##M2"m3vHHd#6\\-(...C )=F-=W1rzz#"8"899

3#9#9:S@ 	VVG_
VVG_
s223s223 nnQ-@}}},,,zzZ''' nnSZZRZ0)MR}}},,,zzZ'''# )(s   /G
Gr|   N)r}   r~   r   r   r  r  r  r   r   r   paramxslowr  r  r   r|   rH   rF   r  r    s    .
B
(8 [[.	 	!	j-v{{7H7H	I	j-v{{7H7H	I	j-v{{7H7H	I		KLGLG [[[LN(N(rH   r  z)ignore:Parameter `variant`...:UserWarningc                   |    \ rS rSrS rS r\R                  R                  S 5       r	S r
S rS rS rS	 rS
 rSrg)TestAndersonKSampi  c                 $   / SQn[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " XX44SS9u  pVn[	        USS5        [        / S	QUS
S S5        [        USSS9  g )NgYC@g     D@gfffffE@g     @F@g     F@g      G@gG@g      M@gC@gfffffC@gC@g33333D@gfffffD@g33333sE@gfffffE@gfffffF@      A@g     A@g     C@g      D@     E@r        F@g     F@r  ffffffA@r  g33333A@gB@gfffffB@gD@gffffffE@Fmidrankg@r   gCl?gvq-?g,Ԛ?gl@gPk	@r   r   r   gJ4a?Mb0?rI  r@   rK  r   anderson_ksampr   r   r
   rf   t1t2t3t4Tktmps           rF   test_example1a TestAndersonKSamp.test_example1a  s    
 >XXFGXXFGXXFG(("")95I	Bq)!"J"$Qq'1	.60rH   c                 L   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " XX44SS9u  pVn[	        USS5        [        / S	QUS
S S5        [        USSS9  g )Nr  r  r  r  Tr  gQ@r   r  r   r   r   rE  r  rI  r  r  s           rF   test_example1b TestAndersonKSamp.test_example1b  s    
 XXFGXXFGXXFGXXFG(("")94H	Bq)!"J"$Qq'1	.60rH   c                 "   / SQn/ SQn/ SQn/ SQn/ SQn/ SQn/ SQn/ SQn/ S	Qn	/ S
Qn
/ SQn/ SQn/ SQn/ SQnXX4XVXxXXX4n[         R                  " USS9u  nnn[        USS5        [        / SQUSS S5        [	        USSS9  [
        R                  R                  S5      n[         R                  " SUS9n[         R                  " USUS9n[        UR                  U5        [        UR                  U5        [	        UR                  USS9  g )N   rt   )   rY  !      i  r]   :   %   r   A   rO      i     $      v   
"         r  C   rW  >   rQ      r  Z   r  <      rj  1   r]      8   r   O   T   ,   r^  rY  r        i6  rK   ra  r     r        r[  e   r  rV  rW  rX  rY  rZ  rP   r[  r\  rY  r]  r^  r_  7   i@  r  h         /            r  r  i  W   rQ   x   r]   r  r  r=  G   r  r\  *   r   r   rP   r  r   r   r]   r  r   r]   r      r  r   r  4   _   a   3   r   r      r     D   M   P   r   r  j      R   6   r     .   o   '   ?   r     r     r  r   r  f   H   r  r  r   rt         r  X   r  r   r   r  r        r     r  rS   r]   	g  rO   rP   i  i[  r   r  r   i  r   r   r   i  #   rP   i  r  r   rQ   b   r   U   [   rk     r   r  r     r]   rW  r      r  r^        r_  r]   r+  B   rj  r  Fr  gM
@r   g^I+?g~:?g+e?gH.!@gcZB>h@r   r   r   	^)p?r  rI  l   <Ic i'  r  )r  r  ga2U0*C?)r   r  r   r   r
   r@   r   r   PermutationMethodr   rc   r,  r   )rf   r  r  r  r  t5t6t7t8t9t10t11t12t13t14samplesr  r  r  r   r  rx   s                         rF   test_example2a TestAndersonKSamp.test_example2a  s   
 (G45%?@IB14'? 2222CcO((%@	BBq)!"J"$Qq'1	.60ii##$78((TsC""7E&I3=="-3..3

AD1rH   c                    / SQn/ SQn/ SQn/ SQn/ SQn/ SQn/ SQn/ SQn/ S	Qn	/ S
Qn
/ SQn/ SQn/ SQn/ SQn[         R                  " XX4XVXxXXX4SS9u  nnn[        USS5        [        / SQUSS S5        [	        USSS9  g )Nr  r  r  r  r  r  r  r  r  r  r#  r%  r'  r,  Tr  g'1Z
@r   r2  r   r   r   r3  r  rI  )r   r  r   r   r
   )rf   r  r  r  r  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r  r  r  s                     rF   test_example2b TestAndersonKSamp.test_example2b+  s     (G45%?@IB14'? ((""""*,3S*G157	B 	Bq)!"J"$Qq'1	.60rH   c                    [         R                  " SSS5      n[        R                  " 5          [        R                  " SS[
        5        [        R                  " XS-   /SS9u  p#nS S S 5        [        WSS	5        [        WS
5        [        R                  " 5          [        R                  " SS[
        5        [        R                  " XS-   /5      u  p#nS S S 5        [        USS	5        [        US
5        [        R                  " 5          [        R                  " SS[
        5        [        R                  " XS-   /SS9u  p#nS S S 5        [        USS5        [        US5        [        R                  " 5          [        R                  " SS[
        5        [        R                  " XS-   /5      u  p#nS S S 5        [        USS5        [        US5        [        R                  " XS-   /SS9u  p#n[        USS5        [        USSSS9  [        R                  " XS-   /5      u  p#n[        USS5        [        USSSS9  [        R                  " XS-   /SS9u  p#n[        USS5        [        USSSS9  [        R                  " XS-   /SS9u  p#n[        US S5        [        US!S"SS9  g ! , (       d  f       GNM= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN4= f)#Nr   r   r  zp-value flooredg     @D@Fr  g=
ףpD@r   rF  gGzD@zp-value capped      ?g?ܵr         ?g?ܵ      @g!u?gףp=
׳?r  r   rJ  rX   rN   gBiq?g鷯?      '@g:M@g46<Rv?gMb@?g      +@g6>W[1@g1ZGUS?-C6?)r@   linspacer   r   filterwarningsrm  r   r  r   r   r
   )rf   r   r   r   r  s        rF   test_R_kSamples!TestAndersonKSamp.test_R_kSamplesK  sx   B [[C% $$&##H.?M**BT	?EJGA! ' 	Avq)Q$$&##H.?M**BT	?;GA! ' 	Avq)Q $$&##H.>L**BR=%HGA! ' 	Aw*Q$$&##H.>L**BR=9GA! ' 	Aw*Q &&H~uEaAvq)6A6 &&F|4aAvq)6A6 &&IFaAvq)7a8&&IFaAvq)7a8U '& '& '& '&s/   9J-:J?9K<:K#-
J<?
K
K #
K2c                 j    [        [        [        R                  [        R
                  " S5      5        g Nr   rn   ro   r   r  r@   r  rp   s    rF   test_not_enough_samples)TestAndersonKSamp.test_not_enough_samples  s    j%"6"6
CrH   c                     [        [        [        R                  [        R
                  " S5      [        R
                  " S5      45        g rQ  rR  rp   s    rF   test_no_distinct_observations/TestAndersonKSamp.test_no_distinct_observations  s,    j%"6"6wwqz2771:.	0rH   c                 n    [        [        [        R                  [        R
                  " S5      / 45        g rQ  rR  rp   s    rF   test_empty_sample#TestAndersonKSamp.test_empty_sample  s!    j%"6"6R8HIrH   c                     / SQn[         R                  " / SQ5      n[        R                  " X4SS9nSn[	        X45        [        UR                  UR                  5        g )Nr  r  Fr  r+  )r@   rK  r   r  r   r   r-  r   )rf   r  r  rx   rw   s        rF   rz   (TestAndersonKSamp.test_result_attributes  sK    =XXFG""B8U;K
C,S++SZZ8rH   r|   N)r}   r~   r   r   r  r  r   r   r  r@  rC  rN  rS  rV  rY  rz   r   r|   rH   rF   r  r    sN    1"1  [[$2 $2L1@N9`D0J	9rH   r  c                   h    \ rS rSrS rS r\R                  R                  SSS/5      S 5       r	Sr
g	)
TestAndersonKSampVarianti  c                 >   / SQn/ SQnSn[         R                  " [        US9   [        R                  " X45      nS S S 5        [        W5      S:X  a  [        US5      (       d   e[         R                  " [        US9   [        R                  " X4SS9nS S S 5        [        WR                  UR                  5        [        UR                  UR                  5        [        U5      S:X  a  [        US5      (       d   e[         R                  " [        US9   [        R                  " X4S	S
S9nS S S 5        [        UR                  UR                  5        [        UR                  UR                  5        [        US5      (       a   e[        R                  " X4S
S9n[        UR                  UR                  5        [        UR                  UR                  5        [        US5      (       a   e[         R                  " [        US9   [        R                  " X4S	S9nS S S 5        [        U5      S:X  a  [        US5      (       d   e[         R                  " [        US9   [        R                  " X4SSS9nS S S 5        [        UR                  UR                  5        [        UR                  UR                  5        [        US5      (       a   e[        R                  " X4SS9n[        UR                  UR                  5        [        UR                  UR                  5        [        US5      (       a   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN?= f! , (       d  f       GN]= f! , (       d  f       GN= f)N)r   r   r   r   r   r   )
r   r   r   r   r   r   rN   rN   rN   rQ   z*Parameter `variant` has been introduced...rb  r   r,  Tr  Fr  )r  variantr`  right)
r   rl  rm  r   r  r  hasattrr   rc   r   )rf   rv   r   rd  r  rx   s         rF   test_variant_values,TestAndersonKSampVariant.test_variant_values  s   *>\\+W5&&v.C 63x1}.?!@!@@@\\+W5&&vt<C 6S]]CMM2SZZ,3x1}.?!@!@@@\\+W5&&vuiPC 6S]]CMM2SZZ,3 12222""A69=S]]CMM2SZZ,3 12222\\+W5&&vu=C 63x1}.?!@!@@@\\+W5&&vtWMC 6S]]CMM2SZZ,3 12222""A67;S]]CMM2SZZ,3 122222E 65 65 65 65 65s;   M?MM)M;(N
M
M&)
M8;
N

Nc                     [         R                  " S5      nSn[        R                  " [        US9   [
        R                  " X4SS9  S S S 5        g ! , (       d  f       g = f)Nr  z=`variant` must be one of 'midrank', 'right', or 'continuous'.rb  Camelotra  )r@   ru   r   r   ro   r   r  rc  s      rF   test_variant_input_validation6TestAndersonKSampVariant.test_variant_input_validation  s@    IIbMQ]]:W5  !; 655s   A
A 	n_samplesr   r   c                    [         R                  R                  S5      nUR                  US45      S[         R                  " U5      S S 2[         R                  4   -  -   n[
        R                  " USS9n[
        R                  " USS9n[        UR                  UR                  5        [        UR                  UR                  5        g )Nl   0e rt   皙?rb  ra  
continuous)
r@   r   r   ru   newaxisr   r  r
   rc   r   )rf   rj  r   r?  r  rx   s         rF   test_variant_continuous0TestAndersonKSampVariant.test_variant_continuous  s    ii##K0**i_-BIIi4HBJJ4W0WW""7G<""7LAs}}5

CJJ/rH   r|   N)r}   r~   r   r   rd  rh  r   r   r   ro  r   r|   rH   rF   r^  r^    s6    &3P< [[[1a&10 20rH   r^  c                   V   \ rS rSrS rS rS r\R                  R                  S/ S/4S// 4/5      S 5       r
S rS	 r\R                  R                  S
/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/5      S 5       rS r\R                  R                  S/ SQ5      \R                  R                  SSS/5      \R                  R                  SSS/5      S  5       5       5       r\R                  R                  S!/ S"Q5      S# 5       rS$ rS%rg&)'
TestAnsarii  c                     UR                  / SQ5      nUR                  / SQ5      n[        R                  " X#SS9u  pE[        XAR                  S5      5        [        XQR                  S5      5        g )N)r   r   r   r   r   )r   r   rN   r   rN   r   r   r   
asymptoticr  g     7@g8#oG?r   r   ansarir)   rf   r   rv   r   Wpvals         rF   
test_smallTestAnsari.test_small  sT    JJ'JJ/0,,qL9::d+,jj)<=>rH   c                     UR                  / SQ5      nUR                  / SQ5      n[        R                  " X#SS9u  pE[        XAR                  S5      5        [        XQR                  S5      5        g )Nr  r   r   c   r  r  m   l   r  r~  r  `   r  r  r   q   t   r  n   r(  r   r  r  r(  i   g   r  r  r  r   r  r  r  r  r   r  r  r  r  r~  rt  r  g     0g@g|:?ru  )rf   r   ramsayparekhrx  ry  s         rF   test_approxTestAnsari.test_approx  sa     L M & ' ,,vlC::e,-jj)<=>rH   c                     UR                  / SQ5      UR                  / SQ5      p2[        R                  " X#SS9u  pE[        XAR                  S5      5        [        XQR                  S5      5        g )Nr   r   r   r   )rt   r   r   rR   r  rP   exactr  rY   g?ru  rw  s         rF   
test_exactTestAnsari.test_exact  sQ    zz,'4J)K1,,qG4::d+,jj)=>?rH   rD   r1   c                    U Vs/ s H  o2R                  U5      PM     nn[        R                  " [        [        S9   [
        R                  " U6 n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        S S S 5        g s  snf ! , (       d  f       g = f)Nrb  )r   r   rl  r   r   r   rv  r*   rc   r   r   )rf   rD   r   argrx   s        rF   r   TestAnsari.test_bad_arg  s    +/04C

340\\,4IJ,,%CCMM2::bff+=>CJJ

266(:; KJ 1JJs   B9A2B>>
Cc                     UR                  / SQ5      nUR                  / SQ5      nSn[        [        US9   [        R                  " X#SS9  S S S 5        g ! , (       d  f       g = f)Nr  r   rN   rQ   rR   z!'alternative' must be 'two-sided'rb  fooalternative)r   rn   ro   r   rv  )rf   r   r   r   r   s        rF   test_bad_alternativeTestAnsari.test_bad_alternative  sG    ZZ%ZZ%3:U3LLU3 433s   A
A$c                    UR                  / SQ5      nUR                  / SQ5      n[        R                  " X#SS9u  pE[        R                  " X#SSS9R                  n[        R                  " X#SSS9R                  nUS:  d   eUS	:  d   e[        R
                  R                  [        U5      UR                  S
   UR                  S
   5      nUR                  [        U5      5      n[        Xv-   SU-   SS9  [        XuS-  SS9  [        USU-   US-  -
  SS9  [        R                  " X2SSS9R                  n	[        R                  " X2SSS9R                  n
U	S	:  d   eU
S:  d   eg )N)r   r   r  rt   r   g      9@)rH  g      !@      #@      %@rJ  g      )@r  r  lessr  r  greaterffffff?皙?r   r   -q=rI  r   )
r   r   rv  r   r   r   pmffloatshaper)   )rf   r   r   r   rc   ry  pval_lpval_gprobpval_l_reversepval_g_reverses              rF   test_alternative_exact!TestAnsari.test_alternative_exact  sO   ZZ34ZZ9:  ,,rg>	b&IPPb)GLSS}}}} ||i 0"((1+rxx{Kzz%+&T> 	QU3$tAvE: b&-466<f 	b)-466<f 	$$$$$$rH   zx, y, alternative, expectedr  r  r  g@A?r  r   )r   r   rN   rQ   rR   gG$I?g%I$I?r   )rN   rQ   rR   c                     UR                  U5      UR                  U5      p![        R                  " XUSS9R                  n[	        XeR                  U5      SS9  g )Nr  r  r  rI  )r   r   rv  r   r)   )rf   rv   r   r  expectedr   ry  s          rF   test_alternative_exact_with_R(TestAnsari.test_alternative_exact_with_R3  sF    8 zz!}bjjm1||Ak'JQQjj2?rH   c           	      ~   UR                  [        R                  R                  SSSSS95      nUR                  [        R                  R                  SSSSS95      n[        R                  " X#SSS	9R
                  n[        R                  " X#S
SS	9R
                  n[        XAR                  SUR                  S9SS9  [        XQR                  SUR                  S9SS9  UR                  [        R                  R                  SSSSS95      nUR                  [        R                  R                  SSSSS95      n[        R                  " X#SS9R
                  n[        R                  " X#SSS	9R
                  n[        R                  " X#S
SS	9R
                  n[        XVS-  SS9  [        USUS-  -
  SS9  g )Nr   r   r   {   rx  r   r  rt  r  r  r1   r   r  rI  r   r        ?r  r   )r   r   r   rC   rv  r   r)   r   )rf   r   r   r   r  r  ry  s          rF   test_alternative_approx"TestAnsari.test_alternative_approxS  s`   ZZ

q!#CHIZZ

q!#CHI b&NUUb)LQXX

3bjj
 AN

3bjj
 AN ZZ

q!"3GHZZ

q#BSIJ||B<8??b&NUUb)LQXXQU3$q&u5rH   r   r   r   r  r   tiesFTc                    [        U5      (       a  US:w  a  [        R                  " S5        Uc  [        U5      O
[	        XA5      n[
        R                  R                  S5      nU(       a  UR                  SSU4S9OUR                  SU4S9u  pgSUS::  a	  U(       d  S	OS
0n[        R                  " Xg40 UD6n	[        R                  " UR                  XaS9UR                  XqS940 UD6n
[        U
R                  UR                  U	R                  US95        [        U
R                  UR                  U	R                  US95        g )Nr   z5p-value calculation works natively with 'float64 onlyl   ]M rN   r   r  r  r  r  rt  r   )r'   r   xfailr%   r   r@   r   r   integersr   rv  r   r)   rc   r   )rf   r   r   r  r   r   rv   r   r  r  rx   s              rF   test_dtypesTestAnsari.test_dtypesh  s    "::%9,LLPQ(- $72;Mii##N3/3s||AQF|+!Q9Pb$G\Rll1*6*ll2::a:5rzz!z7Q %#%rzz#--uz'MN

BJJszzJ$GHrH   r  r  r  	two-sidedc           
         [         R                  R                  S5      nUR                  UR                  S5      R	                  5       5      nUR                  UR                  S5      R	                  5       5      n[
        R                  " XEU[
        R                  " US9S9n[
        R                  " XEUSS9n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        [        U5      (       d  [
        R                  " XEU[
        R                  " USS9S9n[        UR                  UR                  UR                  5      5        UR                  UR                  :w  d   eUR                  UR                  UR                  S	-  5      S	-  :X  d   eg g )
N   `Y rQ   rN   r  r  r  r~  )r   r  r   )r@   r   r   r   r   r   rv  r4  r)   rc   r   r(   r  )rf   r  r   r   rv   r   rx   r  s           rF   test_permutation_method"TestAnsari.test_permutation_methodx  sL    ii##J/JJszz!}++-.JJszz!}++-.ll1["'"9"9c"BDll1[Irzz#--'@A

BJJszz$:;Q,,q&+&=&=#SU&VXCCMM2::cmm+DE::+++::#**S.!9#!====  rH   c                    [         R                  R                  S5      n[        U5      (       aZ  Sn[        R
                  " [        US9   [        R                  " UR                  S5      UR                  S5      5        S S S 5        g UR                  UR                  S5      R                  5       5      nUR                  UR                  S5      R                  5       5      n[        R                  " XE5      n[        R                  " XESS9n[        R                  " XES	S9n[        UR                  UR                  5        [        UR                  UR                  S
5      5        UR                  UR                  S5      R                  5       5      nUR                  UR                  S5      R                  5       5      n[        R                  " XE5      n[        R                  " XES	S9n[        R                  " XESS9n[        UR                  UR                  5        [        UR                  UR                  S5      5        UR                  UR                  SSS9R                  5       5      nUR                  UR                  SSS9R                  5       5      n[        R                  " XE5      n[        R                  " XES	S9n[        UR                  UR                  5        g ! , (       d  f       g = f)Nr  z9`method` must be 'exact', 'asymptotic', or an instance...rb  r   r   r  r  r  rt  gQ̉?r  gpXkb\?r  r   r  )r@   r   r   r'   r   r   ro   r   rv  r   r  r   r   r)   r   r  )	rf   r   r   rd  rv   r   res1res2res3s	            rF   test_methodTestAnsari.test_method  s    ii##J/"::QGz9RXXa["''!*5 : JJszz"~,,./JJszz"~,,./||A!||A1||A6T[[1RZZ0@%AB JJszz"~,,./JJszz"~,,./||A!||A6||A1T[[1RZZ%@A JJs||BR|0779:JJs||BR|0779:||A!||A6T[[17 :9s   6K22
L r|   N)r}   r~   r   r   rz  r  r  r   r   r   r   r  r  r  r  r  r  r  r   r|   rH   rF   rr  rr    s^   ?	?@ [[VrB4jB4*%=>< ?<4%< [[% fo	>
i	A
_fo	>
_i	A
9fo	>
9i	A	C@@(6* [[W&BC[[S2s),[[VeT]3I 4 - DI [[],LM> N>&#2rH   rr  c                   n    \ rS rSrS rS rS r\R                  R                  S5      S 5       r
S rSrg	)
TestBartletti  c           
      H   [         [        [        [        [        [
        [        [        [        [        /
nU Vs/ s H  o1R                  U5      PM     nn[        R                  " U6 u  pE[        XAR                  S5      5        [        XQR                  S5      5        g s  snf )NgzU@ /4@gG?)g1g2g3g4g5g6g7g8g9g10r   r   bartlettr)   )rf   r   rD   r  Try  s         rF   	test_dataTestBartlett.test_data  sn    BBBBC8+/04C

340..$'::&789jj9: 1   Bc                     Sn[         R                  " [        US9   [        R                  " UR                  S/5      5        S S S 5        g ! , (       d  f       g = f)Nz-Must enter at least two input sample vectors.rb  r1   )r   r   ro   r   r  r   rf   r   rd  s      rF   test_too_few_argsTestBartlett.test_too_few_args  s8    A]]:W5NN2::rd+, 655   'A
Ac           
          [         [        [        [        [        [
        [        [        [        [        /
nU Vs/ s H  o1R                  U5      PM     nn[        R                  " U6 nSn[        XEUS9  g s  snf Nrc   r   r   )r  r  r  r  r  r  r  r  r  r  r   r   r  r   rf   r   rD   r  rx   rw   s         rF   rz   #TestBartlett.test_result_attributes  sX    BBBBC8+/04C

340nnd#,
C3 1   A5 ignore:invalid value encounteredc                    [         [        [        [        [        [
        [        [        [        [        / 4nU Vs/ s H  o1R                  U5      PM     nn[        [        [        US9   [        R                  " U6 nS S S 5        UR                  UR                   5      n[#        WR$                  U5        [#        UR&                  U5        g s  snf ! , (       d  f       N[= fr   )r  r  r  r  r  r  r  r  r  r  r   r"   r   r   r   r  r   r*   rc   r   )rf   r   rD   r  rx   NaNs         rF   test_empty_argTestBartlett.test_empty_arg  s    BBBBC<+/04C

340+3HRP..$'C Q jj s+

C( 1PPs   C)C
C c                 $   UR                  / SQUR                  S9nUR                  / SQUR                  S9nUR                  / SQUR                  S9n[        R                  " X#U5      nUR	                  UR
                  S:  5      (       d   eg )N)g333333$@gffffff$@g$@g$@r   )L$@     $@33333$@gfffff$@)g$@r  r  r  r   )r   r   r   r  r  rc   )rf   r   r   brO  rx   s         rF   test_negative_pvalue_gh21152)TestBartlett.test_negative_pvalue_gh21152  su    JJ/rzzJBJJ32::JFJJ32::JFnnQ1%vvcmmq())))rH   r|   N)r}   r~   r   r   r  r  rz   r   r   rM  r  r  r   r|   rH   rF   r  r    s;    ;-
4 [[ BC	) D	)*rH   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)
TestLevenei  c           
      H   [         [        [        [        [        [
        [        [        [        [        /
nU Vs/ s H  o1R                  U5      PM     nn[        R                  " U6 u  pE[        XAR                  S5      5        [        XQR                  S5      5        g s  snf )NgYpK?gI{]?r  r  r  r  r  r  r  r  r  r  r   r   levener)   rf   r   rD   r  rx  ry  s         rF   r  TestLevene.test_data  sn    BBBBC8+/04C

340,,%::&89:jj9: 1r  c           
      N   [         [        [        [        [        [
        [        [        [        [        /
nU Vs/ s H  o1R                  U5      PM     nn[        R                  " USS06u  pE[        XAR                  S5      5        [        XQR                  S5      5        g s  snf )Ncenterrh   g F@g(gX?r  r  s         rF   	test_meanTestLevene.test_mean  st    BBBBC8+/04C

340,,4V4::&678jj):;< 1s   B"c                    UR                  [        5      UR                  [        5      UR                  [        5      4n[        R
                  " USS06u  p4[        R
                  " USSS.6u  pV[        X55        [        XF5        g )Nr  rh   trimmedr   r  proportiontocut)r   r  r  r  r   r  r)   )rf   r   rD   W1pval1W2pval2s          rF   test_trimmed1TestLevene.test_trimmed1  sa     

2

2

2?LL$6v6	LL$y#N	%rH   c           
      P   [         [        [        [        [        [
        [        [        [        [        /
nU Vs/ s H  o1R                  U5      PM     nn[        R                  " USSS.6u  pE[        XAR                  S5      5        [        XQR                  S5      5        g s  snf )Nr  rG  r  g˼> @gwW?r  r  s         rF   test_trimmed2TestLevene.test_trimmed2  ss    BBBBC8+/04C

340,,YM::&678jj);<= 1s   B#c                    [         R                  " SSS5      n[         R                  R                  S5      nUR	                  U5      nUS-  nUR                  U5      UR                  U5      UR                  U5      pTn[        R                  " X%SS9u  pg[        R                  " XESS9u  p[        Xh5        [        Xy5        g )	Nr  r   r\     Kc r   rh   r  median)	r@   rL  r   r   permutationr   r   r  r)   )
rf   r   rv   r   r   r   r  r  r  r  s
             rF   test_equal_mean_median!TestLevene.test_equal_mean_median   s    KKAr"ii##J/__QqD::a="**R."**Q-qLLf5	LLx8	%rH   c                     UR                  SSS5      nSn[        R                  " [        US9   [        R
                  " X"SS9  S S S 5        g ! , (       d  f       g = fNr  r   r\  z-center must be 'mean', 'median' or 'trimmed'.rb  trimr  )rL  r   r   ro   r   r  rf   r   rv   rd  s       rF   test_bad_center_value TestLevene.test_bad_center_value  sA    KKAr"A]]:W5LLf- 655   A
Ac                     Sn[         R                  " [        US9   [        R                  " UR                  S/5      5        S S S 5        g ! , (       d  f       g = f)N"Must provide at least two samples.rb  r   )r   r   ro   r   r  r   r  s      rF   r  TestLevene.test_too_few_args  s7    6]]:W5LLQC) 655r  c           
          [         [        [        [        [        [
        [        [        [        [        /
nU Vs/ s H  o1R                  U5      PM     nn[        R                  " U6 nSn[        XEUS9  g s  snf r  )r  r  r  r  r  r  r  r  r  r  r   r   r  r   r  s         rF   rz   !TestLevene.test_result_attributes  sX    BBBBC8+/04C

340llD!,
C3 1r  r|   N)r}   r~   r   r   r  r  r  r  r  r  r  rz   r   r|   rH   rF   r  r    s*    ;=&>	&.*
4rH   r  c                   |   \ rS rSrSr\" SSS9\R                  R                  S/ SQ5      S 5       5       r	\" SSS9\R                  R                  S/ S	Q5      S
 5       5       r
\" SSS9\R                  R                  S/ SQ5      S 5       5       rS r\" SSS9\" SSS9\R                  R                  S/ SQ5      S 5       5       5       r\" SSS9\" SSS9\R                  R                  S/ SQ5      S 5       5       5       r\" SSS9\" SSS9\R                  R                  S/ SQ5      S 5       5       5       r\" SSS9\" SSS9\R                  R                  S/ SQ5      S 5       5       5       r\" SSS9\R                  R                  S/ SQ/ SQ/ SQ/ SQ/ S Q/ S!Q/ S"Q/ S#Q/ S$Q/ S%Q/ S&Q/ S'Q/ S(Q/ S)Q/ S*Q/ S+Q/ S,Q/ S-Q/ S.Q/ S/Q/ S0Q/ S1Q/ S2Q/ S3Q/5      S4 5       5       r\" SSS9S5 5       rS6 rS7 rS8 rS9 r\R                  R/                  \R2                  S::*  S;S9S< 5       r\R                  R                  S=S>S?S@\R8                  SASB4SCSDSE\R8                  SB4SFSGSESA\R8                  4/
5      SH 5       r\R                  R                  SI/ SJQ5      \R                  R                  SK/ SLQ5      SM 5       5       r\R                  R                  SN/ SOQ5      \R                  R                  SI/ SJQ5      \R                  R                  SK/ SLQ5      SP 5       5       5       r\R                  R                  SQSRSS/5      \R                  R                  SI/ SJQ5      \R                  R                  SK/ SLQ5      ST 5       5       5       r \" SSUS9SV 5       r!\" SSUS9SW 5       r"\" SSUS9SX 5       r#SRr$gY)ZTestBinomTesti  zTests for stats.binomtest.r   z$'two-sided' is incompatible with JAXr   zk, n, p, ref, rtol))iΙ @o@Q?r1   绽|=)iΙ r"  r#  gX7?r$  )i	ϙ r"  r#  g=?r$  )iϙ r"  r#  gybw?r[   c           	          UR                   n[        R                  " XUR                  X7S95      n[	        UR
                  UR                  XGS9US9  g Nr   rW   r   r   	binomtestr   r)   r   	rf   kr   r  r  rX   r   r   rx   s	            rF   test_two_sided_pvalues1%TestBinomTest.test_two_sided_pvalues1%  C     

ooaBJJqJ$>?

BJJsJ$@tLrH   ))rO   r\  r#  gX-h?r$  )r   r\  r#  g	֤y?r$  )r   r\  r#  g	y}?r$  )rQ   r\  r#  g+,?r$  )r   r  rF        ?r$  )r   r   rH  g{Gz?r$  )r   r   g333333?g<,?r$  c           	          UR                   n[        R                  " XUR                  X7S95      n[	        UR
                  UR                  XGS9US9  g r&  r'  r)  s	            rF   test_two_sided_pvalues2%TestBinomTest.test_two_sided_pvalues24  r-  rH   ))i  i  rF  r1   r$  )r   r  gAL &W?r1   r$  )rS   r  g!YB?r1   r$  )rt   r  gE]t?r1   r$  )rQ   rS   rF  r1   r$  )rN   r   rF  r1   r$  c           	          UR                   n[        R                  " XUR                  X7S95      n[	        UR
                  UR                  XGS9US9  g r&  r'  r)  s	            rF   test_edge_casesTestBinomTest.test_edge_casesC  sC     

ooaBJJqJ$>?

BJJsJ$@tLrH   c           	        ^^ SmSmSn[         R                  " [         R                  " TT-  5      TS-   5      n[        R                  R                  UTT5      n[         R                  " [        R                  R                  UTT5      U:*  SS9n[        UU4S jU* [         R                  " TT-  5      T[         S9nTU-
  [        U[        R                  R                  UTT5      :H  5      -   n[        XFS	S
9  Sn[         R                  " [         R                  " TT-  5      S-   5      n[        R                  R                  UTT5      n[         R                  " [        R                  R                  UTT5      U:*  SS9n[        UU4S jUS[         R                  " TT-  5      [         S9nUS-   n[        XFS	S
9  g )Nr  rF  r   r   r   axisc                 H   > [         R                  R                  U TT5      * $ r?   r   binomr  r   r   r  s    rF   <lambda>>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>_  s    +0;;??2q!+D*DrH   r  r[   rW   rQ   c                 F   > [         R                  R                  U TT5      $ r?   r9  r;  s    rF   r<  r=  k  s    */++//"a*CrH   )r@   ru   ceilr   r:  r  sumr   intr
   floor)	rf   r*  ry   dy1ixy2r   r  s	          @@rF   test_binary_srch_for_binom_tst,TestBinomTest.test_binary_srch_for_binom_tstR  sh    IIbgga!enac*KKOOAq!$VVEKKOOAq!,1:) +E+,"bgga!enaBH Vc!u{{r1a8899T*IIbhhq1uo)*KKOOAq!$VVEKKOOAq!,1:) +D*+QQBH !VT*rH   array_api_strictzneeds find_rootz"alternative, pval, ci_low, ci_high))r  g$W?r   g?)r  g}?gGI~?r1   )r  g}G?g>?6?g4M?c           	         UR                   n[        R                  " SSUR                  SUS9US9n[	        UR
                  UR                  X&S9SS9  [        UR                  UR                  SUS95        UR                  S	S
9n[	        UR                  UR                  X6S9SS9  [	        UR                  UR                  XFS9SS9  g )Nr   r   rG  r   r   r  r  r  rW   皙?r  confidence_levelr   r   r(  r   r)   r   r*   rc   proportion_cilowhigh	rf   r  ry  ci_lowci_highr   r   rx   cis	            rF   test_confidence_intervals1(TestBinomTest.test_confidence_intervals1r  s     

oobC2::d%:+H*57

BJJtJ$ANrzz#Uz'CD5

6
 ?eLG!ANrH   ))r  ga&+w?r   gny?)r  g5!Rx?g5%?r1   )r  g~th?gSuR&|?g|KnG?c           	         UR                   n[        R                  " SSUR                  SUS9US9n[	        UR
                  UR                  X&S9SS9  [        UR                  UR                  SUS95        UR                  S	S
9n[	        UR                  UR                  X6S9SS9  [	        UR                  UR                  XFS9SS9  g )Nr   r   rL  r   rK  rV   rW   gQ?r:   rM  rO  rS  s	            rF   test_confidence_intervals2(TestBinomTest.test_confidence_intervals2  s     

ooa2Cu)E*57

BJJtJ$AMrzz$ez'DE5

6
 ?dKG!AMrH   zalternative, pval, ci_high))r  gլ?g̓A?)r  r1   r1   )r  gEow?g;Kڞj?c           	      T   UR                   n[        R                  " SSUR                  SUS9US9n[	        UR
                  UR                  X%S9SS9  UR                  SS	9n[        UR                  UR                  S
US95        [	        UR                  UR                  X5S9SS9  g )Nr   r  rG  r   rK  rV   rW   r  rM  r   )
r   r   r(  r   r)   r   rP  r*   rQ  rR  )rf   r  ry  rU  r   r   rx   rV  s           rF   !test_confidence_interval_exact_k0/TestBinomTest.test_confidence_interval_exact_k0  s     

ooa2D)F*57

BJJtJ$AM5

3e
 <=G!AMrH   zalternative, pval, ci_low))r  r1   r   )r  6>g@>}_?)r  r_  gcڒ ?c           	      T   UR                   n[        R                  " SSUR                  SUS9US9n[	        UR
                  UR                  X%S9SS9  UR                  SS9n[        UR                  UR                  S	US95        [	        UR                  UR                  X5S9SS9  g )
Nr  rG  r   rK  rV   rW   r  rM  r1   )
r   r   r(  r   r)   r   rP  r*   rR  rQ  )rf   r  ry  rT  r   r   rx   rV  s           rF   %test_confidence_interval_exact_k_is_n3TestBinomTest.test_confidence_interval_exact_k_is_n  s     

oobB"**T**G*57

BJJtJ$AM5Cu!=>

6
 ?dKrH   z+k, alternative, corr, conf, ci_low, ci_high)r   r  Tr  g`?g?)r   r  Tr:   grt!?g/?)r   r  Fr  gVK5?g5dM?)r   r  Fr:   gXCVu^?g*r[?)r   r  Tr  r   gP-V?)r   r  Tr:   r   g^'?)r   r  Fr  r   gS5a?)r   r  Fr:   r   g?)r   r  Tr  g!Շ`ⰸ?r1   )r   r  Tr:   g$x"?r1   )r   r  Fr  gW~=?r1   )r   r  Fr:   g	L?r1   )r   r  Tr  r   gX?)r   r  Fr  r   gN?)r   r  Tr  r   g/<7#9?)r   r  Fr  r   gAA?)r   r  Tr  r   r1   )r   r  Fr  r   r1   )r  r  Tr  g7?r1   )r  r  Fr  g؍s?r1   )r  r  Tr  r   r1   )r  r  Fr  r   r1   )r  r  Tr  ghadn?r1   )r  r  Fr  gAB/?r1   c           	      $   UR                   n[        R                  " USUR                  SUS9US9n	U(       a  Sn
OSn
U	R	                  XJS9n[        UR                  UR                  XXS9SS	9  [        UR                  UR                  XhS9SS	9  g )
Nr  rl  r   rK  wilsonccwilson)rN  r  rV   rW   )r   r   r(  r   rP  r)   rQ  rR  )rf   r*  r  corrconfrT  rU  r   r   rx   r  rV  s               rF   test_ci_wilson_method#TestBinomTest.test_ci_wilson_method  s    @ 

ooa2Cu)E*57FFD

6
 ?dKG!AMrH   c                     [         R                  " SSUR                  S5      5      n[        UR                  UR                  S5      5        [        UR
                  UR                  S5      5        g )Nr   r  rG  r1   )r   r(  r   r*   rc   r   rf   r   rx   s      rF   &test_estimate_equals_hypothesized_prop4TestBinomTest.test_estimate_equals_hypothesized_prop  sL    
 ooaRZZ%56rzz$'78

BJJsO4rH   c                     [         R                  " SSUR                  S5      SS9nSn[        R                  " [
        US9   UR                  SS	9  S S S 5        g ! , (       d  f       g = f)
Nr   r  rl  r  rK  z/confidence_level \(-1\) must be in the intervalrb  r  rM  r   r(  r   r   r   ro   rP  )rf   r   rx   rd  s       rF   test_invalid_confidence_level+TestBinomTest.test_invalid_confidence_level  sN    ooa2CfMD]]:W5r2 655s   A
A)c                     [         R                  " SSUR                  S5      SS9n[        R                  " [
        SS9   UR                  SS	9  S S S 5        g ! , (       d  f       g = f)
Nr   r  rl  r  rK  z$method \('plate of shrimp'\) must berb  zplate of shrimpr  ro  rk  s      rF   test_invalid_ci_method$TestBinomTest.test_invalid_ci_method  sL    ooa2CiP]]:-TU%67 VUUs    A
A'c                     [         R                  " [        SS9   [        R                  " SSUR                  S5      SS9  S S S 5        g ! , (       d  f       g = f)Nzalternative \('ekki'\) not...rb  r   r  rl  ekkirK  )r   r   ro   r   r(  r   )rf   r   s     rF   test_invalid_alternative&TestBinomTest.test_invalid_alternative  s8    ]]:-MNOOArzz#FK ONNs   'A


Ac                     [         R                  " SSUR                  S5      SS9n[        UR                  UR
                  5        g )Nr   r  rl  r  rK  )r   r(  r   r*   proportion_estimaterc   rk  s      rF   
test_aliasTestBinomTest.test_alias  s2    ooa2CiP//?rH   l        z32-bit does not overflowc                     [         R                  " [        SS9   [        R                  " SS[
        R                  R                  S9  S S S 5        g ! , (       d  f       g = f)NzError in function...rb  r   rN   )r  )r   r   OverflowErrorr   r(  sys
float_infor  rp   s    rF   test_boost_overflow_raises(TestBinomTest.test_boost_overflow_raises  s:     ]]=0FGOOAqCNN$6$67 HGGs   /A
A zk, n, p)r  r  rF  )r   r  rF  )g      @r  rF  r  rF  )r   r   rF  )r   r  rF  r   )r   r  皙)r   r  r   c                    [         R                  " XUR                  U5      SS9n[        UR                  UR                  [
        R                  5      5        [        UR                  UR                  [
        R                  5      5        g )Nr  r  )r   r(  r   r*   rc   r@   r   r   )rf   r*  r   r  r   rx   s         rF   test_invalidTestBinomTest.test_invalid	  sT    
 ooaBJJqMvFrzz"&&'9:

BJJrvv$67rH   r  r  r  )r  re  rd  c                    [         R                  " SSSUS9n[         R                  " [        R                  " S5      [        R                  " S5      [        R                  " S5      US9n[	        UR
                  UR
                  5        [	        UR                  UR                  5        [	        UR                  UR                  5        [	        UR                  UR                  5        UR                  US9nUR                  US9n[	        UR                  UR                  5        [	        UR                  UR                  5        g )Nr   r   rH  r  r  )r   r(  r@   r   r*   rc   r   r   r*  rP  rQ  rR  )rf   r  r  rx   r  s        rF   test_scalar_0d_in_scalar_out*TestBinomTest.test_scalar_0d_in_scalar_out  s    
 ooaSkBoobjjmRZZ^RZZ_*57 	s}}5

CJJ/suu%suu%v.v.)#((+rH   r   r   c                    Uc  UO
[        XA5      nUR                  SUS9nUR                  SUS9nUR                  SUS9n[        U5      (       aB  US:X  a<  Sn[        R                  " [
        US9   [        R                  " XVU5        S S S 5        g [        R                  " XVXrS9n	[        R                  " SSSUS9n
[        U	R                  UR                  [        U
R                  5      US95        [        U	R                  UR                  [        U
R                  5      US95        [        U	R                  UR                  [        U
R                  5      US95        [        U	R                  UR                  [        U
R                  5      US95        [        U5      (       d  [        U5      (       a  US	:X  a  g U	R                  US
9n	U
R                  US
9n
[        U	R                   UR                  [        U
R                   5      US95        [        U	R"                  UR                  [        U
R"                  5      US95        g ! , (       d  f       g = f)Nr   r   r   rH  r  :`alternative='two-sided'` is incompatible with JAX arrays.rb  r  r  r  )r   r   r'   r   r   ro   r   r(  r)   rc   r  r   r   r*  r&   rP  rQ  rR  )rf   r   r  r  r   r*  r   r  rd  rx   r  s              rF   
test_dtypeTestBinomTest.test_dtype&  s   
 GB,>JJqJ&JJrJ'JJs%J("::+{2RGz9a( :ooaA?ooaSkBrzz%2Fez'TU

BJJuSZZ/@J$NOrzz%,ezDErzz%,ezDE##vbzzv7Hv.v.E#''N%!HI"**U388_E*"JK) :9s   2I
Ir  r|   rQ   rR   rO   c                   ^ [         R                  R                  S5      nUR                  SSUS9nUR                  SSUS9nUR	                  SSUS9n[        U5      (       a  US:X  a  [        R                  " S5        [        R                  " UR                  U5      UR                  U5      UR                  U5      US	9n	[         R                  " S
S9U4S j5       n
U
" XgX5      u  ppnn[        U	R                  UR                  U5      5        [        U	R                  UR                  U5      5        [        U	R                  UR                  U5      5        [        U	R                   UR                  U5      5        [#        U5      (       d  [        U5      (       a  TS:X  a  g U	R%                  TS9n[        UR&                  UR                  U5      5        [        UR(                  UR                  U5      5        g )Nl   0T  r  r   r  r  r   r  r  r  r  )excludedc                    > [         R                  " XX#S9nUR                  TS9nUR                  UR                  UR
                  UR                  UR                  UR                  4$ )Nr  r  )	r   r(  rP  r*  r   rc   r   rQ  rR  )r*  r   r  r  r  rV  r  s         rF   binomtest_1d0TestBinomTest.test_ndarray.<locals>.binomtest_1dV  sQ    //!CC""&"1B55#%%

BFFBGGKKrH   r  r  )r@   r   r   r  uniformr'   r   skipr   r(  r   	vectorizer)   r*  r   rc   r   r&   rP  rQ  rR  )rf   r  r  r  r   r   r*  r   r  rx   r  ref_kref_nr   r   rT  rU  rV  s      `              rF   test_ndarrayTestBinomTest.test_ndarrayG  s    ii##J/LLReL,LLReL,KKcK."::+{2KKTUoobjjmRZZ]BJJqM*57 
}	-	L 
.	L
 DP!D"@mrzz%01rzz%01rzz-'@A

BJJz$:;##vbzzv7Hf-

6 23G!45rH   z)'two-sided' alternative needs root finderc           	         UR                  UR                  SSS5      UR                  SSS5      UR                  SSS5      45      nSnS	n/ S
Qn[        [        R                  " XCU5      R
                  UR                  U5      5        [        [        R                  " SSUR                  S5      5      R
                  UR                  S5      5        g )Nrl  rL  r   g??333333?r  i  i  )r   r   gs  gG|G{g	ɺM>6g>
ztt+g#ӌRM/gF׸fz2gU8u5g8M8gФ)Ba?g%վ?g*+a5?gś?gڒJ|>r   r   gVݶ3;)concatrL  r)   r   r(  r   r   )rf   r   ppr   rv   resultss         rF   test_binomtestTestBinomTest.test_binomtestk  s     YYCa0D$2D$24 5 , 	b188"**W:MNCCAHH

#:;	=rH   c                 6   SS// SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/
n[        SS5       Hi  nUR                  US-   UR                  S9n[        R                  " XCS5      R
                  n[        XQR                  X#S-
     UR                  S95        Mk     g )Nr1   )rF  r1   rF  )rG  r1   r1   rG  )      ?      ?r1   r  r  )      ?      ?r1   r1   r  r  )      ?      ?      ?r1   r  r  r  )      ?r        ?r1   r1   r  r  r  )	      ?      ?     ?     @?r1   r  r  r  r  )
      p?      ?      ?     @?r1   r1   r  r  r  r  )      `?      ?      ?r.        ?r1   r  r.  r  r  r  r   r   r   rF  )rangeru   r   r   r(  r   r)   r   )rf   r   r  r*  r  r  s         rF   test_binomtest2TestBinomTest.test_binomtest2  s     #J$/<K.I
" q"A		!A#RZZ	0A??1-44DD**TA#Ybjj*"IJ rH   c                 R   UR                  SS5      S S 2UR                  4   nUR                  SS5      nUR                  S   UR                  S   4n[        R                  " X"U-  SU-  5      R
                  n[        XQR                  U5      5        UR                  / SQ5      nUR                  / SQ5      nUR                  X1R                  S9UR                  X!R                  S9p#UR                  UR                  XqR                  S9U5      nUR                  UR                  XaR                  S9U5      n[        R                  " US-   X#-  SU-  5      R
                  n[        R                  " US-
  X#-  SU-  5      R
                  n	[        X5        [        X5        g )	Nr1   g      &@       @r   )ZrF  grq?g     ?glq?gx0f#?g%d)MO?g   	o?g6?g:X@?r  gsw?g    ?gR'jMV?gEf?gF5a?gAQU?g'W?gk?r  g
ņB?g  ?g$?g{dU'?gD:B?gwV?gR0Nf?gOq?r  g[k^?g T+?gO?gggh(?gP-@?gOQ?g}^?gV7_i?r  ge$?gр?g#>?g5z@?g:?gf?gzP?g  ?     ?gg*),?g}A_?g}aA?gH]@_?g
y7s?gPG?g>)\R?gjc6?K?go; ,?g!O0?g?g}e?g5?g?!A^?gN/#?g*?    @?g?g?g3?g.1?gdT\1-?gt0W59?goQC?gX4J?   ?g
?gf?C"?g\6I?g4b?g|$or?gWNS~?gT?gXnc?   \?gY\?gp ^a?gX-K?g#c?g
3?g75Q?gMJ[?gP8R?)ZrF  gw	%?g     ?gS g?gv^?g*uCi?g  a?g]?gE9Q?r  g/?g     ?g	x&~?g#?g5B?g	A'9?gpZ?gWV$u?r  gqIb?g  @N?g1Y?g5?gO?gc-?gk?g )?r  glMV?g?$?gT*r?gCqRv?grx?gωZ?gExY?g<T ?r  gJ9Ͻd?g `Ԗt?gT?gEz?gQ?g7C<*?g<?g~ K?r  g8?g~ȍEt?g⿒?g<v?gHE:?g8Z$?gbº5?gvC?r  g`Yw?gA?$??gE=?g4?g3?g{G9?gp?gH ?r  gz6f?g¯F?g(+?g	$V?gq^ws?g!?gXNJ?gK?r  g4P?g<q?gdV;?gy?g$w?gU<vO?gMX?g	șz*?r  giqSp?gMM?g0V$)?g]
yi/Q?gl?gl?g3Ȇ?gѾ_c?r   r   )ru   rn  r  r   r(  r   r)   r  r   r   reshape)
rf   r   r  r*  r  r  binom_testm1binom_testp1res4_p1res4_m1s
             rF   test_binomtest3TestBinomTest.test_binomtest3  s]    IIb#q"**}-IIb#QWWQZ(qA#r!t,33ggen- zz # P zz # > zz!::z.

1JJ
0O1zz"**\*"LeTzz"**\*"LeT//!A#qsBqD188//!A#qsBqD188..rH   N)%r}   r~   r   r   __doc__r   r   r   r   r+  r0  r3  rG  rW  rZ  r]  ra  rh  rl  rp  rs  rw  r{  skipifr  maxsizer  r@   r   r  r  r  r  r  r  r  r   r|   rH   rF   r!  r!    s   $
 k*PQ[[1QRMR RM k*PQ[[1:;M; RM
 k*PQ[[189M9 RM+@ (1BCk*;<[[AHIOI = DO (1BCk*;<[[AFGNG = DN (1BCk*;<[[9DEN	E = DN (1BCk*;<[[8FGL	G = DL k*PQ[[5	=	;	<	=	0	0	1	1	4	4	4	5	5	6	0	0	-	.	6	7	+	,	4	43	6:N; R<N k*PQ5 R538
L@ [[u,5OP8 Q8
 [[Y	~C7H	nq"&&#&6	q"bffo	788	88
 [[],LM[[X'FG, H N,$ [[W&BC[[],LM[[X'FGL H N DL< [[Wr9o6[[],LM[[X'FG6 H N 76B k*UV= W=( k*UVK WK0 k*UV`/ W`/rH   r!  c                       \ rS rSrSS jr\R                  R                  S/ SQ5      S 5       rS r	\
" SSS	9S
 5       rS rS rS rS rSrg)TestFligneri  c                     [         R                  R                  U5      n[         R                  " U5      SUR	                  [        U5      5      -  -   R                  5       $ )Nr$  )r@   r   r   r   r   r  r   )rf   gr   s      rF   _perturbTestFligner._perturb   sF    ii##C(

1(;(;CF(C CCKKMMrH   r   r   c                    Uc  [        U5      O
[        X!5      nUR                  SUS9n[        R                  " X3S-  5      nUR                  SUS9UR                  SUS94n[        US   US   5        [        US   US   5        g )Nr   r   r   gnf	@gDq?r   r   )r%   r   ru   r   flignerr   r)   )rf   r   r   r   rx   r  s         rF   r  TestFligner.test_data  s     ). $72;MYYqY&mmBA&zz,Ez:zz.ez<>AA'AA'rH   c                    [         R                  R                  S5      nUR                  U R	                  [
        US95      nUR                  U R	                  [        US95      nUR                  U R	                  [        US95      n[        R                  " X4USS9u  pg[        R                  " X4USSS9u  p[        Xh5        [        Xy5        g )Nl   !Cj"	 r  rh   r  r  r   r  )r@   r   r   r   r  r  r  r  r   r  r)   )
rf   r   r   g1_g2_g3_Xsq1r  Xsq2r  s
             rF   r  TestFligner.test_trimmed1  s     ii##J/jjrs34jjrs34jjrs34 mmCc&AmmCc)479#%rH   Tz)inconsistent tie-breaking across backendsnp_onlyr   c           
      \   [         [        [        [        [        [
        [        [        [        [        /
nU Vs/ s H  o1R                  X1R                  S9PM     nn[        R                  " USSS.6u  pE[        XAR                  S5      SS9  [        XQR                  S5      SS9  g s  snf )	Nr   r  rG  r  gP:/@vIh%,=rW   gs4@S_?)r  r  r  r  r  r  r  r  r  r  r   r   r   r  r)   r  s         rF   test_trimmed_nonregression&TestFligner.test_trimmed_nonregression  s     BBBBC8=ABTc

3jj
1TB--iN::&89Fjj)<=EJ Cs   "B)c           
      ^   [         R                  R                  S5      n[        [        [
        [        [        [        [        [        [        [        /
nU Vs/ s H  o@R                  XBS9PM     nn[        R                  " USSS.6nU Vs/ s H  oAR!                  XAR"                  S9PM     nn[        R                  " USSS.6n[%        UR&                  UR!                  UR&                  5      SS9  [%        UR(                  UR!                  UR(                  5      SS9  g s  snf s  snf )	Nl   7m@ r  r  rG  r  r   r  rW   )r@   r   r   r  r  r  r  r  r  r  r  r  r  r  r   r  r   r   r)   rc   r   )rf   r   r   rD   r  r  rx   s          rF   test_trimmed_consistency$TestFligner.test_trimmed_consistency+  s    ii##J/BBBBC87;<tc+t<mmT)TJ=ABTc

3jj
1TBmmT)TJrzz#--'@uM

BJJszz$:G =Bs   D%"D*c                     UR                  SSS5      nSn[        R                  " [        US9   [        R
                  " X"SS9  S S S 5        g ! , (       d  f       g = fr  )rL  r   r   ro   r   r  r  s       rF   r  !TestFligner.test_bad_center_value6  sA    KKAr"A]]:W5MM!v. 655r  c                     Sn[         R                  " [        US9   [        R                  " UR                  SS/5      5        S S S 5        g ! , (       d  f       g = f)Nr  rb  r   r   )r   r   ro   r   r  r   r  s      rF   test_bad_num_argsTestFligner.test_bad_num_args<  s:    6]]:W5MM"**aV,- 655s   (A
Ac                    UR                  S5      n[        R                  " [        [        S9   [
        R                  " X"S-  UR                  / 5      5      nS S S 5        [        WR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        g ! , (       d  f       Nm= f)N      @rb  r   )ru   r   rl  r   r   r   r  r   r*   rc   r   r   rf   r   rv   rx   s       rF   r  TestFligner.test_empty_argB  s    IIbM\\,4IJ--a4B8C Krzz"&&'9:

BJJrvv$67 KJs   *C  
Cr|   N)l   \v7F )r}   r~   r   r   r  r   r   r   r  r  r   r  r  r  r  r  r   r|   rH   rF   r  r    sh    N
 [[W&BC( D(& d+VW	K X	K	H/.8rH   r  c               #     #    / SQn / SQn[        U5       H  u  p#[        R                  R                  U5      nUR                  S5      nUR	                  SSSS9nUR	                  SSSS9n[        Xg5       H#  u  p[        US-   X-   5       H	  n
XX   XZ'   M     M%     UR                  U5        [        R                  " US	5      u  pXS
/X   Q7v   M     g 7f)N))g]YCgQɣ?)gme5gϵ5?)g;jgH?)iFeiHcMi%:r   r   r~  r   )rQ  rR  r   r   r   r  )		enumerater@   r   r   r  zipr  shufflesplit)expected_resultsseedssir  r   xytie_indnum_ties_per_indry   r   jrv   r   s                rF   mood_cases_with_tiesr  J  s     @ .Ee$ii##D)ZZ_,,12A,6<<AAA<>2DA1q5!%( ) 3 	BxxAF1-111 %s   CCc                      \ rS rSr\R
                  R                  S\" \" 5       5      5      S 5       r	\R
                  R                  S/ SQ5      \R
                  R                  S/ SQ5      S 5       5       r
S	 rS
 r\R
                  R                  SS\" 5       4S/5      S 5       r\R
                  R                  SS\" 5       4S/5      S 5       rS r\R
                  R                  S/ SQ5      S 5       rSrg)TestMoodib  z$x,y,alternative,stat_expect,p_expectc                    UR                  UR                  5       5      UR                  UR                  5       5      p![        R                  " XUS9u  px[	        XvR                  U5      SS9  [	        XR                  U5      SS9  g)a  
Example code used to generate SAS output:
DATA myData;
INPUT X Y;
CARDS;
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 4
2 9
2 16
ods graphics on;
proc npar1way mood data=myData ;
   class X;
    ods output  MoodTest=mt;
proc contents data=mt;
proc print data=mt;
  format     Prob1 17.16 Prob2 17.16 Statistic 17.16 Z 17.16 ;
    title "Mood Two-Sample Test";
proc print data=myData;
    title "Data for above results";
  run;
r  gؗҜ<rI  N)r   r   r   moodr)   )	rf   rv   r   r  stat_expectp_expectr   rc   r   s	            rF   test_against_SASTestMood.test_against_SASd  sb    < zz!((*%rzz!((*'=1!JJqE		::k#:G

8 45ArH   r   r   zalternative, expected))r  )3oXQ?gpL?)r  )r  gԣl?)r  )r  gpL?c                 F   Uc  [        U5      O
[        XA5      n/ SQn/ SQnUR                  XQS9UR                  XaS9pe[        R                  " XVUS9n[        UR                  UR                  US   US95        [        UR                  UR                  US   US95        g )Nr}  r  r   r  r   r   )r%   r   r   r   r  r)   rc   r   )rf   r   r  r  r   rv   r   rx   s           rF   test_against_SAS_2TestMood.test_against_SAS_2  s     ). $72;M<=zz!z)2::a:+E1jj;7rzz(1+Uz'KL

BJJx{%J$HIrH   c                 P   [         R                  R                  S5      nUR                  UR	                  S5      5      nUR                  UR	                  S5      5      n[
        R                  " X45      u  pV[
        R                  " XC5      u  px[        Xu* 5        [        X5        g )Nr  )r  r   )rt   r   )r@   r   r   r   r   r   r  r)   )	rf   r   r   r   r   z1p1z2p2s	            rF   test_mood_order_of_args TestMood.test_mood_order_of_args  s|     ii##J/ZZ++G45ZZ++G45B#B#C rH   c                 V   / SQn/ SQnUR                  UR                  U5      S5      nUR                  UR                  U5      S5      n[        R                  " X#S S9n[	        UR
                  UR                  S5      5        [	        UR                  UR                  S5      5        g )N)gg۟?gy<7xg1)E?g9cç?g
FAg<=ӟ	2?g{![?g_l?gڻ{ӿgGSsA0?g1?g 3ggL?g_lg,*.gː53?gvNqG?gW=?)gd"g `Y#?g^g?gNgBagp5_%?g(?gv]lοgg?ggr6ʺ?ḡj?gK!ٿg{g&?g*h}gZ?gyBU?g .ۋ4?g|w;?g&ck @gRj2g}+w(o?g@F?g}_9t?g =g	S?gx(gg7Y?g{ih?)r  r   )rt   r   r6  g4g^}E	?)r  r   r   r  r)   rc   r   )rf   r   r   r   rx   s        rF   test_mood_with_axis_none!TestMood.test_mood_with_axis_none  s    4	H ZZ

20ZZ

20jjd+rzz.'AB

BJJ}$=>rH   zrng_method, argsr   )r  )rR   c                    Sn[         R                  R                  S5      n[        XQ5      nU" USSU406nU" USSU406nUR                  n[
        R                  " UR                  XhS9UR                  XxS95      n	[        U5       H  n
[
        R                  " US S 2U
4   US S 2U
4   5      n[        U	R                  U
   UR                  UR                  5      5        [        U	R                  U
   UR                  UR                  5      5        M     UR                  5       nUR                  5       n[
        R                  " UR                  XhS9UR                  XxS9SS9n	[        U5       H  n[
        R                  " XlS S 24   X|S S 24   5      n[        U	R                  U   UR                  UR                  5      S	S
9  [        U	R                  U   UR                  UR                  5      5        M     g )Nr      |n- r   r  rt   r   r   r6  ra   rI  )r@   r   r   r   r   r   r  r   r  r)   rc   r   	transpose)rf   
rng_methodrD   r   nyr   r   r   r   rx   r  r  ry   s                rF   test_mood_2dTestMood.test_mood_2d  s   
 ii##J/S-
-RH--RH-

jjB4bjjj6QRrA**R1Xr!Q$x0CCMM!,bjj.GHCJJqM2::cjj+AB  \\^\\^jjB4bjjj6Q! rA**R1XrQ$x0CCMM!,bjj.GeTCJJqM2::cjj+AB	 rH   c           	         Sn[         R                  R                  S5      n[        XQ5      nUR	                  U" USU065      nUR	                  U" USU065      n[        S5       H  n[        R                  " XgUS9n	SS/SS/SS/4n
[        XJU   S      5       H  n[        XJU   S      5       H  nUS:X  a  US S 2X4   nUS S 2X4   nO+US:X  a  XkS S 2U4   nX{S S 2U4   nOXkUS S 24   nX{US S 24   n[        R                  " X5      n[        U	R                  X4   UR                  S	S
9  [        U	R                  X4   UR                  5        M     M     M     g )N)r  r   rN   r  r   r   r6  r   r   r   V瞯<rI  )r@   r   r   r   r   r  r   r  r)   rc   r   )rf   r  rD   r   r  r   r   r   r7  rx   axes_idxry   r  slice1slice2r  s                   rF   test_mood_3dTestMood.test_mood_3d  sc    ii##J/S-
ZZ
D5u56ZZ
D5u56!HD**R$/C AAA/H5$!234ud^A%678Aqy!#AqG!#AqG!#q!G!#q!G!#q!G!#q!G**V4C#CMM!$$7US#CJJqt$4cjjA 9 5 rH   c                    [        [        [        US9   [        R                  " UR                  S/5      UR                  / 5      5      n[        UR                  UR                  [        R                  5      5        [        UR                  UR                  [        R                  5      5        S S S 5        g ! , (       d  f       g = f)Nr   r1   )r"   r   r   r   r  r   r*   rc   r@   r   r   rk  s      rF   test_mood_bad_argTestMood.test_mood_bad_arg  sv    +3HRP**RZZ-rzz"~>CCMM2::bff+=>CJJ

266(:; QPPs   BB::
Cc                    Uc  [        U5      O
[        X!5      n[        R                  R	                  S5      n[
        R                  R                  SSUS9n[
        R                  R                  SSUS9nUR                  XAS9UR                  XQS9pT[
        R                  " XESS9u  pg[
        R                  " XES	S9u  p[
        R                  " XES
S9u  pXhs=:X  a  U
:X  d   e   e[        XrR                  SUS9SS9  [        XR                  US-  US95        [        XR                  SUS-  -
  US95        [        R                  " [        SS9   [
        R                  " XESS9  S S S 5        g ! , (       d  f       g = f)Nr         ?r   )r   r   r   g      ?r   r  r  r  r  r   Hz>rI  r   r   z`alternative` must be...rb  r  )r%   r   r@   r   r   r   r   rC   r   r  r)   r   r   ro   )rf   r   r   r   rv   r   stat1r
  stat2r  stat3p3s               rF   test_mood_alternativeTestMood.test_mood_alternative  s=   (- $72;Mii##A&JJNNCcNBJJNNCcNBzz!z)2::a:+E1JJq=	JJq8	JJq;	&&&&&&JJrJ7dCJJr!t5J9:JJq2a4xuJ=>]]:-GHJJq5 IHHs   E55
Fr|   N)r}   r~   r   r   r   r   r   listr  r  r  r  r  r  r  r  r!  r*  r   r|   rH   rF   r  r  b  s0   [[C!"6"89;B;BB [[W&BC[[4@A
JA D
J	 ?6 [[/3Deg2N2D2F GCGC8 [[/3Deg2N2D2F GBGB:< [[W&BC6 D6rH   r  c                       \ rS rSrS rS rS r\R                  R                  \
(       + SS9S 5       rS rS	 rS
 rSrg)TestProbploti  c                    [         R                  R                  SSS9n[         R                  " USS9u  p#/ SQn[	        U[
        R                  " U5      5        [	        X$5        [         R                  " USS9u  pV/ SQn[	        Xg5        g )	Nr   90  rx  Fr  )g+/gY3gtg5Z0gFjg!2gsR{ܿg7Կg>hǿgcz隇gcz隇?g>h?g7?gsR{?g!2?gFj?g5Z0?gt?gY3?g+/?T)gƝV?g?gà?)r   r   rC   probplotr
   r@   r   )rf   rv   osmosrosm_expectedrx   res_fitres_fit_expecteds           rF   rk   TestProbplot.test_basic  sn    JJNNN7>>!/G
 	RWWQZ(*~~aT2?2rH   c                 X   [         R                  R                  SSS9n[         R                  " US SS9u  p#[         R                  " USSS9u  pE[         R                  " USSS9u  pg[	        X$5        [	        X&5        [	        X55        [	        X75        [         R                  " USSS9u  pg )Nr   i@ rx  Fsparamsr  r   r|   )r   r   rC   r2  r
   )
rf   rv   osm1osr1osm2osr2osm3osr3r3  r4  s
             rF   test_sparams_keyword!TestProbplot.test_sparams_keyword,  s    JJNN&N9 ^^At?
^^Aqe<
^^Aru=
####>>!RU;SrH   c                    [         R                  R                  SSS9n[         R                  " USSSS9u  p#[         R                  " US[         R                  SS9u  pE[        X$5        [        X55        [        [        [         R                  USS	9  [        [        [         R                  U/ S	9   " S
 S5      n[         R                  " USSS9u  p#[         R                  " X" 5       SS9u  pE[        X$5        [        X55        g )Nr   r0  rx  Ft)r   )r  r(  r;  zwrong-dist-namer'  c                       \ rS rSrSrS rSrg)3TestProbplot.test_dist_keyword.<locals>.custom_distiD  z6Some class that looks just enough like a distribution.c                 >    [         R                  R                  USS9$ )Nr   )r   )r   r   ppf)rf   qs     rF   rI  7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppfF  s    zz~~aQ~//rH   r|   N)r}   r~   r   r   r  rI  r   r|   rH   rF   custom_distrG  D  s
    H0rH   rL  )r   r:  )r(  r  )	r   r   rC   r2  rE  r
   rn   ro   AttributeError)rf   rv   r<  r=  r>  r?  rL  s          rF   test_dist_keywordTestProbplot.test_dist_keyword:  s    JJNNN7^^A5sDI
^^A5uwwM
##j%..!:KLnennabA	0 	0
 ^^At?
^^AKMuE
##rH   no matplotlibr   c                 X   [         R                  " 5       nUR                  S5        [        R                  R                  SSSS9n[        R                  " U[         S9u  p4[         R                  " 5         [        R                  " US S9u  pV[        R                  " US[         S9n[         R                  " 5         [        R                  " USS S9n[        [        U5      [        U5      s=:H  =(       a1    [        U5      s=:H  =(       a    [        U5      s=:H  =(       a    S	:H  Os  5        [        X55        [        X75        [        X85        [        XF5        [         R                  " 5       nUR                  S5      n	[        R                  " USU	S9  [         R                  " 5         g )
Nr  r   r   t rx  plotF)r  rT  r   )pltfigureadd_subplotr   rE  rC   r2  closer	   r  r
   )
rf   figrv   r  fitres1r  fitres2r  res4axs
             rF   test_plot_kwargTestProbplot.test_plot_kwargN  s   jjlGGKK'K:qs3		qt4~~aU5		~~aU6 	D	SYEE#d)EEs4yEEAEF###) jjl__S!qe"-		rH   c                 B    [        [        [        R                  S/SS9  g r%  )rn   ro   r   r2  rp   s    rF   test_probplot_bad_args#TestProbplot.test_probplot_bad_argsg  s    j%..1#<MNrH   c                 j   [        [        R                  " / SS9[        R                  " / 5      [        R                  " / 5      45        [        [        R                  " / SS9[        R                  " / 5      [        R                  " / 5      4[        R
                  [        R
                  S445        g )NFr1  Tr   )r   r   r2  r@   rK  r   rp   s    rF   
test_emptyTestProbplot.test_emptyk  ss    U^^BE2hhrlBHHRL1	3U^^BD1xx|RXXb\2vvrvvs+-	.rH   c           	         Sn[         R                  " SS9   [        R                  " [        US9   [        [        R                  " S/SS9[         R                  " S/5      [         R                  " S/5      4[         R                  [         R                  [         R                  445        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	N,One or more sample arguments is too small...r  invalidrb  r   Tr1  r   )
r@   r  r   rl  r   r   r   r2  rK  r   r  s     rF   test_array_of_size_one#TestProbplot.test_array_of_size_oner  s    @kk(+ll-W=688RD>288QC=966266266245 > ,+== ,+s#   CA<B>-C>
C	C
Cr|   N)r}   r~   r   r   rk   rB  rN  r   r   r  have_matplotlibr^  ra  rd  rj  r   r|   rH   rF   r.  r.    sM    3<$( [[O+OD E0O.5rH   r.  c                      \ rS rSrS rS rS rS rS r\	R                  R                  SSS	0S
S	0S
S0/5      S 5       rS rS rS r\	R                  R                  S/ SQ5      S 5       rS r\" SSS9\	R                  R                  S/ SQ5      S 5       5       r\" SSS9\	R                  R                  S/ SQ/ SQ/ SQ/5      S 5       5       rS r\	R                  R,                  \" SSS9S 5       5       r\	R                  R                  S / S!Q5      S" 5       r\" SS#S9S$ 5       r\	R                  R                  SS%S/5      S& 5       r\	R                  R                  SS%\R8                  " 5       45      S' 5       rS( rS)rg*)+TestWilcoxoni{  c                    UR                  SS/5      nUR                  S/S-  5      nSn[        R                  " [        US9   [        R
                  " X"S5        S S S 5        Sn[        R                  " [        US9   [        R
                  " X"SS	9  S S S 5        S
n[        R                  " [        US9   [        R
                  " USS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NY= f! , (       d  f       g = f)Nr   r   r  z`zero_method` must be one of...rb  zdummy...z`alternative` must be one ofdummyr  z`method` must be one of...xyzr  )r   r   r   ro   r   wilcoxon)rf   r   rv   rC  rd  s        rF   test_wilcoxon_bad_arg"TestWilcoxon.test_wilcoxon_bad_arg}  s     JJ1vJJs2v3]]:W5NN1, 60]]:W5NN1W5 6.]]:W5NN1U+ 65 65 65 65s$   C?C(8C9
C%(
C69
Dc                 r   UR                  S5      n[        R                  " SS9   [        R                  " X"SSS9u  p4[        X1R                  S5      5        [        XAR                  UR                  5      5        [        R                  " X"SSS9u  p4[        X1R                  S5      5        [        XAR                  UR                  5      5        S S S 5        [        R                  " X"S	SS9u  p4[        X1R                  S
5      5        [        XAR                  S5      5        g ! , (       d  f       N[= f)Nr   r  rh  wilcoxrt  r  r   prattzsplitg     @Z@r1   )ru   r@   r  r   rr  r*   r   r   )rf   r   rv   r   r  s        rF   test_zero_diffTestWilcoxon.test_zero_diff  s    IIbM [[*>>!FDAAzz#/Azz"&&12>>!EDAAzz#/Azz"&&12 + ~~aH\B::g./::c?+ +*s   B-D((
D6c                    UR                  / SQ5      nUR                  / SQ5      n[        R                  " X#SSSS9n[        UR                  UR                  S5      5        [        UR
                  UR                  S5      5        g )	Nr  )r   r   r   r   rw  rt  F)zero_methodr  
correctionr   g|N?)r   r   rr  r)   rc   r   )rf   r   rv   r   rx   s        rF   
test_prattTestWilcoxon.test_pratt  se     JJ|$JJ|$nnQw|(-/rzz#7

BJJ/B$CDrH   c                     / SQn[         R                  " USSS9n[         R                  " USSS9n[         R                  " USSS9ng )N)r   r   r   r   r  r   r   r   r   r   r   rw  rt  )r|  r  rx  rv  )r   rr  )rf   arrr   s      rF   test_wilcoxon_arg_type#TestWilcoxon.test_wilcoxon_arg_type  s?     1NN3GLINN3H\JNN3H\JrH   c           
      *   / SQn[        SS5      nUR                  [        R                  " [	        X25       VVs/ s H  u  pEU/U-  PM     snn5      5      nUR                  U5      n[        R                  " XgSSSS9u  p[        XR                  S5      5        [        XR                  S	5      5        [        R                  " XgS
SSS9u  p[        XR                  S5      5        [        XR                  S5      5        [        R                  " XgSSSS9u  p[        XR                  S5      5        [        XR                  S5      5        UR                  / SQ5      nUR                  / SQ5      n[        R                  " XgSSS9u  p[        XR                  S5      5        [        XR                  S5      5        [        R                  " XgSSS9u  p[        XR                  S5      5        [        XR                  S5      5        g s  snnf )N)	r   r   r  rt   rR   r   r   r   r   r   rw  rt  Fr  r}  g     pz@g.i?rx  g     {@gFYv]Uj?rv  g     pt@g%^ Ez?r  r  r  r        y   r     r     p         w   r@  r     r?  r  s   r  r     r}  r  r  g[ӂ<?TgzM+?)
r  r   r@   concatenater  
zeros_liker   rr  r)   r*   )
rf   r   freqnumsur  rv   r   r  r  s
             rF   test_accuracy_wilcoxon#TestWilcoxon.test_accuracy_wilcoxon  s   ,R|JJr~~3t?&K?41sQw?&KLMMM!~~aGL).0::d+,::&;<=~~aH\).0::d+,::&;<=~~aH\).0::d+,::&678
 JJSTJJST~~au\J::c?+::&89:~~atLI::c?+::&89:9 'Ls   Hkwargr  approxmodert  c                 ,   UR                  / SQ5      nUR                  / SQ5      n[        R                  " X4S40 UD6n[        R                  " X4SSS9n[        UR                  UR                  5        [        UR
                  UR
                  5        g )N)r   r   r  rQ      r  r(  r   rR   rG  rO   r   )r   r  r   r  r   r   rP   r  r~  rP      r_  rv  rt  r  )r   r   rr  r*   rc   r   )rf   r  r   rv   r   rx   r  s          rF   test_approx_modeTestWilcoxon.test_approx_mode  sm    
 JJBCJJCDnnQ85u5nnQ8LAs}}5

CJJ/rH   c                     UR                  / SQ5      nUR                  / SQ5      n[        R                  " X#SSS9nSn[        XEUS9  g )Nr  r  Frt  r  r  r  )r   r   rr  r   )rf   r   rv   r   rx   rw   s         rF   test_wilcoxon_result_attributes,TestWilcoxon.test_wilcoxon_result_attributes  sA    JJSTJJSTnnQeLI,
C3rH   c                 &   [         R                  R                  S5      nUR                  S5      UR                  S5      pCUR                  U5      UR                  U5      pC[        R
                  " X4SS9n[        R                  " UR                  S-  5      n[        UR                  U5        [        U5      (       a  g [        R
                  " X4SS9n[        US5      (       a   e[        R
                  " X45      n[        US5      (       a   eg )Nl   	m$S rt   rt  r  r   r  
zstatistic)r@   r   r   r   r   rr  r   ndtrir   r)   r  r'   rc  )rf   r   r   rv   r   rx   r  s          rF   test_wilcoxon_has_zstatistic)TestWilcoxon.test_wilcoxon_has_zstatistic  s    ii##K0zz"~szz"~1zz!}bjjm1nnQ,7mmCJJqL),"::nnQ'23----nnQ"3-----rH   c                 L   UR                  S/S-  5      nUR                  S5      n[        R                  " USSS9u  pEUR                  S5      n[        XC5        [	        XV5        [        R                  " USSS9u  pEUR                  S	5      n[        XC5        [	        XV5        g )
Nrl  r  r   rt  Fr  g4ťY?TgD2_?)r   r   rr  r*   r)   )rf   r   rC  expected_statstatr  
expected_ps          rF   test_wilcoxon_tieTestWilcoxon.test_wilcoxon_tie  s     JJurz"

3..<EJZZ 45
,&..<DIZZ 34
,&rH   r   r   c                 t   Uc  UO
[        X!5      nUR                  / SQUS9nUR                  / SQUS9nUR                  SUS9n[        R                  " X4SSSS9u  pg[	        Xe5        [        XrR                  S	US95        [        R                  " X4SS
SS9u  pg[	        Xe5        [        XrR                  SUS95        [        R                  " X4SSSS9u  pg[	        Xe5        [        XrR                  SUS95        [        R                  " X4SS
SS9u  pg[	        Xe5        [        XrR                  SUS95        g )N)
}   r  r  r   r   r  r   r  r   rA  r   )
r  z   r  r  r   |   r     rA           ;@r  rt  F)r  r  r}  g}5}?T)r  r}  r  gfh%?r  g?gNCJT?)r   r   r   rr  r*   r)   )rf   r   r   rv   r   w_refr   r  s           rF   test_onesidedTestWilcoxon.test_onesided  s(    GB,>JJIQVJWJJIQVJW

4u
-~~a|).0!::oU:CD~~a4%13!::m5:AB~~a	%1eE!::oU:CD~~a	)-lD!::oU:CDrH   c                     [        SS5       HY  n[        U5      n[        U5      n[        XS-   -  S-  S-   [	        U5      5        [        [        U5      S5        [        X#5        M[     g )Nr   r	  r   )r  r   r   r   r  r@  r   )rf   r   pmf1pmf2s       rF   test_exact_basicTestWilcoxon.test_exact_basic0  sX    q"A&q)D'*DaCQD	2TA&%d1 rH   r   )`method='exact'` is incompatible with JAXr   c                    Uc  UO
[        X!5      nUR                  / SQUS9nUR                  / SQUS9n[        R                  " X4SSS9u  pV[	        XbR                  SUS95        [        R                  " X4SSS9u  pV[	        XbR                  S	US95        [        R                  " X4S
SS9u  pV[	        XbR                  SUS95        UR                  SSUS9S-   nUR                  SSSUS9n[        R                  " X4SSS9u  pV[	        XbR                  SUS95        [        R                  " X4SSS9u  pV[	        XbR                  SUS95        [        R                  " X4S
SS9u  pV[	        XbR                  SUS95        g )N)
g(\?g=
ףp=?g(\?gQ޿gQ?g{Gz?gp=
ףgq=
ףp?g      gQ?r   )
r   r  gɿr  皙gܿgzGgQοg(\gRQr  r  r  g      ?r  g?  ?r  g      ?r   g      4@rF        g    ?g?g    ?)r   r   r   rr  r)   ru   )rf   r   r   rv   r   r   r  s          rF   test_exact_pvalTestWilcoxon.test_exact_pval8  sr    GB,>JJ %,1  3JJ &-2  4~~aGL::j:>?~~awG::m5:AB~~a	'J::k:?@IIb#UI+c1IIc2s%I0~~aGL::&8:FG~~awG::&8:FG~~a	'J::&8:FGrH   rv   )r  r  r   )r  r   rG  r  r   )r  r  r   r  r  irQ   rR   c                 "   [         R                  " UR                  U5      5      u  p4[        R                  " U5      nXS:     R                  5       n[        X2R                  [        U5      5      5        [        XBR                  S5      5        g Nr   r1   )r   rr  r   r@   rK  r@  r*   r  )rf   rv   r   r   r  wtrues         rF   test_exact_p_1TestWilcoxon.test_exact_p_1\  s_    
 ~~bjjm,HHQKa%::eEl34::c?+rH   c           	      n   UR                  SS5      S-   nUR                  SSS5      n[        U5      (       aq  Sn[        R                  " [        US9   [
        R                  " X#SS9  S S S 5        [        R                  " [        US9   [
        R                  " X#S	S9  S S S 5        g [        [
        R                  " X#5      R                  [
        R                  " X#S	S9R                  5        [
        R                  " 5       n[        R                   " S
S5      n[
        R                  " U5      u  px[        Xx4[
        R                  " XeS95        UR                  SS5      n[
        R                  " U5      u  p[        [
        R                  " USS9R                  UR                  U5      5        [        R                  " U5      US:H     R                  S5      n[
        R                  " U5      u  p[        [
        R                  " USS9R                  UR                  U5      5        UR                  SS5      n[
        R                  " U5      u  p[        [
        R                  " USS9R                  UR                  U5      5        g ! , (       d  f       GN1= f! , (       d  f       g = f)Nr   g      I@rF  r  z0When using `wilcoxon` with `jax.numpy` arrays...rb  autor  r  r  r   r  rO   rt  r   r   r  )ru   r'   r   r   ro   r   rr  r*   r   r4  r@   r   r   r   r   r   )
rf   r   rv   r   rd  pmrC  r   r  r   s
             rF   	test_autoTestWilcoxon.test_autog  s   IIb#$IIc2s#"::HGz9qF3 :z9qG4 :q,33qG<CC	E $$&IIb!~~a 
 	aVU^^A9: IIb!~~a q>EErzzRS}UFF1Ia1f!!!$~~a q>EErzzRS}U IIa~~a q>EErzzRS}U? :999s   JJ&
J#&
J4z lazy -> limited `method` choicesc                    [         R                  " SS5      n[        R                  " UR	                  U5      5      nUR	                  SS/5      u  pE[        UR                  U5        [        UR                  U5        SX"S:H  '   [        R                  " UR	                  U5      5      nUR	                  SS/5      u  pE[        UR                  U5        [        UR                  U5        g )	Nr  rR   g     ;@g     P?r   r   r.  g     0?)r@   ru   r   rr  r   r*   rc   r   )rf   r   rC  rx   r   r  s         rF   test_auto_permutation_edge_case,TestWilcoxon.test_auto_permutation_edge_case  s    
 IIb!nnRZZ]+zz4./q)

A&q&	nnRZZ]+zz2|,-q)

A&rH   r   )r   r   r  c                    [         R                  R                  S5      nUR                  US9R                  5       n[        R
                  " UR                  U5      [        R                  " 5       S9n[        R
                  " USS9n[        U5      n[        UR                  UR                  UR                  US95        [        UR                  UR                  UR                  US95        UR                  UR                  US-  S95      n[         R                  R                  S5      n[        R                  " SUS	9n[        R
                  " XHS9n[         R                  R                  S5      n[        R                  " SUS
9n[        R
                  " XHS9n[        UR                  UR                  S-  5      S-  UR                  5        [        UR                  UR                  5        g )Nl   aQG1X@
r  r  r  r   r  l   VsWFr~  r  )r  r   r   )r@   r   r   r   r   rr  r   r4  r%   r*   rc   r   r  )	rf   r   r   r   rv   rx   r  r   r  s	            rF   r  $TestWilcoxon.test_permutation_method  sf   ii##$56JJDJ!((*nnRZZ]53J3J3LMnnQw/ $rzz#--uz'MN

BJJszzJ$GHJJszztBwz/0ii##$56$$=nnQ*ii##$56$$#FnnQ*C04cjjA

CJJ/rH   z(`method='auto'` is incompatible with JAXc                    [         R                  R                  S5      nUR                  SS9n[         R                  US'   UR                  U5      n[        R                  " U5      n[        R                  " USS9n[        UR                  UR                  5        [        UR                  UR                  5        [        US5      (       d   e[        US5      (       a   eg )Nl   HF )Z )r	  r   r  )r   r   rt  r  r  )r@   r   r   normalr   r   r   rr  r)   rc   r   rc  )rf   r   r   r	  rx   r  s         rF   6test_method_auto_nan_propagate_ND_length_gt_50_gh20591CTestWilcoxon.test_method_auto_nan_propagate_ND_length_gt_50_gh20591  s     ii##O4JJGJ$&&$JJqMnnQnnQ|4s}}5

CJJ/sL))))3-----rH   r  c                    [        U5      (       a  US:X  a  [        R                  " S5        UR                  / SQ5      nUR                  / SQ5      n[        R
                  " X4SUS9n[        R
                  " XCSUS9nUR                  S   UR                  S   S	-   -  S
-  n[        UR                  5      UR                  :w  d   e[        XvR                  -
  UR                  5        [        UR                  UR                  5        g )Nr  r  )
r  r1  rj  r  rV  r  r  r  r  r^  )
r  r  E   rj  rh  r  r  r  r  r  r  r  r  r   r   r   )r'   r   r  r   r   rr  r  rA  rc   r)   r   )rf   r  r   var1var2r  rx   max_statistics           rF   test_symmetry_gh19872_gh20752*TestWilcoxon.test_symmetry_gh19872_gh20752  s    "::&G+KKCD zzBCzzBCnnTVFKnnTYvN

1A):;a?3==!S]]2225s}}E

CJJ/rH   c                 8   [        U5      (       a  US:X  a  [        R                  " S5        [        R                  " UR                  S5      US9n[        UR                  UR                  S5      5        [        UR                  UR                  S5      5        g )Nr  r  r   r  r   r1   )
r'   r   r  r   rr  r   r)   rc   r   r   )rf   r  r   rx   s       rF   test_all_zeros_exact!TestWilcoxon.test_all_zeros_exact  se    "::&G+KKCD nnRXXa[8rzz"~6

BJJrN3rH   c                 "   UR                  / SQ5      nUR                  / SQ5      nSn[        R                  " [        US9   [        R
                  " X#S S 5        S S S 5        [        U5      (       d  g Sn[        R                  " [        US9   [        R
                  " X#S S SS9  S S S 5        [        [        S	S 5      =(       d    [        R                  R                  nS
n[        R                  " XTS9   [        R
                  " X#SS9  S S S 5        Sn[        R                  " XTS9   [        R
                  " X#SSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)Nr   r   r   rN   z/Array shapes are incompatible for broadcasting.rb  r  z0operands could not be broadcast together with...T)_no_deco	AxisErrorz8source: axis 3 is out of bounds for array of dimension 1r   r6  z+`axis` must be compatible with the shape...)r7  r  )r   r   r   ro   r   rr  r$   r   r@   
exceptionsr  )rf   r   rv   r   rd  r  s         rF   .test_wilcoxon_axis_broadcasting_errors_gh22051;TestWilcoxon.test_wilcoxon_axis_broadcasting_errors_gh22051  s    JJy!JJy!C]]:W5NN1f% 6 ||D]]:W5NN1ft4 6 BT2Mbmm6M6M	L]]94NN1a( 5 @]]94NN1a$7 54! 65 65
 54 54s0   EE9E/-F 
E
E,/
E= 
Fr|   N) r}   r~   r   r   rs  ry  r~  r  r  r   r   r   r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r   r4  r  r  r   r|   rH   rF   rn  rn  {  s   ,, EK;B [[W
H	1FL3IJL0L04.$', [[W&BC"E D"EH2 k*UV[[W&BCH D WHD k*UV[[S;#5#@#B C,C W,&VP [[k*LM' N '" [[VZ00 10* k*TU. V.$ [[X'>?0 @0 [[X1H1H1J'KL4 M48rH   rn  )gףp=
W0@gQ%@gGz'@g+@g33333/@g3333332@g
ףp=
@gq=
ףp$@g
ףp=
)@g\(\-@gGz0@gGzn3@g=
ףp= @gffffff&@gfffff)@g
ףp=-@Gz0@g3@g!@g)\('@g333333(@g
ףp=
.@r  g{G0@gQ3@gq=
ף"@g\(\'@gR*@g33333.@g\(3@c                       \ rS rSrS r\R                  R                  S5      S 5       rS r	\R                  R                  SSS/5      S	 5       r\R                  R                  S
/ SQ5      S 5       rSrg)	TestKstati		  c           	         [         R                  R                  S5      nUR                  UR	                  S5      UR
                  S9nUR                  S Vs/ s H  n[        R                  " X45      PM     sn5      nUR                  / SQUR                  S9n[        XVSS9  [        R                  " USS	9n[        R                  " US
S	9n[        R                  " USS	9n	[        UR                  XxU	45      US S SSS9  g s  snf )Ni}  r0  r   r  )gHQ,?glZ)rI?g88}?gcJN?rK  rW   r   )orderr   r   r  g{Gz?{Gz?rI  )r@   r   r   r   randnr   stackr   kstatr   r)   moment)
rf   r   r   rg   r   momentsr  m1m2m3s
             rF    test_moments_normal_distribution*TestKstat.test_moments_normal_distribution	  s    ii##E*zz#))E*"**z=((,G,QEKK0,GH::I$(JJ  05 \\$a(\\$a(\\$a(""."DtT Hs    Dr  c                     [        [        [        US9   [        R                  " UR                  / 5      5      nS S S 5        [        WUR                  UR                  5      5        g ! , (       d  f       N4= fr   )r"   r   r   r   r  r   r*   r   rk  s      rF   rq   TestKstat.test_empty_input	  sM    +3HRP++bjjn-C QRZZ/0 QPs   &A((
A6c                     UR                  S5      nUR                  US:H  UR                  U5      n[        [        R
                  " U5      UR                  UR                  5      5        g NrY   rN   ru   wherer   r*   r   r  r   rf   r   rg   s      rF   r   TestKstat.test_nan_input 	  I    yy~xx	26640D)2::bff+=>rH   r   r   g/$@c                     UR                  S5      nSn[        R                  " [        US9   [        R
                  " X1S9  S S S 5        g ! , (       d  f       g = f)Nr  z'k-statistics only supported for 1<=n<=4rb  r   )ru   r   r   ro   r   r  )rf   r   r   rg   rd  s        rF   test_kstat_bad_argTestKstat.test_kstat_bad_arg&	  s<     yy};]]:W5KK" 655s   A
Acase))r   gM~,@)r   2.L)@)r   gP'')r    -"bac                     Uu  p4[         R                  " UR                  [        5      U5      n[	        XRR                  U5      5        g r?   )r   r  r   x_kstatr)   )rf   r	  r   r   r  rx   s         rF   test_against_RTestKstat.test_against_R.	  s4     kk"**W-q1ZZ_-rH   r|   N)r}   r~   r   r   r  r   r   rM  rq   r   r   r  r  r   r|   rH   rF   r  r  		  s    U [[ BC1 D1
? [[S1e*-# .# [[V &? @.	@.rH   r  c                   h    \ rS rSr\R
                  R                  S5      S 5       rS rS r	S r
Srg)	TestKstatVari@	  r  c                     UR                  / 5      n[        [        [        US9   [        R
                  " U5      nS S S 5        [        WUR                  UR                  5      5        g ! , (       d  f       N4= fr   )r   r"   r   r   r   kstatvarr*   r   r  s       rF   rq   TestKstatVar.test_empty_inputB	  sR    JJrN+3HRP..#C QRZZ/0 QPs   A**
A8c                     UR                  S5      nUR                  US:H  UR                  U5      n[        [        R
                  " U5      UR                  UR                  5      5        g r  r   r  s      rF   r   TestKstatVar.test_nan_inputI	  r  rH   c                     UR                  S/5      nSnSn[        R                  " [        US9   [        R
                  " X#S9  S S S 5        g ! , (       d  f       g = f)Nr   r  zOnly n=1 or n=2 supported.rb  r  )r   r   r   ro   r   r  )rf   r   rg   r   rd  s        rF   r   TestKstatVar.test_bad_argO	  sA    zz1#.]]:W5NN4% 655s   A
Ac                 z   [        [        5      nSnSn[        R                  " UR	                  [        5      S5      nX2-  n[        XQR	                  U5      5        [        R                  " UR	                  [        5      S5      nSUS-  -  U-  US-
  U-  -   X"S-   -  -  n[        XQR	                  U5      5        g )Nr
  r  r   r   )r  r  r   r  r   r)   )rf   r   r   k2k4rx   r  s          rF   test_against_R_mathworld%TestKstatVar.test_against_R_mathworldW	  s    
 LnnRZZ0!4fZZ_-nnRZZ0!4QwqyAaC8#qS	2ZZ_-rH   r|   N)r}   r~   r   r   r   r   rM  rq   r   r   r  r   r|   rH   rF   r  r  @	  s4    [[ BC1 D1?&.rH   r  c                   |    \ rS rSrS rS rS r\R                  R                  \
(       + SS9S 5       rS rS	 rS
rg)TestPpccPlotij	  c                 *    [        SSSS9S-   U l        g Nr   r   rR  rx  rG   rv   rp   s    rF   setup_methodTestPpccPlot.setup_methodk	      "13WEIrH   c           	          Sn[         R                  " U R                  SSUS9u  p#/ SQn[        U[        R
                  " SSUS95        [        X45        g )Nr   r  N)g9%	?gxM _?g";9?g®XZ?g?num)r   	ppcc_plotrv   r
   r@   rL  )rf   r)  svalsppccppcc_expecteds        rF   rk   TestPpccPlot.test_basicn	  sG    oodffc2;%r{{3:;,rH   c                 D   [         R                  " U R                  SSSS9u  p[         R                  " U R                  SS[         R                  S9u  p4[	        XSS9  [	        X$SS9  [         R                  " U R                  SS5      u  pV[	        XSS9  [	        X&SS9  g )Nr'  r  tukeylambdar'  g#B;rW   )r   r,  rv   r2  r
   )rf   svals1ppcc1svals2ppcc2svals3ppcc3s          rF   	test_distTestPpccPlot.test_distv	  s    RmLR-2->->@U351R8U351rH   rP  r   c                 J   [         R                  " 5       nUR                  S5      n[        R                  " U R
                  SS[         S9  UR                  U5        UR                  S5      n[        R                  " U R
                  SSUS9  [         R                  " 5         g Nr  r   rS  )rU  rV  rW  r   r,  rv   delaxesrX  rf   rY  r]  s      rF   r^  TestPpccPlot.test_plot_kwarg	  sm     jjl__S!Rc2B __S!Rb1		rH   c           	          [        [        [        R                  U R                  SS5        [        [        [        R                  / SQSSSS9  g )Nr   r   r   r&  r'  )rn   ro   r   r,  rv   rp   s    rF   test_invalid_inputs TestPpccPlot.test_invalid_inputs	  s5    j%//4661a@ 	j%//9a,	.rH   c           	          [         R                  " / SS5      u  p[        U[        R                  " SSSS95        [        U[        R
                  " S[        S95        g )Nr   r   r  r*  r   )r   r,  r
   r@   rL  r   r  )rf   r-  r.  s      rF   rd  TestPpccPlot.test_empty	  sD     oob!Q/r{{1aR89bhhr78rH   rv   N)r}   r~   r   r   r#  rk   r9  r   r   r  rl  r^  rB  rd  r   r|   rH   rF   r  r  j	  sH    J-
2 [[O+OD
 E
.9rH   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestPpccMaxi	  c                 F    S/n[        [        [        R                  USS9  g r%  )rn   ro   r   ppcc_maxr   s     rF   test_ppcc_max_bad_arg!TestPpccMax.test_ppcc_max_bad_arg	  s    sj%..$=NOrH   c                     [         R                  R                  SSSSSS9S-   n[        [         R                  " U5      SS	S
9  g )Nffffffr   rF  '   r        @{rQ   r^   )r   r2  rC   r   rJ  r   s     rF   test_ppcc_max_basicTestPpccMax.test_ppcc_max_basic	  sF    !!$ASu/6 " 8:=>ENN1-/CQOrH   c                 *   [         R                  R                  SSSSSS9S-   n[         R                  " USS	9n[         R                  " U[         R                  S	9n[	        US
SS9  [	        US
SS9  [         R                  " U5      n[	        US
SS9  g )NrN  r   rF  rO  rP  r   rQ  r2  r'  rR  r   r^   )r   r2  rC   rJ  r   )rf   rv   max1max2max3s        rF   r9  TestPpccMax.test_dist	  s    !!$ASu/6 " 8:=> ~~am4~~ae&7&78D"6BD"6B ~~a D"6BrH   c                     [         R                  R                  SSSSSS9S-   n[        [        [         R
                  USS	9  [        [         R
                  " US
S	9SSS9  [        [         R
                  " USS	9SSS9  g )NrN  r   rF  rO  rP  r   rQ  )r   r1   rF  brack)r   r   rR  rQ   r^   r  r   )r   r2  rC   rn   ro   rJ  r   r   s     rF   
test_brackTestPpccMax.test_brack	  sx    !!$ASu/6 " 8:=>j%..!?KENN1F;0!	= 	ENN1G<0!	=rH   r|   N)	r}   r~   r   r   rK  rS  r9  r^  r   r|   rH   rF   rH  rH  	  s    P
P
C	=rH   rH  c                       \ rS rSr\R
                  R                  SSS/5      S 5       r\" SSS9S	 5       r	S
 r
S rS rS rS rSrg)TestBoxcox_llfi	  r   r   r   c                 j   [        X!5      n[        R                  R                  SSSS9nSn[        R                  " XRR                  XCS95      nUR                  * S-  [        R                  " [        R                  " UR                  5       S-  5      5      -  n[        XbR                  XsS95        g )	NrO  r  1  r   r   r   r   r   r  r   )r   r   r   rC   
boxcox_llfr   r   r@   rA   r@  rj   r)   )rf   r   r   dtrv   lmbdallfllf_expecteds           rF   rk   TestBoxcox_llf.test_basic	  s    RJJNN2ENBujjj&=>w|bffRVVAEEGQJ-?&@@ZZZ?@rH   Tz,array-likes only accepted for NumPy backend.r  c                     [         R                  R                  SSSS9nSn[         R                  " X25      n[         R                  " U[	        U5      5      n[        XESS9  g Nr   r  rc  rd  r   r  rW   )r   r   rC   re  r,  r)   rf   r   rv   rg  rh  llf2s         rF   test_array_likeTestBoxcox_llf.test_array_like	  sQ     JJNN%N@u(tAw/.rH   c                 2   [         R                  R                  SSSS9nSn[         R                  " X25      n[         R                  " U[        R
                  " X"/5      R                  5      n[        UR                  XD/5      UR                  U5      SS9  g rl  )	r   r   rC   re  r@   vstackr  r)   r   rm  s         rF   test_2d_inputTestBoxcox_llf.test_2d_input	  st     JJNN%N@u(ryy!'8':':;

C:.

40@uMrH   c                     Sn[        [        X!S9   UR                  UR                  [        R
                  " SUR                  / 5      5      5      5      (       d   e S S S 5        g ! , (       d  f       g = fNrg  r   r   )r"   r   isnanr   r   re  r  s      rF   rd  TestBoxcox_llf.test_empty	  sR    @+7B88BJJu'7'72::b>'JKLLLL CBBs   AA''
A5c                     UR                  / SQ5      n[        R                  " SU5      n[        X1R                  S5      5        g )N)g     h@      m@rz  g     x@ig#:x1)r   r   re  r)   rf   r   rg   rh  s       rF   test_gh_6873TestBoxcox_llf.test_gh_6873	  s7     zz67r4(ZZ(:;<rH   c                     UR                  / SQUR                  S9n[        R                  " SU5      n[	        X1R                  SUR                  S9SS9  g )N)i  i  i  r   i  r   g:0yE>gl.r   rW   )r   r   r   re  r)   r{  s       rF   test_instability_gh20021'TestBoxcox_llf.test_instability_gh20021	  sL    zz8

zKtT* 	ZZ(=RZZZP!	#rH   c           
         UR                  SS/SS//5      n[        R                  " SUSS9nUR                  [        R                  " SUS S 2S4   5      [        R                  " SUS S 2S4   5      /5      n[	        X45        [        R                  " SUSS9nUR                  [        R                  " SUSS S 24   5      [        R                  " SUSS S 24   5      /5      n[	        XV5        g )Nr   r   i,  i  r   r   r6  )r   r   re  r  r)   )rf   r   rg   
llf_axis_0llf_0
llf_axis_1llf_1s          rF   	test_axisTestBoxcox_llf.test_axis	  s    zzC:Sz23%%aA6
QQT
+QQT
+
  	
*%%aA6
QQT
+QQT
+
  	
*rH   r|   N)r}   r~   r   r   r   r   r   rk   r   ro  rs  rd  r|  r  r  r   r|   rH   rF   ra  ra  	  si     [[Wy)&<=A >A dKM/M/NM
=#+rH   ra  (  iU>  iϵ i i_
 i7 i is iv  i+ i* i-q ir: i  i i i i_ i4  i iD  i i, iE i\  i i| ig  iM iӢ i[  i! i if6 iP i i iI i/ iF& i i i`# i i  i& i i iQ ia i
 iXZ iw  i_ im  iD i- iB  i:C i	 i' i  i % ix i  iz_ iQ i!# i= i  ix i
 iU7 i_ i1k iW9 i& ix iI i  iT i
 i i  irv im i͟  i iO iv i) iP i4 i= ii  iU i i ig> ix	 i` i| i0 i` iM	 i ' i[ i8 i  i3[ i  i) i`N i
	 i  i[ i:+ ip i	% i
  iV i[$ iX  i_ ib ieZ i i`?	 it i  i iE i iT iy i imv i< iZ i! i i(  ir
 i i iɪ i| i i> ii  i i* i# ix i i& i i# i1g iP i) iۆ i{% i? i۽ i| i i& i- iư) i+c i7  iQ i	o i& i|_ iy
 i6 i  i i i:J i#j i8 i  i%  i i%W i( i` i: ina  i  i i% i$ i4 iA( iq  i  i" iy iXZ i izr i i$ i; is igY i i7 ip	 ip iL6" iDH i i!3 i iI( i|C iш i im  iS i  i{8 i  i i iP i2L i( i@ is iu i2 i_ ij i)m igZ i_ iu	 i9 ik  i'; i ii iK i܃ i i= iv i= i ia  ir  i i i}W i*  i  iJ i i  i2  iUF iNj	 iV," ip iA i% i iv9 iI5 i  iT- i  i8~ i?e` i1 iV  i/X i= i4 i iح i^ i i/ ig i( i i|B; ip i ic iE' iE i$
 i i{ ik i: iI iA_ i iP ioP  i6_ i iܲ iO	 iA7 iL  iA i iV  iwm i iZh i|V iԇC iw i& i~ i i'  i!  i i
 i} ie i3 i i i_ i  i@) i  iV ii iF i? i&
 i"Y iw i  iH iS ird ib i@ iK iA; iz| id+ i	 i
8 i"  i	 iO i_ i$l i!9 ii iT iuL iQ'% iqp iC i]K@ i! i i  iIp| i i?	B i i io0 i i

 i  i5% i i i* i i iv0 i* i* iw i  ive i$ i i- iD~ i- i i,4 ib i  i iP0 i) im i	 iR iQ i
 i i c                       \ rS rSrS rSrg)TransformTesti>
  c           	         [        [        U R                  5      n[        [        U R                   S35      n[        [        U R                  [        5      n[
        R                  R                  S5      nUR                  S5      n[
        R                  US'   Sn[        R                  " [        SS9   U" XVSS	9  S S S 5        U" XVS
S	9n[
        R                  R                  Xs" US5      5        U" XVSS	9n[
        R                  R                  Xq" XVS
S	95        [        R                  " [        SS9   U" USS	9  S S S 5        U" US
S	9n[
        R                  R                  US   U" U[
        R                  5      5        [
        R                  R                  US   [
        R                  5        U[        R                  :X  a  SS0O0 nU" USS	9nU" U4SS0UD6nU" XV5      n	[
        R                  R                  US   U	5        [
        R                  R                  US   U5        g ! , (       d  f       GN{= f! , (       d  f       GN= f)N_normmax   5kzj r  r   r1   The input contains nan valuesrb  raise
nan_policy	propagateomitr   r   r  mler  )r   r   	transformr   r   r@   r   r   r   r   r   ro   r  r
   r   r   )
rf   r  normmaxspecial_transformr   rv   lmbrx   r  r  s
             rF   test_nan_policyTransformTest.test_nan_policy?
  s   E4>>2	%DNN#38!<=#GT^^=RSii##$78JJrNvv! ]]:-LMa1 N ;7


""3(9!R(@A62


""3	![(QR ]]:-LMaG, N k2


A(9!RVV(DE


A/%.%,,%>5!Bf-a4F4e4


""3q63/


""3q63/- NM NMs   5H16I1
I 
Ir|   Nr}   r~   r   r   r  r   r|   rH   rF   r  r  >
  s    "0rH   r  c            	       :   \ rS rSrSrS rS rS rS rS r	S r
\R                  R                  S	/ S
Q5      S 5       rS r\R                  R                  S/ SQ5      S 5       rS r\R                  R                  S\R&                  " / SQ5      \R&                  " \R(                  SS/5      /5      S 5       r\R                  R                  S\R&                  " / SQ5      \R&                  " / SQ5      \R&                  " / SQ5      /5      S 5       rS rSrg)
TestBoxcoxid
  r   c                 0   [        SSSS9S-   n[        R                  " USS9n[        X!S-
  5        [        R                  " USS9n[        USSU-  -
  5        [        R                  " USS9n[        U[        R
                  " U5      5        [        R                  " [        U5      SS9n[        U[        R
                  " U5      5        [        R                  " [        R                  " S	5      S
5      n[        U[        R                  " S	5      5        g )Nr   r   r0  rx  r   rg  r  r   r  r   )
rG   r   r   r
   r@   rA   r,  r  r   r   )rf   rv   xts      rF   test_fixed_lmbdaTestBoxcox.test_fixed_lmbdag
  s    abu=A\\!1%E"\\!2&A!G$\\!1%BFF1I& \\$q'+BFF1I& \\"''"+q)R"&rH   c                     Sn[         R                  R                  SSSS9nX!-  S-   U* -  n[         R                  " U5      u  pE[	        USU-  SS	9  g )
Ng      @r  iP  i  )r   r   r   r   r  r   r^   )r   r   rC   r   r   )rf   rg  rv   x_invr  r   s         rF   test_lmbda_NoneTestBoxcox.test_lmbda_Noney
  sS     JJNNrDNAQ5&)\\%(
FBJ:rH   c                    [         R                  R                  S5      n[        SSUS9S-   n[        R
                  " USS9u    p4[        USS/5        [        R
                  " US	S9u    p4[        US
S/5        [        SSUS9S-   n[        R
                  " USS9u    p4[        USS/5        [        R
                  " USS9u    p4[        USS/5        g )Ni  r   r   rx  r$  alphagx@gv[%@r  gxˉEk?g8Bhk @rQ   r   rt   rF  g\?gx̡&@r4   g7(U@gp:sY@)r@   r   r   rG   r   r   r
   )rf   r   rv   r   r   s        rF   
test_alphaTestBoxcox.test_alpha
  s    ii##D)abs;a? at41#46G"HIat41#57H"IJ ac<rAau519k":;au51:z":;rH   c                 H   [         R                  " SS/5      n[        [        [        R
                  U5        [        [        [        R
                  [         R                  " S/5      5        [        [        [        R
                  [         R                  " S/S//5      5        g )Nr  r   r   )r@   rK  rn   ro   r   r   r   s     rF   test_boxcox_bad_argTestBoxcox.test_boxcox_bad_arg
  s_    HHb!Wj%,,2j%,,!>j%,,1#s0DErH   c                 \    [        [        R                  " / 5      R                  S:H  5        g N)r   )r	   r   r   r  rp   s    rF   rd  TestBoxcox.test_empty
  s    R &&$./rH   c                 R    [         R                  " [        5      u  p[        USSS9  g )NgsHjdrh㈵>rW   r   r   _boxcox_datar
   )rf   r   lams      rF   r|  TestBoxcox.test_gh_6873
  s     l+ 	YT2rH   bounds)r  r   )r   r   )r  r  c                 z   ^ U4S jn[         R                  " [        S US9u  p4TS   Us=:  a
  TS   :  d   e   eg )Nc                 0   > [         R                  " U TSS9$ Nbounded)r  r  r   minimize_scalarfunr  s    rF   	optimizerBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizer
      ++C3<> >rH   rg  r  r   r   )r   r   r  )rf   r  r  r   rg  s    `   rF   $test_bounded_optimizer_within_bounds/TestBoxcox.test_bounded_optimizer_within_bounds
  s?    	> <<DINay5,6!9,,,,,rH   c                    ^^ [         R                  " [        S S9u  pUS-   US-   4mSS0mUU4S jn[         R                  " [        S US9u  pXB:w  d   e[        UTS   5        g )	Nr  rl  r   xatolr  c                 2   > [         R                  " U TSTS9$ )Nr  )r  r  optionsr  )r  r  r  s    rF   r  PTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizer
  s!    ++C3<gO OrH   r  r   r  )rf   r   rg  r  lmbda_boundedr  r  s        @@rF   2test_bounded_optimizer_against_unbounded_optimizer=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizer
  so    
 <<D9 #+uqy)E"	O
 !<<D2;=%%%vay1rH   r  )strr   r   rl  c                     [         R                  " [        SS9   [        R                  " [
        S US9  S S S 5        g ! , (       d  f       g = f)Nz`optimizer` must be a callablerb  r  r   r   ro   r   r   r  rf   r  s     rF   $test_bad_optimizer_type_raises_error/TestBoxcox.test_bad_optimizer_type_raises_error
  s0     ]]:-MNLLTYG ONNs	   >
Ac                     S nSn[         R                  " [        US9   [        R                  " [
        S US9  S S S 5        g ! , (       d  f       g = f)Nc                     gr   r|   )r  s    rF   r  CTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizer
  s    rH   z/return an object containing the optimal `lmbda`rb  r  r  )rf   r  rd  s      rF   %test_bad_optimizer_value_raises_error0TestBoxcox.test_bad_optimizer_value_raises_error
  s9    
	 D]]:W5LLTYG 655s   A
Abad_x)r   ig@r  r   c                     Sn[         R                  " [        US9   [        R                  " U5        SSS5        g! , (       d  f       g= f)zHTest boxcox_normmax raises ValueError if x contains non-positive values.z#only positive, finite, real numbersrb  N)r   r   ro   r   boxcox_normmax)rf   r  rd  s      rF   "test_negative_x_value_raises_error-TestBoxcox.test_negative_x_value_raises_error
  s1    
 8]]:W5  ' 655s	   <
A
rv   
     L@     x@     4@     @@     d@r  g     @g     <@g     \@g     @r  r  r  r  r  gFq$jgS	#jgGewa$jgVBi$jg[(>2$jc                     [         R                  " [        SS9   [        R                  " U5      u  p#[
        R                  " [
        R                  " U5      5      (       d   e S S S 5        g ! , (       d  f       g = f)NThe optimal lambda isrb  )r   rl  rm  r   r   r@   r  isfinite)rf   rv   xt_bclam_bcs       rF   test_overflowTestBoxcox.test_overflow
  sM     \\+-DE!LLOME66"++e,---- FEEs   A
A..
A<c                    [         R                  R                  S5      nUR                  S5      n[         R                  US'   Sn[        R
                  " [        SS9   [        R                  " X#SS9  S S S 5        [        R                  " X#S	S9S
   n[         R                  R                  U[         R                  [         R                  45        [        R                  " X#SS9S
   n[        R                  " U[         R                  " U5      )    US9S
   n[         R                  R                  XE5        g ! , (       d  f       N= f)Nr  r  r   rF  r  rb  r  )r  r  r  r   r  r  )r@   r   r   r   r   r   ro   r   r   r  r   rw  r
   )rf   r   rv   r  rx   r  s         rF   #test_confidence_interval_nan_policy.TestBoxcox.test_confidence_interval_nan_policy
  s    ii##$78JJrNvv!]]:-LMLLG< N ll1kB1E


bffbff%56ll1f=a@ll1bhhqk\?%8;


""3, NMs   D;;
E	r|   N)r}   r~   r   r   r  r  r  r  r  rd  r|  r   r   r   r  r  r  r  r@   rK  r~  r  r  r  r   r|   rH   rF   r  r  d
  s'   I'$;<"F03 [[X'FG- H-2* [[[*>?H @H

H [[bhh01288RVVRO3LM
(
( [[S
 : 	; 	9:
MN# ..
-rH   r  c                       \ rS rSrS rSrg)NormmaxTesti  c                 (   [        [        U R                  5      n[        R                  R                  S5      nUR	                  S5      n[        R                  US'   [        R                  " [        SS9   U" USS9  S S S 5        U" USS9n[        R                  R                  U[        R                  5        U" US	S9nU" U[        R                  " U5      )    5      n[        R                  R                  XE5        g ! , (       d  f       N= f)
Nr  r  r   r  rb  r  r  r  r  )r   r   transform_normmaxr@   r   r   r   r   r   ro   r  r   rw  r
   )rf   r  r   rv   rx   r  s         rF   r  NormmaxTest.test_nan_policy  s    #E4+A+ABii##$78JJrNvv!]]:-LMaG4 N  k:


RVV,f5288A;,0


""3, NMs   7D
Dr|   Nr  r|   rH   rF   r  r    s    -rH   r  c                      \ rS rSrSrS rS rS rS r\	R                  R                  S/ SQ5      \	R                  R                  S	/ S
Q5      S 5       5       r\	R                  R                  S 5       rS r\	R                  R                  S/ SQ/ SQ45      S 5       rS r\	R                  R                  S\R&                  " / SQ\R(                  S9\R&                  " / SQ\R(                  S9\R&                  " / SQ\R*                  S9\R&                  " / SQ\R*                  S9/5      \	R                  R                  S/ SQ5      \	R                  R                  SS/5      S 5       5       5       r\	R                  R                  S/ SQ/ SQ/5      \	R                  R                  SS/5      S 5       5       rS rSrg)TestBoxcoxNormmaxi  r  c                 *    [        SSSS9S-   U l        g Nr   r   r0  rx  r"  rp   s    rF   r#  TestBoxcoxNormmax.setup_method      "12EBQFrH   c                 Z    [         R                  " U R                  5      n[        USSS9  g )Nm?rV   rW   r   r  rv   r
   rf   r   s     rF   test_pearsonrTestBoxcoxNormmax.test_pearsonr  s"    %%dff-t4rH   c                     [         R                  " U R                  SS9n[        USSS9  [         R                  " U R                  5      u  p#[        X15        g )Nr  r  	.!?rV   rW   )r   r  rv   r
   r   )rf   r   r   maxlog_boxcoxs       rF   test_mleTestBoxcoxNormmax.test_mle  sC    %%dffU;t4 !<</.rH   c                 \    [         R                  " U R                  SS9n[        USS/SS9  g )Nr  r  r  r  rV   rW   r  )rf   
maxlog_alls     rF   test_allTestBoxcoxNormmax.test_all&  s)    ))$&&?

Xx$8tDrH   r  )r  pearsonrr  r  r  c                    ^ U4S jn[         R                  " U R                  UUS9n[        R                  " TS   U:  5      (       d   e[        R                  " UTS   :  5      (       d   eg )Nc                 0   > [         R                  " U TSS9$ r  r  r  s    rF   r  ITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer.  r  rH   )r  r  r   r   )r   r  rv   r@   r  )rf   r  r  r  r   s     `  rF   r  6TestBoxcoxNormmax.test_bounded_optimizer_within_bounds*  sa    	> %%dffV09;vvfQi&())))vvfvay())))rH   c                 8  ^^ [         R                  " U R                  5      n[        R                  " US5      n[        R
                  " US-
  US-   S5      m " S S5      mUU4S jn[         R                  " U R                  US9nXA:w  d   e[        XAS5        g )	Nr   r  i  c                       \ rS rSrSrg)?TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.MyResulti>  r|   N)r}   r~   r   r   r   r|   rH   rF   MyResultr  >  s    rH   r  c                    > / nT H  nUR                  U " U5      5        M     T" 5       nT[        R                  " U5         Ul        U$ r?   )appendr@   argminrv   )r  objsrg  rx   r  lmbda_ranges       rF   r  @TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizerA  sB    D$CJ' %*C		$0CEJrH   r  r  )r   r  rv   r@   r  rL  r
   )rf   rg  lmbda_roundedr  lmbda2r  r  s        @@rF   test_user_defined_optimizer-TestBoxcoxNormmax.test_user_defined_optimizer7  s     $$TVV,*kk-"4mD6H$O	 		 %%dff	Bt,rH   c                 
   [         R                  n[        R                  " U R                  S US9  [
        R                  " [        SS9   [        R                  " U R                  SUS9  S S S 5        g ! , (       d  f       g = f)N)r\  r  z,`brack` must be None if `optimizer` is givenrb  )g       r  )r   r  r   r  rv   r   r   ro   r  s     rF   2test_user_defined_optimizer_and_brack_raises_errorDTestBoxcoxNormmax.test_user_defined_optimizer_and_brack_raises_errorN  sj    ,,	 	TVV49E
 ]]: .D E   {+46E E Es   
!A44
Brv   r  )gx	 ?gN~jh ?g{ ?gXkI ?g}9" ?c                 N   Sn[         R                  " [        US9   [        R                  " USS9nS S S 5        [
        R                  " [        R                  " UW5      5      R                  5       (       d   e[
        R                  " [
        R                  5      R                  S-  nUS:  a  [
        R                  " U5      O[
        R                  " U5      n[        R                  " XS5      n[        Xd[
        R                  " U5      -  5        g ! , (       d  f       N= f)NzThe optimal lambda is...rb  r  r  rO  r   )r   rl  rm  r   r  r@   r  r   r   r  finfor   r  r  r
   sign)rf   rv   rd  rg  ymaxx_treme	y_extremes          rF   r  TestBoxcoxNormmax.test_overflow^  s     -\\+W5((59E 6{{7>>!U3488::::xx

#''%/$qy"&&)bffQiNN72		"''%.#89 65s   D
D$c                     [         R                  " [        SS9   [        R                  " U R
                  SS9  S S S 5        g ! , (       d  f       g = f)Nz `ymax` must be strictly positiverb  r  )r&  )r   r   ro   r   r  rv   rp   s    rF   test_negative_ymax$TestBoxcoxNormmax.test_negative_ymaxl  s2    ]]:-OP  b1 QPPs    A
Ar   )g	i@g     `h@gfffffh@g      i@gi@)gKH9KH9r-  r-  r-  r-  r&  )g    _Bgꌠ9Y>)FNr  c           	         [         R                  " [        SS9   Ub  SU0O0 n[        R                  " U4SU0UD6n[
        R                  " U5      [
        R                  " U5      /n[        [        [        R                  " Xe5      5      5      nUc-  [
        R                  " UR                  5      R                  S-  n[        X'SS9  S S S 5        g ! , (       d  f       g = f)Nr  rb  r&  r  rO  r  rW   )r   rl  rm  r   r  r@   r  r  absr   r$  r   r
   )rf   rv   r&  r  r  r  r'  ymax_ress           rF   'test_user_defined_ymax_input_float64_329TestBoxcoxNormmax.test_user_defined_ymax_input_float64_32p  s    & \\+-DE&*&6VTNBE&&qAA5ACvvay"&&),G3u||G9:;H|xx(,,u4D6 FEEs   B1C
C"c                    [         R                  " U[         R                  S9n[         R                  " U[         R                  S9n[        R
                  " [        SS9   [        R                  " X2S9  S S S 5        [        R                  " XBS9  [        R                  " U[         R                  US9n[        R                  " U[         R                  US9n[        XVSS9  g ! , (       d  f       Nu= f)Nr   r  rb  r  )r&  r  r  rW   )r@   r   r   r   r   rl  rm  r   r  r~  r
   )rf   rv   r  x_32x_64lmb_32lmb_64s          rF   test_user_defined_ymax_inf,TestBoxcoxNormmax.test_user_defined_ymax_inf  s     zz!2::.zz!2::. \\+-DE  5 FT1 %%dG%%dGT2 FEs    C$$
C2c                    [         R                  R                  S5      nUR                  S5      n[         R                  US'   [        R
                  " [        SS9   [        R                  " USSS9  S S S 5        [        R                  " USS	S9n[         R                  R                  U[         R                  [         R                  45        [        R                  " USS
S9n[        R                  " U[         R                  " U5      )    SS9n[         R                  R                  X45        g ! , (       d  f       N= f)Nr  r  r   r  rb  r  r  )r  r  r  r  r  )r@   r   r   r   r   r   ro   r   r  r  r   rw  r
   )rf   r   rv   rx   r  s        rF   test_nan_policy_all%TestBoxcoxNormmax.test_nan_policy_all  s    ii##$78JJrNvv!]]:-LM  5WE N ""1U{K


bffbff%56""1UvF""1bhhqk\?5A


""3, NMs   D33
ErF  N)r}   r~   r   r   r  r#  r  r  r
  r   r   r   r  slowr  r!  r  r+  r@   rK  r   r   r1  r8  r;  r   r|   rH   rF   r  r    s   (G5/E [[X'AB[[X'FG	* H C	* [[- -,6  [[6JLM	:M	:2 [[S
9zz	# 	Mzz	# 	4zz	# 	;zz	##  [[V%78[[Xw/
7 0 9"
7 [[S+2	#  [[Xw/3 03-rH   r  c                   v    \ rS rSrS rS r\R                  R                  \	(       + SS9S 5       r
S rS rS	rg
)TestBoxcoxNormploti  c                 *    [        SSSS9S-   U l        g r!  r"  rp   s    rF   r#  TestBoxcoxNormplot.setup_method  r%  rH   c           	          Sn[         R                  " U R                  SSUS9u  p#/ SQn[        U[        R
                  " SSUS95        [        X45        g )Nr   r'  r  r(  )g!X4}?g΁i?g-	15?gW$?g\ܱ{?r*  )r   boxcox_normplotrv   r
   r@   rL  )rf   r)  lmbdasr.  r/  s        rF   rk   TestBoxcoxNormplot.test_basic  sI    ,,TVVS"B%C ;<,rH   rP  r   c                 J   [         R                  " 5       nUR                  S5      n[        R                  " U R
                  SS[         S9  UR                  U5        UR                  S5      n[        R                  " U R
                  SSUS9  [         R                  " 5         g r<  )rU  rV  rW  r   rC  rv   r>  rX  r?  s      rF   r^  "TestBoxcoxNormplot.test_plot_kwarg  sq     jjl__S!dffc2C8B __S!dffc2B7		rH   c                     [        [        [        R                  U R                  SS5        [        [        [        R                  SS/SS5        g )Nr   r   r  )rn   ro   r   rC  rv   rp   s    rF   rB  &TestBoxcoxNormplot.test_invalid_inputs  s6    j%"7"7AFj%"7"7"a!QGrH   c                 `    [        [        R                  " / SS5      R                  S:H  5        g Nr   r   )r	   r   rC  r   rp   s    rF   rd  TestBoxcoxNormplot.test_empty  s$    %%b!Q/449:rH   rF  N)r}   r~   r   r   r#  rk   r   r   r  rl  r^  rB  rd  r   r|   rH   rF   r?  r?    sD    J- [[O+OD
 E
H;rH   r?  c                       \ rS rSrS rS rS r\" SSS9S 5       r\	R                  R                  S	/ S
Q5      S 5       rSrg)TestYeojohnson_llfi  c                     [         R                  R                  SSSS9nSn[         R                  " X!5      n[         R                  " U[	        U5      5      n[        X4SS9  g )Nr   r   rc  rd  r   r  rW   )r   r   rC   yeojohnson_llfr,  r
   )rf   rv   rg  rh  rn  s        rF   ro  "TestYeojohnson_llf.test_array_like  sO    JJNNN?""5,##E473.rH   c                 (   [         R                  R                  SSSS9nUR                  U5      nSn[         R                  " X25      n[         R                  " X1R                  X"/5      R                  5      n[        XQR                  XD45      SS9  g rl  )r   r   rC   r   rP  r  r  r)   )rf   r   rv   rg  r  rx   s         rF   rs   TestYeojohnson_llf.test_2d_input  sr    JJNN%N@JJqM""5,""5((A6*:*<*<=XXsj1>rH   c           	          Sn[        [        X!S9   UR                  [        R                  " SUR                  / 5      5      5      (       d   e S S S 5        g ! , (       d  f       g = frv  )r"   r   rw  r   rP  r   r  s      rF   rd  TestYeojohnson_llf.test_empty  sI    @+7B88E00BJJrNCDDDD CBBs   =A
A&r   z&JIT can't special-case for all >0 / <0r   c                     UR                  / SQUR                  S9n[        [        R                  " SU5      UR                  SUR                  S9SS9  [        [        R                  " SU* 5      UR                  SUR                  S9SS9  [        [        R                  " SU5      UR                  S	UR                  S9SS9  [        [        R                  " S
U* 5      UR                  SUR                  S9SS9  g )N)r  r  r  g#@r   igq/R(@r%  rW   r  r=  g]>ӕи(@r   gu(@)r   r   r)   r   rP  r  s      rF   test_gh24172TestYeojohnson_llf.test_gh24172  s     zz+2::z> 	,,S$7

#5RZZ
Ht	U,,R$7

#5RZZ
Ht	U 	,,S$7

#5RZZ
Ht	U,,R$7

#5RZZ
Ht	UrH   zlmb, ref))r  g*@)r   g}'@)r1   gA"\,@)r  gw*@c                     [         R                  R                  S5      nUR                  SSSS9n[        R
                  " XR                  UR                  5       5      5      n[        XcR                  U5      5        g )Nl   3#r  r   r  r  )	r@   r   r   r  r   rP  r   r   r)   )rf   r  r  r   r   rv   rx   s          rF   test_against_reference)TestYeojohnson_llf.test_against_reference  s\     ii##$56KKABK'""3

188:(>?ZZ_-rH   r|   N)r}   r~   r   r   ro  rs  rd  r   rW  r   r   r   rZ  r   r|   rH   rF   rN  rN    s[    /?E
 k*RSU TU [[Z89
.9
.rH   rN  c                   z   \ rS rSrSrS r\R                  R                  S/ SQ5      S 5       r	S r
S r\R                  R                  S	\R                  \R                  /5      S
 5       r\R                  R                  S	\R                   \R"                  \R$                  \R&                  /5      S 5       rS r\R                  R                  S\R,                  " S\" S5      S/5      \R,                  " S\" S5      * S/5      \R,                  " S\" S5      \" S5      * S/5      /5      S 5       r\R                  R                  S\R,                  " / SQ5      \R,                  " / SQ5      \R,                  " / SQ5      /5      S 5       r\R                  R                  S\R,                  " / SQ5      \R,                  " / SQ5      /5      \R                  R                  S/ SQ5      \R                  R                  SSS/5      S 5       5       5       r\R                  R                  S\R,                  " / SQ5      \R,                  " / SQ5      \R,                  " / SQ5      /5      \R                  R                  SSS/5      \R                  R                  S S!S"/5      S# 5       5       5       rS$rg!)%TestYeojohnsoni  
yeojohnsonc                    [         R                  R                  S5      n[        SSUS9S-   n[         R                  " US:  5      (       d   e[
        R                  " USS9n[        X25        [
        R                  " USS9n[        USSUS-   -  -
  5        [
        R                  " USS9n[        U[         R                  " US-   5      5        [
        R                  " USS9n[        X25        [        SSUS9S-
  n[         R                  " US:  5      (       d   e[
        R                  " US	S9n[        U[         R                  " U* S-   5      * 5        [
        R                  " USS9n[        X25        [
        R                  " US
S9n[        USU* S-   -  S-
  5        [        SSUS9S	-
  n[         R                  " US:  5      (       a   e[         R                  " US:  5      (       a   eUS:  n[
        R                  " USS9n[        X4   X$   5        [
        R                  " USS9n[        X4   SSX$   S-   -  -
  5        [
        R                  " USS9n[        X4   [         R                  " X$   S-   5      5        [
        R                  " USS9n[        X4   X$   5        U) n[
        R                  " US	S9n[        X5   [         R                  " X%   * S-   5      * 5        [
        R                  " USS9n[        X5   X%   5        [
        R                  " US
S9n[        X5   SX%   * S-   -  S-
  5        g )Nr0  r   r   rx  r   r   r  r  r   r   )	r@   r   r   rG   r  r   r^  r
   rA   )rf   r   rv   r  posnegs         rF   r  TestYeojohnson.test_fixed_lmbda  s   ii##E* abs;a?vva!e}}}aq)ar*AQUO,aq)BFF1q5M*aq) abs;a?vva!e}}}aq)RVVQBF^O,aq)aq)A!aL1,- abs;a?66!a%==  66!q&>>!!1faq)(ar*Q!&1*%5!56aq)
!34aq)(daq)"&&!&1"5!56aq)(aq)qvgk!2Q!67rH   rg  )r   rl  rF  r   c                    S nSn[         R                  R                  S5      nUR                  SSUS9nU" XQ5      n[        R
                  " U5      u  px[        XSS9  [        S[         R                  R                  XW-
  5      U-  S	S
9  [        SUR                  5       SS
9  [        SUR                  5       SS
9  g )Nc                 "   [         R                  " U R                  U R                  S9nU S:  n[	        U5      [         R
                  " S5      :  a  [         R                  " X   5      S-
  X#'   O'[         R                  " X   U-  S-   SU-  5      S-
  X#'   [	        US-
  5      [         R
                  " S5      :  a2  S[         R                  " SU-
  * X)    -  S-   SSU-
  -  5      -
  X#) '   U$ S[         R                  " X)    * 5      -
  X#) '   U$ )Nr   r   r1   r   r   )r@   r   r  r   r/  spacingexppower)rv   rg  r  r`  s       rF   _inverse_transform:TestYeojohnson.test_lmbda_None.<locals>._inverse_transformJ  s    HHQWWAGG4Eq&C 5zBJJrN*VVAF^a/
XXafunq&8!e)DqH
 519~

2."((QY<!D'+AA+E+,E	?#< <d
 L  "&&!D'"22dLrH   i N  rP  r   r   )r   r   r   r  rI  r   r^   )r@   r   r   r  r   r^  r
   r   linalgr   rh   rj   )	rf   rg  rh  rj  r   rv   r  r  r   s	            rF   r  TestYeojohnson.test_lmbda_NoneE  s    
	& 	ii##G,JJ1AYJ8"1,%%e,
D1Aryy~~af5	A1MArwwy!4Arvvx3rH   c                 \    [        [        R                  " / 5      R                  S:H  5        g r  )r	   r   r^  r  rp   s    rF   rd  TestYeojohnson.test_emptyj  s       $**d23rH   c                     [         R                  R                  SSSS9n[         R                  " U5      u  p#[         R                  " [	        U5      5      u  pC[        X$SS9  g )Nr   r   rc  rd  r  rW   )r   r   rC   r^  r,  r
   )rf   rv   xt1r   xt2s        rF   ro  TestYeojohnson.test_array_likem  sL    JJNNN?!!!$!!$q'*u-rH   r   c                     [         R                  " SUS9nSn[        R                  " [        US9   [
        R                  " U5        S S S 5        g ! , (       d  f       g = f)NrN   r   z>Yeo-Johnson transformation is not defined for complex numbers.rb  )r@   ru   r   r   ro   r   r^  )rf   r   rv   err_msgs       rF   test_input_dtype_complex'TestYeojohnson.test_input_dtype_complexs  sA    IIau%]]:W5Q 655s   A
Ac                     [         R                  " SUS9n[         R                  " S[         R                  S9n[        R                  " U5      u  pE[        R                  " U5      u  pg[        XFSS9  [        XWSS9  g )NrR   r   r%  rW   )r@   ru   r   r   r^  r
   )rf   r   x_intx_floatxt_int	lmbda_intxt_floatlmbda_floats           rF   test_input_dtype_integer'TestYeojohnson.test_input_dtype_integer{  s`    		!5)))ARZZ0!,,U3 % 0 0 9t4	T:rH   c                     [         R                  " / SQ5      n[        R                  " U5      u  p#[        R                  " US-   5      u  pE[        X$SS9  [        X5SS9  g )N)(HAG."A    5fAg(@Ag   VAgHzuoAg)\¿+Ar  g(\^@Ag    RAr  g    #Ag\µ=Ag
ףNAr  gp=oHAg    6bAg{csAg)\tmhAg/BAg   '|Ag(\wipAg    ݃hAgQlBAgףp @Ar   rV   rW   )r@   rK  r   r^  r   r
   )rf   rv   xt_yeolam_yeoxt_boxlam_boxs         rF   test_input_high_variance'TestYeojohnson.test_input_high_variance  sQ    HH " #  **1-,,q1u-T2t4rH   rv   r1   r~  r  r  c                     [         R                  " [        SS9   [        R                  " U5      u  p#S S S 5        g ! , (       d  f       g = f)Nz Yeo-Johnson input must be finiterb  )r   r   ro   r   r^  )rf   rv   r  r  s       rF   test_nonfinite_input#TestYeojohnson.test_nonfinite_input  s2     ]]:-OP#..q1OF QPPs	   <
A
r  r  r  c           	         S n[         R                  " SS9   [        R                  " U5      u  p4[        R                  " US-   [        X$S9S9u  pV[         R                  " [         R                  " U5      5      (       d   e[         R                  " [         R                  " U5      5      (       d   e[        XFSS9  [        X5S	S9  S S S 5        g ! , (       d  f       g = f)
Nc                 j    [         R                  " X* USS9n[         R                  " 5       nX#l        U$ )Ng`sbO>)xtol)r   	fminboundOptimizeResultrv   )r  r  outresults       rF   r  /TestYeojohnson.test_overflow.<locals>.optimizer  s0    $$S(G(KC,,.FHMrH   r  r  r   )r  r  rV   rW   rK  )	r@   r  r   r^  r   r   r  ri   r
   )rf   rv   r  r  r  r  r  s          rF   r  TestYeojohnson.test_overflow  s    	 [[W%#..q1OF#llA!DFOF;;rvvf~....;;rvvf~....G48F6 &%%s   B0C
Cr   )r   r  g3#I9gu?j/ gnFgZbtir%  r   r  c                    [         R                  " SS9   [        R                  " X1-  U-  5      u  pE[         R                  " [         R
                  " X1-  5      [         R
                  " U5      :H  5      (       d   e[         R                  " U5      (       d   e[         R                  " [         R                  " U5      5      (       d   e S S S 5        g ! , (       d  f       g = f)Nr  r  )r@   r  r   r^  r  r%  r  ri   )rf   rv   r   r%  r  r  s         rF   #test_overflow_underflow_signed_data2TestYeojohnson.test_overflow_underflow_signed_data  s     [[W%#..tx%/?@OF66"''$(+rwwv>????;;w'''';;rvvf~....	 &%%s   B6C
C#)r   r   r   r   )r   r  r   rG  )r   r   r   r\  Nr]  c                    [         R                  " SS9   X!-  nUR                  [         R                  5      n[        R
                  " XCS9n[        R                  " XFS9n[        R
                  " XSS9n[        R                  " XXS9n	[         R                  " [         R                  " U5      [         R                  " U5      :H  5      (       d   e[         R                  " U5      (       d   e[         R                  " [         R                  " U5      5      (       d   eXh:X  d   e[         R                  " Xy:H  5      (       d   e S S S 5        g ! , (       d  f       g = f)Nr  r  r[  r  )r@   r  astyper   r   yeojohnson_normmaxr^  r  r%  r  ri   )
rf   rv   r%  r\  rw  rx  lam_yeo_int
xt_yeo_intlam_yeo_floatxt_yeo_floats
             rF   test_integer_signed_data'TestYeojohnson.test_integer_signed_data  s     [[W%HEll2::.G225FK))%CJ!44WJM ++GIL66"''%.BGGJ,??@@@@;;{++++;;rvvj12222///66*45555 &%%s   D0E
Er|   )r}   r~   r   r   r  r  r   r   r   r  rd  ro  r@   	complex64
complex128rt  int8uint8int16int32r}  r  rK  r  r  r  r  r  r   r|   rH   rF   r]  r]    s   I-8^ [[Wn5"4 6"4H4. [[Wr||R]]&CD  E  [[Wrww"((BHH&MN; O;5 [[S
#uU|S)*
#e}c*+
$euU|mS9:# 
2
2 [[S
 : 	; 	9:
MN# 77$ [[S
 : 	;
9:# 
 [[W&LM[[VaW-/ . N/ [[S

 
# 
 [[VaW-[[WtWo66 7 .6rH   r]  c                   *    \ rS rSrSrS rS rS rSrg)TestYeojohnsonNormmaxi  r  c                 *    [        SSSS9S-   U l        g r  r"  rp   s    rF   r#  "TestYeojohnsonNormmax.setup_method  r  rH   c                 Z    [         R                  " U R                  5      n[        USSS9  g )Ng?rV   rW   )r   r  rv   r
   r   s     rF   r  TestYeojohnsonNormmax.test_mle  s"    ))$&&1t4rH   c                 r    / SQn[         R                  " U5      n[        R                  " USSS9(       d   eg )N)gffffff@g r1   r  ffffff?g333333@r  gffffff@g?g@g      @      @g"@rH  g      gzG?rF  rI  )r   r  r@   allclose)rf   rv   rg  s      rF   test_darwin_example)TestYeojohnsonNormmax.test_darwin_example  s/    ((+{{5%d333rH   rF  N)	r}   r~   r   r   r  r#  r  r  r   r|   rH   rF   r  r    s    ,G54rH   r  c            
          \ rS rSr\R
                  R                  S\R                  S4\R                  S4\R                  S4/5      S 5       rS r\R
                  R                  S\R                  \R                  4\R                  \R                  4\R                  \R                   4/5      S	 5       r\R
                  R                  S
\R                  \R                  \R                  /5      S 5       r\R
                  R                  S\R                  S4\R                  S4\R                  S4/5      S 5       r\R
                  R                  S\R                  \R                  \R                  /5      S 5       r\R
                  R                  S\R                  \R                  \R                  /5      S 5       r\R
                  R                  S\R                  \R,                  SSS.4\R                  \R,                  SSS.4\R                  \R,                  SSS.4/5      S 5       rS rS rS rS rS rS rSrg )!TestCircFuncsi  test_func,expectedA:wv?gpz?E|2@c                 j    UR                  / SQ5      n[        U" USS9UR                  U5      5        g )N)g     0v@r  r       pv@rY        u@h  rR  r   r)   rf   	test_funcr  r   rv   s        rF   test_circfuncsTestCircFuncs.test_circfuncs  s-    
 JJ67	!#.

80DErH   c                    UR                  / SQUR                  S9nUR                  U5      n[        R                  " USS9n[        XCSS9  UR                  X!R                  -  S-  SS	9nUS
-  n[        R                  " USS9n[        XeSS9  UR                  USS	9n[        R                  " USS9n[        XSS9  g )N)r   r\  r  r     g     4@g3333333@r   r  r  r  rW   r  r   r}  r  rK  )r   r   rh   r   circmeanr)   ri   picircvarrj   circstd)	rf   r   rv   M1M2V1V2S1S2s	            rF   test_circfuncs_small"TestCircFuncs.test_circfuncs_small  s     JJ7rzzJJWWQZ^^AC(T*VVAeeGCKAV. "W]]13'T*VVA!V$]]13'T*rH   ztest_func, numpy_funcc                     [         R                  " S/S-  S/S-  -   5      nU" UR                  U5      5      nUR                  U" U5      5      n[        XVSS9  g )Ng˛ɦv9?r  guv9?r   g:0yU>rI  )r@   r   r)   )rf   r  
numpy_funcr   rv   circstatr  s          rF   test_circfuncs_close"TestCircFuncs.test_circfuncs_close  sW     JJ+,r15H4IC4OOPRZZ]+JqM*t4rH   circfuncc           	         UR                  / SQ/ SQ/ SQ/5      nU" USS9nU" UR                  US5      SS9n[        XBR                  U5      5        U" USSS9n[        UR                  S	   5       Vs/ s H  oa" X6S S 24   SS9PM     nn[        XBR                  U5      5        U" USS	S9n[        UR                  S   5       Vs/ s H  oa" US S 2U4   SS9PM     nn[        XBR                  U5      5        g s  snf s  snf )
N)c  r   r   r$  r  ^  )_  rQ   r   `  rO   ]  )ie  rO   rR   if  r   g     @v@r  r  r  r   rR  r7  r   )r   r  r)   r  r  r  )rf   r  r   rv   rx   r  ry   s          rF   test_circmean_axis TestCircFuncs.test_circmean_axis  s     JJ1013 4 qs#rzz!U+#6ZZ_-qs+49!''!*4EF4EqxQ$c*4EFXXc]+qs+49!''!*4EF4Eqx!Q$c*4EFXXc]+ G Gs   5C=	D @pz?c                 j    UR                  / SQ5      n[        U" USS9UR                  U5      5        g )N)r  r   r   r$  r  r  r  r  r  r  s        rF   test_circfuncs_array_like'TestCircFuncs.test_circfuncs_array_like0  s-    
 JJ12	!#.

80DErH   r  c                     UR                   nUR                  / US9n[        [        [        US9   U" U5      nS S S 5        [        WUR                  UR                  US95        g ! , (       d  f       N3= f)Nr   r   )r   r   r"   r   r   r*   r   )rf   r  r   r   rv   rx   s         rF   rd  TestCircFuncs.test_empty8  sc     

JJrJ'+3HRPA,C Q 	RZZeZ<= QPs   	A&&
A4c           	          UR                  SSSSSS[        R                  /5      n[        U" USS9UR                  UR                  5      5        g )	Nr  r   r   r$  r  r  r  r  )r   r@   r   r*   )rf   r  r   rv   s       rF   test_nan_propagate TestCircFuncs.test_nan_propagateB  sC     JJQ3C89	!#.

2660BCrH   g5:v@gfPb?rK  gee?gOQOv?g#q@gauy+@c                 8   UR                  / SQSSSSSS[        R                  /S[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  //5      nUR                  5        H  nU" US	US
9nUc&  [	        XcR                  UR                  5      5        M4  [        US   UR                  X%   5      5        [	        USS  UR                  USS  UR                  5      5        M     g )N)r  r   r   r$  r  r  r   r  rQ   r   r  rO   r  r   r  r  r   )r   r@   r   keysr*   r)   	full_like)rf   r  r  r   rv   r7  r  s          rF   test_nan_propagate_array&TestCircFuncs.test_nan_propagate_arrayH  s     JJ4aCC8BFFBFFBFFBFFBFFBFFKM N MMODACd3C|ZZ%78A

8>(BCABc!"grvv)FG $rH   c                 p    UR                  S5      S   nUn[        R                  " U5      n[        XCSS9  g )Nr1   r|   r  rW   )r   r   r  r)   )rf   r   rv   r  r  s        rF   test_circmean_scalar"TestCircFuncs.test_circmean_scalar]  s1    JJrN2^^AT*rH   c                    [         R                  " UR                  SSS5      UR                  UR                  * 5      n[	        X!R                  UR                  5      5        [	        U* UR                  UR                  5      5        g )Nr   r   rl  )r   r  ru   r  r+   r   )rf   r   rN  s      rF   test_circmean_range!TestCircFuncs.test_circmean_rangec  s[     NN299Q3/?q**RUU+,r2::bee,-rH   c                 P   UR                  SS/UR                  S9n[        [        R                  " USS9UR                  S5      5        [        [        R
                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  S5      5        g )	N   r  r   r  r  g     @e@gLwqA?g)#p_4@)r   r  r)   r   r  r  r  )rf   r   rv   s      rF   test_circfuncs_uint8"TestCircFuncs.test_circfuncs_uint8j  sx     JJRyJ1qs3RZZ5FGac2BJJ4OPac2BJJ{4KLrH   c                     [         R                  " UR                  S/5      5      n[        R                  " SU5      S:X  d   eg r  )r   r  r   mathcopysign)rf   r   r   s      rF   test_circstd_zeroTestCircFuncs.test_circstd_zeror  s3    MM"**aS/*}}S!$+++rH   c                    UR                  SSS5      nUR                  UR                  U5      U:H  5      (       a(  UR                  UR                  U5      S:H  5      (       d   eUSUR                  -  -  SUR                  -  -  U:g  nUR                  U5      (       d   eX#   n[        R                  " US S 2S 4   SS9nUR                  XB:H  5      (       d   eg )Nr[   gA:9>r   r1   r   r   r6  )rL  r  sincosr  anyr   r  )rf   r   rv   rN  r   s        rF   !test_circmean_accuracy_tiny_input/TestCircFuncs.test_circmean_accuracy_tiny_inputw  s     KKdB'vvbffQi1n%%"&&c1A*B*BBB!bee)_BEE	*q0vvayyyDNN1QW:A.vvaf~~~rH   c                 >   UR                  SUR                  S9n[        R                  " UR	                  U5      UR                  U5      5      nUR                  X1R                  S9n[        R                  " X!R                  UR                  * S9n[        XTSSS9  g )Ng ؅W4vCr   )rR  rQ  r  r   )rX   rJ  )
r   r   r  atan2r  r   r   r  r  r)   )rf   r   rv   r   r  actuals         rF   !test_circmean_accuracy_huge_input/TestCircFuncs.test_circmean_accuracy_huge_input  st     JJt2::J.JJrvvay"&&),::azz:2BEE6:u3?rH   r|   N)r}   r~   r   r   r   r   r   r   r  r  r  r  r  r@   rh   ri   rj   r  r  r  rd  r  r   r  r  r  r  r  r  r  r   r|   rH   rF   r  r    sf    [[1$~~{;$}}.BC$}}k:<=F	=F+( [[4$~~rww7$}}bff5$}}bff5785	85 [[Z%..*/--*/--*9 :,:,  [[1$~~{;$}}.BC$}}k:<=F	=F [[[5>>5==+0==+: ;>;> [[[5>>5==+0==+: ;D;D [[1$~~&(ff*MO$}}&(ff#7#7 9:  %}}&(ff
KMNO
HO
H+.M,
*@rH   r  c                      \ rS rSr\R
                  R                  S\R                  S\	R                  " / SQ5      \	R                  " SS/5      S.4\R                  S\	R                  " / S	Q5      \	R                  S
-  S-  -  \	R                  " SS/5      S.4\R                  S\	R                  " / SQ5      \	R                  " SS/5      S.4/5      S 5       r\R
                  R                  S\R                  S4\R                  S4\R                  S4/5      S 5       r\R
                  R                  S\R                  \R                  \R                  /5      S 5       r\R
                  R                  S\R                  \R                  \R                  /5      S 5       r\R
                  R                  SSSSSSS\	R$                  /\	R                  " SSSSSS\	R$                  /SS S!S"\	R$                  S#S$//5      /5      \R
                  R                  S\R                  \R                  \R                  /5      S% 5       5       r\R
                  R                  SSSSSSS\	R$                  /\	R                  " SSSSSS\	R$                  /SS S!S"\	R$                  S#S$//5      /5      \R
                  R                  S\R                  \R                  \R                  /5      S& 5       5       rS'rg())TestCircFuncsNanPolicyi  r  grQvv@)g     v@g      @r  g     8v@r  g     u@g5@v?g2>Bjv@rK  gG2?)gaF+?z?r  gA ~@碲?r  r  r   r  gX҄?gJPm$@)gj  @竃 ?r  g)h;@{ ?r  gun2@g+fa @c                    [         R                  " SSSSSS[         R                  /SSS	S
SS[         R                  /[         R                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  //5      nUR                  5        H  nUc  U" USSUS9n[	        XRU   SS9  M  [
        R                  " [        [        S9   U" USSUS9n[	        US S X$   SS9  [        [         R                  " US   5      5        S S S 5        M     g ! , (       d  f       M  = f)Nr  r   r   r$  r  r  r  rQ   r   r  rO   r  r  r  )rR  r  r7  r%  rW   rb  r  )r@   rK  r   r  r
   r   rl  r   r   r	   rw  )rf   r  r  rv   r7  r  s         rF   test_nan_omit_array*TestCircFuncsNanPolicy.test_nan_omit_array  s   ( HHsAq#r37Aq#q#rvv6vvrvvrvvrvvrvvrvvrvvNP Q MMOD|TJd^$?\\"4<MN#ACFNC#CHhn4HBHHSW-. ON $
 ONs   8<E
E	r  r  c                 T    SSSSSS[         R                  /n[        U" USSS	9US
S9  g )Nr  r   r   r$  r  r  r  r  rR  r  r%  rW   )r@   r   r
   )rf   r  r  rv   s       rF   test_nan_omit$TestCircFuncsNanPolicy.test_nan_omit  s4    
 !QRbff-	!#&A t	-rH   r  c           
      T   [         R                  [         R                  [         R                  [         R                  [         R                  /n[        R                  " [        [
        S9   [        [         R                  " U" USS95      5        S S S 5        g ! , (       d  f       g = f)Nrb  r  r  )r@   r   r   rl  r   r   r	   rw  rf   r  rv   s      rF   test_nan_omit_all(TestCircFuncsNanPolicy.test_nan_omit_all  s]     VVRVVRVVRVVRVV4\\,4EFBHHYqV<=> GFFs   +%B
B'c           	      f   [         R                  " [        [        S9   [        R
                  " [        R                  [        R                  [        R                  [        R                  [        R                  /[        R                  [        R                  [        R                  [        R                  [        R                  //5      nU" USSS9n[        [        R                  " U5      R                  5       5        [        [        U5      S:H  5        S S S 5        g ! , (       d  f       g = f)Nrb  r  r   )r  r7  r   )r   rl  r   r   r@   rK  r   r	   rw  r  r  )rf   r  rv   r  s       rF   test_nan_omit_all_axis-TestCircFuncsNanPolicy.test_nan_omit_all_axis  s     \\,4EF266266266266266B66266266266266BD EAA&q9CBHHSM%%'(CHM" GFFs   C;D""
D0rv   r  r   r$  r  r  r  rQ   r   r  rO   r  c                 $    [        [        XSSS9  g )Nr  r  r  rn   ro   r  s      rF   test_nan_raise%TestCircFuncsNanPolicy.test_nan_raise  s     	j)SWMrH   c                 $    [        [        XSSS9  g )Nr  foobarr  r  r  s      rF   test_bad_nan_policy*TestCircFuncsNanPolicy.test_bad_nan_policy  s     	j)SXNrH   r|   N)r}   r~   r   r   r   r   r   r   r  r@   rK  r  r  r  r  r  r  r  r   r  r#  r   r|   rH   rF   r
  r
    s3    [[1$~~&7#%88 -4 $5#%88Z,F#G IJ
  %}}&:#%88 -N $./1uuSy1n$= $&88-A-@-B $C	 DE  %}}&7#%88 -9 $: $&88Z,D#E	 GHIJ&/'J&/ [[1$~~{;$}}.BC$}}k:<=-	=-
 [[[5>>5==+0==+: ;?;?
 [[[5>>5==+0==+: ;#;# [[S"Aq#r3? hhaCS"&&(I),aCC(H(J KLM [[[5>>5==+0==+: ;N;	MN [[S"Aq#r3? hhaCS"&&(I),aCC(H(J KLM [[[5>>5==+0==+: ;O;	MOrH   r
  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS r\R                   R#                  SSS/5      S 5       rSrg)TestMedianTesti  c                 F    [        [        [        R                  / SQ5        g Nr   rn   ro   r   median_testrp   s    rF   test_bad_n_samples!TestMedianTest.test_bad_n_samples  s    j%"3"3Y?rH   c                 H    [        [        [        R                  / / SQ5        g r(  r)  rp   s    rF   rY   TestMedianTest.test_empty_sample  s    j%"3"3RCrH   c           	      P    [        [        [        R                  / SQ/ SQSS/SS9  g )N)r   r   r   r   )r   r   r   r   r   r  r  r)  rp   s    rF   test_empty_when_ties_ignored+TestMedianTest.test_empty_when_ties_ignored  s$    
 	j%"3"3"I1vH	FrH   c                     [        [        [        R                  / SQ/ SQ5        [        [        [        R                  / SQ/ SQSS9  g )N)r   r   r   abover0  r)  rp   s    rF   test_empty_contingency_row)TestMedianTest.test_empty_contingency_row  s3    
 	j%"3"3Y	J 	j%"3"3Y	"	$rH   c                 J    [        [        [        R                  / SQSS/SS9  g )Nr   r   r   r  r0  r)  rp   s    rF   test_bad_tiesTestMedianTest.test_bad_ties	  s    j%"3"3YA 	"rH   c                 J    [        [        [        R                  / SQSS/SS9  g )Nr   r   r   r"  r  r)  rp   s    rF   r#  "TestMedianTest.test_bad_nan_policy  s    j%"3"3YA!)	+rH   c                 J    [        [        [        R                  / SQSS/SS9  g )Nr   r   r   r  )r  )rn   	TypeErrorr   r*  rp   s    rF   test_bad_keywordTestMedianTest.test_bad_keyword  s    i!2!2I1v	!rH   c                     / SQn/ SQn[         R                  " X5      u  p4pV[        US5        [        USS/SS//5        [        US5        [        US5        g )Nr   r  r   r   r   )r   r*  r   r   )rf   rv   r   r  r  medtbls          rF   test_simpleTestMedianTest.test_simple  sZ    !--a3 	S#3!Q!Q 01 	T1QrH   c                 h   / SQnSS/n/ SQn[         R                  " XU5      u  pEpg[        US5        [        U/ SQ/ SQ/5        [         R                  " XUSS9u  pEpg[        US5        [        U/ SQ/ S	Q/5        [         R                  " XUS
S9u  pEpg[        US5        [        U/ SQ/ S	Q/5        g )Nr  r   rN   r  )r   r   r   )r   r   r   r  r0  )r   r   r   r4  )r   r   r   )r   r*  r   )rf   rv   r   zr  r  rN  rB  s           rF   test_ties_options TestMedianTest.test_ties_options$  s    F  ++A!4QS9i01++A!(CQS9i01++A!'BQS9i01rH   c                    SS[         R                  /n/ SQn[        R                  " XSS9n[        R                  " XSS9u  pEpg[	        U[         R                  [         R                  [         R                  S 45        [        US5        [        US5        [	        US	5        [	        U[         R                  " S
S/SS//5      5        [        [        [        R                  XSS9  g )Nr   r   r  r  r  r  g     ?gإvao?g      @r   r  )	r@   r   r   r*  r   r
   rK  rn   ro   )rf   rv   r   mt1r   r  rN  rE  s           rF   test_nan_policy_options&TestMedianTest.test_nan_policy_options8  s    266N=&&q?
aS266266266489././QQ1a&1a&!123j%"3"3QgNrH   c                 p   / SQn/ SQn[         R                  " X5      u  p4pV[        US5        [        USS/SS//5        [         R                  " U5      u  pxp[	        X75        [	        XH5        [         R                  " XSS9u  p4pV[        US5        [        USS/SS//5        [         R                  " USS9u  pxp[	        X75        [	        XH5        [         R                  " XSS	9u  p4pV[        US5        [        USS/SS//5        [         R                  " USS	9u  pxp[	        X75        [	        XH5        g )
Nr   )r   r   rN   rR   r   r   r   r   )lambda_Fr  )r   r*  r   chi2_contingencyr
   )rf   rv   r   r  r  rN  rB  exp_statexp_pdofes              rF   rk   TestMedianTest.test_basicE  s$    ++A1QSAq6Aq6*+"'"8"8"='!++A!<QSAq6Aq6*+"'"8"8a"H'!++AUCQSAq6Aq6*+"'"8"8"O'!rH   r}  FTc                     / SQn/ SQn[         R                  " X#US9n[        UR                  UR                  UR
                  UR                  4U5        g )Nr   r  )r   r*  r   rc   r   r  table)rf   r}  rv   r   rx   s        rF   test_resultTestMedianTest.test_resultd  sA    <cmmSZZSYYGMrH   r|   N)r}   r~   r   r   r+  rY  r1  r5  r8  r#  r>  rC  rG  rK  rk   r   r   r   rW  r   r|   rH   rF   r&  r&    sh    @DF
$"+!2(O"> [[\E4=9N :NrH   r&  c                   6   \ rS rSrS r\R                  R                  S\R                  * S-  \R                  S-  /S4SS\R                  -  /S4/5      S 5       r
S	 rS
 r\" SSS9S 5       rS r\R                  R                  SSS/5      S 5       rSrg)TestDirectionalStatsim  c                    [         R                  " [         R                  " / SQ5      5      * n[         R                  " [         R                  " / SQ5      5      * n[         R                  " [         R                  " U5      [         R                  " U5      -  [         R                  " U5      [         R
                  " U5      -  [         R
                  " U5      4SS9nUR                  UR                  5       5      nUR                  UR                  5       5      nUR                  UR                  5       5      n[        R                  " U5      nUR                  nUR                  / SQ5      n[        XgSS9  g )N)	g33333su@g      O@g33333sB@r  r  g@g333333I@gYv@r  )	gfffffP@g,Q@gfffffQ@gfffffT@g     S@g     @R@g33333SQ@gffffffM@g33333I@r   r6  )gHP?g&S:g[<rK  rI  )r@   deg2radrK  r  r   r  r   r   r   directional_statsmean_directionr)   )rf   r   declinclrg   dirstatsdirectional_meanreference_means           rF   "test_directional_stats_correctness7TestDirectionalStats.test_directional_stats_correctnessp  s    

288 %< = > >

288 %< = > >xxt4t4'  
 zz$++-(zz$++-(zz$++-(**40#22$>?(tDrH   zangles, refr   r1   r   r   c                    UR                  U5      nUR                  U5      nUR                  UR                  U5      UR                  U5      /SS9nS[        R
                  " U5      R                  -
  n[        XR5        g )Nr   r6  )r   r  r   r  r   r]  mean_resultant_lengthr)   )rf   anglesr  r   rg   rx   s         rF   'test_directional_stats_2d_special_cases<TestDirectionalStats.test_directional_stats_2d_special_cases  si    
 F#jjoxx8qxA%))$/EEE!rH   c                 <   [         R                  R                  S5      nUR                  SUR                  -  UR                  S5      -  5      nUR                  UR                  U5      UR                  U5      4SS9n[        R                  " U5      nUR                  nUR                  US   US   5      nUSUR                  -  -  n[        R                  " U5      n[        Xx5        SUR                  -
  n	[        R                  " U5      n
[        X5        g )Nl	   }7Qh0P4u&4M r   )r   r   r6  r   r1   )r@   r   r   r   r  r  r   r  r   r]  r^  r  r  r)   rg  r  )rf   r   r   testdatatestdata_vectorra  rb  directional_mean_angler  directional_varcircular_vars              rF   test_directional_stats_2d.TestDirectionalStats.test_directional_stats_2d  s     ii##$FG::a"%%i#**X*>>?((BFF8$4$&FF8$4$6() # + **?;#22!#*:1*=?OPQ?R!S!71ruu9!E>>(+.9x===}}X.6rH   c                    UR                  / SQ/ SQ/5      nUR                  UR                  US5      5      nUR                  / SQ/ SQ// SQ/ SQ//5      n[        R                  " USS9n[	        UR
                  U5        g )N+Pz?rF  r   )ru        r   )r   r   r   r   )r1   r   r   r   r6  )r   tiler   r]  r)   r^  )rf   r   rg   
full_arrayr  ra  s         rF    test_directional_mean_higher_dim5TestDirectionalStats.test_directional_mean_higher_dim  s     zz/02 3ZZl ;<
:: , . , , ./ 0 **:A>//:rH   Tzchecking array-like inputr  c                 Z   / SQ/ SQ/nUR                  X!R                  S9n[        R                  " U5      n[        R                  " U5      n[	        UR
                  UR                  UR
                  5      5        [	        UR                  UR                  UR                  5      5        g )Nrt  )ru  rv  r   r   )r   r   r   r]  r)   r^  rg  )rf   r   rg   
data_arrayr  rx   s         rF   )test_directional_stats_list_ndarray_input>TestDirectionalStats.test_directional_stats_list_ndarray_input  s     %&:;ZZJJZ7
%%d+%%j1**

3#5#56	811

3#<#<=	?rH   c                     UR                  S5      nSn[        R                  " [        [        R
                  " U5      S9   [        R                  " U5        S S S 5        g ! , (       d  f       g = f)N)r   zIsamples must at least be two-dimensional. Instead samples has shape: (5,)rb  )r  r   r   ro   reescaper   r]  )rf   r   rg   rd  s       rF   test_directional_stats_1d_error4TestDirectionalStats.test_directional_stats_1d_error  sH    wwu~6]]:RYYw-?@##D) A@@s   A!!
A/r   r   r   c                    [         R                  " / SQ/ SQ/US9n[        R                  " UR	                  U5      SS9nU[         R
                  R                  USSS9-  n[        R                  " USS9n[        UR                  UR	                  UR                  5      5        [        UR                  UR	                  UR                  5      5        g )	Nrt  )g+Pz?r  r   r   T)	normalizer  )r7  keepdimsF)
r@   rK  r   r]  r   rj  r   r)   r^  rg  )rf   r   r   rg   rx   normalized_datar  s          rF    test_directional_stats_normalize5TestDirectionalStats.test_directional_stats_normalize  s    
 xx--/6;=%%bjj&6$G29= "0 "? ?%%oG**

3#5#56	811

3#<#<=	?rH   r|   N)r}   r~   r   r   rd  r   r   r   r@   r  ri  rq  ry  r   r}  r  r  r   r|   rH   rF   rZ  rZ  m  s    E, [[]55&(BEE!G	b!
QY- "	"7&; d+FG	? H	?* [[Wy)&<=? >?rH   rZ  c                       \ rS rSr\" SS9S 5       rS rS r\R                  R                  S/ SQS	4/ S
QS4/5      S 5       rS r\R                  R                  S/ SQ5      S 5       rS rSrg)TestFDRControli  T)
eager_onlyc                 :   Sn[         R                  " [        US9   [        R                  " UR                  / SQ5      5        S S S 5        [         R                  " [        US9   [        R                  " UR                  / SQ5      5        S S S 5        [         R                  " [        US9   [        R                  " UR                  SSUR                  /5      5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nt= f! , (       d  f       g = f)Nz-All values in `ps` must lie between 0. and 1.rb  )r  rF  r  )rF  r  r   rF  r  )r   r   ro   r   false_discovery_controlr   r   r  s      rF   test_input_validation_ps'TestFDRControl.test_input_validation_ps  s    A]]:W5))"**^*DE 6]]:W5))"**]*CD 6]]:W5))"**c35G*HI 65	 655555s#   (C*%(C;.3D*
C8;
D	
Dc                    Sn[         R                  " [        US9   [        R                  " UR                  SS/5      5        S S S 5        Sn[         R                  " [        US9   [        R                  " UR                  / SQ5      SS9  S S S 5        S	n[         R                  " [        US9   [        R                  " UR                  / SQ5      S
S9  S S S 5        [         R                  " [        US9   [        R                  " UR                  / SQ5      SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ny= f! , (       d  f       g = f)Nz$`ps` must contain only real numbers.rb  y      ?      ?y       @       @zUnrecognized `method` 'YAK')rF  r  r   YAKr  z#`axis` must be an integer or `None`r  r6  r  )r   r   ro   r   r  r   r  s      rF   test_input_validation$TestFDRControl.test_input_validation  s    8]]:W5))"**dD\*BC 6 0]]:W5))"**_*EeT 6 8]]:W5))"**_*ECP 6]]:W5))"**_*EFS 65 65 65 6555s/   (D)''D:1'E9'E)
D7:
E
E
E*c                     UR                  / SQ5      n[        R                  " U5      nUR                  / SQ5      n[        X4SS9  g )N)r  g;On?g~jt?gI+?g&1?gB`"۹?gv?S㥛?);On?r  I+?r  gˡE?gHzG?r  r  rF  rI  )r   r   r  r)   )rf   r   psrx   r  s        rF   test_against_TileStats%TestFDRControl.test_against_TileStats  s:    ZZPQ++B/jjQRt,rH   r	  )
go?gQ]
Y?ghD@?u?D?gn@t?g=T	[ے?g=!s?r  r  g	L?bh)
glߢ?gq?g.0?R]D?g)<Gh?g$͂?g2-p?r  r  g]:?byc                 0   Uu  p4[         R                  R                  S5      n[        R                  R                  SSSUS9R                  5       nUS   US'   [        R                  " UR                  U5      US9n[        XrR                  U5      S	S
9  g )N   <U) rF  rF  r  rx  rQ   r   r  rV   rI  )
r@   r   r   r   
loguniformrC   r   r  r   r)   )rf   r	  r   r  r  r   r  rx   s           rF   r  TestFDRControl.test_against_R  s     ii##$78!!$"3!GNNP11++BJJrN6JZZ_48rH   c                 "   [         R                  R                  S5      n[        R                  R                  SSSUS9nUR                  U5      n[        R                  " US S9n[        R                  " [        U5      5      n[        XE5        g Nr  rF  rF  )r   r   r   rx  r6  )
r@   r   r   r   r  rC   r   r  r#   r*   )rf   r   r   r  rx   r  s         rF   test_axis_NoneTestFDRControl.test_axis_None
  sq    ii##$78!!$)#!NZZ^++BT:++HRL9!rH   r7  )r   r   r  c                 H   [         R                  R                  S5      n[        R                  R                  SSSUS9n[        R                  " UR                  U5      US9n[         R                  " [        R                  X5      n[        XRR                  U5      5        g r  )
r@   r   r   r   r  rC   r  r   apply_along_axisr)   )rf   r7  r   r   r  rx   r  s          rF   r  TestFDRControl.test_axis  sx    ii##$78!!$)#!N++BJJrNF!!%"?"?JZZ_-rH   c                 ,   UR                  S/5      n[        [        R                  " U5      U5        UR                  / 5      n[        [        R                  " U5      U5        [	        U5      (       a!  [        [        R                  " S5      S5        g g )NrG  )r   r*   r   r  r$   )rf   r   r  s      rF   r3  TestFDRControl.test_edge_cases  sl    ZZ55b92>ZZ^55b92>B<<E99$?F rH   r|   N)r}   r~   r   r   r   r  r  r  r   r   r   r  r  r  r3  r   r|   rH   rF   r  r    s    &J 'JT- [[V 89=? 89=?@A	9A	9" [[VZ0. 1.GrH   r  znot used in this test yetr   c                       \ rS rSr\R
                  R                  S\R                  0 4\R                  SS04\R                  SS04\R                  0 4/5      S 5       rSrg)	TestCommonAxisi%  r	  r   r   r   c                    [        U5      (       a+  US   [        R                  :X  a  [        R                  " SS9  Uu  p4[
        R                  R                  S5      nUR                  UR                  S5      5      nU" U40 UDSS0D6nUR                  [        UR                  S   5       Vs/ s H  o" US S 2U4   40 UD6PM     sn5      n	[        Xy5        U" U40 UDSS0D6nUR                  [        UR                  S   5       Vs/ s H  o" XhS S 24   40 UD6PM     sn5      n	[        Xy5        U" U40 UDSS 0D6nU" UR                  US5      40 UD6n	[        Xy5        g s  snf s  snf )	Nr   z3copysign doesn't accept scalar array-api-compat#271r   l   @ms|Y)rN   rQ   r7  r   r  )r    r   	variationr   r  r@   r   r   r   r  r  r  r)   r  )
rf   r	  r   r  rE   r   rv   rx   ry   r  s
             rF   r  TestCommonAxis.test_axis-  sO   
 B<<DGu6LL UVii##N3JJszz&)*!&v&A&hhaggaj8IJ8I1AadG.v.8IJK!!&v&A&hhaggaj8IJ8I1AdG.v.8IJK!!)v)D)"**Q&1&1! K Ks   1E*E/r|   N)r}   r~   r   r   r   r   r   r   semr  r  r  r   r|   rH   rF   r  r  %  sb     [[Vuyy"o',{{S!H&=',{{S!H&=',&;&= >"	>"rH   r  )r  r  r  r   	functoolsr   numpyr@   numpy.randomr   numpy.testingr   r   r   r   r	   r
   r   r   r   rn   scipyr   r   r   scipy.stats._morestatsr   r   r   r   common_testsr   
_hypotestsr   r   $scipy.stats._ansari_swilk_statisticsr   scipy.stats._binomtestr   scipy.stats._distr_paramsr   scipy.stats._axis_nan_policyr   r   r   r   scipy._external.array_api_extra	_externalarray_api_extrar   scipy._lib._array_apir    r!   r"   r#   r$   r%   r&   r'   r(   scipy._lib._array_api_no_0dr)   r*   r+   lazy_xp_modulesr   r   dict
matplotlibrcParamsmatplotlib.pyplotpyplotrU  rl  	Exceptionr  r  r  r  r  r  r  r  r  r  rG   rJ   r   r   r   rM  r   r  r  r^  rv  rr  r  r  r  r  r(  r!  r  r  r  r  r  r.  rr  rn  r  r  r  r  r  r  rH  re  ra  r  r  r  r  r  r?  rP  rN  r]  r  r  r  r  r  r
  r&  r]  rZ  r  r  uses_xp_capabilitiesr  r|   rH   rF   <module>r     s  
  	 
    $C C C  * * *; ; - B 6 ? .T T . -: : :  ';;// >%*J	"#O LKKKKKKKKL
4/ />? ?B 5==!n; n; "n;b EFM> M> GM>`O( O(d GHL9 L9 IL9^60 60r 5<< D2 D2 !D2N 5>>"&* &* #&*R 5<< >4 >4 !>4B 5??#[/ [/ $[/| 5==!I8 I8 "I8X20 5::u6 u6 u6p]5 ]5@ 5>>"B8 B8 #B8PP
 5;;3. 3.  3.l 5>>"&. &. #&.R39 39l"= "=J 5##$@+ @+ %@+J0f#0 #0L[- [-|- -$]- ]-@ ;  ;F 5''(8. 8. )8.vE6] E6P4K 4& 5>>5==%--@e@ e@ Ae@PQO QOhN ND 5**+e? e? ,e?P 5001KG KG 2KG\ !!%0K!L" " M"ew  Os   
P$ $P0/P0