
    Pi?d                    0   d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	 d dl
mZmZmZmZmZmZmZ d dlZd dlmZ d dlmZmZmZ d dlmZmZmZ dd	lmZ d
dlm Z m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z(m)Z)m*Z* d dl+m,c m-Z. d dl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9 ej:        j;        Z; e<e%          Z%	 d dl=Z=de=j>        d<   d dl?m@ZA dZBn# eC$ r dZBY nw xY wg dZDg dZEg dZFg dZGg dZHg dZIg dZJg dZKg dZLg dZMd ZN G d  d!          ZO G d" d#          ZP G d$ d%          ZQej:        R                    d&           G d' d(                      ZS G d) d*          ZTej:        R                    d+           G d, d-                      ZU G d. d/          ZV e1ejW                   G d0 d1                      ZX e1ejY                   G d2 d3                      ZZ e1ej[                   G d4 d5                      Z\ G d6 d7          Z] e1ej^                   G d8 d9                      Z_d: Z` e1eja                   G d; d<                      Zb G d= d>          Zc e1ejd                   G d? d@                      Zeg dAZf e1ejg                   G dB dC                      Zh e1eji                   G dD dE                      Zj G dF dG          Zk G dH dI          Zl e1ejm                   G dJ dK                      Zng dLZo G dM dN          Zp G dO dP          Zq G dQ dR          Zr e1ejs                   G dS dT                      Zt G dU dV          Zu G dW dX          Zv e1ejw        ejx        ejy                   G dY dZ                      Zz G d[ d\          Z{ G d] d^          Z| e1ej}                   G d_ d`                      Z~ e1ej                   G da db                      Z G dc dd          ZdS )e    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   )check_named_results   )_get_wilcoxon_distr_get_wilcoxon_distr2)_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)xp_assert_closexp_assert_equalxp_assert_lessAggbackendTF)
jt?Zd;?V-?      ?gX9v?-?x&1?+?+?r,   )
r+   r)   r,   r.   灕Cl?r+   r*   r,   r)   V-?)
ʡE?g/$?r1   r/   ףp=
?r0   r,   r/   r*   r*   )
gGz?r.   r0   r,   r4   r0   r+   r*   r.   r*   )
r+   r+   gCl?Gz?r.   rh|?r*   r-   g\(\?r*   )
羟/$?gh|?5?r7   r1   r2   r.   r4   r+   g1Zd?r*   )
r5   Mb?r*   gjt?r+   r,   g}?5^I?g)\(?r*   r.   )
r+   r,   r)   r,   r.   r*   r+   r*   r.   r)   )
r.   r+   r*   r4   r*   r8   r8   r+   r/   r3   )
r3   r4   r6   r0   r1   r1   r3   r+   r8   r1   c                  R    t          j        t          j        j        | i |          S N)nplogr   gammarvs)argskwargss     t/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/stats/tests/test_morestats.py_old_loggamma_rvsrB   D   s#    6%+/42622333    c                        e Zd Zd Zd Zd ZdS )TestBayes_mvsc                 J   g d}t          j        |          \  }}}t          |j        d           t	          |j        dd           t          |j        d           t	          |j        dd           t          |j        d	d
           t	          |j        dd           d S )N   	            rL            "@gURH#j@gV[%@ư>rtol      $@gai	@gӇu8@&.>_紫@   decimalgYs?g1O@+=)r   	bayes_mvsr   	statisticr
   minmaxselfdatameanvarstds        rA   
test_basiczTestBayes_mvs.test_basicI   s     '&&..c3DNC000%L!	# 	# 	# 	# 	CM4000
$K"	$ 	$ 	$ 	$ 	CM+=rJJJJ
$L"	$ 	$ 	$ 	$ 	$ 	$rC   c                 F    t          t          t          j        g            d S r:   )assert_raises
ValueErrorr   r\   r`   s    rA   test_empty_inputzTestBayes_mvs.test_empty_input[   s    j%/266666rC   c                     t          j        d          }d}t          j        |          }|D ]}t	          ||           d S )N   )r]   r^   )r;   aranger   r\   r   )r`   x
attributesresis        rA   test_result_attributesz$TestBayes_mvs.test_result_attributes^   sO    IbMM,
oa   	/ 	/A:....	/ 	/rC   N)__name__
__module____qualname__re   rj   rr    rC   rA   rE   rE   H   sA        $ $ $$7 7 7/ / / / /rC   rE   c                   &    e Zd Zd Zd Zd Zd ZdS )TestMvsdistc                    g d}t          j        |          \  }}}t          |                                d           t	          |                    d          dd           t          |                                d           t	          |                    d          dd	           t          |                                d
d           t	          |                    d          dd           d S )NrG   rN   ?rO   r[   rQ   rS   rT   rU   rV   rW   rX   rZ   )r   mvsdistr   rb   r
   intervalr_   s        rA   re   zTestMvsdist.test_basich   s   &&&t,,c3DIIKK---c** -AGL	N 	N 	N 	N 	CHHJJ---S)) ,?EJ	L 	L 	L 	L 	CHHJJ(:BGGGGS)) ,@FK	M 	M 	M 	M 	M 	MrC   c                 F    t          t          t          j        g            d S r:   rg   rh   r   r{   ri   s    rA   rj   zTestMvsdist.test_empty_inputw   s    j%-44444rC   c                 L    dg}t          t          t          j        |           d S Nr   r~   r`   ra   s     rA   test_bad_argzTestMvsdist.test_bad_argz   s#    sj%-66666rC   c                    t          j                    5  t          j        dt                     d t	          j        g d          D              d t	          j        g d          D              d d d            d S # 1 swxY w Y   d S )Nerrorc                 6    g | ]}|                                 S rv   rb   .0rn   s     rA   
<listcomp>z*TestMvsdist.test_warns.<locals>.<listcomp>   s     888!QVVXX888rC   r   r      c                 6    g | ]}|                                 S rv   r   r   s     rA   r   z*TestMvsdist.test_warns.<locals>.<listcomp>   s     >>>!QVVXX>>>rC   r   r   r         )warningscatch_warningssimplefilterRuntimeWarningr   r{   ri   s    rA   
test_warnszTestMvsdist.test_warns   s     $&& 	? 	?!'>:::88u}YYY778888>>u}___==>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   AA<<B B N)rs   rt   ru   re   rj   r   r   rv   rC   rA   rx   rx   g   sS        M M M5 5 57 7 7
? ? ? ? ?rC   rx   c                       e Zd Zd Zd Zej                            dg dgddgf          d             Zd Z	d Z
d	 Zd
S )TestShapiroc                 T   g d}t          j        |          \  }}t          j        |          }t          |dd           t          |j        dd           t          |dd           t          |j        dd           g d}t          j        |          \  }}t          j        |          }t          |dd           t          |j        dd           t          |dd	           t          |j        dd	           t           j                            d
d	dd          }t          j        |          \  }}t          j        |          }t          |dd           t          |j        dd           t          |dd	           t          |j        dd	           g d}d}d}	t          j        |          \  }}t          j        |          }t          ||d           t          |j        |d           t          ||	d
           t          |j        |	d
           d S )N))\(?{Gz@q=
ףp@HzG$@@Q	@q=
ףp?Q@zG?      @Q?RQ?Q	@(\?zG?zG@(\#@333333@Gz?p=
ף@   ?rH   rX      Ɍ?)(\?=
ףp=?\(\@ffffff@\(\?(\?Gz@(\ףp=
@皙?)\(?RQr   p=
ף?@
ףp=
?{Gz?\(\@{Gz@Q@IddY?Dio?r   r   d   iNa locscalesizerandom_stateg   E?g   Oٴ?)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 @ghyܝ?g0M?r   )r   shapiror   r]   pvaluenormr>   )
r`   x1wpwshapiro_testx2x3x4
W_expected
p_expecteds
             rA   re   zTestShapiro.test_basic   sb   8 8 8 b!!2}R((A2A>>>>L24GQRSSSSB 4a@@@@L/1EqQQQQ& & & b!!2}R((Ay!4444L2IqIIIIB3333L/!DDDD Z^^8^LLb!!2}R((A11====L24FPQRRRRB 3Q????L/1DaPPPP? ? ? 

b!!2}R((Az15555L2JJJJJB
A6666L/QGGGGGGrC   c                    g dg dg}t          j        |          \  }}t          j        |          }t          |dd           t          |j        dd           t          |dd           t          |j        dd           g dg dg}t          j        |          \  }}t          j        |          }t          |d	d           t          |j        d	d           t          |d
d           t          |j        d
d           d S )N)
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   rH   rX   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r]   r   )r`   r   r   r   r   r   s         rA   test_2dzTestShapiro.test_2d   sS        "8 "8 "89 b!!2}R((A2A>>>>L24GQRSSSSB 4a@@@@L/1EqQQQQ  & & &' b!!2}R((Ay!4444L2IqIIIIB3333L/!DDDDDDrC   rn   r   r   c                    t          j        t          t                    5  t	          j        |          }t          |j        t          j	                   t          |j
        t          j	                   d d d            d S # 1 swxY w Y   d S )Nmatch)pytestwarnsr   r   r   r   r   r]   r;   nanr   )r`   rn   rp   s      rA   test_not_enough_valuesz"TestShapiro.test_not_enough_values   s    \,4IJJJ 	- 	--""C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   ABBBc                    t          j        d          }t           j        |d<   t          j        |          \  }}t          j        |          }t          |t           j                   t          |j        t           j                   t          |t           j                   t          |j        t           j                   d S )NrS   rI   )	r;   rm   r   r   r   r   r]   r   r   )r`   rn   r   r   r   s        rA   test_nan_inputzTestShapiro.test_nan_input   s    IcNNv!a  2}Q''Q\+RV444 	B'''L/88888rC   c                     t          j        g d          \  }}t          j        |          }d}t          ||d           d S )N)i i = i@ )gPq~?gF?h㈵>rQ   )r   boxcoxr   r
   )r`   	trans_valmaxlogrp   refs        rA   test_gh14462zTestShapiro.test_gh14462   sP     "L)A)A)ABB	6mI&& 2St,,,,,,rC   c                     t          j        g d          }|j        dk    sJ g d}t          j        |          }t          |j        d           t          |j        dd           d S )N)g9B.?        r   r   )g1gIۿg0!?gr??gel?rP   rQ   )r   r   r   r
   r]   )r`   rp   rn   s      rA   test_length_3_gh18322z!TestShapiro.test_length_3_gh18322   sv     m:::;;zQ KJJmA'7888
O$??????rC   N)rs   rt   ru   re   r   r   markparametrizer   r   r   r   rv   rC   rA   r   r      s        )H )H )HVE E E* [S2sQF"344- - 54-9 9 9- - -"@ @ @ @ @rC   r   z'ignore: As of SciPy 1.17: FutureWarningc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                            dg d          d             Zd ZdS )TestAndersonc                    t          d          }|                    d          }|                    d          }t          j        |          \  }}}t          |d d         |           t          j        |          \  }}}t          ||dd                     t          j        d          }d|d<   t          j        |          \  }}}t          |d           d S )	NI2   r   
   r   g	@)	r   standard_exponentialstandard_normalr   andersonr   r;   onesr
   )r`   rsr   r   Acritsigvs           rA   test_normalzTestAnderson.test_normal  s    $$$$"$--R((~b))4$ss)Q'''~b))4!T"##Y'''GBKK!~a((4 	8$$$$$rC   c                    t          d          }|                    d          }|                    d          }t          j        |d          \  }}}t          ||dd                     t          j        d          5  t          j        |d          \  }}}d d d            n# 1 swxY w Y   t          ||d         k               d S )	Nr   r   r   exponr   ignoreallr   )	r   r   r   r   r   r   r;   errstater	   )r`   r   r   r   r   r   r   s          rA   
test_exponzTestAnderson.test_expon  s   $$$$"$--R((~b'224!T"##Y'''[X&&& 	7 	7 >"g66LAtS	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7DHs   B((B,/B,c           	         t          j        d          }d|d<   t          j        |d          \  }}}t	          |          }t          j                            |          \  }}t          j                            |||          }t          j                            |||          }	t          j	        d|dz             }
| t          j
        d|
z  dz
  ||	d d d         z   z            z
  }t          ||           d S )Nr   r   r   gumbelr   r   r   )r;   r   r   r   lengumbel_lfitlogcdflogsfrm   rb   r
   )r`   r   a2r   r   nxbarsr  r  rq   expected_a2s               rA   test_gumbelzTestAnderson.test_gumbel#  s     GCLL!q(33D#FF.$$Q''a&&q$22$$Qa00Ia1b27AaC!Gttt0D#EFFFK(((((rC   c                 L    t          t          t          j        dgd           d S Nr   plate_of_shrimpdist)rg   rh   r   r   ri   s    rA   r   zTestAnderson.test_bad_arg3  s$    j%.1#<MNNNNNNrC   c                     t          d          }|                    d          }t          j        |          }d}t	          ||           d S )Nr   r   r   r]   critical_valuessignificance_level)r   r   r   r   r   )r`   r   rn   rp   ro   s        rA   rr   z#TestAnderson.test_result_attributes6  sO    $$###,,nQK
C,,,,,rC   c                     t          d          }|                    d          }t          j        |d          \  }}}t          j        |d          \  }}}t	          ||           d S )Nr   r   r   r  r	  )r   r  r   r   r
   )	r`   r   rn   A1crit1sig1A2crit2sig2s	            rA   test_gumbel_lzTestAnderson.test_gumbel_l=  sh     $$II3I.H55E4.J77E4BrC   c                 H   t          d          }|                    d          }t          j        d          }d|d<   t	          j        |d          \  }}}t	          j        |d          \  }}}	t          ||dd                     t          ||d         k               d S )	Nr   r   r   r*   r   gumbel_rr   r   )r   r  r;   r   r   r   r   r	   )
r`   r   r   r   r  r  r  r   r!  r"  s
             rA   test_gumbel_rzTestAnderson.test_gumbel_rG  s     $$YYCY  WS\\ 1.Z88E4.Z88E4"eBCCj)))U2YrC   c                    t          j        g d          }t          j        |d          }|j        j        \  }}}t          |||fdd           t          |j        dd           |j        |j        d         k     sJ d	|z  }t          |d
d           t          d         }t          d         }||dz
  dz  ||z
  z  z   }	t          j
        |j        |	k              sJ t          |j        |	d           d S )N)
            r+        r,  u   r-  weibull_min)g
ףp=
@gzGX@gQS@Mb`?rQ   gp=
ף?MbP?r   r   g?r   皙?g?atol)r;   arrayr   r   
fit_resultparamsr
   r]   r  r   r  )
r`   rn   rp   mr   r   cAs40As45As_refs
             rA   test_weibull_min_case_Az$TestAnderson.test_weibull_min_case_AV  s   HGGGHHnQ..-3C)=DIIIIu48888}s2155555E6----b!b!S:.$+>>vc)F233333+V$??????rC   c                     t          j        g d          }d}t          j        t          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )N)J   9   0        rJ   F      rC    ;            iF  z/Maximum likelihood estimation has converged to r   r/  )r;   r6  r   r   rh   r   r   r`   rn   messages      rA   test_weibull_min_case_Bz$TestAnderson.test_weibull_min_case_Bi  s    H 5 5 5 6 6C]:W555 	- 	-N1m,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   AAAc                 <   t          j        g d           }d}d}t          j        t          |          }t          j        t          |          }|5  |5  t          j        |d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)	r(  K   rA     k   rJ   =   +   rC  z:Critical values of the test statistic are given for the...z;An error occurred while fitting the Weibull distribution...r   r/  )	r;   r6  r   r   UserWarningr   rh   r   r   )r`   rn   wmessageemessagewcontextecontexts         rA   test_weibull_warning_errorz'TestAnderson.test_weibull_warning_errorq  s%    X===>>>OP<8<<<=8<<< 	- 	-x 	- 	-N1m,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s6   BA9-B9A=	=B A=	BBBdistname)r   r   r	  extreme1r  r%  logisticr/  c                     t           j                            d          }|dv rdn|}t          t          |          }t
          |         } |j        |d|d}t	          j        ||          }|j        j	        sJ d S )Nl   'Dah$>   r  r\  r	    r   r   )
r;   randomdefault_rnggetattrr   r   r>   r   r7  success)r`   r[  rngreal_distnamer  r8  rn   rp   s           rA   test_anderson_fit_paramsz%TestAnderson.test_anderson_fit_params|  s    
 i##$677'/3I'I'I& 	um,,-(DHf4c:::nQ))~%%%%%%rC   c                     d}t          t          d|z            t          d                    t          j        }t          t          d|z            t          d                    d S )Nr   r   r   )r   r   r   r;   inf)r`   r9  s     rA   test_anderson_weibull_Asz%TestAnderson.test_anderson_weibull_As  sV    _QqS))>"+=>>>F_QqS))>!+<=====rC   N)rs   rt   ru   r   r  r  r   rr   r#  r&  r>  rN  rZ  r   r   r   rg  rj  rv   rC   rA   r   r      s       % % %.  ) ) ) O O O- - -          @ @ @&- - -	- 	- 	- [ZO O OP P	& 	&P P	&> > > > >rC   r   c                   `   e Zd Zd Zd Zd Zej                            ddd ej	        ddej        j
        	           ej	        d
dej        j
        	           ej	        ddej        j
        	          g          d             Zej                            dg d          d             ZdS )TestAndersonMethodc                     d}t          j        t          |          5  t          j        g dd           d d d            d S # 1 swxY w Y   d S )NzAs of SciPy 1.17, users...r   r   r   )r   r   FutureWarningr   r   r`   rM  s     rA   test_warningzTestAndersonMethod.test_warning  s    .\-w777 	. 	.N999f---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   AA
Ac                     d}t          j        t          |          5  t          j        g ddd           d d d            d S # 1 swxY w Y   d S )Nz`method` must be either...r   r   r   	ekki-ekkimethod)r   r   rh   r   r   ro  s     rA   test_method_input_validationz/TestAndersonMethod.test_method_input_validation  s    .]:W555 	B 	BN999f[AAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   AA	A	c                    t           j                            d          }d}t          j        t
          |          5  t          j        |j                  }t          j        g dd|           d d d            n# 1 swxY w Y   d}t          j        t
          |          5  t          j        d	
          }t          j        g dd|           d d d            n# 1 swxY w Y   t          j        d|          }t          j        g dd|          }|j	        d	z  }t          j
        |          |k    sJ t          j        t           j                            d                    }t          j        g dd|          }t          j        t           j                            d                    }t          j        g dd|          }|j	        |j	        k    sJ t          j        t           j                            d                    }t          j        g dd|          }|j	        |j	        k    sJ d S )Nl   7.!Y zThe `rvs` attribute...r   )r>   r   r   rs  zThe `batch` attribute...r   )batchrI   n_resamplesre  l   Fp re  r   l   Fp )r;   ra  rb  r   r   rU  r   MonteCarloMethodr   r   round)r`   re  rM  rt  rp   ten_pr   s          rA   test_monte_carlo_methodz*TestAndersonMethod.test_monte_carlo_method  s   i##N33*\+W555 	= 	=+
;;;FN999fV<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= -\+W555 	= 	=+"555FN999fV<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 'A3???nYYYv>>>
Rx%'''''BI,A,A+,N,NOOOn___fVDDD'BI,A,A+,N,NOOOn___fVDDDzSZ'''''BI,A,A+,N,NOOOn___fVDDDzSZ''''''s#   4A==BB%/C  C$'C$zdist_name, seed)r   l   k2II)r   l   i!r]  l   v!)marksr	  l   w!i;r%  l   {hrc                    t          t          |          }t          j                            |          }|                    d|          }t          j        ||d          }t          j        ||t          j        |                    }t          j        	                    |j
        |j
                   t          j        	                    |j        |j        d           d S )Nr   r`  interpolaters  rz  {Gzt?r4  )rc  r   r;   ra  rb  r>   r   r{  testingr
   r]   r   )r`   	dist_nameseedr  re  rn   r   rp   s           rA   test_method_consistencyz*TestAndersonMethod.test_method_consistency  s     ui((i##D))HH"3H//nQ	-@@@nQ	%2HS2Q2Q2QRRR

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

""3:sz"FFFFFrC   r  )r   r   r]  r	  r%  r/  c                 ^   t          t          |          }t          j                            d          }|dk    rdnt                      } |j        |d|d}t          j        t                    5  t          j
        ||          }d d d            n# 1 swxY w Y   |dk    rdt          j        |j                  z
  nt          j        |j                  dz  }t          j        |          }t          j        |          }	t          j        |j                  }
t          j        |j                  }t          j
        ||d	          }|j        |
k     sJ |j        |	k    sJ t          j
        |                    d
          |d	          }|j        |k    sJ |j        |k    sJ d S )Nl   l2IIr/  )      @r   r`  r   r   r  rs  r   )rc  r   r;   ra  rb  tupler>   r   r   rn  r   asarrayr  minmaxr  r]   r   )r`   r  r  re  r?   rn   rp   pvalues
pvalue_min
pvalue_maxstatistic_minstatistic_maxs               rA   test_interpolate_saturationz.TestAndersonMethod.test_interpolate_saturation  s    ui((i##M22"m33vvDHd#666\-(( 	/ 	/.I..C	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/=F-=W=W1rz#"89999
3#9::S@ 	VG__
VG__
s233s233 nQ	-@@@}},,,,zZ'''' nSZZRZ00)MRRR}},,,,zZ''''''s   2BBBN)rs   rt   ru   rp  ru  r~  r   r   r   paramxslowr  r  rv   rC   rA   rl  rl    s       . . .
B B B
( ( (8 [.	 	!	j-v{7H	I	I	I	j-v{7H	I	I	I	j-v{7H	I	I	I		KL LG GL LG [[LLLN N( (N N( ( (rC   rl  z)ignore:Parameter `variant`...:UserWarningc                   h    e Zd Zd Zd Zej        j        d             Zd Z	d Z
d Zd Zd Zd	 Zd
S )TestAndersonKSampc                 J   g d}t          j        g d          }t          j        g d          }t          j        g d          }t          j        ||||fd          \  }}}t	          |dd           t          g d	|d
d         d           t          |dd           d S )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?r4  r;   r6  r   anderson_ksampr   r   r
   r`   t1t2t3t4Tktmps           rA   test_example1az TestAndersonKSamp.test_example1a  s    
 >==XFFFGGXFFFGGXFFFGG("b"b)95III	BBq)))!"J"J"J"$QqS'1	. 	. 	.6000000rC   c                 n   t          j        g d          }t          j        g d          }t          j        g d          }t          j        g d          }t          j        ||||fd          \  }}}t	          |dd           t          g d	|d
d         d           t          |dd           d S )Nr  r  r  r  Tr  gQ@r   r  r   r   r   r0  r  r4  r  r  s           rA   test_example1bz TestAndersonKSamp.test_example1b  s    
 XFFFGGXFFFGGXFFFGGXFFFGG("b"b)94HHH	BBq)))!"J"J"J"$QqS'1	. 	. 	.6000000rC   c                 `   g d}g d}g d}g d}g d}g d}g d}g d}g d	}	g d
}
g d}g d}g d}g d}|||||||||	|
||||f}t          j        |d          \  }}}t          |dd           t          g d|dd         d           t	          |dd           t
          j                            d          }t          j        d|          }t          j        |d|          }t          |j
        |           t          |j        |           t	          |j        |d           d S )N   rl   )   rC  !      i  rW   :   %   r   A   rI      i     $      v   
"         r  C   rA  >   rK      r  Z   r   <      rS  1   rW      8      O   T   ,   rH  rC  r        i6  L   rK  r     r        rE  e   r  r@  rA  rB  rC  rD  rJ   rE  rF  rC  rG  rH  rI  7   i@  r  h         /            r  r  i  W   rK   x   rW   r  r  r(  G   r  rF  *   r  r   rJ   r     r   rW   r  r  rW   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   rl         r  X   r  r   r   r  r        r     r  rM   rW   	g  rI   rJ   i  i[  r   r  r   i  r      r   i  #   rJ   i  r  r   rK   b   r   U   [   rT     r   r  r     rW   rA  r      r  rH        rI  rW   r  B   rS  r  Fr  gM
@r   g^I+?g~:?g+e?gH.!@gcZB>h@r   r   r   	^)p?r  r4  l   <Ic i'  rx  )r  rt  ga2U0*C?)r   r  r   r   r
   r;   ra  rb  PermutationMethodr   r]   r  r   )r`   r  r  r  r  t5t6t7t8t9t10t11t12t13t14samplesr  r  r  re  rt  rp   s                         rA   test_example2az TestAndersonKSamp.test_example2a  s   
 (''GGG4445 5 5%%%???@@@I I IB B B1 1 1444'''???   r2r2r2r2sCc3O(%@@@	BBq)))!"J"J"J"$QqS'1	. 	. 	.60000i##$788(TsCCC"7E&III3="---3.333
AD111111rC   c                 B   g d}g d}g d}g d}g d}g d}g d}g d}g d	}	g d
}
g d}g d}g d}g d}t          j        |||||||||	|
||||fd          \  }}}t          |dd           t          g d|dd         d           t	          |dd           d S )Nr  r  r  r  r  r  r  r  r  r   r	  r  r  r  Tr  g'1Z
@r   r  r   r   r   r  r  r4  )r   r  r   r   r
   )r`   r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r  r  r  s                     rA   test_example2bz TestAndersonKSamp.test_example2b-  s^    (''GGG4445 5 5%%%???@@@I I IB B B1 1 1444'''???   ("b"b"b"b*,c3S#*G157 7 7	B 	Bq)))!"J"J"J"$QqS'1	. 	. 	.6000000rC   c                 n   t          j        ddd          }t          j                    5  t          j        ddt
                     t          j        ||dz   gd          \  }}}d d d            n# 1 swxY w Y   t          |dd	           t          |d
           t          j                    5  t          j        ddt
                     t          j        ||dz   g          \  }}}d d d            n# 1 swxY w Y   t          |dd	           t          |d
           t          j                    5  t          j        ddt
                     t          j        ||dz   gd          \  }}}d d d            n# 1 swxY w Y   t          |dd           t          |d           t          j                    5  t          j        ddt
                     t          j        ||dz   g          \  }}}d d d            n# 1 swxY w Y   t          |dd           t          |d           t          j        ||dz   gd          \  }}}t          |dd           t          |ddd           t          j        ||dz   g          \  }}}t          |dd           t          |ddd           t          j        ||dz   gd          \  }}}t          |dd           t          |ddd           t          j        ||dz   gd          \  }}}t          |d d           t          |d!d"d           d S )#Nr   r   r  zp-value flooredg     @D@Fr  g=
ףpD@r   r1  gGzD@zp-value capped      ?g?ܵr         ?g?ܵ      @g!u?gףp=
׳?r  r   r5  rR   rH   gBiq?g鷯?      '@g:M@g46<Rv?gMb@?g      +@g6>W[1@g1ZGUS?-C6?)r;   linspacer   r   filterwarningsrU  r   r  r   r   r
   )r`   r   r  _r  s        rA   test_R_kSamplesz!TestAndersonKSamp.test_R_kSamplesM  so   B [C%% $&& 	K 	K#H.?MMM*BT	?EJJJGAq!	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Avq)))Q$&& 	< 	<#H.?MMM*BT	?;;GAq!	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	Avq)))Q $&& 	I 	I#H.>LLL*BR=%HHHGAq!	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Aw***Q$&& 	: 	:#H.>LLL*BR=99GAq!	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	Aw***Q &BH~uEEE1aAvq)))6A6666 &BF|441aAvq)))6A6666 &BIFFF1aAvq)))7a8888&BIFFF1aAvq)))7a888888sG   ;A11A58A509C55C9<C94;E;;E?E?:9G??HHc                 j    t          t          t          j        t	          j        d                     d S Nr   rg   rh   r   r  r;   r   ri   s    rA   test_not_enough_samplesz)TestAndersonKSamp.test_not_enough_samples  s%    j%"6

CCCCCrC   c                     t          t          t          j        t	          j        d          t	          j        d          f           d S r6  r7  ri   s    rA   test_no_distinct_observationsz/TestAndersonKSamp.test_no_distinct_observations  s=    j%"6wqzz271::.	0 	0 	0 	0 	0rC   c                 n    t          t          t          j        t	          j        d          g f           d S r6  r7  ri   s    rA   test_empty_samplez#TestAndersonKSamp.test_empty_sample  s*    j%"6R8HIIIIIrC   c                     g d}t          j        g d          }t          j        ||fd          }d}t	          ||           t          |j        |j                   d S )Nr  r  Fr  r  )r;   r6  r   r  r   r   r  r   )r`   r  r  rp   ro   s        rA   rr   z(TestAndersonKSamp.test_result_attributes  sl    ===XFFFGG"B8U;;;K
C,,,S+SZ88888rC   N)rs   rt   ru   r  r  r   r   r  r'  r)  r4  r8  r:  r<  rr   rv   rC   rA   r  r    s        1 1 1"1 1 1  [$2 $2 $2L1 1 1@N9 N9 N9`D D D0 0 0J J J	9 	9 	9 	9 	9rC   r  c                   f    e Zd Zd Zd Zej                            dddg          d             ZdS )TestAndersonKSampVariantc                    g d}g d}d}t          j        t          |          5  t          j        ||f          }d d d            n# 1 swxY w Y   t          |          dk    rt          |d          sJ t          j        t          |          5  t          j        ||fd          }d d d            n# 1 swxY w Y   t          |j        |j                   t          |j	        |j	                   t          |          dk    rt          |d          sJ t          j        t          |          5  t          j        ||fd	d
          }d d d            n# 1 swxY w Y   t          |j        |j                   t          |j	        |j	                   t          |d          rJ t          j        ||fd
          }t          |j        |j                   t          |j	        |j	                   t          |d          rJ t          j        t          |          5  t          j        ||fd	          }d d d            n# 1 swxY w Y   t          |          dk    rt          |d          sJ t          j        t          |          5  t          j        ||fdd          }d d d            n# 1 swxY w Y   t          |j        |j                   t          |j	        |j	                   t          |d          rJ t          j        ||fd          }t          |j        |j                   t          |j	        |j	                   t          |d          rJ d S )N)r   r   r   r   r   r   )
r   r   r   r   r   r   rH   rH   rH   rK   z*Parameter `variant` has been introduced...r   r   r  Tr  Fr  )r  variantrA  right)
r   r   rU  r   r  r  hasattrr   r]   r   )r`   rn   yrM  r   rp   s         rA   test_variant_valuesz,TestAndersonKSampVariant.test_variant_values  s   ***>\+W555 	/ 	/&1v..C	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/3xx1}}.?!@!@}}@\+W555 	= 	=&1vt<<<C	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=S]CM222SZ,,,3xx1}}.?!@!@}}@\+W555 	Q 	Q&1vuiPPPC	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	QS]CM222SZ,,,3 122222"Aq69===S]CM222SZ,,,3 122222\+W555 	> 	>&1vu===C	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>3xx1}}.?!@!@}}@\+W555 	N 	N&1vtWMMMC	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	NS]CM222SZ,,,3 122222"Aq67;;;S]CM222SZ,,,3 12222222sY   A		AAB99B= B=8EE"%E"(IIIJ>>KKc                     t          j        d          }d}t          j        t          |          5  t          j        ||fd           d d d            d S # 1 swxY w Y   d S )Nr   z=`variant` must be one of 'midrank', 'right', or 'continuous'.r   CamelotrB  )r;   rm   r   r   rh   r   r  rL  s      rA   test_variant_input_validationz6TestAndersonKSampVariant.test_variant_input_validation  s    IbMMQ]:W555 	< 	< !Q;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   AAA	n_samplesr   r   c                    t           j                            d          }|                    |df          dt          j        |          d d t           j        f         z  z   }t          j        |d          }t          j        |d          }t          |j        |j                   t          |j	        |j	                   d S )Nl   0e rl   皙?rC  rB  
continuous)
r;   ra  rb  rm   newaxisr   r  r
   r]   r   )r`   rJ  re  r&  r   rp   s         rA   test_variant_continuousz0TestAndersonKSampVariant.test_variant_continuous  s    i##K00**i_--BIi4H4HBJ4W0WW"7G<<<"7LAAAs}555
CJ/////rC   N)	rs   rt   ru   rF  rI  r   r   r   rO  rv   rC   rA   r?  r?    se        &3 &3 &3P< < < [[1a&110 0 210 0 0rC   r?  c                   Z   e Zd Zd Zd Zd Zej                            dd          ej        	                    dg dgfdgg fg          d	                         Z
d
 Zd Zej        	                    dg dg dddfg dg dddfg dg dddfg dg dddfg dg dddfg dg dddfg          d             Zd Zej        	                    dg d          ej        	                    dddg          ej        	                    dd d!g          d"                                     Zd#S )$
TestAnsaric                    |                     g d          }|                     g d          }t          j        ||          \  }}t          ||                     d                     t          ||                     d                     d S )N)r   r   r   r   r   )r   r   rH   r   rH   r   r   r   g     7@g8#oG?r  r   ansarir$   r`   xprn   rE  Wpvals         rA   
test_smallzTestAnsari.test_small  s    JJ''JJ///00,q!$$42::d++,,,bjj)<==>>>>>rC   c                    |                     g d          }|                     g d          }t          j        ||          \  }}t          ||                     d                     t          ||                     d                     d S )Nr  rR  r   c   r  r  m   l   r  r\  r  `   r  r  rR  q   t   r`  n   r  rR  r^  r  r  i   g   rb  rd  r  r   r_  r^  re  r  r   rf  r`  r^  r  r\  g     0g@g|:?rS  )r`   rV  ramsayparekhrW  rX  s         rA   test_approxzTestAnsari.test_approx  s     L L L M M & & & ' ' ,vv..42::e,,---bjj)<==>>>>>rC   c                    |                     g d          |                     g d          }}t          j        ||          \  }}t          ||                     d                     t          ||                     d                     d S )Nr   r   r   r   )rl   r   r  rL   r   rJ   rS   g?rS  rU  s         rA   
test_exactzTestAnsari.test_exact  s    zz,,,''4J4J4J)K)K1,q!$$42::d++,,,bjj)=>>?????rC   	jax.numpyzno _axis_nan_policy decoratorreasonr?   r,   c                 f   fd|D             }t          j        t          t                    5  t	          j        | }t          |j                            j	                             t          |j
                            j	                             d d d            d S # 1 swxY w Y   d S )Nc                 :    g | ]}                     |          S rv   r  r   argrV  s     rA   r   z+TestAnsari.test_bad_arg.<locals>.<listcomp>
  #    000C

3000rC   r   )r   r   r   r   r   rT  r%   r]   r  r   r   )r`   r?   rV  rp   s     ` rA   r   zTestAnsari.test_bad_arg  s     10004000\,4IJJJ 	< 	<,%CCM2::bf+=+=>>>CJ

26(:(:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   A)B&&B*-B*c                     |                     g d          }|                     g d          }d}t          t          |          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nrk  r   rH   rK   rL   z!'alternative' must be 'two-sided'r   fooalternative)r  rg   rh   r   rT  )r`   rV  r   r   r   s        rA   test_bad_alternativezTestAnsari.test_bad_alternative  s    ZZ%%ZZ%%3:U333 	4 	4LRU3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   A,,A03A0c                    |                     g d          }|                     g d          }t          j        ||          \  }}t          j        ||d          j        }t          j        ||d          j        }|dk    sJ |dk     sJ t          j                            t          |          |j        d         |j        d                   }|                     t          |                    }t          ||z   d	|z   d
           t          ||dz  d
           t          |d	|z   |dz  z
  d
           t          j        ||d          j        }	t          j        ||d          j        }
|	dk     sJ |
dk    sJ d S )N)r   r   r   rl   r  g      9@)r-  g      !@      #@g      %@r/  g      )@lessry  greaterffffff?皙?r   r   -q=r4  r   )
r  r   rT  r   r   apmffloatshaper$   )r`   rV  r   r   r]   rX  pval_lpval_gprobpval_l_reversepval_g_reverses              rA   test_alternative_exactz!TestAnsari.test_alternative_exact  s   ZZ33344ZZ999::  ,r2..	4b"&999@b")<<<C}}}}}}}} |i 0 0"(1+rx{KKzz%++&&T>>>> 	QU3333$tAvE:::: b"&AAAHb")DDDK$$$$$$$$$$rC   zx, y, alternative, expectedrk  rw  r  g@A?r  r   )r   r   rH   rK   rL   gG$I?g%I$I?r   )rH   rK   rL   c                     |                     |          |                     |          }}t          j        |||          j        }t	          ||                     |          d           d S )Nry  r  r4  )r  r   rT  r   r$   )r`   rn   rE  rz  expectedrV  rX  s          rA   test_alternative_exact_with_Rz(TestAnsari.test_alternative_exact_with_R4  sa    8 zz!}}bjjmm1|Aqk:::Abjj22??????rC   c                    |                     t          j                            dddd                    }|                     t          j                            dddd                    }t          j        ||d          j        }t          j        ||d	          j        }t          ||                     d
|j                  d           t          ||                     d|j                  d           |                     t          j                            dddd                    }|                     t          j                            dddd                    }t          j        ||          j        }t          j        ||d          j        }t          j        ||d	          j        }t          ||dz  d           t          |d|dz  z
  d           d S )Nr   r   r   {   r`  r   r  ry  r  r,   dtyper  r4  r   r        ?r   )r  r   r   r>   rT  r   r$   float64)r`   rV  r   r   r  r  rX  s          rA   test_alternative_approxz"TestAnsari.test_alternative_approxT  s   ZZ
q!#CHHIIZZ
q!#CHHII b"&999@b")<<<C

3bj
 A ANNNN

3bj
 A ANNNN ZZ
q!"3GGHHZZ
q#BSIIJJ|B##*b"&999@b")<<<CQU3333$q&u555555rC   r  Nfloat32r  r  r   r   tiesFTc                    t          |          r%|j        dk     r|dk    rt          j        d           |t	          |          nt          ||          }t          j                            d          }|r|	                    dd|f          n|                    d|f          \  }}t          j        ||          }t          j        |                    ||          |                    ||                    }	t          |	j        |                    |j        |                     t          |	j        |                    |j        |                     d S )	N2.0r  *Scalar dtypes only respected after NEP 50.l   ]M rH   r   r   r  )r"   __version__r   skipr#   rc  r;   ra  rb  integersr   rT  r  r$   r]   r   )
r`   r  r  r  rV  re  rn   rE  r   rp   s
             rA   test_dtypeszTestAnsari.test_dtypesi  s9    B<< 	FBNU22u	7I7IKDEEE(- $$$72u;M;Mi##N33/3Ps||AQF|+++!Q9P9P1l1a  l2::au:55rzz!5z7Q7QRRrzz#-uz'M'MNNN
BJJszJ$G$GHHHHHrC   N)rs   rt   ru   rY  ri  rl  r   r   skip_xp_backendsr   r   r{  r  r  r  r  rv   rC   rA   rQ  rQ    s       ? ? ?	? 	? 	?@ @ @ [!!+6U!VV[VrB4jB4*%=>>< < ?> WV<4 4 4% % %8 [% ,,fo	>
,,i	A
))___fo	>
))___i	A
//999fo	>
//999i	A	C @ @ @(6 6 6* [W&B&B&BCC[S2s),,[VeT]33	I 	I 43 -, DC	I 	I 	IrC   rQ  c                   l    e Zd Zd Zd Zd Zej                            d          d             Z	d Z
dS )TestBartlettc           
      N   t           t          t          t          t          t
          t          t          t          t          g
}fd|D             }t          j        | \  }}t          |                    d                     t          |                    d                     d S )Nc                 :    g | ]}                     |          S rv   rr  rs  s     rA   r   z*TestBartlett.test_data.<locals>.<listcomp>}  ru  rC   gzU@ /4@gG?)g1g2g3g4g5g6g7g8g9g10r   bartlettr$   r  )r`   rV  r?   TrX  s    `   rA   	test_datazTestBartlett.test_dataz  s    BBBBC800004000.$'42::&788999bjj99:::::rC   c                     d}t          j        t          |          5  t          j        |                    dg                     d d d            d S # 1 swxY w Y   d S )Nz-Must enter at least two input sample vectors.r   r,   )r   r   rh   r   r  r  r`   rV  rM  s      rA   test_too_few_argszTestBartlett.test_too_few_args  s    A]:W555 	- 	-N2::rd++,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-   )AAAc           
          t           t          t          t          t          t
          t          t          t          t          g
}fd|D             }t          j        | }d}t          ||           d S )Nc                 :    g | ]}                     |          S rv   rr  rs  s     rA   r   z7TestBartlett.test_result_attributes.<locals>.<listcomp>  ru  rC   r]   r   rV  )r  r  r  r  r  r  r  r  r  r  r   r  r   r`   rV  r?   rp   ro   s    `   rA   rr   z#TestBartlett.test_result_attributes  sb    BBBBC800004000nd#,
C333333rC    ignore:invalid value encounteredc                    t           t          t          t          t          t
          t          t          t          t          g f}fd|D             }t          t          t                    5  t          j        | }d d d            n# 1 swxY w Y                       j                  }t#          |j        |           t#          |j        |           d S )Nc                 :    g | ]}                     |          S rv   rr  rs  s     rA   r   z/TestBartlett.test_empty_arg.<locals>.<listcomp>  ru  rC   r   rV  )r  r  r  r  r  r  r  r  r  r  r    r   r   r   r  r  r   r%   r]   r   )r`   rV  r?   rp   NaNs    `   rA   test_empty_argzTestBartlett.test_empty_arg  s    BBBBC<00004000+3HRPPP 	( 	(.$'C	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( jj  s+++
C(((((s   +BB
B
c                 &   |                     g d|j                  }|                     g d|j                  }|                     g d|j                  }t          j        |||          }|                    |j        dk              sJ d S )N)g333333$@gffffff$@g$@g$@r  )L$@     $@33333$@gfffff$@)g$@r  r  r  r   )r  r  r   r  r  r]   )r`   rV  r  br:  rp   s         rA   test_negative_pvalue_gh21152z)TestBartlett.test_negative_pvalue_gh21152  s    JJ///rzJBBJJ3332:JFFJJ3332:JFFnQ1%%vvcmq()))))))rC   N)rs   rt   ru   r  r  rr   r   r   r2  r  r  rv   rC   rA   r  r  x  s~        ; ; ;- - -
4 4 4 [ BCC	) 	) DC	)* * * * *rC   r  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )

TestLevenec           
      N   t           t          t          t          t          t
          t          t          t          t          g
}fd|D             }t          j        | \  }}t          |                    d                     t          |                    d                     d S )Nc                 :    g | ]}                     |          S rv   rr  rs  s     rA   r   z(TestLevene.test_data.<locals>.<listcomp>  ru  rC   gYpK?gI{]?r  r  r  r  r  r  r  r  r  r  r   levener$   r  r`   rV  r?   rW  rX  s    `   rA   r  zTestLevene.test_data  s    BBBBC800004000,%42::&899:::bjj99:::::rC   c           
      T   t           t          t          t          t          t
          t          t          t          t          g
}fd|D             }t          j        |ddi\  }}t          |                    d                     t          |                    d                     d S )Nc                 :    g | ]}                     |          S rv   rr  rs  s     rA   r   z(TestLevene.test_mean.<locals>.<listcomp>  ru  rC   centerrb   g F@g(gX?r  r  s    `   rA   	test_meanzTestLevene.test_mean  s    BBBBC800004000,4V4442::&677888bjj):;;<<<<<rC   c                 2   |                     t                    |                     t                    |                     t                    f}t	          j        |ddi\  }}t	          j        |ddd\  }}t          ||           t          ||           d S )Nr  rb   trimmedr   r  proportiontocut)r  r  r  r  r   r  r$   )r`   rV  r?   W1pval1W2pval2s          rA   test_trimmed1zTestLevene.test_trimmed1  s     

2

2

2?L$6v66	EL$y#NNN	EBu%%%%%rC   c           
      V   t           t          t          t          t          t
          t          t          t          t          g
}fd|D             }t          j        |ddd\  }}t          |                    d                     t          |                    d                     d S )Nc                 :    g | ]}                     |          S rv   rr  rs  s     rA   r   z,TestLevene.test_trimmed2.<locals>.<listcomp>  ru  rC   r  r,  r  g˼> @gwW?r  r  s    `   rA   test_trimmed2zTestLevene.test_trimmed2  s    BBBBC800004000,YMMM42::&677888bjj);<<=====rC   c                    t          j        ddd          }t           j                            d          }|                    |          }|dz  }|                    |          |                    |          |                    |          }}}t          j        ||d          \  }}t          j        ||d          \  }}	t          ||           t          ||	           d S )	Nr   r   rF     Kc r   rb   r  median)	r;   r1  ra  rb  permutationr  r   r  r$   )
r`   rV  rn   re  r   rE  r  r  r  r  s
             rA   test_equal_mean_medianz!TestLevene.test_equal_mean_median  s    KAr""i##J//__QqD::a=="**R.."**Q--q2LAf555	ELQx888	EBu%%%%%rC   c                     |                     ddd          }d}t          j        t          |          5  t	          j        ||d           d d d            d S # 1 swxY w Y   d S Nr   r   rF  z-center must be 'mean', 'median' or 'trimmed'.r   trimr  )r1  r   r   rh   r   r  r`   rV  rn   rM  s       rA   test_bad_center_valuez TestLevene.test_bad_center_value  s    KKAr""A]:W555 	. 	.LAf----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.   AA!Ac                     d}t          j        t          |          5  t          j        |                    dg                     d d d            d S # 1 swxY w Y   d S )N"Must provide at least two samples.r   r   )r   r   rh   r   r  r  r  s      rA   r  zTestLevene.test_too_few_args  s    6]:W555 	* 	*LQC)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*r  c           
          t           t          t          t          t          t
          t          t          t          t          g
}fd|D             }t          j        | }d}t          ||           d S )Nc                 :    g | ]}                     |          S rv   rr  rs  s     rA   r   z5TestLevene.test_result_attributes.<locals>.<listcomp>  ru  rC   r  r  )r  r  r  r  r  r  r  r  r  r  r   r  r   r  s    `   rA   rr   z!TestLevene.test_result_attributes  sb    BBBBC800004000lD!,
C333333rC   N)rs   rt   ru   r  r  r  r  r  r  r  rr   rv   rC   rA   r  r    s        ; ; ;= = =& & &> > >	& 	& 	&. . .* * *
4 4 4 4 4rC   r  c                   
   e Zd ZdZd Zd Zd Zd Zej	        
                    dg d          d             Zej	        
                    dg d	          d
             Zej	        
                    dg d          d             Zej	        
                    dg d          d             Zej	        
                    dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d g d!g d"g d#g d$g d%g d&g d'g d(g d)g          d*             Zd+ Zej	        
                    d,d-d.g          d/             Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zej	                            ej        d7k    d89          d:             Zd;S )<TestBinomTestzTests for stats.binomtest.c                 r   d}t          j        ddd          }t          |j        d|           t          j        ddd          }t          |j        d|           t          j        d	dd          }t          |j        d
|           t          j        ddd          }t          |j        dd           d S )N绽|=iΙ i@o@Q?r,   rQ   iΙ gX7?i	ϙ g=?iϙ gybw?rU   r   	binomtestr
   r   r`   rR   rp   s      rA   test_two_sided_pvalues1z%TestBinomTest.test_two_sided_pvalues1  s     oh$77
Cd3333oh$77
O$????oh$77
O$????oh$77
O$??????rC   c                    d}t          j        ddd          }t          |j        d|           t          j        ddd          }t          |j        d	|           t          j        d
dd          }t          |j        d|           t          j        ddd          }t          |j        d|           t          j        ddd          }t          |j        d|           t          j        ddd          }t          |j        d|           t          j        ddd          }t          |j        d|           d S )Nr  rI   rF  r  r  r  gX-h?rQ   r   g㤶y?r  g	y}?rK   g+,?r   r   r+  g      ?r   r3  g{Gz?g333333?g<,?r  r  s      rA   test_two_sided_pvalues2z%TestBinomTest.test_two_sided_pvalues2  s7   oa2...
O$????oaT**
$5DAAAAob"d++
O$????oaT**
O$????oaR((
G$7777oaB''
Dt4444oaB''
F666666rC   c                 &   d}t          j        ddd          }t          |j        d|           t          j        ddd	          }t          |j        d|           t          j        d
dd          }t          |j        d|           t          j        ddd          }t          |j        d|           t          j        dd
d          }t          |j        d|           t          j        ddd          }t          |j        d|           d S )Nr  i  i  r+  r   rQ   r   r  gAL &W?rM   r  g!YB?rl   r  gE]t?rK   rH   r  r  r  s      rA   test_edge_caseszTestBinomTest.test_edge_cases
  s	   oc3,,
AD1111oaT**
AD1111ob"e,,
AD1111ob"e,,
AD1111oaS))
AD1111oaS))
AD111111rC   c           	         ddd}t          j        t          j        z            dz             }t          j                            |          }t          j        t          j                            |          |k    d          }t          fd| t          j        z                      }|z
  t          |t          j                            |          k              z   }t          ||d	           d
}t          j        t          j
        z            dz             }t          j                            |          }t          j        t          j                            |          |k    d          }t          fd|dt          j
        z                      }|dz   }t          ||d	           d S )Nr   r+  r   r   r   axisc                 H    t           j                            |            S r:   r   binomr  r   r  r  s    rA   <lambda>z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>&  s     +0;??2q!+D+D*D rC   rU   rQ   rK   c                 F    t           j                            |           S r:   r  r  s    rA   r  z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>2  s    */+//"a*C*C rC   )r;   rm   ceilr   r  r  sumr   intr
   floor)	r`   krq   dy1ixy2r  r  s	          @@rA   test_binary_srch_for_binom_tstz,TestBinomTest.test_binary_srch_for_binom_tst  s    Ibga!ennac**KOOAq!$$VEKOOAq!,,1:::) +E +E +E +E +E+,"bga!ennaA A Vc!u{r1a888999BT****Ibhq1uoo)**KOOAq!$$VEKOOAq!,,1:::) +D +D +D +D +D*+QQA A !VBT******rC   z"alternative, pval, ci_low, ci_high))r  g$W?r   g?)r  g}?gGI~?r,   )	two-sidedg}G?g>?6?g4M?c                     t          j        ddd|          }t          |j        |d           t	          |j        d           |                    d	          }t          |j        |j        f||fd           d S )
Nr  r   r,  r  r  rz  r  rQ   皙?r  confidence_level	r   r  r
   r   r   r]   proportion_cilowhighr`   rz  rX  ci_lowci_highrp   cis          rA   test_confidence_intervals1z(TestBinomTest.test_confidence_intervals19  s     obC4[III
Du5555S]C(((55)FG+<5IIIIIIrC   ))r  ga&+w?r   gny?)r  g5!Rx?g5%?r,   )r  g~th?gSuR&|?g|KnG?c                     t          j        ddd|          }t          |j        |d           t	          |j        d           |                    d	          }t          |j        |j        f||fd           d S )
Nr   r   r  r  rP   rQ   gQ?r5   r  r  r  s          rA   test_confidence_intervals2z(TestBinomTest.test_confidence_intervals2H  s     oa2+FFF
Dt4444S]D)))55)FG+<4HHHHHHrC   zalternative, pval, ci_high))r  gլ?g̓A?)r  r,   r,   )r  gEow?g;Kڞj?c                     t          j        ddd|          }t          |j        |d           |                    d          }t          |j        d	           t          |j        |d           d S )
Nr   r   r,  r  rz  rP   rQ   r  r  r   )r   r  r
   r   r  r   r  r  )r`   rz  rX  r  rp   r  s         rA   !test_confidence_interval_exact_k0z/TestBinomTest.test_confidence_interval_exact_k0W  sx     oatEEE
Dt444455RVS!!!t444444rC   zalternative, pval, ci_low))r  r,   r   )r  6>g@>}_?)r  r%  gcڒ ?c                     t          j        ddd|          }t          |j        |d           |                    d          }t          |j        d           t          |j        |d           d S )	Nr   r,  r#  rP   rQ   r  r  r,   )r   r  r
   r   r  r   r  r  )r`   rz  rX  r  rp   r  s         rA   %test_confidence_interval_exact_k_is_nz3TestBinomTest.test_confidence_interval_exact_k_is_nd  sx     ob"+FFF
Dt444455RWc"""T222222rC   z+k, alternative, corr, conf, ci_low, ci_high)r   r  Tr  g`?g?)r   r  Tr5   grt!?g/?)r   r  Fr  gVK5?g5dM?)r   r  Fr5   gXCVu^?g*r[?)r   r  Tr  r   gP-V?)r   r  Tr5   r   g^'?)r   r  Fr  r   gS5a?)r   r  Fr5   r   g?)r   r  Tr  g!Շ`ⰸ?r,   )r   r  Tr5   g$x"?r,   )r   r  Fr  gW~=?r,   )r   r  Fr5   g	L?r,   )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   r,   )r   r  Fr  r   r,   )r   r  Tr  g7?r,   )r   r  Fr  g؍s?r,   )r   r  Tr  r   r,   )r   r  Fr  r   r,   )r   r  Tr  ghadn?r,   )r   r  Fr  gAB/?r,   c                     t          j        |dd|          }|rd}nd}|                    ||          }	t          |	j        |	j        f||fd           d S )	Nr   rL  r  wilsonccwilson)r  rt  rP   rQ   )r   r  r  r
   r  r  )
r`   r  rz  corrconfr  r  rp   rt  r  s
             rA   test_ci_wilson_methodz#TestBinomTest.test_ci_wilson_methodq  sq    > oa2+FFF 	FFFVDD)FG+<4HHHHHHrC   c                     t          j        ddd          }t          |j        d           t          |j        d           d S )Nr   r  r,  r,   )r   r  r   r]   r   r`   rp   s     rA   &test_estimate_equals_hypothesized_propz4TestBinomTest.test_estimate_equals_hypothesized_prop  sA     oaT**S]D)))SZ%%%%%rC   zk, n)r   r   )r   r   c                     t          j        t          d          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nz must be an integer not less thanr   r   r   rh   r   r  )r`   r  r  s      rA   test_invalid_k_nzTestBinomTest.test_invalid_k_n  s    ]:!CE E E 	" 	"OAq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   ?AAc                     t          j        t          d          5  t          j        ddd           d d d            d S # 1 swxY w Y   d S )Nz+k \(11\) must not be greater than n \(10\).r   r  r   r,  r2  ri   s    rA   test_invalid_k_too_bigz$TestBinomTest.test_invalid_k_too_big  s    ]:!OQ Q Q 	* 	*OBD)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A  AAc                     t          j        t          d          5  t          j        ddgdd           d d d            d S # 1 swxY w Y   d S )Nzk must be an integer.r   r   r  rF  r,  )r   r   	TypeErrorr   r  ri   s    rA   test_invalid_k_wrong_typez'TestBinomTest.test_invalid_k_wrong_type  s    ]9!8: : : 	0 	0ORHb$///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0   AA	Ac                 8   d}t          j        t          |          5  t          j        ddd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        ddd           d d d            d S # 1 swxY w Y   d S )	Nzp \(-0.5\) must be in range...r   r            ࿩r  zp \(1.5\) must be in range...r  r2  ro  s     rA   test_invalid_p_rangez"TestBinomTest.test_invalid_p_range  s   3]:W555 	- 	-OBt,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-2]:W555 	, 	,OBs++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s#   AA	A*BBBc                     t          j        ddd          }d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )	Nr   r   rL  r  z/confidence_level \(-1\) must be in the intervalr   r   r  r   r  r   r   rh   r  )r`   rp   rM  s      rA   test_invalid_confidence_levelz+TestBinomTest.test_invalid_confidence_level  s    oa2---D]:W555 	3 	3r222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   AA Ac                     t          j        ddd          }t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )	Nr   r   rL  r  z$method \('plate of shrimp'\) must ber   zplate of shrimprs  r@  r/  s     rA   test_invalid_ci_methodz$TestBinomTest.test_invalid_ci_method  s    oa2---]:-TUUU 	8 	8%6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8   AAAc                     t          j        t          d          5  t          j        dddd           d d d            d S # 1 swxY w Y   d S )Nzalternative \('ekki'\) not...r   r   r   rL  ekkir  r2  ri   s    rA   test_invalid_alternativez&TestBinomTest.test_invalid_alternative  s    ]:-MNNN 	@ 	@OAs????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@r9  c                 h    t          j        ddd          }t          |j        |j                   d S )Nr   r   rL  r  )r   r  r   proportion_estimater]   r/  s     rA   
test_aliaszTestBinomTest.test_alias  s3    oa2---S,cm<<<<<rC   l        z32-bit does not overflowrn  c                     t          j        t          d          5  t          j        ddt
          j        j                   d d d            d S # 1 swxY w Y   d S )NzError in function...r   r   rH   r=  )r   r   OverflowErrorr   r  sys
float_infor  ri   s    rA   test_boost_overflow_raisesz(TestBinomTest.test_boost_overflow_raises  s     ]=0FGGG 	8 	8OAqCN$67777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   'AAAN)rs   rt   ru   __doc__r  r  r  r  r   r   r   r  r!  r$  r'  r-  r0  r3  r5  r8  r>  rA  rC  rG  rJ  skipifrM  maxsizerO  rv   rC   rA   r  r    s       $$@ @ @7 7 7"2 2 2+ + +@ [AH H HI IJ JI IJ [AF F FG GI IG GI [9D D DE E5 5	E E5 [8F F FG G3 3	G G3 [5	=	=	=	;	;	;	<	<	<	=	=	=	0	0	0	0	0	0	1	1	1	1	1	1	4	4	4	4	4	4	4	4	4	5	5	5	5	5	5	6	6	6	0	0	0	0	0	0	-	-	-	.	.	.	6	6	6	7	7	7	+	+	+	,	,	,	4	4	4	4	4	43	6 :I I; :I& & & [Vfg%677" " 87"
* * *
0 0 0
, , ,3 3 38 8 8
@ @ @= = = [u,5OPP8 8 QP8 8 8rC   r  c                      e Zd ZddZej                            dg d          d             Zd Zej        	                    dd	          d
             Z
d Zd Zd Zej        	                    dd          d             ZdS )TestFligner   \v7F c                     t           j                            |          }t          j        |          d|                    t          |                    z  z                                   S )Nr  )r;   ra  rb  r  r   r  tolist)r`   gre  s      rA   _perturbzTestFligner._perturb  sO    i##C((
1(;(;CFF(C(C CCKKMMMrC   r  r  c                    t          |          r%|dk    r|j        dk     rt          j        d           |t	          |          nt          ||          }|                    d|          }t          j        ||dz            }|	                    d|          |	                    d|          f}t          |d	         |d	                    t          |d
         |d
                    d S )Nr  2r  r   r  r   gnf	@gDq?r   r   )r"   r  r   r  r#   rc  rm   r   flignerr  r$   )r`   r  rV  r   rp   r   s         rA   r  zTestFligner.test_data  s    B<< 	FEY..2>C3G3GKDEEE(- $$$72u;M;MYYqY&&mBA&&zz,Ez::zz.ez<<>AA'''AA'''''rC   c                    t           j                            d          }|                    |                     t
          |                    }|                    |                     t          |                    }|                    |                     t          |                    }t          j	        |||d          \  }}t          j	        |||dd          \  }}	t          ||           t          ||	           d S )Nl   !Cj"	 rz  rb   r  r  r   r  )r;   ra  rb  r  rY  r  r  r  r   r\  r$   )
r`   rV  re  g1_g2_g3_Xsq1r  Xsq2r  s
             rA   r  zTestFligner.test_trimmed1  s     i##J//jjrs3344jjrs3344jjrs3344 mCc&AAAemCc)479 9 9ed###u%%%%%rC   Tz)inconsistent tie-breaking across backendsnp_onlyro  c           
      ^   t           t          t          t          t          t
          t          t          t          t          g
}fd|D             }t          j        |ddd\  }}t          |                    d          d           t          |                    d          d           d S )	Nc                 H    g | ]}                     |j                   S r  r  r  rs  s     rA   r   z:TestFligner.test_trimmed_nonregression.<locals>.<listcomp>  +    BBBc

3bj
11BBBrC   r  r,  r  gP:/@vIh%,=rQ   gs4@S_?)r  r  r  r  r  r  r  r  r  r  r   r\  r$   r  r  s    `   rA   test_trimmed_nonregressionz&TestFligner.test_trimmed_nonregression  s     BBBBC8BBBBTBBB-iNNN42::&899FFFFbjj)<==EJJJJJJrC   c           
          t           j                            d          t          t          t
          t          t          t          t          t          t          t          g
} fd|D             }t          j        |ddd}fd|D             }t          j        |ddd}t          |j                            |j                  d           t          |j                            |j                  d           d S )	Nl   7m@ c                 >    g | ]}                     |           S )rz  )rY  )r   rt  re  r`   s     rA   r   z8TestFligner.test_trimmed_consistency.<locals>.<listcomp>  s)    <<<cs++<<<rC   r  r,  r  c                 H    g | ]}                     |j                   S rg  rh  rs  s     rA   r   z8TestFligner.test_trimmed_consistency.<locals>.<listcomp>	  ri  rC   rj  rQ   )r;   ra  rb  r  r  r  r  r  r  r  r  r  r  r   r\  r$   r]   r  r   )r`   rV  r?   r   rp   re  s   ``   @rA   test_trimmed_consistencyz$TestFligner.test_trimmed_consistency  s    i##J//BBBBC8<<<<<t<<<mT)TJJJBBBBTBBBmT)TJJJrzz#-'@'@uMMMM
BJJsz$:$:GGGGGGrC   c                     |                     ddd          }d}t          j        t          |          5  t	          j        ||d           d d d            d S # 1 swxY w Y   d S r  )r1  r   r   rh   r   r\  r  s       rA   r  z!TestFligner.test_bad_center_value  s    KKAr""A]:W555 	/ 	/M!Qv....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/r  c                     d}t          j        t          |          5  t          j        |                    ddg                     d d d            d S # 1 swxY w Y   d S )Nr  r   r   r   )r   r   rh   r   r\  r  r  s      rA   test_bad_num_argszTestFligner.test_bad_num_args  s    6]:W555 	. 	.M"**aV,,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   *AAArm  lazy -> no _axis_nan_policyrn  c                    |                     d          }t          j        t          t                    5  t          j        ||dz  |                    g                     }d d d            n# 1 swxY w Y   t          |j	        |                    |j
                             t          |j        |                    |j
                             d S )N      @r   r   )rm   r   r   r   r   r   r\  r  r%   r]   r   r   r`   rV  rn   rp   s       rA   r  zTestFligner.test_empty_arg  s    IIbMM\,4IJJJ 	9 	9-1a4B88C	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9rzz"&'9'9:::
BJJrv$6$677777s   -A//A36A3N)rU  )rs   rt   ru   rY  r   r   r   r  r  r  rk  ro  r  rr  r  rv   rC   rA   rT  rT    s       N N N N
 [W&B&B&BCC
( 
( DC
(& & & [!!$)T " V V	K 	KV V	K	H 	H 	H/ / /. . . [!!+6S!TT8 8 UT8 8 8rC   rT  c               #     K   g d} g d}t          |          D ]\  }}t          j                            |          }|                    d          }|                    ddd          }|                    ddd          }t          ||          D ])\  }}	t          |dz   ||	z             D ]}
||         ||
<   *|                    |           t          j        |d	          \  }}||d
g| |         R V  d S )N))g]YCgQɣ?)gme5gϵ5?)g;jgH?)iFeiHcMi%:r   r   r\  r   )r  r  r   r   r   r  )		enumerater;   ra  rb  r  ziprangeshufflesplit)expected_resultsseedssir  re  xytie_indnum_ties_per_indrq   r  jrn   rE  s                rA   mood_cases_with_tiesr  #  s;     @ @ @ .--Ee$$ 2 2Di##D))ZZ__,,12A,66<<AAA<>>!122 	 	DAq1q5!a%((  11 	BxA1F1-b11111112 2rC   c                   j   e Zd Zej                            d e                      d             Zej                            dg d          ej                            dg d          d                         Zej        	                    dd	
          d             Z
ej        	                    dd	
          d             Zej        	                    dd	
          ej                            dd e            fdg          d                         Zej        	                    dd	
          ej                            dd e            fdg          d                         Zej        	                    dd	
          d             Zej                            dg d          d             ZdS )TestMoodz$x,y,alternative,stat_expect,p_expectc                 j   |                     |                                          |                     |                                          }}t          j        |||          \  }}t	          ||                     |          d           t	          ||                     |          d           dS )am  
        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;
        ry  gؗҜ<r4  N)r  rW  r   moodr$   )	r`   rn   rE  rz  stat_expectp_expectrV  r]   r   s	            rA   test_against_SASzTestMood.test_against_SAS=  s    < zz!((**%%rzz!((**'='=1!Jq!EEE	6	2::k#:#:GGGG

8 4 45AAAAAArC   r  r  zalternative, expected))r  )3oXQ?gpL?)r  )r  gԣl?)r  )r  gpL?c                 
   t          |          r%|j        dk     r|dk    rt          j        d           |t	          |          nt          ||          }g d}g d}|                    ||          |                    ||          }}t          j        |||          }t          |j
        |                    |d         |                     t          |j        |                    |d	         |                     d S )
Nr  r  !Pre-NEP 50 doesn't respect dtypesr[  rc  r  ry  r   r   )r"   r  r   r  r#   rc  r  r   r  r$   r]   r   )r`   r  rz  r  rV  rn   rE  rp   s           rA   test_against_SAS_2zTestMood.test_against_SAS_2`  s    B<< 	=BNU22u	7I7IK;<<<(- $$$72u;M;M< < <= = =zz!5z))2::au:+E+E1jA;777rzz(1+Uz'K'KLLL
BJJx{%J$H$HIIIIIrC   rm  rs  rn  c                    t           j                            d          }|                    |                    d                    }|                    |                    d                    }t          j        ||          \  }}t          j        ||          \  }}t          ||            t          ||           d S )Nr  )r   r   )rl   r   )r;   ra  rb  r  r   r   r  r$   )	r`   rV  re  r   r   z1p1z2p2s	            rA   test_mood_order_of_argsz TestMood.test_mood_order_of_argsv  s     i##J//ZZ++G4455ZZ++G4455B##BB##BRC   BrC   c                    g d}g d}|                     |                    |          d          }|                     |                    |          d          }t          j        ||d           }t	          |j        |                    d                     t	          |j        |                    d                     d S )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   )rl   r   r  g4g^}E	?)reshaper  r   r  r$   r]   r   )r`   rV  r   r   rp   s        rA   test_mood_with_axis_nonez!TestMood.test_mood_with_axis_none  s    4 4 4	H 	H 	H ZZ

200ZZ

200jRd+++rzz.'A'ABBB
BJJ}$=$=>>>>>rC   zrng_method, argsr   )r  )rL   c                 p   d}t           j                                        }t          ||          } ||dd|fi} ||dd|fi}|j        }t          j        |                    ||          |                    ||                    }	t          |          D ]}
t          j        |d d |
f         |d d |
f                   }t          |	j
        |
         |                    |j
                             t          |	j        |
         |                    |j                             |                                }|                                }t          j        |                    ||          |                    ||          d          }	t          |          D ]}t          j        ||d d f         ||d d f                   }t          |	j
        |         |                    |j
                             t          |	j        |         |                    |j                             d S )Nr   r   r   rl   r  r   r  )r;   ra  rb  rc  r  r   r  r  rz  r$   r]   r   	transpose)r`   
rng_methodr?   rV  nyre  r   r   r  rp   r  r   rq   s                rA   test_mood_2dzTestMood.test_mood_2d  s    i##%%S*--
Z-RH--Z-RH--
jBe44bjj5j6Q6QRRr 	C 	CA*R1Xr!!!Q$x00CCM!,bjj.G.GHHHCJqM2::cj+A+ABBBB \\^^\\^^jBe44bjj5j6Q6Q! ! ! r 	C 	CA*R111Xr!QQQ$x00CCM!,bjj.G.GHHHCJqM2::cj+A+ABBBB		C 	CrC   c                 :   d}t           j                            d          }t          ||          }|                     ||d|i          }|                     ||d|i          }t          d          D ]"}t          j        |||          }	ddgddgddgf}
t          ||
|         d                            D ]}t          ||
|         d                            D ]}|dk    r|d d ||f         }|d d ||f         }n;|dk    r||d d |f         }||d d |f         }n|||d d f         }|||d d f         }t          j        ||          }t          |	j	        ||f         |j	                   t          |	j
        ||f         |j
                   ܐ$d S )	N)r   r   rH   l   |n- r   r   r  r   r   r   )r;   ra  rb  rc  r  rz  r   r  r$   r]   r   )r`   r  r?   rV  r  re  r   r   r   rp   axes_idxrq   r  slice1slice2r   s                   rA   test_mood_3dzTestMood.test_mood_3d  s    i##J//S*--
ZZ

D5u5566ZZ

D5u5566!HH 	B 	BD*R$///C AAA/H5$!2344 B BuXd^A%6788 B BAqyy!#AAAq!G!#AAAq!G!#Aqqq!G!#Aqqq!G!#Aq!!!G!#Aq!!!G*VV44C#CM!Q$$7GGG#CJq!t$4cjAAAABB	B 	BrC   c                    t          j        t          t                    5  t	          j        |                    dg          |                    g                     }t          |j        |                    t          j
                             t          |j        |                    t          j
                             d d d            d S # 1 swxY w Y   d S )Nr   r,   )r   r   r   r   r   r  r  r%   r]   r;   r   r   r`   rV  rp   s      rA   test_mood_bad_argzTestMood.test_mood_bad_arg  s     \,4IJJJ 	< 	<*RZZ--rzz"~~>>CCM2::bf+=+=>>>CJ

26(:(:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   B!CCCc                    t          |          r%|j        dk     r|dk    rt          j        d           |t	          |          nt          ||          }t          j                            d          }t          j
                            dd|          }t          j
                            dd|          }|                    ||	          |                    ||	          }}t          j        ||d
          \  }}t          j        ||d          \  }}	t          j        ||d          \  }
}||cxk    r|
k    sn J t          ||                    d|	          d           t          |	|                    |dz  |	                     t          ||                    d|dz  z
  |	                     t          j        t           d          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr  r  r  r         ?r   )r   r   r   g      ?r  r  ry  r  r  r   Hz>r4  r   r   z`alternative` must be...r   rr  )r"   r  r   r  r#   rc  r;   ra  r   r   r   r>   r  r  r$   r   rh   )r`   r  rV  re  rn   rE  stat1r  stat2r  stat3p3s               rA   test_mood_alternativezTestMood.test_mood_alternative  s=   B<< 	=BNU22u	7I7IK;<<<(- $$$72u;M;Mi##A&&JNNCcNBBJNNCcNBBzz!5z))2::au:+E+E1Jq!===	rJq!888	rJq!;;;	r&&&&&&&&&&BJJrJ77dCCCCBJJr!t5J99:::BJJq2a4xuJ==>>>]:-GHHH 	6 	6Jq!5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   H  HHN)rs   rt   ru   r   r   r   r  r  r  r  r  r  r  r  r  r  r  rv   rC   rA   r  r  ;  s{       [C11335 5B B5 5BB [W&B&B&BCC[4@ @ @A AJ JA A DCJ [!!+6S!TT	  	  UT	  [!!+6S!TT? ? UT?6 [!!+6S!TT[/3Deegg2N2D2F G GC CG G UTC8 [!!+6S!TT[/3Deegg2N2D2F G GB BG G UTB: [!!+6S!TT< < UT< [W&B&B&BCC6 6 DC6 6 6rC   r  c                   ~    e Zd Zd Zd Zd Zej                            e	 d          d             Z
d Zd Zd	 Zd
S )TestProbplotc                 @   t           j                            dd          }t          j        |d          \  }}g d}t	          |t          j        |                     t	          ||           t          j        |d          \  }}g d}t	          ||           d S )	Nr  90  r`  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   r>   probplotr
   r;   sort)r`   rn   osmosrosm_expectedrp   res_fitres_fit_expecteds           rA   re   zTestProbplot.test_basic  s    JNNN77>!///SG G G
 	RWQZZ(((\***~aT222W???!122222rC   c                    t           j                            dd          }t          j        |d d          \  }}t          j        |dd          \  }}t          j        |dd          \  }}t	          ||           t	          ||           t	          ||           t	          ||           t          j        |dd          \  }}	d S )Nr   i@ r`  Fsparamsr
  r   rv   )r   r   r>   r  r
   )
r`   rn   osm1osr1osm2osr2osm3osr3r  r  s
             rA   test_sparams_keywordz!TestProbplot.test_sparams_keyword  s    JNN&N99 ^At???
d^Aqe<<<
d^Aru===
dd###d###d###d###>!RU;;;SSSrC   c                 b   t           j                            dd          }t          j        |ddd          \  }}t          j        |dt           j        d          \  }}t          ||           t          ||           t          t          t           j        |d	           t          t          t           j        |g 	            G d
 d          }t          j        |dd          \  }}t          j        | |            d          \  }}t          ||           t          ||           d S )Nr  r  r`  Ft)r   )r
  r  r  zwrong-dist-namer  c                       e Zd ZdZd ZdS )3TestProbplot.test_dist_keyword.<locals>.custom_distz6Some class that looks just enough like a distribution.c                 D    t           j                            |d          S )Nr   )r   )r   r   ppf)r`   qs     rA   r  z7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppf(  s    z~~aQ~///rC   N)rs   rt   ru   rP  r  rv   rC   rA   custom_distr  &  s)        HH0 0 0 0 0rC   r  )r   r  )r  r
  )	r   r   r>   r  r  r
   rg   rh   AttributeError)r`   rn   r  r  r  r  r  s          rA   test_dist_keywordzTestProbplot.test_dist_keyword  s0   JNNN77^A5sDIII
d^A5uwMMM
dd###d###j%.!:KLLLLnenabAAAA	0 	0 	0 	0 	0 	0 	0 	0
 ^At???
d^AKKMMuEEE
dd###d#####rC   no matplotlibrn  c                    t          j                    }|                    d           t          j                            ddd          }t          j        |t                     \  }}t          j                     t          j        |d           \  }}t          j        |dt                     }t          j                     t          j        |dd           }t          t          |          t          |          cxk    o-t          |          cxk    ot          |          cxk    od	k    nc            t          ||           t          ||           t          ||           t          ||           t          j                    }|                    d          }	t          j        |d|	           t          j                     d S )
Nr  r   r   t r`  plotF)r
  r  r   )pltfigureadd_subplotr   r  r>   r  closer	   r  r
   )
r`   figrn   res1fitres1res2fitres2res3res4axs
             rA   test_plot_kwargzTestProbplot.test_plot_kwarg0  s   jllGKK'K::qs333g	qt444g~aU555	~aU666 	D		SYYEEEE#d))EEEEs4yyEEEEAEEEEFFFd###d###d###))) jll__S!!qe"----	rC   c                 L    t          t          t          j        dgd           d S r  )rg   rh   r   r  ri   s    rA   test_probplot_bad_argsz#TestProbplot.test_probplot_bad_argsI  s$    j%.1#<MNNNNNNrC   c                 `   t          t          j        g d          t          j        g           t          j        g           f           t          t          j        g d          t          j        g           t          j        g           ft          j        t          j        dff           d S )NFr  Tr   )r   r   r  r;   r6  r   ri   s    rA   
test_emptyzTestProbplot.test_emptyM  s    U^BE222hrllBHRLL1	3 	3 	3U^BD111x||RXb\\2vrvs+-	. 	. 	. 	. 	.rC   c           	         d}t          j        d          5  t          j        t          |          5  t          t          j        dgd          t          j        dg          t          j        dg          ft           j	        t           j	        t           j	        ff           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	N,One or more sample arguments is too small...r  invalidr   r   Tr  r   )
r;   r  r   r   r   r   r   r  r6  r   ro  s     rA   test_array_of_size_onez#TestProbplot.test_array_of_size_oneT  s?   @k(+++ 	5 	5l-W===	5 	56668RD>>28QC==962626245 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s5   C	A1B1%C	1B5	5C	8B5	9C		CCN)rs   rt   ru   re   r  r  r   r   rQ  have_matplotlibr  r  r  r  rv   rC   rA   r  r    s        3 3 3< < <$ $ $( [O+ODD  ED0O O O. . .5 5 5 5 5rC   r  c                      e Zd Zd Zd Zd Zd Zd Zej	        
                    dddid	did	d
ig          d             Zd Zd Zd Zej	        
                    dg d          d             Zd Zej	        
                    dg d          d             Zej	        
                    dg dg dg dg          d             Zd Zej	        j        ej	                            d          d                         Zej	        
                    dg d          ej	                            d          d                         Zd  Zej	        
                    dd!d
g          d"             Zej	        
                    dd! ej                    f          d#             Zej	                            d$d%&          d'             Zd(S ))TestWilcoxonc                 ,   |                     ddg          }|                     dgdz            }d}t          j        t          |          5  t	          j        ||d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t	          j        ||d	           d d d            n# 1 swxY w Y   d
}t          j        t          |          5  t	          j        |d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   z`zero_method` must be one of...r   zdummy...z`alternative` must be one ofdummyry  z`method` must be one of...xyzrs  )r  r   r   rh   r   wilcoxon)r`   rV  rn   r  rM  s        rA   test_wilcoxon_bad_argz"TestWilcoxon.test_wilcoxon_bad_arg_  s    JJ1vJJs2v3]:W555 	- 	-N1a,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-0]:W555 	6 	6N1aW5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6.]:W555 	, 	,N1U++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s6   A11A58A5B==CC%D		DDc                    |                     d          }t          j        d          5  t          j        ||dd          \  }}t          ||                    d                     t          ||                    |j                             t          j        ||dd          \  }}t          ||                    d                     t          ||                    |j                             d d d            n# 1 swxY w Y   t          j        ||d	d          \  }}t          ||                    d
                     t          ||                    d                     d S )Nr  r  r  wilcox
asymptoticrs  r   prattzsplitg     @Z@r,   )rm   r;   r  r   r  r%   r  r   )r`   rV  rn   r   r  s        rA   test_zero_diffzTestWilcoxon.test_zero_diffn  s}   IIbMM [*** 	3 	3>!QFFFDAqArzz#///Arzz"&11222>!QEEEDAqArzz#///Arzz"&11222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 ~aH\BBB12::g..///2::c??+++++s   CDDDc                 4   |                     g d          }|                     g d          }t          j        ||ddd          }t          |j        |                     d                     t          |j        |                     d                     d S )	Nrk  )r   r   r   r   r  r  F)zero_methodrt  
correctionr   g|N?)r  r   r  r$   r]   r   )r`   rV  rn   rE  rp   s        rA   
test_prattzTestWilcoxon.test_pratt~  s     JJ|||$$JJ|||$$nQw|(-/ / /rzz#777
BJJ/B$C$CDDDDDrC   c                     g d}t          j        |dd          }t          j        |dd          }t          j        |dd          }d S )N)r   r   r   r   r   r   r   r   r   r   r   r  r  )r  rt  r  r  )r   r  )r`   arrr3  s      rA   test_wilcoxon_arg_typez#TestWilcoxon.test_wilcoxon_arg_type  sU     100N3GLIIIN3H\JJJN3H\JJJrC   c           	         g d}t          dd          }|                    t          j        d t	          ||          D                                 }|                    |          }t          j        ||ddd          \  }}t          ||                    d	                     t          ||                    d
                     t          j        ||ddd          \  }}t          ||                    d                     t          ||                    d                     t          j        ||ddd          \  }}t          ||                    d                     t          ||                    d                     |                    g d          }|                    g d          }t          j        ||dd          \  }}t          ||                    d                     t          ||                    d                     t          j        ||dd          \  }}t          ||                    d                     t          ||                    d                     d S )N)	r   r   r  rl   rL   r   r   r   r   r   c                      g | ]\  }}|g|z  S rv   rv   )r   ur   s      rA   r   z7TestWilcoxon.test_accuracy_wilcoxon.<locals>.<listcomp>  s"    &K&K&K41asQw&K&K&KrC   r  r  Frt  r  g     pz@g.i?r  g     {@gFYv]Uj?r  g     pt@g%^ Ez?r  rf  r  r        y   r     r`     p         w   r+  r	     r*  r`  s   r  r     r  rt  r  g[ӂ<?TgzM+?)
rz  r  r;   concatenatery  
zeros_liker   r  r$   r%   )r`   rV  freqnumsrn   rE  r  r  s           rA   test_accuracy_wilcoxonz#TestWilcoxon.test_accuracy_wilcoxon  sU   ,,,R||JJr~&K&K3tT??&K&K&KLLMMMM!~aGL).0 0 012::d++,,,2::&;<<===~aH\).0 0 012::d++,,,2::&;<<===~aH\).0 0 012::d++,,,2::&677888
 JJSSSTTJJSSSTT~au\JJJ12::c??+++2::&899:::~atLIII12::c??+++2::&899:::::rC   kwargrt  approxmoder  c                 "   |                     g d          }|                     g d          }t          j        ||dfi |}t          j        ||dd          }t          |j        |j                   t          |j        |j                   d S )N)r   r   r  rK      r  r  r   rL   r2  rI   r  )r   r   r   r  r   r   rJ   r  r\  rJ      rI  r  r  rs  )r  r   r  r%   r]   r   )r`   r  rV  rn   rE  rp   r   s          rA   test_approx_modezTestWilcoxon.test_approx_mode  s    
 JJBBBCCJJCCCDDnQ855u55nQ8LAAAs}555
CJ/////rC   c                     |                     g d          }|                     g d          }t          j        ||dd          }d}t          |||           d S )Nr  r
  Fr  r  r  r  )r  r   r  r   )r`   rV  rn   rE  rp   ro   s         rA   test_wilcoxon_result_attributesz,TestWilcoxon.test_wilcoxon_result_attributes  sj    JJSSSTTJJSSSTTnQeLIII,
C333333rC   c                    t           j                            d          }|                    d          |                    d          }}|                    |          |                    |          }}t	          j        ||d          }t          j        |j        dz            }t          |j
        |           t	          j        ||d          }t          |d          rJ t	          j        ||          }t          |d          rJ d S )Nl   	m$S rl   r  rs  r   exact
zstatistic)r;   ra  rb  r  r   r  r   ndtrir   r$   r"  rD  )r`   rV  re  rn   rE  rp   r   s          rA   test_wilcoxon_has_zstatisticz)TestWilcoxon.test_wilcoxon_has_zstatistic  s    i##K00zz"~~szz"~~1zz!}}bjjmm1nQ,777mCJqL)),,,nQ'2223-----nQ""3-------rC   c                    |                     dgdz            }|                     d          }t          j        |dd          \  }}|                     d          }t          ||           t	          ||           t          j        |dd          \  }}|                     d	          }t          ||           t	          ||           d S )
NrL  r   r   r  Fr  g4ťY?TgD2_?)r  r   r  r%   r$   )r`   rV  r  expected_statstatr  
expected_ps          rA   test_wilcoxon_tiezTestWilcoxon.test_wilcoxon_tie  s     JJurz""

3.<EJJJaZZ 455
m,,,:&&&.<DIIIaZZ 344
m,,,:&&&&&rC   r  r  c                    t          |          r%|j        dk     r|dk    rt          j        d           ||nt	          ||          }|                    g d|          }|                    g d|          }|                    d|          }t          j        ||dd	d
          \  }}t          ||           t          ||                    d|                     t          j        ||ddd	          \  }}t          ||           t          ||                    d|                     t          j        ||dd	d
          \  }}t          ||           t          ||                    d|                     t          j        ||ddd	          \  }}t          ||           t          ||                    d|                     d S )Nr  r  z*dtypes not preserved with pre-NEP 50 rules)
}   r  r     r,  r  r,  r+  r,  r,  r  )
rb  z   r+  r  r,  |   r     r,           ;@r  r  F)rz  rt  r  g}5}?T)rz  r  rt  gfh%?r  g?gNCJT?)
r"   r  r   r  rc  r  r   r  r%   r$   )r`   r  rV  rn   rE  w_refr   r  s           rA   test_onesidedzTestWilcoxon.test_onesided  s     B<< 	FBNU22u	7I7IKDEEEGB,>,>JJIIIQVJWWJJIIIQVJWW

4u
--~a|).0 0 015!!!2::oU:CCDDD~a4%13 3 315!!!2::m5:AABBB~a	%1eE E E15!!!2::oU:CCDDD~a	)-lD D D15!!!2::oU:CCDDDDDrC   c                    t          dd          D ]v}t          |          }t          |          }t          ||dz   z  dz  dz   t	          |                     t          t          |          d           t          ||           wd S )Nr   r  r   )rz  r   r   r   r  r  r   )r`   r  pmf1pmf2s       rA   test_exact_basiczTestWilcoxon.test_exact_basic  s    q" 	2 	2A&q))D'**DAaCQD		222TA&&&%dD1111	2 	2rC   c                    ||nt          ||          }|                    g d|          }|                    g d|          }t          j        ||dd          \  }}t	          ||                    d|                     t          j        ||dd          \  }}t	          ||                    d	|                     t          j        ||d
d          \  }}t	          ||                    d|                     |                    dd|          dz   }|                    ddd|          }t          j        ||dd          \  }}t	          ||                    d|                     t          j        ||dd          \  }}t	          ||                    d|                     t          j        ||d
d          \  }}t	          ||                    d|                     d S )N)
g(\?g=
ףp=?g(\?gQ޿gQ?g{Gz?gp=
ףgq=
ףp?g      gQ?r  )
r   g?gɿg333333?皙gܿgzGgQοg(\gRQr  r!  rz  rt  g      ?r  g?  ?r  g      ?r   g      4@r+        g    ?g?g    ?)rc  r  r   r  r$   rm   )r`   r  rV  rn   rE  r3  r  s          rA   test_exact_pvalzTestWilcoxon.test_exact_pval  s    GB,>,>JJ % % %,1  3 3JJ & & &-2  4 4~aGLLL12::j:>>???~awGGG12::m5:AABBB~a	'JJJ12::k:??@@@IIb#UI++c1IIc2s%I00~aGLLL12::&8:FFGGG~awGGG12::&8:FFGGG~a	'JJJ12::&8:FFGGGGGrC   rn   )r   r   r   )r   r   r2  r  r   )r   r   r   r  r}  irK   rL   c                 d   t          j        |                    |                    \  }}t          j        |          }||dk                                             }t          ||                    t          |                               t          ||                    d                     d S Nr   r,   )r   r  r  r;   r6  r  r%   r  )r`   rn   rV  r   r  wtrues         rA   test_exact_p_1zTestWilcoxon.test_exact_p_1<  s     ~bjjmm,,1HQKK!a%2::eEll334442::c??+++++rC   c                 ~   |                     dd          dz   }|                     ddd          }t          t          j        ||          j        t          j        ||d          j                   t          |          ret          j                    }t          j         dd          }t          j        |          \  }}t          ||ft          j        ||                     |                     d	d
          }t          j        |          \  }}t          t          j        |d          j        |	                    |                     t          j        |          |dk                                 d          }t          j        |          \  }}t          t          j        |d          j        |	                    |                     |                     dd          }t          j        |          \  }}t          t          j        |d          j        |	                    |                     d S )Nr   g      I@r+  r;  r!  rs  r   r   r}  rI   r  r   r   r  )rm   r%   r   r  r   r"   r  r;   r   r  xpxatset)	r`   rV  rn   rE  pmr  r   r  r3  s	            rA   	test_autozTestWilcoxon.test_autoF  s   IIb#$IIc2s##q!,,3q!G<<<C	E 	E 	E B<< 		?(**B	"a  A>!$$DAq
 !Q"!=!=!=>>> IIb!~a  1q>>>ErzzRS}}UUUF1IIa1f!!!$$~a  1q>>>ErzzRS}}UUU IIa~a  1q>>>ErzzRS}}UUUUUrC   T)rd  c                    t          j        dd          }t          j        |                    |                    }|                    ddg          \  }}t          |j        |           t          |j        |           d||dk    <   t          j        |                    |                    }|                    ddg          \  }}t          |j        |           t          |j        |           d S )	Nr}  rL   g     ;@g     P?r   r   r  g     0?)r;   rm   r   r  r  r%   r]   r   )r`   rV  r  rp   r   r  s         rA   test_auto_permutation_edge_casez,TestWilcoxon.test_auto_permutation_edge_casef  s    
 Ib!nRZZ]]++zz4.//1q)))
A&&&!q&	nRZZ]]++zz2|,--1q)))
A&&&&&rC   r   )r   r   r   c                    t           j                            d          }|                    |                    |                    }t	          j        |t	          j                              }t	          j        |d          }t          |j        |j                   t          |j	        |j	                   |                    |                    |dz                      }t           j                            d          }t	          j        d|          }t	          j        ||          }t           j                            d          }t	          j        d|	          }t	          j        ||          }t          |
                    |j	        d
          |j	                   t          |j	        |j	                   d S )Nl   aQG1X@
r   rs  r!  r   l   VsWFr\  rx  )ry  r   r   )r;   ra  rb  r  r   r  r  r%   r]   r   r|  )r`   r   rV  re  rn   rp   r   rE  s           rA   test_permutation_methodz$TestWilcoxon.test_permutation_methodz  so    i##$566JJszztz,,--nQu'>'@'@AAAnQw///s}555
CJ///JJszztBwz//00i##$566$===nQr***i##$566$#FFFnQr***Q//<<<
CJ/////rC   c                    t           j                            d          }|                    d          }t           j        |d<   |                    |          }t          j        |          }t          j        |d          }t          |j	        |j	                   t          |j
        |j
                   t          |d          sJ t          |d          rJ d S )Nl   HF )Z )r  r   r   )r   r   r  rs  r"  )r;   ra  rb  normalr   r  r   r  r$   r]   r   rD  )r`   rV  re  r   rp   r   s         rA   6test_method_auto_nan_propagate_ND_length_gt_50_gh20591zCTestWilcoxon.test_method_auto_nan_propagate_ND_length_gt_50_gh20591  s     i##O44JJGJ$$&$JJqMMnQnQ|444s}555
CJ///sL)))))3-------rC   r!  c                    |                     g d          }|                     g d          }t          j        ||d|          }t          j        ||d|          }|j        d         |j        d         dz   z  dz  }t	          |j                  |j        k    sJ t          ||j        z
  |j                   t          |j        |j                   d S )	N)
r  r  rS  r  r@  r  r  r  r  rH  )
r  r  E   rS  rP  r  r  r  r  r  r  r:  r  r   r   r   )r  r   r  r  r	  r]   r$   r   )r`   rt  rV  var1var2r   rp   max_statistics           rA   test_symmetry_gh19872_gh20752z*TestWilcoxon.test_symmetry_gh19872_gh20752  s     zzBBBCCzzBBBCCnT4VFKKKnT4YvNNN
1A):;a?3=!!S]22225s}EEE
CJ/////rC   c                 ,   |dk    rt          j        d           t          j        |                    d          |          }t          |j        |                    d                     t          |j        |                    d                     d S )Nr!  z5PermutationMethod is NumPy-only until gh-23772 mergesr   rs  r   r,   )	r   r  r   r  zerosr$   r]   r  r   )r`   rt  rV  rp   s       rA   test_all_zeros_exactz!TestWilcoxon.test_all_zeros_exact  s|    
 WKOPPPnRXXa[[888rzz"~~666
BJJrNN33333rC   rm  zlazy->limited input validationrn  c                 >   |                     g d          }|                     g d          }d}t          j        t          |          5  t	          j        ||d d                    d d d            n# 1 swxY w Y   t          |          sd S d}t          j        t          |          5  t	          j        ||d d         d           d d d            n# 1 swxY w Y   t          t          d	d           pt          j	        j
        }d
}t          j        ||          5  t	          j        ||d           d d d            n# 1 swxY w Y   d}t          j        ||          5  t	          j        ||dd           d d d            d S # 1 swxY w Y   d S )Nr   r   r   rH   z/Array shapes are incompatible for broadcasting.r   r   z0operands could not be broadcast together with...T)_no_deco	AxisErrorz8source: axis 3 is out of bounds for array of dimension 1r   r  z+`axis` must be compatible with the shape...)r   rY  )r  r   r   rh   r   r  r"   rc  r;   
exceptionsrZ  )r`   rV  rn   rE  rM  rZ  s         rA   .test_wilcoxon_axis_broadcasting_errors_gh22051z;TestWilcoxon.test_wilcoxon_axis_broadcasting_errors_gh22051  s   
 JJyyy!!JJyyy!!C]:W555 	& 	&N1af%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& || 	FD]:W555 	5 	5N1aft4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 BT22Mbm6M	L]9G444 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) @]9G444 	8 	8N1aa$7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8sH   A66A:=A:/ CC"C%E		EE,FFFN)rs   rt   ru   r  r  r  r  r  r   r   r   r  r  r$  r)  r3  r7  r<  r@  rF  r  r  rH  rJ  rM  rS  r   r  rV  r\  rv   rC   rA   r  r  ]  s       , , ,, , , E E EK K K; ; ;B [W
H	1FL3IJL L0 0L L04 4 4. . .' ' ', [W&B&B&BCC$E $E DC$EL2 2 2 [W&B&B&BCCH H DCHD [S;;;#5#5#5#@#@#@#B C C, ,C C,V V V@ [[!!$!//' ' 0/ '$ [VZZZ00[!!$!//0 0 0/ 100(. . .$ [X'>??
0 
0 @?
0 [X1H1H1J1J'KLL4 4 ML4 [!!+6V!WW8 8 XW8 8 8rC   r  )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                       e Zd Zd Zej                            d          d             Zd Zej        	                    dddg          d             Z
ej        	                    d	g d
          d             ZdS )	TestKstatc                 ,   t           j                            d          }|                    |                    d          |j                  |                    fddD                       }|                    g dj                  }t          ||d           t          j
        d	
          }t          j
        d
          }t          j
        d
          }t          |                    |||f          |d d         dd           d S )Ni}  r  r  c                 :    g | ]}t          j        |          S rv   )r   kstat)r   r  ra   s     rA   r   z>TestKstat.test_moments_normal_distribution.<locals>.<listcomp>  s%    GGGQEKa00GGGrC   rk  )gHQ,?glZ)rI?g88}?gcJN?r0  rQ   r   )orderr   r   r   g{Gz?{Gz?r.  )r;   ra  r   r  randnr  stackr  r$   r   moment)	r`   rV  re  momentsr  m1m2m3ra   s	           @rA    test_moments_normal_distributionz*TestKstat.test_moments_normal_distribution  s   i##E**zz#))E**"*z==((GGGG,GGGHH::III$(J  0 05555 \$a(((\$a(((\$a((("b".."DtTTTTTTrC   r  c                    t          t          t          |          5  t          j        |                    g                     }d d d            n# 1 swxY w Y   t          ||                    |j                             d S Nr  )r    r   r   r   rb  r  r%   r   r  s      rA   rj   zTestKstat.test_empty_input  s    +3HRPPP 	. 	.+bjjnn--C	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.RZZ//00000s   (AAAc                     |                     d          }|                    |dk    |j        |          }t          t	          j        |          |                    |j                             d S NrS   rH   rm   wherer   r%   r   rb  r  r`   rV  ra   s      rA   r   zTestKstat.test_nan_input  Z    yy~~xx	26400D))2::bf+=+=>>>>>rC   r  r   g/$@c                     |                     d          }d}t          j        t          |          5  t	          j        ||           d d d            d S # 1 swxY w Y   d S )Nr   z'k-statistics only supported for 1<=n<=4r   r  )rm   r   r   rh   r   rb  )r`   r  rV  ra   rM  s        rA   test_kstat_bad_argzTestKstat.test_kstat_bad_arg  s     yy}};]:W555 	# 	#K""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#rD  case))r   gM~,@)r   2.L)@)r   gP'')r    -"bac                     |\  }}t          j        |                    t                    |          }t	          ||                    |                     d S r:   )r   rb  r  x_kstatr$   )r`   rx  rV  r  r   rp   s         rA   test_against_RzTestKstat.test_against_R  sJ     3k"**W--q11RZZ__-----rC   N)rs   rt   ru   rl  r   r   r2  rj   r   r   rw  r}  rv   rC   rA   r_  r_    s        U U U [ BCC1 1 DC1
? ? ? [S1e*--# # .-# [V &? &? &? @ @. .	@ @. . .rC   r_  c                       e Zd Zej                            d          d             Zd Z edd          d             Z	d Z
d	S )
TestKstatVarr  c                    |                     g           }t          t          t          |          5  t	          j        |          }d d d            n# 1 swxY w Y   t          ||                     |j                             d S rn  )r  r    r   r   r   kstatvarr%   r   rv  s       rA   rj   zTestKstatVar.test_empty_input  s    JJrNN+3HRPPP 	$ 	$.##C	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$RZZ//00000s   AAAc                     |                     d          }|                    |dk    |j        |          }t          t	          j        |          |                    |j                             d S rp  rq  rs  s      rA   r   zTestKstatVar.test_nan_input  rt  rC   Tz2input validation of `n` does not depend on backendrc  c                     dg}d}d}t          j        t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr   r   zOnly n=1 or n=2 supported.r   rv  )r   r   rh   r   r  )r`   rV  ra   r  rM  s        rA   r   zTestKstatVar.test_bad_arg%  s     s.]:W555 	& 	&N41%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   AAAc                    t          t                    }d}d}t          j        |                    t                    d          }||z  }t          ||                    |                     t          j        |                    t                    d          }d|dz  z  |z  |dz
  |z  z   ||dz   z  z  }t          ||                    |                     d S )Nry  rz  r   r   )r  r|  r   r  r  r$   )r`   rV  r  k2k4rp   r   s          rA   test_against_R_mathworldz%TestKstatVar.test_against_R_mathworld/  s    
 LLnRZZ00!441fRZZ__---nRZZ00!44QwqyAaC8#QqS	2RZZ__-----rC   N)rs   rt   ru   r   r   r2  rj   r   r  r   r  rv   rC   rA   r  r    s        [ BCC1 1 DC1? ? ? dQS S S& &S S&. . . . .rC   r  c                   x    e Zd Zd Zd Zd Zej                            e	 d          d             Z
d Zd Zd	S )
TestPpccPlotc                 :    t          ddd          dz   | _        d S Nr     r  r`  rB   rn   ri   s    rA   setup_methodzTestPpccPlot.setup_methodC  !    "13WEEEIrC   c                     d}t          j        | j        dd|          \  }}g d}t          |t	          j        dd|                     t          ||           d S )Nr   r   N)g9%	?gxM _?g";9?g®XZ?g?num)r   	ppcc_plotrn   r
   r;   r1  )r`   r  svalsppccppcc_expecteds        rA   re   zTestPpccPlot.test_basicF  sm    odfc2;;;t% % %r{3:::;;;m,,,,,rC   c                 f   t          j        | j        ddd          \  }}t          j        | j        ddt           j                  \  }}t	          ||d           t	          ||d           t          j        | j        dd          \  }}t	          ||d           t	          ||d           d S )Nr  r   tukeylambdar  g#B;rQ   )r   r  rn   r  r
   )r`   svals1ppcc1svals2ppcc2svals3ppcc3s          rA   	test_distzTestPpccPlot.test_distN  s    RmLLLR-2->@ @ @U3333u51111R88U3333u5111111rC   r  rn  c                 N   t          j                    }|                    d          }t          j        | j        ddt                      |                    |           |                    d          }t          j        | j        dd|           t          j                     d S Nr  ir  r  )r  r  r  r   r  rn   delaxesr  r`   r  r  s      rA   r  zTestPpccPlot.test_plot_kwargZ  s     jll__S!!Rc2222B __S!!Rb1111	rC   c                     t          t          t          j        | j        dd           t          t          t          j        g dddd           d S )Nr   r   r   r  r  )rg   rh   r   r  rn   ri   s    rA   test_invalid_inputsz TestPpccPlot.test_invalid_inputsg  sR    j%/461a@@@ 	j%/999a,	. 	. 	. 	. 	. 	.rC   c                     t          j        g dd          \  }}t          |t          j        ddd                     t          |t          j        dt                               d S )Nr   r   r  r  r  )r   r  r
   r;   r1  rU  r  )r`   r  r  s      rA   r  zTestPpccPlot.test_emptyo  sa     ob!Q//tr{1aR888999bhr77788888rC   N)rs   rt   ru   r  re   r  r   r   rQ  r  r  r  r  rv   rC   rA   r  r  B  s        J J J- - -
2 
2 
2 [O+ODD
 
 ED
. . .9 9 9 9 9rC   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestPpccMaxc                 P    dg}t          t          t          j        |d           d S r  )rg   rh   r   ppcc_maxr   s     rA   test_ppcc_max_bad_argz!TestPpccMax.test_ppcc_max_bad_argy  s)    sj%.$=NOOOOOOrC   c                     t           j                            ddddd          dz   }t          t          j        |          dd	
           d S )Nffffffr   r+  '   r        @{rK   rX   )r   r  r>   r   r  r`   rn   s     rA   test_ppcc_max_basiczTestPpccMax.test_ppcc_max_basic~  sX    !!$ASu/6 " 8 8:=>EN1--/CQOOOOOOrC   c                 T   t           j                            ddddd          dz   }t          j        |d	          }t          j        |t           j        	          }t	          |d
d           t	          |d
d           t          j        |          }t	          |d
d           d S )Nr  r   r+  r  r  r   r  r  r  r  r   rX   )r   r  r>   r  r   )r`   rn   max1max2max3s        rA   r  zTestPpccMax.test_dist  s    !!$ASu/6 " 8 8:=> ~am444~ae&7888D"6BBBBD"6BBBB ~a  D"6BBBBBBrC   c                 0   t           j                            ddddd          dz   }t          t          t           j        |d	           t          t          j        |d
	          dd           t          t          j        |d	          dd           d S )Nr  r   r+  r  r  r   r  )r   r,   r+  brack)r   r   r  rK   rX   r   r   )r   r  r>   rg   rh   r  r   r  s     rA   
test_brackzTestPpccMax.test_brack  s    !!$ASu/6 " 8 8:=>j%.!?KKKKEN1F;;;0!	= 	= 	= 	= 	EN1G<<<0!	= 	= 	= 	= 	= 	=rC   N)rs   rt   ru   r  r  r  r  rv   rC   rA   r  r  x  sY        P P P
P P P
C C C	= 	= 	= 	= 	=rC   r  c                       e Zd Zej                            dddg          d             Z edd          d             Zd	 Z	d
 Z
d Zd Zd ZdS )TestBoxcox_llfr  r  r  c                    t          ||          }t          j                            ddd          }d}t          j        ||                    ||                    }|j         dz  t          j        t          j	        |
                                dz                      z  }t          ||                    ||                     d S )	Nr  r   1  r   r   r   r   r         @r   )rc  r   r   r>   
boxcox_llfr  r   r;   r<   r  rd   r$   )r`   r  rV  dtrn   lmbdallfllf_expecteds           rA   re   zTestBoxcox_llf.test_basic  s    RJNN2ENBBubjj"j&=&=>>w|bfRVAEEGGQJ-?-?&@&@@RZZBZ??@@@@@rC   Tz,array-likes only accepted for NumPy backend.rc  c                     t           j                            ddd          }d}t          j        ||          }t          j        |t	          |                    }t          ||d           d S Nr   r   r  r  r   r  rQ   )r   r   r>   r  listr$   r`   rV  rn   r  r  llf2s         rA   test_array_likezTestBoxcox_llf.test_array_like  sg     JNN%N@@ua((tAww//T......rC   c                 H   t           j                            ddd          }d}t          j        ||          }t          j        |t	          j        ||g          j                  }t          |                    ||g          |                    |          d           d S r  )	r   r   r>   r  r;   vstackr  r$   r  r  s         rA   test_2d_inputzTestBoxcox_llf.test_2d_input  s     JNN%N@@ua((ry!Q'8'8':;;

C:..

40@0@uMMMMMMrC   c                    d}t          t          ||          5  |                    |                    t	          j        d|                    g                                         sJ 	 d d d            d S # 1 swxY w Y   d S Nr  r  r   )r    r   isnanr  r   r  r  s      rA   r  zTestBoxcox_llf.test_empty  s    @+7rBBB 	M 	M88BJJu'72::b>>'J'JKKLLLLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms   AA99A= A=c                     |                     g d          }t          j        d|          }t          ||                     d                     d S )N)g     h@      m@r  g     x@ig#:x1)r  r   r  r$   r`   rV  ra   r  s       rA   test_gh_6873zTestBoxcox_llf.test_gh_6873  sQ     zz66677r4((RZZ(:;;<<<<<rC   c                     |                     g d|j                  }t          j        d|          }t	          ||                     d|j                  d           d S )N)i  i  i  i  i  r  g:0yE>gl.gƠ>rQ   )r  r  r   r  r$   r  s       rA   test_instability_gh20021z'TestBoxcox_llf.test_instability_gh20021  so    zz888
zKKtT** 	RZZ(=RZZPP!	# 	# 	# 	# 	# 	#rC   c           
         |                     ddgddgg          }t          j        d|d          }|                    t          j        d|d d df                   t          j        d|d d df                   g          }t	          ||           t          j        d|d          }|                    t          j        d|dd d f                   t          j        d|dd d f                   g          }t	          ||           d S )Nr      i,  i  r   r   r  )r  r   r  rf  r$   )r`   rV  ra   
llf_axis_0llf_0
llf_axis_1llf_1s          rA   	test_axiszTestBoxcox_llf.test_axis  s   zzC:Sz233%aA666
QQQQT
++QQQQT
++
   	
E***%aA666
QQT
++QQT
++
   	
E*****rC   N)rs   rt   ru   r   r   r   re   r  r  r  r  r  r  r  rv   rC   rA   r  r    s         [Wy)&<==A A >=A dKM M M/ /M M/N N NM M M
= = =# # #+ + + + +rC   r  (  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            	          e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            dg d          d	             Zd
 Ze	j
                            dg d          d             Zd Ze	j
                            d ej        g d           ej        ej        ddg          g          d             Ze	j
                            d ej        g d           ej        g d           ej        g d          g          d             ZdS )
TestBoxcoxc                 f   t          ddd          dz   }t          j        |d          }t          ||dz
             t          j        |d          }t          |dd|z  z
             t          j        |d          }t          |t	          j        |                     t          j        t          |          d          }t          |t	          j        |                     t          j        t	          j        d	          d
          }t          |t	          j	        d	                     d S )Nr   r   r  r`  r   r  r   r   r   r   )
rB   r   r   r
   r;   r<   r  r   r   rU  )r`   rn   xts      rA   test_fixed_lmbdazTestBoxcox.test_fixed_lmbda	  s   abu===A\!1%%%AE"""\!2&&&A!G$$$\!1%%%BF1II&&& \$q''+++BF1II&&& \"'"++q))R"&&&&&rC   c                     d}t           j                            ddd          }||z  dz   | z  }t          j        |          \  }}t	          |d|z  d	           d S )
Ng      @r   iP  i  )r   r   r   r   r   r   rX   )r   r   r>   r   r   )r`   r  rn   x_invr  r   s         rA   test_lmbda_NonezTestBoxcox.test_lmbda_None*	  sh     JNNrDNAAUQ5&)\%((
FFBJ::::::rC   c                    t           j                            d          }t          dd|          dz   }t	          j        |d          \  }}}t          |ddg           t	          j        |d	          \  }}}t          |d
dg           t          dd|          dz   }t	          j        |d          \  }}}t          |ddg           t	          j        |d          \  }}}t          |ddg           d S )Ni  r   r   r`  r  )alphagx@gv[%@r  gxˉEk?g8Bhk @rK   r  rl   r1  g\?gx̡&@r/   g7(U@gp:sY@)r;   ra  r   rB   r   r   r
   )r`   re  rn   r3  r|   s        rA   
test_alphazTestBoxcox.test_alpha4	  s   i##D))abs;;;a? at4441h#46G"HIIIat4441h#57H"IJJJ ac<<<rAau5551h9k":;;;au5551h:z":;;;;;rC   c                 D   t          j        ddg          }t          t          t          j        |           t          t          t          j        t          j        dg                     t          t          t          j        t          j        dgdgg                     d S )Nr   r   r   )r;   r6  rg   rh   r   r   r  s     rA   test_boxcox_bad_argzTestBoxcox.test_boxcox_bad_argE	  ss    Hb!Wj%,222j%,!>>>j%,1#s0D0DEEEEErC   c                 Z    t          t          j        g           j        dk               d S N)r   )r	   r   r   r  ri   s    rA   r  zTestBoxcox.test_emptyN	  s(    R  &$./////rC   c                 b    t          j        t                    \  }}t          |dd           d S )NgsHjdrr   rQ   r   r   _boxcox_datar
   )r`   rE  lams      rA   r  zTestBoxcox.test_gh_6873Q	  s2    l++3 	YT222222rC   bounds)r   r   )r   r   )r   r9  c                     fd}t          j        t          d |          \  }}d         |cxk     rd         k     sn J d S )Nc                 2    t          j        | d          S Nbounded)r  rt  r   minimize_scalarfunr  s    rA   	optimizerzBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizer\	  $    +C3<> > > >rC   r  r  r   r   )r   r   r  )r`   r  r  r3  r  s    `   rA   $test_bounded_optimizer_within_boundsz/TestBoxcox.test_bounded_optimizer_within_boundsY	  sk    	> 	> 	> 	> 	> <DINNN5ay5,,,,6!9,,,,,,,,rC   c                     t          j        t          d           \  }}|dz   |dz   fddifd}t          j        t          d |          \  }}||k    sJ t          |d                    d S )	Nr  rL  r   xatolr  c                 4    t          j        | d          S )Nr  )r  rt  optionsr  )r  r  r	  s    rA   r  zPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizern	  s*    +C3<gO O O OrC   r  r   r  )r`   r3  r  r  lmbda_boundedr  r	  s        @@rA   2test_bounded_optimizer_against_unbounded_optimizerz=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizerc	  s    
 <D9995 #+uqy)E"	O 	O 	O 	O 	O 	O
 !<D2;= = ==%%%%vay11111rC   r  )strr   r   rL  c                     t          j        t          d          5  t          j        t
          d |           d d d            d S # 1 swxY w Y   d S )Nz`optimizer` must be a callabler   r  r   r   rh   r   r   r  r`   r  s     rA   $test_bad_optimizer_type_raises_errorz/TestBoxcox.test_bad_optimizer_type_raises_errorx	  s     ]:-MNNN 	H 	HLTYGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   AA
A
c                     d }d}t          j        t          |          5  t          j        t
          d |           d d d            d S # 1 swxY w Y   d S )Nc                     dS r   rv   )r  s    rA   r  zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizer	  s    1rC   z/return an object containing the optimal `lmbda`r   r  r  )r`   r  rM  s      rA   %test_bad_optimizer_value_raises_errorz0TestBoxcox.test_bad_optimizer_value_raises_error~	  s    
	 	 	 D]:W555 	H 	HLTYGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   AAAbad_x)r   ig@r  r   c                     d}t          j        t          |          5  t          j        |           ddd           dS # 1 swxY w Y   dS )zHTest boxcox_normmax raises ValueError if x contains non-positive values.z#only positive, finite, real numbersr   N)r   r   rh   r   boxcox_normmax)r`   r  rM  s      rA   "test_negative_x_value_raises_errorz-TestBoxcox.test_negative_x_value_raises_error	  s    
 8]:W555 	( 	( '''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   A  AArn   
     L@     x@     4@     @@     d@r  g     @g     <@g     \@g     @r  r  r  r  r  gFq$jgS	#jgGewa$jgVBi$jg[(>2$jc                     t          j        t          d          5  t          j        |          \  }}t          j        t          j        |                    sJ 	 d d d            d S # 1 swxY w Y   d S )NThe optimal lambda isr   )r   r   rU  r   r   r;   r  isfinite)r`   rn   xt_bclam_bcs       rA   test_overflowzTestBoxcox.test_overflow	  s     \+-DEEE 	. 	.!LOOME66"+e,,------	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   A A**A.1A.N)rs   rt   ru   r  r  r  r  r  r  r   r   r   r  r  r  r  r;   r6  r   r  r&  rv   rC   rA   r  r  	  s       ' ' '$; ; ;< < <"F F F0 0 03 3 3 [X'F'F'FGG- - HG-2 2 2* [[*>*>*>??H H @?H

H 
H 
H [hbh00011828RVRO3L3LM
 
( (
 
( [S : : : 	; 	; 	999::MMMNN#  . . . . .rC   r  c            
       l   e Zd Zd Zd Zd Zd Zej        	                    dg d          ej        	                    dg d          d	                         Z
ej        j        d
             Zd Zej        	                    dg dg df          d             Zd Zej        	                    d ej        g dej                   ej        g dej                   ej        g dej                   ej        g dej                  g          ej        	                    dg d          ej        	                    ddg          d                                     Zej        	                    dg dg dg          ej        	                    ddg          d                         ZdS )TestBoxcoxNormmaxc                 :    t          ddd          dz   | _        d S Nr   r   r  r`  r  ri   s    rA   r  zTestBoxcoxNormmax.setup_method	  !    "12EBBBQFrC   c                 \    t          j        | j                  }t          |dd           d S )Nm?rP   rQ   r   r  rn   r
   r`   r   s     rA   test_pearsonrzTestBoxcoxNormmax.test_pearsonr	  s/    %df--t444444rC   c                     t          j        | j        d          }t          |dd           t          j        | j                  \  }}t          ||           d S )Nmlers  	.!?rP   rQ   )r   r  rn   r
   r   )r`   r   r3  maxlog_boxcoxs       rA   test_mlezTestBoxcoxNormmax.test_mle	  s\    %dfU;;;t4444 !<//=v.....rC   c                 d    t          j        | j        d          }t          |ddgd           d S )Nr  rs  r-  r3  rP   rQ   r.  )r`   
maxlog_alls     rA   test_allzTestBoxcoxNormmax.test_all	  s9    )$&???

Xx$8tDDDDDDrC   rt  )r2  pearsonrr  r  r  c                     fd}t          j        | j        ||          }t          j        d         |k               sJ t          j        |d         k               sJ d S )Nc                 2    t          j        | d          S r  r  r   s    rA   r  zITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer	  r  rC   )rt  r  r   r   )r   r  rn   r;   r  )r`   rt  r  r  r   s     `  rA   r  z6TestBoxcoxNormmax.test_bounded_optimizer_within_bounds	  s    	> 	> 	> 	> 	> %dfV09; ; ;vfQi&()))))vfvay()))))))rC   c                 ,   t          j        | j                  }t          j        |d          }t          j        |dz
  |dz   d           G d d          fd}t          j        | j        |          }||k    sJ t          ||d           d S )	Nr   rd  i  c                       e Zd ZdS )?TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.MyResultN)rs   rt   ru   rv   rC   rA   MyResultr>  	  s        DrC   r?  c                     g }D ] }|                      | |                     !             }t          j        |                   |_        |S r:   )appendr;   argminrn   )r  objsr  rp   r?  lmbda_ranges       rA   r  z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizer	  sX    D$ ( (CCJJ''''(**C	$0CEJrC   r  r   )r   r  rn   r;   r|  r1  r
   )r`   r  lmbda_roundedr  lmbda2r?  rD  s        @@rA   test_user_defined_optimizerz-TestBoxcoxNormmax.test_user_defined_optimizer	  s     $TV,,**k-"4mD6H$OO	 	 	 	 	 	 	 		 	 	 	 	 	 %df	BBBt,,,,,rC   c                     t           j        }t          j        | j        d |           t          j        t          d          5  t          j        | j        d|           d d d            d S # 1 swxY w Y   d S )N)r  r  z,`brack` must be None if `optimizer` is givenr   )g       r  )r   r  r   r  rn   r   r   rh   r  s     rA   2test_user_defined_optimizer_and_brack_raises_errorzDTestBoxcoxNormmax.test_user_defined_optimizer_and_brack_raises_error	  s    ,	 	TV49EEEE
 ]: .D E E E 	6 	6  {+46 6 6 6	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   A..A25A2rn   r  )gx	 ?gN~jh ?g{ ?gXkI ?g}9" ?c                 .   d}t          j        t          |          5  t          j        |d          }d d d            n# 1 swxY w Y   t          j        t          j        ||                    	                                sJ t          j
        t
          j                  j        dz  }|dk    rt          j        |          nt          j        |          }t          j        ||          }t          ||t          j        |          z             d S )NzThe optimal lambda is...r   r2  rs  r  r   )r   r   rU  r   r  r;   r#  r   r   r  finfor  r  r  r
   sign)r`   rn   rM  r  ymaxx_treme	y_extremes          rA   r&  zTestBoxcoxNormmax.test_overflow	  s$    -\+W555 	: 	:(5999E	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:{7>!U334488:::::x
##'%/$qyy"&)))bfQiiN7E22		4"'%..#899999s   AAAc                     t          j        t          d          5  t          j        | j        d           d d d            d S # 1 swxY w Y   d S )Nz `ymax` must be strictly positiver   r   )rN  )r   r   rh   r   r  rn   ri   s    rA   test_negative_ymaxz$TestBoxcoxNormmax.test_negative_ymax	  s    ]:-OPPP 	2 	2 b1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   AA	A	r  )g	i@g     `h@gfffffh@g      i@gi@)gKH9KH9rS  rS  rS  rS  rN  )g    _Bgꌠ9Y>)FNr2  c           	         t          j        t          d          5  |d|ini }t          j        |fd|i|}t          j        |          t          j        |          g}t          t          t          j	        ||                              }|!t          j
        |j                  j        dz  }t          ||d           d d d            d S # 1 swxY w Y   d S )Nr"  r   rN  rt  r  r   rQ   )r   r   rU  r   r  r;   r  r  absr   rL  r  r
   )r`   rn   rN  rt  r  lmbrO  ymax_ress           rA   'test_user_defined_ymax_input_float64_32z9TestBoxcoxNormmax.test_user_defined_ymax_input_float64_32	  s   & \+-DEEE 	7 	7&*&6VTNNBE&qAAA5AACvayy"&)),G3u|GS99::;;H|x((,u4D(6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   B)CCCc                    t          j        |t           j                  }t          j        |t           j                  }t	          j        t          d          5  t          j        ||           d d d            n# 1 swxY w Y   t          j        ||           t          j        |t           j	        |          }t          j        |t           j	        |          }t          ||d           d S )Nr  r"  r   rs  )rN  rt  rd  rQ   )r;   r  r  r  r   r   rU  r   r  ri  r
   )r`   rn   rt  x_32x_64lmb_32lmb_64s          rA   test_user_defined_ymax_infz,TestBoxcoxNormmax.test_user_defined_ymax_inf
  s    z!2:...z!2:... \+-DEEE 	6 	6 f5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6T&1111 %dGGG%dGGGT222222s   A??BBN)rs   rt   ru   r  r0  r5  r8  r   r   r   r  slowrH  rJ  r&  rR  r;   r6  r  r  rX  r^  rv   rC   rA   r(  r(  	  s       G G G5 5 5/ / /E E E [X'A'A'ABB[X'F'F'FGG	* 	* HG CB	* [- - -,6 6 6  [666JJJLM M	: 	:M M	:2 2 2 [S999z	# 	# 	# 	MMMz	# 	# 	# 	444z	# 	# 	# 	;;;z	# 	# 	##   [V%7%7%788[Xw//
7 
7 0/ 98 "
7 [S+++222	#   [Xw//3 3 0/ 3 3 3rC   r(  c                   r    e Zd Zd Zd Zej                            e d          d             Z	d Z
d ZdS )	TestBoxcoxNormplotc                 :    t          ddd          dz   | _        d S r  r  ri   s    rA   r  zTestBoxcoxNormplot.setup_method1
  r  rC   c                     d}t          j        | j        dd|          \  }}g d}t          |t	          j        dd|                     t          ||           d S )Nr   r  r   r  )g!X4}?g΁i?g-	15?gW$?g\ܱ{?r  )r   boxcox_normplotrn   r
   r;   r1  )r`   r  lmbdasr  r  s        rA   re   zTestBoxcoxNormplot.test_basic4
  sn    ,TVS"BBB% % %C ; ; ;<<<m,,,,,rC   r  rn  c                 N   t          j                    }|                    d          }t          j        | j        ddt                      |                    |           |                    d          }t          j        | j        dd|           t          j                     d S r  )r  r  r  r   rd  rn   r  r  r  s      rA   r  z"TestBoxcoxNormplot.test_plot_kwarg<
  s     jll__S!!dfc2C8888B __S!!dfc2B7777	rC   c                     t          t          t          j        | j        dd           t          t          t          j        ddgdd           d S )Nr   r   r   )rg   rh   r   rd  rn   ri   s    rA   r  z&TestBoxcoxNormplot.test_invalid_inputsI
  s@    j%"7AFFFj%"7"a!QGGGGGrC   c                 ^    t          t          j        g dd          j        dk               d S Nr   r   )r	   r   rd  r   ri   s    rA   r  zTestBoxcoxNormplot.test_emptyO
  s-    %b!Q//49:::::rC   N)rs   rt   ru   r  re   r   r   rQ  r  r  r  r  rv   rC   rA   ra  ra  0
  s        J J J- - - [O+ODD
 
 ED
H H H; ; ; ; ;rC   ra  c                        e Zd Zd Zd Zd ZdS )TestYeojohnson_llfc                     t           j                            ddd          }d}t          j        ||          }t          j        |t	          |                    }t          ||d           d S )Nr   r   r  r  r   r  rQ   )r   r   r>   yeojohnson_llfr  r
   )r`   rn   r  r  r  s        rA   r  z"TestYeojohnson_llf.test_array_likeV
  se    JNNN??"5!,,#E47733T......rC   c                 N   t           j                            ddd          }|                    |          }d}t          j        ||          }t          j        ||                    ||g          j                  }t          ||                    ||f          d           d S r  )r   r   r>   r  rm  rf  r  r$   )r`   rV  rn   r  r   rp   s         rA   r  z TestYeojohnson_llf.test_2d_input^
  s    JNN%N@@JJqMM"5!,,"5"((Aq6*:*:*<==RXXsCj11>>>>>>rC   c           	          d}t          t          ||          5  |                    t          j        d|                    g                               sJ 	 d d d            d S # 1 swxY w Y   d S r  )r    r   r  r   rm  r  r  s      rA   r  zTestYeojohnson_llf.test_emptyf
  s    @+7rBBB 	E 	E88E0BJJrNNCCDDDDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   >A&&A*-A*N)rs   rt   ru   r  r  r  rv   rC   rA   rk  rk  S
  sF        / / /? ? ?E E E E ErC   rk  c                      e Zd Zd Zej                            dg d          d             Zd Zd Z	ej                            de
j        e
j        g          d             Zej                            de
j        e
j        e
j        e
j        g          d	             Zd
 Zej                            d e
j        d ed          dg           e
j        d ed          dg           e
j        d ed           dg           e
j        d ed           ed           ed           dg          g          d             Zej                            d e
j        g d           e
j        g d           e
j        g d          g          d             Zej                            d e
j        g d           e
j        g d          g          ej                            dg d          ej                            dddg          d                                     Zej                            d e
j        g d           e
j        g d           e
j        g d          g          ej                            dddg          ej                            dd d!g          d"                                     Zd S )#TestYeojohnsonc                 p   t           j                            d          }t          dd|          dz   }t          j        |dk              sJ t          j        |d          }t          ||           t          j        |d          }t          |dd|dz   z  z
             t          j        |d          }t          |t          j        |dz                        t          j        |d          }t          ||           t          dd|          dz
  }t          j        |dk               sJ t          j        |d	          }t          |t          j        | dz                         t          j        |d          }t          ||           t          j        |d
          }t          |d| dz   z  dz
             t          dd|          d	z
  }t          j        |dk               rJ t          j        |dk              rJ |dk    }t          j        |d          }t          ||         ||                    t          j        |d          }t          ||         dd||         dz   z  z
             t          j        |d          }t          ||         t          j        ||         dz                        t          j        |d          }t          ||         ||                    | }t          j        |d	          }t          ||         t          j        ||          dz                         t          j        |d          }t          ||         ||                    t          j        |d
          }t          ||         d||          dz   z  dz
             d S )Nr  r   r   r`  r   r   r  r   r   r   )	r;   ra  r   rB   r  r   
yeojohnsonr
   r<   )r`   re  rn   r  posnegs         rA   r  zTestYeojohnson.test_fixed_lmbdan
  s   i##E** abs;;;a?va!e}}}aq)))Aar***AQUO,,,aq)))BF1q5MM***aq)))A abs;;;a?va!e}}}aq)))RVQBF^^O,,,aq)))Aaq)))A!aL1,--- abs;;;a?6!a%==   6!q&>>!!!1faq)))33(((ar***3Q!C&1*%5!5666aq)))3#
!3!3444aq)))33(((daq)))3"&!C&1"5"5!5666aq)))33(((aq)))3qvgk!2Q!677777rC   r  )r   rL  r+  r   c                    d }d}t           j                            d          }|                    dd|          } |||          }t	          j        |          \  }}t          ||d           t          dt           j        	                    ||z
            |z  d	
           t          d|
                                d
           t          d|                                d
           d S )Nc                 0   t          j        | j        | j                  }| dk    }t	          |          t          j        d          k     r!t          j        | |                   dz
  ||<   n*t          j        | |         |z  dz   d|z            dz
  ||<   t	          |dz
            t          j        d          k    r4dt          j        d|z
   | |          z  dz   dd|z
  z            z
  || <   n#dt          j        | |                     z
  || <   |S )Nr  r   r,   r   r   )r;   rU  r  r  rU  spacingexppower)rn   r  r  rt  s       rA   _inverse_transformz:TestYeojohnson.test_lmbda_None.<locals>._inverse_transform
  s   HQWAG444Eq&C 5zzBJrNN**VAcF^^a/c

Xafunq&8!e)DDqHc
 519~~
2.."(QY<!SD'+AA+E+,E	?#< #< <sd  "&!SD'"2"22sdLrC   i N  r  r   r   )r   r   r   rd  r4  r   rX   )r;   ra  r   rL  r   rs  r
   r   linalgr   rb   rd   )	r`   r  r{  rJ  re  rn   r  r  r   s	            rA   r  zTestYeojohnson.test_lmbda_None
  s    
	 	 	& 	i##G,,JJ1AYJ88""1e,,%e,,
FD1111Ary~~a"f55	A1MMMMArwwyy!4444Arvvxx333333rC   c                 Z    t          t          j        g           j        dk               d S r  )r	   r   rs  r  ri   s    rA   r  zTestYeojohnson.test_empty
  s)     $$*d233333rC   c                     t           j                            ddd          }t          j        |          \  }}t          j        t	          |                    \  }}t          ||d           d S )Nr   r   r  r  r  rQ   )r   r   r>   rs  r  r
   )r`   rn   xt1r3  xt2s        rA   r  zTestYeojohnson.test_array_like
  sd    JNNN??!!$$Q!$q''**QSu------rC   r  c                     t          j        d|          }d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )NrH   r  z>Yeo-Johnson transformation is not defined for complex numbers.r   )r;   rm   r   r   rh   r   rs  )r`   r  rn   err_msgs       rA   test_input_dtype_complexz'TestYeojohnson.test_input_dtype_complex
  s    Iau%%%]:W555 	  	 Q	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   AAAc                    t          j        d|          }t          j        dt           j                  }t          j        |          \  }}t          j        |          \  }}t          ||d           t          ||d           d S )NrL   r  r  rQ   )r;   rm   r  r   rs  r
   )r`   r  x_intx_floatxt_int	lmbda_intxt_floatlmbda_floats           rA   test_input_dtype_integerz'TestYeojohnson.test_input_dtype_integer
  s    	!5))))ARZ000!,U33	 % 0 9 9+t4444	;T::::::rC   c                     t          j        g d          }t          j        |          \  }}t          j        |dz             \  }}t          ||d           t          ||d           d S )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   rP   rQ   )r;   r6  r   rs  r   r
   )r`   rn   xt_yeolam_yeoxt_boxlam_boxs         rA   test_input_high_variancez'TestYeojohnson.test_input_high_variance
  s    H " " " # #  *1--,q1u--T2222t444444rC   rn   r,   r   r  ri  r;  c                     t          j        t          d          5  t          j        |          \  }}d d d            d S # 1 swxY w Y   d S )Nz Yeo-Johnson input must be finiter   )r   r   rh   r   rs  )r`   rn   r  r  s       rA   test_nonfinite_inputz#TestYeojohnson.test_nonfinite_input
  s     ]:-OPPP 	2 	2#.q11OFG	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   AAAr  r  r   c                    d }t          j        d          5  t          j        |          \  }}t          j        |dz   t          ||                    \  }}t          j        t          j        |                    sJ t          j        t          j        |                    sJ t          ||d           t          ||d	           d d d            d S # 1 swxY w Y   d S )
Nc                 l    t          j        | | |d          }t          j                    }||_        |S )Ng`sbO>)xtol)r   	fminboundOptimizeResultrn   )r  r  outresults       rA   r  z/TestYeojohnson.test_overflow.<locals>.optimizer   s7    $S7(G(KKKC,..FFHMrC   raiser  r   )r  rE  rP   rQ   r0  )	r;   r  r   rs  r   r   r#  rc   r
   )r`   rn   r  r  r  r  r  s          rA   r&  zTestYeojohnson.test_overflow
  s7   	 	 	 [W%%% 	7 	7#.q11OFG#lAG!D!D!DF F FOFG;rvf~~.....;rvf~~.....GW48888FF6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   B7CC!$C!r   )r   r  g3#I9gu?j/ gnFgZbtirM  r   r   c                    t          j        d          5  t          j        ||z  |z            \  }}t          j        t          j        ||z            t          j        |          k              sJ t          j        |          sJ t          j        t          j        |                    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r  )r;   r  r   rs  r  rM  r#  rc   )r`   rn   r   rM  r  r  s         rA   #test_overflow_underflow_signed_dataz2TestYeojohnson.test_overflow_underflow_signed_data  s     [W%%% 	/ 	/#.tax%/?@@OFG6"'$(++rwv>?????;w''''';rvf~~......		/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   BCCC)r   r   r   r   )r   r   r   r2  )r   r   r   r  Nr  c                    t          j        d          5  ||z  }|                    t           j                  }t	          j        ||          }t	          j        ||          }t	          j        ||          }t	          j        ||          }	t          j        t          j        |          t          j        |          k              sJ t          j	        |          sJ t          j	        t          j
        |                    sJ ||k    sJ t          j        ||	k              sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r  r  r  )r;   r  astyper  r   yeojohnson_normmaxrs  r  rM  r#  rc   )
r`   rn   rM  r  r  r  lam_yeo_int
xt_yeo_intlam_yeo_floatxt_yeo_floats
             rA   test_integer_signed_dataz'TestYeojohnson.test_integer_signed_data  s}    [W%%% 	6 	61HEll2:..G25FFFK)%{CCCJ!4WEJJJM +G=IIIL6"'%..BGJ,?,??@@@@@;{+++++;rvj1122222-////6*4555555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   DD??EE)rs   rt   ru   r  r   r   r   r  r  r  r;   	complex64
complex128r  int8uint8int16int32r  r  r6  r  r  r&  r  r  rv   rC   rA   rq  rq  l
  s       -8 -8 -8^ [Wnnn55"4 "4 65"4H4 4 4. . . [Wr|R]&CDD    ED  [Wrw"(BH&MNN; ; ON;5 5 5 [S#uuU||S)**#uuU||S)**#e}c*++$eeeEllUU5\\M3GHH	#  2 2 2 [S : : : 	; 	; 	999::MMMNN#  7 7 7$ [S : : : 	; 	;999::#  
 [W&L&L&LMM[VaW--/ / .- NM / [S  #  
 [VaW--[WtWo666 6 76 .- 6 6 6rC   rq  c                        e Zd Zd Zd Zd ZdS )TestYeojohnsonNormmaxc                 :    t          ddd          dz   | _        d S r*  r  ri   s    rA   r  z"TestYeojohnsonNormmax.setup_method5  r+  rC   c                 \    t          j        | j                  }t          |dd           d S )Ng?rP   rQ   )r   r  rn   r
   r/  s     rA   r5  zTestYeojohnsonNormmax.test_mle8  s/    )$&11t444444rC   c                 h    g d}t          j        |          }t          j        |dd          sJ d S )N)gffffff@g r,   r  ffffff?g333333@r  gffffff@g?g@g      @      @g"@r-  g      gzG?r1  r4  )r   r  r;   allclose)r`   rn   r  s      rA   test_darwin_examplez)TestYeojohnsonNormmax.test_darwin_example<  sF      (++{5%d33333333rC   N)rs   rt   ru   r  r5  r  rv   rC   rA   r  r  4  sD        G G G5 5 54 4 4 4 4rC   r  c            
          e Zd Zej                            dej        dfej        dfej	        dfg          d             Z
d Zej                            dej        ej        fej        ej        fej	        ej        fg          d             Zej                            d	ej        ej        ej	        g          d
             Zej                            dej        dfej        dfej	        dfg          d             Zej                            dej        ej        ej	        g          d             Zej                            dej        ej        ej	        g          d             Zej                            dej        ej        dddfej        ej        dddfej	        ej        dddfg          d             Zd Zd Zd Zd Zd Zd ZdS )TestCircFuncstest_func,expectedA:wv?gpz?E|2@c                     |                     g d          }t           ||d          |                     |                     d S )N)g     0v@ru  r       pv@rS        u@h  r  r  r$   r`   	test_funcr  rV  rn   s        rA   test_circfuncszTestCircFuncs.test_circfuncsM  sM    
 JJ66677		!#...

80D0DEEEEErC   c                    |                     g d|j                  }|                    |          }t          j        |d          }t          ||d           |                    ||j        z  dz  d	          }|d
z  }t          j        |d          }t          ||d           |	                    |d	          }t          j
        |d          }t          ||d           d S )N)r  rF  r  r     g     4@g3333333@r  r  r  r   rQ   r  r   r  r  r0  )r  r  rb   r   circmeanr$   rc   picircvarrd   circstd)	r`   rV  rn   M1M2V1V2S1S2s	            rA   test_circfuncs_smallz"TestCircFuncs.test_circfuncs_smallU  s     JJ777rzJJJWWQZZ^AC(((BT****VVAbeGCKAV.. "W]13'''BT****VVA!V$$]13'''BT******rC   ztest_func, numpy_funcc                     t          j        dgdz  dgdz  z             } ||                    |                    }|                     ||                    }t          ||d           d S )Ng˛ɦv9?r   guv9?r   g:0yU>r4  )r;   r  r$   )r`   r  
numpy_funcrV  rn   circstatrL  s          rA   test_circfuncs_closez"TestCircFuncs.test_circfuncs_closei  sw     J+,r15H4IC4OOPP9RZZ]]++JJqMM**&t444444rC   circfuncc                 H   |                     g dg dg dg           d          } |                    d          d          }t          ||                     |                      dd          }fd	t          j        d
                   D             }t          ||                    |                      dd
          }fdt          j        d                   D             }t          ||                    |                     d S )N)c  r   r   r
  r   ^  )_  rK   r   `  rI   ]  )ie  rI   rL   if  r   g     @v@r  r  r   r   r  r   c                 >    g | ]} |d d f         d          S Nr  r  rv   r   rq   r  rn   s     rA   r   z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>  s4    FFFqxx!QQQ$c***FFFrC   r   c                 >    g | ]} d d |f         d          S r  rv   r  s     rA   r   z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>  s4    FFFqxx!!!Q$c***FFFrC   )r  r  r$   rz  r  rf  )r`   rV  r  rp   r   rn   s     `  @rA   test_circmean_axisz TestCircFuncs.test_circmean_axist  sE    JJ1110001113 4 4 hqs###hrzz!U++#666RZZ__---hqs+++FFFFFE!'!*4E4EFFFRXXc]]+++hqs+++FFFFFE!'!*4E4EFFFRXXc]]+++++rC    @pz?c                     |                     g d          }t           ||d          |                     |                     d S )N)r  r   r   r
  r   r  r  r  r  r  s        rA   test_circfuncs_array_likez'TestCircFuncs.test_circfuncs_array_like  sM    
 JJ11122		!#...

80D0DEEEEErC   r  c                    |j         }|                    g |          }t          t          t          |          5   ||          }d d d            n# 1 swxY w Y   t          ||                    |j        |                     d S )Nr  r  )r  r  r    r   r   r%   r   )r`   r  rV  r  rn   rp   s         rA   r  zTestCircFuncs.test_empty  s     
JJrJ''+3HRPPP 	 	)A,,C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	RZZeZ<<=====s   AAAc           	          |                     ddddddt          j        g          }t           ||d          |                     |j                             d S )	Nr  r   r   r
  r   r  r  r  )r  r;   r   r%   )r`   r  rV  rn   s       rA   test_nan_propagatez TestCircFuncs.test_nan_propagate  sY     JJQ3C899		!#...

260B0BCCCCCrC   g5:v@gfPb?ri  gee?gOQOv?g#q@gauy+@c                 R   |                     g dddddddt          j        gdt          j        t          j        t          j        t          j        t          j        t          j        gg          }|                                D ]} ||d	|
          }|)t	          ||                     |j                             ;t          |d         |                     ||                              t	          |dd          |                    |dd          |j                             d S )N)r  r   r   r
  r   r  r   r  rK   r   r  rI   r  r   r  r  r   )r  r;   r   keysr%   r$   	full_like)r`   r  r  rV  rn   r   r  s          rA   test_nan_propagate_arrayz&TestCircFuncs.test_nan_propagate_array  s    JJ444aCC8BFBFBFBFBFBFKM N N MMOO 	H 	HD)ACd333C|RZZ%7%78888A

8D>(B(BCCCABBc!""grv)F)FGGGG	H 	HrC   c                     |                     d          d         }|}t          j        |          }t          ||d           d S )Nr,   rv   r   rQ   )r  r   r  r$   )r`   rV  rn   r  r  s        rA   test_circmean_scalarz"TestCircFuncs.test_circmean_scalar  sE    JJrNN2^ABT******rC   c                    t          j        |                    ddd          |j        |j                   }t	          ||                    |j                             t	          | |                    |j                             d S )Nr   r   rL  )r   r  rm   r  r&   r  )r`   rV  r9  s      rA   test_circmean_rangez!TestCircFuncs.test_circmean_range  sq     N299Q3//??q"**RU++,,,r2::be,,-----rC   c                    |                     ddg|j                  }t          t          j        |d          |                     d                     t          t          j        |d          |                     d                     t          t          j        |d          |                     d                     d S )	Nr;  r   r  r  r  g     @e@gLwqA?g)#p_4@)r  r  r$   r   r  r  r  )r`   rV  rn   s      rA   test_circfuncs_uint8z"TestCircFuncs.test_circfuncs_uint8  s     JJRyJ11qs333RZZ5F5FGGGac222BJJ4O4OPPPac222BJJ{4K4KLLLLLrC   c                     t          j        |                    dg                    }t          j        d|          dk    sJ d S r>  )r   r  r  mathcopysign)r`   rV  rE  s      rA   test_circstd_zerozTestCircFuncs.test_circstd_zero  s@    M"**aS//**}S!$$++++++rC   c                    |                     ddd          }|                    |                    |          |k              r,|                    |                    |          dk              sJ |d|j        z  z  d|j        z  z  |k    }|                    |          sJ ||         }t          j        |d d d f         d          }|                    ||k              sJ d S )NrU   gA:9>r   r,   r   r   r  )r1  r  sincosr  anyr   r  )r`   rV  rn   r9  rE  s        rA   !test_circmean_accuracy_tiny_inputz/TestCircFuncs.test_circmean_accuracy_tiny_input  s     KKdB''vvbffQii1n%%B"&&c1A*B*BBBB!be)_BE	*q0vvayyyaDN1QQQW:A...vva1f~~~rC   c                 V   |                     d|j                  }t          j        |                    |          |                    |                    }|                     ||j                  }t          j        ||j        |j                   }t          ||dd           d S )Ng ؅W4vCr  )r  r  gV瞯<r   )rR   r5  )
r  r  r  atan2r  r  r   r  r  r$   )r`   rV  rn   rE  r  actuals         rA   !test_circmean_accuracy_huge_inputz/TestCircFuncs.test_circmean_accuracy_huge_input  s     JJt2:J..Jrvvayy"&&)),,::arz:22BE6:::u3??????rC   N)rs   rt   ru   r   r   r   r   r  r  r  r  r  r;   rb   rc   rd   r  r  r  r  r  r   r  r  r  r  r  r  r  rv   rC   rA   r  r  E  s        [1$~{;$}.BC$}k:<= =F F	= =F+ + +( [4$~rw7$}bf5$}bf578 85 5	8 85 [Z%.*/-*/-*9 : :, ,: :,  [1$~{;$}.BC$}k:<= =F F	= =F [[5>5=+0=+: ; ;> >; ;> [[5>5=+0=+: ; ;D D; ;D [1$~&(f*MMO$}&(f#7#7 9  9:  %}&(f
KKMNO O
H 
HO O
H+ + +. . .M M M, , ,
  *@ @ @ @ @rC   r  c                      e Zd Zej                            dej        d ej	        g d           ej	        ddg          dfej
        d ej	        g d          ej        d	z  d
z  z   ej	        ddg          dfej        d ej	        g d           ej	        ddg          dfg          d             Zej                            dej        dfej
        dfej        dfg          d             Zej                            dej        ej
        ej        g          d             Zej                            dej        ej
        ej        g          d             Zej                            dddd
dddej        g ej	        ddd
dddej        gddd d!ej        d"d#gg          g          ej                            dej        ej
        ej        g          d$                         Zej                            dddd
dddej        g ej	        ddd
dddej        gddd d!ej        d"d#gg          g          ej                            dej        ej
        ej        g          d%                         Zd&S )'TestCircFuncsNanPolicyr  grQvv@)g     v@g      @r  g     8v@r~  g     u@g5@v?g2>Bjv@ri  gG2?)gaF+?z?r  gA ~@碲?r  r  r   r  gX҄?gJPm$@)gj  @竃 ?r  g)h;@{ ?r  gun2@g+fa @c                    t          j        ddddddt           j        gddd	d
ddt           j        gt           j        t           j        t           j        t           j        t           j        t           j        t           j        gg          }|                                D ]}|( ||dd|          }t	          |||         d           ,t          j        t          t                    5   ||dd|          }t	          |d d         ||         d           t          t          j
        |d                              d d d            n# 1 swxY w Y   d S )Nr  r   r   r
  r   r  r  rK   r   r  rI   r  r  omit)r  
nan_policyr   r  rQ   r   r   )r;   r6  r   r  r
   r   r   r   r   r	   r  )r`   r  r  rn   r   r  s         rA   test_nan_omit_arrayz*TestCircFuncsNanPolicy.test_nan_omit_array  s   ( HsAq#r37Aq#q#rv6vrvrvrvrvrvrvNP Q Q MMOO 	/ 	/D|iTJJJXd^$?????\"4<MNNN / /#)ACFNNNC#CHhtn4HHHHBHSW--.../ / / / / / / / / / / / / / /	/ 	/s   'AE

E	E	r  r  c                 h    ddddddt           j        g}t           ||dd	          |d
           d S )Nr  r   r   r
  r   r  r  r
  r  r  r  rQ   )r;   r   r
   )r`   r  r  rn   s       rA   test_nan_omitz$TestCircFuncsNanPolicy.test_nan_omit  sS    
 !QRbf-		!#&AAA t	- 	- 	- 	- 	- 	-rC   r  c           	      B   t           j        t           j        t           j        t           j        t           j        g}t          j        t          t
                    5  t          t          j         ||d                               d d d            d S # 1 swxY w Y   d S )Nr   r
  r  )r;   r   r   r   r   r   r	   r  r`   r  rn   s      rA   test_nan_omit_allz(TestCircFuncsNanPolicy.test_nan_omit_all  s     VRVRVRVRV4\,4EFFF 	? 	?BHYYqV<<<==>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   -BBBc           	      B   t          j        t          t                    5  t	          j        t          j        t          j        t          j        t          j        t          j        gt          j        t          j        t          j        t          j        t          j        gg          } ||dd          }t          t	          j        |          	                                           t          t          |          dk               d d d            d S # 1 swxY w Y   d S )Nr   r
  r   )r  r   r   )r   r   r   r   r;   r6  r   r	   r  r  r  )r`   r  rn   r  s       rA   test_nan_omit_all_axisz-TestCircFuncsNanPolicy.test_nan_omit_all_axis%  s    \,4EFFF 	# 	#2626262626B626262626BD E EA)A&q999CBHSMM%%''(((CHHM"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   C&DDDrn   r  r   r
  r   r  r  rK   r   r  rI   r  c                 8    t          t          ||dd           d S )Nr  r  r  rg   rh   r  s      rA   test_nan_raisez%TestCircFuncsNanPolicy.test_nan_raise/  s#     	j)QSWMMMMMMrC   c                 8    t          t          ||dd           d S )Nr  foobarr  r  r  s      rA   test_bad_nan_policyz*TestCircFuncsNanPolicy.test_bad_nan_policy8  s#     	j)QSXNNNNNNrC   N)rs   rt   ru   r   r   r   r   r  r;   r6  r  r  r  r  r  r  r  r   r  r  rv   rC   rA   r  r    s        [1$~&7#+28 -4 -4 -4 $5 $5#+28Z,F#G#G I  IJ
  %}&:#+28 -N -N -N $. $./1uSy1n$= $,28-A-@-B $C $C	 D  DE  %}&7#+28 -9 -9 -9 $: $: $,28Z,D#E#E	 G  GHIJ J&/ /'J J&/ [1$~{;$}.BC$}k:<= =- -	= =-
 [[5>5=+0=+: ; ;? ?; ;?
 [[5>5=+0=+: ; ;# #; ;# [S"Aq#r3?&bhaCS"&(I),aCC(H(J K KLM M [[5>5=+0=+: ; ;N N; ;	M MN [S"Aq#r3?&bhaCS"&(I),aCC(H(J K KLM M [[5>5=+0=+: ; ;O O; ;	M MO O OrC   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                            dddg          d             ZdS )TestMedianTestc                 J    t          t          t          j        g d           d S Nr   rg   rh   r   median_testri   s    rA   test_bad_n_samplesz!TestMedianTest.test_bad_n_samplesD  s!    j%"3YYY?????rC   c                 L    t          t          t          j        g g d           d S r  r   ri   s    rA   r<  z TestMedianTest.test_empty_sampleH  s#    j%"3RCCCCCrC   c                 Z    t          t          t          j        g dg dddgd           d S )N)r   r   r   r   )r   r   r   r   r   r  r  r   ri   s    rA   test_empty_when_ties_ignoredz+TestMedianTest.test_empty_when_ties_ignoredL  sG    
 	j%"3"llIII1vH	F 	F 	F 	F 	F 	FrC   c                     t          t          t          j        g dg d           t          t          t          j        g dg dd           d S )N)r   r   r   abover%  r   ri   s    rA   test_empty_contingency_rowz)TestMedianTest.test_empty_contingency_rowT  s\    
 	j%"3YYY			JJJ 	j%"3YYY			"	$ 	$ 	$ 	$ 	$ 	$rC   c                 T    t          t          t          j        g dddgd           d S )Nr   r   r   rx  r%  r   ri   s    rA   test_bad_tieszTestMedianTest.test_bad_ties`  s9    j%"3YYYA 	" 	" 	" 	" 	" 	"rC   c                 T    t          t          t          j        g dddgd           d S )Nr   r   r   r  r  r   ri   s    rA   r  z"TestMedianTest.test_bad_nan_policyd  s9    j%"3YYYA!)	+ 	+ 	+ 	+ 	+ 	+rC   c                 T    t          t          t          j        g dddgd           d S )Nr   r   r   rx  )rx  )rg   r7  r   r!  ri   s    rA   test_bad_keywordzTestMedianTest.test_bad_keywordh  s9    i!2III1v	! 	! 	! 	! 	! 	!rC   c                     g d}g d}t          j        ||          \  }}}}t          |d           t          |ddgddgg           t          |d           t          |d           d S )Nr   r  r   r   r   )r   r!  r   r   )r`   rn   rE  r'  r  medtbls          rA   test_simplezTestMedianTest.test_simplel  s    IIII!-a33ac 	S#3!Q!Q 0111 	T1QrC   c                    g d}ddg}g d}t          j        |||          \  }}}}t          |d           t          |g dg dg           t          j        |||d          \  }}}}t          |d           t          |g dg d	g           t          j        |||d
          \  }}}}t          |d           t          |g dg d	g           d S )Nrk  r   rH   )rK   rL   rI   )r   r   r   )r   r   r   r  r%  )r   r   r   r(  )r   r   r   )r   r!  r   )r`   rn   rE  zr'  r  r9  r1  s           rA   test_ties_optionsz TestMedianTest.test_ties_options{  s
   LLFII  +Aq!44aCQS999iii0111+Aq!(CCCaCQS999iii0111+Aq!'BBBaCQS999iii011111rC   c                    ddt           j        g}g d}t          j        ||d          }t          j        ||d          \  }}}}t	          |t           j        t           j        t           j        d f           t          |d           t          |d           t	          |d	           t	          |t          j        d
dgddgg                     t          t          t          j        ||d           d S )Nr   r   rX  	propagater  r
  g     ?gإvao?g      @r   r  )	r;   r   r   r!  r   r
   r6  rg   rh   )r`   rn   rE  mt1r  r  r9  r  s           rA   test_nan_policy_optionsz&TestMedianTest.test_nan_policy_options  s    26NII1===&q!???
1aS26262648999.///.///QQ1a&1a&!122333j%"3QgNNNNNNrC   c                    g d}g d}t          j        ||          \  }}}}t          |d           t          |ddgddgg           t          j        |          \  }}}	}
t	          ||           t	          ||           t          j        ||d          \  }}}}t          |d           t          |ddgddgg           t          j        |d          \  }}}	}
t	          ||           t	          ||           t          j        ||d	          \  }}}}t          |d           t          |ddgddgg           t          j        |d	          \  }}}	}
t	          ||           t	          ||           d S )
Nr   )r   r   rH   rL   r   r   r   r   )lambda_Fr  )r   r!  r   chi2_contingencyr
   )r`   rn   rE  r'  r  r9  r1  exp_statexp_pdofes              rA   re   zTestMedianTest.test_basic  s    OOLL+Aq11aCQSAq6Aq6*+++"'"8"="=%ah'''5!!!+Aq!<<<aCQSAq6Aq6*+++"'"8a"H"H"H%ah'''5!!!+AqUCCCaCQSAq6Aq6*+++"'"8"O"O"O%ah'''5!!!!!rC   r  FTc                     g d}g d}t          j        |||          }t          |j        |j        |j        |j        f|           d S )Nr   r  )r   r!  r   r]   r   r  table)r`   r  rn   rE  rp   s        rA   test_resultzTestMedianTest.test_result  sR    IIII1<<<cmSZSYGMMMMMrC   N)rs   rt   ru   r"  r<  r&  r)  r+  r  r.  r2  r5  r9  re   r   r   r   rC  rv   rC   rA   r  r  B  s        @ @ @D D DF F F
$ 
$ 
$" " "+ + +! ! !  2 2 2(O O O" " "> [\E4=99N N :9N N NrC   r  c                   ,   e Zd Zd Zej                            dej         dz  ej        dz  gdfddej        z  gdfg          d             Z	d Z
d	 Z ed
d          d             Zd Zej                            dddg          d             ZdS )TestDirectionalStatsc                    t          j        t          j        g d                     }t          j        t          j        g d                     }t          j        t          j        |          t          j        |          z  t          j        |          t          j        |          z  t          j        |          fd          }|                    |                                          }|                    |                                          }|                    |                                          }t          j	        |          }|j
        }|                    g d          }t          ||d           d S )N)	g33333su@g      O@g33333sB@r1  r  g@g333333I@gYv@r  )	gfffffP@g,Q@gfffffQ@gfffffT@g     S@g     @R@g33333SQ@gffffffM@g33333I@r   r  )gHP?g&S:g[<r0  r4  )r;   deg2radr6  rf  r  r  r  rW  r   directional_statsmean_directionr$   )r`   rV  declinclra   dirstatsdirectional_meanreference_means           rA   "test_directional_stats_correctnessz7TestDirectionalStats.test_directional_stats_correctness  s^    
28 %< %< %< = = > > >
28 %< %< %< = = > > >xt4t4'      
 zz$++--((zz$++--((zz$++--((*400#2$>$>$>??(.tDDDDDDrC   zangles, refr   r,   r   r   c                 0   |                     |          }|                     |          }|                    |                    |          |                    |          gd          }dt	          j        |          j        z
  }t          ||           d S )Nr   r  )r  rf  r  r  r   rH  mean_resultant_lengthr$   )r`   anglesr   rV  ra   rp   s         rA   'test_directional_stats_2d_special_casesz<TestDirectionalStats.test_directional_stats_2d_special_cases  s    
 F##jjooxx8qxAA%)$//EES!!!!!rC   c                 `   t           j                            d          }|                    d|j        z  |                    d          z            }|                    |                    |          |                    |          fd          }t          j	        |          }|j
        }|                    |d         |d                   }|d|j        z  z  }t          j        |          }t          ||           d|j        z
  }	t          j        |          }
t          |	|
           d S )Nl	   }7Qh0P4u&4M r   )r_  r   r  r   r,   )r;   ra  rb  r  r  rf  r  r  r   rH  rI  r   r  r$   rQ  r  )r`   rV  re  testdatatestdata_vectorrL  rM  directional_mean_angler  directional_varcircular_vars              rA   test_directional_stats_2dz.TestDirectionalStats.test_directional_stats_2d  s    i##$FGG::a"%i#**X*>*>>??((BFF8$4$4$&FF8$4$4$6() # + + *?;;#2!#*:1*=?OPQ?R!S!S!71ru9!E>(++.999x==}X..66666rC   c                 *   |                     g dg dg          }|                     |                    |d                    }|                     g dg dgg dg dgg          }t          j        |d          }t	          |j        |           d S )N+Pz?r+  r   )r]  r<  r   )r   r   r   r   )r,   r   r   r   r  )r  tiler   rH  r$   rI  )r`   rV  ra   
full_arrayr  rL  s         rA    test_directional_mean_higher_dimz5TestDirectionalStats.test_directional_mean_higher_dim  s     zz///0002 3 3ZZl ; ;<<
:: , . , , ./ 0 0 *:A>>>/:::::rC   Tzchecking array-like inputrc  c                 R   g dg dg}|                     ||j                  }t          j        |          }t          j        |          }t	          |j        |                     |j                             t	          |j        |                     |j                             d S )Nr\  )r]  r<  r   r  )r  r  r   rH  r$   rI  rQ  )r`   rV  ra   
data_arrayr   rp   s         rA   )test_directional_stats_list_ndarray_inputz>TestDirectionalStats.test_directional_stats_list_ndarray_input  s     %$$&:&:&:;ZZBJZ77
%d++%j11*

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

3#<==	? 	? 	? 	? 	?rC   c                     |                     d          }d}t          j        t          t	          j        |                    5  t          j        |           d d d            d S # 1 swxY w Y   d S )N)r   zIsamples must at least be two-dimensional. Instead samples has shape: (5,)r   )r   r   r   rh   reescaper   rH  )r`   rV  ra   rM  s       rA   test_directional_stats_1d_errorz4TestDirectionalStats.test_directional_stats_1d_error  s    wwu~~6]:RYw-?-?@@@ 	* 	*#D)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A''A+.A+r  r  r  c                    t          j        g dg dg|          }t          j        |                    |          d          }|t           j                            |dd          z  }t          j        |d          }t          |j        |                    |j                             t          |j	        |                    |j	                             d S )	Nr\  )g+Pz?r;  r   r  T)	normalizer   )r   keepdimsF)
r;   r6  r   rH  r  r|  r   r$   rI  rQ  )r`   r  rV  ra   rp   normalized_datar   s          rA    test_directional_stats_normalizez5TestDirectionalStats.test_directional_stats_normalize  s    
 x------/6;= = =%bjj&6&6$GGG29= "0 "? "? ?%oGGG*

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

3#<==	? 	? 	? 	? 	?rC   N)rs   rt   ru   rO  r   r   r   r;   r  rS  rZ  r`  r  rc  rg  rl  rv   rC   rA   rE  rE    s       E E E, []5&(BE!G	b!
QY-  " "	 "7 7 7&; ; ; d+FGGG	? 	? HG	?* * * [Wy)&<==? ? >=? ? ?rC   rE  c                       e Zd Zd Zd Zej                            dg ddfg ddfg          d             Zd	 Z	ej                            d
g d          d             Z
d ZdS )TestFDRControlc                 |   d}t          j        t          |          5  t          j        |                    g d                     d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |                    g d                     d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |                    dd|j        g                     d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |                    g d          d	
           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |                    g d          d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |                    g d          d           d d d            d S # 1 swxY w Y   d S )Nz.`ps` must include only numbers between 0 and 1r   )r   r+  r  )r+  r  r   r+  r  zUnrecognized `method` 'YAK')r+  r  rz   YAKrs  z#`axis` must be an integer or `None`r  r  r  )r   r   rh   r   false_discovery_controlr  r   r  s      rA   test_input_validationz$TestFDRControl.test_input_validation/  s   B]:W555 	F 	F)"**^^^*D*DEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F]:W555 	E 	E)"**]]]*C*CDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E]:W555 	J 	J)"**c35G*H*HIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 0]:W555 	U 	U)"**___*E*EeTTTT	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 8]:W555 	Q 	Q)"**___*E*ECPPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q]:W555 	T 	T)"**___*E*EFSSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	Tsk   *AAA:*B00B47B40DDD:,E22E69E6,GGG8,H11H58H5c                     |                     g d          }t          j        |          }|                     g d          }t          ||d           d S )N)r  g;On?g~jt?gI+?g&1?gB`"۹?gv?S㥛?);On?ru  I+?rv  gˡE?gHzG?rt  rt  r1  r4  )r  r   rq  r$   )r`   rV  psrp   r   s        rA   test_against_TileStatsz%TestFDRControl.test_against_TileStatsB  s]    ZZPPPQQ+B//jjQQQRRSt,,,,,,rC   rx  )
go?gQ]
Y?ghD@?u?D?gn@t?g=T	[ے?g=!s?ry  ry  g	L?bh)
glߢ?gq?g.0?R]D?g)<Gh?g$͂?g2-p?r{  r{  g]:?byc                 j   |\  }}t           j                            d          }t          j                            ddd|                                          }|d         |d<   t          j        |                    |          |          }t          ||                    |          d	
           d S )N   <U) r1  r+  r   r`  rK   r   rs  rP   r4  )
r;   ra  rb  r   
loguniformr>   rW  rq  r  r$   )r`   rx  rV  r   rt  re  rw  rp   s           rA   r}  zTestFDRControl.test_against_RI  s     Vi##$788!!$"3!GGNNPP11+BJJrNN6JJJRZZ__4888888rC   c                 B   t           j                            d          }t          j                            ddd|          }|                    |          }t          j        |d           }t          j        t          |                    }t          ||           d S Nr~  r1  r+  )r   r   r   r`  r  )
r;   ra  rb  r   r  r>   r  rq  r!   r%   )r`   rV  re  rw  rp   r   s         rA   test_axis_NonezTestFDRControl.test_axis_None[  s    i##$788!!$)#!NNZZ^^+BT:::+HRLL99S!!!!!rC   r   )r   r   r   c                 b   t           j                            d          }t          j                            ddd|          }t          j        |                    |          |          }t          j        t          j        ||          }t          ||                    |                     d S r  )
r;   ra  rb  r   r  r>   rq  r  apply_along_axisr$   )r`   r   rV  re  rw  rp   r   s          rA   r  zTestFDRControl.test_axisc  s    i##$788!!$)#!NN+BJJrNNFFF!%"?rJJRZZ__-----rC   c                 J   |                     dg          }t          t          j        |          |           |                     g           }t          t          j        |          |           t	          |          r$t          t          j        d          d           d S d S )Nr,  )r  r%   r   rq  r"   )r`   rV  rw  s      rA   r  zTestFDRControl.test_edge_casesk  s    ZZ5b992>>>ZZ^^5b992>>>B<< 	GE9$??FFFFF	G 	GrC   N)rs   rt   ru   rr  rx  r   r   r   r}  r  r  r  rv   rC   rA   rn  rn  -  s        T T T&- - - [V 8  8  89=? 8  8  89=?@A A	9 	9A A	9" " " [VZZZ00. . 10.G G G G GrC   rn  c                       e Zd Zej                            dej        i fej        ddifej        ddifej	        i fg          d             Z
dS )TestCommonAxisrx  r  r   r   c                    t          |          r+|d         t          j        k    rt          j        d           |\  t
          j                            d          }|                    |                    d                     fi ddi}|	                    fdt          j        d                   D                       }t          ||            fi ddi}|	                    fd	t          j        d                   D                       }t          ||            fi dd i} |                    d
          fi }t          ||           d S )Nr   z3copysign doesn't accept scalar array-api-compat#271rn  l   @ms|Y)rH   rK   r   c                 6    g | ]} d d |f         fi S r:   rv   r   rq   r  r@   rn   s     rA   r   z,TestCommonAxis.test_axis.<locals>.<listcomp>  s7    JJJ1AaaadG..v..JJJrC   r   c                 6    g | ]} |d d f         fi S r:   rv   r  s     rA   r   z,TestCommonAxis.test_axis.<locals>.<listcomp>  s7    JJJ1AadG..v..JJJrC   r  )r   r   	variationr   xfailr;   ra  rb  r  rf  rz  r  r$   r  )	r`   rx  rV  re  rp   r   r  r@   rn   s	         @@@rA   r  zTestCommonAxis.test_axis}  s   
 B<< 	WDGu66L UVVVVVi##N33JJszz&))**c!&&v&&A&&&hhJJJJJJagaj8I8IJJJKKS!!!c!&&v&&A&&&hhJJJJJJagaj8I8IJJJKKS!!!c!))v))D)))c"**Q&&11&11S!!!!!rC   N)rs   rt   ru   r   r   r   r   semrb  r  r  rv   rC   rA   r  r  v  sy         [Vuy"o',{S!H&=',{S!H&=',&;&= > >" "	> >" " "rC   r  )r  re  rM  r   	functoolsr   numpyr;   numpy.randomr   numpy.testingr   r   r   r   r	   r
   r   r   r   rg   scipyr   r   r   scipy.stats._morestatsr   r   r   common_testsr   
_hypotestsr   r   scipy.stats._binomtestr   scipy.stats._distr_paramsr   scipy.stats._axis_nan_policyr   r   r   r   scipy._lib.array_api_extra_libarray_api_extrarB  scipy._lib._array_apir   r   r    r!   r"   r#   scipy._lib._array_api_no_0dr$   r%   r&   r   r  dict
matplotlibrcParamsmatplotlib.pyplotpyplotr  r  	Exceptionr  r  r  r  r  r  r  r  r  r  rB   rE   rx   r   r2  r   rl  r  r?  rT  rQ  r  r  r  r  r  r\  rT  r  r  r  r  r  r  r|  rb  r_  r  r  r  r  r  r  r  r  r(  ra  rm  rk  rq  r  r  r  r  r  r  r  rH  rE  rq  rn  r  rv   rC   rA   <module>r     s  
  				 



            $ $ $ $ $ $C C C C C C C C C C C C C C C C C C  * * * * * * * * * * * * * * * * N N N N N N N N N N - - - - - - B B B B B B B B ? ? ? ? ? ? . . . . . .T T T T T T T T T T T T ) ( ( ( ( ( ( ( (? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?          ;/ 4>>%*J	"######OO   OOO LKKKKKKKKKKKKKKKKKKKKKKKKKKLLL
4 4 4/ / / / / / / />? ? ? ? ? ? ? ?Bu@ u@ u@ u@ u@ u@ u@ u@p EFFM> M> M> M> M> M> M> GFM>`O( O( O( O( O( O( O( O(d GHHL9 L9 L9 L9 L9 L9 L9 IHL9^60 60 60 60 60 60 60 60r 5<  HI HI HI HI HI HI HI ! HIV 5>""&* &* &* &* &* &* &* #"&*R 5<  >4 >4 >4 >4 >4 >4 >4 ! >4Bk8 k8 k8 k8 k8 k8 k8 k8\ 5=!!M8 M8 M8 M8 M8 M8 M8 "!M8`2 2 20 5:~6 ~6 ~6 ~6 ~6 ~6 ~6 ~6B]5 ]5 ]5 ]5 ]5 ]5 ]5 ]5@ 5>""v8 v8 v8 v8 v8 v8 v8 #"v8xP P P
 5;3. 3. 3. 3. 3. 3. 3.  3.l 5>""(. (. (. (. (. (. (. #"(.V39 39 39 39 39 39 39 39l"= "= "= "= "= "= "= "=J 5#$$@+ @+ @+ @+ @+ @+ @+ %$@+J0 0 0fI. I. I. I. I. I. I. I.XK3 K3 K3 K3 K3 K3 K3 K3\ ;  ;  ;  ;  ;  ;  ;  ;F 5'((E E E E E E E )(E0E6 E6 E6 E6 E6 E6 E6 E6P4 4 4 4 4 4 4 4" 5>5=%-@@e@ e@ e@ e@ e@ e@ e@ A@e@PQO QO QO QO QO QO QO QOhN N N N N N N ND 5*++e? e? e? e? e? e? e? ,+e?P 5011EG EG EG EG EG EG EG 21EGP" " " " " " " " " "s   2C	 	CC