
    e!h(                       d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dl	m
Z
mZmZmZmZmZmZmZ d dlZd dlmZ d dlZd dlmZmZmZ d dlmZmZmZ dd	lmZ d
dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0 d dl1m2Z2m3Z3m4Z4 ejj                  jl                  Z6 e7e&      Z&	 d dl8Z8de8jr                  d<   d dl:m;Z< dZ=g dZ?g dZ@g dZAg dZBg dZCg dZDg dZEg dZFg dZGg dZHd  ZI G d! d"      ZJ G d# d$      ZK G d% d&      ZL G d' d(      ZM G d) d*      ZN G d+ d,      ZOe- G d- d.             ZP G d/ d0      ZQ G d1 d2      ZR G d3 d4      ZSd5 ZT G d6 d7      ZU G d8 d9      ZV G d: d;      ZWg d<ZXe- G d= d>             ZYe- G d? d@             ZZ G dA dB      Z[ G dC dD      Z\ e6dEdFG      ejj                  j                  dH      e- G dI dJ                           Z^g dKZ_ G dL dM      Z` G dN dO      Za G dP dQ      Zb G dR dS      Zc G dT dU      Zd G dV dW      Zee- G dX dY             Zf G dZ d[      Zg G d\ d]      Zhe- G d^ d_             Zi G d` da      Zje- G db dc             Zky# e>$ r dZ=Y w xY w)d    N)partial)RandomState)assert_array_equalassert_almost_equalassert_array_lessassert_array_almost_equalassert_assert_allcloseassert_equalsuppress_warnings)raises)optimizestatsspecial)
_abw_state_get_As_weibull_Avals_weibull   )check_named_results   )_get_wilcoxon_distr_get_wilcoxon_distr2)_binary_search_for_binom_tst)distcont)SmallSampleWarningtoo_small_nd_omittoo_small_1d_omittoo_small_1d_not_omit)array_api_compatible)array_namespaceis_numpy)xp_assert_closexp_assert_equalxp_assert_lessAggbackendTF)
jt?Zd;?V-?      ?gX9v?-?x&1?+?+?r*   )
r)   r'   r*   r,   灕Cl?r)   r(   r*   r'   V-?)
ʡE?g/$?r/   r-   ףp=
?r.   r*   r-   r(   r(   )
gGz?r,   r.   r*   r2   r.   r)   r(   r,   r(   )
r)   r)   gCl?Gz?r,   rh|?r(   r+   g\(\?r(   )
羟/$?gh|?5?r5   r/   r0   r,   r2   r)   g1Zd?r(   )
r3   Mb?r(   gjt?r)   r*   g}?5^I?g)\(?r(   r,   )
r)   r*   r'   r*   r,   r(   r)   r(   r,   r'   )
r,   r)   r(   r2   r(   r6   r6   r)   r-   r1   )
r1   r2   r4   r.   r/   r/   r1   r)   r6   r/   c                  f    t        j                  t        j                  j                  | i |      S N)nplogr   gammarvs)argskwargss     h/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/stats/tests/test_morestats.py_old_loggamma_rvsr@   D   s#    66%++//426233    c                       e Zd Zd Zd Zd Zy)TestBayes_mvsc                 V   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       y )N   	            rJ            "@gURH#j@gV[%@ư>rtol      $@gai	@gӇu8@&.>_紫@   decimalgYs?g1O@+=)r   	bayes_mvsr   	statisticr
   minmaxselfdatameanvarstds        r?   
test_basiczTestBayes_mvs.test_basicI   s     '.c3DNNC0%L!	# 	CMM40

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

$L"	$rA   c                 B    t        t        t        j                  g        y r8   )assert_raises
ValueErrorr   rZ   r^   s    r?   test_empty_inputzTestBayes_mvs.test_empty_input[   s    j%//26rA   c                     t        j                  d      }d}t        j                  |      }|D ]  }t	        ||        y )N   )r[   r\   )r9   aranger   rZ   r   )r^   x
attributesresis        r?   test_result_attributesz$TestBayes_mvs.test_result_attributes^   s;    IIbM,
ooa  	/A:.	/rA   N)__name__
__module____qualname__rc   rh   rp    rA   r?   rC   rC   H   s    $$7/rA   rC   c                   $    e Zd Zd Zd Zd Zd Zy)TestMvsdistc                    g d}t        j                  |      \  }}}t        |j                         d       t	        |j                  d      dd       t        |j                         d       t	        |j                  d      dd	       t        |j                         d
d       t	        |j                  d      dd       y )NrE   rL   ?rM   rY   rO   rQ   rR   rS   rT   rU   rV   rX   )r   mvsdistr   r`   r
   intervalr]   s        r?   rc   zTestMvsdist.test_basich   s    &t,c3DIIK-c* -AGL	N 	CHHJ-S) ,?EJ	L 	CHHJ(:BGS) ,@FK	MrA   c                 B    t        t        t        j                  g        y r8   re   rf   r   ry   rg   s    r?   rh   zTestMvsdist.test_empty_inputw   s    j%--4rA   c                 H    dg}t        t        t        j                  |       y Nr   r|   r^   r_   s     r?   test_bad_argzTestMvsdist.test_bad_argz   s    sj%--6rA   c                 j   t        j                         5  t        j                  dt               t	        j
                  g d      D cg c]  }|j                          c} t	        j
                  g d      D cg c]  }|j                          c} d d d        y c c}w c c}w # 1 sw Y   y xY w)Nerrorr   r      r   r   r         )warningscatch_warningssimplefilterRuntimeWarningr   ry   r`   r^   rl   s     r?   
test_warnszTestMvsdist.test_warns   sz     $$& 	?!!'>:$}}Y78!QVVX8$}}_=>!QVVX>	? 	?8>	? 	?s)   4B)	B B)<B$B)
B))B2N)rq   rr   rs   rc   rh   r   r   rt   rA   r?   rv   rv   g   s    M57
?rA   rv   c                   z    e Zd Zd Zd Zej                  j                  dg dgddgf      d        Zd Z	d Z
d	 Zy
)TestShapiroc                 2   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
                  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
       y )N))\(?{Gz@q=
ףp@HzG$@@Q	@q=
ףp?Q@zG?      @Q?RQ?Q	@(\?zG?zG@(\#@333333@Gz?p=
ף@   ?rF   rV      Ɍ?)(\?=
ףp=?\(\@ffffff@\(\?(\?Gz@(\ףp=
@皙?)\(?RQr   p=
ף?@
ףp=
?{Gz?\(\@{Gz@Q@IddY?Dio?r   r   d   iNa locscalesizerandom_stateg   E?g   Oٴ?)gn?gjt?gffffff?gMb?gjt?g;On?gjt?gX9v?gS?g(\?gI+?gʡE?gx?g|?5^?r   gCl?g1Zd@gS@g(\	@gGz@g rh@g"~j@gQ@gtV@gʡE @ghyܝ?g0M?r   )r   shapiror   r[   pvaluenormr<   )
r^   x1wpwshapiro_testx2x3x4
W_expected
p_expecteds
             r?   rc   zTestShapiro.test_basic   s   8 b!2}}R(A2A>L224GQRSB 4a@L//1EqQ& b!2}}R(Ay!4L22IqIB3L//!D ZZ^^8^Lb!2}}R(A11=L224FPQRB 3Q?L//1DaP? 

b!2}}R(Az15L22JJB
A6L//QGrA   c                    g dg dg}t        j                  |      \  }}t        j                  |      }t        |dd       t        |j                  dd       t        |dd       t        |j                  dd       g dg dg}t        j                  |      \  }}t        j                  |      }t        |d	d       t        |j                  d	d       t        |d
d       t        |j                  d
d       y )N)
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   rF   rV   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r[   r   )r^   r   r   r   r   r   s         r?   test_2dzTestShapiro.test_2d   s     "89 b!2}}R(A2A>L224GQRSB 4a@L//1EqQ&' b!2}}R(Ay!4L22IqIB3L//!DrA   rl   r   r   c                 &   t        j                  t        t              5  t	        j
                  |      }t        |j                  t        j                         t        |j                  t        j                         d d d        y # 1 sw Y   y xY wNmatch)pytestwarnsr   r   r   r   r   r[   r9   nanr   r^   rl   rn   s      r?   test_not_enough_valuesz"TestShapiro.test_not_enough_values   sY    \\,4IJ 	---"C/RVV,	- 	- 	-s   ABBc                    t        j                  d      }t         j                  |d<   t        j                  |      \  }}t        j                  |      }t        |t         j                         t        |j                  t         j                         t        |t         j                         t        |j                  t         j                         y )NrQ   rG   )	r9   rk   r   r   r   r   r[   r   r   )r^   rl   r   r   r   s        r?   test_nan_inputzTestShapiro.test_nan_input   s    IIcNvv!a 2}}Q'Q\++RVV4 	B'L//8rA   c                     t        j                  g d      \  }}t        j                  |      }d}t        ||d       y )N)i i = i@ )gPq~?gF?h㈵>rO   )r   boxcoxr   r
   )r^   	trans_valmaxlogrn   refs        r?   test_gh14462zTestShapiro.test_gh14462   s9     "LL)AB	6mmI& 2St,rA   c                     t        j                  g d      }|j                  dk\  sJ g d}t        j                  |      }t        |j                  d       t        |j                  dd       y )N)g9B.?        r   r   )g1gIۿg0!?gr??gel?rN   rO   )r   r   r   r
   r[   )r^   rn   rl   s      r?   test_length_3_gh18322z!TestShapiro.test_length_3_gh18322   sX     mm:;zzQ KmmA'78

O$?rA   N)rq   rr   rs   rc   r   r   markparametrizer   r   r   r   rt   rA   r?   r   r      sQ    )HVE* [[S2sQF"34- 5-9-"@rA   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                  j                  dg d      d        Zd Zy)TestAndersonc                    t        d      }|j                  d      }|j                  d      }t        j                  |      \  }}}t        |d d |       t        j                  |      \  }}}t        ||dd         t        j                  d      }d|d<   t        j                  |      \  }}}t        |d       y )	NI2   r   
   r   g	@)	r   standard_exponentialstandard_normalr   andersonr   r9   onesr
   )r^   rsr   r   Acritsigvs           r?   test_normalzTestAnderson.test_normal  s    $$$"$-R(~~b)4$s)Q'~~b)4!T"#Y'GGBK!~~a(4 	8$rA   c                 `   t        d      }|j                  d      }|j                  d      }t        j                  |d      \  }}}t        ||dd         t        j                  d      5  t        j                  |d      \  }}}d d d        t        ||d   kD         y # 1 sw Y   xY w)	Nr   r   r   exponr   ignoreallr   )	r   r   r   r   r   r   r9   errstater	   )r^   r   r   r   r   r   r   s          r?   
test_exponzTestAnderson.test_expon  s    $$$"$-R(~~b'24!T"#Y'[[X& 	7 >>"g6LAtS	7DH	7 	7s   /B$$B-c           	         t        j                  d      }d|d<   t        j                  |d      \  }}}t	        |      }t        j
                  j                  |      \  }}t        j
                  j                  |||      }t        j
                  j                  |||      }	t        j                  d|dz         }
| t        j                  d|
z  dz
  ||	d d d   z   z        z
  }t        ||       y )Nr   r   r   gumbelr   r   r   )r9   r   r   r   lengumbel_lfitlogcdflogsfrk   r`   r
   )r^   r   a2r   r   nxbarsr  r  ro   expected_a2s               r?   test_gumbelzTestAnderson.test_gumbel"  s     GGCL!q(3D#F..$$Q'a&&q$2$$Qa0IIa1b277AaC!Gtt0D#EFFK(rA   c                 H    t        t        t        j                  dgd       y Nr   plate_of_shrimpdist)re   rf   r   r   rg   s    r?   r   zTestAnderson.test_bad_arg2  s    j%..1#<MNrA   c                     t        d      }|j                  d      }t        j                  |      }d}t	        ||       y )Nr   r   r   r[   critical_valuessignificance_level)r   r   r   r   r   )r^   r   rl   rn   rm   s        r?   rp   z#TestAnderson.test_result_attributes5  s<    $###,nnQK
C,rA   c                     t        d      }|j                  d      }t        j                  |d      \  }}}t        j                  |d      \  }}}t	        ||       y )Nr   r   r   r  r  )r   r  r   r   r
   )	r^   r   rl   A1crit1sig1A2crit2sig2s	            r?   test_gumbel_lzTestAnderson.test_gumbel_l<  sT     $II3I..H5E4..J7E4BrA   c                    t        d      }|j                  d      }t        j                  d      }d|d<   t	        j
                  |d      \  }}}t	        j
                  |d      \  }}}	t        ||dd         t        ||d   kD         y )	Nr   r   r   r(   r   gumbel_rr   r   )r   r  r9   r   r   r   r   r	   )
r^   r   r   r   r  r  r  r  r  r  s
             r?   test_gumbel_rzTestAnderson.test_gumbel_rF  s     $YYCY WWS\ 1..Z8E4..Z8E4"eBCj)U2YrA   c                    t        j                  g d      }t        j                  |d      }|j                  j
                  \  }}}t        |||fdd       t        |j                  dd       |j                  |j                  d   k  sJ d	|z  }t        |d
d       t        d   }t        d   }||dz
  dz  ||z
  z  z   }	t        j                  |j                  |	kD        sJ t        |j                  |	d       y )N)
            r&        r'  u   r(  weibull_min)g
ףp=
@gzGX@gQS@Mb`?rO   gp=
ף?MbP?r   r   g?r   皙?g?atol)r9   arrayr   r   
fit_resultparamsr
   r[   r  r   r   )
r^   rl   rn   mr   r   cAs40As45As_refs
             r?   test_weibull_min_case_Az$TestAnderson.test_weibull_min_case_AU  s    HHGHnnQ.--3C)=DIu48}}s2215555E6-b!b!S:.$+>>vvc))F2333++V$?rA   c                     t        j                  g d      }d}t        j                  t        |      5  t        j                  |d       d d d        y # 1 sw Y   y xY w)N)J   9   0        rH   F      r>    ;            iF  z/Maximum likelihood estimation has converged to r   r*  )r9   r1  r   r   rf   r   r   )r^   rl   messages      r?   test_weibull_min_case_Bz$TestAnderson.test_weibull_min_case_Bh  sK    HH 5 6C]]:W5 	-NN1m,	- 	- 	-s   AAc                 0   t        j                  g d       }d}d}t        j                  t        |      }t        j
                  t        |      }|5  |5  t        j                  |d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N)	r#  K   r<     k   rH   =   +   r>  z:Critical values of the test statistic are given for the...z;An error occurred while fitting the Weibull distribution...r   r*  )	r9   r1  r   r   UserWarningr   rf   r   r   )r^   rl   wmessageemessagewcontextecontexts         r?   test_weibull_warning_errorz'TestAnderson.test_weibull_warning_errorp  s}     XX=>>OP<<8<==8< 	-x 	-NN1m,	- 	- 	- 	- 	- 	-s$   BB /B B		BBdistname)r   r   r  extreme1r  r   logisticr*  c                    t         j                  j                  d      }|dv rdn|}t        t        |      }t
        |   } |j                  |d|d}t	        j                  ||      }|j                  j                  sJ y )Nl   'Dah$>   r  rV  r    r   r   )
r9   randomdefault_rnggetattrr   r   r<   r   r2  success)r^   rU  rngreal_distnamer  r3  rl   rn   s           r?   test_anderson_fit_paramsz%TestAnderson.test_anderson_fit_params{  sy    
 ii##$67'/3I'I& 	um,-(DHHf4c:nnQ)~~%%%%rA   c                     d}t        t        d|z        t        d          t        j                  }t        t        d|z        t        d          y )Nr   r   r   )r   r   r   r9   inf)r^   r4  s     r?   test_anderson_weibull_Asz%TestAnderson.test_anderson_weibull_As  s@    _QqS)>"+=>FF_QqS)>!+<=rA   N)rq   rr   rs   r   r   r  r   rp   r  r!  r9  rH  rT  r   r   r   ra  rd  rt   rA   r?   r   r      sh    %.) O-  @&-	- [[ZOP	&P	&>rA   r   c                   t    e Zd Zd Zd Zej                  j                  d        Zd Z	d Z
d Zd Zd Zd	 Zy
)TestAndersonKSampc                 .   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       y )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@rl        F@g     F@rk  ffffffA@ro  g33333A@gB@gfffffB@gD@gffffffE@Fmidrankg@r   gCl?gvq-?g,Ԛ?gl@gPk	@r   r   r   gJ4a?Mb0?r/  r9   r1  r   anderson_ksampr   r   r
   r^   t1t2t3t4Tktmps           r?   test_example1az TestAndersonKSamp.test_example1a  s    
 >XXFGXXFGXXFG(("b"b)95I	BBq)!"J"$Qq'1	.60rA   c                 T   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       y )Nrh  ri  rj  rn  Trp  gQ@r   rr  r   r   r   r+  rs  r/  rt  rv  s           r?   test_example1bz TestAndersonKSamp.test_example1b  s    
 XXFGXXFGXXFGXXFG(("b"b)94H	BBq)!"J"$Qq'1	.60rA   c                 H   g d}g d}g d}g d}g d}g d}g d}g d}g d	}	g d
}
g d}g d}g d}g d}|||||||||	|
||||f}t        j                  |d      \  }}}t        |dd       t        g d|dd d       t	        |dd       t
        j                  j                  d      }t        j                  d|      }t        j                  |d|      }t        |j                  |       t        |j                  |       t	        |j                  |d       y )N   rj   )   r>  !      i  rU   :   %   r   A   rG      i     $      v   
"         r  C   r<  >   rI      r  Z   r   <      rM  1   rU      8      O   T   ,   rC  r>  r        i6  L   rF  r     r        r@  e   r  r;  r<  r=  r>  r?  rH   r@  rA  r>  rB  rC  rD  7   i@  r  h         /            r  r  i  W   rI   x   rU   r  r  r#  G   r  rA  *   r  r   rH   r     r   rU   r  r  rU   r     r  r   r  4   _   a   3   r  r      r     D   M   P   r   r  j      R   6   r     .   o   '   ?   r     r     r  r   r  f   H   r  r  r   rj         r  X   r  r   r   r  r        r     r  rK   rU   	g  rG   rH   i  i[  r   r  r   i  r      r   i  #   rH   i  r  r   rI   b   r   U   [   rN     r   r  r     rU   r<  r      r  rC        rD  rU   r  B   rM  r  Frp  gM
@r   g^I+?g~:?g+e?gH.!@gcZB>h@r   r   r   	^)p?rs  r/  l   <Ic i'  n_resamplesr_  )rq  methodga2U0*C?)r   ru  r   r   r
   r9   r[  r\  PermutationMethodr   r[   r  r   )r^   rw  rx  ry  rz  t5t6t7t8t9t10t11t12t13t14samplesr{  r|  r}  r_  r  rn   s                         r?   test_example2az TestAndersonKSamp.test_example2a  s)   
 (G45%?@IB14'? r2r2r2r2sCc3O((%@	BBq)!"J"$Qq'1	.60ii##$78((TsC""7E&I3=="-3..3

AD1rA   c                     g d}g d}g d}g d}g d}g d}g d}g d}g d	}	g d
}
g d}g d}g d}g d}t        j                  |||||||||	|
||||fd      \  }}}t        |dd       t        g d|dd d       t	        |dd       y )Nr  r  r  r  r  r  r  r  r  r  r  r  r  r  Trp  g'1Z
@r   r  r   r   r   r  rs  r/  )r   ru  r   r   r
   )r^   rw  rx  ry  rz  r  r  r  r  r  r  r  r  r  r  r{  r|  r}  s                     r?   test_example2bz TestAndersonKSamp.test_example2b  s     (G45%?@IB14'? (("b"b"b"b*,c3S#*G157	B 	Bq)!"J"$Qq'1	.60rA   c                    t        j                  ddd      }t               5 }|j                  t        d       t        j                  ||dz   gd      \  }}}d d d        t        dd	       t        d
       t               5 }|j                  t        d       t        j                  ||dz   g      \  }}}d d d        t        |dd	       t        |d
       t               5 }|j                  t        d       t        j                  ||dz   gd      \  }}}d d d        t        |dd       t        |d       t               5 }|j                  t        d       t        j                  ||dz   g      \  }}}d d d        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       y # 1 sw Y   7xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   9xY w)#Nr   r   zp-value floored)rG  g     @D@Frp  g=
ףpD@r   r,  gGzD@zp-value capped      ?g?ܵr         ?g?ܵ      @g!u?gףp=
׳?{Gzt?r   r0  rP   rF   gBiq?g鷯?      '@g:M@g46<Rv?gMb@?g      +@g6>W[1@g1ZGUS?-C6?)
r9   linspacer   filterrO  r   ru  r   r   r
   )r^   r   supr  _r}  s         r?   test_R_kSamplesz!TestAndersonKSamp.test_R_kSamples  s   B [[C%   	KCJJ{,=J>**BT	?EJGAq!	K 	Avq)Q  	<CJJ{,=J>**BT	?;GAq!	< 	Avq)Q   	ICJJ{,<J=**BR=%HGAq!	I 	Aw*Q  	:CJJ{,<J=**BR=9GAq!	: 	Aw*Q &&BH~uE1aAvq)6A6 &&BF|41aAvq)6A6 &&BIF1aAvq)7a8&&BIF1aAvq)7a8U	K 	K	< 	<	I 	I	: 	:s/   8J6J&8J)	6J6JJ&)J36K c                 h    t        t        t        j                  t	        j
                  d             y Nr   re   rf   r   ru  r9   r   rg   s    r?   test_not_enough_samplesz)TestAndersonKSamp.test_not_enough_samplesI  s    j%"6"6
CrA   c                     t        t        t        j                  t	        j
                  d      t	        j
                  d      f       y r  r  rg   s    r?   test_no_distinct_observationsz/TestAndersonKSamp.test_no_distinct_observationsL  s,    j%"6"6wwqz2771:.	0rA   c                 l    t        t        t        j                  t	        j
                  d      g f       y r  r  rg   s    r?   test_empty_samplez#TestAndersonKSamp.test_empty_sampleP  s!    j%"6"6R8HIrA   c                     g d}t        j                  g d      }t        j                  ||fd      }d}t	        ||       t        |j                  |j                         y )Nrh  ri  Frp  r  )r9   r1  r   ru  r   r   r  r   )r^   rw  rx  rn   rm   s        r?   rp   z(TestAndersonKSamp.test_result_attributesS  sO    =XXFG""B8U;K
C,S++SZZ8rA   N)rq   rr   rs   r~  r  r   r   xslowr  r  r	  r  r  r  rp   rt   rA   r?   rf  rf    sN    1"1  [[$2 $2L1@N9`D0J	9rA   rf  c                   :   e Zd Zd Zd Zd Zej                  j                  dg dgfdgg fg      d        Z	d Z
d Zd	 Zej                  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y)
TestAnsaric                     g d}g d}t               5 }|j                  t        d       t        j                  ||      \  }}d d d        t        dd       t        dd       y # 1 sw Y   $xY w)Nr   r   r   r   r   r   r   rF   r   rF   r   r   r   %Ties preclude use of exact statistic.g     7@r  g8#oG?)r   r  rO  r   ansarir   )r^   rl   yr  Wpvals         r?   
test_smallzTestAnsari.test_smalla  sg    $  	)CJJ{$KLll1a(GAt	) 	AtR(D"5r:		) 	)s   0A&&A/c                 (   t        j                  d      }t        j                  d      }t               5 }|j                  t        d       t        j                  ||      \  }}d d d        t        dd       t        dd       y # 1 sw Y   $xY w)Nr  rL  r   c   r  r  m   l   r  r!  r  `   r  r  rL  q   t   r%  n   r  rL  r#  r  r  i   g   r'  r)  r  r   r$  r#  r*  r  r   r+  r%  r#  r  r!  r  g     0g@r  g|:?)r9   r1  r   r  rO  r   r  r   )r^   ramsayparekhr  r  r  s         r?   test_approxzTestAnsari.test_approxj  s     J K $ %   	3CJJ{$KLll662GAt	3 	Aub)D"5r:	3 	3s   0BBc                 r    t        j                  g dg d      \  }}t        |dd       t        |dd       y )Nr   r   r   r   )rj   r   r  rJ   r   rH   rQ   r  g?rI   )r   r  r   )r^   r  r  s      r?   
test_exactzTestAnsari.test_exactx  s0    ,,|-CD4AtR(D"6:rA   r=   r   c                     t        j                  t        t              5  t	        j
                  | }t        |j                  t        j                         t        |j                  t        j                         d d d        y # 1 sw Y   y xY wr   )r   r   r   r   r   r  r   r[   r9   r   r   )r^   r=   rn   s      r?   r   zTestAnsari.test_bad_arg}  sY    \\,4IJ 	-,,%C/RVV,	- 	- 	-s   ABBc                     g d}g d}t               5 }|j                  t        d       t        j                  ||      }d d d        d}t        |       y # 1 sw Y   xY w)Nr  r  r  r[   r   )r   r  rO  r   r  r   )r^   rl   r  r  rn   rm   s         r?   rp   z!TestAnsari.test_result_attributes  sY    $  	%CJJ{$KL,,q!$C	% -
C,		% 	%s   -AA c                     g d}g d}d}t        t        |      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr0  r   rF   rI   rJ   z!'alternative' must be 'two-sided'r   fooalternative)re   rf   r   r  )r^   r   r   r   s       r?   test_bad_alternativezTestAnsari.test_bad_alternative  s@    3:U3 	4LLRU3	4 	4 	4	   >Ac                 l   g d}g d}t        j                  ||      \  }}t        j                  ||d      j                  }t        j                  ||d      j                  }|dkD  sJ |dk  sJ t        j                  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kD  sJ y )N)r   r   r   rj   r  r  )r   g      !@      #@g      %@r  g      )@lessr8  greaterffffff?皙?r   -q=r/  r   )r   r  r   r   apmfr  r
   )
r^   r   r   r[   r  pval_lpval_gprobpval_l_reversepval_g_reverses
             r?   test_alternative_exactz!TestAnsari.test_alternative_exact  s   '.  ,,r2.	4b"&9@@b")<CC}}}} ||	3r7CG<T> 	QU3$tAvE: b"&AHHb")DKK$$$$$$rA   zx, y, alternative, expectedr0  r6  r?  g@A?r@  r   )r   r   rF   rI   rJ   gG$I?g%I$I?r   )rF   rI   rJ   c                 d    t        j                  |||      j                  }t        ||d       y )Nr8  rC  r/  )r   r  r   r
   )r^   rl   r  r9  expectedr  s         r?   test_alternative_exact_with_Rz(TestAnsari.test_alternative_exact_with_R  s(    8 ||Aqk:AAhU3rA   c                    t         j                  j                  dddd      }t         j                  j                  dddd      }t        j                  ||d      j                  }t        j                  ||d	      j                  }t        |d
d       t        |dd       t         j                  j                  dddd      }t         j                  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       y )Nr   r   r   {   rZ  r   r?  r8  r@  r*   rC  r/  r   r        ?r   )r   r   r<   r  r   r
   )r^   r   r   rF  rG  r  s         r?   test_alternative_approxz"TestAnsari.test_alternative_approx  s    ZZ^^Aqs^=ZZ^^Aqs^= b"&9@@b")<CC%0%0 ZZ^^Aqr^<ZZ^^As#^>||B#**b"&9@@b")<CCQU3$q&u5rA   N)rq   rr   rs   r  r.  r1  r   r   r   r   rp   r:  rK  rN  rR  rt   rA   r?   r  r  _  s    ;;;
 [[VrA3i1#r%;<- =--4%6 [[% fo	>
i	A
_fo	>
_i	A
9fo	>
9i	A	C44&6rA   r  c                       e Zd Zd Zd Zd Zej                  j                  ddd      ej                  j                  d      d	               Z
d
 Zy)TestBartlettc           
      H   t         t        t        t        t        t
        t        t        t        t        g
}|D cg c]  }|j                  |       }}t        j                  | \  }}t        ||j                  d             t        ||j                  d             y c c}w )NgzU@ /4@gG?)g1g2g3g4g5g6g7g8g9g10asarrayr   bartlettr"   )r^   xpr=   argTr  s         r?   	test_datazTestBartlett.test_data  su    BBBBC8+/0C

300..$'42::&789bjj9: 1s   Bc                     d}t        j                  t        |      5  t        j                  |j                  dg             d d d        y # 1 sw Y   y xY w)Nz-Must enter at least two input sample vectors.r   r*   )r   r   rf   r   ra  r`  )r^   rb  rG  s      r?   test_too_few_argszTestBartlett.test_too_few_args  sA    A]]:W5 	-NN2::rd+,	- 	- 	-s   &AAc           
          t         t        t        t        t        t
        t        t        t        t        g
}|D cg c]  }|j                  |       }}t        j                  | }d}t        |||       y c c}w )Nr4  )rb  )rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  r   ra  r   )r^   rb  r=   rc  rn   rm   s         r?   rp   z#TestBartlett.test_result_attributes  s[    BBBBC8+/0C

300nnd#,
C3 1s   A6	jax.numpyTz8`var` incorrect when `correction > n` (google/jax#21330))cpu_onlyreasonskip_xp_backendsc                    t         t        t        t        t        t
        t        t        t        t        g f}|D cg c]  }|j                  |       }}t        |      r;t        j                  t        t              5  t!        j"                  | }d d d        n{t$        j&                  j)                         5 }|j+                  t,        d       |j+                  t.        d       |j+                  t,        d       t!        j"                  | }d d d        |j                  |j0                        }t3        j4                  |       t3        |j6                  |       y c c}w # 1 sw Y   VxY w# 1 sw Y   bxY w)Nr   invalid value encounteredz$var\(\): degrees of freedom is <= 0.z!Degrees of freedom <= 0 for slice)rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  r!   r   r   r   r   r   ra  r9   testingr   r  r   rO  r   r#   r[   r   )r^   rb  r=   rc  rn   r  NaNs          r?   test_empty_argzTestBartlett.test_empty_arg  s   
 BBBBC<+/0C

300B<08MN ,nnd+, , --/ ,3

>+FG

;(OP

>+NOnnd+, jj s+

C( 1, ,, ,s   E>E"8AE."E+.E7c                 ,   |j                  g d|j                        }|j                  g d|j                        }|j                  g d|j                        }t        j                  |||      }|j	                  |j
                  dk\        sJ y )N)g333333$@gffffff$@g$@g$@dtype)L$@     $@33333$@gfffff$@)g$@ru  rv  rw  r   )r`  float32r   ra  r   r[   )r^   rb  rD  br5  rn   s         r?   test_negative_pvalue_gh21152z)TestBartlett.test_negative_pvalue_gh21152  st    JJ/rzzJBJJ32::JFJJ32::JFnnQ1%vvcmmq()))rA   N)rq   rr   rs   re  rg  rp   r   r   rl  usefixturesrq  rz  rt   rA   r?   rT  rT    sb    ;-
4 [[!!dI " K [[/0) 1K)"*rA   rT  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)
TestLevenec           
          t         t        t        t        t        t
        t        t        t        t        g
}t        j                  | \  }}t        |dd       t        |dd       y )NgYpK?rI   gI{]?)rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r   levener   )r^   r=   r  r  s       r?   re  zTestLevene.test_data  sG    BBBBC8,,%4A115D/15rA   c                     t        j                  t        t        t        d      \  }}t        j                  t        t        t        dd      \  }}t        ||       t        ||       y )Nr`   centertrimmedr   r  proportiontocut)r   r  rV  rW  rX  r   )r^   W1pval1W2pval2s        r?   test_trimmed1zTestLevene.test_trimmed1!  sM     LLRF;	ELLRI146	EB#E5)rA   c                    g d}g d}t         j                  j                  d       t         j                  j                  |      }t	        j
                  ||dd      \  }}t	        j
                  ||dd      \  }}t	        j
                  |dd |dd d	
      \  }}	t        ||       t        ||       t        ||	       y )Ng333333?       @      @      @      @      @      @g      Y@r   r        @r  g      @r  g      @      i@  r        ?r  r   r   r`   r  )r9   r[  seedpermutationr   r  r   )
r^   rl   r  r   W0pval0r  r  r  r  s
             r?   test_trimmed2zTestLevene.test_trimmed2*  s    66
		tYY""1% LLAi168	ELLQy168	E LL1R!Ab'&A	EB#B#E5)rA   c                 T   t        j                  ddd      }t         j                  j                  d       t         j                  j	                  |      }|dz  }t        j                  ||d      \  }}t        j                  ||d      \  }}t        ||       t        ||       y )	Nr   r   rA  r  r   r`   r  median)r9   r  r[  r  r  r   r  r   )r^   rl   r   r  r  r  r  r  s           r?   test_equal_mean_medianz!TestLevene.test_equal_mean_median<  s    KKAr"
		tYY""1%qDLLAf5	ELLQx8	EB#E5)rA   c                 v    t        j                  ddd      }t        t        t        j
                  ||d       y Nr   r   rA  皙?)portiontocut)r9   r  re   	TypeErrorr   r  r   s     r?   test_bad_keywordzTestLevene.test_bad_keywordF  s(    KKAr"iq!#FrA   c                 v    t        j                  ddd      }t        t        t        j
                  ||d       y Nr   r   rA  trimr  )r9   r  re   rf   r   r  r   s     r?   test_bad_center_valuez TestLevene.test_bad_center_valueJ  s(    KKAr"j%,,1VDrA   c                 D    t        t        t        j                  dg       y r~   )re   rf   r   r  rg   s    r?   rg  zTestLevene.test_too_few_argsN  s    j%,,4rA   c           
          t         t        t        t        t        t
        t        t        t        t        g
}t        j                  | }d}t        ||       y )Nr4  )rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r   r  r   )r^   r=   rn   rm   s       r?   rp   z!TestLevene.test_result_attributesQ  s9    BBBBC8llD!,
C,rA   c                     t        j                  ddgddgg      }t        t        t        j
                  t        |       y )Nr   r   r   r   )r9   r1  re   rf   r   r  rV  r   s     r?   test_1d_inputzTestLevene.test_1d_inputX  s/    HHq!fq!f%&j%,,A6rA   N)rq   rr   rs   re  r  r  r  r  r  rg  rp   r  rt   rA   r?   r}  r}    s1    6**$*GE5-7rA   r}  c                      e Zd ZdZd Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d	      d
        Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zej                  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                  j                  d,d-d.g      d/        Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zej                  j3                  ej6                  d7k  d89      d:        Zy;)<TestBinomTestzTests for stats.binomtest.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d       y )N绽|=iΙ i@o@Q?r*   rO   iΙ gX7?i	ϙ g=?iϙ gybw?rS   r   	binomtestr
   r   r^   rP   rn   s      r?   test_two_sided_pvalues1z%TestBinomTest.test_two_sided_pvalues1d  s     ooh$7

Cd3ooh$7

O$?ooh$7

O$?ooh$7

O$?rA   c                    d}t        j                  ddd      }t        |j                  d|       t        j                  ddd      }t        |j                  d	|       t        j                  d
dd      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       y )Nr  rG   rA  r  r	  r}  gX-h?rO   r   g㤶y?r  g	y}?rI   g+,?r   r   r  g      ?r   r.  g{Gz?g333333?g<,?r  r  s      r?   test_two_sided_pvalues2z%TestBinomTest.test_two_sided_pvalues2r  s    ooa2.

O$?ooaT*

$5DAoob"d+

O$?ooaT*

O$?ooaR(

G$7ooaB'

Dt4ooaB'

F6rA   c                 <   d}t        j                  ddd      }t        |j                  d|       t        j                  ddd	      }t        |j                  d|       t        j                  d
dd      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       t        j                  dd
d      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       y )Nr  i  i  r  r   rO   r   r  gAL &W?rK   r  g!YB?rj   r  gE]t?rI   rF   r  r  r  s      r?   test_edge_caseszTestBinomTest.test_edge_cases  s    ooc3,

AD1ooaT*

AD1oob"e,

AD1oob"e,

AD1ooaS)

AD1ooaS)

AD1rA   c           	         ddd}t        j                  t        j                  z        dz         }t        j                  j                  |      }t        j                  t        j                  j                  |      |k  d      }t        fd| t        j                  z              }|z
  t        |t        j                  j                  |      k(        z   }t        ||d	       d
}t        j                  t        j                  z        dz         }t        j                  j                  |      }t        j                  t        j                  j                  |      |k  d      }t        fd|dt        j                  z              }|dz   }t        ||d	       y )Nr   r  r   r   r   axisc                 H    t         j                  j                  |        S r8   r   binomrE  r   r	  r}  s    r?   <lambda>z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s    +0;;??2q!+D*D rA   rS   rO   rI   c                 F    t         j                  j                  |       S r8   r  r  s    r?   r  z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s    */++//"a*C rA   )r9   rk   ceilr   r  rE  sumr   intr
   floor)	r^   kro   dy1ixy2r	  r}  s	          @@r?   test_binary_srch_for_binom_tstz,TestBinomTest.test_binary_srch_for_binom_tst  sh    IIbgga!enac*KKOOAq!$VVEKKOOAq!,1:) +E+,"bgga!enaA Vc!u{{r1a8899BT*IIbhhq1uo)*KKOOAq!$VVEKKOOAq!,1:) +D*+QQA !VBT*rA   z"alternative, pval, ci_low, ci_high))r?  g$W?r   g?)r@  g}?gGI~?r*   )	two-sidedg}G?g>?6?g4M?c                    t        j                  ddd|      }t        |j                  |d       t	        |j
                  d       |j                  d	      }t        |j                  |j                  f||fd       y )
Nr  r   r  r	  r}  r9  rC  rO   皙?rA  confidence_level	r   r  r
   r   r   r[   proportion_cilowhighr^   r9  r  ci_lowci_highrn   cis          r?   test_confidence_intervals1z(TestBinomTest.test_confidence_intervals1  sg     oobC4[I

Du5S]]C(5)FG+<5IrA   ))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       |j                  d	      }t        |j                  |j                  f||fd       y )
Nr   r   r  r  rN   rO   gQ?r3   r  r  r  s          r?   test_confidence_intervals2z(TestBinomTest.test_confidence_intervals2  sg     ooa2+F

Dt4S]]D)5)FG+<4HrA   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       |j	                  d      }t        |j                  d	       t        |j                  |d       y )
Nr   r   r  r}  r9  rN   rO   rA  r  r   )r   r  r
   r   r  r   r  r  )r^   r9  r  r  rn   r  s         r?   !test_confidence_interval_exact_k0z/TestBinomTest.test_confidence_interval_exact_k0  sY     ooatE

Dt45RVVS!t4rA   zalternative, pval, ci_low))r?  r*   r   )r@  6>g@>}_?)r  r  gcڒ ?c                     t        j                  ddd|      }t        |j                  |d       |j	                  d      }t        |j                  d       t        |j                  |d       y )	Nr   r  r  rN   rO   rA  r  r*   )r   r  r
   r   r  r   r  r  )r^   r9  r  r  rn   r  s         r?   %test_confidence_interval_exact_k_is_nz3TestBinomTest.test_confidence_interval_exact_k_is_n  sY     oob"+F

Dt45RWWc"T2rA   z+k, alternative, corr, conf, ci_low, ci_high)r   r  TrA  g`?g?)r   r  Tr3   grt!?g/?)r   r  FrA  gVK5?g5dM?)r   r  Fr3   gXCVu^?g*r[?)r   r?  TrA  r   gP-V?)r   r?  Tr3   r   g^'?)r   r?  FrA  r   gS5a?)r   r?  Fr3   r   g?)r   r@  TrA  g!Շ`ⰸ?r*   )r   r@  Tr3   g$x"?r*   )r   r@  FrA  gW~=?r*   )r   r@  Fr3   g	L?r*   )r   r  TrA  r   gX?)r   r  FrA  r   gN?)r   r?  TrA  r   g/<7#9?)r   r?  FrA  r   gAA?)r   r@  TrA  r   r*   )r   r@  FrA  r   r*   )r   r  TrA  g7?r*   )r   r  FrA  g؍s?r*   )r   r?  TrA  r   r*   )r   r?  FrA  r   r*   )r   r@  TrA  ghadn?r*   )r   r@  FrA  gAB/?r*   c                     t        j                  |dd|      }|rd}nd}|j                  ||      }	t        |	j                  |	j
                  f||fd       y )	Nr   r  r  wilsonccwilson)r  r  rN   rO   )r   r  r  r
   r  r  )
r^   r  r9  corrconfr  r  rn   r  r  s
             r?   test_ci_wilson_methodz#TestBinomTest.test_ci_wilson_method  sX    > ooa2+FFFVD)FG+<4HrA   c                     t        j                  ddd      }t        |j                  d       t        |j                  d       y )Nr   r  r  r*   )r   r  r   r[   r   r^   rn   s     r?   &test_estimate_equals_hypothesized_propz4TestBinomTest.test_estimate_equals_hypothesized_prop  s2     ooaT*S]]D)SZZ%rA   zk, n)r   r   )r   r   c                     t        j                  t        d      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nz must be an integer not less thanr   r   r   rf   r   r  )r^   r  r	  s      r?   test_invalid_k_nzTestBinomTest.test_invalid_k_n  s7    ]]:!CE 	"OOAq!	" 	" 	"s	   <Ac                     t        j                  t        d      5  t        j                  ddd       d d d        y # 1 sw Y   y xY w)Nz+k \(11\) must not be greater than n \(10\).r   r  r   r  r  rg   s    r?   test_invalid_k_too_bigz$TestBinomTest.test_invalid_k_too_big  s9    ]]:!OQ 	*OOBD)	* 	* 	*s	   =Ac                     t        j                  t        d      5  t        j                  ddgdd       d d d        y # 1 sw Y   y xY w)Nzk must be an integer.r   r   r  rA  r  )r   r   r  r   r  rg   s    r?   test_invalid_k_wrong_typez'TestBinomTest.test_invalid_k_wrong_type$  s<    ]]9!8: 	0OORHb$/	0 	0 	0	   ?Ac                 ,   d}t        j                  t        |      5  t        j                  ddd       d d d        d}t        j                  t        |      5  t        j                  ddd       d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)	Nzp \(-0.5\) must be in range...r   r            ࿩r}  zp \(1.5\) must be in range...rQ  r  r^   rG  s     r?   test_invalid_p_rangez"TestBinomTest.test_invalid_p_range)  sw    3]]:W5 	-OOBt,	-2]]:W5 	,OOBs+	, 	,	- 	-	, 	,s   A>B
>B
Bc                     t        j                  ddd      }d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)	Nr   r   r  r  z/confidence_level \(-1\) must be in the intervalr   r   r  r   r  r   r   rf   r  )r^   rn   rG  s      r?   test_invalid_confidence_levelz+TestBinomTest.test_invalid_confidence_level1  sM    ooa2-D]]:W5 	3r2	3 	3 	3s   AAc                     t        j                  ddd      }t        j                  t        d      5  |j                  d       d d d        y # 1 sw Y   y xY w)	Nr   r   r  r  z$method \('plate of shrimp'\) must ber   zplate of shrimpr  r  r  s     r?   test_invalid_ci_methodz$TestBinomTest.test_invalid_ci_method7  sJ    ooa2-]]:-TU 	8%67	8 	8 	8s   AAc                     t        j                  t        d      5  t        j                  dddd       d d d        y # 1 sw Y   y xY w)Nzalternative \('ekki'\) not...r   r   r   r  ekkir  r  rg   s    r?   test_invalid_alternativez&TestBinomTest.test_invalid_alternative<  s<    ]]:-MN 	@OOAs?	@ 	@ 	@r  c                 t    t        j                  ddd      }t        |j                  |j                         y )Nr   r   r  r  )r   r  r   proportion_estimater[   r  s     r?   
test_aliaszTestBinomTest.test_alias@  s(    ooa2-S,,cmm<rA   l        z32-bit does not overflowrk  c                     t        j                  t        d      5  t        j                  ddt
        j                  j                         d d d        y # 1 sw Y   y xY w)NzError in function...r   r   rF   r  )r   r   OverflowErrorr   r  sys
float_infominrg   s    r?   test_boost_overflow_raisesz(TestBinomTest.test_boost_overflow_raisesD  sB     ]]=0FG 	8OOAqCNN$6$67	8 	8 	8s   1AAN)rq   rr   rs   __doc__r  r  r  r  r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  skipifr  maxsizer  rt   rA   r?   r  r  ]  s   $@7"2+@ [[AHIJIJ [[AFGIGI [[9DE5	E5 [[8FG3	G3 [[5	=	;	<	=	0	0	1	1	4	4	4	5	5	6	0	0	-	.	6	7	+	,	4	43	6:I;:I& [[Vfg%67" 8"
*
0
,38
@= [[u,5OP8 Q8rA   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestFlignerc                 v    t        j                  d      }t        t        j                  ||dz        dd       y )Nr   r   )gnf	@gDq?r  )r9   rk   r   r   fligner)r^   r   s     r?   re  zTestFligner.test_dataM  s.    YYq\!%--BE":"L"$	&rA   c                 8  	 t         j                  j                  d      		fd} |t              } |t              } |t
              }t        j                  |||d      \  }}t        j                  |||dd      \  }}t        ||       t        ||       y )NrP  c                     t        j                  |       dj                  t        |             z  z   j	                         S )Nr  )r9   r`  randnr  tolist)gr   s    r?   _perturbz+TestFligner.test_trimmed1.<locals>._perturbY  s1    JJqMEBHHSV,<$<<DDFFrA   r`   r  r  r   r  )	r9   r[  r   rV  rW  rX  r   r  r   )
r^   r  g1_g2_g3_Xsq1r  Xsq2r  r   s
            @r?   r  zTestFligner.test_trimmed1T  s     YY""3'	G rlrlrl mmCc&AemmCc)479eD$'E5)rA   c                     g d}g d}t        j                  ||dd      \  }}t        j                  |dd |dd d	      \  }}t        ||       t        ||       y )
Nr  r  r  r  r  r   r   r`   r  )r   r  r   )r^   rl   r  r   r  r!  r  s          r?   r  zTestFligner.test_trimmed2g  s_    66mmAq49;e mmAaGQqWVDeD$'E5)rA   c                 v    t        j                  ddd      }t        t        t        j
                  ||d       y r  )r9   r  re   r  r   r  r   s     r?   r  zTestFligner.test_bad_keyword  s(    KKAr"i13GrA   c                 v    t        j                  ddd      }t        t        t        j
                  ||d       y r  )r9   r  re   rf   r   r  r   s     r?   r  z!TestFligner.test_bad_center_value  s(    KKAr"j%--AfErA   c                 D    t        t        t        j                  dg       y r~   )re   rf   r   r  rg   s    r?   test_bad_num_argszTestFligner.test_bad_num_args  s    j%--!5rA   c                 Z   t        j                  d      }t        j                  t        t
              5  t        j                  ||dz  g       }t        |j                  t         j                         t        |j                  t         j                         d d d        y # 1 sw Y   y xY w)Nr   r   r   )r9   rk   r   r   r   r   r   r  r   r[   r   r   r   s      r?   rq  zTestFligner.test_empty_arg  sn    IIaL\\,4IJ 	---1a4,C/RVV,	- 	- 	-s   A#B!!B*N)
rq   rr   rs   re  r  r  r  r  r&  rq  rt   rA   r?   r  r  K  s'    &*&
*4HF6-rA   r  c               #     K   g d} g d}t        |      D ]  \  }}t        j                  j                  |      }|j                  d      }|j	                  ddd      }|j	                  ddd      }t        ||      D ]$  \  }}	t        |dz   ||	z         D ]
  }
||   ||
<    & |j                  |       t        j                  |d	      \  }}||d
g| |     y w)N))g]YCgQɣ?)gme5gϵ5?)g;jgH?)iFeiHcMi%:r   r   r!  r   )r  r  r   r   r   r?  )		enumerater9   r[  r\  integersziprangeshufflesplit)expected_resultsseedssir  r_  xytie_indnum_ties_per_indro   r	  jrl   r  s                r?   mood_cases_with_tiesr6    s     @ .Ee$ 2Dii##D)ZZ_,,12A,6<<AAA<>!12 	DAq1q5!a%( 11	 	BxxA1F1-b1112s   CC!c                      e Zd Zej                  j                  d e             d        Zej                  j                  dg d      d        Zd Z	d Z
d Zd	 Zd
 Zd Zej                  j                  dg d      d        Zy)TestMoodz$x,y,alternative,stat_expect,p_expectc                 r    t        j                  |||      \  }}t        ||d       t        ||d       y)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;
        r8  gؗҜ<r/  Nr   moodr
   )r^   rl   r  r9  stat_expectp_expectr[   r   s           r?   test_against_SASzTestMood.test_against_SAS  s3    < "JJq!E	6YU;&u5rA   zalternative, expected))r  )3oXQ?gpL?)r?  )r?  gԣl?)r@  )r?  gpL?c                 \    g d}g d}t        j                  |||      }t        ||       y )Nr   r(  r8  r:  )r^   r9  rM  rl   r  rn   s         r?   test_against_SAS_2zTestMood.test_against_SAS_2  s,    <=jjA;7X&rA   c                 H   t         j                  j                  d       t         j                  j                  dd      }t         j                  j                  dd      }t	        j
                  ||      \  }}t	        j
                  ||      \  }}t        ||g| |g       y )Nr  r   r   rj   )r9   r[  r  r  r   r;  r   )r^   r   r   z1p1z2p2s          r?   test_mood_order_of_argsz TestMood.test_mood_order_of_args  sx     			tYY__R#YY__R#B#BB#B!2r(bS"I6rA   c                     g d}g d}t        j                  |      }t        j                  |      }d|_        d|_        t        t	        j
                  ||d       ddg       y )N)gg۟?gy<7xg1)E?g9cç?g
FAg<=ӟ	2?g{![?g_l?gڻ{ӿgGSsA0?g1?g 3ggL?g_lg,*.gː53?gvNqG?gW=?)gd"g `Y#?g^g?gNgBagp5_%?g(?gv]lοgg?ggr6ʺ?ḡj?gK!ٿg{g&?g*h}gZ?gyBU?g .ۋ4?g|w;?g&ck @gRj2g}+w(o?g@F?g}_9t?g =g	S?gx(gg7Y?g{ih?)r   r   )rj   r   r  g4g^}E	?)r9   r1  shaper   r   r;  )r^   r   r   s      r?   test_mood_with_axis_nonez!TestMood.test_mood_with_axis_none  s[    4	H XXb\XXb\!%**R$"?#1="A	CrA   c                    d}t         j                  j                  d       t         j                  j                  d|      }t         j                  j                  d|      }t	        j
                  ||      \  }}t        |      D ]8  }t        ||   ||   gt	        j
                  |d d |f   |d d |f                : |j                         }|j                         }t	        j
                  ||d      \  }}t        |      D ]8  }t        ||   ||   gt	        j
                  ||d d f   ||d d f                : y )Nr   r  r   rj   r   r  )	r9   r[  r  r  r   r;  r,  r   	transpose)r^   nyr   r   	z_vectestpval_vectestr5  ro   s           r?   test_mood_2dzTestMood.test_mood_2d  s    
		tYY__R$YY__R$"'**R"4	<r 	FA%y|\!_&E&+jjAqD2ad8&DF	F
 \\^\\^"'**R!"<	<r 	FA%y|\!_&E&+jjAqD2ad8&DF	FrA   c           
      n   d}t         j                  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 ]v  }	|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                  |
|             x   y )N)r   r   rF   r  r   r  r   r   r   )r9   r[  r  r  r,  r   r;  r   )r^   rI  r   r   r  rN  rO  axes_idxro   r5  slice1slice2s               r?   test_mood_3dzTestMood.test_mood_3d  sd   
		tYY__e$YY__e$!H 	JD&+jjRd&C#I| AAA/H5$!234 JuXd^A%678 JAqy!#Aq!G!#Aq!G!#Aq!G!#Aq!G!#Aq!G!#Aq!G-yA/;AqD/A/C.3jj.HJJJ	JrA   c                 *   t        j                  t        t              5  t	        j
                  dgg       }t        |j                  t        j                         t        |j                  t        j                         d d d        y # 1 sw Y   y xY w)Nr   r   )r   r   r   r   r   r;  r   r[   r9   r   r   r  s     r?   test_mood_bad_argzTestMood.test_mood_bad_arg9  s]    \\,4IJ 	-**aS"%C/RVV,	- 	- 	-s   A B		Bc                 v   t         j                  j                  d       t        j                  j                  dd      }t        j                  j                  dd      }t        j                  ||d      \  }}t        j                  ||d      \  }}t        j                  ||d	      \  }}||cxk(  r|k(  sJ  J t        |dd
       t        ||dz         t        |d|dz  z
         t        j                  t        d      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr         ?r   )r   r   g      ?r  r8  r?  r@  Hz>r/  r   r   z`alternative` must be...r   z	ekki-ekki)r9   r[  r  r   r   r<   r;  r
   r   r   rf   )	r^   rl   r  stat1rD  stat2rF  stat3p3s	            r?   test_mood_alternativezTestMood.test_mood_alternative@  s    
		qJJNNCN0JJNNCN0JJq!=	rJJq!8	rJJq!;	r&&&&&&AD)BqD!A1H%]]:-GH 	6JJq!5	6 	6 	6s   D//D8r9  )r  r?  r@  c                     t         j                  j                  d      }|j                  d      }|j                  d      }t	        j
                  |||      }t        |j                  |j                  f|       y )Nl	   hTt fU6H~ )r   r   )rj   r   r8  )	r9   r[  r\  r   r   r;  r   r[   r   )r^   r9  r_  r   r   rn   s         r?   test_resultzTestMood.test_resultR  s`    ii##$KL  )  )jjR[9cmmSZZ0#6rA   N)rq   rr   rs   r   r   r   r6  r>  rA  rG  rJ  rP  rU  rW  r_  ra  rt   rA   r?   r8  r8    s    [[C135656@ [[4@A'A'7C8F.J8-6$ [[],LM7 N7rA   r8  c                   x    e Zd Zd Zd Zd Zej                  j                  e	 d      d        Z
d Zd Zd	 Zy
)TestProbplotc                 ,   t         j                  j                  dd      }t        j                  |d      \  }}g d}t	        |t        j                  |             t	        ||       t        j                  |d      \  }}g d}t	        ||       y )	Nr  90  rZ  Fr  )g+/gY3gtg5Z0gFjg!2gsR{ܿg7Կg>hǿgcz隇gcz隇?g>h?g7?gsR{?g!2?gFj?g5Z0?gt?gY3?g+/?T)gƝV?g?gà?)r   r   r<   probplotr
   r9   sort)r^   rl   osmosrosm_expectedrn   res_fitres_fit_expecteds           r?   rc   zTestProbplot.test_basic^  sw    JJNNN7>>!/SG
 	RWWQZ(\*~~aT2W?!12rA   c                 ~   t         j                  j                  dd      }t        j                  |d d      \  }}t        j                  |dd      \  }}t        j                  |dd      \  }}t	        ||       t	        ||       t	        ||       t	        ||       t        j                  |dd      \  }}	y )Nr   i@ rZ  Fsparamsr  r   rt   )r   r   r<   rg  r
   )
r^   rl   osm1osr1osm2osr2osm3osr3ri  rj  s
             r?   test_sparams_keywordz!TestProbplot.test_sparams_keywordm  s    JJNN&N9 ^^At?
d^^Aqe<
d^^Aru=
dd#d#d#d#>>!RU;SrA   c                 @   t         j                  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        ||       y )Nr  re  rZ  Ft)r   )r  r  rp  zwrong-dist-namer  c                       e Zd ZdZd Zy)3TestProbplot.test_dist_keyword.<locals>.custom_distz6Some class that looks just enough like a distribution.c                 D    t         j                  j                  |d      S )Nr   )r   )r   r   ppf)r^   qs     r?   r}  z7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppf  s    zz~~aQ~//rA   N)rq   rr   rs   r  r}  rt   rA   r?   custom_distr{    s
    H0rA   r  )r   ro  )r  r  )	r   r   r<   rg  ry  r
   re   rf   AttributeError)r^   rl   rq  rr  rs  rt  r  s          r?   test_dist_keywordzTestProbplot.test_dist_keyword{  s    JJNNN7^^A5sDI
d^^A5uwwM
dd#d#j%..!:KLnennabA	0 	0
 ^^At?
d^^AKMuE
dd#d#rA   no matplotlibr	  c                 V   t        j                         }|j                  d       t        j                  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(  xr' t        |      cxk(  xr t        |      cxk(  xr d	k(  nc        t        ||       t        ||       t        ||       t        ||       t        j                         }|j                  d      }	t        j                  |d|	       t        j                          y )
Nr  r   r   t rZ  plotF)r  r  r   )pltfigureadd_subplotr   ry  r<   rg  closer	   r  r
   )
r^   figrl   res1fitres1res2fitres2res3res4axs
             r?   test_plot_kwargzTestProbplot.test_plot_kwarg  s   jjlGGKK'K:qs3g		qt4g~~aU5		~~aU6 	D	SYE#d)Es4yEAEFd#d#d#) jjl__S!qe"-		rA   c                 H    t        t        t        j                  dgd       y r  )re   rf   r   rg  rg   s    r?   test_probplot_bad_argsz#TestProbplot.test_probplot_bad_args  s    j%..1#<MNrA   c                 j   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       y )NFrf  Tr   )r   r   rg  r9   r1  r   rg   s    r?   
test_emptyzTestProbplot.test_empty  ss    U^^BE2hhrlBHHRL1	3U^^BD1xx|RXXb\2vvrvvs+-	.rA   c                 4   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        y # 1 sw Y   y xY w)Nr   invalidr   Trf  r   )r9   r   r   r   rg  r1  r   rg   s    r?   test_array_of_size_onez#TestProbplot.test_array_of_size_one  sm    [[* 	2688RD>288QC=9662663/12	2 	2 	2s   A.BBN)rq   rr   rs   rc   rw  r  r   r   r  have_matplotlibr  r  r  r  rt   rA   r?   rc  rc  \  sM    3<$( [[O+OD E0O.2rA   rc  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zej                   j#                  dg dg dg dg      d        Zd Zej                   j(                  d        Zej                   j#                  dg d      d        Zd Zej                   j#                  dddg      d        Zej                   j#                  dd ej4                         f      d        Zy)TestWilcoxonc                     t        t        t        j                  ddgddgd       t        t        t        j                  ddgddgd       t        t        t        j                  dgdz  d       y )Nr   r   dummyr8  r   xyzr  )re   rf   r   wilcoxonrg   s    r?   test_wilcoxon_bad_argz"TestWilcoxon.test_wilcoxon_bad_arg  sW     	j%..1a&1a&'Jj%..1a&1a&")	+j%..1#b&GrA   c                    t        j                  d      }t        j                  d      5  t        j                  ||dd      \  }}t        ||fdt         j                  f       t        j                  ||dd      \  }}t        ||fdt         j                  f       d d d        t        t        j                  ||d	d      d
       y # 1 sw Y   -xY w)Nr  r   r  wilcox
asymptoticr  r   prattzsplit)g     @Z@r*   )r9   rk   r   r   r  r   r   )r^   rl   r   r}  s       r?   test_zero_diffzTestWilcoxon.test_zero_diff  s    IIbM [[* 	0>>!QFDAq!Q#rvv/>>!QEDAq!Q#rvv/		0 	U^^Aq(<H#	%	0 	0s   A5CCc                 `    g d}g d}t        j                  ||ddd      }t        |d       y )Nr0  )r   r   r   r   r  r  F)zero_methodr  
correction)r   g|N?)r   r  r
   )r^   rl   r  rn   s       r?   
test_prattzTestWilcoxon.test_pratt  s2     nnQw|(-/78rA   c                     g d}t        j                  |dd      }t        j                  |dd      }t        j                  |dd      }y )N)r   r   r   r   r   r   r   r   r   r   r   r  r  )r  r  r  r  )r   r  )r^   arrr  s      r?   test_wilcoxon_arg_typez#TestWilcoxon.test_wilcoxon_arg_type  s?     1NN3GLINN3H\JNN3H\JrA   c                 L   g d}t        dd      }t        j                  t        ||      D cg c]  \  }}|g|z   c}}      }t        j                  |j
                        }t        j                  ||ddd      \  }}t        |d       t        |d	       t        j                  ||d
dd      \  }}t        |d       t        |d       t        j                  ||ddd      \  }}t        |d       t        |d       t        j                  g d      }t        j                  g d      }t        j                  ||dd      \  }}t        |d       t        |dd       t        j                  ||dd      \  }}t        |d       t        |dd       y c c}}w )N)	r   r   r  rj   rJ   r   r   r   r   r   r  r  Fr  r  i  g.i?r  i  gFYv]Uj?r  iG  g%^ Ez?r  r+  r  r        y   r     r%     p         w   r&  r     r%  r%  s   r  r     r  r  r  g^҂<?rN   rO   Tg:b+?)r,  r9   concatenater+  zerosr   r   r  r
   r1  r   )	r^   freqnumsur   rl   r  rd  r}  s	            r?   test_accuracy_wilcoxonz#TestWilcoxon.test_accuracy_wilcoxon  se   ,R|NND$@1QC!G@AHHQVV~~aGL).01301~~aH\).01301~~aH\).013+, HHQRHHQR~~au\J1Q940~~atLI1Q9407 As   F 
c                 T   t        j                  g d      }t        j                  g d      }t        j                  ||dd      }t        j                  ||dd      }t        j                  ||dd      }t        j                  ||dd      }||cxk(  r|cxk(  r|k(  sJ  J y )N)r   r   r  rI      r  r  r   rJ   r-  rG   r  )r   r   r   r  r   r   rH   r  r!  rH      rD  r  approxr  r  )mode)r9   r1  r   r  )r^   rl   r  r  r  r  r  s          r?   test_approx_modezTestWilcoxon.test_approx_mode  s     HH@AHHAB~~aHX>~~aH\B~~aH8<~~aH<@t+t+t+++++rA   c                     t        j                  g d      }t        j                  g d      }t        j                  ||dd      }d}t	        ||       y )Nr  r  Fr  r  r4  )r9   r1  r   r  r   )r^   rl   r  rn   rm   s        r?   test_wilcoxon_result_attributesz,TestWilcoxon.test_wilcoxon_result_attributes  sC    HHQRHHQRnnQeLI,
C,rA   c                    t         j                  j                  d      }|j                  d      |j                  d      }}t        j                  ||d      }t        j
                  j                  |j                  dz        }t        |j                  |       t        j                  ||d      }t        |d      rJ t        j                  ||      }t        |d      rJ y )Nl   	m$S rj   r  r  r   exact
zstatistic)r9   r[  r\  r   r  r   r}  r   r
   r  hasattr)r^   r_  rl   r  rn   r   s         r?   test_wilcoxon_has_zstatisticz)TestWilcoxon.test_wilcoxon_has_zstatistic  s    ii##K0zz"~szz"~1nnQ,7jjnnSZZ\*,nnQ'23---nnQ"3----rA   c                     t        j                  dgdz  dd      \  }}d}t        |d       t        ||d	       t        j                  dgdz  d
d      \  }}d}t        |d       t        ||d	       y )Nr  r   r  Fr  g4IťY?r   rN   rO   Tr  gc2_?)r   r  r   r
   )r^   statr}  
expected_ps       r?   test_wilcoxon_tiezTestWilcoxon.test_wilcoxon_tie"  sx     ..#L,13a 
T1:D1..#(46a 
T1:D1rA   c                    g d}g d}t        j                  ||ddd      \  }}t        |d       t        |dd	
       t        j                  ||ddd      \  }}t        |d       t        |dd	
       t        j                  ||ddd      \  }}t        |d       t        |dd	
       t        j                  ||ddd      \  }}t        |d       t        |dd	
       y )N)
}   r  r     r  r  r  r  r  r'  )
r'  z   r  r  r  |   rP     r'     r?  r  F)r9  r  r  rD  g13}?rF   rV   T)r9  r  r  g7a%?r@  g?gڏoJT?)r   r  r   r   )r^   rl   r  r   r}  s        r?   test_onesidedzTestWilcoxon.test_onesided7  s     ?>~~a|).01QAy!4~~a4%131QAy!4~~a	%1eE1QAy!4~~a	)-lD1QAy!4rA   c                     t        dd      D ]Z  }t        |      }t        |      }t        ||dz   z  dz  dz   t	        |             t        t        |      d       t        ||       \ y )Nr   r  r   )r,  r   r   r   r  r  r   )r^   r	  pmf1pmf2s       r?   test_exact_basiczTestWilcoxon.test_exact_basicW  sa    q" 	2A&q)D'*DAaCQD	2TA&%dD1	2rA   c                    t        j                  g d      }t        j                  g d      }t        j                  ||dd      \  }}t	        |dd       t        j                  ||d	d      \  }}t	        |d
d       t        j                  ||dd      \  }}t	        |dd       t        j
                  dd      dz   }t        j
                  ddd      }t        j                  ||dd      \  }}t	        |dd       t        j                  ||d	d      \  }}t	        |dd       t        j                  ||dd      \  }}t	        |dd       y )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  r9  r  g֔  ?rF   rV   r?  gYJ?r@  g*  ?r   r  r  r   g(?g(?gS?)r9   r1  r   r  r   rk   )r^   rl   r  r  r}  s        r?   test_exact_pvalzTestWilcoxon.test_exact_pval_  s'   HH # $HH $ %~~aGL1Ay!4~~awG1Ay!4~~a	'J1Az15IIas"IIb!R ~~aGL1Ay!4~~awG1Ay!4~~a	'J1Ay!4rA   rl   )r   r   r   )r   r   r-  r  r   )r   r   r   r  r=  irI   rJ   c                     t        j                  |      \  }}t        j                  |      }||dkD     j	                         }t        ||       t        |d       y Nr   r   )r   r  r9   r1  r  r   )r^   rl   r   r}  wtrues        r?   test_exact_p_1zTestWilcoxon.test_exact_p_1{  sJ     ~~a 1HHQK!a%QQrA   c                 V   t        j                  dd      dz   }t        j                  ddd      }t        t        j                  ||      t        j                  ||d             t        j
                         }t        j                  dd      }t        j                  |      \  }}t        ||ft        j                  ||             t        j                  d	d
      }t        j                  |      \  }}t        ||ft        j                  |d             d||dk(  <   t        j                  |      \  }}t        ||ft        j                  |d             t        j                  dd      }t        t        j                  |      t        j                  |d             y )Nr   r   r  r   r  r  r   r   r=  rG   r  r   r  )r9   rk   r   r   r  r  )r^   rl   r  pmr  r   r}  s          r?   	test_autozTestWilcoxon.test_auto  s@   IIas"IIb!R U^^Aq)^^Aq9	; $$&IIb!~~a 1
 	aVU^^Ab9: IIb!~~a 1aVU^^AlCD!q&	~~a 1aVU^^AlCD IIaU^^A&q(NOrA   c                     t        j                  dd      }t        j                  |      }d}t	        ||       d||dk(  <   t        j                  |      }d}t	        ||       y )Nr=  rJ   )g     ;@g     P?r   r   )r  g     0?)r9   rk   r   r  r   )r^   r  rn   r   s       r?   test_auto_permutation_edge_casez,TestWilcoxon.test_auto_permutation_edge_case  s[     IIb!nnQ"S#!q&	nnQ S#rA   r   )r   r   r   c                 l   t         j                  j                  d      }|j                  |      }t        j                  |t        j
                               }t        j                  |d      }t        |j                  |j                         t        |j                  |j                         |j                  |dz        }t         j                  j                  d      }t        j
                  d|      }t        j                  ||      }t         j                  j                  d      }t        j
                  d|	      }t        j                  ||      }t        t        j                  |j                  d
      |j                         t        |j                  |j                         y )Nl   aQG1X@
r   r  r  r   l   VsWFr!  r  )r  r   r   )
r9   r[  r\  r   r  r  r   r[   r   round)r^   r   r_  rl   rn   r   r  s          r?   test_permutation_methodz$TestWilcoxon.test_permutation_method  s%   ii##$56JJDJ!nnQu'>'>'@AnnQw/S]]CMM2SZZ,JJDGJ$ii##$56$$=nnQr*ii##$56$$#FnnQr*RXXcjj!,cjj9SZZ,rA   c                 4   t         j                  j                  d      }|j                  d      }t         j                  |d<   t        j                  |      }t        j                  |d      }t        ||       t        |d      sJ t        |d      rJ y )Nl   HF )Z )r  r   r   )r   r   r  r  r  )	r9   r[  r\  normalr   r   r  r
   r  )r^   r_  r   rn   r   s        r?   6test_method_auto_nan_propagate_ND_length_gt_50_gh20591zCTestWilcoxon.test_method_auto_nan_propagate_ND_length_gt_50_gh20591  s     ii##O4JJGJ$&&$nnQnnQ|4S!sL)))3----rA   r  r  r  c                    g d}g d}t        j                  ||d|      }t        j                  ||d|      }t        |      t        |      dz   z  dz  }t        |j                        |j                  k7  sJ t        ||j                  z
  |j                  d	       t        |j                  |j                  d	       y )
N)
r  r  rM  r  r;  r  r  r  r  rC  )
r  r  E   rM  rJ  r  r  r  r  r  r?  r  r@  r   r   V瞯<rO   )r   r  r  r  r[   r
   r   )r^   r  var1var2r   rn   max_statistics          r?   test_symmetry_gh19872_gh20752z*TestWilcoxon.test_symmetry_gh19872_gh20752  s     87nnT4VFKnnT4YvND	SY]3a73==!S]]2225s}}5Q

CJJU;rA   c                 t    t        j                  t        j                  d      |      }t	        |ddg       y )Nr   r  r   r   )r   r  r9   r  r
   )r^   r  rn   s      r?   test_all_zeros_exactz!TestWilcoxon.test_all_zeros_exact  s*    
 nnRXXa[8aV$rA   N)rq   rr   rs   r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r  r  r  r  r  r  r   r  r  rt   rA   r?   r  r    s'   H%9K1@	,-.2*5@258 [[S;#5#@#B CCP< [[  [[VZ0- 1-(.  [[X'>?
< @
< [[X1H1H1H1J'KL% M%rA   r  )gףp=
W0@gQ%@gGz'@g+@g33333/@g3333332@g
ףp=
@gq=
ףp$@g
ףp=
)@g\(\-@gGz0@gGzn3@g=
ףp= @gffffff&@gfffff)@g
ףp=-@Gz0@g3@g!@g)\('@g333333(@g
ףp=
.@r  g{G0@gQ3@gq=
ף"@g\(\'@gR*@g33333.@g\(3@c                       e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	ej                  j                  dg d	      d
        Z
y)	TestKstatc           	      R   t         j                  j                  d       |j                  t         j                  j	                  d      |j
                        }|j                  dD cg c]  }t        j                  ||       c}      }|j                  g d|j                        }t        ||d       t        j                  |d	      }t        j                  |d
	      }t        j                  |d	      }t        |j                  |||f      |d d dd       y c c}w )Ni}  re  rs  r0  )gHQ,?glZ)rI?g88}?gcJN?r  rO   r   )orderr   r   r   g{Gz?{Gz?r  )r9   r[  r  r`  r  float64r   kstatrt  r"   moment)	r^   rb  r_   r	  momentsrM  m1m2m3s	            r?    test_moments_normal_distributionz*TestKstat.test_moments_normal_distribution  s    
		uzz"))//%0

zC**LIqekk$2IJ::I$(JJ  05 \\$a(\\$a(\\$a(

BB<0(3B-dQUV Js   )D$c                    t        |      rMt        j                  t        t              5  t        j                  |j                  g             }d d d        nCt        j                  d      5  t        j                  |j                  g             }d d d        t        |j                  |j                               y # 1 sw Y   /xY w# 1 sw Y   ;xY wNr   r   r  )r!   r   r   r   r   r   r	  r`  r9   r   r#   r   )r^   rb  rn   s      r?   rh   zTestKstat.test_empty_input  s    B<08MN 2kk"**R.12 2 X. 2kk"**R.12RZZ/02 22 2s   %C/%CCCc                     |j                  d      }|j                  |dk(  |j                  |j                        |      }t	        t        j                  |      |j                  |j                               y NrQ   rF   rk   wherer`  r   r#   r   r	  r^   rb  r_   s      r?   r   zTestKstat.test_nan_input  R    yy~xx	2::bff#5t<D)2::bff+=>rA   r	  r   g/$@c                     |j                  d      }d}t        j                  t        |      5  t	        j
                  ||       d d d        y # 1 sw Y   y xY w)Nr   z'k-statistics only supported for 1<=n<=4r   r	  )rk   r   r   rf   r   r	  )r^   r	  rb  r_   rG  s        r?   test_kstat_bad_argzTestKstat.test_kstat_bad_arg  sG     yy};]]:W5 	#KK"	# 	# 	#s   AAcase))r   gM~,@)r   2.L)@)r   gP'')r    -"bac                     |\  }}t        j                  |j                  t              |      }t	        ||j                  |             y r8   )r   r	  r`  x_kstatr"   )r^   r  rb  r	  r   rn   s         r?   test_against_RzTestKstat.test_against_R  s8     3kk"**W-q1RZZ_-rA   N)rq   rr   rs   r  rh   r   r   r   r   r  r   rt   rA   r?   r  r    sg    W1? [[S1e*-# .# [[V &? @.	@.rA   r  c                   z    e Zd Zd Zd Z edd      ej                  j                  d      d               Z	d Z
y	)
TestKstatVarc                    |j                  g       }t        |      r>t        j                  t        t
              5  t        j                  |      }d d d        n4t        j                  d      5  t        j                  |      }d d d        t        |j                  |j                               y # 1 sw Y   /xY w# 1 sw Y   ;xY wr  )r`  r!   r   r   r   r   r   kstatvarr9   r   r#   r   )r^   rb  rl   rn   s       r?   rh   zTestKstatVar.test_empty_input0  s    JJrNB<08MN (nnQ'( ( X. (nnQ'(RZZ/0( (( (s   B51C5B>C
c                     |j                  d      }|j                  |dk(  |j                  |j                        |      }t	        t        j                  |      |j                  |j                               y r  r  r  s      r?   r   zTestKstatVar.test_nan_input:  r  rA   Tz2input validation of `n` does not depend on backendnp_onlyrk  rl  c                     dg}d}d}t        j                  t        |      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr   r   zOnly n=1 or n=2 supported.r   r  )r   r   rf   r   r$  )r^   r_   r	  rG  s       r?   r   zTestKstatVar.test_bad_arg@  sF    
 s.]]:W5 	&NN41%	& 	& 	&s   AAc                 ~   t        t              }d}d}t        j                  |j	                  t              d      }||z  }t        ||j	                  |             t        j                  |j	                  t              d      }d|dz  z  |z  |dz
  |z  z   ||dz   z  z  }t        ||j	                  |             y )Nr  r  r   r   )r  r  r   r$  r`  r"   )r^   rb  r	  k2k4rn   r   s          r?   test_against_R_mathworldz%TestKstatVar.test_against_R_mathworldK  s    
 LnnRZZ0!41fRZZ_-nnRZZ0!4QwqyAaC8#QqS	2RZZ_-rA   N)rq   rr   rs   rh   r   rl  r   r   r{  r   r,  rt   rA   r?   r"  r"  .  sI    1? dQS[[/0& 1S&.rA   r"  c                   r    e Zd Zd Zd Zd Zej                  j                  e	 d      d        Z
d Zd Zy	)
TestPpccPlotc                 0    t        ddd      dz   | _        y Nr     r  rZ  r@   rl   rg   s    r?   setup_methodzTestPpccPlot.setup_method_      "13WEIrA   c                     d}t        j                  | j                  dd|      \  }}g d}t        |t	        j
                  dd|             t        ||       y )Nr   r   N)g9%	?gxM _?g";9?g®XZ?g?num)r   	ppcc_plotrl   r
   r9   r  )r^   r8  svalsppccppcc_expecteds        r?   rc   zTestPpccPlot.test_basicb  sK    oodffc2;t%r{{3:;m,rA   c                 p   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       y )Nr6  r   tukeylambdar  g#B;rO   )r   r;  rl   r@  r
   )r^   svals1ppcc1svals2ppcc2svals3ppcc3s          r?   	test_distzTestPpccPlot.test_distj  s    RmLR-2->->@U3u51R8U3u51rA   r  r	  c                 N   t        j                         }|j                  d      }t        j                  | j
                  ddt                |j                  |       |j                  d      }t        j                  | j
                  dd|       t        j                          y Nr  ir  r  )r  r  r  r   r;  rl   delaxesr  r^   r  r  s      r?   r  zTestPpccPlot.test_plot_kwargv  sm     jjl__S!Rc2B __S!Rb1		rA   c                     t        t        t        j                  | j                  dd       t        t        t        j                  g dddd       y )Nr   r   r   r  r  )re   rf   r   r;  rl   rg   s    r?   test_invalid_inputsz TestPpccPlot.test_invalid_inputs  s5    j%//4661a@ 	j%//9a,	.rA   c                     t        j                  g dd      \  }}t        |t        j                  ddd             t        |t        j
                  dt                     y )Nr   r   r  r9  rs  )r   r;  r
   r9   r  r  float)r^   r<  r=  s      r?   r  zTestPpccPlot.test_empty  sF     oob!Q/tr{{1aR89bhhr78rA   N)rq   rr   rs   r3  rc   rG  r   r   r  r  r  rM  r  rt   rA   r?   r.  r.  ^  sH    J-
2 [[O+OD
 E
.9rA   r.  c                   $    e Zd Zd Zd Zd Zd Zy)TestPpccMaxc                 L    dg}t        t        t        j                  |d       y r  )re   rf   r   ppcc_maxr   s     r?   test_ppcc_max_bad_argz!TestPpccMax.test_ppcc_max_bad_arg  s    sj%..$=NOrA   c                     t         j                  j                  ddddd      dz   }t        t        j                  |      dd	
       y )Nffffffr   r  '   r        @{rI   rV   )r   r@  r<   r   rS  r   s     r?   test_ppcc_max_basiczTestPpccMax.test_ppcc_max_basic  sF    !!$ASu/6 " 8:=>ENN1-/CQOrA   c                 H   t         j                  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       y )NrV  r   r  rW  rX  r   rY  r@  r  rZ  r   rV   )r   r@  r<   rS  r   )r^   rl   max1max2max3s        r?   rG  zTestPpccMax.test_dist  s    !!$ASu/6 " 8:=> ~~am4~~ae&7&78D"6BD"6B ~~a D"6BrA   c                     t         j                  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       y )NrV  r   r  rW  rX  r   rY  )r   r*   r  brack)r   r   rZ  rI   rV   r   r   )r   r@  r<   re   rf   rS  r   r   s     r?   
test_brackzTestPpccMax.test_brack  sx    !!$ASu/6 " 8:=>j%..!?KENN1F;0!	= 	ENN1G<0!	=rA   N)rq   rr   rs   rT  r[  rG  rd  rt   rA   r?   rQ  rQ    s    P
P
C	=rA   rQ  ri  z)JAX arrays do not support item assignmentr	  rl  c                       e Zd Zej                  j                  dddg      d        Z edd      d        Zd	 Z	d
 Z
d Zd Zy)TestBoxcox_llfrt  rx  r  c                    t        ||      }t        j                  j                  ddd      }d}t        j                  ||j                  ||            }|j                   dz  t        j                  t        j                  |j                         dz              z  }t        ||j                  ||             y )	NrW  r   1  r   r   r   r   rs  r  r   )r]  r   r   r<   
boxcox_llfr`  r   r9   r:   r  rb   r"   )r^   rt  rb  dtrl   lmbdallfllf_expecteds           r?   rc   zTestBoxcox_llf.test_basic  s    RJJNN2ENBubjj"j&=>w|bffRVVAEEGQJ-?&@@RZZBZ?@rA   Tz,array-likes only accepted for NumPy backend.r&  c                     t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        |            }t        ||d       y Nr   r   rh  ri  r   rC  rO   )r   r   r<   rj  listr"   r^   rb  rl   rl  rm  llf2s         r?   test_array_likezTestBoxcox_llf.test_array_like  sU     JJNN%N@ua(tAw/T.rA   c                 >   t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        j
                  ||g      j                        }t        |j                  ||g      |j                  |      d       y rp  )	r   r   r<   rj  r9   vstackrd  r"   r`  rr  s         r?   test_2d_inputzTestBoxcox_llf.test_2d_input  sz     JJNN%N@ua(ryy!Q'8':':;

C:.

40@uMrA   c           
          |j                  |j                  t        j                  d|j                  g                         sJ y r~   )isnanr`  r   rj  )r^   rb  s     r?   r  zTestBoxcox_llf.test_empty  s2    xx

5#3#3Arzz"~#FGHHHrA   c                     |j                  g d      }t        j                  d|      }t        ||j                  d             y )N)g     h@      m@r{  g     x@ig#:x1)r`  r   rj  r"   r^   rb  r_   rm  s       r?   test_gh_6873zTestBoxcox_llf.test_gh_6873  s9     zz67r4(RZZ(:;<rA   c                     |j                  g d      }t        j                  d|      }t        ||j                  d|j                               y )N)i  i  i  i  i  :0yE>gl.rs  )r`  r   rj  r"   r  r|  s       r?   test_instability_gh20021z'TestBoxcox_llf.test_instability_gh20021  sA    zz89tT* 	RZZ(=RZZZPQrA   N)rq   rr   rs   r   r   r   rc   rl  rt  rw  r  r}  r  rt   rA   r?   rf  rf    se    
 [[Wy)&<=A >A dKM/M/NI=RrA   rf  (  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                  j                  dg d      d	        Zd
 Ze	j                  j                  dg d      d        Zd Ze	j                  j                  d ej"                  g d       ej"                  ej$                  ddg      g      d        Ze	j                  j                  d ej"                  g d       ej"                  g d       ej"                  g d      g      d        Zy)
TestBoxcoxc                 >   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	             y )Nr   r   re  rZ  r   rl  r   r   r   r   )
r@   r   r   r
   r9   r:   rq  r   r   r  )r^   rl   xts      r?   test_fixed_lmbdazTestBoxcox.test_fixed_lmbda$  s    abu=A\\!1%AE"\\!2&A!G$\\!1%BFF1I& \\$q'+BFF1I& \\"''"+q)R"&rA   c                     d}t         j                  j                  ddd      }||z  dz   | z  }t        j                  |      \  }}t	        |d|z  d	       y )
Ng      @r   iP  i  )r   r   r   r   r   r   rV   )r   r   r<   r   r   )r^   rl  rl   x_invr  r   s         r?   test_lmbda_NonezTestBoxcox.test_lmbda_None6  sW     JJNNrDNAUQ5&)\\%(
FFBJ:rA   c                    t         j                  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       y )Nr  r   r   rZ  rY  )alphagx@gv[%@rB  gxˉEk?g8Bhk @rI   r1  rj   r,  g\?gx̡&@r-   g7(U@gp:sY@)r9   r[  r   r@   r   r   r
   )r^   r_  rl   r  rz   s        r?   
test_alphazTestBoxcox.test_alpha@  s    ii##D)abs;a? at41h#46G"HIat41h#57H"IJ ac<rAau51h9k":;au51h:z":;rA   c                 B   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             y )Nr   r   r   )r9   r1  re   rf   r   r   r   s     r?   test_boxcox_bad_argzTestBoxcox.test_boxcox_bad_argQ  s_    HHb!Wj%,,2j%,,!>j%,,1#s0DErA   c                 Z    t        t        j                  g       j                  dk(         y N)r   )r	   r   r   rI  rg   s    r?   r  zTestBoxcox.test_emptyZ  s    R &&$./rA   c                 X    t        j                  t              \  }}t        |dd       y )NgsHjdrr   rO   r   r   _boxcox_datar
   )r^   r  lams      r?   r}  zTestBoxcox.test_gh_6873]  s"    l+3 	YT2rA   bounds)r   r   )r   r   )r   r  c                 z    fd}t        j                  t        d |      \  }}d   |cxk  r	d   k  sJ  J y )Nc                 4    t        j                  | d      S Nbounded)r  r  r   minimize_scalarfunr  s    r?   	optimizerzBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizerh      ++C3<> >rA   rl  r  r   r   )r   r   r  )r^   r  r  r  rl  s    `   r?   $test_bounded_optimizer_within_boundsz/TestBoxcox.test_bounded_optimizer_within_boundse  sA    	> <<DIN5ay5,6!9,,,,,rA   c                     t        j                  t        d       \  }}|dz   |dz   fddifd}t        j                  t        d |      \  }}||k7  sJ t        |d          y )	Nr  r  r   xatolrC  c                 6    t        j                  | d      S )Nr  )r  r  optionsr  )r  r  r  s    r?   r  zPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizerz  s!    ++C3<gO OrA   r  r   r  )r^   r  rl  r  lmbda_boundedr  r  s        @@r?   2test_bounded_optimizer_against_unbounded_optimizerz=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizero  su    
 <<D95 #+uqy)E"	O
 !<<D2;==%%%vay1rA   r  )strr   r   r  c                     t        j                  t        d      5  t        j                  t
        d |       d d d        y # 1 sw Y   y xY w)Nz`optimizer` must be a callabler   r  r   r   rf   r   r   r  r^   r  s     r?   $test_bad_optimizer_type_raises_errorz/TestBoxcox.test_bad_optimizer_type_raises_error  s<     ]]:-MN 	HLLTYG	H 	H 	Hs   AAc                     d }d}t        j                  t        |      5  t        j                  t
        d |       d d d        y # 1 sw Y   y xY w)Nc                      yr~   rt   )r  s    r?   r  zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizer  s    rA   z/return an object containing the optimal `lmbda`r   r  r  )r^   r  rG  s      r?   %test_bad_optimizer_value_raises_errorz0TestBoxcox.test_bad_optimizer_value_raises_error  sF    
	 D]]:W5 	HLLTYG	H 	H 	Hs   AAbad_x)r   ig@r  r   c                     d}t        j                  t        |      5  t        j                  |       ddd       y# 1 sw Y   yxY w)zHTest boxcox_normmax raises ValueError if x contains non-positive values.z#only positive, finite, real numbersr   N)r   r   rf   r   boxcox_normmax)r^   r  rG  s      r?   "test_negative_x_value_raises_errorz-TestBoxcox.test_negative_x_value_raises_error  s:    
 8]]:W5 	(  '	( 	( 	(s	   =Arl   
     L@     x@     4@     @@     d@r  g     @g     <@g     \@g     @r  r  r  r  r  gFq$jgS	#jgGewa$jgVBi$jg[(>2$jc                     t        j                  t        d      5  t        j                  |      \  }}t        j                  t        j                  |            sJ 	 d d d        y # 1 sw Y   y xY w)NThe optimal lambda isr   )r   r   rO  r   r   r9   r   isfinite)r^   rl   xt_bclam_bcs       r?   test_overflowzTestBoxcox.test_overflow  sT     \\+-DE 	.!LLOME666"++e,---	. 	. 	.s   AA))A2N)rq   rr   rs   r  r  r  r  r  r}  r   r   r   r  r  r  r  r9   r1  r   r  r  rt   rA   r?   r  r  "  s'   '$;<"F03 [[X'FG- H-2* [[[*>?H @H

H [[hbhh018288RVVRO3LM
(
( [[S : 	; 	9:MN# ..rA   r  c            
          e Zd Zd Zd Zd Zd Zej                  j                  dg d      ej                  j                  dg d      d	               Z
ej                  j                  d
        Zd Zej                  j                  dg dg df      d        Zd Zej                  j                  d ej"                  g dej$                         ej"                  g dej$                         ej"                  g dej&                         ej"                  g dej&                        g      ej                  j                  dg d      ej                  j                  ddg      d                      Zej                  j                  dg dg dg      ej                  j                  ddg      d               Zy)TestBoxcoxNormmaxc                 0    t        ddd      dz   | _        y Nr   r   re  rZ  r2  rg   s    r?   r3  zTestBoxcoxNormmax.setup_method      "12EBQFrA   c                 ^    t        j                  | j                        }t        |dd       y )Nm?rN   rO   r   r  rl   r
   r^   r   s     r?   test_pearsonrzTestBoxcoxNormmax.test_pearsonr  s"    %%dff-t4rA   c                     t        j                  | j                  d      }t        |dd       t        j                  | j                        \  }}t        ||       y )Nmler  	.!?rN   rO   )r   r  rl   r
   r   )r^   r   r  maxlog_boxcoxs       r?   test_mlezTestBoxcoxNormmax.test_mle  sG    %%dffU;t4 !<</=v.rA   c                 f    t        j                  | j                  d      }t        |ddgd       y )Nr   r  r  r  rN   rO   r  )r^   
maxlog_alls     r?   test_allzTestBoxcoxNormmax.test_all  s)    ))$&&?

Xx$8tDrA   r  )r  pearsonrr   r  r  c                     fd}t        j                  | j                  ||      }t        j                  d   |k        sJ t        j                  |d   k        sJ y )Nc                 4    t        j                  | d      S r  r  r  s    r?   r  zITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer  r  rA   )r  r  r   r   )r   r  rl   r9   r   )r^   r  r  r  r   s     `  r?   r  z6TestBoxcoxNormmax.test_bounded_optimizer_within_bounds  s[    	> %%dffV09;vvfQi&()))vvfvay()))rA   c                 6   t        j                  | j                        }t        j                  |d      }t        j
                  |dz
  |dz   d       G d d      fd}t        j                  | j                  |      }||k7  sJ t        ||d       y )	Nr   r  i  c                       e Zd Zy)?TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.MyResultN)rq   rr   rs   rt   rA   r?   MyResultr    s    rA   r  c                     g }D ]  }|j                   | |                      }t        j                  |         |_        |S r8   )appendr9   argminrl   )r  objsrl  rn   r  lmbda_ranges       r?   r  z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizer  sG    D$ (CJ'(*C		$0CEJrA   r  r   )r   r  rl   r9   r  r  r
   )r^   rl  lmbda_roundedr  lmbda2r  r  s        @@r?   test_user_defined_optimizerz-TestBoxcoxNormmax.test_user_defined_optimizer  s     $$TVV,*kk-"4mD6H$O	 		 %%dff	Bt,rA   c                    t         j                  }t        j                  | j                  d |       t        j                  t        d      5  t        j                  | j                  d|       d d d        y # 1 sw Y   y xY w)N)rb  r  z,`brack` must be None if `optimizer` is givenr   )g       r  )r   r  r   r  rl   r   r   rf   r  s     r?   2test_user_defined_optimizer_and_brack_raises_errorzDTestBoxcoxNormmax.test_user_defined_optimizer_and_brack_raises_error  sl    ,,	 	TVV49E
 ]]: .D E 	6   {+46	6 	6 	6s   #A::Brl   r  )gx	 ?gN~jh ?g{ ?gXkI ?g}9" ?c                 6   d}t        j                  t        |      5  t        j                  |d      }d d d        t        j                  t        j                  |            j                         sJ t        j                  t
        j                        j                  dz  }|dkD  rt        j                  |      nt        j                  |      }t        j                  ||      }t        ||t        j                  |      z         y # 1 sw Y   xY w)NzThe optimal lambda is...r   r  r  rW  r   )r   r   rO  r   r  r9   r  r   r   r   finfor  maxr  r
   sign)r^   rl   rG  rl  ymaxx_treme	y_extremes          r?   r  zTestBoxcoxNormmax.test_overflow  s     -\\+W5 	:((59E	:{{7>>!U3488:::xx

#''%/$qy"&&)bffQiNN7E2		4"''%.#89	: 	:s   DDc                     t        j                  t        d      5  t        j                  | j
                  d       d d d        y # 1 sw Y   y xY w)Nz `ymax` must be strictly positiver   r   )r  )r   r   rf   r   r  rl   rg   s    r?   test_negative_ymaxz$TestBoxcoxNormmax.test_negative_ymax	  s:    ]]:-OP 	2  b1	2 	2 	2s   "AArs  )g	i@g     `h@gfffffh@r  gi@)gKH9KH9r  r  r  r  r  )g    _Bgꌠ9Y>)FNr  c           	         t        j                  t        d      5  |d|ini }t        j                  |fd|i|}t        j                  |      t        j                  |      g}t        t        t        j                  ||                  }|,t        j                  |j                        j                  dz  }t        ||d       d d d        y # 1 sw Y   y xY w)Nr  r   r  r  rW  r   rO   )r   r   rO  r   r  r9   r  r  absr   r  rt  r
   )r^   rl   r  r  kwarglmbr  ymax_ress           r?   'test_user_defined_ymax_input_float64_32z9TestBoxcoxNormmax.test_user_defined_ymax_input_float64_32	  s    & \\+-DE 	7&*&6VTNBE&&qAA5ACvvay"&&),G3u||GS9:;H|xx(,,u4D(6	7 	7 	7s   B/CCc                    t        j                  |t         j                        }t        j                  |t         j                        }t	        j
                  t        d      5  t        j                  ||       d d d        t        j                  ||       t        j                  |t         j                  |      }t        j                  |t         j                  |      }t        ||d       y # 1 sw Y   {xY w)Nrs  r  r   r  )r  r  r  rO   )r9   r`  rx  r  r   r   rO  r   r  rc  r
   )r^   rl   r  x_32x_64lmb_32lmb_64s          r?   test_user_defined_ymax_infz,TestBoxcoxNormmax.test_user_defined_ymax_inf%	  s     zz!2::.zz!2::. \\+-DE 	6  f5	6T&1 %%dG%%dGT2	6 	6s   &C88DN)rq   rr   rs   r3  r  r  r  r   r   r   r  slowr  r  r  r  r9   r1  r  rx  r  r  rt   rA   r?   r  r    s   G5/E [[X'AB[[X'FG	* H C	* [[- -,6  [[6JLM	:M	:2 [[S9zz	# 	Mzz	# 	4zz	# 	;zz	##  [[V%78[[Xw/
7 0 9"
7 [[S+2	#  [[Xw/3 03rA   r  c                   l    e Zd Zd Zd Zej                  j                  e d      d        Z	d Z
d Zy)	TestBoxcoxNormplotc                 0    t        ddd      dz   | _        y r0  r2  rg   s    r?   r3  zTestBoxcoxNormplot.setup_method=	  r4  rA   c                     d}t        j                  | j                  dd|      \  }}g d}t        |t	        j
                  dd|             t        ||       y )Nr   r6  r   r7  )g!X4}?g΁i?g-	15?gW$?g\ܱ{?r9  )r   boxcox_normplotrl   r
   r9   r  )r^   r8  lmbdasr=  r>  s        r?   rc   zTestBoxcoxNormplot.test_basic@	  sM    ,,TVVS"B%C ;<m,rA   r  r	  c                 N   t        j                         }|j                  d      }t        j                  | j
                  ddt                |j                  |       |j                  d      }t        j                  | j
                  dd|       t        j                          y rI  )r  r  r  r   r  rl   rJ  r  rK  s      r?   r  z"TestBoxcoxNormplot.test_plot_kwargH	  sq     jjl__S!dffc2C8B __S!dffc2B7		rA   c                     t        t        t        j                  | j                  dd       t        t        t        j                  ddgdd       y )Nr   r   r   )re   rf   r   r  rl   rg   s    r?   rM  z&TestBoxcoxNormplot.test_invalid_inputsU	  s6    j%"7"7AFj%"7"7"a!QGrA   c                 ^    t        t        j                  g dd      j                  dk(         y r  )r	   r   r  r   rg   s    r?   r  zTestBoxcoxNormplot.test_empty[	  s$    %%b!Q/449:rA   N)rq   rr   rs   r3  rc   r   r   r  r  r  rM  r  rt   rA   r?   r   r   <	  sD    J- [[O+OD
 E
H;rA   r   c                       e Zd Zd Zd Zd Zy)TestYeojohnson_llfc                     t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        |            }t        ||d       y )Nr   r   rh  ri  r   rC  rO   )r   r   r<   yeojohnson_llfrq  r
   r^   rl   rl  rm  rs  s        r?   rt  z"TestYeojohnson_llf.test_array_likea	  sS    JJNNN?""5!,##E473T.rA   c                    t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        j
                  ||g      j                        }t        ||g|d       y rp  )r   r   r<   r  r9   rv  rd  r
   r  s        r?   rw  z TestYeojohnson_llf.test_2d_inputh	  sf    JJNN%N@""5!,##E299aV+<+>+>?c
Du5rA   c                 h    t        t        j                  t        j                  dg                    y r~   )r	   r9   ry  r   r  rg   s    r?   r  zTestYeojohnson_llf.test_emptyo	  s     --a456rA   N)rq   rr   rs   rt  rw  r  rt   rA   r?   r	  r	  _	  s    /67rA   r	  c                      e Zd Zd Zej
                  j                  dg d      d        Zd Zd Z	ej
                  j                  de
j                  e
j                  g      d        Zej
                  j                  de
j                  e
j                  e
j                   e
j"                  g      d	        Zd
 Zej
                  j                  d e
j(                  d ed      dg       e
j(                  d ed      dg       e
j(                  d ed       dg       e
j(                  d ed       ed       ed       dg      g      d        Zej
                  j                  d e
j(                  g d       e
j(                  g d       e
j(                  g d      g      d        Zej
                  j                  d e
j(                  g d       e
j(                  g d      g      ej
                  j                  dg d      ej
                  j                  dddg      d                      Zej
                  j                  d e
j(                  g d       e
j(                  g d       e
j(                  g d      g      ej
                  j                  dddg      ej
                  j                  dd d!g      d"                      Zy )#TestYeojohnsonc                    t         j                  j                  d      }t        dd|      dz   }t        j                  |dkD        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
         y )Nre  r   r   rZ  r   r   r  r   r   r   )	r9   r[  r   r@   r   r   
yeojohnsonr
   r:   )r^   r_  rl   r  posnegs         r?   r  zTestYeojohnson.test_fixed_lmbdau	  s   ii##E* abs;a?vva!e}}aq)Aar*AQUO,aq)BFF1q5M*aq)A abs;a?vva!e}}aq)RVVQBF^O,aq)Aaq)A!aL1,- abs;a?66!a%=  66!q&>!!1faq)33(ar*3Q!C&1*%5!56aq)3#
!34aq)33(daq)3"&&!C&1"5!56aq)33(aq)3qvgk!2Q!67rA   rl  )r   r  r  r   c                    d }d}t         j                  j                  d       t         j                  j                  dd|      } |||      }t	        j
                  |      \  }}t        ||d       t        dt         j                  j                  ||z
        |z  d	
       t        d|j                         d
       t        d|j                         d
       y )Nc                 &   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      kD  r3dt        j                  d|z
   | |    z  dz   dd|z
  z        z
  || <   |S dt        j                  | |           z
  || <   |S )Nrs  r   r*   r   r   )r9   r  rI  rt  r  spacingexppower)rl   rl  r  r  s       r?   _inverse_transformz:TestYeojohnson.test_lmbda_None.<locals>._inverse_transform	  s   HHQWWAGG4Eq&C 5zBJJrN*VVAcF^a/c
XXafunq&8!e)DqHc
 519~

2."((QY<!SD'+AA+E+,E	?#< <sd
 L  "&&!SD'"22sdLrA   i N  rX  r   r   )r   r   r   r  r/  r   rV   )r9   r[  r  r  r   r  r
   r   linalgr   r`   rb   )r^   rl  r  	n_samplesrl   r  r  r   s           r?   r  zTestYeojohnson.test_lmbda_None	  s    
	& 	
		wII!9>"1e,%%e,
FD1Aryy~~a"f5	A1MArwwy!4Arvvx3rA   c                 Z    t        t        j                  g       j                  dk(         y r  )r	   r   r  rI  rg   s    r?   r  zTestYeojohnson.test_empty	  s       $**d23rA   c                     t         j                  j                  ddd      }t        j                  |      \  }}t        j                  t	        |            \  }}t        ||d       y )Nr   r   rh  ri  rC  rO   )r   r   r<   r  rq  r
   )r^   rl   xt1r  xt2s        r?   rt  zTestYeojohnson.test_array_like	  sR    JJNNN?!!!$Q!!$q'*QSu-rA   rt  c                     t        j                  d|      }d}t        j                  t        |      5  t        j                  |       d d d        y # 1 sw Y   y xY w)NrF   rs  z>Yeo-Johnson transformation is not defined for complex numbers.r   )r9   rk   r   r   rf   r   r  )r^   rt  rl   err_msgs       r?   test_input_dtype_complexz'TestYeojohnson.test_input_dtype_complex	  sJ    IIau%]]:W5 	 Q	  	  	 s   AAc                    t        j                  d|      }t        j                  dt         j                        }t        j                  |      \  }}t        j                  |      \  }}t        ||d       t        ||d       y )NrJ   rs  rZ  rO   )r9   rk   r  r   r  r
   )r^   rt  x_intx_floatxt_int	lmbda_intxt_floatlmbda_floats           r?   test_input_dtype_integerz'TestYeojohnson.test_input_dtype_integer	  sh    		!5)))ARZZ0!,,U3	 % 0 0 9+t4	;T:rA   c                     t        j                  g d      }t        j                  |      \  }}t        j                  |dz         \  }}t        ||d       t        ||d       y )N)(HAG."A    5fAg(@Ag   VAgHzuoAg)\¿+Ar/  g(\^@Ag    RAr.  g    #Ag\µ=Ag
ףNAr-  gp=oHAg    6bAg{csAg)\tmhAg/BAg   '|Ag(\wipAg    ݃hAgQlBAgףp @Ar   rN   rO   )r9   r1  r   r  r   r
   )r^   rl   xt_yeolam_yeoxt_boxlam_boxs         r?   test_input_high_variancez'TestYeojohnson.test_input_high_variance	  sY    HH " #  **1-,,q1u-T2t4rA   rl   r*   r   r  rc        c                     t        j                  t        d      5  t        j                  |      \  }}d d d        y # 1 sw Y   y xY w)Nz Yeo-Johnson input must be finiter   )r   r   rf   r   r  )r^   rl   r0  r1  s       r?   test_nonfinite_inputz#TestYeojohnson.test_nonfinite_input	  s<     ]]:-OP 	2#..q1OFG	2 	2 	2r;  r  r  r  c                    d }t        j                  d      5  t        j                  |      \  }}t        j                  |dz   t        ||            \  }}t        j                  t        j                  |            sJ t        j                  t        j                  |            sJ t        ||d       t        ||d	       d d d        y # 1 sw Y   y xY w)
Nc                 p    t        j                  | | |d      }t        j                         }||_        |S )Ng`sbO>)xtol)r   	fminboundOptimizeResultrl   )r  r1  outresults       r?   r  z/TestYeojohnson.test_overflow.<locals>.optimizer
  s4    $$S7(G(KC,,.FFHMrA   raiser   r   )r1  r  rN   rO   r  )	r9   r   r   r  r   r   r  ra   r
   )r^   rl   r  r0  r1  r2  r3  s          r?   r  zTestYeojohnson.test_overflow	  s    	 [[W% 	7#..q1OFG#llAG!DFOFG;;rvvf~...;;rvvf~...GW48FF6	7 	7 	7s   B1CCr   )r   rC  g3#I9gu?j/ gnFgZbtir  r   r   c                    t        j                  d      5  t        j                  ||z  |z        \  }}t        j                  t        j
                  ||z        t        j
                  |      k(        sJ t        j                  |      sJ t        j                  t        j                  |            sJ 	 d d d        y # 1 sw Y   y xY w)Nr?  r   )r9   r   r   r  r   r  r  ra   )r^   rl   r   r  r0  r1  s         r?   #test_overflow_underflow_signed_dataz2TestYeojohnson.test_overflow_underflow_signed_data
  s     [[W% 	/#..tax%/?@OFG66"''$(+rwwv>???;;w''';;rvvf~...		/ 	/ 	/s   B#CC)r   r   r   r   )r   r   r   r-  )r   r   r   rb  Nrc  c                    t        j                  d      5  ||z  }|j                  t         j                        }t	        j
                  ||      }t	        j                  ||      }t	        j
                  ||      }t	        j                  ||      }	t        j                  t        j                  |      t        j                  |      k(        sJ t        j                  |      sJ t        j                  t        j                  |            sJ ||k(  sJ t        j                  ||	k(        sJ 	 d d d        y # 1 sw Y   y xY w)Nr?  r   ra  r  )r9   r   astyper  r   yeojohnson_normmaxr  r   r  r  ra   )
r^   rl   r  rb  r%  r&  lam_yeo_int
xt_yeo_intlam_yeo_floatxt_yeo_floats
             r?   test_integer_signed_dataz'TestYeojohnson.test_integer_signed_data%
  s    [[W% 	61HEll2::.G225FK))%{CJ!44WEJM ++G=IL66"''%.BGGJ,??@@@;;{+++;;rvvj1222-///66*4555	6 	6 	6s   D#EE)rq   rr   rs   r  r   r   r   r  r  rt  r9   	complex64
complex128r#  int8uint8int16int32r+  r4  r1  rO  r7  r  rA  rI  rt   rA   r?   r  r  s	  s   -8^ [[Wn5"4 6"4H4. [[Wr||R]]&CD  E  [[Wrww"((BHH&MN; O;5 [[S#uU|S)*#uU|S)*#e}c*+$eeElU5\M3GH	# 22 [[S : 	; 	9:MN# 77$ [[S : 	;9:# 
 [[W&LM[[VaW-/ . N/ [[S # 
 [[VaW-[[WtWo66 7 .6rA   r  c                       e Zd Zd Zd Zd Zy)TestYeojohnsonNormmaxc                 0    t        ddd      dz   | _        y r  r2  rg   s    r?   r3  z"TestYeojohnsonNormmax.setup_method<
  r  rA   c                 ^    t        j                  | j                        }t        |dd       y )Ng?rN   rO   )r   rD  rl   r
   r  s     r?   r  zTestYeojohnsonNormmax.test_mle?
  s"    ))$&&1t4rA   c                 j    g d}t        j                  |      }t        j                  |dd      sJ y )N)gffffff@g r*   r  ffffff?g333333@r  gffffff@g?g@r  r  g"@r   g      gzG?r,  r/  )r   rD  r9   allclose)r^   rl   rl  s      r?   test_darwin_examplez)TestYeojohnsonNormmax.test_darwin_exampleC
  s/    ((+{{5%d333rA   N)rq   rr   rs   r3  r  rW  rt   rA   r?   rQ  rQ  ;
  s    G54rA   rQ  c                      e Zd Zej                  j                  dej                  dfej                  dfej                  dfg      d        Z
d Zej                  j                  dej                  ej                  fej                  ej                  fej                  ej                  fg      d        Zej                  j                  d	ej                  ej                  ej                  g      d
        Zej                  j                  dej                  dfej                  dfej                  dfg      d        Zej                  j                  dej                  ej                  ej                  g      d        Zej                  j                  dej                  ej                  ej                  g      d        Z edd      ej                  j                  dej                  ej,                  dddfej                  ej,                  dddfej                  ej,                  dddfg      d               Zd Zd Zd Zd Zd Zd  Zy!)"TestCircFuncstest_func,expectedA:wv?gpz?E|2@c                 p    |j                  g d      }t         ||d      |j                  |             y )N)g     0v@r  r       pv@rQ        u@h  r  r`  r"   r^   	test_funcrM  rb  rl   s        r?   test_circfuncszTestCircFuncs.test_circfuncsT
  s-    
 JJ67	!#.

80DErA   c                    |j                  g d|j                        }|j                  |      }t        j                  |d      }t        ||d       t        |      }|j                  ||j                  z  dz  d	      }|d
z  }t        j                  |d      }t        ||d       |j                  |d	      }t        j                  |d      }	t        |	|d       y )N)r  rA  r  r     g     4@g3333333@rs  r`  ra  r   rO   r  r   r  r  r  )r`  r  r`   r   circmeanr"   r    ra   picircvarrb   circstd)
r^   rb  rl   M1M2xp_testV1V2S1S2s
             r?   test_circfuncs_smallz"TestCircFuncs.test_circfuncs_small\
  s     JJ7rzzJJWWQZ^^AC(BT* "!$[[255[3 "W]]13'BT*[[q[)]]13'BT*rA   ztest_func, numpy_funcc                     t        j                  dgdz  dgdz  z         } ||j                  |            }|j                   ||            }t        ||d       y )Ng˛ɦv9?r   guv9?r   g:0yU>r/  )r9   r`  r"   )r^   rd  
numpy_funcrb  rl   circstatr  s          r?   test_circfuncs_closez"TestCircFuncs.test_circfuncs_closer
  sY     JJ+,r15H4IC4OOPRZZ]+JqM*&t4rA   circfuncc           	      2   |j                  g dg dg dg      } ||d      } ||j                  |d      d      }t        ||j                  |              ||dd      }t        |j                  d	         D cg c]  } |||d d f   d       }}t        ||j                  |              ||dd	      }t        |j                  d         D cg c]  } ||d d |f   d       }}t        ||j                  |             y c c}w c c}w )
N)c  r   r   r  r   ^  )_  rI   r   `  rG   ]  )ie  rG   rJ   if  r   g     @v@r`  ra  r   r   r  r  r   )r`  reshaper"   r,  rI  )r^   rb  ry  rl   rn   r   ro   s          r?   test_circmean_axisz TestCircFuncs.test_circmean_axis}
  s    JJ1013 4 qs#rzz!U+#6RZZ_-qs+49!''!*4EFqx!Q$c*FFRZZ_-qs+49!''!*4EFqx!Q$c*FFRZZ_- G Gs   ?DD @pz?c                 p    |j                  g d      }t         ||d      |j                  |             y )N)r{  r   r   r  r   r_  r`  ra  rb  rc  s        r?   test_circfuncs_array_likez'TestCircFuncs.test_circfuncs_array_like
  s-    
 JJ12	!#.

80DErA   rd  c                    |j                   }|j                  g |      }t        |      r1t        j                  t
        t              5   ||      }d d d        n[t        j                  j                         5 }|j                  t        d       |j                  t        d        ||      }d d d        t        |j                  |j                  |             y # 1 sw Y   1xY w# 1 sw Y   =xY w)Nrs  r   zMean of empty slicern  )r  r`  r!   r   r   r   r   r9   ro  r   r  r   r#   r   )r^   rd  rb  rt  rl   rn   r  s          r?   r  zTestCircFuncs.test_empty
  s     

JJrJ'B<08MN #l# # --/ #3

>+@A

>+FGl	#
 	RZZeZ<=# ## #s   
	C:5C+C(+C4c           	          |j                  ddddddt        j                  g      }t         ||d      |j                  |j                               y )	Nr{  r   r   r  r   r|  r`  ra  )r`  r9   r   r#   )r^   rd  rb  rl   s       r?   test_nan_propagatez TestCircFuncs.test_nan_propagate
  sC     JJQ3C89	!#.

2660BCrA   cupyzcupy/cupy#8391r	  g5:v@gfPb?r  gee?gOQOv?g#q@gauy+@c                 :   |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      }|j                         D ]  } ||d	|
      }|&t	        ||j                  |j                               6t        |d   |j                  ||                t	        |dd  |j                  |dd  |j                                y )N)r{  r   r   r  r   r|  r   r}  rI   r   r~  rG   r  r   r`  r  r   )r`  r9   r   keysr#   r"   	full_like)r^   rd  rM  rb  rl   r  r=  s          r?   test_nan_propagate_arrayz&TestCircFuncs.test_nan_propagate_array
  s     JJ4aCC8BFFBFFBFFBFFBFFBFFKM N MMO 	HDACd3C|RZZ%78A

8D>(BCABc!"grvv)FG	HrA   c                 v    |j                  d      d   }|}t        j                  |      }t        ||d       y )Nr*   rt   r   rO   )r`  r   ri  r"   )r^   rb  rl   rm  rn  s        r?   test_circmean_scalarz"TestCircFuncs.test_circmean_scalar
  s3    JJrN2^^ABT*rA   c                    t        j                  |j                  ddd      |j                  |j                         }t	        ||j                  |j                               t	        | |j                  |j                               y )Nr   r   r  )r   ri  rk   rj  r$   r`  )r^   rb  r4  s      r?   test_circmean_rangez!TestCircFuncs.test_circmean_range
  s]     NN299Q3/?q"**RUU+,r2::bee,-rA   c                 b   |j                  ddg|j                        }t        t        j                  |d      |j                  d             t        t        j
                  |d      |j                  d             t        t        j                  |d      |j                  d             y )	Nr  r   rs  r  ra  g     @e@gLwqA?g)#p_4@)r`  rM  r"   r   ri  rk  rl  )r^   rb  rl   s      r?   test_circfuncs_uint8z"TestCircFuncs.test_circfuncs_uint8
  sx     JJRyJ1qs3RZZ5FGac2BJJ4OPac2BJJ{4KLrA   c                     t        j                  |j                  dg            }t        j                  d|      dk(  sJ y )Nr   r*   )r   rl  r`  mathcopysign)r^   rb  r  s      r?   test_circstd_zerozTestCircFuncs.test_circstd_zero
  s3    MM"**aS/*}}S!$+++rA   c                    |j                  ddd      }|j                  |j                  |      |k(        r#|j                  |j                  |      dk(        sJ |d|j                  z  z  d|j                  z  z  |k7  }|j                  |      sJ ||   }t        j                  |d d d f   d      }|j                  ||k(        sJ y )NrS   r  r   r*   r   r   r  )r  r   sincosrj  anyr   ri  )r^   rb  rl   r4  r  s        r?   !test_circmean_accuracy_tiny_inputz/TestCircFuncs.test_circmean_accuracy_tiny_input
  s     KKdC(vvbffQi1n%"&&c1A*BBB!bee)_BEE	*q0vvayyaDNN1QW:A.vva1f~~rA   c                 X   |j                  d|j                        }t        j                  |j	                  |      |j                  |            }|j                  ||j                        }t        j                  ||j                  |j                         }t        ||dd       y )Ng ؅W4vCrs  )r  r  r  r   )rP   r0  )
r`  r  r  atan2r  r  r   ri  rj  r"   )r^   rb  rl   r  rM  actuals         r?   !test_circmean_accuracy_huge_inputz/TestCircFuncs.test_circmean_accuracy_huge_input
  sz     JJt2::J.JJrvvay"&&),::arzz:2BEE6:u3?rA   N)rq   rr   rs   r   r   r   r   ri  rk  rl  re  rt  r9   r`   ra   rb   rx  r  r  r  r  rl  r   r  r  r  r  r  r  r  rt   rA   r?   rY  rY  L
  sv    [[1$~~{;$}}.BC$}}k:<=F	=F+, [[4$~~rww7$}}bff5$}}bff5785	85 [[Z%..*/--*/--*9 :.:.  [[1$~~{;$}}.BC$}}k:<=F	=F [[[5>>5==+0==+: ;>;> [[[5>>5==+0==+: ;D;D f%56[[1$~~&(ff*MO$}}&(ff#7#7 9:  %}}&(ff
KMNO
HO 7
H+.M,
*@rA   rY  c                      e Zd Zej                  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                  j                  dej                  dfej                  dfej                  dfg      d        Zej                  j                  dej                  ej                  ej                  g      d        Zej                  j                  dej                  ej                  ej                  g      d        Zej                  j                  dddd
dddej"                  g ej                  ddd
dddej"                  gddd d!ej"                  d"d#gg      g      ej                  j                  dej                  ej                  ej                  g      d$               Zej                  j                  dddd
dddej"                  g ej                  ddd
dddej"                  gddd d!ej"                  d"d#gg      g      ej                  j                  dej                  ej                  ej                  g      d%               Zy&)'TestCircFuncsNanPolicyrZ  grQvv@)g     v@r  r  g     8v@r>  g     u@g5@v?g2>Bjv@r  gG2?)gaF+?z?r  gA ~@碲?r  r  r   r  gX҄?gJPm$@)gj  @竃 ?r  g)h;@{ ?r  gun2@g+fa @c                    t        j                  ddddddt         j                  gddd	d
ddt         j                  gt         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  gg      }|j                         D ]  }| ||dd|      }t	        |||   d       #t        j                  t        t              5   ||dd|      }t	        |d d ||   d       t        t        j                  |d                d d d         y # 1 sw Y   xY w)Nr{  r   r   r  r   r|  r}  rI   r   r~  rG   r  r`  omit)r  
nan_policyr  rZ  rO   r   r   )r9   r1  r   r  r
   r   r   r   r   r	   ry  )r^   rd  rM  rl   r  r=  s         r?   test_nan_omit_arrayz*TestCircFuncsNanPolicy.test_nan_omit_array  s   ( HHsAq#r37Aq#q#rvv6vvrvvrvvrvvrvvrvvrvvNP Q MMO 	/D|TJXd^$?\\"4<MN /#ACFNC#CHhtn4HBHHSW-./ /	/
/ /s   >AEE	r[  r\  c                 `    ddddddt         j                  g}t         ||dd	      |d
       y )Nr{  r   r   r  r   r|  r`  r  r  r  rZ  rO   )r9   r   r
   )r^   rd  rM  rl   s       r?   test_nan_omitz$TestCircFuncsNanPolicy.test_nan_omit%  s4    
 !QRbff-	!#&A t	-rA   rd  c           	      R   t         j                  t         j                  t         j                  t         j                  t         j                  g}t        j                  t        t
              5  t        t        j                   ||d                   d d d        y # 1 sw Y   y xY w)Nr   r  r  )r9   r   r   r   r   r   r	   ry  r^   rd  rl   s      r?   test_nan_omit_allz(TestCircFuncsNanPolicy.test_nan_omit_all.  se     VVRVVRVVRVVRVV4\\,4EF 	?BHHYqV<=>	? 	? 	?s   -'BB&c           	      b   t        j                  t        t              5  t	        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  gt        j                  t        j                  t        j                  t        j                  t        j                  gg      } ||dd      }t        t	        j                  |      j                                t        t        |      dk(         d d d        y # 1 sw Y   y xY w)Nr   r  r   )r  r  r   )r   r   r   r   r9   r1  r   r	   ry  r   r  )r^   rd  rl   r=  s       r?   test_nan_omit_all_axisz-TestCircFuncsNanPolicy.test_nan_omit_all_axis5  s     \\,4EF 	#266266266266266B66266266266266BD EAA&q9CBHHSM%%'(CHM"	# 	# 	#s   C<D%%D.rl   r{  r   r  r   r|  r}  rI   r   r~  rG   r  c                 ,    t        t        ||dd       y )Nr`  r?  r  re   rf   r  s      r?   test_nan_raisez%TestCircFuncsNanPolicy.test_nan_raise?  s     	j)QSWMrA   c                 ,    t        t        ||dd       y )Nr`  foobarr  r  r  s      r?   test_bad_nan_policyz*TestCircFuncsNanPolicy.test_bad_nan_policyH  s     	j)QSXNrA   N)rq   rr   rs   r   r   r   r   ri  r9   r1  rk  rj  rl  r  r  r  r  r   r  r  rt   rA   r?   r  r  
  sC    [[1$~~&7#+288 -4 $5#+288Z,F#G IJ
  %}}&:#+288 -N $./1uuSy1n$= $,288-A-@-B $C	 DE  %}}&7#+288 -9 $: $,288Z,D#E	 GHIJ&/'J&/ [[1$~~{;$}}.BC$}}k:<=-	=-
 [[[5>>5==+0==+: ;?;?
 [[[5>>5==+0==+: ;#;# [[S"Aq#r3?&bhhaCS"&&(I),aCC(H(J KLM [[[5>>5==+0==+: ;N;	MN [[S"Aq#r3?&bhhaCS"&&(I),aCC(H(J KLM [[[5>>5==+0==+: ;O;	MOrA   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                  j!                  dddg      d        Zy)TestMedianTestc                 F    t        t        t        j                  g d       y Nr   re   rf   r   median_testrg   s    r?   test_bad_n_samplesz!TestMedianTest.test_bad_n_samplesT  s    j%"3"3Y?rA   c                 H    t        t        t        j                  g g d       y r  r  rg   s    r?   r  z TestMedianTest.test_empty_sampleX  s    j%"3"3RCrA   c                 V    t        t        t        j                  g dg dddgd       y )N)r   r   r   r   )r   r   r   r   r   r   tiesr  rg   s    r?   test_empty_when_ties_ignoredz+TestMedianTest.test_empty_when_ties_ignored\  s$    
 	j%"3"3"I1vH	FrA   c                     t        t        t        j                  g dg d       t        t        t        j                  g dg dd       y )N)r   r   r   abover  r  rg   s    r?   test_empty_contingency_rowz)TestMedianTest.test_empty_contingency_rowd  s3    
 	j%"3"3Y	J 	j%"3"3Y	"	$rA   c                 P    t        t        t        j                  g dddgd       y )Nr   r   r   r7  r  r  rg   s    r?   test_bad_tieszTestMedianTest.test_bad_tiesp  s    j%"3"3YA 	"rA   c                 P    t        t        t        j                  g dddgd       y )Nr   r   r   r  r  r  rg   s    r?   r  z"TestMedianTest.test_bad_nan_policyt  s    j%"3"3YA!)	+rA   c                 P    t        t        t        j                  g dddgd       y )Nr   r   r   r7  )r7  )re   r  r   r  rg   s    r?   r  zTestMedianTest.test_bad_keywordx  s    i!2!2I1v	!rA   c                     g d}g d}t        j                  ||      \  }}}}t        |d       t        |ddgddgg       t        |d       t        |d       y )Nr   r  r   r   r   )r   r  r   r   )r^   rl   r  r  r}  medtbls          r?   test_simplezTestMedianTest.test_simple|  s`    !--a3ac 	S#3!Q!Q 01 	T1QrA   c                    g d}ddg}g d}t        j                  |||      \  }}}}t        |d       t        |g dg dg       t        j                  |||d      \  }}}}t        |d       t        |g dg d	g       t        j                  |||d
      \  }}}}t        |d       t        |g dg d	g       y )Nr0  r   rF   )rI   rJ   rG   )r   r   r   )r   r   r   r   r  )r   r   r   r  )r   r   r   )r   r  r   )r^   rl   r  zr  r}  r4  r  s           r?   test_ties_optionsz TestMedianTest.test_ties_options  s    F  ++Aq!4aCQS9i01++Aq!(CaCQS9i01++Aq!'BaCQS9i01rA   c                    ddt         j                  g}g d}t        j                  ||d      }t        j                  ||d      \  }}}}t	        |t         j                  t         j                  t         j                  d f       t        |d       t        |d       t	        |d	       t	        |t        j                  d
dgddgg             t        t        t        j                  ||d       y )Nr   r   )r   r   rF   	propagater  r  g     ?gإvao?r  r   r?  )	r9   r   r   r  r   r
   r1  re   rf   )r^   rl   r  mt1r  r}  r4  ry  s           r?   test_nan_policy_optionsz&TestMedianTest.test_nan_policy_options  s    266N1=&&q!?
1aS266266266489././QQ1a&1a&!123j%"3"3QgNrA   c                    g d}g d}t        j                  ||      \  }}}}t        |d       t        |ddgddgg       t        j                  |      \  }}}	}
t	        ||       t	        ||       t        j                  ||d      \  }}}}t        |d       t        |ddgddgg       t        j                  |d      \  }}}	}
t	        ||       t	        ||       t        j                  ||d	      \  }}}}t        |d       t        |ddgddgg       t        j                  |d	      \  }}}	}
t	        ||       t	        ||       y )
Nr   )r   r   rF   rJ   r   r   r   r   )lambda_Frh  )r   r  r   chi2_contingencyr
   )r^   rl   r  r  r}  r4  r  exp_statexp_pdofes              r?   rc   zTestMedianTest.test_basic  sN    ++Aq1aCQSAq6Aq6*+"'"8"8"=%ah'5!++Aq!<aCQSAq6Aq6*+"'"8"8a"H%ah'5!++AqUCaCQSAq6Aq6*+"'"8"8"O%ah'5!rA   r  FTc                     g d}g d}t        j                  |||      }t        |j                  |j                  |j
                  |j                  f|       y )Nr   rh  )r   r  r   r[   r   r  table)r^   r  rl   r  rn   s        r?   ra  zTestMedianTest.test_result  sC    1<cmmSZZSYYGMrA   N)rq   rr   rs   r  r  r  r  r  r  r  r  r  r  rc   r   r   r   ra  rt   rA   r?   r  r  R  sh    @DF
$"+!2(O"> [[\E4=9N :NrA   r  c                   4   e Zd Zd Zej
                  j                  dej                   dz  ej                  dz  gdfddej                  z  gdfg      d        Z	d Z
d	 Z ed
d      d        Zd Zej
                  j                  dddg      d        Zy)TestDirectionalStatsc                    t        j                  t        j                  g d             }t        j                  t        j                  g d             }t        j                  t        j                  |      t        j                  |      z  t        j                  |      t        j
                  |      z  t        j
                  |      fd      }|j                  |j                               }|j                  |j                               }|j                  |j                               }t        j                  |      }|j                  }|j                  g d      }t        ||d       y )N)	g33333su@g      O@g33333sB@g      ;@r^  g@g333333I@gYv@rm  )	gfffffP@g,Q@gfffffQ@gfffffT@g     S@g     @R@g33333SQ@gffffffM@g33333I@r   r  )gHP?g&S:g[<r  r/  )r9   deg2radr1  stackr  r  r`  r  r   directional_statsmean_directionr"   )r^   rb  declinclr_   dirstatsdirectional_meanreference_means           r?   "test_directional_stats_correctnessz7TestDirectionalStats.test_directional_stats_correctness  s    

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

288 %< = > >xxt4t4'  
 zz$++-(zz$++-(zz$++-(**40#22$>?(.tDrA   zangles, refr   r*   r   r   c                 
   |j                  |      }|j                  |      }|j                  |j                  |      |j                  |      gd      }dt	        j
                  |      j                  z
  }t        ||       y )Nr   r  )r`  r  r  r  r   r  mean_resultant_lengthr"   )r^   anglesr   rb  r_   rn   s         r?   'test_directional_stats_2d_special_casesz<TestDirectionalStats.test_directional_stats_2d_special_cases  sk    
 F#jjoxx8qxA%))$/EEES!rA   c                 V   t         j                  j                  d      }|j                  d|j                  z  |j                  d      z        }|j                  |j                  |      |j                  |      fd      }t        j                  |      }|j                  }t        |      }|j                  |d   |d         }|d|j                  z  z  }t        j                  |      }	t        ||	       d|j                  z
  }
t        j                   |      }t        |
|       y )Nl	   }7Qh0P4u&4M r   )rY  r   r  r   r*   )r9   r[  r\  r`  rj  r  r  r  r   r  r  r    r  ri  r"   r  rk  )r^   rb  r_  testdatatestdata_vectorr  r  ro  directional_mean_angleri  directional_varcircular_vars               r?   test_directional_stats_2dz.TestDirectionalStats.test_directional_stats_2d  s    ii##$FG::a"%%i#**X*>>?((BFF8$4$&FF8$4$6() # + **?;#22!"23!(/?/B/?/B"D!71ruu9!E>>(+.9x===}}X.6rA   c                    |j                  g dg dg      }|j                  |j                  |d            }|j                  g dg dgg dg dgg      }t        j                  |d      }t	        |j
                  |       y )N+Pz?r  r   )r  r  r   )r   r   r   r   )r*   r   r   r   r  )r`  tiler   r  r"   r  )r^   rb  r_   
full_arrayrM  r  s         r?    test_directional_mean_higher_dimz5TestDirectionalStats.test_directional_mean_higher_dim  s     zz/02 3ZZl ;<
:: , . , , ./ 0 **:A>//:rA   Tzchecking array-like inputr&  c                 ^   g dg dg}|j                  ||j                        }t        j                  |      }t        j                  |      }t	        |j
                  |j                  |j
                               t	        |j                  |j                  |j                               y )Nr  )r  r  r   rs  )r`  r  r   r  r"   r  r  )r^   rb  r_   
data_arrayr   rn   s         r?   )test_directional_stats_list_ndarray_inputz>TestDirectionalStats.test_directional_stats_list_ndarray_input  s     %&:;ZZBJJZ7
%%d+%%j1**

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

3#<#<=	?rA   c                     |j                  d      }d}t        j                  t        t	        j
                  |            5  t        j                  |       d d d        y # 1 sw Y   y xY w)N)r   zIsamples must at least be two-dimensional. Instead samples has shape: (5,)r   )r   r   r   rf   reescaper   r  )r^   rb  r_   rG  s       r?   test_directional_stats_1d_errorz4TestDirectionalStats.test_directional_stats_1d_error%  sP    wwu~6]]:RYYw-?@ 	*##D)	* 	* 	*s   A!!A*rt  rx  r  c                    t        j                  g dg dg|      }t        j                  |j	                  |      d      }|t         j
                  j                  |dd      z  }t        j                  |d      }t        |j                  |j	                  |j                               t        |j                  |j	                  |j                               y )	Nr  )g+Pz?r5  r   rs  T)	normalizer   )r  keepdimsF)
r9   r1  r   r  r`  r  r   r"   r  r  )r^   rt  rb  r_   rn   normalized_datar   s          r?    test_directional_stats_normalizez5TestDirectionalStats.test_directional_stats_normalize-  s    
 xx--/6;=%%bjj&6$G29= "0 "? ?%%oG**

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

3#<#<=	?rA   N)rq   rr   rs   r  r   r   r   r9   rj  r  r  r  rl  r  r  r  rt   rA   r?   r  r    s    E, [[]55&(BEE!G	b!
QY- "	"7*; d+FG	? H	?* [[Wy)&<=? >?rA   r  c                       e Zd Zd Zd Zej                  j                  dg ddfg ddfg      d        Zd	 Z	ej                  j                  d
g d      d        Z
d Zy)TestFDRControlc                    d}t        j                  t        |      5  t        j                  g d       d d d        t        j                  t        |      5  t        j                  g d       d d d        t        j                  t        |      5  t        j                  ddt
        j                  g       d d d        d}t        j                  t        |      5  t        j                  g dd	
       d d d        d}t        j                  t        |      5  t        j                  g dd       d d d        t        j                  t        |      5  t        j                  g dd       d d d        y # 1 sw Y   KxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   yxY w# 1 sw Y   y xY w)Nz.`ps` must include only numbers between 0 and 1r   )r   r  rU  )r  rU  r   r  rU  zUnrecognized `method` 'YAK')r  rU  rx   YAKr  z#`axis` must be an integer or `None`rQ  r  r  )r   r   rf   r   false_discovery_controlr9   r   r  s     r?   test_input_validationz$TestFDRControl.test_input_validation?  s^   B]]:W5 	:)).9	:]]:W5 	9))-8	9]]:W5 	>))3RVV*<=	> 0]]:W5 	I))/%H	I 8]]:W5 	E))/D	E]]:W5 	H))/G	H 	H	: 	:	9 	9	> 	>	I 	I	E 	E	H 	HsG   E?F'F F%F1F=?F	FF"%F.1F:=Gc                 Z    g d}t        j                  |      }g d}t        ||d       y )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
   )r^   psrn   r   s       r?   test_against_TileStatsz%TestFDRControl.test_against_TileStatsR  s(    E++B/FSt,rA   r  )
go?gQ]
Y?ghD@?u?D?gn@t?g=T	[ے?g=!s?r  r  g	L?bh)
glߢ?gq?g.0?R]D?g)<Gh?g$͂?g2-p?r  r  g]:?byc                     |\  }}t         j                  j                  d      }t        j                  j                  ddd|      }|d   |d<   t        j                  ||      }t        ||d	
       y )N   <U) r,  r  r   rZ  rI   r   r  rN   r/  )r9   r[  r\  r   
loguniformr<   r  r
   )r^   r  r   r  r_  r  rn   s          r?   r   zTestFDRControl.test_against_RY  sl     Vii##$78!!$"3!G11++Bv>St,rA   c                    t         j                  j                  d      }t        j                  j                  ddd|      }t        j                  |d       }t        j                  |j                               }t        ||       y Nr  r,  r  )r   r   r   rZ  r  )	r9   r[  r\  r   r  r<   r  ravelr   )r^   r_  r  rn   r   s        r?   test_axis_NonezTestFDRControl.test_axis_Nonek  sh    ii##$78!!$)#!N++BT:++BHHJ7S#rA   r  )r   r   r   c                    t         j                  j                  d      }t        j                  j                  ddd|      }t        j                  ||      }t        j                  t        j                  ||      }t        ||       y r   )	r9   r[  r\  r   r  r<   r  apply_along_axisr   )r^   r  r_  r  rn   r   s         r?   	test_axiszTestFDRControl.test_axisr  sl    ii##$78!!$)#!N++BT:!!%"?"?rJS#rA   c                     t        t        j                  dg      dg       t        t        j                  d      d       t        t        j                  g       g        y )Nr  )r   r   r  rg   s    r?   r  zTestFDRControl.test_edge_casesz  sE    588$@4&I588>E588<bArA   N)rq   rr   rs   r  r  r   r   r   r   r"  r%  r  rt   rA   r?   r  r  >  s    H&- [[V 89=? 89=?@A	-A	- [[VZ0 1BrA   r  c                       e Zd Zej                  j                  dej                  i fej                  ddifej                  ddifej                  i fg      d        Z
y)TestCommonAxisr  r	  r   r   c                 t   |\  }}t         j                  j                  d      }|j                  |j                  d            } ||fi |ddi}|j                  t	        |j
                  d         D cg c]  } ||d d |f   fi | c}      }	t        ||	        ||fi |ddi}|j                  t	        |j
                  d         D cg c]  } |||d d f   fi | c}      }	t        ||	        ||fi |dd i} ||j                  |d      fi |}	t        ||	       y c c}w c c}w )Nl   @ms|Y)rF   rI   r  r   r   r  )r9   r[  r\  r`  r,  rI  r"   r  )
r^   r  rb  r  r>   r_  rl   rn   ro   r   s
             r?   r%  zTestCommonAxis.test_axis  s(   
 Vii##N3JJszz&)*!&v&A&jj%
:KLQ#a1g00LMS!!&v&A&jj%
:KLQ#a1g00LMS!!)v)D)"**Q&1&1S! M Ms   7D0D5N)rq   rr   rs   r   r   r   r   semr	  	variationr%  rt   rA   r?   r(  r(    sb     [[Vuyy"o',{{S!H&=',{{S!H&=',&;&= >"	>"rA   r(  )lr  r   r  	functoolsr   numpyr9   numpy.randomr   numpy.testingr   r   r   r   r	   r
   r   r   r   r   re   r  scipyr   r   r   scipy.stats._morestatsr   r   r   common_testsr   
_hypotestsr   r   scipy.stats._binomtestr   scipy.stats._distr_paramsr   scipy.stats._axis_nan_policyr   r   r   r   scipy.conftestr   scipy._lib._array_apir    r!   scipy._lib._array_api_no_0dr"   r#   r$   r   rl  dict
matplotlibrcParamsmatplotlib.pyplotpyplotr  r  	ExceptionrV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r@   rC   rv   r   r   rf  r  rT  r}  r  r  r6  r8  rc  r  r  r  r"  r.  rQ  r{  rf  r  r  r  r   r	  r  rQ  rY  r  r  r  r  r(  rt   rA   r?   <module>r@     s  
   
   $. . .  * 	 * * N N - B ? .T T 0 ;  ;;// >%*J	"#O LKKKKKKKKL
4/ />? ?Bu@ u@pM> M>`L9 L9^C6 C6L /* /* /*dB7 B7Jk8 k8\G- G-T20l7 l7^[2 [2|o% o%j	P
 6. 6. 6.r ,. ,. ,.^39 39l"= "=J +&QR+,.R .R  - S.Rf0fI. I.XK3 K3\ ;  ;F7 7(E6 E6P4 4" n@ n@ n@bQO QOhN NB g? g? g?T?B ?BD " " "cb  Os   0I< <JJ