
    ge                       d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZ d dlZd dlmZ d dlZd dlmZ d dl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"  e#e"          Z"	 d dl$Z$de$j%        d<   d dl&m'Z( dZ)n# e*$ r dZ)Y nw xY wg dZ+g dZ,g dZ-g dZ.g dZ/g dZ0g dZ1g dZ2g dZ3g dZ4d Z5 G d d          Z6 G d d           Z7 G d! d"          Z8 G d# d$          Z9 G d% d&          Z: G d' d(          Z; G d) d*          Z< G d+ d,          Z= G d- d.          Z> G d/ d0          Z? G d1 d2          Z@d3 ZA G d4 d5          ZB G d6 d7          ZC G d8 d9          ZD G d: d;          ZE G d< d=          ZF G d> d?          ZG G d@ dA          ZH G dB dC          ZIg dDZJ G dE dF          ZK G dG dH          ZL G dI dJ          ZM G dK dL          ZN G dM dN          ZO G dO dP          ZP G dQ dR          ZQ G dS dT          ZR G dU dV          ZS G dW dX          ZTdS )Y    N)RandomState)assert_array_equalassert_almost_equalassert_array_lessassert_array_almost_equalassert_assert_allcloseassert_equalsuppress_warnings)raises)optimize)stats)
_abw_state_get_As_weibull_Avals_weibull   )check_named_results   )_get_wilcoxon_distr_get_wilcoxon_distr2)_binary_search_for_binom_tst)distcont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   r&   r"   r   r   r    r   )
r   r   gCl?Gz?r    rh|?r   r   g\(\?r   )
羟/$?gh|?5?r)   r#   r$   r    r&   r   g1Zd?r   )
r'   Mb?r   gjt?r   r   g}?5^I?g)\(?r   r    )
r   r   r   r   r    r   r   r   r    r   )
r    r   r   r&   r   r*   r*   r   r!   r%   )
r%   r&   r(   r"   r#   r#   r%   r   r*   r#   c                  R    t          j        t          j        j        | i |          S N)nplogr   gammarvs)argskwargss     @lib/python3.11/site-packages/scipy/stats/tests/test_morestats.py_old_loggamma_rvsr4   6   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   	            r>            "@g4`H#j@gO[%@+=rtol      $@gai	@gӇu8@&.>_紫@   decimalgYs?g1O@)r   	bayes_mvsr   	statisticr	   minmaxselfdatameanvarstds        r3   
test_basiczTestBayes_mvs.test_basic;   s     '&&..c3DNC000%M"	$ 	$ 	$ 	$ 	CM4000
$K"	$ 	$ 	$ 	$ 	CM+=rJJJJ
$L"	$ 	$ 	$ 	$ 	$ 	$r5   c                 F    t          t          t          j        g            d S r,   )assert_raises
ValueErrorr   rM   rQ   s    r3   test_empty_inputzTestBayes_mvs.test_empty_inputM   s    j%/266666r5   c                     t          j        d          }d}t          j        |          }|D ]}t	          ||           d S )N   )rN   rO   )r-   aranger   rM   r   )rQ   x
attributesresis        r3   test_result_attributesz$TestBayes_mvs.test_result_attributesP   sO    IbMM,
oa   	/ 	/A:....	/ 	/r5   N)__name__
__module____qualname__rV   r[   rc    r5   r3   r7   r7   :   sA        $ $ $$7 7 7/ / / / /r5   r7   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 )Nr9   r@   ?rA   rB   rC   rE   rF   rG   rH   rI   rJ   rL   )r   mvsdistr   rS   r	   intervalrP   s        r3   rV   zTestMvsdist.test_basicZ   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r5   c                 F    t          t          t          j        g            d S r,   rX   rY   r   rl   rZ   s    r3   r[   zTestMvsdist.test_empty_inputi   s    j%-44444r5   c                 L    dg}t          t          t          j        |           d S Nr   ro   rQ   rR   s     r3   test_bad_argzTestMvsdist.test_bad_argl   s#    sj%-66666r5   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 rg   rS   .0r_   s     r3   
<listcomp>z*TestMvsdist.test_warns.<locals>.<listcomp>v   s     888!QVVXX888r5   r   r      c                 6    g | ]}|                                 S rg   rw   rx   s     r3   rz   z*TestMvsdist.test_warns.<locals>.<listcomp>w   s     >>>!QVVXX>>>r5   r   r   r|         )warningscatch_warningssimplefilterRuntimeWarningr   rl   rZ   s    r3   
test_warnszTestMvsdist.test_warnsq   s     $&& 	? 	?!'>:::88u}YYY778888>>u}___==>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   AA<<B B N)rd   re   rf   rV   r[   rs   r   rg   r5   r3   ri   ri   Y   sS        M M M5 5 57 7 7
? ? ? ? ?r5   ri   c                   >    e Zd Zd Zd Zd Zd Z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=
ף@   ?r:   rJ      Ɍ?)(\?=
ף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   rN   pvaluenormr0   )
rQ   x1wpwshapiro_testx2x3x4
W_expected
p_expecteds
             r3   rV   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Gr5   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   r:   rJ   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   rN   r   )rQ   r   r   r   r   r   s         r3   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Dr5   c                     t          t          t          j        g            t          t          t          j        g g g g           d S r,   rX   rY   r   r   rZ   s    r3   r[   zTestShapiro.test_empty_input   s6    j%-444j%-"b">>>>>r5   c                     t          t          t          j        ddg           t          t          t          j        t	          j        g dggt                               d S )Nr   r   dtype)rX   rY   r   r   r-   arrayobjectrZ   s    r3   test_not_enough_valuesz"TestShapiro.test_not_enough_values   sI    j%-!Q888j%-2s)61R1R1RSSSSSr5   c                 L    dg}t          t          t          j        |           d S rq   r   rQ   r_   s     r3   rs   zTestShapiro.test_bad_arg   s#    Cj%-33333r5   c                 ^   t          j        d          }t           j        |d<   t          j        |          \  }}t          j        |          }t          |t           j                   t          |j        t           j                   t          |d           t          |j        d           d S )NrE   r;   r   )	r-   r^   nanr   r   r
   rN   r   r   )rQ   r_   r   r   r   s        r3   test_nan_inputzTestShapiro.test_nan_input   s    IcNNv!a  2}Q''Q\+RV444B$$$L/55555r5   c                     t          j        g d          \  }}t          j        |          }d}t          ||d           d S )N)i i = i@ )gPq~?gF?h㈵>rC   )r   boxcoxr   r	   )rQ   	trans_valmaxlogra   refs        r3   test_gh14462zTestShapiro.test_gh14462   sP     "L)A)A)ABB	6mI&& 2St,,,,,,r5   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?ư>rC   )r   r   r   r	   rN   )rQ   ra   r_   s      r3   test_length_3_gh18322z!TestShapiro.test_length_3_gh18322   sv     m:::;;zQ KJJmA'7888
O$??????r5   N)rd   re   rf   rV   r   r[   r   rs   r   r   r   rg   r5   r3   r   r   z   s        )H )H )HVE E E*? ? ?T T T4 4 4
	6 	6 	6- - -"@ @ @ @ @r5   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                            dg d          d             Zd ZdS )TestAndersonc                    t          d          }|                    d          }|                    d          }t          j        |          \  }}}t          |d d         |           t          j        |          \  }}}t          ||dd                     t          j        d          }d|d<   t          j        |          \  }}}t          |d           d S )	NI2   r   
   r   g	@)	r   standard_exponentialstandard_normalr   andersonr   r-   onesr	   )rQ   rsr   r   Acritsigvs           r3   test_normalzTestAnderson.test_normal   s    $$$$"$--R((~b))4$ss)Q'''~b))4!T"##Y'''GBKK!~a((4 	8$$$$$r5   c                    t          d          }|                    d          }|                    d          }t          j        |d          \  }}}t          ||dd                     t          j        d          5  t          j        |d          \  }}}d d d            n# 1 swxY w Y   t          ||d         k               d S )	Nr   r   r   exponr   ignore)allr   )	r   r   r   r   r   r   r-   errstater   )rQ   r   r   r   r   r   r   s          r3   
test_exponzTestAnderson.test_expon  s   $$$$"$--R((~b'224!T"##Y'''[X&&& 	7 	7 >"g66LAtS	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7DHs   B((B,/B,c           	         t          j        d          }d|d<   t          j        |d          \  }}}t	          |          }t          j                            |          \  }}t          j                            |||          }t          j                            |||          }	t          j	        d|dz             }
| t          j
        d|
z  dz
  ||	d d d         z   z            z
  }t          ||           d S )Nr   r   r   gumbelr   r   r   )r-   r   r   r   lengumbel_lfitlogcdflogsfr^   rS   r	   )rQ   r   a2r   r   nxbarsr   r   rb   expected_a2s               r3   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(((((r5   c                 L    t          t          t          j        dgd           d S Nr   plate_of_shrimpdist)rX   rY   r   r   rZ   s    r3   rs   zTestAnderson.test_bad_arg'  s$    j%.1#<MNNNNNNr5   c                     t          d          }|                    d          }t          j        |          }d}t	          ||           d S )Nr   r   r   rN   critical_valuessignificance_level)r   r   r   r   r   )rQ   r   r_   ra   r`   s        r3   rc   z#TestAnderson.test_result_attributes*  sO    $$###,,nQK
C,,,,,r5   c                     t          d          }|                    d          }t          j        |d          \  }}}t          j        |d          \  }}}t	          ||           d S )Nr   r   r   r   r   )r   r   r   r   r	   )	rQ   r   r_   A1crit1sig1A2crit2sig2s	            r3   test_gumbel_lzTestAnderson.test_gumbel_l1  sh     $$II3I.H55E4.J77E4Br5   c                 H   t          d          }|                    d          }t          j        d          }d|d<   t	          j        |d          \  }}}t	          j        |d          \  }}}	t          ||dd                     t          ||d         k               d S )	Nr   r   r   r   r   gumbel_rr   r   )r   r   r-   r   r   r   r   r   )
rQ   r   r   r   r  r  r  r  r  r  s
             r3   test_gumbel_rzTestAnderson.test_gumbel_r;  s     $$YYCY  WS\\ 1.Z88E4.Z88E4"eBCCj)))U2Yr5   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`?rC   gp=
ף?MbP?r   r   g?r   皙?g?atol)r-   r   r   r   
fit_resultparamsr	   rN   r  r   r   )
rQ   r_   ra   mr   r   cAs40As45As_refs
             r3   test_weibull_min_case_Az$TestAnderson.test_weibull_min_case_AJ  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$??????r5   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        r<   F      r5    ;            iF  z/Maximum likelihood estimation has converged to matchr"  )r-   r   pytestr   rY   r   r   )rQ   r_   messages      r3   test_weibull_min_case_Bz$TestAnderson.test_weibull_min_case_B]  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   r3     k   r<   =   +   r5  z:Critical values of the test statistic are given for the...z;An error occurred while fitting the Weibull distribution...r>  r"  )	r-   r   r@  warnsUserWarningr   rY   r   r   )rQ   r_   wmessageemessagewcontextecontexts         r3   test_weibull_warning_errorz'TestAnderson.test_weibull_warning_errore  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   rQ  r     r   r   )
r-   randomdefault_rnggetattrr   r   r0   r   r)  success)rQ   rP  rngreal_distnamer
  r*  r_   ra   s           r3   test_anderson_fit_paramsz%TestAnderson.test_anderson_fit_paramsp  s    
 i##$677'/3I'I'I& 	um,,-(DHf4c:::nQ))~%%%%%%r5   c                     d}t          t          d|z            t          d                    t          j        }t          t          d|z            t          d                    d S )Nr   r   r   )r
   r   r   r-   infrQ   r+  s     r3   test_anderson_weibull_Asz%TestAnderson.test_anderson_weibull_As~  sV    _QqS))>"+=>>>F_QqS))>!+<=====r5   N)rd   re   rf   r   r   r  rs   rc   r  r  r0  rB  rO  r@  markparametrizer\  r`  rg   r5   r3   r   r      s       % % %.  ) ) ) O O O- - -          @ @ @&- - -	- 	- 	- [ZO O OP P	& 	&P P	&> > > > >r5   r   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 )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@rj        F@g     F@ri  ffffffA@rm  g33333A@gB@gfffffB@gD@gffffffE@Fmidrankg@r|   gCl?gvq-?g,Ԛ?gl@gPk	@r   r   r   gJ4a?Mb0?r'  r-   r   r   anderson_ksampr   r   r	   rQ   t1t2t3t4Tktmps           r3   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0r5   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 )Nrf  rg  rh  rl  Trn  gQ@r|   rp  r   r   r   r#  rq  r'  rr  rt  s           r3   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0r5   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 )N   r]   )   r5  !      i  rI   :   %   r   A   r;      i     $      v   
"         r  C   r3  >   r=      r  Z   r   <      rG  1   rI      8      O   T   ,   r:  r5  r        i6  L   r=  r     r        r7  e   r  r2  r3  r4  r5  r6  r<   r7  r8  r5  r9  r:  r;  7   i@  r  h         /            r  r  i  W   r=   x   rI   r  r  r  G   r  r8  *   r  r   r<   r     r|   rI   r  r  rI   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|   r]         r  X   r  r   r   r  r        r     r  r?   rI   	g  r;   r<   i  i[  r|   r  r   i  r      r   i  #   r<   i  r  r   r=   b   r   U   [   rH     r|   r  r     rI   r3  r      r  r:        r;  rI   r  B   rG  r  Frn  gM
@r|   g^I+?g~:?g+e?gH.!@gcZB>h@r   r   r   	^)p?rq  r'  r   rs  r   r   r	   rQ   ru  rv  rw  rx  t5t6t7t8t9t10t11t12t13t14ry  rz  r{  s                     r3   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'''???   ("b"b"b"b*,c3S#*G168 8 8	B 	Bq)))!"J"J"J"$QqS'1	. 	. 	.6000000r5   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  Trn  g'1Z
@r|   r  r   r   r   r  rq  r'  r  r  s                     r3   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0r5   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rA  g     @D@Frn  g=
ףpD@r|   r$  gGzD@zp-value capped      ?g?ܵr         ?g?ܵ      @g!u?gףp=
׳?{Gzt?r   r(  rD   r:   gBiq?g鷯?      '@g:M@g46<Rv?gMb@?g      +@g6>W[1@g1ZGUS?-C6?)
r-   linspacer   filterrJ  r   rs  r   r
   r	   )rQ   r   supr  _r{  s         r3   test_R_kSamplesz!TestAndersonKSamp.test_R_kSamples  sY   B [C%%    	KCJJ{,=J>>>*BT	?EJJJGAq!	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Avq)))Q   	<CJJ{,=J>>>*BT	?;;GAq!	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	Avq)))Q    	ICJJ{,<J===*BR=%HHHGAq!	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Aw***Q   	:CJJ{,<J===*BR=99GAq!	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	Aw***Q &BH~uEEE1aAvq)))6A6666 &BF|441aAvq)))6A6666 &BIFFF1aAvq)))7a8888&BIFFF1aAvq)))7a888888sG   <A--A14A1':C--C14C1'<E//E36E3):G//G36G3c                 j    t          t          t          j        t	          j        d                     d S Nr   rX   rY   r   rs  r-   r   rZ   s    r3   test_not_enough_samplesz)TestAndersonKSamp.test_not_enough_samples7  s%    j%"6

CCCCCr5   c                     t          t          t          j        t	          j        d          t	          j        d          f           d S r  r  rZ   s    r3   test_no_distinct_observationsz/TestAndersonKSamp.test_no_distinct_observations:  s=    j%"6wqzz271::.	0 	0 	0 	0 	0r5   c                 n    t          t          t          j        t	          j        d          g f           d S r  r  rZ   s    r3   test_empty_samplez#TestAndersonKSamp.test_empty_sample>  s*    j%"6R8HIIIIIr5   c                     g d}t          j        g d          }t          j        ||fd          }d}t	          ||           t          |j        |j                   d S )Nrf  rg  Frn  r  )r-   r   r   rs  r   r
   r  r   )rQ   ru  rv  ra   r`   s        r3   rc   z(TestAndersonKSamp.test_result_attributesA  sl    ===XFFFGG"B8U;;;K
C,,,S+SZ88888r5   N)rd   re   rf   r|  r~  r  r  r  r	  r  r  rc   rg   r5   r3   rd  rd    s        1 1 1"1 1 1 1 1 1@1 1 1@N9 N9 N9`D D D0 0 0J J J	9 	9 	9 	9 	9r5   rd  c                       e Zd Zd Zd Zd Z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   r:   r   r:   r   r   r   %Ties preclude use of exact statistic.g     7@r  g8#oG?)r   r  rJ  r   ansarir   )rQ   r_   yr  Wpvals         r3   
test_smallzTestAnsari.test_smallO  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  rF  r   c   r  r  m   l   r  r  r  `   r  r  rF  q   t   r   n   r  rF  r  r  r  i   g   r"  r$  r  r   r  r  r%  r  r   r&  r   r  r  r  r  g     0g@r  g|:?)r-   r   r   r  rJ  r   r  r   )rQ   ramsayparekhr  r  r  s         r3   test_approxzTestAnsari.test_approxX  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   )r]   r   r  r>   r   r<   rE   r  g?r=   )r   r  r   )rQ   r  r  s      r3   
test_exactzTestAnsari.test_exactf  sM    ,|||-C-C-CDD4AtR(((D"6:::::r5   c                     t          t          t          j        g dg           t          t          t          j        dgg            d S rq   rX   rY   r   r  rZ   s    r3   rs   zTestAnsari.test_bad_argk  s8    j%,QC888j%,R88888r5   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  rN   r   )r   r  rJ  r   r  r   )rQ   r_   r  r  ra   r`   s         r3   rc   z!TestAnsari.test_result_attributeso  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 )Nr+  r   r:   r=   r>   z!'alternative' must be 'two-sided'r>  fooalternativer.  )rQ   r   r   r?  s       r3   test_bad_alternativezTestAnsari.test_bad_alternativex  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                 V   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   r]   r  r  )r  g      !@      #@g      %@r  g      )@lessr4  greaterffffff?皙?r   -q=r'  r   )r   r  r   r   pmfr   r	   )
rQ   r   r   rN   r  pval_lpval_gprobpval_l_reversepval_g_reverses
             r3   test_alternative_exactz!TestAnsari.test_alternative_exact  sQ   '''...  ,r2..	4b"&999@b")<<<C}}}}}}}} ~iR#b''::T>>>> 	QU3333$tAvE:::: b"&AAAHb")DDDK$$$$$$$$$$r5   zx, y, alternative, expectedr+  r2  r:  g@A?r;  r{   )r   r   r:   r=   r>   gG$I?g%I$I?r~   )r:   r=   r>   c                 b    t          j        |||          j        }t          ||d           d S )Nr4  r>  r'  )r   r  r   r	   )rQ   r_   r  r5  expectedr  s         r3   test_alternative_exact_with_Rz(TestAnsari.test_alternative_exact_with_R  s8    8 |Aqk:::AhU333333r5   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   {   rU  r   r:  r4  r;  r   r>  r'  r   r        ?r   )r   r   r0   r  r   r	   )rQ   r   r   r@  rA  r  s         r3   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5r5   N)rd   re   rf   r  r)  r,  rs   rc   r6  rE  r@  ra  rb  rH  rL  rg   r5   r3   r  r  M  s?       ; ; ;; ; ;; ; ;
9 9 9- - -4 4 4% % %6 [% ,,fo	>
,,i	A
))___fo	>
))___i	A
//999fo	>
//999i	A	C 4 4 4&6 6 6 6 6r5   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestBartlettc           
          t           t          t          t          t          t
          t          t          t          t          g
}t          j        | \  }}t          |dd           t          |dd           d S )NgzU@ /4@r=   gG?)g1g2g3g4g5g6g7g8g9g10r   bartlettr   )rQ   r1   Tr  s       r3   	test_datazTestBartlett.test_data  sW    BBBBC8.$'4A0!444D/155555r5   c                 H    t          t          t          j        dg           d S rq   )rX   rY   r   rZ  rZ   s    r3   rs   zTestBartlett.test_bad_arg  s    j%.1#66666r5   c           
          t           t          t          t          t          t
          t          t          t          t          g
}t          j        | }d}t          ||           d S Nr0  )rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  r   rZ  r   rQ   r1   ra   r`   s       r3   rc   z#TestBartlett.test_result_attributes  sC    BBBBC8nd#,
C,,,,,r5   c                     t           t          t          t          t          t
          t          t          t          t          g f}t          t          j        t          j        ft          j        |            d S r,   )rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  r
   r-   r   r   rZ  )rQ   r1   s     r3   test_empty_argzTestBartlett.test_empty_arg  sD    BBBBC<bfbf%u~t'<=====r5   c                     t          j        ddgddgg          }t          t          t          j        t          |           d S Nr   r   r|   r   )r-   r   rX   rY   r   rZ  rP  r   s     r3   test_1d_inputzTestBartlett.test_1d_input  s:    Hq!fq!f%&&j%."a88888r5   N)rd   re   rf   r\  rs   rc   rb  re  rg   r5   r3   rN  rN    s_        6 6 67 7 7- - -> > >
9 9 9 9 9r5   rN  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?r=   gI{]?)rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  r   levener   )rQ   r1   r  r  s       r3   r\  zTestLevene.test_data  sW    BBBBC8,%4A11555D/155555r5   c                     t          j        t          t          t          d          \  }}t          j        t          t          t          dd          \  }}t          ||           t          ||           d S )NrS   centertrimmedr   rl  proportiontocut)r   ri  rP  rQ  rR  r   )rQ   W1pval1W2pval2s        r3   test_trimmed1zTestLevene.test_trimmed1  sk     LRF;;;	ELRI146 6 6	EB###E5)))))r5   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   rx        @ry  g      @rz  g      @g      i@  rm        ?rn  r   r   rS   rk  )r-   rV  seedpermutationr   ri  r   )
rQ   r_   r  r   W0pval0rp  rq  rr  rs  s
             r3   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)))))r5   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   r8  r  r|   rS   rk  median)r-   r  rV  r  r  r   ri  r   )rQ   r_   r   r  rp  rq  rr  rs  s           r3   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)))))r5   c                 x    t          j        ddd          }t          t          t          j        ||d           d S Nr   r   r8  皙?)portiontocut)r-   r  rX   	TypeErrorr   ri  r   s     r3   test_bad_keywordzTestLevene.test_bad_keyword  s6    KAr""iq!#FFFFFFr5   c                 x    t          j        ddd          }t          t          t          j        ||d           d S Nr   r   r8  trimrk  )r-   r  rX   rY   r   ri  r   s     r3   test_bad_center_valuez TestLevene.test_bad_center_value  s6    KAr""j%,1VDDDDDDr5   c                 H    t          t          t          j        dg           d S rq   )rX   rY   r   ri  rZ   s    r3   test_too_few_argszTestLevene.test_too_few_args#  s    j%,44444r5   c           
          t           t          t          t          t          t
          t          t          t          t          g
}t          j        | }d}t          ||           d S r_  )rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  r   ri  r   r`  s       r3   rc   z!TestLevene.test_result_attributes&  sC    BBBBC8lD!,
C,,,,,r5   c                     t          j        ddgddgg          }t          t          t          j        t          |           d S rd  )r-   r   rX   rY   r   ri  rP  r   s     r3   re  zTestLevene.test_1d_input-  s:    Hq!fq!f%&&j%,A66666r5   N)rd   re   rf   r\  rt  r  r  r  r  r  rc   re  rg   r5   r3   rg  rg    s        6 6 6* * ** * *$* * *G G GE E E5 5 5- - -7 7 7 7 7r5   rg  c                       e Zd ZdZedd            Zd Zd Zd Zd	 Z	d
 Z
ej                            ej        dk    d          d             ZdS )TestBinomTestPzU
    Tests for stats.binomtest as a replacement for deprecated stats.binom_test.
    Nr  	two-sidedc                    t          j        |                               t           j                  } t	          |           dk    r| d         | d         z   }| d         } nVt	          |           dk    r4| d         } ||| k     rt          d          t          j        |          }nt          d          t          j        | |||          }|j        S )Nr   r   r   zn must be >= xzIncorrect length for x.r{  r5  )	r-   
atleast_1dastypeint_r   rY   r   	binomtestr   )r_   r  r{  r5  results        r3   binom_test_funczTestBinomTestP.binom_test_func6  s     M!##BG,,q66Q;;!qtA!AAVVq[[!AyAEE !1222

AA6777ADDD}r5   c                     |                      dd          }t          |dd           |                      dd          }t          |dd           |                      dd	gd
          }t          |dd           d S )Nr      g-"^?r  r  i  g`w?i           ?r{  gz?r  r   )rQ   r  s     r3   r\  zTestBinomTestP.test_dataH  s    ##C--D"7<<<##C--D"5r:::##S#J##66D"5r:::::r5   c                 @    t          t          | j        g d           d S Nr{   rX   rY   r  rZ   s    r3   test_bad_len_xzTestBinomTestP.test_bad_len_xP  s!    j$"6			BBBBBr5   c                 z    t          t          | j        dg           t          t          | j        dgd           d S )Nr   r   r  r  rZ   s    r3   
test_bad_nzTestBinomTestP.test_bad_nT  s=     	j$"6>>>j$"6DDDDDDr5   c                 D    t          t          | j        ddgd           d S )Nr   rw  r  r  rZ   s    r3   
test_bad_pzTestBinomTestP.test_bad_p[  s3    j*RH	= 	= 	= 	= 	= 	=r5   c                     |                      dddd          }t          |d           |                      dddd          }t          |d           |                      dddd	          }t          |d
           d S )Nr     gUUUUUU?r:  r  g-$Ǻl?r;  gs0,j.?r  gJfJ"f?r  rQ   ra   s     r3   test_alternativesz TestBinomTestP.test_alternatives_  s    ""2scv"FFC!2333""2scy"IIC!4555""2sc{"KKC!344444r5   l        z32-bit does not overflowreasonc                 `    t          t          | j        ddt          j        j                   d S )Nrz  r:   r  )rX   OverflowErrorr  sys
float_infominrZ   s    r3   test_boost_overflow_raisesz)TestBinomTestP.test_boost_overflow_raisesi  s+     	mT%93S^EWXXXXXXr5   )Nr  r  )rd   re   rf   __doc__staticmethodr  r\  r  r  r  r  r@  ra  skipifr  maxsizer  rg   r5   r3   r  r  2  s             \"; ; ;C C CE E E= = =5 5 5 [u,5OPPY Y QPY Y Yr5   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d4S )5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   rC   iΙ gX7?i	ϙ g=?iϙ gybw?rG   r   r  r	   r   rQ   rD   ra   s      r3   test_two_sided_pvalues1z%TestBinomTest.test_two_sided_pvalues1v  s     oh$77
Cd3333oh$77
O$????oh$77
O$????oh$77
O$??????r5   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  r;   r8  r  r  r{  gX-h?rC   r   g㤶y?r  g	y}?r=   g+,?r|   r   r  g      ?r   r&  g{Gz?g333333?g<,?r  r  s      r3   test_two_sided_pvalues2z%TestBinomTest.test_two_sided_pvalues2  s7   oa2...
O$????oaT**
$5DAAAAob"d++
O$????oaT**
O$????oaR((
G$7777oaB''
Dt4444oaB''
F666666r5   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   rC   r|   r  gAL &W?r?   r  g!YB?r]   r  gE]t?r=   r:   r  r  r  s      r3   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1r5   c           	         ddd}t          j        t          j        z            dz             }t          j                            |          }t          j        t          j                            |          |k    d          }t          fd| t          j        z                      }|z
  t          |t          j                            |          k              z   }t          ||d	           d
}t          j        t          j
        z            dz             }t          j                            |          }t          j        t          j                            |          |k    d          }t          fd|dt          j
        z                      }|dz   }t          ||d	           d S )Nr   r  r|   r   r   axisc                 H    t           j                            |            S r,   r   binomr?  r   r  r{  s    r3   <lambda>z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s     +0;??2q!+D+D*D r5   rG   rC   r=   c                 F    t           j                            |           S r,   r  r  s    r3   r  z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s    */+//"a*C*C r5   )r-   r^   ceilr   r  r?  sumr   intr	   floor)	rQ   krb   dy1ixy2r  r{  s	          @@r3   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******r5   z"alternative, pval, ci_low, ci_high))r:  g$W?r   g?)r;  g}?gGI~?r   )r  g}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{  r5  r>  rC   皙?r<  confidence_level	r   r  r	   r   r
   rN   proportion_cilowhighrQ   r5  r  ci_lowci_highra   cis          r3   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Ir5   ))r:  ga&+w?r   gny?)r;  g5!Rx?g5%?r   )r  g~th?gSuR&|?g|KnG?c                     t          j        ddd|          }t          |j        |d           t	          |j        d           |                    d	          }t          |j        |j        f||fd           d S )
Nr|   r   r  r  r   rC   gQ?r'   r  r  r  s          r3   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Hr5   zalternative, pval, ci_high))r:  gլ?g̓A?)r;  r   r   )r  gEow?g;Kڞj?c                     t          j        ddd|          }t          |j        |d           |                    d          }t          |j        d	           t          |j        |d           d S )
Nr   r   r  r  r   rC   r<  r  r   )r   r  r	   r   r  r
   r  r  )rQ   r5  r  r  ra   r  s         r3   !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4r5   zalternative, pval, ci_low))r:  r   r   )r;  6>g@>}_?)r  r  gcڒ ?c                     t          j        ddd|          }t          |j        |d           |                    d          }t          |j        d           t          |j        |d           d S )	Nr   r  r  r   rC   r<  r  r   )r   r  r	   r   r  r
   r  r  )rQ   r5  r  r  ra   r  s         r3   %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2r5   z+k, alternative, corr, conf, ci_low, ci_high)r|   r  Tr<  g`?g?)r|   r  Tr'   grt!?g/?)r|   r  Fr<  gVK5?g5dM?)r|   r  Fr'   gXCVu^?g*r[?)r|   r:  Tr<  r   gP-V?)r|   r:  Tr'   r   g^'?)r|   r:  Fr<  r   gS5a?)r|   r:  Fr'   r   g?)r|   r;  Tr<  g!Շ`ⰸ?r   )r|   r;  Tr'   g$x"?r   )r|   r;  Fr<  gW~=?r   )r|   r;  Fr'   g	L?r   )r   r  Tr<  r   gX?)r   r  Fr<  r   gN?)r   r:  Tr<  r   g/<7#9?)r   r:  Fr<  r   gAA?)r   r;  Tr<  r   r   )r   r;  Fr<  r   r   )r   r  Tr<  g7?r   )r   r  Fr<  g؍s?r   )r   r:  Tr<  r   r   )r   r:  Fr<  r   r   )r   r;  Tr<  ghadn?r   )r   r;  Fr<  gAB/?r   c                     t          j        |dd|          }|rd}nd}|                    ||          }	t          |	j        |	j        f||fd           d S )	Nr   r  r  wilsonccwilson)r  methodr   rC   )r   r  r  r	   r  r  )
rQ   r  r5  corrconfr  r  ra   r  r  s
             r3   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Hr5   c                     t          j        ddd          }t          |j        d           t          |j        d           d S )Nr   r  r  r   )r   r  r
   rN   r   r  s     r3   &test_estimate_equals_hypothesized_propz4TestBinomTest.test_estimate_equals_hypothesized_prop#  sA     oaT**S]D)))SZ%%%%%r5   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   rY   r   r  )rQ   r  r  s      r3   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 must not be greater than nr>  r  r   r  r   rZ   s    r3   test_invalid_k_too_bigz$TestBinomTest.test_invalid_k_too_big1  s    ]:!?A A A 	* 	*OBD)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   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must be in the intervalr>  r   r  r   r  r@  r   rY   r  r  s     r3   test_invalid_confidence_levelz+TestBinomTest.test_invalid_confidence_level6  s    oa2---]:-FGGG 	3 	3r222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3   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 must ber>  zplate of shrimpr  r  r  s     r3   test_invalid_ci_methodz$TestBinomTest.test_invalid_ci_method;  s    oa2---]:-=>>> 	8 	8%6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8r  c                 h    t          j        ddd          }t          |j        |j                   d S )Nr|   r   r  r  )r   r  r
   proportion_estimaterN   r  s     r3   
test_aliaszTestBinomTest.test_alias@  s3    oa2---S,cm<<<<<r5   N)rd   re   rf   r  r  r  r  r  r@  ra  rb  r  r  r  r  r  r  r  r  r  r
  r  rg   r5   r3   r  r  o  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"
* * *
3 3 3
8 8 8
= = = = =r5   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  )r-   r^   r   r   fligner)rQ   r   s     r3   r\  zTestFligner.test_dataG  sC    Yq\\!%-BE":":"L"$	& 	& 	& 	& 	&r5   c                 ^  	 t           j                            d          		fd} |t                    } |t                    } |t
                    }t          j        |||d          \  }}t          j        |||dd          \  }}t          ||           t          ||           d S )NrJ  c                     t          j        |           d                    t          |                     z  z                                   S )Nr  )r-   asarrayrandnr   tolist)gr   s    r3   _perturbz+TestFligner.test_trimmed1.<locals>._perturbS  s9    JqMMEBHHSVV,<,<$<<DDFFFr5   rS   rk  rm  r   rn  )	r-   rV  r   rP  rQ  rR  r   r  r   )
rQ   r  g1_g2_g3_Xsq1rq  Xsq2rs  r   s
            @r3   rt  zTestFligner.test_trimmed1N  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)))))r5   c                     g d}g d}t          j        ||dd          \  }}t          j        |dd         |dd         d	          \  }}t          ||           t          ||           d S )
Nrv  r}  rm  r  rn  r   r   rS   rk  )r   r  r   )rQ   r_   r  r  rq  r  rs  s          r3   r  zTestFligner.test_trimmed2a  s    666666mAq49; ; ;e mAadGQqtWVDDDeD$'''E5)))))r5   c                 x    t          j        ddd          }t          t          t          j        ||d           d S r  )r-   r  rX   r  r   r  r   s     r3   r  zTestFligner.test_bad_keyword{  s6    KAr""i13GGGGGGr5   c                 x    t          j        ddd          }t          t          t          j        ||d           d S r  )r-   r  rX   rY   r   r  r   s     r3   r  z!TestFligner.test_bad_center_value  s6    KAr""j%-AfEEEEEEr5   c                 H    t          t          t          j        dg           d S rq   )rX   rY   r   r  rZ   s    r3   test_bad_num_argszTestFligner.test_bad_num_args  s    j%-!55555r5   c                     t          j        d          }t          t           j        t           j        ft	          j        ||dz  g                      d S )Nr   r   )r-   r^   r
   r   r   r  r   s     r3   rb  zTestFligner.test_empty_arg  s@    IaLLbfbf%u}Q1b'A'ABBBBBr5   N)
rd   re   rf   r\  rt  r  r  r  r"  rb  rg   r5   r3   r  r  E  s        & & &* * *&
* 
* 
*4H H HF F F6 6 6C C C C Cr5   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   r:  )		enumerater-   rV  rW  integersziprangeshufflesplit)expected_resultsseedssir  rZ  xytie_indnum_ties_per_indrb   r  jr_   r  s                r3   mood_cases_with_tiesr2    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 2r5   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;
        r4  gؗҜ<r'  Nr   moodr	   )rQ   r_   r  r5  stat_expectp_expectrN   r   s           r3   test_against_SASzTestMood.test_against_SAS  sO    < "Jq!EEE	6YU;;;;&u555555r5   zalternative, expected))r  )3oXQ?gpL?)r:  )r;  gԣl?)r;  )r;  gpL?c                 d    g d}g d}t          j        |||          }t          ||           d S )Nr  r#  r4  r6  )rQ   r5  rG  r_   r  ra   s         r3   test_against_SAS_2zTestMood.test_against_SAS_2  sP    < < <= = =jA;777X&&&&&r5   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   r]   )r-   rV  r  r  r   r7  r   )rQ   r   r   z1p1z2p2s          r3   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6r5   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   )r]   r   r  g4g^}E	?)r-   r   shaper   r   r7  )rQ   r   r   s      r3   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r5   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   r]   r   r  )	r-   rV  r  r  r   r7  r(  r   	transpose)rQ   nyr   r   	z_vectestpval_vectestr1  rb   s           r3   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r5   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   r:   r  r|   r  r   r   r   )r-   rV  r  r  r(  r   r7  r   )rQ   rE  r   r   r  rJ  rK  axes_idxrb   r1  slice1slice2s               r3   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r5   c                 J    t          t          t          j        dgg            d S rq   )rX   rY   r   r7  rZ   s    r3   test_mood_bad_argzTestMood.test_mood_bad_arg0  s"     	j%*qc266666r5   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  r4  r:  r;  Hz>r'  r   r   zalternative must be...r>  z	ekki-ekki)r-   rV  r  r   r   r0   r7  r	   r@  r   rY   )	rQ   r_   r  stat1r@  stat2rB  stat3p3s	            r3   test_mood_alternativezTestMood.test_mood_alternative5  s   
	qJNNCN00JNNCN00Jq!===	rJq!888	rJq!;;;	r&&&&&&&&&&AD))))BqD!!!A1H%%%]:-EFFF 	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 r5  )r  r:  r;  c                     t           j                            d          }|                    d          }|                    d          }t	          j        |||          }t          |j        |j        f|           d S )Nl	   hTt fU6H~ )r   r   )r]   r   r4  )	r-   rV  rW  r   r   r7  r
   rN   r   )rQ   r5  rZ  r   r   ra   s         r3   test_resultzTestMood.test_resultG  ss    i##$KLL  ))  ))jR[999cmSZ0#66666r5   N)rd   re   rf   r@  ra  rb  r2  r:  r=  rC  rF  rL  rQ  rS  rZ  r\  rg   r5   r3   r4  r4    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7 7 7
6 6 6$ [],L,L,LMM7 7 NM7 7 7r5   r4  c                   ~    e Zd Zd Zd Zd Zej                            e	 d          d             Z
d Zd Zd	 Zd
S )TestProbplotc                 @   t           j                            dd          }t          j        |d          \  }}g d}t	          |t          j        |                     t	          ||           t          j        |d          \  }}g d}t	          ||           d S )	Nr  90  rU  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   r0   probplotr	   r-   sort)rQ   r_   osmosrosm_expectedra   res_fitres_fit_expecteds           r3   rV   zTestProbplot.test_basicS  s    JNNN77>!///SG G G
 	RWQZZ(((\***~aT222W???!122222r5   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@ rU  Fsparamsr   r   rg   )r   r   r0   rb  r	   )
rQ   r_   osm1osr1osm2osr2osm3osr3rd  re  s
             r3   test_sparams_keywordz!TestProbplot.test_sparams_keywordb  s    JNN&N99 ^At???
d^Aqe<<<
d^Aru===
dd###d###d###d###>!RU;;;SSSr5   c                 b   t           j                            dd          }t          j        |ddd          \  }}t          j        |dt           j        d          \  }}t          ||           t          ||           t          t          t           j        |d	           t          t          t           j        |g 	            G d
 d          }t          j        |dd          \  }}t          j        | |            d          \  }}t          ||           t          ||           d S )Nr  r`  rU  Ft)r|   )r   r
  rk  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)rQ   qs     r3   rx  z7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppf|  s    z~~aQ~///r5   N)rd   re   rf   r  rx  rg   r5   r3   custom_distrv  z  s)        HH0 0 0 0 0r5   rz  )r   rj  )r
  r   )	r   r   r0   rb  rt  r	   rX   rY   AttributeError)rQ   r_   rl  rm  rn  ro  rz  s          r3   test_dist_keywordzTestProbplot.test_dist_keywordp  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#####r5   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 rU  plotF)r   r  r   )pltfigureadd_subplotr   rt  r0   rb  closer   r   r	   )
rQ   figr_   res1fitres1res2fitres2res3res4axs
             r3   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"----	r5   c                 L    t          t          t          j        dgd           d S r  )rX   rY   r   rb  rZ   s    r3   test_probplot_bad_argsz#TestProbplot.test_probplot_bad_args  s$    j%.1#<MNNNNNNr5   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 )NFra  Tr   )r
   r   rb  r-   r   r   rZ   s    r3   
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+-	. 	. 	. 	. 	.r5   c                 .   t          j        d          5  t          t          j        dgd          t          j        dg          t          j        dg          ft           j        t           j        dff           d d d            d S # 1 swxY w Y   d S )Nr   )invalidr   Tra  r   )r-   r   r
   r   rb  r   r   rZ   s    r3   test_array_of_size_onez#TestProbplot.test_array_of_size_one  s    [*** 	2 	26668RD>>28QC==96263/12 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   A'B

BBN)rd   re   rf   rV   rr  r|  r@  ra  r  have_matplotlibr  r  r  r  rg   r5   r3   r^  r^  Q  s        3 3 3< < <$ $ $( [O+ODD  ED0O O O. . .2 2 2 2 2r5   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g dg dg dg          d             Zd ZdS )TestWilcoxonc                 4   t          t          t          j        dgddg           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   dummyr4  r   xyzmode)rX   rY   r   wilcoxonrZ   s    r3   test_wilcoxon_bad_argz"TestWilcoxon.test_wilcoxon_bad_arg  s     	j%.1#1v>>>j%.1a&1a&'JJJj%.1a&1a&")	+ 	+ 	+ 	+j%.1#b&uEEEEEEr5   c                 
   t          j        d          }t          t          t          j        ||dd           t          t          t          j        ||dd           t          t	          j        ||dd          d           d S )Nr  wilcoxapproxr  prattzsplit)g     @Z@r   )r-   r^   rX   rY   r   r  r
   r   s     r3   test_zero_diffzTestWilcoxon.test_zero_diff  s    IbMMj%.!Q#	% 	% 	% 	%j%.!Q#	% 	% 	% 	% 	U^Aq(BBB#	% 	% 	% 	% 	%r5   c                     g d}g d}t                      5 }|                    t          d           t          j        ||dd          }d d d            n# 1 swxY w Y   t          |d           d S )	Nr+  )r   r   r|   r   Sample size too smallr  r  r  zero_methodr  )r   g|N?)r   r  rJ  r   r  r	   )rQ   r_   r  r  ra   s        r3   
test_prattzTestWilcoxon.test_pratt  s     LLLL   	KCJJ{,CJDDD.A7JJJC	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	788888s   5AAA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  )rQ   arrr  s      r3   test_wilcoxon_arg_typez#TestWilcoxon.test_wilcoxon_arg_type  sU     100N3G(CCCN3H8DDDN3H8DDDr5   c                 f   g d}t          dd          }t          j        d t          ||          D                       }t          j        |j                  }t          j        ||dd          \  }}t          |d           t          |d	           t          j        ||d
d          \  }}t          |d           t          |d           t          j        ||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  r]   r>   r   r   r   r   r   c                      g | ]\  }}|g|z  S rg   rg   )ry   ur   s      r3   rz   z7TestWilcoxon.test_accuracy_wilcoxon.<locals>.<listcomp>  s"    @@@1QC!G@@@r5   r  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     F
correctionr  r  g^҂<?r   rC   Tg:b+?)r(  r-   concatenater'  zerosr   r   r  r	   r   r
   )rQ   freqnumsr_   r  r[  r{  s          r3   test_accuracy_wilcoxonz#TestWilcoxon.test_accuracy_wilcoxon  s   ,,,R||N@@D$@@@AAHQV~aG(;;;130111~aH8<<<130111~aH8<<<13+,,, HQQQRRHQQQRR~au8DDD1Q940000~at(CCC1Q94000000r5   c                     t          j        g d          }t          j        g d          }t          j        ||dd          }d}t	          ||           d S )Nr  r  Fr  r  r0  )r-   r   r   r  r   )rQ   r_   r  ra   r`   s        r3   test_wilcoxon_result_attributesz,TestWilcoxon.test_wilcoxon_result_attributes  sa    HQQQRRHQQQRRnQe(CCC,
C,,,,,r5   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 r]   r  r  r   exact
zstatistic)r-   rV  rW  r   r  r   rx  r   r	   r  hasattr)rQ   rZ  r_   r  ra   r   s         r3   test_wilcoxon_has_zstatisticz)TestWilcoxon.test_wilcoxon_has_zstatistic  s    i##K00zz"~~szz"~~1nQ111jnnSZ\**,,,nQ0003-----nQ""3-------r5   c                    t          j        dgdz  d          \  }}d}t          |d           t          ||d           t          j        dgdz  d	d
          \  }}d}t          |d           t          ||d           d S )Nr  r   r  r  g4IťY?r   r   rC   Tr  gc2_?)r   r  r
   r	   )rQ   statr{  
expected_ps       r3   test_wilcoxon_tiezTestWilcoxon.test_wilcoxon_tie	  s     .#(;;;a 
T1:D1111.#8LLLa 
T1:D111111r5   c                    g d}g d}t                      5 }|                    t          d           t          j        ||dd          \  }}d d d            n# 1 swxY w Y   t          |d           t          |d	d
           t                      5 }|                    t          d           t          j        ||ddd          \  }}d d d            n# 1 swxY w Y   t          |d           t          |dd
           t                      5 }|                    t          d           t          j        ||dd          \  }}d d d            n# 1 swxY w Y   t          |d           t          |dd
           t                      5 }|                    t          d           t          j        ||ddd          \  }}d d d            n# 1 swxY w Y   t          |d           t          |dd
           d S )N)
}   r  r     r  r  r  r  r  r  )
r"  z   r  r  r  |   rJ     r     r  r  r:  r  r5  r  r;  g13}?r:   rJ   T)r5  r  r  g7a%?r;  g?gڏoJT?)r   r  rJ  r   r  r
   r   )rQ   r_   r  r  r   r{  s         r3   test_onesidedzTestWilcoxon.test_onesided  s2    ?>>>>>   	KCJJ{,CJDDD>!QFJJJDAq	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	QAy!4444   	1CJJ{,CJDDD>!QFt'/1 1 1DAq	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	QAy!4444   	NCJJ{,CJDDD>!QIHMMMDAq	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	QAy!4444   	1CJJ{,CJDDD>!QI$'/1 1 1DAq	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	QAy!444444sG   8AA"A9CC"C8EE!E9GG!G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   )r(  r   r   r
   r   r  r   )rQ   r  pmf1pmf2s       r3   test_exact_basiczTestWilcoxon.test_exact_basicB  s    q" 	2 	2A&q))D'**DAaCQD		222TA&&&%dD1111	2 	2r5   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  g֔  ?r:   rJ   r:  gYJ?r;  g*  ?r   r  r  r   g(?g(?gS?)r-   r   r   r  r   r^   )rQ   r_   r  r  r{  s        r3   test_exact_pvalzTestWilcoxon.test_exact_pvalJ  s   H # # # $ $H $ $ $ % %~a'JJJ1Ay!4444~aWEEE1Ay!4444~a	HHH1Az15555Ias"Ib!R  ~a'JJJ1Ay!4444~aWEEE1Ay!4444~a	HHH1Ay!444444r5   r_   )r   r   r|   )r   r   r%  r  r   )r   r   r|   r  r8  ir=   r>   c                     t          j        |          \  }}t          j        |          }||dk                                             }t          ||           t          |d           d S Nr   r   )r   r  r-   r   r  r
   )rQ   r_   r   r{  wtrues        r3   test_exact_p_1zTestWilcoxon.test_exact_p_1f  s_     ~a  1HQKK!a%QQr5   c                    t          j        dd          dz   }t          j        ddd          }t          t          j        ||          t          j        ||d                     t          j        dd          }t                      5 }|                    t          d	           t          j        |          \  }}d d d            n# 1 swxY w Y   t          t          j        |d
          ||f           t          j        dd          }t          t          j        |          t          j        |d
                     d S )Nr   r  r  r   r  r  r?   zExact p-value calculationr  r  r   r  )r-   r^   r
   r   r  r   r  rJ  )rQ   r_   r  r  r  r   r{  s          r3   	test_autozTestWilcoxon.test_autop  sa   Ias"Ib!R  U^Aq))^Aqw777	9 	9 	9 Ia   	%CJJ{,GJHHH>!$$DAq	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	U^AH5551v>>> IaU^A&&qx(H(H(HIIIIIs   
4C

CCN)rd   re   rf   r  r  r  r  r  r  r  r  r  r  r  r@  ra  rb  r  r  rg   r5   r3   r  r    s(       F F F	% 	% 	%9 9 9E E E1 1 1:- - -. . .2 2 2&$5 $5 $5L2 2 25 5 58 [S;;;#5#5#5#@#@#@#B C C C CJ J J J Jr5   r  c                   &    e Zd Zd Zd Zd Zd ZdS )	TestKstatc                    t           j                            d           t           j                            d          fddD             }g d}t	          ||d           t          j        d	          }t          j        d
	          }t          j        d	          }t	          |||f|d d         dd           d S )Ni}  r`  c                 :    g | ]}t          j        |          S rg   )r   kstat)ry   r  rR   s     r3   rz   z>TestKstat.test_moments_normal_distribution.<locals>.<listcomp>  s%    >>>A5;tQ''>>>r5   r+  )gHQ,?glZ)rI?g88}?gcJN?r   rC   r   )momentr   r|   r   g{Gz?{Gz?r  )r-   rV  r  r  r	   r   r  )rQ   momentsrG  m1m2m3rR   s         @r3    test_moments_normal_distributionz*TestKstat.test_moments_normal_distribution  s    
	uyu%%>>>>>>>>>>5555 \$q)))\$q)))\$q)))Rhssm$TJJJJJJr5   c                 F    t          t          t          j        g            d S r,   )rX   rY   r   r  rZ   s    r3   r[   zTestKstat.test_empty_input  s    j%+r22222r5   c                     t          j        d          }t           j        |d<   t          t	          j        |          t           j                   d S NrE   r:   r-   r^   r   r
   r   r  rr   s     r3   r   zTestKstat.test_nan_input  <    y~~&QU[&&/////r5   c                 |    t          j        d          }dD ]$}t          t          t          j        ||           %d S )Nr   )r   g/$@r  )r-   r^   rX   rY   r   r  rQ   rR   r  s      r3   test_kstat_bad_argzTestKstat.test_kstat_bad_arg  sD    y}} 	> 	>A*ek41=====	> 	>r5   N)rd   re   rf   r  r[   r   r  rg   r5   r3   r  r    sS        K K K3 3 30 0 0> > > > >r5   r  c                        e Zd Zd Zd Zd ZdS )TestKstatVarc                 F    t          t          t          j        g            d S r,   rX   rY   r   kstatvarrZ   s    r3   r[   zTestKstatVar.test_empty_input  s    j%."55555r5   c                     t          j        d          }t           j        |d<   t          t	          j        |          t           j                   d S r  r  rr   s     r3   r   zTestKstatVar.test_nan_input  r  r5   c                 T    dg}d}t          t          t          j        ||           d S )Nr   r   r  r  r  s      r3   rs   zTestKstatVar.test_bad_arg  s-    sj%.$!<<<<<<r5   N)rd   re   rf   r[   r   rs   rg   r5   r3   r  r    sA        6 6 60 0 0= = = = =r5   r  c                   x    e Zd Zd Zd Zd Zej                            e	 d          d             Z
d Zd Zd	S )
TestPpccPlotc                 :    t          ddd          dz   | _        d S Nr     r  rU  r4   r_   rZ   s    r3   setup_methodzTestPpccPlot.setup_method  !    "13WEEEIr5   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_plotr_   r	   r-   r  )rQ   r  svalsppccppcc_expecteds        r3   rV   zTestPpccPlot.test_basic  sm    odfc2;;;t% % %r{3:::;;;m,,,,,r5   c                 f   t          j        | j        ddd          \  }}t          j        | j        ddt           j                  \  }}t	          ||d           t	          ||d           t          j        | j        dd          \  }}t	          ||d           t	          ||d           d S )Nr  r   tukeylambdar	  g#B;rC   )r   r  r_   r  r	   )rQ   svals1ppcc1svals2ppcc2svals3ppcc3s          r3   	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1r5   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   r  r_   delaxesr  rQ   r  r  s      r3   r  zTestPpccPlot.test_plot_kwarg  s     jll__S!!Rc2222B __S!!Rb1111	r5   c                     t          t          t          j        | j        dd           t          t          t          j        g dddd           d S )Nr   r   r{   r  r	  )rX   rY   r   r  r_   rZ   s    r3   test_invalid_inputsz TestPpccPlot.test_invalid_inputs  sR    j%/461a@@@ 	j%/999a,	. 	. 	. 	. 	. 	.r5   c                     t          j        g dd          \  }}t          |t          j        ddd                     t          |t          j        dt                               d S )Nr   r   r  r  r   )r   r  r	   r-   r  r  float)rQ   r  r  s      r3   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8r5   N)rd   re   rf   r	  rV   r  r@  ra  r  r  r  r#  r  rg   r5   r3   r  r    s        J J J- - -
2 
2 
2 [O+ODD
 
 ED
. . .9 9 9 9 9r5   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestPpccMaxc                 P    dg}t          t          t          j        |d           d S r  )rX   rY   r   ppcc_maxrr   s     r3   test_ppcc_max_bad_argz!TestPpccMax.test_ppcc_max_bad_arg  s)    sj%.$=NOOOOOOr5   c                     t           j                            ddddd          dz   }t          t          j        |          dd	
           d S )Nffffffr   r  '   r        @{r=   rJ   )r   r  r0   r   r)  r   s     r3   test_ppcc_max_basiczTestPpccMax.test_ppcc_max_basic  sX    !!$ASu/6 " 8 8:=>EN1--/CQOOOOOOr5   c                 T   t           j                            ddddd          dz   }t          j        |d	          }t          j        |t           j        	          }t	          |d
d           t	          |d
d           t          j        |          }t	          |d
d           d S )Nr,  r   r  r-  r.  r   r/  r  r	  r0  r   rJ   )r   r  r0   r)  r   )rQ   r_   max1max2max3s        r3   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Br5   c                 0   t           j                            ddddd          dz   }t          t          t           j        |d	           t          t          j        |d
	          dd           t          t          j        |d	          dd           d S )Nr,  r   r  r-  r.  r   r/  )r   r   r  )brack)r   r   r0  r=   rJ   )r   r   )r   r  r0   rX   rY   r)  r   r   s     r3   
test_brackzTestPpccMax.test_brack  s    !!$ASu/6 " 8 8:=>j%.!?KKKKEN1F;;;0!	= 	= 	= 	= 	EN1G<<<0!	= 	= 	= 	= 	= 	=r5   N)rd   re   rf   r*  r1  r  r8  rg   r5   r3   r'  r'    sY        P P P
P P P
C C C	= 	= 	= 	= 	=r5   r'  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestBoxcox_llfc                 &   t           j                            ddd          }d}t          j        ||          }|j         dz  t          j        t          j        |                                dz                      z  }t          ||           d S )Nr-  r   1  r   r   r   r   rw  r   )
r   r   r0   
boxcox_llfr   r-   r.   r  rU   r	   )rQ   r_   lmbdallfllf_expecteds        r3   rV   zTestBoxcox_llf.test_basic  sz    JNN2ENBBua((w|bfRVAEEGGQJ-?-?&@&@@\*****r5   c                     t           j                            ddd          }d}t          j        ||          }t          j        |t	          |                    }t          ||d           d S Nr   r   r<  r=  r   r>  rC   )r   r   r0   r>  listr	   rQ   r_   r?  r@  llf2s        r3   test_array_likezTestBoxcox_llf.test_array_like  se    JNN%N@@ua((tAww//T......r5   c                     t           j                            ddd          }d}t          j        ||          }t          j        |t	          j        ||g          j                  }t          ||g|d           d S rC  )r   r   r0   r>  r-   vstackr[  r	   rE  s        r3   test_2d_inputzTestBoxcox_llf.test_2d_input  sv     JNN%N@@ua((ry!Q'8'8':;;c
Du555555r5   c                 n    t          t          j        t          j        dg                                d S rq   )r   r-   isnanr   r>  rZ   s    r3   r  zTestBoxcox_llf.test_empty(  s-    )!R001122222r5   c                 X    g d}t          j        d|          }t          |d           d S )N)g     h@      m@rN  g     x@ig#:x1)r   r>  r	   )rQ   rR   r@  s      r3   test_gh_6873zTestBoxcox_llf.test_gh_6873+  s8     ,++r4((/00000r5   N)rd   re   rf   rV   rG  rJ  r  rO  rg   r5   r3   r:  r:    s_        + + +/ / /6 6 63 3 31 1 1 1 1r5   r:  (  iU>  iϵ i i_
 i7 i is iv  i+ i* i-q ir: i  i i i i_ i4  i iD  i i, iE i\  i i| ig  iM iӢ i[  i! i if6 iP i i iI i/ iF& i i i`# i i  i& i i iQ ia i
 iXZ iw  i_ im  iD i- iB  i:C i	 i' i  i % ix i  iz_ iQ i!# i= i  ix i
 iU7 i_ i1k iW9 i& ix iI i  iT i
 i i  irv im i͟  i iO iv i) iP i4 i= ii  iU i i ig> ix	 i` i| i0 i` iM	 i ' i[ i8 i  i3[ i  i) i`N i
	 i  i[ i:+ ip i	% i
  iV i[$ iX  i_ ib ieZ i i`?	 it i  i iE i iT iy i imv i< iZ i! i i(  ir
 i i iɪ i| i i> ii  i i* i# ix i i& i i# i1g iP i) iۆ i{% i? i۽ i| i i& i- iư) i+c i7  iQ i	o i& i|_ iy
 i6 i  i i i:J i#j i8 i  i%  i i%W i( i` i: ina  i  i i% i$ i4 iA( iq  i  i" iy iXZ i izr i i$ i; is igY i i7 ip	 ip iL6" iDH i i!3 i iI( i|C iш i im  iS i  i{8 i  i i iP i2L i( i@ is iu i2 i_ ij i)m igZ i_ iu	 i9 ik  i'; i ii iK i܃ i i= iv i= i ia  ir  i i i}W i*  i  iJ i i  i2  iUF iNj	 iV," ip iA i% i iv9 iI5 i  iT- i  i8~ i?e` i1 iV  i/X i= i4 i iح i^ i i/ ig i( i i|B; ip i ic iE' iE i$
 i i{ ik i: iI iA_ i iP ioP  i6_ i iܲ iO	 iA7 iL  iA i iV  iwm i iZh i|V iԇC iw i& i~ i i'  i!  i i
 i} ie i3 i i i_ i  i@) i  iV ii iF i? i&
 i"Y iw i  iH iS ird ib i@ iK iA; iz| id+ i	 i
8 i"  i	 iO i_ i$l i!9 ii iT iuL iQ'% iqp iC i]K@ i! i i  iIp| i i?	B i i io0 i i

 i  i5% i i i* i i iv0 i* i* iw i  ive i$ i i- iD~ i- i i,4 ib i  i iP0 i) im i	 iR iQ i
 i i c                       e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            dg d          d	             Zd
 Ze	j
                            dg d          d             Zd ZdS )
TestBoxcoxc                 f   t          ddd          dz   }t          j        |d          }t          ||dz
             t          j        |d          }t          |dd|z  z
             t          j        |d          }t          |t	          j        |                     t          j        t          |          d          }t          |t	          j        |                     t          j        t	          j        d	          d
          }t          |t	          j	        d	                     d S )Nr   r   r`  rU  r   r?  r   r   r   r   )
r4   r   r   r	   r-   r.   rD  r   r
   r  )rQ   r_   xts      r3   test_fixed_lmbdazTestBoxcox.test_fixed_lmbdak  s   abu===A\!1%%%AE"""\!2&&&A!G$$$\!1%%%BF1II&&& \$q''+++BF1II&&& \"'"++q))R"&&&&&r5   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   rJ   )r   r   r0   r   r   )rQ   r?  r_   x_invrT  r   s         r3   test_lmbda_NonezTestBoxcox.test_lmbda_None}  sh     JNNrDNAAUQ5&)\%((
FFBJ::::::r5   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   rU  r  )alphagx@gv[%@r=  gxˉEk?g8Bhk @r=   r  r]   r$  g\?gx̡&@r!   g7(U@gp:sY@)r-   rV  r   r4   r   r   r	   )rQ   rZ  r_   r  rm   s        r3   
test_alphazTestBoxcox.test_alpha  s   i##D))abs;;;a? at4441h#46G"HIIIat4441h#57H"IJJJ ac<<<rAau5551h9k":;;;au5551h:z":;;;;;r5   c                 D   t          j        ddg          }t          t          t          j        |           t          t          t          j        t          j        dg                     t          t          t          j        t          j        dgdgg                     d S )Nr   r   r   )r-   r   rX   rY   r   r   r   s     r3   test_boxcox_bad_argzTestBoxcox.test_boxcox_bad_arg  ss    Hb!Wj%,222j%,!>>>j%,1#s0D0DEEEEEr5   c                 Z    t          t          j        g           j        dk               d S N)r   )r   r   r   rE  rZ   s    r3   r  zTestBoxcox.test_empty  s(    R  &$./////r5   c                 b    t          j        t                    \  }}t          |dd           d S )NgsHjdrr   rC   r   r   _boxcox_datar	   )rQ   r  lams      r3   rO  zTestBoxcox.test_gh_6873  s2    l++3 	YT222222r5   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)rd  r  r   minimize_scalarfunrd  s    r3   	optimizerzBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizer  $    +C3<> > > >r5   r?  rn  r   r   )r   r   rb  )rQ   rd  rn  r  r?  s    `   r3   $test_bounded_optimizer_within_boundsz/TestBoxcox.test_bounded_optimizer_within_bounds  sk    	> 	> 	> 	> 	> <DINNN5ay5,,,,6!9,,,,,,,,r5   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 )	NrS  r  r   xatolr>  c                 4    t          j        | d          S )Nri  )rd  r  optionsrj  )rm  rd  ru  s    r3   rn  zPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizer  s*    +C3<gO O O Or5   rp  r   ra  )rQ   r  r?  rn  lmbda_boundedrd  ru  s        @@r3   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1r5   rn  )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>  rp  r@  r   rY   r   r   rb  rQ   rn  s     r3   $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 rq   rg   )rm  s    r3   rn  zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizer  s    1r5   z;`optimizer` must return an object containing the optimal...r>  rp  r{  )rQ   rn  rA  s      r3   %test_bad_optimizer_value_raises_errorz0TestBoxcox.test_bad_optimizer_value_raises_error  s    
	 	 	 P]: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N)rd   re   rf   rU  rX  r[  r]  r  rO  r@  ra  rb  rq  rw  r}  r  rg   r5   r3   rQ  rQ  i  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 
H 
Hr5   rQ  c                       e Zd Zd Zd Zd Zd Zej        	                    dg d          ej        	                    dg d          d	                         Z
d
 Zd ZdS )TestBoxcoxNormmaxc                 :    t          ddd          dz   | _        d S Nr   r   r`  rU  r  rZ   s    r3   r	  zTestBoxcoxNormmax.setup_method  !    "12EBBBQFr5   c                 \    t          j        | j                  }t          |dd           d S )Nm?r   rC   r   boxcox_normmaxr_   r	   rQ   r   s     r3   test_pearsonrzTestBoxcoxNormmax.test_pearsonr  s/    %df--t444444r5   c                     t          j        | j        d          }t          |dd           t          j        | j                  \  }}t          ||           d S )Nmler	  	.!?r   rC   )r   r  r_   r	   r   )rQ   r   r  maxlog_boxcoxs       r3   test_mlezTestBoxcoxNormmax.test_mle  s\    %dfU;;;t4444 !<//=v.....r5   c                 d    t          j        | j        d          }t          |ddgd           d S )Nr   r	  r  r  r   rC   r  )rQ   
maxlog_alls     r3   test_allzTestBoxcoxNormmax.test_all  s9    )$&???

Xx$8tDDDDDDr5   r  )r  pearsonrr   rd  re  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 rh  rj  rl  s    r3   rn  zITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer  ro  r5   )r  rn  r   r   )r   r  r_   r-   r   )rQ   r  rd  rn  r   s     `  r3   rq  z6TestBoxcoxNormmax.test_bounded_optimizer_within_bounds  s    	> 	> 	> 	> 	> %dfV09; ; ;vfQi&()))))vfvay()))))))r5   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)rd   re   rf   rg   r5   r3   MyResultr    s        Dr5   r  c                     g }D ] }|                      | |                     !             }t          j        |                   |_        |S r,   )appendr-   argminr_   )rm  objsr?  ra   r  lmbda_ranges       r3   rn  z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizer  sX    D$ ( (CCJJ''''(**C	$0CEJr5   )rn  r   )r   r  r_   r-   roundr  r	   )rQ   r?  lmbda_roundedrn  lmbda2r  r  s        @@r3   test_user_defined_optimizerz-TestBoxcoxNormmax.test_user_defined_optimizer  s    $TV,,**k-"4mD6H$OO	 	 	 	 	 	 	 		 	 	 	 	 	 %df	BBBt,,,,,r5   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)r7  rn  z,`brack` must be None if `optimizer` is givenr>  )g       rw  )r   rk  r   r  r_   r@  r   rY   r|  s     r3   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N)rd   re   rf   r	  r  r  r  r@  ra  rb  rq  r  r  rg   r5   r3   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 6r5   r  c                   r    e Zd Zd Zd Zej                            e d          d             Z	d Z
d ZdS )	TestBoxcoxNormplotc                 :    t          ddd          dz   | _        d S r  r  rZ   s    r3   r	  zTestBoxcoxNormplot.setup_method'  r
  r5   c                     d}t          j        | j        dd|          \  }}g d}t          |t	          j        dd|                     t          ||           d S )Nr   r  r   r  )g!X4}?g΁i?g-	15?gW$?g\ܱ{?r  )r   boxcox_normplotr_   r	   r-   r  )rQ   r  lmbdasr  r  s        r3   rV   zTestBoxcoxNormplot.test_basic*  sn    ,TVS"BBB% % %C ; ; ;<<<m,,,,,r5   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  r_   r   r  r!  s      r3   r  z"TestBoxcoxNormplot.test_plot_kwarg2  s     jll__S!!dfc2C8888B __S!!dfc2B7777	r5   c                     t          t          t          j        | j        dd           t          t          t          j        ddgdd           d S )Nr   r   r   )rX   rY   r   r  r_   rZ   s    r3   r#  z&TestBoxcoxNormplot.test_invalid_inputs?  s@    j%"7AFFFj%"7"a!QGGGGGr5   c                 ^    t          t          j        g dd          j        dk               d S r  )r   r   r  r   rZ   s    r3   r  zTestBoxcoxNormplot.test_emptyE  s-    %b!Q//49:::::r5   N)rd   re   rf   r	  rV   r@  ra  r  r  r  r#  r  rg   r5   r3   r  r  &  s        J J J- - - [O+ODD
 
 ED
H H H; ; ; ; ;r5   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   r>  rC   )r   r   r0   yeojohnson_llfrD  r	   rE  s        r3   rG  z"TestYeojohnson_llf.test_array_likeK  se    JNNN??"5!,,#E47733T......r5   c                     t           j                            ddd          }d}t          j        ||          }t          j        |t	          j        ||g          j                  }t          ||g|d           d S rC  )r   r   r0   r  r-   rI  r[  r	   rE  s        r3   rJ  z TestYeojohnson_llf.test_2d_inputR  st    JNN%N@@"5!,,#E29aV+<+<+>??c
Du555555r5   c                 n    t          t          j        t          j        dg                                d S rq   )r   r-   rL  r   r  rZ   s    r3   r  zTestYeojohnson_llf.test_emptyY  s-    -a445566666r5   N)rd   re   rf   rG  rJ  r  rg   r5   r3   r  r  I  sA        / / /6 6 67 7 7 7 7r5   r  c                   J   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dS )TestYeojohnsonc                 p   t           j                            d          }t          dd|          dz   }t          j        |dk              sJ t          j        |d          }t          ||           t          j        |d          }t          |dd|dz   z  z
             t          j        |d          }t          |t          j        |dz                        t          j        |d          }t          ||           t          dd|          dz
  }t          j        |dk               sJ t          j        |d	          }t          |t          j        | dz                         t          j        |d          }t          ||           t          j        |d
          }t          |d| dz   z  dz
             t          dd|          d	z
  }t          j        |dk               rJ t          j        |dk              rJ |dk    }t          j        |d          }t          ||         ||                    t          j        |d          }t          ||         dd||         dz   z  z
             t          j        |d          }t          ||         t          j        ||         dz                        t          j        |d          }t          ||         ||                    | }t          j        |d	          }t          ||         t          j        ||          dz                         t          j        |d          }t          ||         ||                    t          j        |d
          }t          ||         d||          dz   z  dz
             d S )Nr`  r   r   rU  r   r   rS  r   r   r|   )	r-   rV  r   r4   r   r   
yeojohnsonr	   r.   )rQ   rZ  r_   rT  posnegs         r3   rU  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7r5   r?  )r   r  r  r   c                    d }d}t           j                            d           t           j                            dd|          } |||          }t	          j        |          \  }}t          ||d           t          dt           j        	                    ||z
            |z  d	
           t          d|
                                d
           t          d|                                d
           d S )Nc                 0   t          j        | j        | j                  }| dk    }t	          |          t          j        d          k     r!t          j        | |                   dz
  ||<   n*t          j        | |         |z  dz   d|z            dz
  ||<   t	          |dz
            t          j        d          k    r4dt          j        d|z
   | |          z  dz   dd|z
  z            z
  || <   n#dt          j        | |                     z
  || <   |S )Nr   r   r   r   r   )r-   r  rE  r   absspacingexppower)r_   r?  rW  r  s       r3   _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Lr5   i N  r.  r   r   )r   r   r   r  r'  r   rJ   )r-   rV  r  normalr   r  r	   r   linalgr   rS   rU   )rQ   r?  r  	n_samplesr_   rW  rT  r   s           r3   rX  zTestYeojohnson.test_lmbda_None  s    
	 	 	& 	
	wI!9>>""1e,,%e,,
FD1111Ary~~a"f55	A1MMMMArwwyy!4444Arvvxx333333r5   c                 Z    t          t          j        g           j        dk               d S r_  )r   r   r  rE  rZ   s    r3   r  zTestYeojohnson.test_empty  s)     $$*d233333r5   c                     t           j                            ddd          }t          j        |          \  }}t          j        t	          |                    \  }}t          ||d           d S )Nr   r   r<  r=  r>  rC   )r   r   r0   r  rD  r	   )rQ   r_   xt1r  xt2s        r3   rG  zTestYeojohnson.test_array_like  sd    JNNN??!!$$Q!$q''**QSu------r5   r   c                     t          j        d|          }d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr:   r   z>Yeo-Johnson transformation is not defined for complex numbers.r>  )r-   r^   r@  r   rY   r   r  )rQ   r   r_   err_msgs       r3   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 )Nr>   r   rU  rC   )r-   r^   float64r   r  r	   )rQ   r   x_intx_floatxt_int	lmbda_intxt_floatlmbda_floats           r3   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::::::r5   c                     t          j        g d          }t          j        |          \  }}t          j        |dz             \  }}t          ||d           t          ||d           d S )N)(HAG."A    5fAg(@Ag   VAgHzuoAg)\¿+Ar  g(\^@Ag    RAr  g    #Ag\µ=Ag
ףNAr  gp=oHAg    6bAg{csAg)\tmhAg/BAg   '|Ag(\wipAg    ݃hAgQlBAgףp @Ar   r   rC   )r-   r   r   r  r   r	   )rQ   r_   xt_yeolam_yeoxt_boxlam_boxs         r3   test_input_high_variancez'TestYeojohnson.test_input_high_variance  s    H " " " # #  *1--,q1u--T2222t444444r5   N)rd   re   rf   rU  r@  ra  rb  rX  r  rG  r-   	complex64
complex128r  int8uint8int16int32r  r  rg   r5   r3   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 5 5r5   r  c                        e Zd Zd Zd Zd ZdS )TestYeojohnsonNormmaxc                 :    t          ddd          dz   | _        d S r  r  rZ   s    r3   r	  z"TestYeojohnsonNormmax.setup_method  r  r5   c                 \    t          j        | j                  }t          |dd           d S )Ng?r   rC   )r   yeojohnson_normmaxr_   r	   r  s     r3   r  zTestYeojohnsonNormmax.test_mle  s/    )$&11t444444r5   c                 h    g d}t          j        |          }t          j        |dd          sJ d S )N)gffffff@g r   rw  ffffff?g333333@r~  gffffff@g?g@r|  rx  g"@r  g      gzG?r$  r'  )r   r  r-   allclose)rQ   r_   r?  s      r3   test_darwin_examplez)TestYeojohnsonNormmax.test_darwin_example  sF      (++{5%d33333333r5   N)rd   re   rf   r	  r  r  rg   r5   r3   r  r    sD        G G G5 5 54 4 4 4 4r5   r  c                   4   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d	 Zd
 Z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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/d0d1d2ej        d3d4gg          g          ej                            dej        ej        ej	        g          d5                         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/d0d1d2ej        d3d4gg          g          ej                            dej        ej        ej	        g          d6                         Z d7 Z!d8 Z"d9 Z#d:S );TestCircFuncsztest_func,expectedgA:wv?g @pz?gE|2@c                 l    t          j        g d          }t           ||d          |d           d S Nc  r   r   r  r   ^  h  r  rU  rC   r-   r   r	   rQ   	test_funcrG  r_   s       r3   test_circfuncszTestCircFuncs.test_circfuncs  sD    
 H...//		!#...tDDDDDDr5   c                    t          j        g d          }|                                }t          j        |d          }t          ||d           |t           j        z  dz                                  }|dz  }t          j        |d          }t          ||d           |	                                }t          j
        |d          }t          ||d           d S )	N)r  r8  r  r     g     4@g3333333@r  r  r   rC   r  rw  r   )r-   r   rS   r   circmeanr	   pirT   circvarrU   circstd)rQ   r_   M1M2V1V2S1S2s           r3   test_circfuncs_smallz"TestCircFuncs.test_circfuncs_small  s    H55566VVXX^AC(((BT****gck   "W]13'''BT****UUWW]13'''BT******r5   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>r'  r  )rQ   r  
numpy_funcr_   circstatr  s         r3   test_circfuncs_closez"TestCircFuncs.test_circfuncs_close	  s_     H)*R/3F2G#2MMNN9Q<<A&t444444r5   c                    t          j        g dg dg dg          t          j        d          }t          j                                        d          }t          ||d           t          j        dd	          }fd
t          j        d                   D             }t          ||d           t          j        dd	          }fdt          j        d                   D             }t          ||d           d S )Nr  _  r=   r   `  r;   ]  ie  r;   r>   if  r   id  r  r  rB   rC   r   r  r  c                 H    g | ]}t          j        |         d           S r  r  r   r  ry   rb   r_   s     r3   rz   z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>!	  s,    HHHenQqT,,,HHHr5   r   c                 P    g | ]"}t          j        d d |f         d          #S Nr  r  r  r  s     r3   rz   z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>%	  s4    KKKAenQqqq!tW3///KKKr5   )r-   r   r   r  ravelr	   r(  rE  )rQ   r   r  r_   s      @r3   test_circmean_axisz TestCircFuncs.test_circmean_axis	  s%   H///......0 1 1 ^AC(((^AGGIIC000BU++++^ACa000HHHHeAGAJ6G6GHHHBU++++^ACa000KKKKqwqz9J9JKKKBU++++++r5   c                    t          j        g dg dg dg          t          j        d          }t          j                                        d          }t          ||d           t          j        dd	          }fd
t          j        d                   D             }t          ||d           t          j        dd	          }fdt          j        d                   D             }t          ||d           d S )Nr  r  r  r  r  dy=rC   r   r  c                 H    g | ]}t          j        |         d           S r  r   r  r  s     r3   rz   z3TestCircFuncs.test_circvar_axis.<locals>.<listcomp>2	  ,    GGGemAaDs+++GGGr5   r   c                 P    g | ]"}t          j        d d |f         d          #S r  r  r  s     r3   rz   z3TestCircFuncs.test_circvar_axis.<locals>.<listcomp>6	  4    JJJ1emAaaadG#...JJJr5   )r-   r   r   r  r  r	   r(  rE  )rQ   r  r  r_   s      @r3   test_circvar_axiszTestCircFuncs.test_circvar_axis(	  %   H///......0 1 1 ]13''']177993///BU++++]13Q///GGGGU171:5F5FGGGBU++++]13Q///JJJJagaj8I8IJJJBU++++++r5   c                    t          j        g dg dg dg          t          j        d          }t          j                                        d          }t          ||d           t          j        dd	          }fd
t          j        d                   D             }t          ||d           t          j        dd	          }fdt          j        d                   D             }t          ||d           d S )Nr  r  r  r  r  r  rC   r   r  c                 H    g | ]}t          j        |         d           S r  r   r  r  s     r3   rz   z3TestCircFuncs.test_circstd_axis.<locals>.<listcomp>C	  r  r5   r   c                 P    g | ]"}t          j        d d |f         d          #S r  r%  r  s     r3   rz   z3TestCircFuncs.test_circstd_axis.<locals>.<listcomp>G	  r   r5   )r-   r   r   r  r  r	   r(  rE  )rQ   r  r  r_   s      @r3   test_circstd_axiszTestCircFuncs.test_circstd_axis9	  r"  r5   c                 H    g d}t           ||d          |d           d S r  )r	   r  s       r3   test_circfuncs_array_likez'TestCircFuncs.test_circfuncs_array_likeJ	  s9    
 &%%		!#...tDDDDDDr5   r  c                 Z    t          t          j         |g                                d S r,   )r   r-   rL  )rQ   r  s     r3   r  zTestCircFuncs.test_emptyR	  s*     	2''(((((r5   c                     ddddddt           j        g}t          t          j         ||d                               d S )	Nr  r   r   r  r   r  r  r  r-   r   r   rL  rQ   r  r_   s      r3   test_nan_propagatez TestCircFuncs.test_nan_propagateW	  sG     !QRbf-13///0011111r5   g5:v@gfPb?r  gee?gOQOv?g#q@gauy+@c                 $   t          j        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	          t          j        |                     4t          |d         ||         d           t	          t          j        |dd                                                               d S )N)r  r   r   r  r   r  r   r  r=   r   r  r;   r  r   r  r  r   rU  rC   )r-   r   r   keysr   rL  r	   r   rQ   r  rG  r_   r  outs         r3   test_nan_propagate_arrayz&TestCircFuncs.test_nan_propagate_array]	  s     H222Aq#q#rv6"&"&"&"&"&"&IK L L MMOO 	1 	1D)ACd333C|&&&&ATBBBBQRR))--//0000	1 	1r5   grQvv@)g     v@r{  rx  g     8v@r9  g     u@g5@v?g2>Bjv@gG2?)gaF+?z?r4  gA ~@碲?r5  r  r   gX҄?gJPm$@)gj  @竃 ?r6  g)h;@{ ?r7  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 ]s} ||dd|          }|t	          |||         d           ,t	          |d d         ||         d           t          t          j        |d                              td S )Nr  r   r   r  r   r  r  r=   r   r  r;   r  r  omit)r  
nan_policyr  rU  rC   r   )r-   r   r   r0  r	   r   rL  r1  s         r3   test_nan_omit_arrayz!TestCircFuncs.test_nan_omit_arrayr	  s    ( HsAq#r37Aq#q#rv6vrvrvrvrvrvrvNP Q Q MMOO 	+ 	+D)ACFFFFC|Xd^$?????CRC(4.tDDDDR))****	+ 	+r5   c                 h    ddddddt           j        g}t           ||dd	          |d
           d S )Nr  r   r   r  r   r  r  r9  r  r:  rU  rC   )r-   r   r	   r  s       r3   test_nan_omitzTestCircFuncs.test_nan_omit	  sS    
 !QRbf-		!#&AAA t	- 	- 	- 	- 	- 	-r5   c                     t           j        t           j        t           j        t           j        t           j        g}t          t          j         ||d                               d S )Nr9  r:  r,  r-  s      r3   test_nan_omit_allzTestCircFuncs.test_nan_omit_all	  sK     VRVRVRVRV4188899:::::r5   c                    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 S )Nr9  r   )r:  r  r   )r-   r   r   r   rL  r   r   )rQ   r  r_   r2  s       r3   test_nan_omit_all_axisz$TestCircFuncs.test_nan_omit_all_axis	  s     Hrvrvrvrvrv>vrvrvrvrv>@ A Aif1555!!##$$$CAr5   r_   r  r   r  r   r  r  r=   r   r  r;   r  c                 8    t          t          ||dd           d S )Nr  raiser=  rX   rY   r-  s      r3   test_nan_raisezTestCircFuncs.test_nan_raise	  s#     	j)QSWMMMMMMr5   c                 8    t          t          ||dd           d S )Nr  foobarr=  rF  r-  s      r3   test_bad_nan_policyz!TestCircFuncs.test_bad_nan_policy	  s#     	j)QSXNNNNNNr5   c                 Z    d}|}t          j        |          }t          ||d           d S )Nr   r   rC   )r   r  r	   )rQ   r_   r   r  s       r3   test_circmean_scalarz"TestCircFuncs.test_circmean_scalar	  s6    ^ABT******r5   c                     t          j        t          j        ddd          t          j        t          j                   }t          |t          j        k                t          |t          j         k               d S )Nr   r   r  )r   r  r-   r^   r  r   r_  s     r3   test_circmean_rangez!TestCircFuncs.test_circmean_range	  s[     N29Q3//??BE	RUF
r5   c                    t          j        ddgd          }t          t          j        |d          d           t          t          j        |d          dd	
           t          t          j        |d          dd	
           d S )N   r   r  r   r  r  g     @e@gLwqA?rU  rC   g)#p_4@)r-   r   r
   r   r  r	   r  r  r   s     r3   test_circfuncs_uint8z"TestCircFuncs.test_circfuncs_uint8	  s     Hc2Yg...U^AC000%888ac222O$OOOOac222KdKKKKKKr5   N)$rd   re   rf   r@  ra  rb  r   r  r  r  r  r  r-   rS   rT   rU   r
  r  r!  r'  r)  r  r.  r   r3  r   r  r;  r>  rA  rC  rG  rJ  rL  rN  rQ  rg   r5   r3   r  r    sj        [1$~{;$}.BC$}k:<= =E E	= =E+ + +" [4$~rw7$}bf5$}bf578 85 5	8 85, , , , , ,", , ," [1$~{;$}.BC$}k:<= =E E	= =E [[5>5=+0=+: ; ;) ); ;) [[5>5=+0=+: ; ;2 2; ;2 [1$~&(f*MMO$}&(f#7#7 9  9:  %}&(f
KKMNO O
1 
1O O
1 [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+ + +  L L L L Lr5   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 r  rX   rY   r   median_testrZ   s    r3   test_bad_n_samplesz!TestMedianTest.test_bad_n_samples	  s!    j%"3YYY?????r5   c                 L    t          t          t          j        g g d           d S r  rU  rZ   s    r3   r  z TestMedianTest.test_empty_sample	  s#    j%"3RCCCCCr5   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   tiesrU  rZ   s    r3   test_empty_when_ties_ignoredz+TestMedianTest.test_empty_when_ties_ignored	  sG    
 	j%"3"llIII1vH	F 	F 	F 	F 	F 	Fr5   c                     t          t          t          j        g dg d           t          t          t          j        g dg dd           d S )N)r   r   r   aboverZ  rU  rZ   s    r3   test_empty_contingency_rowz)TestMedianTest.test_empty_contingency_row	  s\    
 	j%"3YYY			JJJ 	j%"3YYY			"	$ 	$ 	$ 	$ 	$ 	$r5   c                 T    t          t          t          j        g dddgd           d S )Nr{   r   r   r3  rZ  rU  rZ   s    r3   test_bad_tieszTestMedianTest.test_bad_ties	  s9    j%"3YYYA 	" 	" 	" 	" 	" 	"r5   c                 T    t          t          t          j        g dddgd           d S )Nr{   r   r   rI  r@  rU  rZ   s    r3   rJ  z"TestMedianTest.test_bad_nan_policy	  s-    j%"3YYYAS[\\\\\\r5   c                 T    t          t          t          j        g dddgd           d S )Nr{   r   r   r3  )r3  )rX   r  r   rV  rZ   s    r3   r  zTestMedianTest.test_bad_keyword	  s9    i!2III1v	! 	! 	! 	! 	! 	!r5   c                     g d}g d}t          j        ||          \  }}}}t          |d           t          |ddgddgg           t          |d           t          |d           d S )Nr{   rw  r   r   r   )r   rV  r
   r   )rQ   r_   r  r  r{  medtbls          r3   test_simplezTestMedianTest.test_simple	  s    IIII!-a33ac 	S#3!Q!Q 0111 	T1Qr5   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 )Nr+  r   r:   )r=   r>   r;   )r   r   r|   )r   r   r   r   rZ  )r   r   r   r^  )r   r   r|   )r   rV  r
   )rQ   r_   r  zr  r{  r+  rf  s           r3   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1r5   c                    ddt           j        g}g d}t          j        ||d          }t          j        ||d          \  }}}}t	          |t           j        t           j        t           j        d f           t          |d           t          |d           t	          |d	           t	          |t          j        d
dgddgg                     t          t          t          j        ||d           d S )Nr   r   )r   r   r:   	propagater@  r9  g     ?gإvao?ry  r   rE  )	r-   r   r   rV  r
   r	   r   rX   rY   )rQ   r_   r  mt1r  r{  r+  rt  s           r3   test_nan_policy_optionsz&TestMedianTest.test_nan_policy_options
  s    26NII1===&q!???
1aS26262648999.///.///QQ1a&!Q11222j%"3QgNNNNNNr5   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   r:   r>   r   r   r   r   )lambda_Fr  )r   rV  r
   chi2_contingencyr	   )rQ   r_   r  r  r{  r+  rf  exp_statexp_pdofes              r3   rV   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!!!!!r5   r  FTc                     g d}g d}t          j        |||          }t          |j        |j        |j        |j        f|           d S )Nr{   rq  )r   rV  r
   rN   r   r  table)rQ   r  r_   r  ra   s        r3   r\  zTestMedianTest.test_resultI
  sR    IIII1<<<cmSZSYGMMMMMr5   N)rd   re   rf   rW  r  r\  r_  ra  rJ  r  rg  rj  rn  rV   r@  ra  rb  r\  rg   r5   r3   rS  rS  	  s        @ @ @D D DF F F
$ 
$ 
$" " "] ] ]! ! !  2 2 2(O O O" " "> [\E4=99N N :9N N Nr5   rS  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d
 Zd Zd ZdS )TestDirectionalStatsc                 H   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        }t          j	        |d          }t          j        g d          }t          ||           d S )N)	g33333su@g      O@g33333sB@g      ;@g     pv@g@g333333I@gYv@rk  )	gfffffP@g,Q@gfffffQ@gfffffT@g     S@g     @R@g33333SQ@gffffffM@g33333I@r   r  r   )gHP?g&S:g[<)r-   deg2radr   stackcossinr   directional_statsmean_directionr  r	   )rQ   declinclrR   dirstatsdirectional_meanmean_roundedreference_means           r3   "test_directional_stats_correctnessz7TestDirectionalStats.test_directional_stats_correctnessT
  s    
28 %< %< %< = = > > >
28 %< %< %< = = > > >xt4t4'      
 *400#2x 0!44"<"<"<==n55555r5   zangles, refr   r   r   r   c                 
   t          |          r ||          }t          j        t          j        |          t          j        |          gd          }dt          j        |          j        z
  }t          ||           d S )Nr   r  )	callabler-   r}  r~  r  r   r  mean_resultant_lengthr	   )rQ   anglesr   rR   ra   s        r3   'test_directional_stats_2d_special_casesz<TestDirectionalStats.test_directional_stats_2d_special_casesh
  sv    
 C== 	#f++Cx8qAAA%)$//EES!!!!!r5   c                 F   t           j                            d          }dt           j        z  |                    d          z  }t          j        t          j        |          t          j        |          fd          }t          j        |          }|j	        }t          j
        |d         |d                   }|dt           j        z  z  }t          j        |          }t          ||           d|j        z
  }t          j        |          }	t          ||	           d S )Nl	   }7Qh0P4u&4M r   )rT  r   r  r   )r-   rV  rW  r  r}  r~  r  r   r  r  arctan2r  r	   r  r  )
rQ   rZ  testdatatestdata_vectorr  r  directional_mean_angler  directional_varcircular_vars
             r3   test_directional_stats_2dz.TestDirectionalStats.test_directional_stats_2ds
  s    i##$FGGru9szz(333(BF8$4$4$&F8$4$4$6()+ + + *?;;#2!#,<Q,?,<Q,?"A "A!71RU7!C>(++"8999h<<}X..66666r5   c                     t          j        g dg dg          }t          j        |d          }t          j        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  )rQ   rR   
full_arrayrG  r  s        r3    test_directional_mean_higher_dimz5TestDirectionalStats.test_directional_mean_higher_dim
  s     x---...0 1 1WT<00
8lll*ll,*ll*ll,- . . *:A>>>("9:::::r5   c                     g dg dg}t          j        |          }t          j        |          }t          j        |          }t	          |j        |j                   t	          |j        |j                   d S )Nr  )r  r  r   )r-   r  r   r  r	   r  r  )rQ   rR   
data_arrayra   r   s        r3   )test_directional_stats_list_ndarray_inputz>TestDirectionalStats.test_directional_stats_list_ndarray_input
  s    $$$&:&:&:;Z%%
%d++%j11*C,>???11	3 	3 	3 	3 	3r5   c                     t          j        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@  r   rY   reescaper   r  )rQ   rR   rA  s      r3   test_directional_stats_1d_errorz4TestDirectionalStats.test_directional_stats_1d_error
  s    wu~~6]:RYw-?-?@@@ 	* 	*#D)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A&&A*-A*c                 D   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?g      r   T)	normalizer   )r  keepdimsF)	r-   r   r   r  r  r   r	   r  r  )rQ   rR   ra   normalized_datar   s        r3    test_directional_stats_normalizez5TestDirectionalStats.test_directional_stats_normalize
  s     x------/ 0 0%dd;;;29= "0 "? "? ?%o057 7 7*C,>???11	3 	3 	3 	3 	3r5   N)rd   re   rf   r  r@  ra  rb  r-   r  r  r  r  r  r  r  rg   r5   r3   rz  rz  R
  s        6 6 6( []5&(BE!G	b!
QruWr-  " "	 "7 7 7(; ; ;3 3 3* * *3 3 3 3 3r5   rz  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  r  )r  r  r   r  r  zUnrecognized `method` 'YAK')r  r  rk   YAKr	  z#`axis` must be an integer or `None`rK  r  ry  )r@  r   rY   r   false_discovery_controlr-   r   )rQ   rA  s     r3   test_input_validationz$TestFDRControl.test_input_validation
  sh   B]:W555 	: 	:)...999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:]:W555 	9 	9)---888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9]:W555 	> 	>)3RV*<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 0]:W555 	I 	I)///%HHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 8]:W555 	E 	E)///DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E]:W555 	H 	H)///GGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hsk   AAA'B

BB0"CC"%C"D++D/2D/E88E<?E<GGGc                 b    g d}t          j        |          }g d}t          ||d           d S )N)r  g;On?g~jt?gI+?g&1?gB`"۹?gv?S㥛?);On?r  I+?r  gˡE?gHzG?r  r  r$  r'  )r   r  r	   )rQ   psra   r   s       r3   test_against_TileStatsz%TestFDRControl.test_against_TileStats
  sC    EEE+B//FFFSt,,,,,,r5   case)
go?gQ]
Y?ghD@?u?D?gn@t?g=T	[ے?g=!s?r  r  g	L?bh)
glߢ?gq?g.0?R]D?g)<Gh?g$͂?g2-p?r  r  g]:?byc                     |\  }}t           j                            d          }t          j                            ddd|          }|d         |d<   t          j        ||          }t          ||d	
           d S )N   <U) r$  r  r   rU  r=   r|   r	  r   r'  )r-   rV  rW  r   
loguniformr0   r  r	   )rQ   r  r   r  rZ  r  ra   s          r3   test_against_RzTestFDRControl.test_against_R
  s     Vi##$788!!$"3!GG11+Bv>>>St,,,,,,r5   c                 "   t           j                            d          }t          j                            ddd|          }t          j        |d           }t          j        |                                          }t          ||           d S Nr  r$  r  )r|   r   r   rU  r  )	r-   rV  rW  r   r  r0   r  r  r
   )rQ   rZ  r  ra   r   s        r3   test_axis_NonezTestFDRControl.test_axis_None
  sz    i##$788!!$)#!NN+BT:::+BHHJJ77S#r5   r  )r   r   r   c                    t           j                            d          }t          j                            ddd|          }t          j        ||          }t          j        t          j        ||          }t          ||           d S r  )	r-   rV  rW  r   r  r0   r  apply_along_axisr
   )rQ   r  rZ  r  ra   r   s         r3   	test_axiszTestFDRControl.test_axis
  sy    i##$788!!$)#!NN+BT:::!%"?rJJS#r5   c                     t          t          j        dg          dg           t          t          j        d          d           t          t          j        g           g            d S )Nr  )r   r   r  rZ   s    r3   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Ar5   N)rd   re   rf   r  r  r@  ra  rb  r  r  r  r  rg   r5   r3   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r5   r  )Ur   r  numpyr-   numpy.randomr   numpy.testingr   r   r   r   r   r	   r
   r   r@  r   rX   r  scipyr   r   scipy.stats._morestatsr   r   r   common_testsr   
_hypotestsr   r   scipy.stats._binomtestr   scipy.stats._distr_paramsr   dict
matplotlibrcParamsmatplotlib.pyplotpyplotr  r  	ExceptionrP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  r4   r7   ri   r   r   rd  r  rN  rg  r  r  r  r2  r4  r^  r  r  r  r  r'  r:  rb  rQ  r  r  r  r  r  r  rS  rz  r  rg   r5   r3   <module>r     s  
  



     $ $ $ $ $ $. . . . . . . . . . . . . . . . . . . .  * * * * * * 				             N N N N N N N N N N - - - - - - B B B B B B B B ? ? ? ? ? ? . . . . . .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x@ x@ x@ x@ x@ x@ x@ x@vM> M> M> M> M> M> M> M>`E9 E9 E9 E9 E9 E9 E9 E9P@6 @6 @6 @6 @6 @6 @6 @6F9 9 9 9 9 9 9 9:B7 B7 B7 B7 B7 B7 B7 B7J:Y :Y :Y :Y :Y :Y :Y :YzS= S= S= S= S= S= S= S=lDC DC DC DC DC DC DC DCN2 2 20j7 j7 j7 j7 j7 j7 j7 j7Z[2 [2 [2 [2 [2 [2 [2 [2|QJ QJ QJ QJ QJ QJ QJ QJh> > > > > > > >>= = = = = = = ="39 39 39 39 39 39 39 39l"= "= "= "= "= "= "= "=J#1 #1 #1 #1 #1 #1 #1 #1P0 0 0frH rH rH rH rH rH rH rHjE6 E6 E6 E6 E6 E6 E6 E6P ;  ;  ;  ;  ;  ;  ;  ;F7 7 7 7 7 7 7 7(|5 |5 |5 |5 |5 |5 |5 |5~4 4 4 4 4 4 4 4"aL aL aL aL aL aL aL aLH~N ~N ~N ~N ~N ~N ~N ~NBa3 a3 a3 a3 a3 a3 a3 a3H?B ?B ?B ?B ?B ?B ?B ?B ?B ?Bs   1B BB