
    Ui.                       d dl Z d dlZd dlZd dlZd dlZd dlmZ d dl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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/m0Z0m1Z1m2Z2 ej3        j4        Z4 e5e'          Z'	 d dl6Z6de6j7        d<   d dl8m9Z: dZ;n# e<$ r dZ;Y nw xY wg dZ=g dZ>g dZ?g dZ@g dZAg dZBg dZCg dZDg dZEg dZFd ZG G d  d!          ZH G d" d#          ZI G d$ d%          ZJ G d& d'          ZK G d( d)          ZL G d* d+          ZM G d, d-          ZN G d. d/          ZO G d0 d1          ZP G d2 d3          ZQd4 ZR G d5 d6          ZS G d7 d8          ZT G d9 d:          ZUg d;ZV G d< d=          ZW G d> d?          ZX G d@ dA          ZY G dB dC          ZZ G dD dE          Z[g dFZ\ G dG dH          Z] G dI dJ          Z^ G dK dL          Z_ G dM dN          Z` G dO dP          Za G dQ dR          Zb G dS dT          Zc G dU dV          Zd G dW dX          Ze G dY dZ          Zf G d[ d\          Zg G d] d^          ZhdS )_    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)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(   r0   r,   r'   r&   r*   r&   )
r'   r'   gCl?Gz?r*   rh|?r&   r)   g\(\?r&   )
羟/$?gh|?5?r3   r-   r.   r*   r0   r'   g1Zd?r&   )
r1   Mb?r&   gjt?r'   r(   g}?5^I?g)\(?r&   r*   )
r'   r(   r%   r(   r*   r&   r'   r&   r*   r%   )
r*   r'   r&   r0   r&   r4   r4   r'   r+   r/   )
r/   r0   r2   r,   r-   r-   r/   r'   r4   r-   c                  R    t          j        t          j        j        | i |          S N)nplogr   gammarvs)argskwargss     x/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/scipy/stats/tests/test_morestats.py_old_loggamma_rvsr>   E   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   	            rH            "@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_basicJ   s     '&&..c3DNC000%L!	# 	# 	# 	# 	CM4000
$K"	$ 	$ 	$ 	$ 	CM+=rJJJJ
$L"	$ 	$ 	$ 	$ 	$ 	$r?   c                 F    t          t          t          j        g            d S r6   )assert_raises
ValueErrorr   rX   r\   s    r=   test_empty_inputzTestBayes_mvs.test_empty_input\   s    j%/266666r?   c                     t          j        d          }d}t          j        |          }|D ]}t	          ||           d S )N   )rY   rZ   )r7   aranger   rX   r   )r\   x
attributesresis        r=   test_result_attributesz$TestBayes_mvs.test_result_attributes_   sO    IbMM,
oa   	/ 	/A:....	/ 	/r?   N)__name__
__module____qualname__ra   rf   rn    r?   r=   rA   rA   I   sA        $ $ $$7 7 7/ / / / /r?   rA   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 )NrC   rJ   ?rK   rW   rM   rO   rP   rQ   rR   rS   rT   rV   )r   mvsdistr   r^   r
   intervalr[   s        r=   ra   zTestMvsdist.test_basici   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r?   c                 F    t          t          t          j        g            d S r6   rc   rd   r   rw   re   s    r=   rf   zTestMvsdist.test_empty_inputx   s    j%-44444r?   c                 L    dg}t          t          t          j        |           d S Nr   rz   r\   r]   s     r=   test_bad_argzTestMvsdist.test_bad_arg{   s#    sj%-66666r?   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 rr   r^   .0rj   s     r=   
<listcomp>z*TestMvsdist.test_warns.<locals>.<listcomp>   s     888!QVVXX888r?   r   r      c                 6    g | ]}|                                 S rr   r   r   s     r=   r   z*TestMvsdist.test_warns.<locals>.<listcomp>   s     >>>!QVVXX>>>r?   r   r   r         )warningscatch_warningssimplefilterRuntimeWarningr   rw   re   s    r=   
test_warnszTestMvsdist.test_warns   s     $&& 	? 	?!'>:::88u}YYY778888>>u}___==>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   AA<<B B N)ro   rp   rq   ra   rf   r~   r   rr   r?   r=   rt   rt   h   sS        M M M5 5 57 7 7
? ? ? ? ?r?   rt   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=
ף@   ?rD   rT      Ɍ?)(\?=
ף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   rY   pvaluenormr:   )
r\   x1wpwshapiro_testx2x3x4
W_expected
p_expecteds
             r=   ra   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Gr?   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   rD   rT   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   rY   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Dr?   rj   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   rY   r7   nanr   r\   rj   rl   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 )NrO   rE   )	r7   ri   r   r   r   r   rY   r   r   )r\   rj   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8r?   c                     t          j        g d          \  }}t          j        |          }d}t          ||d           d S )N)i i = i@ )gPq~?gF?h㈵>rM   )r   boxcoxr   r
   )r\   	trans_valmaxlogrl   refs        r=   test_gh14462zTestShapiro.test_gh14462   sP     "L)A)A)ABB	6mI&& 2St,,,,,,r?   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?rL   rM   )r   r   r   r
   rY   )r\   rl   rj   s      r=   test_length_3_gh18322z!TestShapiro.test_length_3_gh18322   sv     m:::;;zQ KJJmA'7888
O$??????r?   N)ro   rp   rq   ra   r   r   markparametrizer   r   r   r   rr   r?   r=   r   r      s        )H )H )HVE E E* [S2sQF"344- - 54-9 9 9- - -"@ @ @ @ @r?   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej        j        d
             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   r7   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$$$$$r?   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   r7   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   )r7   r   r   r   lengumbel_lfitlogcdflogsfri   r^   r
   )r\   r   a2r   r   nxbarsr	  r
  rm   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(((((r?   c                 L    t          t          t          j        dgd           d S Nr   plate_of_shrimpdist)rc   rd   r   r   re   s    r=   r~   zTestAnderson.test_bad_arg3  s$    j%.1#<MNNNNNNr?   c                     t          d          }|                    d          }t          j        |          }d}t	          ||           d S )Nr   r   r   rY   critical_valuessignificance_level)r   r   r   r   r   )r\   r   rj   rl   rk   s        r=   rn   z#TestAnderson.test_result_attributes6  sO    $$###,,nQK
C,,,,,r?   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   rj   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r?   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  r7   r   r   r   r   r	   )
r\   r   r   r   r  r  r  r  r  r   s
             r=   test_gumbel_rzTestAnderson.test_gumbel_rG  s     $$YYCY  WS\\ 1.Z88E4.Z88E4"eBCCj)))U2Yr?   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`?rM   gp=
ף?MbP?r   r   g?r   皙?g?atol)r7   arrayr   r   
fit_resultparamsr
   rY   r  r   r  )
r\   rj   rl   mr   r   cAs40As45As_refs
             r=   test_weibull_min_case_Az$TestAnderson.test_weibull_min_case_AV  s   HGGGHHnQ..-3C)=DIIIIu48888}s2155555E6----b!b!S:.$+>>vc)F233333+V$??????r?   c                     t          j        g d          }d}t          j        t          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )N)J   9   0        rF   F      rA    ;            iF  z/Maximum likelihood estimation has converged to r   r-  )r7   r4  r   r   rd   r   r   )r\   rj   messages      r=   test_weibull_min_case_Bz$TestAnderson.test_weibull_min_case_Bi  s    H 5 5 5 6 6C]:W555 	- 	-N1m,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   AAAc                 <   t          j        g d           }d}d}t          j        t          |          }t          j        t          |          }|5  |5  t          j        |d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)	r&  K   r?     k   rF   =   +   rA  z:Critical values of the test statistic are given for the...z;An error occurred while fitting the Weibull distribution...r   r-  )	r7   r4  r   r   UserWarningr   rd   r   r   )r\   rj   wmessageemessagewcontextecontexts         r=   test_weibull_warning_errorz'TestAnderson.test_weibull_warning_errorq  s%    X===>>>OP<8<<<=8<<< 	- 	-x 	- 	-N1m,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s6   BA9-B9A=	=B A=	BBBdistname)r   r   r  extreme1r  r#  logisticr-  c                     t           j                            d          }|dv rdn|}t          t          |          }t
          |         } |j        |d|d}t	          j        ||          }|j        j	        sJ d S )Nl   'Dah$>   r  rY  r    r   r   )
r7   randomdefault_rnggetattrr   r   r:   r   r5  success)r\   rX  rngreal_distnamer  r6  rj   rl   s           r=   test_anderson_fit_paramsz%TestAnderson.test_anderson_fit_params}  s    
 i##$677'/3I'I'I& 	um,,-(DHf4c:::nQ))~%%%%%%r?   c                     d}t          t          d|z            t          d                    t          j        }t          t          d|z            t          d                    d S )Nr   r   r   )r   r   r   r7   inf)r\   r7  s     r=   test_anderson_weibull_Asz%TestAnderson.test_anderson_weibull_As  sV    _QqS))>"+=>>>F_QqS))>!+<=====r?   N)ro   rp   rq   r   r  r  r~   rn   r!  r$  r<  rK  r   r   thread_unsaferW  r   rd  rg  rr   r?   r=   r   r     s       % % %.  ) ) ) O O O- - -          @ @ @&- - - [	- 	- 	- [ZO O OP P	& 	&P P	&> > > > >r?   r   c                       e Zd Zd Zd Zej        j        d             Zd Z	ej        j
        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@rp        F@g     F@ro  ffffffA@rs  g33333A@gB@gfffffB@gD@gffffffE@Fmidrankg@r   gCl?gvq-?g,Ԛ?gl@gPk	@r   r   r   gJ4a?Mb0?r2  r7   r4  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0r?   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 )Nrl  rm  rn  rr  Trt  gQ@r   rv  r   r   r   r.  rw  r2  rx  rz  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0r?   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   rh   )   rA  !      i  rS   :   %   r   A   rE      i     $      v   
"         r  C   r?  >   rG      r  Z   r   <      rP  1   rS      8      O   T   ,   rF  rA  r        i6  L   rI  r     r        rC  e   r  r>  r?  r@  rA  rB  rF   rC  rD  rA  rE  rF  rG  7   i@  r  h         /            r  r  i  W   rG   x   rS   r  r  r&  G   r  rD  *   r  r   rF   r     r   rS   r  r  rS   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   rh         r  X   r  r   r   r  r        r     r  rI   rS   	g  rE   rF   i  i[  r   r  r   i  r      r   i  #   rF   i  r  r   rG   b   r   U   [   rQ     r   r  r     rS   r?  r      r  rF        rG  rS   r  B   rP  r  Frt  gM
@r   g^I+?g~:?g+e?gH.!@gcZB>h@r   r   r   	^)p?rw  r2  l   <Ic i'  n_resamplesrb  )ru  methodga2U0*C?)r   ry  r   r   r
   r7   r^  r_  PermutationMethodr   rY   r  r   )r\   r{  r|  r}  r~  t5t6t7t8t9t10t11t12t13t14samplesr  r  r  rb  r  rl   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1r?   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  Trt  g'1Z
@r   r  r   r   r   r  rw  r2  )r   ry  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0r?   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)rJ  g     @D@Frt  g=
ףpD@r   r/  gGzD@zp-value capped      ?g?ܵr         ?g?ܵ      @g!u?gףp=
׳?{Gzt?r   r3  rN   rD   gBiq?g鷯?      '@g:M@g46<Rv?gMb@?g      +@g6>W[1@g1ZGUS?-C6?)
r7   linspacer   filterrR  r   ry  r   r   r
   )r\   r   supr  _r  s         r=   test_R_kSamplesz!TestAndersonKSamp.test_R_kSamples  sY   D [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   rc   rd   r   ry  r7   r   re   s    r=   test_not_enough_samplesz)TestAndersonKSamp.test_not_enough_samplesL  s%    j%"6

CCCCCr?   c                     t          t          t          j        t	          j        d          t	          j        d          f           d S r  r  re   s    r=   test_no_distinct_observationsz/TestAndersonKSamp.test_no_distinct_observationsO  s=    j%"6wqzz271::.	0 	0 	0 	0 	0r?   c                 n    t          t          t          j        t	          j        d          g f           d S r  r  re   s    r=   test_empty_samplez#TestAndersonKSamp.test_empty_sampleS  s*    j%"6R8HIIIIIr?   c                     g d}t          j        g d          }t          j        ||fd          }d}t	          ||           t          |j        |j                   d S )Nrl  rm  Frt  r  )r7   r4  r   ry  r   r   r  r   )r\   r{  r|  rl   rk   s        r=   rn   z(TestAndersonKSamp.test_result_attributesV  sl    ===XFFFGG"B8U;;;K
C,,,S+SZ88888r?   N)ro   rp   rq   r  r  r   r   xslowr  r   rh  r  r  r  r  rn   rr   r?   r=   rj  rj    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 	9r?   rj  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   rD   r   rD   r   r   r   %Ties preclude use of exact statistic.g     7@r  g8#oG?)r   r
  rR  r   ansarir   )r\   rj   yr  Wpvals         r=   
test_smallzTestAnsari.test_smalld  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  rO  r   c   r  r  m   l   r  r%  r  `   r  r  rO  q   t   r)  n   r  rO  r'  r  r  i   g   r+  r-  r  r   r(  r'  r.  r  r   r/  r)  r'  r  r%  r  g     0g@r  g|:?)r7   r4  r   r
  rR  r   r  r   )r\   ramsayparekhr  r   r!  s         r=   test_approxzTestAnsari.test_approxm  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   )rh   r   r  rH   r   rF   rO   r  g?rG   )r   r  r   )r\   r   r!  s      r=   
test_exactzTestAnsari.test_exact{  sM    ,|||-C-C-CDD4AtR(((D"6:::::r?   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   rY   r7   r   r   )r\   r;   rl   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  rY   r   )r   r
  rR  r   r  r   )r\   rj   r  r  rl   rk   s         r=   rn   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 )Nr4  r   rD   rG   rH   z!'alternative' must be 'two-sided'r   fooalternative)rc   rd   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   rh   r  r  )r  g      !@      #@g      %@r  g      )@lessr<  greaterffffff?皙?r   -q=r2  r   )r   r  r   r   apmfr  r
   )
r\   r   r   rY   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$$$$$$$$$$r?   zx, y, alternative, expectedr4  r:  rB  g@A?rC  r   )r   r   rD   rG   rH   gG$I?g%I$I?r   )rD   rG   rH   c                 b    t          j        |||          j        }t          ||d           d S )Nr<  rF  r2  )r   r  r   r
   )r\   rj   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3r?   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   rB  r<  rC  r(   rF  r2  r   r        ?r   )r   r   r:   r  r   r
   )r\   r   r   rI  rJ  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5r?   N)ro   rp   rq   r"  r2  r5  r   r   r   r~   rn   r>  rN  rQ  rU  rr   r?   r=   r  r  b  so       ; ; ;; ; ;; ; ;
 [VrA3i1#r%;<<- - =<-- - -4 4 4% % %6 [% ,,fo	>
,,i	A
))___fo	>
))___i	A
//999fo	>
//999i	A	C 4 4 4&6 6 6 6 6r?   r  c                   l    e Zd Zd Zd Zd Zej                            d          d             Z	d Z
dS )TestBartlettc           
      N   t           t          t          t          t          t
          t          t          t          t          g
}fd|D             }t          j        | \  }}t          |                    d                     t          |                    d                     d S )Nc                 :    g | ]}                     |          S rr   asarrayr   argxps     r=   r   z*TestBartlett.test_data.<locals>.<listcomp>  #    000C

3000r?   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:::::r?   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   rd   r   rj  r[  )r\   r^  rJ  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 rr   rZ  r\  s     r=   r   z7TestBartlett.test_result_attributes.<locals>.<listcomp>  r_  r?   r8  )r^  )r`  ra  rb  rc  rd  re  rf  rg  rh  ri  r   rj  r   )r\   r^  r;   rl   rk   s    `   r=   rn   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3r?   z*ignore:invalid value encountered in dividec                     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 rr   rZ  r\  s     r=   r   z/TestBartlett.test_empty_arg.<locals>.<listcomp>   r_  r?   r   invalid value encounteredz$var\(\): degrees of freedom is <= 0.z!Degrees of freedom <= 0 for slice)r`  ra  rb  rc  rd  re  rf  rg  rh  ri  r   r   r   r   r   r   rj  r7   testingr   r
  r   rR  r[  r   r!   rY   r   )r\   r^  r;   rl   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$@rz  r{  r|  r   )r[  float32r   rj  r  rY   )r\   r^  rG  br8  rl   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()))))))r?   N)ro   rp   rq   rl  rn  rn   r   r   filterwarningsrv  r  rr   r?   r=   rW  rW    s~        ; ; ;- - -
4 4 4 [ LMM) ) NM)"* * * * *r?   rW  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?rG   gI{]?)r`  ra  rb  rc  rd  re  rf  rg  rh  ri  r   levener   )r\   r;   r   r!  s       r=   rl  zTestLevene.test_data  sW    BBBBC8,%4A11555D/155555r?   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  r`  ra  rb  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)))))r?   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  )r7   r^  seedpermutationr   r  r   )
r\   rj   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)))))r?   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   rD  r  r   r^   r  median)r7   r	  r^  r  r  r   r  r   )r\   rj   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)))))r?   c                 x    t          j        ddd          }t          t          t          j        ||d           d S Nr   r   rD  皙?)portiontocut)r7   r	  rc   	TypeErrorr   r  r\   rj   s     r=   test_bad_keywordzTestLevene.test_bad_keywordE  s6    KAr""iq!#FFFFFFr?   c                 x    t          j        ddd          }t          t          t          j        ||d           d S Nr   r   rD  trimr  )r7   r	  rc   rd   r   r  r  s     r=   test_bad_center_valuez TestLevene.test_bad_center_valueI  s6    KAr""j%,1VDDDDDDr?   c                 H    t          t          t          j        dg           d S r|   )rc   rd   r   r  re   s    r=   rn  zTestLevene.test_too_few_argsM  s    j%,44444r?   c           
          t           t          t          t          t          t
          t          t          t          t          g
}t          j        | }d}t          ||           d S )Nr8  )r`  ra  rb  rc  rd  re  rf  rg  rh  ri  r   r  r   )r\   r;   rl   rk   s       r=   rn   z!TestLevene.test_result_attributesP  sC    BBBBC8lD!,
C,,,,,r?   c                     t          j        ddgddgg          }t          t          t          j        t          |           d S )Nr   r   r   r   )r7   r4  rc   rd   r   r  r`  r  s     r=   test_1d_inputzTestLevene.test_1d_inputW  s:    Hq!fq!f%&&j%,A66666r?   N)ro   rp   rq   rl  r  r  r  r  r  rn  rn   r  rr   r?   r=   r  r    s        6 6 6* * ** * *$* * *G G GE E E5 5 5- - -7 7 7 7 7r?   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(   rM   iΙ gX7?i	ϙ g=?iϙ gybw?rQ   r   	binomtestr
   r   r\   rN   rl   s      r=   test_two_sided_pvalues1z%TestBinomTest.test_two_sided_pvalues1c  s     oh$77
Cd3333oh$77
O$????oh$77
O$????oh$77
O$??????r?   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  rE   rD  r  r  r  gX-h?rM   r   g㤶y?r  g	y}?rG   g+,?r   r   r  g      ?r   r1  g{Gz?g333333?g<,?r  r  s      r=   test_two_sided_pvalues2z%TestBinomTest.test_two_sided_pvalues2q  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6r?   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   rM   r   r  gAL &W?rI   r  g!YB?rh   r  gE]t?rG   rD   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1r?   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 r6   r   binomrH  r   r  r  s    r=   <lambda>z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s     +0;??2q!+D+D*D r?   rQ   rM   rG   c                 F    t           j                            |           S r6   r  r  s    r=   r  z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s    */+//"a*C*C r?   )r7   ri   ceilr   r  rH  sumr   intr
   floor)	r\   krm   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******r?   z"alternative, pval, ci_low, ci_high))rB  g$W?r   g?)rC  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=  rF  rM   皙?rD  confidence_level	r   r  r
   r   r   rY   proportion_cilowhighr\   r=  r!  ci_lowci_highrl   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Ir?   ))rB  ga&+w?r   gny?)rC  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  rL   rM   gQ?r1   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Hr?   zalternative, pval, ci_high))rB  gլ?g̓A?)rC  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=  rL   rM   rD  r  r   )r   r  r
   r   r  r   r  r  )r\   r=  r!  r  rl   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4r?   zalternative, pval, ci_low))rB  r(   r   )rC  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  rL   rM   rD  r  r(   )r   r  r
   r   r  r   r  r  )r\   r=  r!  r  rl   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2r?   z+k, alternative, corr, conf, ci_low, ci_high)r   r  TrD  g`?g?)r   r  Tr1   grt!?g/?)r   r  FrD  gVK5?g5dM?)r   r  Fr1   gXCVu^?g*r[?)r   rB  TrD  r   gP-V?)r   rB  Tr1   r   g^'?)r   rB  FrD  r   gS5a?)r   rB  Fr1   r   g?)r   rC  TrD  g!Շ`ⰸ?r(   )r   rC  Tr1   g$x"?r(   )r   rC  FrD  gW~=?r(   )r   rC  Fr1   g	L?r(   )r   r  TrD  r   gX?)r   r  FrD  r   gN?)r   rB  TrD  r   g/<7#9?)r   rB  FrD  r   gAA?)r   rC  TrD  r   r(   )r   rC  FrD  r   r(   )r   r  TrD  g7?r(   )r   r  FrD  g؍s?r(   )r   rB  TrD  r   r(   )r   rB  FrD  r   r(   )r   rC  TrD  ghadn?r(   )r   rC  FrD  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  rL   rM   )r   r  r  r
   r  r  )
r\   r  r=  corrconfr  r  rl   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Hr?   c                     t          j        ddd          }t          |j        d           t          |j        d           d S )Nr   r  r  r(   )r   r  r   rY   r   r\   rl   s     r=   &test_estimate_equals_hypothesized_propz4TestBinomTest.test_estimate_equals_hypothesized_prop  sA     oaT**S]D)))SZ%%%%%r?   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   rd   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  re   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  rD  r  )r   r   r  r   r  re   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...rT  r  r\   rJ  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   rd   r  )r\   rl   rJ  s      r=   test_invalid_confidence_levelz+TestBinomTest.test_invalid_confidence_level0  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_method6  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  re   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_estimaterY   r  s     r=   
test_aliaszTestBinomTest.test_alias?  s3    oa2---S,cm<<<<<r?   l        z32-bit does not overflowreasonc                     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   rD   r   )r   r   OverflowErrorr   r  sys
float_infominre   s    r=   test_boost_overflow_raisesz(TestBinomTest.test_boost_overflow_raisesC  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)ro   rp   rq   __doc__r  r  r  r  r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  skipifr  maxsizer  rr   r?   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 8r?   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  )r7   ri   r   r   fligner)r\   r   s     r=   rl  zTestFligner.test_dataL  sC    Yq\\!%-BE":":"L"$	& 	& 	& 	& 	&r?   c                 ^  	 t           j                            d          		fd} |t                    } |t                    } |t
                    }t          j        |||d          \  }}t          j        |||dd          \  }}t          ||           t          ||           d S )NrS  c                     t          j        |           d                    t          |                     z  z                                   S )Nr  )r7   r[  randnr  tolist)gr   s    r=   _perturbz+TestFligner.test_trimmed1.<locals>._perturbX  s9    JqMMEBHHSVV,<,<$<<DDFFFr?   r^   r  r  r   r  )	r7   r^  r   r`  ra  rb  r   r  r   )
r\   r$  g1_g2_g3_Xsq1r  Xsq2r  r   s
            @r=   r  zTestFligner.test_trimmed1S  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)))))r?   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\   rj   r  r(  r  r)  r  s          r=   r  zTestFligner.test_trimmed2f  s    666666mAq49; ; ;e mAadGQqtWVDDDeD$'''E5)))))r?   c                 x    t          j        ddd          }t          t          t          j        ||d           d S r  )r7   r	  rc   r  r   r  r  s     r=   r  zTestFligner.test_bad_keyword  s6    KAr""i13GGGGGGr?   c                 x    t          j        ddd          }t          t          t          j        ||d           d S r  )r7   r	  rc   rd   r   r  r  s     r=   r  z!TestFligner.test_bad_center_value  s6    KAr""j%-AfEEEEEEr?   c                 H    t          t          t          j        dg           d S r|   )rc   rd   r   r  re   s    r=   test_bad_num_argszTestFligner.test_bad_num_args  s    j%-!55555r?   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   )r7   ri   r   r   r   r   r   r  r   rY   r   r   r   s      r=   rv  zTestFligner.test_empty_arg  s    IaLL\,4IJJJ 	- 	--1a4,,C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   ABB!BN)
ro   rp   rq   rl  r  r  r  r  r.  rv  rr   r?   r=   r  r  J  s        & & &* * *&
* 
* 
*4H H HF F F6 6 6- - - - -r?   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   rB  )		enumerater7   r^  r_  integersziprangeshufflesplit)expected_resultsseedssir  rb  xytie_indnum_ties_per_indrm   r  jrj   r  s                r=   mood_cases_with_tiesr>    s;     @ @ @ .--Ee$$ 2 2Di##D))ZZ__,,12A,66<<AAA<>>!122 	 	DAq1q5!a%((  11 	BxA1F1-b11111112 2r?   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ؗҜ<r2  Nr   moodr
   )r\   rj   r  r=  stat_expectp_expectrY   r   s           r=   test_against_SASzTestMood.test_against_SAS  sO    < "Jq!EEE	6YU;;;;&u555555r?   zalternative, expected))r  )3oXQ?gpL?)rB  )rG  gԣl?)rC  )rG  gpL?c                 d    g d}g d}t          j        |||          }t          ||           d S )Nr$  r,  r<  rB  )r\   r=  rP  rj   r  rl   s         r=   test_against_SAS_2zTestMood.test_against_SAS_2  sP    < < <= = =jA;777X&&&&&r?   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   rh   )r7   r^  r  r!  r   rC  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6r?   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   )rh   r   r  g4g^}E	?)r7   r4  shaper   r   rC  )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r?   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   rh   r   r  )	r7   r^  r  r!  r   rC  r4  r   	transpose)r\   nyr   r   	z_vectestpval_vectestr=  rm   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r?   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   rD   r  r   r  r   r   r   )r7   r^  r  r!  r4  r   rC  r   )r\   rQ  r   r   r  rV  rW  axes_idxrm   r=  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r?   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   rC  r   rY   r7   r   r   r  s     r=   test_mood_bad_argzTestMood.test_mood_bad_arg8  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   r   g      ?r  r<  rB  rC  Hz>r2  r   r   z`alternative` must be...r   z	ekki-ekki)r7   r^  r   r   r   r:   rC  r
   r   r   rd   )
r\   rb  rj   r  stat1rL  stat2rN  stat3p3s
             r=   test_mood_alternativezTestMood.test_mood_alternative?  s   i##A&&JNNCcNBBJNNCcNBB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  rB  rC  c                     t           j                            d          }|                    d          }|                    d          }t	          j        |||          }t          |j        |j        f|           d S )Nl	   hTt fU6H~ )r   r   )rh   r   r<  )	r7   r^  r_  r   r   rC  r   rY   r   )r\   r=  rb  r   r   rl   s         r=   test_resultzTestMood.test_resultQ  ss    i##$KLL  ))  ))jR[999cmSZ0#66666r?   N)ro   rp   rq   r   r   r   r>  rF  rI  rO  rR  rX  r]  r_  rg  ri  rr   r?   r=   r@  r@    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 7r?   r@  c                       e Zd Zd Zd Zd Zej        j        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
   r7   sort)r\   rj   osmosrosm_expectedrl   res_fitres_fit_expecteds           r=   ra   zTestProbplot.test_basic]  s    JNNN77>!///SG G G
 	RWQZZ(((\***~aT222W???!122222r?   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   rr   )r   r   r:   ro  r
   )
r\   rj   osm1osr1osm2osr2osm3osr3rq  rr  s
             r=   test_sparams_keywordz!TestProbplot.test_sparams_keywordl  s    JNN&N99 ^At???
d^Aqe<<<
d^Aru===
dd###d###d###d###>!RU;;;SSSr?   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  rm  r]  Ft)r   )r  r  rx  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~///r?   N)ro   rp   rq   r  r  rr   r?   r=   custom_distr    s)        HH0 0 0 0 0r?   r  )r   rw  )r  r  )	r   r   r:   ro  r  r
   rc   rd   AttributeError)r\   rj   ry  rz  r{  r|  r  s          r=   test_dist_keywordzTestProbplot.test_dist_keywordz  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#####r?   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:   ro  closer	   r  r
   )
r\   figrj   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"----	r?   c                 L    t          t          t          j        dgd           d S r  )rc   rd   r   ro  re   s    r=   test_probplot_bad_argsz#TestProbplot.test_probplot_bad_args  s$    j%.1#<MNNNNNNr?   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 )NFrn  Tr   )r   r   ro  r7   r4  r   re   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+-	. 	. 	. 	. 	.r?   c           	         d}t          j        d          5  t          j        t          |          5  t          t          j        dgd          t          j        dg          t          j        dg          ft           j	        t           j	        t           j	        ff           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	N,One or more sample arguments is too small...r   invalidr   r   Trn  r   )
r7   r  r   r   r   r   r   ro  r4  r   r  s     r=   test_array_of_size_onez#TestProbplot.test_array_of_size_one  s?   @k(+++ 	5 	5l-W===	5 	56668RD>>28QC==962626245 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s5   C	A1B1%C	1B5	5C	8B5	9C		CCN)ro   rp   rq   ra   r  r  r   r   rh  r  have_matplotlibr  r  r  r  rr   r?   r=   rk  rk  [  s        3 3 3< < <$ $ $( [[O+ODD  ED 0O O O. . .5 5 5 5 5r?   rk  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Z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 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  )rc   rd   r   wilcoxonre   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Gr?   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(   )r7   ri   r  r   r  r   r   )r\   rj   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 )Nr4  )r   r   r   r   r  r  F)zero_methodr  
correction)r   g|N?)r   r  r
   )r\   rj   r  rl   s       r=   
test_prattzTestWilcoxon.test_pratt  sN     LLLLnQw|(-/ / /788888r?   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r?   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  rh   rH   r   r   r   r   r   c                      g | ]\  }}|g|z  S rr   rr   )r   ur   s      r=   r   z7TestWilcoxon.test_accuracy_wilcoxon.<locals>.<listcomp>  s"    @@@1QC!G@@@r?   r  r  Fr  r  i  g.i?r  i  gFYv]Uj?r  iG  g%^ Ez?r  r/  r  r        y   r     r)     p         w   r)  r     r(  r)  s   r  r     r  r  r  g^҂<?rL   rM   Tg:b+?)r4  r7   concatenater3  zerosr   r   r  r
   r4  r   )r\   freqnumsrj   r  rk  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0r?   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  rG      r  r  r   rH   r0  rE   r  )r   r   r   r  r   r   rF   r  r%  rF      rG  r  approxr  r  )mode)r7   r4  r   r  )r\   rj   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++++++++r?   c                     t          j        g d          }t          j        g d          }t          j        ||dd          }d}t	          ||           d S )Nr  r  Fr  r  r8  )r7   r4  r   r  r   )r\   rj   r  rl   rk   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,,,,,r?   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 rh   r  r  r   exact
zstatistic)r7   r^  r_  r   r  r   r  r   r
   r  hasattr)r\   rb  rj   r  rl   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-------r?   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   rL   rM   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1r?   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  |   rS     r*     rB  r  F)r=  r  r  rG  g13}?rD   rT   T)r=  r  r  g7a%?rC  g?gڏoJT?)r   r  r   r   )r\   rj   r  r   r  s        r=   test_onesidedzTestWilcoxon.test_onesided9  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4r?   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   )r4  r   r   r   r  r  r   )r\   r  pmf1pmf2s       r=   test_exact_basiczTestWilcoxon.test_exact_basicY  s    q" 	2 	2A&q))D'**DAaCQD		222TA&&&%dD1111	2 	2r?   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֔  ?rD   rT   rB  gYJ?rC  g*  ?r   r  r  r   g(?g(?gS?)r7   r4  r   r  r   ri   )r\   rj   r  r  r  s        r=   test_exact_pvalzTestWilcoxon.test_exact_pvala  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4r?   rj   )r   r   r   )r   r   r0  r  r   )r   r   r   r  r@  irG   rH   c                     t          j        |          \  }}t          j        |          }||dk                                             }t          ||           t          |d           d S Nr   r   )r   r  r7   r4  r  r   )r\   rj   r   r  wtrues        r=   test_exact_p_1zTestWilcoxon.test_exact_p_1}  s_     ~a  1HQKK!a%QQr?   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   r@  rE   r  r   r  )r7   ri   r   r   r  r  )r\   rj   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Or?   c                     t          j        dd          }t          j        |          }d}t	          ||           d||dk    <   t          j        |          }d}t	          ||           d S )Nr@  rH   )g     ;@g     P?r   r   )r  g     0?)r7   ri   r   r  r   )r\   r  rl   r   s       r=   test_auto_permutation_edge_casez,TestWilcoxon.test_auto_permutation_edge_case  sp     Ib!nQ"S#!q&	nQ S#r?   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   )
r7   r^  r_  r   r  r  r   rY   r   round)r\   r   rb  rj   rl   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,,,,,r?   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  )	r7   r^  r_  normalr   r   r  r
   r  )r\   rb  r   rl   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-------r?   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  rP  r  r>  r  r  r  r  rF  )
r  r  E   rP  rM  r  r  r  r  r  rB  r  rC  r   r   V瞯<rM   )r   r  r  r  rY   r
   r   )r\   r  var1var2r   rl   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;;;;;;r?   c                 z    t          j        t          j        d          |          }t	          |ddg           d S )Nr   r  r   r   )r   r  r7   r  r
   )r\   r  rl   s      r=   test_all_zeros_exactz!TestWilcoxon.test_all_zeros_exact  s:    
 nRXa[[888aV$$$$$r?   c                    d}t          j        t          |          5  t          j        g dddg           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        g dddgd           d d d            n# 1 swxY w Y   t          t          d	d           pt          j        j        }d
}t          j        ||          5  t          j        g dg dd           d d d            n# 1 swxY w Y   d}t          j        ||          5  t          j        g dg ddd           d d d            d S # 1 swxY w Y   d S )Nz/Array shapes are incompatible for broadcasting.r   r   r   r   z0operands could not be broadcast together with...T)_no_deco	AxisErrorz8source: axis 3 is out of bounds for array of dimension 1r   r   rD   r   r  z+`axis` must be compatible with the shape...)r  r  )	r   r   rd   r   r  r`  r7   
exceptionsr  )r\   rJ  r  s      r=   .test_wilcoxon_axis_broadcasting_errors_gh22051z;TestWilcoxon.test_wilcoxon_axis_broadcasting_errors_gh22051  s    D]:W555 	. 	.N999q!f---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. E]:W555 	= 	=N999q!ft<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= BT22Mbm6M	L]9G444 	9 	9N999iiia8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 @]9G444 	H 	HN999iiia$GGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	HsG   AAA,BBBDD
D
)EEEN)ro   rp   rq   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  rr   r?   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%H H H H Hr?   r  )gףp=
W0@gQ%@gGz'@g+@g33333/@g3333332@g
ףp=
@gq=
ףp$@g
ףp=
)@g\(\-@gGz0@gGzn3@g=
ףp= @gffffff&@gfffff)@g
ףp=-@Gz0@g3@g!@g)\('@g333333(@g
ףp=
.@r  g{G0@gQ3@gq=
ף"@g\(\'@gR*@g33333.@g\(3@c                       e Zd Zd Zej                            d          d             Zd Zej        	                    dddg          d             Z
ej        	                    d	g d
          d             ZdS )	TestKstatc                 ,   t           j                            d          }|                    |                    d          |j                  |                    fddD                       }|                    g dj                  }t          ||d           t          j
        d	
          }t          j
        d
          }t          j
        d
          }t          |                    |||f          |d d         dd           d S )Ni}  rm  rx  c                 :    g | ]}t          j        |          S rr   )r   kstat)r   r  r]   s     r=   r   z>TestKstat.test_moments_normal_distribution.<locals>.<listcomp>  s%    GGGQEKa00GGGr?   r4  )gHQ,?glZ)rI?g88}?gcJN?r  rM   r   )orderr   r   r   g{Gz?{Gz?r  )r7   r^  r   r[  r!  float64stackry  r    r   moment)	r\   r^  rb  momentsrP  m1m2m3r]   s	           @r=    test_moments_normal_distributionz*TestKstat.test_moments_normal_distribution  s   i##E**zz#))E**"*z==((GGGG,GGGHH::III$(J  0 05555 \$a(((\$a(((\$a((("b".."DtTTTTTTr?   1ignore:invalid value encountered in scalar dividec                    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[  r7   r  r!   r   )r\   r^  rl   s      r=   rf   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 NrO   rD   ri   wherer   r!   r   r  r[  r\   r^  r]   s      r=   r   zTestKstat.test_nan_input%  Z    yy~~xx	26400D))2::bf+=+=>>>>>r?   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  )ri   r   r   rd   r   r  )r\   r  r^  r]   rJ  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 r6   )r   r  r[  x_kstatr    )r\   r.  r^  r  r   rl   s         r=   test_against_RzTestKstat.test_against_R3  sJ     3k"**W--q11RZZ__-----r?   N)ro   rp   rq   r!  r   r   r  rf   r   r   r-  r3  rr   r?   r=   r  r    s        U U U [ STT1 1 UT1? ? ? [S1e*--# # .-# [V &? &? &? @ @. .	@ @. . .r?   r  c                       e Zd Zej                            d          d             Zd Z edd          d             Z	d Z
d	S )
TestKstatVarr"  c                    |                     g           }t          |          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   kstatvarr7   r  r!   r   )r\   r^  rj   rl   s       r=   rf   zTestKstatVar.test_empty_inputF  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_inputQ  r*  r?   Tz2input validation of `n` does not depend on backendnp_onlyr  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   rd   r   r7  )r\   r^  r]   r  rJ  s        r=   r~   zTestKstatVar.test_bad_argW  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/  r0  r   r   )r  r2  r   r7  r[  r    )r\   r^  r  k2k4rl   r   s          r=   test_against_R_mathworldz%TestKstatVar.test_against_R_mathworlda  s    
 LLnRZZ00!441fRZZ__---nRZZ00!44QwqyAaC8#QqS	2RZZ__-----r?   N)ro   rp   rq   r   r   r  rf   r   skip_xp_backendsr~   r?  rr   r?   r=   r5  r5  E  s        [ STT1 1 UT1? ? ? dQS S S& &S S&. . . . .r?   r5  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>   rj   re   s    r=   setup_methodzTestPpccPlot.setup_methodu  !    "13WEEEIr?   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_plotrj   r
   r7   r	  )r\   rL  svalsppccppcc_expecteds        r=   ra   zTestPpccPlot.test_basicx  sm    odfc2;;;t% % %r{3:::;;;m,,,,,r?   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 )NrJ  r   tukeylambdar  g#B;rM   )r   rO  rj   rT  r
   )r\   svals1ppcc1svals2ppcc2svals3ppcc3s          r=   	test_distzTestPpccPlot.test_dist  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1r?   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   rO  rj   delaxesr  r\   r  r  s      r=   r  zTestPpccPlot.test_plot_kwarg  s     jll__S!!Rc2222B __S!!Rb1111	r?   c                     t          t          t          j        | j        dd           t          t          t          j        g dddd           d S )Nr   r   r   r  r  )rc   rd   r   rO  rj   re   s    r=   test_invalid_inputsz TestPpccPlot.test_invalid_inputs  sR    j%/461a@@@ 	j%/999a,	. 	. 	. 	. 	. 	.r?   c                     t          j        g dd          \  }}t          |t          j        ddd                     t          |t          j        dt                               d S )Nr   r   r  rM  rx  )r   rO  r
   r7   r	  r  float)r\   rP  rQ  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8r?   N)ro   rp   rq   rG  ra   r[  r   r   r  r  r  ra  r  rr   r?   r=   rB  rB  t  s        J J J- - -
2 
2 
2 [O+ODD
 
 ED
. . .9 9 9 9 9r?   rB  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  )rc   rd   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Or?   c                     t           j                            ddddd          dz   }t          t          j        |          dd	
           d S )Nffffffr   r  '   r        @{rG   rT   )r   rT  r:   r   rg  r  s     r=   test_ppcc_max_basiczTestPpccMax.test_ppcc_max_basic  sX    !!$ASu/6 " 8 8:=>EN1--/CQOOOOOOr?   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 )Nrj  r   r  rk  rl  r   rm  rT  r  rn  r   rT   )r   rT  r:   rg  r   )r\   rj   max1max2max3s        r=   r[  zTestPpccMax.test_dist  s    !!$ASu/6 " 8 8:=> ~am444~ae&7888D"6BBBBD"6BBBB ~a  D"6BBBBBBr?   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 )Nrj  r   r  rk  rl  r   rm  )r   r(   r  brack)r   r   rn  rG   rT   r   r   )r   rT  r:   rc   rd   rg  r   r  s     r=   
test_brackzTestPpccMax.test_brack  s    !!$ASu/6 " 8 8:=>j%.!?KKKKEN1F;;;0!	= 	= 	= 	= 	EN1G<<<0!	= 	= 	= 	= 	= 	=r?   N)ro   rp   rq   rh  ro  r[  rx  rr   r?   r=   re  re    sY        P P P
P P P
C C C	= 	= 	= 	= 	=r?   re  c                       e Zd Zej                            dddg          d             Z edd          d             Zd	 Z	ej        j
        d
             Zd Zd Zd ZdS )TestBoxcox_llfry  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 )	Nrk  r   1  r   r   r   r   rx  r  r   )r`  r   r   r:   
boxcox_llfr[  r   r7   r8   r  r`   r    )r\   ry  r^  dtrj   lmbdallfllf_expecteds           r=   ra   zTestBoxcox_llf.test_basic  s    RJNN2ENBBubjj"j&=&=>>w|bfRVAEEGGQJ-?-?&@&@@RZZBZ??@@@@@r?   Tz,array-likes only accepted for NumPy backend.r9  c                     t           j                            ddd          }d}t          j        ||          }t          j        |t	          |                    }t          ||d           d S Nr   r   r|  r}  r   rF  rM   )r   r   r:   r~  listr    r\   r^  rj   r  r  llf2s         r=   test_array_likezTestBoxcox_llf.test_array_like  sg     JNN%N@@ua((tAww//T......r?   c                 H   t           j                            ddd          }d}t          j        ||          }t          j        |t	          j        ||g          j                  }t          |                    ||g          |                    |          d           d S r  )	r   r   r:   r~  r7   vstackrk  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Mr?   c                 \   d}t          |          rt          j        t          |          nt	          j                    }|5  |                    |                    t          j	        d|                    g                                         sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r   r   )
r   r   r   r   
contextlibnullcontextisnanr[  r   r~  )r\   r^  rJ  contexts       r=   r  zTestBoxcox_llf.test_empty  s    @FNrll 16< 2'BBBB".00 	 	M 	M88BJJu'72::b>>'J'JKKLLLLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms   AB!!B%(B%c                     |                     g d          }t          j        d|          }t          ||                     d                     d S )N)g     h@      m@r  g     x@ig#:x1)r[  r   r~  r    r\   r^  r]   r  s       r=   test_gh_6873zTestBoxcox_llf.test_gh_6873  sQ     zz66677r4((RZZ(:;;<<<<<r?   c                     |                     g d|j                  }t          j        d|          }t	          ||                     d|j                  d           d S )N)i  i  i  i  i  rx  g:0yE>gl.gƠ>rM   )r[  r  r   r~  r    r  s       r=   test_instability_gh20021z'TestBoxcox_llf.test_instability_gh20021  so    zz888
zKKtT** 	RZZ(=RZZPP!	# 	# 	# 	# 	# 	#r?   c           
         |                     ddgddgg          }t          j        d|d          }|                    t          j        d|d d df                   t          j        d|d d df                   g          }t	          ||           t          j        d|d          }|                    t          j        d|dd d f                   t          j        d|dd d f                   g          }t	          ||           d S )Nr      i,  i  r   r   r  )r[  r   r~  r  r    )r\   r^  r]   
llf_axis_0llf_0
llf_axis_1llf_1s          r=   	test_axiszTestBoxcox_llf.test_axis  s   zzC:Sz233%aA666
QQQQT
++QQQQT
++
   	
E***%aA666
QQT
++QQT
++
   	
E*****r?   N)ro   rp   rq   r   r   r   ra   r@  r  r  rh  r  r  r  r  rr   r?   r=   rz  rz    s        [Wy)&<==A A >=A dKM M M/ /M M/N N N [M M M= = =# # #+ + + + +r?   rz  (  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   rm  r]  r   r  r   r   r   r   )
r>   r   r   r
   r7   r8   r  r   r   r  )r\   rj   xts      r=   test_fixed_lmbdazTestBoxcox.test_fixed_lmbdaL  s   abu===A\!1%%%AE"""\!2&&&A!G$$$\!1%%%BF1II&&& \$q''+++BF1II&&& \"'"++q))R"&&&&&r?   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   rT   )r   r   r:   r   r   )r\   r  rj   x_invr  r   s         r=   test_lmbda_NonezTestBoxcox.test_lmbda_None^  sh     JNNrDNAAUQ5&)\%((
FFBJ::::::r?   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]  ra  )alphagx@gv[%@rE  gxˉEk?g8Bhk @rG   rE  rh   r/  g\?gx̡&@r+   g7(U@gp:sY@)r7   r^  r   r>   r   r   r
   )r\   rb  rj   r  rx   s        r=   
test_alphazTestBoxcox.test_alphah  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":;;;;;r?   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   )r7   r4  rc   rd   r   r   r  s     r=   test_boxcox_bad_argzTestBoxcox.test_boxcox_bad_argy  ss    Hb!Wj%,222j%,!>>>j%,1#s0D0DEEEEEr?   c                 Z    t          t          j        g           j        dk               d S N)r   )r	   r   r   rQ  re   s    r=   r  zTestBoxcox.test_empty  s(    R  &$./////r?   c                 b    t          j        t                    \  }}t          |dd           d S )NgsHjdrr   rM   r   r   _boxcox_datar
   )r\   r  lams      r=   r  zTestBoxcox.test_gh_6873  s2    l++3 	YT222222r?   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>.optimizer  $    +C3<> > > >r?   r  r  r   r   )r   r   r  )r\   r  r  r  r  s    `   r=   $test_bounded_optimizer_within_boundsz/TestBoxcox.test_bounded_optimizer_within_bounds  sk    	> 	> 	> 	> 	> <DINNN5ay5,,,,6!9,,,,,,,,r?   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   xatolrF  c                 4    t          j        | d          S )Nr  )r  r  optionsr  )r  r  r  s    r=   r  zPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizer  s*    +C3<gO O O Or?   r  r   r  )r\   r  r  r  lmbda_boundedr  r  s        @@r=   2test_bounded_optimizer_against_unbounded_optimizerz=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizer  s    
 <D9995 #+uqy)E"	O 	O 	O 	O 	O 	O
 !<D2;= = ==%%%%vay11111r?   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   rd   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|   rr   )r  s    r=   r  zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizer  s    1r?   z/return an object containing the optimal `lmbda`r   r  r  )r\   r  rJ  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   rd   r   boxcox_normmax)r\   r  rJ  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rj   
     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   rR  r   r   r7   r  isfinite)r\   rj   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)ro   rp   rq   r  r  r  r  r  r  r   r   r   r  r  r  r  r7   r4  r   r  r  rr   r?   r=   r  r  J  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#  . . . . .r?   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   rm  r]  rF  re   s    r=   rG  zTestBoxcoxNormmax.setup_method  !    "12EBBBQFr?   c                 \    t          j        | j                  }t          |dd           d S )Nm?rL   rM   r   r  rj   r
   r\   r   s     r=   test_pearsonrzTestBoxcoxNormmax.test_pearsonr  s/    %df--t444444r?   c                     t          j        | j        d          }t          |dd           t          j        | j                  \  }}t          ||           d S )Nmler  	.!?rL   rM   )r   r  rj   r
   r   )r\   r   r  maxlog_boxcoxs       r=   test_mlezTestBoxcoxNormmax.test_mle  s\    %dfU;;;t4444 !<//=v.....r?   c                 d    t          j        | j        d          }t          |ddgd           d S )Nr  r  r  r  rL   rM   r  )r\   
maxlog_alls     r=   test_allzTestBoxcoxNormmax.test_all  s9    )$&???

Xx$8tDDDDDDr?   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  r?   )r  r  r   r   )r   r  rj   r7   r  )r\   r  r  r  r   s     `  r=   r  z6TestBoxcoxNormmax.test_bounded_optimizer_within_bounds  s    	> 	> 	> 	> 	> %dfV09; ; ;vfQi&()))))vfvay()))))))r?   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)ro   rp   rq   rr   r?   r=   MyResultr    s        Dr?   r  c                     g }D ] }|                      | |                     !             }t          j        |                   |_        |S r6   )appendr7   argminrj   )r  objsr  rl   r  lmbda_ranges       r=   r  z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizer	  sX    D$ ( (CCJJ''''(**C	$0CEJr?   r  r   )r   r  rj   r7   r  r	  r
   )r\   r  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,,,,,r?   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)rv  r  z,`brack` must be None if `optimizer` is givenr   )g       r  )r   r  r   r  rj   r   r   rd   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rj   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  rk  r   )r   r   rR  r   r  r7   r  r   r   r  finfor  maxr  r
   sign)r\   rj   rJ  r  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   rd   r   r  rj   re   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	rx  )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  rk  r   rM   )r   r   rR  r   r  r7   r  r  absr   r  ry  r
   )r\   rj   r	  r  kwarglmbr
  ymax_ress           r=   'test_user_defined_ymax_input_float64_32z9TestBoxcoxNormmax.test_user_defined_ymax_input_float64_320	  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 )Nrx  r  r   r  )r	  r  r  rM   )r7   r[  r}  r  r   r   rR  r   r  rf  r
   )r\   rj   r  x_32x_64lmb_32lmb_64s          r=   test_user_defined_ymax_infz,TestBoxcoxNormmax.test_user_defined_ymax_infM	  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)ro   rp   rq   rG  r  r  r  r   r   r   r  slowr  r  r  r  r7   r4  r  r}  r  r  rr   r?   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 3r?   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 rD  rF  re   s    r=   rG  zTestBoxcoxNormplot.setup_methode	  rH  r?   c                     d}t          j        | j        dd|          \  }}g d}t          |t	          j        dd|                     t          ||           d S )Nr   rJ  r   rK  )g!X4}?g΁i?g-	15?gW$?g\ܱ{?rM  )r   boxcox_normplotrj   r
   r7   r	  )r\   rL  lmbdasrQ  rR  s        r=   ra   zTestBoxcoxNormplot.test_basich	  sn    ,TVS"BBB% % %C ; ; ;<<<m,,,,,r?   r  r  c                 N   t          j                    }|                    d          }t          j        | j        ddt                      |                    |           |                    d          }t          j        | j        dd|           t          j                     d S r]  )r  r  r  r   r   rj   r^  r  r_  s      r=   r  z"TestBoxcoxNormplot.test_plot_kwargp	  s     jll__S!!dfc2C8888B __S!!dfc2B7777	r?   c                     t          t          t          j        | j        dd           t          t          t          j        ddgdd           d S )Nr   r   r   )rc   rd   r   r   rj   re   s    r=   ra  z&TestBoxcoxNormplot.test_invalid_inputs}	  s@    j%"7AFFFj%"7"a!QGGGGGr?   c                 ^    t          t          j        g dd          j        dk               d S r  )r	   r   r   r   re   s    r=   r  zTestBoxcoxNormplot.test_empty	  s-    %b!Q//49:::::r?   N)ro   rp   rq   rG  ra   r   r   r  r  r  ra  r  rr   r?   r=   r  r  d	  s        J J J- - - [O+ODD
 
 ED
H H H; ; ; ; ;r?   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   r|  r}  r   rF  rM   )r   r   r:   yeojohnson_llfr  r
   r\   rj   r  r  r  s        r=   r  z"TestYeojohnson_llf.test_array_like	  se    JNNN??"5!,,#E47733T......r?   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(  r7   r  rk  r
   r)  s        r=   r  z TestYeojohnson_llf.test_2d_input	  st    JNN%N@@"5!,,#E29aV+<+<+>??c
Du555555r?   c                 n    t          t          j        t          j        dg                                d S r|   )r	   r7   r  r   r(  re   s    r=   r  zTestYeojohnson_llf.test_empty	  s-    -a445566666r?   N)ro   rp   rq   r  r  r  rr   r?   r=   r&  r&  	  sA        / / /6 6 67 7 7 7 7r?   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 )Nrm  r   r   r]  r   r   r  r   r   r   )	r7   r^  r   r>   r  r   
yeojohnsonr
   r8   )r\   rb  rj   r  posnegs         r=   r  zTestYeojohnson.test_fixed_lmbda	  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7r?   r  )r   r  r  r   c                    d }d}t           j                            d          }|                    dd|          } |||          }t	          j        |          \  }}t          ||d           t          dt           j        	                    ||z
            |z  d	
           t          d|
                                d
           t          d|                                d
           d S )Nc                 0   t          j        | j        | j                  }| dk    }t	          |          t          j        d          k     r!t          j        | |                   dz
  ||<   n*t          j        | |         |z  dz   d|z            dz
  ||<   t	          |dz
            t          j        d          k    r4dt          j        d|z
   | |          z  dz   dd|z
  z            z
  || <   n#dt          j        | |                     z
  || <   |S )Nrx  r   r(   r   r   )r7   r  rQ  ry  r  spacingexppower)rj   r  r  r0  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Lr?   i N  rl  r   r   )r   r   r   r  r2  r   rT   )r7   r^  r   r  r   r/  r
   r   linalgr   r^   r`   )	r\   r  r7  	n_samplesrb  rj   r  r  r   s	            r=   r  zTestYeojohnson.test_lmbda_None	  s    
	 	 	& 	i##G,,JJ1AYJ88""1e,,%e,,
FD1111Ary~~a"f55	A1MMMMArwwyy!4444Arvvxx333333r?   c                 Z    t          t          j        g           j        dk               d S r  )r	   r   r/  rQ  re   s    r=   r  zTestYeojohnson.test_empty	  s)     $$*d233333r?   c                     t           j                            ddd          }t          j        |          \  }}t          j        t	          |                    \  }}t          ||d           d S )Nr   r   r|  r}  rF  rM   )r   r   r:   r/  r  r
   )r\   rj   xt1r  xt2s        r=   r  zTestYeojohnson.test_array_like	  sd    JNNN??!!$$Q!$q''**QSu------r?   ry  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 )NrD   rx  z>Yeo-Johnson transformation is not defined for complex numbers.r   )r7   ri   r   r   rd   r   r/  )r\   ry  rj   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 )NrH   rx  rb  rM   )r7   ri   r  r   r/  r
   )r\   ry  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::::::r?   c                     t          j        g d          }t          j        |          \  }}t          j        |dz             \  }}t          ||d           t          ||d           d S )N)(HAG."A    5fAg(@Ag   VAgHzuoAg)\¿+ArL  g(\^@Ag    RArK  g    #Ag\µ=Ag
ףNArJ  gp=oHAg    6bAg{csAg)\tmhAg/BAg   '|Ag(\wipAg    ݃hAgQlBAgףp @Ar   rL   rM   )r7   r4  r   r/  r   r
   )r\   rj   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4r?   rj   r(   r   r  rf        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   rd   r   r/  )r\   rj   rM  rN  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OptimizeResultrj   )r  rN  outresults       r=   r  z/TestYeojohnson.test_overflow.<locals>.optimizer/
  s7    $S7(G(KKKC,..FFHMr?   raiser   r   )rN  r  rL   rM   r  )	r7   r  r   r/  r   r   r  r_   r
   )r\   rj   r  rM  rN  rO  rP  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   rF  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 )Nr\  r   )r7   r  r   r/  r  r  r  r_   )r\   rj   r   r  rM  rN  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   r0  )r   r   r   rv  Nrw  c                    t          j        d          5  ||z  }|                    t           j                  }t	          j        ||          }t	          j        ||          }t	          j        ||          }t	          j        ||          }	t          j        t          j        |          t          j        |          k              sJ t          j	        |          sJ t          j	        t          j
        |                    sJ ||k    sJ t          j        ||	k              sJ 	 d d d            d S # 1 swxY w Y   d S )Nr\  r   ru  r  )r7   r  astyper  r   yeojohnson_normmaxr/  r  r  r  r_   )
r\   rj   r  rv  rB  rC  lam_yeo_int
xt_yeo_intlam_yeo_floatxt_yeo_floats
             r=   test_integer_signed_dataz'TestYeojohnson.test_integer_signed_dataM
  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)ro   rp   rq   r  r   r   r   r  r  r  r7   	complex64
complex128r@  int8uint8int16int32rH  rQ  r4  rc  rT  r  r^  rf  rr   r?   r=   r-  r-  	  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 6r?   r-  c                        e Zd Zd Zd Zd ZdS )TestYeojohnsonNormmaxc                 :    t          ddd          dz   | _        d S r  rF  re   s    r=   rG  z"TestYeojohnsonNormmax.setup_methodd
  r  r?   c                 \    t          j        | j                  }t          |dd           d S )Ng?rL   rM   )r   ra  rj   r
   r  s     r=   r  zTestYeojohnsonNormmax.test_mleg
  s/    )$&11t444444r?   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?r/  r2  )r   ra  r7   allclose)r\   rj   r  s      r=   test_darwin_examplez)TestYeojohnsonNormmax.test_darwin_examplek
  sF      (++{5%d33333333r?   N)ro   rp   rq   rG  r  rt  rr   r?   r=   rn  rn  c
  sD        G G G5 5 54 4 4 4 4r?   rn  c            
          e Zd Zej                            dej        dfej        dfej	        dfg          d             Z
d Zej                            dej        ej        fej        ej        fej	        ej        fg          d             Zej                            d	ej        ej        ej	        g          d
             Zej                            dej        dfej        dfej	        dfg          d             Zej                            dej        ej        ej	        g          d             Zej                            dej        ej        ej	        g          d             Zej                            dej        ej        dddfej        ej        dddfej	        ej        dddfg          d             Zd Zd Zd Zd Zd Zd ZdS )TestCircFuncstest_func,expectedA:wv?gpz?E|2@c                     |                     g d          }t           ||d          |                     |                     d S )N)g     0v@r  r       pv@rO        u@h  r  r[  r    r\   	test_funcrP  r^  rj   s        r=   test_circfuncszTestCircFuncs.test_circfuncs{
  sM    
 JJ66677		!#...

80D0DEEEEEr?   c                    |                     g d|j                  }|                    |          }t          j        |d          }t          ||d           |                    ||j        z  dz  d	          }|d
z  }t          j        |d          }t          ||d           |	                    |d	          }t          j
        |d          }t          ||d           d S )N)r  rD  r  r     g     4@g3333333@rx  r}  r~  r   rM   r  r   r  r  r  )r[  r  r^   r   circmeanr    r_   picircvarr`   circstd)	r\   r^  rj   M1M2V1V2S1S2s	            r=   test_circfuncs_smallz"TestCircFuncs.test_circfuncs_small
  s     JJ777rzJJJWWQZZ^AC(((BT****VVAbeGCKAV.. "W]13'''BT****VVA!V$$]13'''BT******r?   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>r2  )r7   r[  r    )r\   r  
numpy_funcr^  rj   circstatr  s          r=   test_circfuncs_closez"TestCircFuncs.test_circfuncs_close
  sw     J+,r15H4IC4OOPP9RZZ]]++JJqMM**&t444444r?   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   ^  )_  rG   r   `  rE   ]  )ie  rE   rH   if  r   g     @v@r}  r~  r   r   r  r  c                 >    g | ]} |d d f         d          S Nr}  r~  rr   r   rm   r  rj   s     r=   r   z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>
  s4    FFFqxx!QQQ$c***FFFr?   r   c                 >    g | ]} d d |f         d          S r  rr   r  s     r=   r   z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>
  s4    FFFqxx!!!Q$c***FFFr?   )r[  reshaper    r4  rQ  r  )r\   r^  r  rl   r   rj   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RXXc]]+++hqs+++FFFFFE!'!*4E4EFFFRXXc]]+++++r?    @pz?c                     |                     g d          }t           ||d          |                     |                     d S )N)r  r   r   r  r   r|  r}  r~  r  r  s        r=   test_circfuncs_array_likez'TestCircFuncs.test_circfuncs_array_like
  sM    
 JJ11122		!#...

80D0DEEEEEr?   r  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 )Nrx  r   zMean of empty slicers  )r  r[  r   r   r   r   r   r7   rt  r   r
  r   r!   r   )r\   r  r^  ry  rj   rl   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  r}  r~  )r[  r7   r   r!   )r\   r  r^  rj   s       r=   test_nan_propagatez TestCircFuncs.test_nan_propagate
  sY     JJQ3C899		!#...

260B0BCCCCCr?   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  rG   r   r  rE   r  r   r}  r  r   )r[  r7   r   keysr!   r    	full_like)r\   r  rP  r^  rj   r  rZ  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r?   c                     |                     d          d         }|}t          j        |          }t          ||d           d S )Nr(   rr   r   rM   )r[  r   r  r    )r\   r^  rj   r  r  s        r=   test_circmean_scalarz"TestCircFuncs.test_circmean_scalar
  sE    JJrNN2^ABT******r?   c                    t          j        |                    ddd          |j        |j                   }t	          ||                    |j                             t	          | |                    |j                             d S )Nr   r   r  )r   r  ri   r  r"   r[  )r\   r^  r7  s      r=   test_circmean_rangez!TestCircFuncs.test_circmean_range
  sq     N299Q3//??q"**RU++,,,r2::be,,-----r?   c                    |                     ddg|j                  }t          t          j        |d          |                     d                     t          t          j        |d          |                     d                     t          t          j        |d          |                     d                     d S )	Nr  r   rx  r  r~  g     @e@gLwqA?g)#p_4@)r[  rj  r    r   r  r  r  )r\   r^  rj   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Lr?   c                     t          j        |                    dg                    }t          j        d|          dk    sJ d S )Nr   r(   )r   r  r[  mathcopysign)r\   r^  r  s      r=   test_circstd_zerozTestCircFuncs.test_circstd_zero
  s@    M"**aS//**}S!$$++++++r?   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 )NrQ   gA:9>r   r(   r   r   r  )r	  r  sincosr  anyr   r  )r\   r^  rj   r7  r  s        r=   !test_circmean_accuracy_tiny_inputz/TestCircFuncs.test_circmean_accuracy_tiny_input  s     KKdB''vvbffQii1n%%B"&&c1A*B*BBBB!be)_BE	*q0vvayyaDN1QQQW:A...vva1f~~r?   c                 V   |                     d|j                  }t          j        |                    |          |                    |                    }|                     ||j                  }t          j        ||j        |j                   }t          ||dd           d S )Ng ؅W4vCrx  )r  r  r  r   )rN   r3  )
r[  r  r  atan2r  r  r   r  r  r    )r\   r^  rj   r  rP  actuals         r=   !test_circmean_accuracy_huge_inputz/TestCircFuncs.test_circmean_accuracy_huge_input  s     JJt2:J..Jrvvayy"&&)),,::arz:22BE6:::u3??????r?   N)ro   rp   rq   r   r   r   r   r  r  r  r  r  r7   r^   r_   r`   r  r  r  r  r  r   r  r  r  r  r  r  r  rr   r?   r=   rv  rv  t
  s        [1$~{;$}.BC$}k:<= =F F	= =F+ + +( [4$~rw7$}bf5$}bf578 85 5	8 85 [Z%.*/-*/-*9 : :, ,: :,  [1$~{;$}.BC$}k:<= =F F	= =F [[5>5=+0=+: ; ;> >; ;> [[5>5=+0=+: ; ;D D; ;D [1$~&(f*MMO$}&(f#7#7 9  9:  %}&(f
KKMNO O
H 
HO O
H+ + +. . .M M M, , ,
  *@ @ @ @ @r?   rv  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 )'TestCircFuncsNanPolicyrw  grQvv@)g     v@r  r  g     8v@rA  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  rG   r   r  rE   r  r}  omit)r  
nan_policyr  rb  rM   r   r   )r7   r4  r   r  r
   r   r   r   r   r	   r  )r\   r  rP  rj   r  rZ  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	rx  ry  c                 h    ddddddt           j        g}t           ||dd	          |d
           d S )Nr  r   r   r  r   r  r}  r  r  r  rb  rM   )r7   r   r
   )r\   r  rP  rj   s       r=   test_nan_omitz$TestCircFuncsNanPolicy.test_nan_omitI  sS    
 !QRbf-		!#&AAA t	- 	- 	- 	- 	- 	-r?   r  c           	      B   t           j        t           j        t           j        t           j        t           j        g}t          j        t          t
                    5  t          t          j         ||d                               d d d            d S # 1 swxY w Y   d S )Nr   r  r  )r7   r   r   r   r   r   r	   r  r\   r  rj   s      r=   test_nan_omit_allz(TestCircFuncsNanPolicy.test_nan_omit_allR  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   r7   r4  r   r	   r  r  r  )r\   r  rj   rZ  s       r=   test_nan_omit_all_axisz-TestCircFuncsNanPolicy.test_nan_omit_all_axisY  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rj   r  r   r  r   r  r  rG   r   r  rE   r  c                 8    t          t          ||dd           d S )Nr}  r\  r  rc   rd   r  s      r=   test_nan_raisez%TestCircFuncsNanPolicy.test_nan_raisec  s#     	j)QSWMMMMMMr?   c                 8    t          t          ||dd           d S )Nr}  foobarr  r  r  s      r=   test_bad_nan_policyz*TestCircFuncsNanPolicy.test_bad_nan_policyl  s#     	j)QSXNNNNNNr?   N)ro   rp   rq   r   r   r   r   r  r7   r4  r  r  r  r  r  r  r  r   r  r  rr   r?   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r?   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Z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   rc   rd   r   median_testre   s    r=   test_bad_n_samplesz!TestMedianTest.test_bad_n_samplesx  s!    j%"3YYY?????r?   c                 L    t          t          t          j        g g d           d S r  r  re   s    r=   r  z TestMedianTest.test_empty_sample|  s#    j%"3RCCCCCr?   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  re   s    r=   test_empty_when_ties_ignoredz+TestMedianTest.test_empty_when_ties_ignored  sG    
 	j%"3"llIII1vH	F 	F 	F 	F 	F 	Fr?   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  re   s    r=   test_empty_contingency_rowz)TestMedianTest.test_empty_contingency_row  s\    
 	j%"3YYY			JJJ 	j%"3YYY			"	$ 	$ 	$ 	$ 	$ 	$r?   c                 T    t          t          t          j        g dddgd           d S )Nr   r   r   r;  r  r  re   s    r=   test_bad_tieszTestMedianTest.test_bad_ties  s9    j%"3YYYA 	" 	" 	" 	" 	" 	"r?   c                 T    t          t          t          j        g dddgd           d S )Nr   r   r   r  r  r  re   s    r=   r  z"TestMedianTest.test_bad_nan_policy  s9    j%"3YYYA!)	+ 	+ 	+ 	+ 	+ 	+r?   c                 T    t          t          t          j        g dddgd           d S )Nr   r   r   r;  )r;  )rc   r  r   r  re   s    r=   r  zTestMedianTest.test_bad_keyword  s9    i!2III1v	! 	! 	! 	! 	! 	!r?   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\   rj   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r?   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 )Nr4  r   rD   )rG   rH   rE   )r   r   r   )r   r   r   r   r  )r   r   r   r  )r   r   r   )r   r  r   )r\   rj   r  zr  r  r7  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1r?   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  	propagater  r  g     ?gإvao?r  r   r\  )	r7   r   r   r  r   r
   r4  rc   rd   )r\   rj   r  mt1r  r  r7  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Nr?   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   rD   rH   r   r   r   r   )lambda_Fr  )r   r  r   chi2_contingencyr
   )r\   rj   r  r  r  r7  r  exp_statexp_pdofes              r=   ra   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!!!!!r?   r  FTc                     g d}g d}t          j        |||          }t          |j        |j        |j        |j        f|           d S )Nr   r  )r   r  r   rY   r   r  table)r\   r  rj   r  rl   s        r=   ri  zTestMedianTest.test_result  sR    IIII1<<<cmSZSYGMMMMMr?   N)ro   rp   rq   r  r  r  r  r  r  r  r  r  r  ra   r   r   r   ri  rr   r?   r=   r  r  v  s        @ @ @D D DF F F
$ 
$ 
$" " "+ + +! ! !  2 2 2(O O O" " "> [\E4=99N N :9N N Nr?   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      ;@r{  g@g333333I@gYv@rq  )	gfffffP@g,Q@gfffffQ@gfffffT@g     S@g     @R@g33333SQ@gffffffM@g33333I@r   r  )gHP?g&S:g[<r  r2  )r7   deg2radr4  r  r  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Dr?   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]   rl   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!!!!!r?   c                 `   t           j                            d          }|                    d|j        z  |                    d          z            }|                    |                    |          |                    |          fd          }t          j	        |          }|j
        }|                    |d         |d                   }|d|j        z  z  }t          j        |          }t          ||           d|j        z
  }	t          j        |          }
t          |	|
           d S )Nl	   }7Qh0P4u&4M r   )r\  r   r  r   r(   )r7   r^  r_  r[  r  r  r  r  r   r  r  r  r  r    r  r  )r\   r^  rb  testdatatestdata_vectorr	  r
  directional_mean_angler  directional_varcircular_vars              r=   test_directional_stats_2dz.TestDirectionalStats.test_directional_stats_2d  s    i##$FGG::a"%i#**X*>*>>??((BFF8$4$4$&FF8$4$4$6() # + + *?;;#2!#*:1*=?OPQ?R!S!S!71ru9!E>(++.999x==}X..66666r?   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_arrayrP  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>>>/:::::r?   Tzchecking array-like inputr9  c                 R   g dg dg}|                     ||j                  }t          j        |          }t          j        |          }t	          |j        |                     |j                             t	          |j        |                     |j                             d S )Nr  )r  r  r   rx  )r[  r  r   r  r    r  r  )r\   r^  r]   
data_arrayr   rl   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#<==	? 	? 	? 	? 	?r?   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   rd   reescaper   r  )r\   r^  r]   rJ  s       r=   test_directional_stats_1d_errorz4TestDirectionalStats.test_directional_stats_1d_errorF  s    wwu~~6]:RYw-?-?@@@ 	* 	*#D)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A''A+.A+ry  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?rR  r   rx  T)	normalizer   )r  keepdimsF)
r7   r4  r   r  r[  r8  r   r    r  r  )r\   ry  r^  r]   rl   normalized_datar   s          r=    test_directional_stats_normalizez5TestDirectionalStats.test_directional_stats_normalizeN  s    
 x------/6;= = =%bjj&6&6$GGG29= "0 "? "? ?%oGGG*

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

3#<==	? 	? 	? 	? 	?r?   N)ro   rp   rq   r  r   r   r   r7   r  r  r  r  r@  r   r$  r)  rr   r?   r=   r  r    s       E E E, []5&(BE!G	b!
QY-  " "	 "7 7 7&; ; ; d+FGGG	? 	? HG	?* * * [Wy)&<==? ? >=? ? ?r?   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  rr  )r  rr  r   r  rr  zUnrecognized `method` 'YAK')r  rr  rv   YAKr  z#`axis` must be an integer or `None`rT  r  r  )r   r   rd   r   false_discovery_controlr7   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?r2  I+?r3  gˡE?gHzG?r1  r1  r/  r2  )r   r.  r
   )r\   psrl   r   s       r=   test_against_TileStatsz%TestFDRControl.test_against_TileStatss  sC    EEE+B//FFFSt,,,,,,r?   r.  )
go?gQ]
Y?ghD@?u?D?gn@t?g=T	[ے?g=!s?r6  r6  g	L?bh)
glߢ?gq?g.0?R]D?g)<Gh?g$͂?g2-p?r8  r8  g]:?byc                     |\  }}t           j                            d          }t          j                            ddd|          }|d         |d<   t          j        ||          }t          ||d	
           d S )N   <U) r/  r  r   r]  rG   r   r  rL   r2  )r7   r^  r_  r   
loguniformr:   r.  r
   )r\   r.  r   r  rb  r4  rl   s          r=   r3  zTestFDRControl.test_against_Rz  s     Vi##$788!!$"3!GG11+Bv>>>St,,,,,,r?   c                 "   t           j                            d          }t          j                            ddd|          }t          j        |d           }t          j        |                                          }t          ||           d S Nr;  r/  r  )r   r   r   r]  r  )	r7   r^  r_  r   r<  r:   r.  ravelr   )r\   rb  r4  rl   r   s        r=   test_axis_NonezTestFDRControl.test_axis_None  sz    i##$788!!$)#!NN+BT:::+BHHJJ77S#r?   r  )r   r   r   c                    t           j                            d          }t          j                            ddd|          }t          j        ||          }t          j        t          j        ||          }t          ||           d S r>  )	r7   r^  r_  r   r<  r:   r.  apply_along_axisr   )r\   r  rb  r4  rl   r   s         r=   r  zTestFDRControl.test_axis  sy    i##$788!!$)#!NN+BT:::!%"?rJJS#r?   c                     t          t          j        dg          dg           t          t          j        d          d           t          t          j        g           g            d S )Nr  )r   r   r.  re   s    r=   r  zTestFDRControl.test_edge_cases  s]    58$@@4&III58>>EEE58<<bAAAAAr?   N)ro   rp   rq   r/  r5  r   r   r   r3  r@  r  r  rr   r?   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r?   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)rD   rG   r  r   c                 6    g | ]} d d |f         fi S r6   rr   r   rm   r  r<   rj   s     r=   r   z,TestCommonAxis.test_axis.<locals>.<listcomp>  s7    JJJ1AaaadG..v..JJJr?   r   c                 6    g | ]} |d d f         fi S r6   rr   rH  s     r=   r   z,TestCommonAxis.test_axis.<locals>.<listcomp>  s7    JJJ1AadG..v..JJJr?   r  )	r7   r^  r_  r[  r  r4  rQ  r    r  )	r\   r.  r^  rb  rl   r   r  r<   rj   s	         @@@r=   r  zTestCommonAxis.test_axis  sw   
 Vi##N33JJszz&))**c!&&v&&A&&&hhJJJJJJagaj8I8IJJJKKS!!!c!&&v&&A&&&hhJJJJJJagaj8I8IJJJKKS!!!c!))v))D)))c"**Q&&11&11S!!!!!r?   N)ro   rp   rq   r   r   r   r   semr  	variationr  rr   r?   r=   rE  rE    sy         [Vuy"o',{S!H&=',{S!H&=',&;&= > >" "	> >" " "r?   rE  )ir  r  r"  r  r   	functoolsr   numpyr7   numpy.randomr   numpy.testingr   r   r   r   r	   r
   r   r   r   r   rc   scipyr   r   r   scipy.stats._morestatsr   r   r   common_testsr   
_hypotestsr   r   scipy.stats._binomtestr   scipy.stats._distr_paramsr   scipy.stats._axis_nan_policyr   r   r   r   scipy._lib._array_apir   scipy._lib._array_api_no_0dr    r!   r"   r   r@  dict
matplotlibrcParamsmatplotlib.pyplotpyplotr  r  	Exceptionr`  ra  rb  rc  rd  re  rf  rg  rh  ri  r>   rA   rt   r   r   rj  r  rW  r  r  r  r>  r@  rk  r  r2  r  r5  rB  re  rz  r  r  r  r  r&  r-  rn  rv  r  r  r  r+  rE  rr   r?   r=   <module>r_     s  
      				 



            $ $ $ $ $ $. . . . . . . . . . . . . . . . . . . .  * * * * * * * * * * * * * * * * N N N N N N N N N N - - - - - - B B B B B B B B ? ? ? ? ? ? . . . . . .T T T T T T T T T T T T + * * * * *          ;/ 4>>%*J	"######OO   OOO LKKKKKKKKKKKKKKKKKKKKKKKKKKLLL
4 4 4/ / / / / / / />? ? ? ? ? ? ? ?Bu@ u@ u@ u@ u@ u@ u@ u@pN> N> N> N> N> N> N> N>bM9 M9 M9 M9 M9 M9 M9 M9`C6 C6 C6 C6 C6 C6 C6 C6L,* ,* ,* ,* ,* ,* ,* ,*^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^^5 ^5 ^5 ^5 ^5 ^5 ^5 ^5BDH DH DH DH DH DH DH DHT
P P P
7. 7. 7. 7. 7. 7. 7. 7.t,. ,. ,. ,. ,. ,. ,. ,.^39 39 39 39 39 39 39 39l"= "= "= "= "= "= "= "=JC+ C+ C+ C+ C+ C+ C+ C+P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"k@ k@ k@ k@ k@ k@ k@ k@\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e? e? e? e? e? e? e? e?P?B ?B ?B ?B ?B ?B ?B ?BD" " " " " " " " " "s   %B< <CC