
    _Mh(                       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mZ d dlZd dlmZ d dl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-Z- d dl.m/Z/m0Z0 d dl1m2Z2m3Z3m4Z4 ej5        j6        Z6 e7e&          Z&	 d dl8Z8de8j9        d<   d dl:m;Z< dZ=n# e>$ r dZ=Y nw xY wg dZ?g dZ@g dZAg dZBg dZCg dZDg dZEg dZFg dZGg dZHd  ZI G d! d"          ZJ G d# d$          ZK G d% d&          ZL G d' d(          ZM G d) d*          ZN G d+ d,          ZOe- G d- d.                      ZP G d/ d0          ZQ G d1 d2          ZR G d3 d4          ZSd5 ZT G d6 d7          ZU G d8 d9          ZV G d: d;          ZWg d<ZXe- G d= d>                      ZYe- G d? d@                      ZZ G dA dB          Z[ G dC dD          Z\ e6dEdFG          ej5        ]                    dH          e- G dI dJ                                              Z^g dKZ_ G dL dM          Z` G dN dO          Za G dP dQ          Zb G dR dS          Zc G dT dU          Zd G dV dW          Zee- G dX dY                      Zf G dZ d[          Zg G d\ d]          Zhe- G d^ d_                      Zi G d` da          Zje- G db dc                      ZkdS )d    N)partial)RandomState)assert_array_equalassert_almost_equalassert_array_lessassert_array_almost_equalassert_assert_allcloseassert_equalsuppress_warnings)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)array_api_compatible)array_namespaceis_numpy)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/$?r/   r-   ףp=
?r.   r*   r-   r(   r(   )
gGz?r,   r.   r*   r2   r.   r)   r(   r,   r(   )
r)   r)   gCl?Gz?r,   rh|?r(   r+   g\(\?r(   )
羟/$?gh|?5?r5   r/   r0   r,   r2   r)   g1Zd?r(   )
r3   Mb?r(   gjt?r)   r*   g}?5^I?g)\(?r(   r,   )
r)   r*   r'   r*   r,   r(   r)   r(   r,   r'   )
r,   r)   r(   r2   r(   r6   r6   r)   r-   r1   )
r1   r2   r4   r.   r/   r/   r1   r)   r6   r/   c                  R    t          j        t          j        j        | i |          S N)nplogr   gammarvs)argskwargss     `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/stats/tests/test_morestats.py_old_loggamma_rvsr@   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   	            rJ            "@gURH#j@gV[%@ư>rtol      $@gai	@gӇu8@&.>_紫@   decimalgYs?g1O@+=)r   	bayes_mvsr   	statisticr
   minmaxselfdatameanvarstds        r?   
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"	$ 	$ 	$ 	$ 	$ 	$rA   c                 F    t          t          t          j        g            d S r8   )assert_raises
ValueErrorr   rZ   r^   s    r?   test_empty_inputzTestBayes_mvs.test_empty_input[   s    j%/266666rA   c                     t          j        d          }d}t          j        |          }|D ]}t	          ||           d S )N   )r[   r\   )r9   aranger   rZ   r   )r^   x
attributesresis        r?   test_result_attributesz$TestBayes_mvs.test_result_attributes^   sO    IbMM,
oa   	/ 	/A:....	/ 	/rA   N)__name__
__module____qualname__rc   rh   rp    rA   r?   rC   rC   H   sA        $ $ $$7 7 7/ / / / /rA   rC   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 )NrE   rL   ?rM   rY   rO   rQ   rR   rS   rT   rU   rV   rX   )r   mvsdistr   r`   r
   intervalr]   s        r?   rc   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rA   c                 F    t          t          t          j        g            d S r8   re   rf   r   ry   rg   s    r?   rh   zTestMvsdist.test_empty_inputw   s    j%-44444rA   c                 L    dg}t          t          t          j        |           d S Nr   r|   r^   r_   s     r?   test_bad_argzTestMvsdist.test_bad_argz   s#    sj%-66666rA   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 rt   r`   .0rl   s     r?   
<listcomp>z*TestMvsdist.test_warns.<locals>.<listcomp>   s     888!QVVXX888rA   r   r      c                 6    g | ]}|                                 S rt   r   r   s     r?   r   z*TestMvsdist.test_warns.<locals>.<listcomp>   s     >>>!QVVXX>>>rA   r   r   r         )warningscatch_warningssimplefilterRuntimeWarningr   ry   rg   s    r?   
test_warnszTestMvsdist.test_warns   s     $&& 	? 	?!'>:::88u}YYY778888>>u}___==>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   AA<<B B N)rq   rr   rs   rc   rh   r   r   rt   rA   r?   rv   rv   g   sS        M M M5 5 57 7 7
? ? ? ? ?rA   rv   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=
ף@   ?rF   rV      Ɍ?)(\?=
ף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
             r?   rc   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GrA   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   rF   rV   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         r?   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DrA   rl   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[   r9   nanr   r^   rl   rn   s      r?   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 )NrQ   rG   )	r9   rk   r   r   r   r   r[   r   r   )r^   rl   r   r   r   s        r?   test_nan_inputzTestShapiro.test_nan_input   s    IcNNv!a  2}Q''Q\+RV444 	B'''L/88888rA   c                     t          j        g d          \  }}t          j        |          }d}t          ||d           d S )N)i i = i@ )gPq~?gF?h㈵>rO   )r   boxcoxr   r
   )r^   	trans_valmaxlogrn   refs        r?   test_gh14462zTestShapiro.test_gh14462   sP     "L)A)A)ABB	6mI&& 2St,,,,,,rA   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?rN   rO   )r   r   r   r
   r[   )r^   rn   rl   s      r?   test_length_3_gh18322z!TestShapiro.test_length_3_gh18322   sv     m:::;;zQ KJJmA'7888
O$??????rA   N)rq   rr   rs   rc   r   r   markparametrizer   r   r   r   rt   rA   r?   r   r      s        )H )H )HVE E E* [S2sQF"344- - 54-9 9 9- - -"@ @ @ @ @rA   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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   r9   onesr
   )r^   rsr   r   Acritsigvs           r?   test_normalzTestAnderson.test_normal  s    $$$$"$--R((~b))4$ss)Q'''~b))4!T"##Y'''GBKK!~a((4 	8$$$$$rA   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   r9   errstater	   )r^   r   r   r   r   r   r   s          r?   
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   )r9   r   r   r   lengumbel_lfitlogcdflogsfrk   r`   r
   )r^   r   a2r   r   nxbarsr  r  ro   expected_a2s               r?   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(((((rA   c                 L    t          t          t          j        dgd           d S Nr   plate_of_shrimpdist)re   rf   r   r   rg   s    r?   r   zTestAnderson.test_bad_arg2  s$    j%.1#<MNNNNNNrA   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   rl   rn   rm   s        r?   rp   z#TestAnderson.test_result_attributes5  sO    $$###,,nQK
C,,,,,rA   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   rl   A1crit1sig1A2crit2sig2s	            r?   test_gumbel_lzTestAnderson.test_gumbel_l<  sh     $$II3I.H55E4.J77E4BrA   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  r9   r   r   r   r   r	   )
r^   r   r   r   r  r  r  r   r!  r"  s
             r?   test_gumbel_rzTestAnderson.test_gumbel_rF  s     $$YYCY  WS\\ 1.Z88E4.Z88E4"eBCCj)))U2YrA   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`?rO   gp=
ף?MbP?r   r   g?r   皙?g?atol)r9   arrayr   r   
fit_resultparamsr
   r[   r  r   r  )
r^   rl   rn   mr   r   cAs40As45As_refs
             r?   test_weibull_min_case_Az$TestAnderson.test_weibull_min_case_AU  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$??????rA   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        rH   F      rC    ;            iF  z/Maximum likelihood estimation has converged to r   r/  )r9   r6  r   r   rf   r   r   )r^   rl   messages      r?   test_weibull_min_case_Bz$TestAnderson.test_weibull_min_case_Bh  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   rH   =   +   rC  z:Critical values of the test statistic are given for the...z;An error occurred while fitting the Weibull distribution...r   r/  )	r9   r6  r   r   UserWarningr   rf   r   r   )r^   rl   wmessageemessagewcontextecontexts         r?   test_weibull_warning_errorz'TestAnderson.test_weibull_warning_errorp  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   )
r9   randomdefault_rnggetattrr   r   r<   r   r7  success)r^   rZ  rngreal_distnamer  r8  rl   rn   s           r?   test_anderson_fit_paramsz%TestAnderson.test_anderson_fit_params{  s    
 i##$677'/3I'I'I& 	um,,-(DHf4c:::nQ))~%%%%%%rA   c                     d}t          t          d|z            t          d                    t          j        }t          t          d|z            t          d                    d S )Nr   r   r   )r   r   r   r9   inf)r^   r9  s     r?   test_anderson_weibull_Asz%TestAnderson.test_anderson_weibull_As  sV    _QqS))>"+=>>>F_QqS))>!+<=====rA   N)rq   rr   rs   r   r  r  r   rp   r#  r&  r>  rM  rY  r   r   r   rf  ri  rt   rA   r?   r   r      s       % % %.  ) ) ) O O O- - -          @ @ @&- - -	- 	- 	- [ZO O OP P	& 	&P P	&> > > > >rA   r   c                   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@rq        F@g     F@rp  ffffffA@rt  g33333A@gB@gfffffB@gD@gffffffE@Fmidrankg@r   gCl?gvq-?g,Ԛ?gl@gPk	@r   r   r   gJ4a?Mb0?r4  r9   r6  r   anderson_ksampr   r   r
   r^   t1t2t3t4Tktmps           r?   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0rA   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 )Nrm  rn  ro  rs  Tru  gQ@r   rw  r   r   r   r0  rx  r4  ry  r{  s           r?   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0rA   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   rj   )   rC  !      i  rU   :   %   r   A   rG      i     $      v   
"         r  C   rA  >   rI      r  Z   r   <      rR  1   rU      8      O   T   ,   rH  rC  r        i6  L   rK  r     r        rE  e   r  r@  rA  rB  rC  rD  rH   rE  rF  rC  rG  rH  rI  7   i@  r  h         /            r  r  i  W   rI   x   rU   r  r  r(  G   r  rF  *   r  r   rH   r     r   rU   r  r  rU   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   rj         r  X   r  r   r   r  r        r     r  rK   rU   	g  rG   rH   i  i[  r   r  r   i  r      r   i  #   rH   i  r  r   rI   b   r   U   [   rS     r   r  r     rU   rA  r      r  rH        rI  rU   r  B   rR  r  Fru  gM
@r   g^I+?g~:?g+e?gH.!@gcZB>h@r   r   r   	^)p?rx  r4  l   <Ic i'  n_resamplesrd  )rv  methodga2U0*C?)r   rz  r   r   r
   r9   r`  ra  PermutationMethodr   r[   r  r   )r^   r|  r}  r~  r  t5t6t7t8t9t10t11t12t13t14samplesr  r  r  rd  r  rn   s                         r?   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1rA   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  Tru  g'1Z
@r   r  r   r   r   r  rx  r4  )r   rz  r   r   r
   )r^   r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s                     r?   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0rA   c                 N   t          j        ddd          }t                      5 }|                    t          d           t          j        ||dz   gd          \  }}}d d d            n# 1 swxY w Y   t          |dd	           t          |d
           t                      5 }|                    t          d           t          j        ||dz   g          \  }}}d d d            n# 1 swxY w Y   t          |dd	           t          |d
           t                      5 }|                    t          d           t          j        ||dz   gd          \  }}}d d d            n# 1 swxY w Y   t          |dd           t          |d           t                      5 }|                    t          d           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   zp-value floored)rL  g     @D@Fru  g=
ףpD@r   r1  gGzD@zp-value capped      ?g?ܵr         ?g?ܵ      @g!u?gףp=
׳?{Gzt?r   r5  rP   rF   gBiq?g鷯?      '@g:M@g46<Rv?gMb@?g      +@g6>W[1@g1ZGUS?-C6?)
r9   linspacer   filterrT  r   rz  r   r   r
   )r^   r   supr  _r  s         r?   test_R_kSamplesz!TestAndersonKSamp.test_R_kSamples  sY   B [C%%    	KCJJ{,=J>>>*BT	?EJJJGAq!	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Avq)))Q   	<CJJ{,=J>>>*BT	?;;GAq!	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	Avq)))Q    	ICJJ{,<J===*BR=%HHHGAq!	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Aw***Q   	:CJJ{,<J===*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   <A--A14A1':C--C14C1'<E//E36E3):G//G36G3c                 j    t          t          t          j        t	          j        d                     d S Nr   re   rf   r   rz  r9   r   rg   s    r?   test_not_enough_samplesz)TestAndersonKSamp.test_not_enough_samplesI  s%    j%"6

CCCCCrA   c                     t          t          t          j        t	          j        d          t	          j        d          f           d S r  r  rg   s    r?   test_no_distinct_observationsz/TestAndersonKSamp.test_no_distinct_observationsL  s=    j%"6wqzz271::.	0 	0 	0 	0 	0rA   c                 n    t          t          t          j        t	          j        d          g f           d S r  r  rg   s    r?   test_empty_samplez#TestAndersonKSamp.test_empty_sampleP  s*    j%"6R8HIIIIIrA   c                     g d}t          j        g d          }t          j        ||fd          }d}t	          ||           t          |j        |j                   d S )Nrm  rn  Fru  r  )r9   r6  r   rz  r   r   r  r   )r^   r|  r}  rn   rm   s        r?   rp   z(TestAndersonKSamp.test_result_attributesS  sl    ===XFFFGG"B8U;;;K
C,,,S+SZ88888rA   N)rq   rr   rs   r  r  r   r   xslowr  r  r  r  r  r  rp   rt   rA   r?   rk  rk    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 	9rA   rk  c                   D   e Zd Zd Zd Zd Zej                            dg dgfdgg fg          d             Z	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dS )
TestAnsaric                    g d}g d}t                      5 }|                    t          d           t          j        ||          \  }}d d d            n# 1 swxY w Y   t          |dd           t          |dd           d S )Nr   r   r   r   r   r   r   rF   r   rF   r   r   r   %Ties preclude use of exact statistic.g     7@r  g8#oG?)r   r  rT  r   ansarir   )r^   rl   yr  Wpvals         r?   
test_smallzTestAnsari.test_smalla  s    OO$$$   	)CJJ{$KLLLl1a((GAt	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	AtR(((D"5r:::::s   4AAAc                 L   t          j        d          }t          j        d          }t                      5 }|                    t          d           t          j        ||          \  }}d d d            n# 1 swxY w Y   t          |dd           t          |dd           d S )Nr  rQ  r   c   r  r  m   l   r  r&  r  `   r  r  rQ  q   t   r*  n   r  rQ  r(  r  r  i   g   r,  r.  r  r   r)  r(  r/  r  r   r0  r*  r(  r  r&  r  g     0g@r  g|:?)r9   r6  r   r  rT  r   r  r   )r^   ramsayparekhr  r!  r"  s         r?   test_approxzTestAnsari.test_approxj  s     J K K $ % %    	3CJJ{$KLLLl6622GAt	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	Aub)))D"5r:::::s   4A77A;>A;c                     t          j        g dg d          \  }}t          |dd           t          |dd           d S )Nr   r   r   r   )rj   r   r  rJ   r   rH   rQ   r  g?rI   )r   r  r   )r^   r!  r"  s      r?   
test_exactzTestAnsari.test_exactx  sM    ,|||-C-C-CDD4AtR(((D"6:::::rA   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 r   )r   r   r   r   r   r  r   r[   r9   r   r   )r^   r=   rn   s      r?   r   zTestAnsari.test_bad_arg}  s    \,4IJJJ 	- 	-,%C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   AA;;A?A?c                     g d}g d}t                      5 }|                    t          d           t          j        ||          }d d d            n# 1 swxY w Y   d}t          ||           d S )Nr  r  r  r[   r   )r   r  rT  r   r  r   )r^   rl   r   r  rn   rm   s         r?   rp   z!TestAnsari.test_result_attributes  s    OO$$$   	%CJJ{$KLLL,q!$$C	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% -
C,,,,,s   1AAA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 )Nr5  r   rF   rI   rJ   z!'alternative' must be 'two-sided'r   fooalternative)re   rf   r   r  )r^   r   r   r   s       r?   test_bad_alternativezTestAnsari.test_bad_alternative  s    \\\\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A
A
c                 l   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          |          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   rj   r  r  )r  g      !@      #@g      %@r  g      )@lessr=  greaterffffff?皙?r   -q=r4  r   )r   r  r   r   apmfr  r
   )
r^   r   r   r[   r"  pval_lpval_gprobpval_l_reversepval_g_reverses
             r?   test_alternative_exactz!TestAnsari.test_alternative_exact  sW   '''...  ,r2..	4b"&999@b")<<<C}}}}}}}} |	3r77CGG<<T>>>> 	QU3333$tAvE:::: b"&AAAHb")DDDK$$$$$$$$$$rA   zx, y, alternative, expectedr5  r;  rC  g@A?rD  r   )r   r   rF   rI   rJ   gG$I?g%I$I?r   )rF   rI   rJ   c                 b    t          j        |||          j        }t          ||d           d S )Nr=  rG  r4  )r   r  r   r
   )r^   rl   r   r>  expectedr"  s         r?   test_alternative_exact_with_Rz(TestAnsari.test_alternative_exact_with_R  s8    8 |Aqk:::AhU333333rA   c                    t           j                            dddd          }t           j                            dddd          }t          j        ||d          j        }t          j        ||d	          j        }t          |d
d           t          |d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   rC  r=  rD  r*   rG  r4  r   r        ?r   )r   r   r<   r  r   r
   )r^   r   r   rJ  rK  r"  s         r?   test_alternative_approxz"TestAnsari.test_alternative_approx  sP   Z^^Aqs^==Z^^Aqs^== b"&999@b")<<<C%0000%0000 Z^^Aqr^<<Z^^As#^>>|B##*b"&999@b")<<<CQU3333$q&u555555rA   N)rq   rr   rs   r#  r3  r6  r   r   r   r   rp   r?  rO  rR  rV  rt   rA   r?   r  r  _  so       ; ; ;; ; ;; ; ;
 [VrA3i1#r%;<<- - =<-- - -4 4 4% % %6 [% ,,fo	>
,,i	A
))___fo	>
))___i	A
//999fo	>
//999i	A	C 4 4 4&6 6 6 6 6rA   r  c                       e Zd Zd Zd Zd Zej                            ddd          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 rt   asarrayr   argxps     r?   r   z*TestBartlett.test_data.<locals>.<listcomp>  #    000C

3000rA   gzU@ /4@gG?)g1g2g3g4g5g6g7g8g9g10r   bartlettr"   r\  )r^   r_  r=   Tr"  s    `   r?   	test_datazTestBartlett.test_data  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:::::rA   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   rf   r   rk  r\  )r^   r_  rL  s      r?   test_too_few_argszTestBartlett.test_too_few_args  s    A]:W555 	- 	-N2::rd++,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   )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 rt   r[  r]  s     r?   r   z7TestBartlett.test_result_attributes.<locals>.<listcomp>  r`  rA   r9  )r_  )ra  rb  rc  rd  re  rf  rg  rh  ri  rj  r   rk  r   )r^   r_  r=   rn   rm   s    `   r?   rp   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3rA   	jax.numpyTz8`var` incorrect when `correction > n` (google/jax#21330))cpu_onlyreasonskip_xp_backendsc                     t           t          t          t          t          t
          t          t          t          t          g f}fd|D             }t                    rGt          j        t          t                    5  t          j        | }d d d            n# 1 swxY w Y   nt"          j                                        5 }|                    t*          d           |                    t,          d           |                    t*          d           t          j        | }d d d            n# 1 swxY w Y                       j                  }t3          |j        |           t3          |j        |           d S )Nc                 :    g | ]}                     |          S rt   r[  r]  s     r?   r   z/TestBartlett.test_empty_arg.<locals>.<listcomp>  r`  rA   r   invalid value encounteredz$var\(\): degrees of freedom is <= 0.z!Degrees of freedom <= 0 for slice)ra  rb  rc  rd  re  rf  rg  rh  ri  rj  r!   r   r   r   r   r   rk  r9   testingr   r  r   rT  r\  r   r#   r[   r   )r^   r_  r=   rn   r  NaNs    `    r?   test_empty_argzTestBartlett.test_empty_arg  s   
 BBBBC<00004000B<< 		,08MNNN , ,nd+, , , , , , , , , , , , , , , --// ,3

>+FGGG

;(OPPP

>+NOOOnd+, , , , , , , , , , , , , , , jj  s+++
C(((((s%   >BB BA D//D36D3c                 &   |                     g d|j                  }|                     g d|j                  }|                     g d|j                  }t          j        |||          }|                    |j        dk              sJ d S )N)g333333$@gffffff$@g$@g$@dtype)L$@     $@33333$@gfffff$@)g$@r  r  r  r   )r\  float32r   rk  r  r[   )r^   r_  rH  br:  rn   s         r?   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()))))))rA   N)rq   rr   rs   rm  ro  rp   r   r   ru  usefixturesr{  r  rt   rA   r?   rX  rX    s        ; ; ;- - -
4 4 4 [!!dI " K K [/00) ) 10K K)"* * * * *rA   rX  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )
TestLevenec           
          t           t          t          t          t          t
          t          t          t          t          g
}t          j        | \  }}t          |dd           t          |dd           d S )NgYpK?rI   gI{]?)ra  rb  rc  rd  re  rf  rg  rh  ri  rj  r   levener   )r^   r=   r!  r"  s       r?   rm  zTestLevene.test_data  sW    BBBBC8,%4A11555D/155555rA   c                     t          j        t          t          t          d          \  }}t          j        t          t          t          dd          \  }}t          ||           t          ||           d S )Nr`   centertrimmedr   r  proportiontocut)r   r  ra  rb  rc  r   )r^   W1pval1W2pval2s        r?   test_trimmed1zTestLevene.test_trimmed1!  sk     LRF;;;	ELRI146 6 6	EB###E5)))))rA   c                    g d}g d}t           j                            d           t           j                            |          }t	          j        ||dd          \  }}t	          j        ||dd          \  }}t	          j        |dd         |dd         d	
          \  }}	t          ||           t          ||           t          ||	           d S )Ng333333?       @      @      @      @      @      @g      Y@r   r        @r  g      @r  g      @      i@  r        ?r  r   r   r`   r  )r9   r`  seedpermutationr   r  r   )
r^   rl   r   r   W0pval0r  r  r  r  s
             r?   test_trimmed2zTestLevene.test_trimmed2*  s    666666
	tY""1%% LAi168 8 8	ELQy168 8 8	E L1R4!AbD'&AAA	EB###B###E5)))))rA   c                 `   t          j        ddd          }t           j                            d           t           j                            |          }|dz  }t          j        ||d          \  }}t          j        ||d          \  }}t          ||           t          ||           d S )	Nr   r   rF  r  r   r`   r  median)r9   r
  r`  r  r  r   r  r   )r^   rl   r   r   r  r  r  r  s           r?   test_equal_mean_medianz!TestLevene.test_equal_mean_median<  s    KAr""
	tY""1%%qDLAf555	ELQx888	EB###E5)))))rA   c                 x    t          j        ddd          }t          t          t          j        ||d           d S Nr   r   rF  皙?)portiontocut)r9   r
  re   	TypeErrorr   r  r^   rl   s     r?   test_bad_keywordzTestLevene.test_bad_keywordF  s6    KAr""iq!#FFFFFFrA   c                 x    t          j        ddd          }t          t          t          j        ||d           d S Nr   r   rF  trimr  )r9   r
  re   rf   r   r  r  s     r?   test_bad_center_valuez TestLevene.test_bad_center_valueJ  s6    KAr""j%,1VDDDDDDrA   c                 H    t          t          t          j        dg           d S r~   )re   rf   r   r  rg   s    r?   ro  zTestLevene.test_too_few_argsN  s    j%,44444rA   c           
          t           t          t          t          t          t
          t          t          t          t          g
}t          j        | }d}t          ||           d S )Nr9  )ra  rb  rc  rd  re  rf  rg  rh  ri  rj  r   r  r   )r^   r=   rn   rm   s       r?   rp   z!TestLevene.test_result_attributesQ  sC    BBBBC8lD!,
C,,,,,rA   c                     t          j        ddgddgg          }t          t          t          j        t          |           d S )Nr   r   r   r   )r9   r6  re   rf   r   r  ra  r  s     r?   test_1d_inputzTestLevene.test_1d_inputX  s:    Hq!fq!f%&&j%,A66666rA   N)rq   rr   rs   rm  r  r  r  r  r  ro  rp   r  rt   rA   r?   r  r    s        6 6 6* * ** * *$* * *G G GE E E5 5 5- - -7 7 7 7 7rA   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*   rO   iΙ gX7?i	ϙ g=?iϙ gybw?rS   r   	binomtestr
   r   r^   rP   rn   s      r?   test_two_sided_pvalues1z%TestBinomTest.test_two_sided_pvalues1d  s     oh$77
Cd3333oh$77
O$????oh$77
O$????oh$77
O$??????rA   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  rG   rF  r  r  r  gX-h?rO   r   g㤶y?r  g	y}?rI   g+,?r   r   r  g      ?r   r3  g{Gz?g333333?g<,?r  r  s      r?   test_two_sided_pvalues2z%TestBinomTest.test_two_sided_pvalues2r  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6rA   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   rO   r   r  gAL &W?rK   r  g!YB?rj   r  gE]t?rI   rF   r  r  r  s      r?   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1rA   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 r8   r   binomrI  r   r  r  s    r?   <lambda>z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s     +0;??2q!+D+D*D rA   rS   rO   rI   c                 F    t           j                            |           S r8   r  r  s    r?   r  z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s    */+//"a*C*C rA   )r9   rk   ceilr   r  rI  sumr   intr
   floor)	r^   kro   dy1ixy2r  r  s	          @@r?   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******rA   z"alternative, pval, ci_low, ci_high))rC  g$W?r   g?)rD  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  r>  rG  rO   皙?rE  confidence_level	r   r  r
   r   r   r[   proportion_cilowhighr^   r>  r"  ci_lowci_highrn   cis          r?   test_confidence_intervals1z(TestBinomTest.test_confidence_intervals1  s     obC4[III
Du5555S]C(((55)FG+<5IIIIIIrA   ))rC  ga&+w?r   gny?)rD  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  rN   rO   gQ?r3   r  r  r  s          r?   test_confidence_intervals2z(TestBinomTest.test_confidence_intervals2  s     oa2+FFF
Dt4444S]D)))55)FG+<4HHHHHHrA   zalternative, pval, ci_high))rC  gլ?g̓A?)rD  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  r>  rN   rO   rE  r  r   )r   r  r
   r   r  r   r  r  )r^   r>  r"  r  rn   r  s         r?   !test_confidence_interval_exact_k0z/TestBinomTest.test_confidence_interval_exact_k0  sx     oatEEE
Dt444455RVS!!!t444444rA   zalternative, pval, ci_low))rC  r*   r   )rD  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  rN   rO   rE  r  r*   )r   r  r
   r   r  r   r  r  )r^   r>  r"  r  rn   r  s         r?   %test_confidence_interval_exact_k_is_nz3TestBinomTest.test_confidence_interval_exact_k_is_n  sx     ob"+FFF
Dt444455RWc"""T222222rA   z+k, alternative, corr, conf, ci_low, ci_high)r   r  TrE  g`?g?)r   r  Tr3   grt!?g/?)r   r  FrE  gVK5?g5dM?)r   r  Fr3   gXCVu^?g*r[?)r   rC  TrE  r   gP-V?)r   rC  Tr3   r   g^'?)r   rC  FrE  r   gS5a?)r   rC  Fr3   r   g?)r   rD  TrE  g!Շ`ⰸ?r*   )r   rD  Tr3   g$x"?r*   )r   rD  FrE  gW~=?r*   )r   rD  Fr3   g	L?r*   )r   r  TrE  r   gX?)r   r  FrE  r   gN?)r   rC  TrE  r   g/<7#9?)r   rC  FrE  r   gAA?)r   rD  TrE  r   r*   )r   rD  FrE  r   r*   )r   r  TrE  g7?r*   )r   r  FrE  g؍s?r*   )r   rC  TrE  r   r*   )r   rC  FrE  r   r*   )r   rD  TrE  ghadn?r*   )r   rD  FrE  gAB/?r*   c                     t          j        |dd|          }|rd}nd}|                    ||          }	t          |	j        |	j        f||fd           d S )	Nr   r  r  wilsonccwilson)r  r  rN   rO   )r   r  r  r
   r  r  )
r^   r  r>  corrconfr  r  rn   r  r  s
             r?   test_ci_wilson_methodz#TestBinomTest.test_ci_wilson_method  sq    > oa2+FFF 	FFFVDD)FG+<4HHHHHHrA   c                     t          j        ddd          }t          |j        d           t          |j        d           d S )Nr   r  r  r*   )r   r  r   r[   r   r^   rn   s     r?   &test_estimate_equals_hypothesized_propz4TestBinomTest.test_estimate_equals_hypothesized_prop  sA     oaT**S]D)))SZ%%%%%rA   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   rf   r   r  )r^   r  r  s      r?   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  r  rg   s    r?   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   r  r   r  rg   s    r?   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...rU  r  r^   rL  s     r?   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   r  r  z/confidence_level \(-1\) must be in the intervalr   r   r  r   r  r   r   rf   r  )r^   rn   rL  s      r?   test_invalid_confidence_levelz+TestBinomTest.test_invalid_confidence_level1  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   r  r  z$method \('plate of shrimp'\) must ber   zplate of shrimpr  r	  r  s     r?   test_invalid_ci_methodz$TestBinomTest.test_invalid_ci_method7  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   r  ekkir  r  rg   s    r?   test_invalid_alternativez&TestBinomTest.test_invalid_alternative<  s    ]:-MNNN 	@ 	@OAs????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@r  c                 h    t          j        ddd          }t          |j        |j                   d S )Nr   r   r  r  )r   r  r   proportion_estimater[   r  s     r?   
test_aliaszTestBinomTest.test_alias@  s3    oa2---S,cm<<<<<rA   l        z32-bit does not overflowrt  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   rF   r  )r   r   OverflowErrorr   r  sys
float_infominrg   s    r?   test_boost_overflow_raisesz(TestBinomTest.test_boost_overflow_raisesD  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)rq   rr   rs   __doc__r  r  r  r  r   r   r   r  r  r  r  r  r  r  r  r   r  r
  r  r  r  skipifr  maxsizer  rt   rA   r?   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 8rA   r  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestFlignerc                 |    t          j        d          }t          t          j        ||dz            dd           d S )Nr   r   )gnf	@gDq?r  )r9   rk   r   r   fligner)r^   r   s     r?   rm  zTestFligner.test_dataM  sC    Yq\\!%-BE":":"L"$	& 	& 	& 	& 	&rA   c                 ^  	 t           j                            d          		fd} |t                    } |t                    } |t
                    }t          j        |||d          \  }}t          j        |||dd          \  }}t          ||           t          ||           d S )NrT  c                     t          j        |           d                    t          |                     z  z                                   S )Nr  )r9   r\  randnr  tolist)gr   s    r?   _perturbz+TestFligner.test_trimmed1.<locals>._perturbY  s9    JqMMEBHHSVV,<,<$<<DDFFFrA   r`   r  r  r   r  )	r9   r`  r   ra  rb  rc  r   r"  r   )
r^   r(  g1_g2_g3_Xsq1r  Xsq2r  r   s
            @r?   r  zTestFligner.test_trimmed1T  s     Y""3''	G 	G 	G 	G 	G hrllhrllhrll mCc&AAAemCc)479 9 9eD$'''E5)))))rA   c                     g d}g d}t          j        ||dd          \  }}t          j        |dd         |dd         d	          \  }}t          ||           t          ||           d S )
Nr  r  r  r  r  r   r   r`   r  )r   r"  r   )r^   rl   r   r,  r  r-  r  s          r?   r  zTestFligner.test_trimmed2g  s    666666mAq49; ; ;e mAadGQqtWVDDDeD$'''E5)))))rA   c                 x    t          j        ddd          }t          t          t          j        ||d           d S r  )r9   r
  re   r  r   r"  r  s     r?   r  zTestFligner.test_bad_keyword  s6    KAr""i13GGGGGGrA   c                 x    t          j        ddd          }t          t          t          j        ||d           d S r  )r9   r
  re   rf   r   r"  r  s     r?   r  z!TestFligner.test_bad_center_value  s6    KAr""j%-AfEEEEEErA   c                 H    t          t          t          j        dg           d S r~   )re   rf   r   r"  rg   s    r?   test_bad_num_argszTestFligner.test_bad_num_args  s    j%-!55555rA   c                 N   t          j        d          }t          j        t          t
                    5  t          j        ||dz  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   )r9   rk   r   r   r   r   r   r"  r   r[   r   r   r   s      r?   r{  zTestFligner.test_empty_arg  s    IaLL\,4IJJJ 	- 	--1a4,,C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   ABB!BN)
rq   rr   rs   rm  r  r  r  r  r2  r{  rt   rA   r?   r   r   K  s        & & &* * *&
* 
* 
*4H H HF F F6 6 6- - - - -rA   r   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   rC  )		enumerater9   r`  ra  integersziprangeshufflesplit)expected_resultsseedssir  rd  xytie_indnum_ties_per_indro   r  jrl   r   s                r?   mood_cases_with_tiesrB    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 2rA   c                   "   e Zd Zej                            d e                      d             Zej                            dg d          d             Zd Z	d Z
d Zd	 Zd
 Zd Zej                            dg d          d             ZdS )TestMoodz$x,y,alternative,stat_expect,p_expectc                     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;
        r=  gؗҜ<r4  Nr   moodr
   )r^   rl   r   r>  stat_expectp_expectr[   r   s           r?   test_against_SASzTestMood.test_against_SAS  sO    < "Jq!EEE	6YU;;;;&u555555rA   zalternative, expected))r  )3oXQ?gpL?)rC  )rK  gԣl?)rD  )rK  gpL?c                 d    g d}g d}t          j        |||          }t          ||           d S )Nr%  r-  r=  rF  )r^   r>  rQ  rl   r   rn   s         r?   test_against_SAS_2zTestMood.test_against_SAS_2  sP    < < <= = =jA;777X&&&&&rA   c                 N   t           j                            d           t           j                            dd          }t           j                            dd          }t	          j        ||          \  }}t	          j        ||          \  }}t          ||g| |g           d S )Nr  r   r   rj   )r9   r`  r  r%  r   rG  r   )r^   r   r   z1p1z2p2s          r?   test_mood_order_of_argsz TestMood.test_mood_order_of_args  s     		tY__R##Y__R##B##BB##B!2r(bS"I66666rA   c                     g d}g d}t          j        |          }t          j        |          }d|_        d|_        t          t	          j        ||d           ddg           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   )rj   r   r  g4g^}E	?)r9   r6  shaper   r   rG  )r^   r   r   s      r?   test_mood_with_axis_nonez!TestMood.test_mood_with_axis_none  s    4 4 4	H 	H 	H Xb\\Xb\\!%*R$"?"?"?#1="A	C 	C 	C 	C 	CrA   c                    d}t           j                            d           t           j                            d|          }t           j                            d|          }t	          j        ||          \  }}t          |          D ]G}t          ||         ||         gt	          j        |d d |f         |d d |f                              H|                                }|                                }t	          j        ||d          \  }}t          |          D ]G}t          ||         ||         gt	          j        ||d d f         ||d d f                              Hd S )Nr   r  r   rj   r   r  )	r9   r`  r  r%  r   rG  r8  r   	transpose)r^   nyr   r   	z_vectestpval_vectestrA  ro   s           r?   test_mood_2dzTestMood.test_mood_2d  sp    
	tY__R$$Y__R$$"'*R"4"4	<r 	F 	FA%y|\!_&E&+jAAAqD2aaad8&D&DF F F F \\^^\\^^"'*R!"<"<"<	<r 	F 	FA%y|\!_&E&+jAqqqD2ad8&D&DF F F F	F 	FrA   c           
         d}t           j                            d           t          j        j        | }t          j        j        | }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          |||	f         |||	f         gt          j        |
|                     d S )N)r   r   rF   r  r   r  r   r   r   )r9   r`  r  r%  r8  r   rG  r   )r^   rU  r   r   r  rZ  r[  axes_idxro   rA  slice1slice2s               r?   test_mood_3dzTestMood.test_mood_3d  s   
	tY_e$Y_e$!HH 	J 	JD&+jRd&C&C&C#I| AAA/H5$!2344 J JuXd^A%6788 J JAqyy!#AAAq!G!#AAAq!G!#Aqqq!G!#Aqqq!G!#Aq!!!G!#Aq!!!G-yA/;AqD/A/C.3j.H.HJ J J JJJ	J 	JrA   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   rG  r   r[   r9   r   r   r  s     r?   test_mood_bad_argzTestMood.test_mood_bad_arg9  s    \,4IJJJ 	- 	-*aS"%%C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   ABB
Bc                    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   g      ?r  r=  rC  rD  Hz>r4  r   r   z`alternative` must be...r   z	ekki-ekki)r9   r`  r  r   r   r<   rG  r
   r   r   rf   )	r^   rl   r   stat1rP  stat2rR  stat3p3s	            r?   test_mood_alternativezTestMood.test_mood_alternative@  s   
	qJNNCN00JNNCN00Jq!===	rJq!888	rJq!;;;	r&&&&&&&&&&AD))))BqD!!!A1H%%%]:-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   D<<E E r>  )r  rC  rD  c                     t           j                            d          }|                    d          }|                    d          }t	          j        |||          }t          |j        |j        f|           d S )Nl	   hTt fU6H~ )r   r   )rj   r   r=  )	r9   r`  ra  r   r   rG  r   r[   r   )r^   r>  rd  r   r   rn   s         r?   test_resultzTestMood.test_resultR  ss    i##$KLL  ))  ))jR[999cmSZ0#66666rA   N)rq   rr   rs   r   r   r   rB  rJ  rM  rS  rV  r\  ra  rc  rk  rm  rt   rA   r?   rD  rD    s4       [C11335 56 65 56@ [4@ @ @A A' 'A A'7 7 7C C C8F F F.J J J8- - -6 6 6$ [],L,L,LMM7 7 NM7 7 7rA   rD  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
   r9   sort)r^   rl   osmosrosm_expectedrn   res_fitres_fit_expecteds           r?   rc   zTestProbplot.test_basic^  s    JNNN77>!///SG G G
 	RWQZZ(((\***~aT222W???!122222rA   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   rt   )r   r   r<   rs  r
   )
r^   rl   osm1osr1osm2osr2osm3osr3ru  rv  s
             r?   test_sparams_keywordz!TestProbplot.test_sparams_keywordm  s    JNN&N99 ^At???
d^Aqe<<<
d^Aru===
dd###d###d###d###>!RU;;;SSSrA   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  rq  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     r?   r  z7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppf  s    z~~aQ~///rA   N)rq   rr   rs   r  r  rt   rA   r?   custom_distr    s)        HH0 0 0 0 0rA   r  )r   r{  )r  r
  )	r   r   r<   rs  r  r
   re   rf   AttributeError)r^   rl   r}  r~  r  r  r  s          r?   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#####rA   no matplotlibr  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<   rs  closer	   r  r
   )
r^   figrl   res1fitres1res2fitres2res3res4axs
             r?   test_plot_kwargzTestProbplot.test_plot_kwarg  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"----	rA   c                 L    t          t          t          j        dgd           d S r  )re   rf   r   rs  rg   s    r?   test_probplot_bad_argsz#TestProbplot.test_probplot_bad_args  s$    j%.1#<MNNNNNNrA   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 )NFrr  Tr   )r   r   rs  r9   r6  r   rg   s    r?   
test_emptyzTestProbplot.test_empty  s    U^BE222hrllBHRLL1	3 	3 	3U^BD111x||RXb\\2vrvs+-	. 	. 	. 	. 	.rA   c                 .   t          j        d          5  t          t          j        dgd          t          j        dg          t          j        dg          ft           j        t           j        dff           d d d            d S # 1 swxY w Y   d S )Nr  invalidr   Trr  r   )r9   r  r   r   rs  r6  r   rg   s    r?   test_array_of_size_onez#TestProbplot.test_array_of_size_one  s    [*** 	2 	26668RD>>28QC==96263/12 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   A'B

BBN)rq   rr   rs   rc   r  r  r   r   r  have_matplotlibr  r  r  r  rt   rA   r?   ro  ro  \  s        3 3 3< < <$ $ $( [O+ODD  ED0O O O. . .2 2 2 2 2rA   ro  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zej                            dg dg dg dg          d             Zd Zej        j        d             Zej                            dg d          d             Zd Zej                            dddg          d             Zej                            dd ej                    f          d             ZdS )TestWilcoxonc                     t          t          t          j        ddgddgd           t          t          t          j        ddgddgd           t          t          t          j        dgdz  d           d S )Nr   r   dummyr=  r   xyzr  )re   rf   r   wilcoxonrg   s    r?   test_wilcoxon_bad_argz"TestWilcoxon.test_wilcoxon_bad_arg  su     	j%.1a&1a&'JJJj%.1a&1a&")	+ 	+ 	+ 	+j%.1#b&GGGGGGrA   c                    t          j        d          }t          j        d          5  t          j        ||dd          \  }}t          ||fdt           j        f           t          j        ||dd          \  }}t          ||fdt           j        f           d d d            n# 1 swxY w Y   t          t          j        ||d	d          d
           d S )Nr  r  r  wilcox
asymptoticr  r   prattzsplit)g     @Z@r*   )r9   rk   r  r   r  r   r   )r^   rl   r   r  s       r?   test_zero_diffzTestWilcoxon.test_zero_diff  s   IbMM [*** 	0 	0>!QFFFDAq!Q#rv///>!QEEEDAq!Q#rv///		0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	U^Aq(<HHH#	% 	% 	% 	% 	%s   A3B))B-0B-c                 h    g d}g d}t          j        ||ddd          }t          |d           d S )Nr5  )r   r   r   r   r  r  F)zero_methodr  
correction)r   g|N?)r   r  r
   )r^   rl   r   rn   s       r?   
test_prattzTestWilcoxon.test_pratt  sN     LLLLnQw|(-/ / /788888rA   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  r  r  r  )r   r  )r^   arrr  s      r?   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rA   c                 l   g d}t          dd          }t          j        d t          ||          D                       }t          j        |j                  }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           t          j	        g d          }t          j	        g d          }t          j        ||dd          \  }}t          |d           t          |dd           t          j        ||dd          \  }}t          |d           t          |dd           d S )N)	r   r   r  rj   rJ   r   r   r   r   r   c                      g | ]\  }}|g|z  S rt   rt   )r   ur   s      r?   r   z7TestWilcoxon.test_accuracy_wilcoxon.<locals>.<listcomp>  s"    @@@1QC!G@@@rA   r  r  Fr  r  i  g.i?r  i  gFYv]Uj?r  iG  g%^ Ez?r  r0  r  r        y   r     r*     p         w   r+  r     r*  r*  s   r  r     r  r  r  g^҂<?rN   rO   Tg:b+?)r8  r9   concatenater7  zerosr   r   r  r
   r6  r   )r^   freqnumsrl   r   rl  r  s          r?   test_accuracy_wilcoxonz#TestWilcoxon.test_accuracy_wilcoxon  s   ,,,R||N@@D$@@@AAHQV~aGL).0 0 0130111~aH\).0 0 0130111~aH\).0 0 013+,,, HQQQRRHQQQRR~au\JJJ1Q940000~atLIII1Q94000000rA   c                 N   t          j        g d          }t          j        g d          }t          j        ||dd          }t          j        ||dd          }t          j        ||dd          }t          j        ||dd          }||cxk    r|cxk    r|k    sn J d S )N)r   r   r  rI      r  r  r   rJ   r2  rG   r  )r   r   r   r  r   r   rH   r  r&  rH      rI  r  approxr  r  )mode)r9   r6  r   r  )r^   rl   r   r  r  r  r  s          r?   test_approx_modezTestWilcoxon.test_approx_mode  s     H@@@AAHAAABB~aHX>>>~aH\BBB~aH8<<<~aH<@@@t++++t++++t++++++++rA   c                     t          j        g d          }t          j        g d          }t          j        ||dd          }d}t	          ||           d S )Nr  r  Fr  r  r9  )r9   r6  r   r  r   )r^   rl   r   rn   rm   s        r?   test_wilcoxon_result_attributesz,TestWilcoxon.test_wilcoxon_result_attributes  sa    HQQQRRHQQQRRnQeLIII,
C,,,,,rA   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 rj   r  r  r   exact
zstatistic)r9   r`  ra  r   r  r   r  r   r
   r  hasattr)r^   rd  rl   r   rn   r   s         r?   test_wilcoxon_has_zstatisticz)TestWilcoxon.test_wilcoxon_has_zstatistic  s    i##K00zz"~~szz"~~1nQ,777jnnSZ\**,,,nQ'2223-----nQ""3-------rA   c                    t          j        dgdz  dd          \  }}d}t          |d           t          ||d	           t          j        dgdz  d
d          \  }}d}t          |d           t          ||d	           d S )Nr  r   r  Fr  g4IťY?r   rN   rO   Tr  gc2_?)r   r  r   r
   )r^   statr  
expected_ps       r?   test_wilcoxon_tiezTestWilcoxon.test_wilcoxon_tie"  s     .#L,13 3 3a 
T1:D1111.#(46 6 6a 
T1:D111111rA   c                    g d}g d}t          j        ||ddd          \  }}t          |d           t          |dd	
           t          j        ||ddd          \  }}t          |d           t          |dd	
           t          j        ||ddd          \  }}t          |d           t          |dd	
           t          j        ||ddd          \  }}t          |d           t          |dd	
           d S )N)
}   r  r     r  r  r  r  r  r,  )
r,  z   r  r  r  |   rT     r,     rC  r  F)r>  r  r  rI  g13}?rF   rV   T)r>  r  r  g7a%?rD  g?gڏoJT?)r   r  r   r   )r^   rl   r   r   r  s        r?   test_onesidedzTestWilcoxon.test_onesided7  sN    ?>>>>>~a|).0 0 01QAy!4444~a4%13 3 31QAy!4444~a	%1eE E E1QAy!4444~a	)-lD D D1QAy!444444rA   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   )r8  r   r   r   r  r  r   )r^   r  pmf1pmf2s       r?   test_exact_basiczTestWilcoxon.test_exact_basicW  s    q" 	2 	2A&q))D'**DAaCQD		222TA&&&%dD1111	2 	2rA   c                    t          j        g d          }t          j        g d          }t          j        ||dd          \  }}t	          |dd           t          j        ||d	d          \  }}t	          |d
d           t          j        ||dd          \  }}t	          |dd           t          j        dd          dz   }t          j        ddd          }t          j        ||dd          \  }}t	          |dd           t          j        ||d	d          \  }}t	          |dd           t          j        ||dd          \  }}t	          |dd           d S )N)
g(\?g=
ףp=?g(\?gQ޿gQ?g{Gz?gp=
ףgq=
ףp?g      gQ?)
r   g?gɿg333333?皙gܿgzGgQοg(\gRQr  r  r>  r  g֔  ?rF   rV   rC  gYJ?rD  g*  ?r   r  r  r   g(?g(?gS?)r9   r6  r   r  r   rk   )r^   rl   r   r  r  s        r?   test_exact_pvalzTestWilcoxon.test_exact_pval_  s   H # # # $ $H $ $ $ % %~aGLLL1Ay!4444~awGGG1Ay!4444~a	'JJJ1Az15555Ias"Ib!R  ~aGLLL1Ay!4444~awGGG1Ay!4444~a	'JJJ1Ay!444444rA   rl   )r   r   r   )r   r   r2  r  r   )r   r   r   r  rA  irI   rJ   c                     t          j        |          \  }}t          j        |          }||dk                                             }t          ||           t          |d           d S Nr   r   )r   r  r9   r6  r  r   )r^   rl   r   r  wtrues        r?   test_exact_p_1zTestWilcoxon.test_exact_p_1{  s_     ~a  1HQKK!a%QQrA   c                 b   t          j        dd          dz   }t          j        ddd          }t          t          j        ||          t          j        ||d                     t          j                    }t          j        dd          }t          j        |          \  }}t          ||ft          j        ||                     t          j        d	d
          }t          j        |          \  }}t          ||ft          j        |d                     d||dk    <   t          j        |          \  }}t          ||ft          j        |d                     t          j        dd          }t          t          j        |          t          j        |d                     d S )Nr   r   r  r   r  r  r   r   rA  rG   r  r   r  )r9   rk   r   r   r  r  )r^   rl   r   pmr  r   r  s          r?   	test_autozTestWilcoxon.test_auto  s   Ias"Ib!R  U^Aq))^Aq999	; 	; 	; $&&Ib!~a  1
 	aVU^Ab999::: Ib!~a  1aVU^AlCCCDDD!q&	~a  1aVU^AlCCCDDD IaU^A&&q(N(N(NOOOOOrA   c                     t          j        dd          }t          j        |          }d}t	          ||           d||dk    <   t          j        |          }d}t	          ||           d S )NrA  rJ   )g     ;@g     P?r   r   )r  g     0?)r9   rk   r   r  r   )r^   r  rn   r   s       r?   test_auto_permutation_edge_casez,TestWilcoxon.test_auto_permutation_edge_case  sp     Ib!nQ"S#!q&	nQ S#rA   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          t          j	        |j        d
          |j                   t          |j        |j                   d S )Nl   aQG1X@
r   r  r  r   l   VsWFr&  r  )r  r   r   )
r9   r`  ra  r   r  r  r   r[   r   round)r^   r   rd  rl   rn   r   r  s          r?   test_permutation_methodz$TestWilcoxon.test_permutation_method  sS   i##$566JJDJ!!nQu'>'@'@AAAnQw///S]CM222SZ,,,JJDGJ$$i##$566$===nQr***i##$566$#FFFnQr***RXcj!,,cj999SZ,,,,,rA   c                 J   t           j                            d          }|                    d          }t           j        |d<   t          j        |          }t          j        |d          }t          ||           t          |d          sJ t          |d          rJ d S )Nl   HF )Z )r  r   r   )r   r   r  r  r  )	r9   r`  ra  normalr   r   r  r
   r  )r^   rd  r   rn   r   s        r?   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$$&$nQnQ|444S!!!sL)))))3-------rA   r  r  r  c                 t   g d}g d}t          j        ||d|          }t          j        ||d|          }t          |          t          |          dz   z  dz  }t          |j                  |j        k    sJ t          ||j        z
  |j        d	           t          |j        |j        d	           d S )
N)
r  r  rR  r  r@  r  r  r  r  rH  )
r  r  E   rR  rO  r  r  r  r  r  rC  r  rD  r   r   V瞯<rO   )r   r  r  r  r[   r
   r   )r^   r  var1var2r   rn   max_statistics          r?   test_symmetry_gh19872_gh20752z*TestWilcoxon.test_symmetry_gh19872_gh20752  s     877777nT4VFKKKnT4YvNNND		SYY]3a73=!!S]22225s}5QQQQ
CJU;;;;;;rA   c                 z    t          j        t          j        d          |          }t	          |ddg           d S )Nr   r  r   r   )r   r  r9   r  r
   )r^   r  rn   s      r?   test_all_zeros_exactz!TestWilcoxon.test_all_zeros_exact  s:    
 nRXa[[888aV$$$$$rA   N)rq   rr   rs   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  rt   rA   r?   r  r    s       H H H% % %9 9 9K K K1 1 1@	, 	, 	,- - -. . .2 2 2*5 5 5@2 2 25 5 58 [S;;;#5#5#5#@#@#@#B C C C CP P P< [   [VZZZ00- - 10-(. . .  [X'>??
< 
< @?
< [X1H1H1J1J'KLL% % ML% % %rA   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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           |                    t           j                            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}  rq  r}  c                 :    g | ]}t          j        |          S rt   )r   kstat)r   r  r_   s     r?   r   z>TestKstat.test_moments_normal_distribution.<locals>.<listcomp>  s%    IIIqek$22IIIrA   r5  )gHQ,?glZ)rI?g88}?gcJN?r	  rO   r   )orderr   r   r   g{Gz?{Gz?r  )
r9   r`  r  r\  r%  float64r~  r"   r   moment)r^   r_  momentsrQ  m1m2m3r_   s          @r?    test_moments_normal_distributionz*TestKstat.test_moments_normal_distribution  s   
	uzz")//%00
zCC**IIIILIIIJJ::III$(J  0 05555 \$a(((\$a(((\$a(((

BB<00(3B3-dQUVVVVVVrA   c                    t          |          r`t          j        t          t                    5  t          j        |                    g                     }d d d            n# 1 swxY w Y   nTt          j	        d          5  t          j        |                    g                     }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\  r9   r  r#   r   )r^   r_  rn   s      r?   rh   zTestKstat.test_empty_input  s=   B<< 	208MNNN 2 2k"**R..112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 X... 2 2k"**R..112 2 2 2 2 2 2 2 2 2 2 2 2 2 2RZZ//00000s#   (A$$A(+A((B99B= B=c                 
   |                     d          }|                    |dk    |                    |j                  |          }t	          t          j        |          |                    |j                             d S NrQ   rF   rk   wherer\  r   r#   r   r  r^   r_  r_   s      r?   r   zTestKstat.test_nan_input  f    yy~~xx	2::bf#5#5t<<D))2::bf+=+=>>>>>rA   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  )rk   r   r   rf   r   r  )r^   r  r_  r_   rL  s        r?   test_kstat_bad_argzTestKstat.test_kstat_bad_arg  s     yy}};]:W555 	# 	#K""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#r  case))r   gM~,@)r   2.L)@)r   gP'')r    -"bac                     |\  }}t          j        |                    t                    |          }t	          ||                    |                     d S r8   )r   r  r\  x_kstatr"   )r^   r)  r_  r  r   rn   s         r?   test_against_RzTestKstat.test_against_R  sJ     3k"**W--q11RZZ__-----rA   N)rq   rr   rs   r  rh   r   r   r   r   r(  r.  rt   rA   r?   r  r    s        W W W1 1 1? ? ? [S1e*--# # .-# [V &? &? &? @ @. .	@ @. . .rA   r  c                       e Zd Zd Zd Z edd          ej                            d          d                         Z	d Z
d	S )
TestKstatVarc                    |                     g           }t          |          rMt          j        t          t
                    5  t          j        |          }d d d            n# 1 swxY w Y   nAt          j	        d          5  t          j        |          }d d d            n# 1 swxY w Y   t          ||                     |j                             d S r  )r\  r!   r   r   r   r   r   kstatvarr9   r  r#   r   )r^   r_  rl   rn   s       r?   rh   zTestKstatVar.test_empty_input0  s8   JJrNNB<< 	(08MNNN ( (nQ''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( X... ( (nQ''( ( ( ( ( ( ( ( ( ( ( ( ( ( (RZZ//00000s$   A&&A*-A*B((B,/B,c                 
   |                     d          }|                    |dk    |                    |j                  |          }t	          t          j        |          |                    |j                             d S r!  r"  r$  s      r?   r   zTestKstatVar.test_nan_input:  r%  rA   Tz2input validation of `n` does not depend on backendnp_onlyrt  ru  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   r'  )r   r   rf   r   r2  )r^   r_   r  rL  s       r?   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 )Nr*  r+  r   r   )r  r-  r   r2  r\  r"   )r^   r_  r  k2k4rn   r   s          r?   test_against_R_mathworldz%TestKstatVar.test_against_R_mathworldK  s    
 LLnRZZ00!441fRZZ__---nRZZ00!44QwqyAaC8#QqS	2RZZ__-----rA   N)rq   rr   rs   rh   r   ru  r   r   r  r   r:  rt   rA   r?   r0  r0  .  s        1 1 1? ? ? dQS S S[/00& & 10S S&. . . . .rA   r0  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_  r@   rl   rg   s    r?   setup_methodzTestPpccPlot.setup_method_  !    "13WEEEIrA   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_plotrl   r
   r9   r
  )r^   rF  svalsppccppcc_expecteds        r?   rc   zTestPpccPlot.test_basicb  sm    odfc2;;;t% % %r{3:::;;;m,,,,,rA   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 )NrD  r   tukeylambdar  g#B;rO   )r   rI  rl   rN  r
   )r^   svals1ppcc1svals2ppcc2svals3ppcc3s          r?   	test_distzTestPpccPlot.test_distj  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1rA   r  r  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   rI  rl   delaxesr  r^   r  r  s      r?   r  zTestPpccPlot.test_plot_kwargv  s     jll__S!!Rc2222B __S!!Rb1111	rA   c                     t          t          t          j        | j        dd           t          t          t          j        g dddd           d S )Nr   r   r   r  r  )re   rf   r   rI  rl   rg   s    r?   test_invalid_inputsz TestPpccPlot.test_invalid_inputs  sR    j%/461a@@@ 	j%/999a,	. 	. 	. 	. 	. 	.rA   c                     t          j        g dd          \  }}t          |t          j        ddd                     t          |t          j        dt                               d S )Nr   r   r  rG  r}  )r   rI  r
   r9   r
  r  float)r^   rJ  rK  s      r?   r  zTestPpccPlot.test_empty  sa     ob!Q//tr{1aR888999bhr77788888rA   N)rq   rr   rs   rA  rc   rU  r   r   r  r  r  r[  r  rt   rA   r?   r<  r<  ^  s        J J J- - -
2 
2 
2 [O+ODD
 
 ED
. . .9 9 9 9 9rA   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  )re   rf   r   ppcc_maxr   s     r?   test_ppcc_max_bad_argz!TestPpccMax.test_ppcc_max_bad_arg  s)    sj%.$=NOOOOOOrA   c                     t           j                            ddddd          dz   }t          t          j        |          dd	
           d S )Nffffffr   r  '   r        @{rI   rV   )r   rN  r<   r   ra  r  s     r?   test_ppcc_max_basiczTestPpccMax.test_ppcc_max_basic  sX    !!$ASu/6 " 8 8:=>EN1--/CQOOOOOOrA   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 )Nrd  r   r  re  rf  r   rg  rN  r  rh  r   rV   )r   rN  r<   ra  r   )r^   rl   max1max2max3s        r?   rU  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BrA   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 )Nrd  r   r  re  rf  r   rg  )r   r*   r  brack)r   r   rh  rI   rV   r   r   )r   rN  r<   re   rf   ra  r   r  s     r?   
test_brackzTestPpccMax.test_brack  s    !!$ASu/6 " 8 8:=>j%.!?KKKKEN1F;;;0!	= 	= 	= 	= 	EN1G<<<0!	= 	= 	= 	= 	= 	=rA   N)rq   rr   rs   rb  ri  rU  rr  rt   rA   r?   r_  r_    sY        P P P
P P P
C C C	= 	= 	= 	= 	=rA   r_  rr  z)JAX arrays do not support item assignmentr  ru  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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 )	Nre  r   1  r   r   r   r   r}  r  r   )rb  r   r   r<   
boxcox_llfr\  r   r9   r:   r  rb   r"   )r^   r~  r_  dtrl   lmbdallfllf_expecteds           r?   rc   zTestBoxcox_llf.test_basic  s    RJNN2ENBBubjj"j&=&=>>w|bfRVAEEGGQJ-?-?&@&@@RZZBZ??@@@@@rA   Tz,array-likes only accepted for NumPy backend.r4  c                     t           j                            ddd          }d}t          j        ||          }t          j        |t	          |                    }t          ||d           d S Nr   r   rv  rw  r   rG  rO   )r   r   r<   rx  listr"   r^   r_  rl   rz  r{  llf2s         r?   test_array_likezTestBoxcox_llf.test_array_like  sg     JNN%N@@ua((tAww//T......rA   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<   rx  r9   vstackrl  r"   r\  r  s         r?   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MrA   c           
          |                     |                    t          j        d|                    g                                         sJ d S r~   )isnanr\  r   rx  )r^   r_  s     r?   r  zTestBoxcox_llf.test_empty  sC    xx

5#3Arzz"~~#F#FGGHHHHHHHrA   c                     |                     g d          }t          j        d|          }t          ||                     d                     d S )N)g     h@      m@r  g     x@ig#:x1)r\  r   rx  r"   r^   r_  r_   r{  s       r?   test_gh_6873zTestBoxcox_llf.test_gh_6873  sQ     zz66677r4((RZZ(:;;<<<<<rA   c                     |                     g d          }t          j        d|          }t          ||                     d|j                             d S )N)i  i  i  i  i  :0yE>gl.r}  )r\  r   rx  r"   r  r  s       r?   test_instability_gh20021z'TestBoxcox_llf.test_instability_gh20021  sW    zz88899tT** 	RZZ(=RZZPPQQQQQrA   N)rq   rr   rs   r   r   r   rc   ru  r  r  r  r  r  rt   rA   r?   rt  rt    s        
 [Wy)&<==A A >=A dKM M M/ /M M/N N NI I I= = =R R R R RrA   rt  (  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   rq  r_  r   rz  r   r   r   r   )
r@   r   r   r
   r9   r:   r  r   r   r  )r^   rl   xts      r?   test_fixed_lmbdazTestBoxcox.test_fixed_lmbda$  s   abu===A\!1%%%AE"""\!2&&&A!G$$$\!1%%%BF1II&&& \$q''+++BF1II&&& \"'"++q))R"&&&&&rA   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   rV   )r   r   r<   r   r   )r^   rz  rl   x_invr  r   s         r?   test_lmbda_NonezTestBoxcox.test_lmbda_None6  sh     JNNrDNAAUQ5&)\%((
FFBJ::::::rA   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 )Nr  r   r   r_  re  )alphagx@gv[%@rF  gxˉEk?g8Bhk @rI   r?  rj   r1  g\?gx̡&@r-   g7(U@gp:sY@)r9   r`  r   r@   r   r   r
   )r^   rd  rl   r  rz   s        r?   
test_alphazTestBoxcox.test_alpha@  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":;;;;;rA   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   )r9   r6  re   rf   r   r   r  s     r?   test_boxcox_bad_argzTestBoxcox.test_boxcox_bad_argQ  ss    Hb!Wj%,222j%,!>>>j%,1#s0D0DEEEEErA   c                 Z    t          t          j        g           j        dk               d S N)r   )r	   r   r   rU  rg   s    r?   r  zTestBoxcox.test_emptyZ  s(    R  &$./////rA   c                 b    t          j        t                    \  }}t          |dd           d S )NgsHjdrr   rO   r   r   _boxcox_datar
   )r^   r   lams      r?   r  zTestBoxcox.test_gh_6873]  s2    l++3 	YT222222rA   bounds)r   r   )r   r   )r   r  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  r  r   minimize_scalarfunr  s    r?   	optimizerzBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizerh  $    +C3<> > > >rA   rz  r  r   r   )r   r   r  )r^   r  r  r  rz  s    `   r?   $test_bounded_optimizer_within_boundsz/TestBoxcox.test_bounded_optimizer_within_boundse  sk    	> 	> 	> 	> 	> <DINNN5ay5,,,,6!9,,,,,,,,rA   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  r  r   xatolrG  c                 4    t          j        | d          S )Nr  )r  r  optionsr  )r  r  r  s    r?   r  zPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizerz  s*    +C3<gO O O OrA   r  r   r  )r^   r  rz  r  lmbda_boundedr  r  s        @@r?   2test_bounded_optimizer_against_unbounded_optimizerz=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizero  s    
 <D9995 #+uqy)E"	O 	O 	O 	O 	O 	O
 !<D2;= = ==%%%%vay11111rA   r  )strr   r   r  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   rf   r   r   r  r^   r  s     r?   $test_bad_optimizer_type_raises_errorz/TestBoxcox.test_bad_optimizer_type_raises_error  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~   rt   )r  s    r?   r  zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizer  s    1rA   z/return an object containing the optimal `lmbda`r   r  r  )r^   r  rL  s      r?   %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   rf   r   boxcox_normmax)r^   r  rL  s      r?   "test_negative_x_value_raises_errorz-TestBoxcox.test_negative_x_value_raises_error  s    
 8]:W555 	( 	( '''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   A  AArl   
     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   rT  r   r   r9   r  isfinite)r^   rl   xt_bclam_bcs       r?   test_overflowzTestBoxcox.test_overflow  s     \+-DEEE 	. 	.!LOOME66"+e,,------	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   A A**A.1A.N)rq   rr   rs   r  r  r  r  r  r  r   r   r   r  r  r  r  r9   r6  r   r  r  rt   rA   r?   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#  . . . . .rA   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   rq  r_  r@  rg   s    r?   rA  zTestBoxcoxNormmax.setup_method  !    "12EBBBQFrA   c                 \    t          j        | j                  }t          |dd           d S )Nm?rN   rO   r   r  rl   r
   r^   r   s     r?   test_pearsonrzTestBoxcoxNormmax.test_pearsonr  s/    %df--t444444rA   c                     t          j        | j        d          }t          |dd           t          j        | j                  \  }}t          ||           d S )Nmler  	.!?rN   rO   )r   r  rl   r
   r   )r^   r   r  maxlog_boxcoxs       r?   test_mlezTestBoxcoxNormmax.test_mle  s\    %dfU;;;t4444 !<//=v.....rA   c                 d    t          j        | j        d          }t          |ddgd           d S )Nr  r  r  r  rN   rO   r  )r^   
maxlog_alls     r?   test_allzTestBoxcoxNormmax.test_all  s9    )$&???

Xx$8tDDDDDDrA   r  )r  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    r?   r  zITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer  r  rA   )r  r  r   r   )r   r  rl   r9   r  )r^   r  r  r  r   s     `  r?   r  z6TestBoxcoxNormmax.test_bounded_optimizer_within_bounds  s    	> 	> 	> 	> 	> %dfV09; ; ;vfQi&()))))vfvay()))))))rA   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   r  i  c                       e Zd ZdS )?TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.MyResultN)rq   rr   rs   rt   rA   r?   MyResultr    s        DrA   r  c                     g }D ] }|                      | |                     !             }t          j        |                   |_        |S r8   )appendr9   argminrl   )r  objsrz  rn   r  lmbda_ranges       r?   r  z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizer  sX    D$ ( (CCJJ''''(**C	$0CEJrA   r  r   )r   r  rl   r9   r  r
  r
   )r^   rz  lmbda_roundedr  lmbda2r  r  s        @@r?   test_user_defined_optimizerz-TestBoxcoxNormmax.test_user_defined_optimizer  s     $TV,,**k-"4mD6H$OO	 	 	 	 	 	 	 		 	 	 	 	 	 %df	BBBt,,,,,rA   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)rp  r  z,`brack` must be None if `optimizer` is givenr   )g       r  )r   r  r   r  rl   r   r   rf   r  s     r?   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rl   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   r  r  re  r   )r   r   rT  r   r  r9   r  r   r   r  finfor  maxr  r
   sign)r^   rl   rL  rz  ymaxx_treme	y_extremes          r?   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   )r  )r   r   rf   r   r  rl   rg   s    r?   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@r  gi@)gKH9KH9r  r  r  r  r  )g    _Bgꌠ9Y>)FNr  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   r  r  re  r   rO   )r   r   rT  r   r  r9   r  r  absr   r  r~  r
   )r^   rl   r  r  kwarglmbr  ymax_ress           r?   '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   r  )r  r  r  rO   )r9   r\  r  r  r   r   rT  r   r  rh  r
   )r^   rl   r  x_32x_64lmb_32lmb_64s          r?   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)rq   rr   rs   rA  r  r  r  r   r   r   r  slowr  r  r  r  r9   r6  r  r  r  r  rt   rA   r?   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 3rA   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@  rg   s    r?   rA  zTestBoxcoxNormplot.setup_method=	  rB  rA   c                     d}t          j        | j        dd|          \  }}g d}t          |t	          j        dd|                     t          ||           d S )Nr   rD  r   rE  )g!X4}?g΁i?g-	15?gW$?g\ܱ{?rG  )r   boxcox_normplotrl   r
   r9   r
  )r^   rF  lmbdasrK  rL  s        r?   rc   zTestBoxcoxNormplot.test_basic@	  sn    ,TVS"BBB% % %C ; ; ;<<<m,,,,,rA   r  r  c                 N   t          j                    }|                    d          }t          j        | j        ddt                      |                    |           |                    d          }t          j        | j        dd|           t          j                     d S rW  )r  r  r  r   r  rl   rX  r  rY  s      r?   r  z"TestBoxcoxNormplot.test_plot_kwargH	  s     jll__S!!dfc2C8888B __S!!dfc2B7777	rA   c                     t          t          t          j        | j        dd           t          t          t          j        ddgdd           d S )Nr   r   r   )re   rf   r   r  rl   rg   s    r?   r[  z&TestBoxcoxNormplot.test_invalid_inputsU	  s@    j%"7AFFFj%"7"a!QGGGGGrA   c                 ^    t          t          j        g dd          j        dk               d S r  )r	   r   r  r   rg   s    r?   r  zTestBoxcoxNormplot.test_empty[	  s-    %b!Q//49:::::rA   N)rq   rr   rs   rA  rc   r   r   r  r  r  r[  r  rt   rA   r?   r  r  <	  s        J J J- - - [O+ODD
 
 ED
H H H; ; ; ; ;rA   r  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   rv  rw  r   rG  rO   )r   r   r<   yeojohnson_llfr  r
   r^   rl   rz  r{  r  s        r?   r  z"TestYeojohnson_llf.test_array_likea	  se    JNNN??"5!,,#E47733T......rA   c                     t           j                            ddd          }d}t          j        ||          }t          j        |t	          j        ||g          j                  }t          ||g|d           d S r~  )r   r   r<   r  r9   r  rl  r
   r  s        r?   r  z TestYeojohnson_llf.test_2d_inputh	  st    JNN%N@@"5!,,#E29aV+<+<+>??c
Du555555rA   c                 n    t          t          j        t          j        dg                                d S r~   )r	   r9   r  r   r  rg   s    r?   r  zTestYeojohnson_llf.test_emptyo	  s-    -a445566666rA   N)rq   rr   rs   r  r  r  rt   rA   r?   r  r  _	  sA        / / /6 6 67 7 7 7 7rA   r  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 )Nrq  r   r   r_  r   r   r  r   r   r   )	r9   r`  r   r@   r  r   
yeojohnsonr
   r:   )r^   rd  rl   r  posnegs         r?   r  zTestYeojohnson.test_fixed_lmbdau	  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7rA   rz  )r   r  r  r   c                    d }d}t           j                            d           t           j                            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   )r9   r  rU  r~  r  spacingexppower)rl   rz  r  r!  s       r?   _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LrA   i N  rf  r   r   )r   r   r   r  r4  r   rV   )r9   r`  r  r  r   r   r
   r   linalgr   r`   rb   )r^   rz  r(  	n_samplesrl   r  r  r   s           r?   r  zTestYeojohnson.test_lmbda_None	  s    
	 	 	& 	
	wI!9>>""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3rA   c                 Z    t          t          j        g           j        dk               d S r  )r	   r   r   rU  rg   s    r?   r  zTestYeojohnson.test_empty	  s)     $$*d233333rA   c                     t           j                            ddd          }t          j        |          \  }}t          j        t	          |                    \  }}t          ||d           d S )Nr   r   rv  rw  rG  rO   )r   r   r<   r   r  r
   )r^   rl   xt1r  xt2s        r?   r  zTestYeojohnson.test_array_like	  sd    JNNN??!!$$Q!$q''**QSu------rA   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 )NrF   r}  z>Yeo-Johnson transformation is not defined for complex numbers.r   )r9   rk   r   r   rf   r   r   )r^   r~  rl   err_msgs       r?   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 )NrJ   r}  rf  rO   )r9   rk   r  r   r   r
   )r^   r~  x_intx_floatxt_int	lmbda_intxt_floatlmbda_floats           r?   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::::::rA   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   rN   rO   )r9   r6  r   r   r   r
   )r^   rl   xt_yeolam_yeoxt_boxlam_boxs         r?   test_input_high_variancez'TestYeojohnson.test_input_high_variance	  s    H " " " # #  *1--,q1u--T2222t444444rA   rl   r*   r   r  rh        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   rf   r   r   )r^   rl   r>  r?  s       r?   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OptimizeResultrl   )r  r?  outresults       r?   r  z/TestYeojohnson.test_overflow.<locals>.optimizer
  s7    $S7(G(KKKC,..FFHMrA   raiser  r   )r?  r  rN   rO   r	  )	r9   r  r   r   r   r   r  ra   r
   )r^   rl   r  r>  r?  r@  rA  s          r?   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   rG  g3#I9gu?j/ gnFgZbtir  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 )NrM  r  )r9   r  r   r   r  r  r  ra   )r^   rl   r   r  r>  r?  s         r?   #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   rp  Nrq  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 )NrM  r  ro  r  )r9   r  astyper  r   yeojohnson_normmaxr   r  r  r  ra   )
r^   rl   r  rp  r3  r4  lam_yeo_int
xt_yeo_intlam_yeo_floatxt_yeo_floats
             r?   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)rq   rr   rs   r  r   r   r   r  r  r  r9   	complex64
complex128r1  int8uint8int16int32r9  rB  r6  r]  rE  r  rO  rW  rt   rA   r?   r  r  s	  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 6rA   r  c                        e Zd Zd Zd Zd ZdS )TestYeojohnsonNormmaxc                 :    t          ddd          dz   | _        d S r  r@  rg   s    r?   rA  z"TestYeojohnsonNormmax.setup_method<
  r  rA   c                 \    t          j        | j                  }t          |dd           d S )Ng?rN   rO   )r   rR  rl   r
   r  s     r?   r  zTestYeojohnsonNormmax.test_mle?
  s/    )$&11t444444rA   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@r  r  g"@r  g      gzG?r1  r4  )r   rR  r9   allclose)r^   rl   rz  s      r?   test_darwin_examplez)TestYeojohnsonNormmax.test_darwin_exampleC
  sF      (++{5%d33333333rA   N)rq   rr   rs   rA  r  re  rt   rA   r?   r_  r_  ;
  sD        G G G5 5 54 4 4 4 4rA   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dd          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@r  r       pv@rQ        u@h  r  r\  r"   r^   	test_funcrQ  r_  rl   s        r?   test_circfuncszTestCircFuncs.test_circfuncsT
  sM    
 JJ66677		!#...

80D0DEEEEErA   c                    |                     g d|j                  }|                    |          }t          j        |d          }t          ||d           t          |          }|                    ||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}  rn  ro  r   rO   r  r   r  r  r	  )r\  r  r`   r   circmeanr"   r    ra   picircvarrb   circstd)
r^   r_  rl   M1M2xp_testV1V2S1S2s
             r?   test_circfuncs_smallz"TestCircFuncs.test_circfuncs_small\
  s     JJ777rzJJJWWQZZ^AC(((BT**** "!$$[[25[33 "W]13'''BT****[[q[))]13'''BT******rA   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  )r9   r\  r"   )r^   rr  
numpy_funcr_  rl   circstatr  s          r?   test_circfuncs_closez"TestCircFuncs.test_circfuncs_closer
  sw     J+,r15H4IC4OOPP9RZZ]]++JJqMM**&t444444rA   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   ^  )_  rI   r   `  rG   ]  )ie  rG   rJ   if  r   g     @v@rn  ro  r   r   r  r  c                 >    g | ]} |d d f         d          S Nrn  ro  rt   r   ro   r  rl   s     r?   r   z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>
  s4    FFFqxx!QQQ$c***FFFrA   r   c                 >    g | ]} d d |f         d          S r  rt   r  s     r?   r   z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>
  s4    FFFqxx!!!Q$c***FFFrA   )r\  reshaper"   r8  rU  )r^   r_  r  rn   r   rl   s     `  @r?   test_circmean_axisz TestCircFuncs.test_circmean_axis}
  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RZZ__---hqs+++FFFFFE!'!*4E4EFFFRZZ__-----rA    @pz?c                     |                     g d          }t           ||d          |                     |                     d S )N)r  r   r   r  r   rm  rn  ro  rp  rq  s        r?   test_circfuncs_array_likez'TestCircFuncs.test_circfuncs_array_like
  sM    
 JJ11122		!#...

80D0DEEEEErA   rr  c                 *   |j         }|                    g |          }t          |          rDt          j        t
          t                    5   ||          }d d d            n# 1 swxY w Y   nwt          j        	                                5 }|
                    t          d           |
                    t          d            ||          }d d d            n# 1 swxY w Y   t          ||                    |j        |                     d S )Nr}  r   zMean of empty slicerx  )r  r\  r!   r   r   r   r   r9   ry  r   r  r   r#   r   )r^   rr  r_  r~  rl   rn   r  s          r?   r  zTestCircFuncs.test_empty
  sq    
JJrJ''B<< 	#08MNNN # #ill# # # # # # # # # # # # # # # --// #3

>+@AAA

>+FGGGill	# # # # # # # # # # # # # # #
 	RZZeZ<<=====s%   A&&A*-A*ACC"%C"c           	          |                     ddddddt          j        g          }t           ||d          |                     |j                             d S )	Nr  r   r   r  r   r  rn  ro  )r\  r9   r   r#   )r^   rr  r_  rl   s       r?   test_nan_propagatez TestCircFuncs.test_nan_propagate
  sY     JJQ3C899		!#...

260B0BCCCCCrA   cupyzcupy/cupy#8391r  g5:v@gfPb?r  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  rI   r   r  rG   r  r   rn  r  r   )r\  r9   r   keysr#   r"   	full_like)r^   rr  rQ  r_  rl   r  rK  s          r?   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rA   c                     |                     d          d         }|}t          j        |          }t          ||d           d S )Nr*   rt   r   rO   )r\  r   rw  r"   )r^   r_  rl   r{  r|  s        r?   test_circmean_scalarz"TestCircFuncs.test_circmean_scalar
  sE    JJrNN2^ABT******rA   c                    t          j        |                    ddd          |j        |j                   }t	          ||                    |j                             t	          | |                    |j                             d S )Nr   r   r  )r   rw  rk   rx  r$   r\  )r^   r_  r9  s      r?   test_circmean_rangez!TestCircFuncs.test_circmean_range
  sq     N299Q3//??q"**RU++,,,r2::be,,-----rA   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  ro  g     @e@gLwqA?g)#p_4@)r\  r[  r"   r   rw  ry  rz  )r^   r_  rl   s      r?   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LrA   c                     t          j        |                    dg                    }t          j        d|          dk    sJ d S )Nr   r*   )r   rz  r\  mathcopysign)r^   r_  r   s      r?   test_circstd_zerozTestCircFuncs.test_circstd_zero
  s@    M"**aS//**}S!$$++++++rA   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 )NrS   r  r   r*   r   r   r  )r
  r  sincosrx  anyr   rw  )r^   r_  rl   r9  r   s        r?   !test_circmean_accuracy_tiny_inputz/TestCircFuncs.test_circmean_accuracy_tiny_input
  s     KKdC((vvbffQii1n%%B"&&c1A*B*BBBB!be)_BE	*q0vvayyaDN1QQQW:A...vva1f~~rA   c                 V   |                     d|j                  }t          j        |                    |          |                    |                    }|                     ||j                  }t          j        ||j        |j                   }t          ||dd           d S )Ng ؅W4vCr}  )r  r  r  r   )rP   r5  )
r\  r  r  atan2r  r  r   rw  rx  r"   )r^   r_  rl   r   rQ  actuals         r?   !test_circmean_accuracy_huge_inputz/TestCircFuncs.test_circmean_accuracy_huge_input
  s     JJt2:J..Jrvvayy"&&)),,::arz:22BE6:::u3??????rA   N)rq   rr   rs   r   r   r   r   rw  ry  rz  rs  r  r9   r`   ra   rb   r  r  r  r  r  ru  r   r  r  r  r  r  r  r  rt   rA   r?   rg  rg  L
  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 f%5666[1$~&(f*MMO$}&(f#7#7 9  9:  %}&(f
KKMNO O
H 
HO O 76
H+ + +. . .M M M, , ,
  *@ @ @ @ @rA   rg  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 )'TestCircFuncsNanPolicyrh  grQvv@)g     v@r  r  g     8v@rB  g     u@g5@v?g2>Bjv@r  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  rI   r   r  rG   r  rn  omit)r  
nan_policyr  rf  rO   r   r   )r9   r6  r   r  r
   r   r   r   r   r	   r  )r^   rr  rQ  rl   r  rK  s         r?   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	ri  rj  c                 h    ddddddt           j        g}t           ||dd	          |d
           d S )Nr  r   r   r  r   r  rn  r  r  r  rf  rO   )r9   r   r
   )r^   rr  rQ  rl   s       r?   test_nan_omitz$TestCircFuncsNanPolicy.test_nan_omit%  sS    
 !QRbf-		!#&AAA t	- 	- 	- 	- 	- 	-rA   rr  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  )r9   r   r   r   r   r   r	   r  r^   rr  rl   s      r?   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   r9   r6  r   r	   r  r  r  )r^   rr  rl   rK  s       r?   test_nan_omit_all_axisz-TestCircFuncsNanPolicy.test_nan_omit_all_axis5  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rl   r  r   r  r   r  r  rI   r   r  rG   r  c                 8    t          t          ||dd           d S )Nrn  rM  r  re   rf   r  s      r?   test_nan_raisez%TestCircFuncsNanPolicy.test_nan_raise?  s#     	j)QSWMMMMMMrA   c                 8    t          t          ||dd           d S )Nrn  foobarr  r  r  s      r?   test_bad_nan_policyz*TestCircFuncsNanPolicy.test_bad_nan_policyH  s#     	j)QSXNNNNNNrA   N)rq   rr   rs   r   r   r   r   rw  r9   r6  ry  rx  rz  r  r  r  r  r   r  r  rt   rA   r?   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rA   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   re   rf   r   median_testrg   s    r?   test_bad_n_samplesz!TestMedianTest.test_bad_n_samplesT  s!    j%"3YYY?????rA   c                 L    t          t          t          j        g g d           d S r  r  rg   s    r?   r  z TestMedianTest.test_empty_sampleX  s#    j%"3RCCCCCrA   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  tiesr  rg   s    r?   test_empty_when_ties_ignoredz+TestMedianTest.test_empty_when_ties_ignored\  sG    
 	j%"3"llIII1vH	F 	F 	F 	F 	F 	FrA   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  rg   s    r?   test_empty_contingency_rowz)TestMedianTest.test_empty_contingency_rowd  s\    
 	j%"3YYY			JJJ 	j%"3YYY			"	$ 	$ 	$ 	$ 	$ 	$rA   c                 T    t          t          t          j        g dddgd           d S )Nr   r   r   r<  r  r  rg   s    r?   test_bad_tieszTestMedianTest.test_bad_tiesp  s9    j%"3YYYA 	" 	" 	" 	" 	" 	"rA   c                 T    t          t          t          j        g dddgd           d S )Nr   r   r   r  r  r  rg   s    r?   r  z"TestMedianTest.test_bad_nan_policyt  s9    j%"3YYYA!)	+ 	+ 	+ 	+ 	+ 	+rA   c                 T    t          t          t          j        g dddgd           d S )Nr   r   r   r<  )r<  )re   r  r   r  rg   s    r?   r  zTestMedianTest.test_bad_keywordx  s9    i!2III1v	! 	! 	! 	! 	! 	!rA   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^   rl   r   r  r  medtbls          r?   test_simplezTestMedianTest.test_simple|  s    IIII!-a33ac 	S#3!Q!Q 0111 	T1QrA   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 )Nr5  r   rF   )rI   rJ   rG   )r   r   r   )r   r   r   r  r  )r   r   r   r  )r   r   r   )r   r  r   )r^   rl   r   zr  r  r9  r  s           r?   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1rA   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   )r   r   rF   	propagater  r  g     ?gإvao?r  r   rM  )	r9   r   r   r  r   r
   r6  re   rf   )r^   rl   r   mt1r  r  r9  r  s           r?   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NrA   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   rF   rJ   r   r   r   r   )lambda_Frv  )r   r  r   chi2_contingencyr
   )r^   rl   r   r  r  r9  r  exp_statexp_pdofes              r?   rc   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!!!!!rA   r  FTc                     g d}g d}t          j        |||          }t          |j        |j        |j        |j        f|           d S )Nr   rv  )r   r  r   r[   r   r  table)r^   r  rl   r   rn   s        r?   rm  zTestMedianTest.test_result  sR    IIII1<<<cmSZSYGMMMMMrA   N)rq   rr   rs   r  r  r  r  r  r  r  r  r  r  rc   r   r   r   rm  rt   rA   r?   r  r  R  s        @ @ @D D DF F F
$ 
$ 
$" " "+ + +! ! !  2 2 2(O O O" " "> [\E4=99N N :9N N NrA   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@g      ;@rl  g@g333333I@gYv@rr  )	gfffffP@g,Q@gfffffQ@gfffffT@g     S@g     @R@g33333SQ@gffffffM@g33333I@r   r  )gHP?g&S:g[<r	  r4  )r9   deg2radr6  stackr  r  r\  r&  r   directional_statsmean_directionr"   )r^   r_  declinclr_   dirstatsdirectional_meanreference_means           r?   "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DrA   zangles, refr   r*   r   r   c                 0   |                     |          }|                     |          }|                    |                    |          |                    |          gd          }dt	          j        |          j        z
  }t          ||           d S )Nr   r  )r\  r  r  r  r   r  mean_resultant_lengthr"   )r^   anglesr   r_  r_   rn   s         r?   'test_directional_stats_2d_special_casesz<TestDirectionalStats.test_directional_stats_2d_special_cases  s    
 F##jjooxx8qxAA%)$//EES!!!!!rA   c                 ~   t           j                            d          }|                    d|j        z  |                    d          z            }|                    |                    |          |                    |          fd          }t          j	        |          }|j
        }t          |          }|                    |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*   )r9   r`  ra  r\  rx  r  r  r  r   r  r  r    r  rw  r"   r  ry  )r^   r_  rd  testdatatestdata_vectorr  r  r}  directional_mean_anglerw  directional_varcircular_vars               r?   test_directional_stats_2dz.TestDirectionalStats.test_directional_stats_2d  s1    i##$FGG::a"%i#**X*>*>>??((BFF8$4$4$&FF8$4$4$6() # + + *?;;#2!"233!(/?/B/?/B"D "D!71ru9!E>(++.999x==}X..66666rA   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   r  r"   r  )r^   r_  r_   
full_arrayrQ  r  s         r?    test_directional_mean_higher_dimz5TestDirectionalStats.test_directional_mean_higher_dim  s     zz///0002 3 3ZZl ; ;<<
:: , . , , ./ 0 0 *:A>>>/:::::rA   Tzchecking array-like inputr4  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   r  r"   r  r  )r^   r_  r_   
data_arrayr   rn   s         r?   )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#<==	? 	? 	? 	? 	?rA   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   rf   reescaper   r  )r^   r_  r_   rL  s       r?   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?rC  r   r}  T)	normalizer   )r  keepdimsF)
r9   r6  r   r  r\  r)  r   r"   r  r  )r^   r~  r_  r_   rn   normalized_datar   s          r?    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#<==	? 	? 	? 	? 	?rA   N)rq   rr   rs   r   r   r   r   r9   rx  r  r  r  ru  r  r  r  rt   rA   r?   r  r    s       E E E, []5&(BE!G	b!
QY-  " "	 "7 7 7*; ; ; d+FGGG	? 	? HG	?* * * [Wy)&<==? ? >=? ? ?rA   r  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t
          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  rc  )r  rc  r   r  rc  zUnrecognized `method` 'YAK')r  rc  rx   YAKr  z#`axis` must be an integer or `None`rU  r  r  )r   r   rf   r   false_discovery_controlr9   r   r  s     r?   test_input_validationz$TestFDRControl.test_input_validation?  sh   B]:W555 	: 	:)...999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:]:W555 	9 	9)---888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9]:W555 	> 	>)3RV*<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 0]:W555 	I 	I)///%HHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 8]:W555 	E 	E)///DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E]:W555 	H 	H)///GGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hsk   AAA'B

BB0"CC"%C"D++D/2D/E88E<?E<GGGc                 b    g d}t          j        |          }g d}t          ||d           d S )N)r  g;On?g~jt?gI+?g&1?gB`"۹?gv?S㥛?);On?r&  I+?r'  gˡE?gHzG?r%  r%  r1  r4  )r   r"  r
   )r^   psrn   r   s       r?   test_against_TileStatsz%TestFDRControl.test_against_TileStatsR  sC    EEE+B//FFFSt,,,,,,rA   r)  )
go?gQ]
Y?ghD@?u?D?gn@t?g=T	[ے?g=!s?r*  r*  g	L?bh)
glߢ?gq?g.0?R]D?g)<Gh?g$͂?g2-p?r,  r,  g]:?byc                     |\  }}t           j                            d          }t          j                            ddd|          }|d         |d<   t          j        ||          }t          ||d	
           d S )N   <U) r1  r  r   r_  rI   r   r  rN   r4  )r9   r`  ra  r   
loguniformr<   r"  r
   )r^   r)  r   r  rd  r(  rn   s          r?   r.  zTestFDRControl.test_against_RY  s     Vi##$788!!$"3!GG11+Bv>>>St,,,,,,rA   c                 "   t           j                            d          }t          j                            ddd|          }t          j        |d           }t          j        |                                          }t          ||           d S Nr/  r1  r  )r   r   r   r_  r  )	r9   r`  ra  r   r0  r<   r"  ravelr   )r^   rd  r(  rn   r   s        r?   test_axis_NonezTestFDRControl.test_axis_Nonek  sz    i##$788!!$)#!NN+BT:::+BHHJJ77S#rA   r  )r   r   r   c                    t           j                            d          }t          j                            ddd|          }t          j        ||          }t          j        t          j        ||          }t          ||           d S r2  )	r9   r`  ra  r   r0  r<   r"  apply_along_axisr   )r^   r  rd  r(  rn   r   s         r?   	test_axiszTestFDRControl.test_axisr  sy    i##$788!!$)#!NN+BT:::!%"?rJJS#rA   c                     t          t          j        dg          dg           t          t          j        d          d           t          t          j        g           g            d S )Nr  )r   r   r"  rg   s    r?   r  zTestFDRControl.test_edge_casesz  s]    58$@@4&III58>>EEE58<<bAAAAArA   N)rq   rr   rs   r#  r)  r   r   r   r.  r4  r7  r  rt   rA   r?   r  r  >  s        H H H&- - - [V 8  8  89=? 8  8  89=?@A A	- 	-A A	-   [VZZZ00  10B B B B BrA   r  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 )TestCommonAxisr)  r  r   r   c                 x   |\  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 )	Nl   @ms|Y)rF   rI   r  r   c                 6    g | ]} d d |f         fi S r8   rt   r   ro   r  r>   rl   s     r?   r   z,TestCommonAxis.test_axis.<locals>.<listcomp>  s7    LLLQ##a1g0000LLLrA   r   c                 6    g | ]} |d d f         fi S r8   rt   r=  s     r?   r   z,TestCommonAxis.test_axis.<locals>.<listcomp>  s7    LLLQ##a111g0000LLLrA   r  )r9   r`  ra  r\  r8  rU  r"   r  )	r^   r)  r_  rd  rn   r   r  r>   rl   s	         @@@r?   r7  zTestCommonAxis.test_axis  sw   
 Vi##N33JJszz&))**c!&&v&&A&&&jjLLLLLL%
:K:KLLLMMS!!!c!&&v&&A&&&jjLLLLLL%
:K:KLLLMMS!!!c!))v))D)))c"**Q&&11&11S!!!!!rA   N)rq   rr   rs   r   r   r   r   semr  	variationr7  rt   rA   r?   r:  r:    sy         [Vuy"o',{S!H&=',{S!H&=',&;&= > >" "	> >" " "rA   r:  )lr  r   r  	functoolsr   numpyr9   numpy.randomr   numpy.testingr   r   r   r   r	   r
   r   r   r   r   re   r  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.conftestr   scipy._lib._array_apir    r!   scipy._lib._array_api_no_0dr"   r#   r$   r   ru  dict
matplotlibrcParamsmatplotlib.pyplotpyplotr  r  	Exceptionra  rb  rc  rd  re  rf  rg  rh  ri  rj  r@   rC   rv   r   r   rk  r  rX  r  r  r   rB  rD  ro  r  r-  r  r0  r<  r_  r  rt  r  r  r  r  r  r  r_  rg  r  r  r  r  r:  rt   rA   r?   <module>rU     sV	  
   



           $ $ $ $ $ $. . . . . . . . . . . . . . . . . . . .  * * * * * * 				 * * * * * * * * * * 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 0 / / / / / ; ; ; ; ; ; ; ;          ;/ 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M> M> M> M> M> M> M> M>`L9 L9 L9 L9 L9 L9 L9 L9^C6 C6 C6 C6 C6 C6 C6 C6L /* /* /* /* /* /* /* /*dB7 B7 B7 B7 B7 B7 B7 B7Jk8 k8 k8 k8 k8 k8 k8 k8\G- G- G- G- G- G- G- G-T2 2 20l7 l7 l7 l7 l7 l7 l7 l7^[2 [2 [2 [2 [2 [2 [2 [2|o% o% o% o% o% o% o% o%j	P P P
 6. 6. 6. 6. 6. 6. 6. 6.r ,. ,. ,. ,. ,. ,. ,. ,.^39 39 39 39 39 39 39 39l"= "= "= "= "= "= "= "=J +&QRRR+,,.R .R .R .R .R .R .R  -, SR.Rf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7 7 7 7 7 7 7 7(E6 E6 E6 E6 E6 E6 E6 E6P4 4 4 4 4 4 4 4" n@ n@ n@ n@ n@ n@ n@ n@b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B g? g? g? g? g? g? g? g?T?B ?B ?B ?B ?B ?B ?B ?BD " " " " " " " " " "s   )C   C
	C
