
    xf                       d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZ d dlZd dlmZ d dlZd dlmZ d dlmZ d dlmZmZmZ dd	lmZ d
dlmZmZ d dlm Z  d dl!m"Z"  e#e"      Z"	 d dl$Z$de$jJ                  d<   d dl&m'Z( dZ)g dZ+g dZ,g dZ-g dZ.g dZ/g dZ0g dZ1g dZ2g dZ3g dZ4d Z5 G d d      Z6 G d d       Z7 G d! d"      Z8 G d# d$      Z9 G d% d&      Z: G d' d(      Z; G d) d*      Z< G d+ d,      Z= G d- d.      Z> G d/ d0      Z? G d1 d2      Z@d3 ZA G d4 d5      ZB G d6 d7      ZC G d8 d9      ZD G d: d;      ZE G d< d=      ZF G d> d?      ZG G d@ dA      ZH G dB dC      ZIg dDZJ G dE dF      ZK G dG dH      ZL G dI dJ      ZM G dK dL      ZN G dM dN      ZO G dO dP      ZP G dQ dR      ZQ G dS dT      ZR G dU dV      ZS G dW dX      ZTy# e*$ r dZ)Y _w xY w)Y    N)RandomState)assert_array_equalassert_almost_equalassert_array_lessassert_array_almost_equalassert_assert_allcloseassert_equalsuppress_warnings)raises)optimize)stats)
_abw_state_get_As_weibull_Avals_weibull   )check_named_results   )_get_wilcoxon_distr_get_wilcoxon_distr2)_binary_search_for_binom_tst)distcontAggbackendTF)
jt?Zd;?V-?      ?gX9v?-?x&1?+?+?r   )
r   r   r   r    灕Cl?r   r   r   r   V-?)
ʡE?g/$?r#   r!   ףp=
?r"   r   r!   r   r   )
gGz?r    r"   r   r&   r"   r   r   r    r   )
r   r   gCl?Gz?r    rh|?r   r   g\(\?r   )
羟/$?gh|?5?r)   r#   r$   r    r&   r   g1Zd?r   )
r'   Mb?r   gjt?r   r   g}?5^I?g)\(?r   r    )
r   r   r   r   r    r   r   r   r    r   )
r    r   r   r&   r   r*   r*   r   r!   r%   )
r%   r&   r(   r"   r#   r#   r%   r   r*   r#   c                  f    t        j                  t        j                  j                  | i |      S N)nplogr   gammarvs)argskwargss     B/usr/lib/python3/dist-packages/scipy/stats/tests/test_morestats.py_old_loggamma_rvsr4   6   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   	            r>            "@g4`H#j@gO[%@+=rtol      $@gai	@gӇu8@&.>_紫@   decimalgYs?g1O@)r   	bayes_mvsr   	statisticr	   minmaxselfdatameanvarstds        r3   
test_basiczTestBayes_mvs.test_basic;   s     '.c3DNNC0%M"	$ 	CMM40

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

$L"	$r5   c                 B    t        t        t        j                  g        y r,   )assert_raises
ValueErrorr   rM   rQ   s    r3   test_empty_inputzTestBayes_mvs.test_empty_inputM   s    j%//26r5   c                     t        j                  d      }d}t        j                  |      }|D ]  }t	        ||        y )N   )rN   rO   )r-   aranger   rM   r   )rQ   x
attributesresis        r3   test_result_attributesz$TestBayes_mvs.test_result_attributesP   s;    IIbM,
ooa  	/A:.	/r5   N)__name__
__module____qualname__rV   r[   rc    r5   r3   r7   r7   :   s    $$7/r5   r7   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 )Nr9   r@   ?rA   rB   rC   rE   rF   rG   rH   rI   rJ   rL   )r   mvsdistr   rS   r	   intervalrP   s        r3   rV   zTestMvsdist.test_basicZ   s    &t,c3DIIK-c* -AGL	N 	CHHJ-S) ,?EJ	L 	CHHJ(:BGS) ,@FK	Mr5   c                 B    t        t        t        j                  g        y r,   rX   rY   r   rl   rZ   s    r3   r[   zTestMvsdist.test_empty_inputi   s    j%--4r5   c                 H    dg}t        t        t        j                  |       y Nr   ro   rQ   rR   s     r3   test_bad_argzTestMvsdist.test_bad_argl   s    sj%--6r5   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   rw         )warningscatch_warningssimplefilterRuntimeWarningr   rl   rS   rQ   r_   s     r3   
test_warnszTestMvsdist.test_warnsq   sz     $$& 	?!!'>:$}}Y78!QVVX8$}}_=>!QVVX>	? 	?8>	? 	?s)   4B)	B B)<B$B)
B))B2N)rd   re   rf   rV   r[   rs   r   rg   r5   r3   ri   ri   Y   s    M57
?r5   ri   c                   <    e Zd Zd Zd Zd Zd Z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=
ף@   ?r:   rJ      Ɍ?)(\?=
ףp=?\(\@ffffff@\(\?(\?Gz@(\ףp=
@皙?)\(?RQr   p=
ף?@
ףp=
?{Gz?\(\@{Gz@Q@IddY?Dio?rw   rz   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?ry   )r   shapiror   rN   pvaluenormr0   )
rQ   x1wpwshapiro_testx2x3x4
W_expected
p_expecteds
             r3   rV   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Gr5   c                    g dg dg}t        j                  |      \  }}t        j                  |      }t        |dd       t        |j                  dd       t        |dd       t        |j                  dd       g dg dg}t        j                  |      \  }}t        j                  |      }t        |d	d       t        |j                  d	d       t        |d
d       t        |j                  d
d       y )N)
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r:   rJ   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r   rw   )r   r   r   rN   r   )rQ   r   r   r   r   r   s         r3   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//!Dr5   c                     t        t        t        j                  g        t        t        t        j                  g g g g       y r,   rX   rY   r   r   rZ   s    r3   r[   zTestShapiro.test_empty_input   s(    j%--4j%--"b">r5   c                     t        t        t        j                  ddg       t        t        t        j                  t	        j
                  g dggt                     y )Nr   r   dtype)rX   rY   r   r   r-   arrayobjectrZ   s    r3   test_not_enough_valuesz"TestShapiro.test_not_enough_values   s7    j%--!Q8j%--2s)61RSr5   c                 H    dg}t        t        t        j                  |       y rq   r   r   s     r3   rs   zTestShapiro.test_bad_arg   s    Cj%--3r5   c                 n   t        j                  d      }t         j                  |d<   t        j                  |      \  }}t        j                  |      }t        |t         j                         t        |j                  t         j                         t        |d       t        |j                  d       y )NrE   r;   r   )	r-   r^   nanr   r   r
   rN   r   r   )rQ   r_   r   r   r   s        r3   test_nan_inputzTestShapiro.test_nan_input   sx    IIcNvv!a 2}}Q'Q\++RVV4B$L//5r5   c                     t        j                  g d      \  }}t        j                  |      }d}t        ||d       y )N)i i = i@ )gPq~?gF?h㈵>rC   )r   boxcoxr   r	   )rQ   	trans_valmaxlogra   refs        r3   test_gh14462zTestShapiro.test_gh14462   s9     "LL)AB	6mmI& 2St,r5   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?ư>rC   )r   r   r   r	   rN   )rQ   ra   r_   s      r3   test_length_3_gh18322z!TestShapiro.test_length_3_gh18322   sX     mm:;zzQ KmmA'78

O$?r5   N)rd   re   rf   rV   r   r[   r   rs   r   r   r   rg   r5   r3   r   r   z   s/    )HVE*?T4
	6-"@r5   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                  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   r-   onesr	   )rQ   rsr   r   Acritsigvs           r3   test_normalzTestAnderson.test_normal   s    $$$"$-R(~~b)4$s)Q'~~b)4!T"#Y'GGBK!~~a(4 	8$r5   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   r-   errstater   )rQ   r   r   r   r   r   r   s          r3   
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   )r-   r   r   r   lengumbel_lfitlogcdflogsfr^   rS   r	   )rQ   r   a2r   r   nxbarsr   r   rb   expected_a2s               r3   test_gumbelzTestAnderson.test_gumbel  s     GGCL!q(3D#F..$$Q'a&&q$2$$Qa0IIa1b277AaC!Gtt0D#EFFK(r5   c                 H    t        t        t        j                  dgd       y Nr   plate_of_shrimpdist)rX   rY   r   r   rZ   s    r3   rs   zTestAnderson.test_bad_arg'  s    j%..1#<MNr5   c                     t        d      }|j                  d      }t        j                  |      }d}t	        ||       y )Nr   r   r   rN   critical_valuessignificance_level)r   r   r   r   r   )rQ   r   r_   ra   r`   s        r3   rc   z#TestAnderson.test_result_attributes*  s<    $###,nnQK
C,r5   c                     t        d      }|j                  d      }t        j                  |d      \  }}}t        j                  |d      \  }}}t	        ||       y )Nr   r   r   r   r   )r   r   r   r   r	   )	rQ   r   r_   A1crit1sig1A2crit2sig2s	            r3   test_gumbel_lzTestAnderson.test_gumbel_l1  sT     $II3I..H5E4..J7E4Br5   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   r-   r   r   r   r   r   )
rQ   r   r   r   r
  r  r  r  r  r  s
             r3   test_gumbel_rzTestAnderson.test_gumbel_r;  s     $YYCY WWS\ 1..Z8E4..Z8E4"eBCj)U2Yr5   c                    t        j                  g d      }t        j                  |d      }|j                  j
                  \  }}}t        |||fdd       t        |j                  dd       |j                  |j                  d   k  sJ d	|z  }t        |d
d       t        d   }t        d   }||dz
  dz  ||z
  z  z   }	t        j                  |j                  |	kD        sJ t        |j                  |	d       y )N)
            r        r  u   r  weibull_min)g
ףp=
@gzGX@gQS@Mb`?rC   gp=
ף?MbP?r   r   g?r   皙?g?atol)r-   r   r   r   
fit_resultparamsr	   rN   r  r   r   )
rQ   r_   ra   mr   r   cAs40As45As_refs
             r3   test_weibull_min_case_Az$TestAnderson.test_weibull_min_case_AJ  s    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$?r5   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        r<   F      r/    ;            iF  z/Maximum likelihood estimation has converged to matchr  )r-   r   pytestr   rY   r   r   )rQ   r_   messages      r3   test_weibull_min_case_Bz$TestAnderson.test_weibull_min_case_B]  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   r<   =   +   r/  z:Critical values of the test statistic are given for the...z;An error occurred while fitting the Weibull distribution...r8  r  )	r-   r   r:  warnsUserWarningr   rY   r   r   )rQ   r_   wmessageemessagewcontextecontexts         r3   test_weibull_warning_errorz'TestAnderson.test_weibull_warning_errore  s}     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   rK  r     r   r   )
r-   randomdefault_rnggetattrr   r   r0   r   r#  success)rQ   rJ  rngreal_distnamer  r$  r_   ra   s           r3   test_anderson_fit_paramsz%TestAnderson.test_anderson_fit_paramsp  sy    
 ii##$67'/3I'I& 	um,-(DHHf4c:nnQ)~~%%%%r5   c                     d}t        t        d|z        t        d          t        j                  }t        t        d|z        t        d          y )Nr   r   r   )r
   r   r   r-   infrQ   r%  s     r3   test_anderson_weibull_Asz%TestAnderson.test_anderson_weibull_As~  s@    _QqS)>"+=>FF_QqS)>!+<=r5   N)rd   re   rf   r   r   r   rs   rc   r  r  r*  r<  rI  r:  markparametrizerV  rZ  rg   r5   r3   r   r      sh    %.) O-  @&-	- [[ZOP	&P	&>r5   r   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
)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@rd        F@g     F@rc  ffffffA@rg  g33333A@gB@gfffffB@gD@gffffffE@Fmidrankg@rw   gCl?gvq-?g,Ԛ?gl@gPk	@r   rz   ry   gJ4a?Mb0?r!  r-   r   r   anderson_ksampr   r   r	   rQ   t1t2t3t4Tktmps           r3   test_example1az TestAndersonKSamp.test_example1a  s    
 >XXFGXXFGXXFG(("b"b)95I	BBq)!"J"$Qq'1	.60r5   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 )Nr`  ra  rb  rf  Trh  gQ@rw   rj  r   rz   ry   r  rk  r!  rl  rn  s           r3   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0r5   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 )N   r]   )   r/  !      i  rI   :   %   r   A   r;      i     $      v   
"         r  C   r-  >   r=      r  Z   r   <      rA  1   rI      8      O   T   ,   r4  r/  r        i6  L   r7  r     r        r1  e   r  r,  r-  r.  r/  r0  r<   r1  r2  r/  r3  r4  r5  7   i@  r  h         /            r}  r  i  W   r=   x   rI   r  r  r  G   r  r2  *   r  rz   r<   r     rw   rI   r  r  rI   r     r  r   r  4   _   a   3   r  ry      r     D   M   P   r   r  j      R   6   r     .   o   '   ?   r     r     r  r   r  f   H   r  r  rw   r]         r  X   r  rz   rz   r  r        r     r  r?   rI   	g  r;   r<   i  i[  rw   r  r   i  r      rz   i  #   r<   i  r  r   r=   b   rz   U   [   rB     rw   r  r     rI   r-  r      r  r4        r5  rI   r  B   rA  r  Frh  gM
@rw   g^I+?g~:?g+e?gH.!@gcZB>h@r   rz   ry   	^)p?rk  r!  r   rm  r   r   r	   rQ   ro  rp  rq  rr  t5t6t7t8t9t10t11t12t13t14rs  rt  ru  s                     r3   test_example2az TestAndersonKSamp.test_example2a  s     (G45%?@IB14'? (("b"b"b"b*,c3S#*G168	B 	Bq)!"J"$Qq'1	.60r5   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 )Nrz  r  r  r  r  r  r  r  r  r  r  r  r  r  Trh  g'1Z
@rw   r  r   rz   ry   r  rk  r!  r  r  s                     r3   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0r5   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r;  g     @D@Frh  g=
ףpD@rw   r  gGzD@zp-value capped      ?g?ܵry         ?g?ܵ      @g!u?gףp=
׳?{Gzt?r   r"  rD   r:   gBiq?g鷯?      '@g:M@g46<Rv?gMb@?g      +@g6>W[1@g1ZGUS?-C6?)
r-   linspacer   filterrD  r   rm  r   r
   r	   )rQ   r   supr   _ru  s         r3   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 Nrz   rX   rY   r   rm  r-   r   rZ   s    r3   test_not_enough_samplesz)TestAndersonKSamp.test_not_enough_samples7  s    j%"6"6
Cr5   c                     t        t        t        j                  t	        j
                  d      t	        j
                  d      f       y r  r  rZ   s    r3   test_no_distinct_observationsz/TestAndersonKSamp.test_no_distinct_observations:  s,    j%"6"6wwqz2771:.	0r5   c                 l    t        t        t        j                  t	        j
                  d      g f       y r  r  rZ   s    r3   test_empty_samplez#TestAndersonKSamp.test_empty_sample>  s!    j%"6"6R8HIr5   c                     g d}t        j                  g d      }t        j                  ||fd      }d}t	        ||       t        |j                  |j                         y )Nr`  ra  Frh  r  )r-   r   r   rm  r   r
   r  r   )rQ   ro  rp  ra   r`   s        r3   rc   z(TestAndersonKSamp.test_result_attributesA  sO    =XXFG""B8U;K
C,S++SZZ8r5   N)rd   re   rf   rv  rx  r  r  r  r  r  r  rc   rg   r5   r3   r^  r^    s5    1"1 1@1@N9`D0J	9r5   r^  c                       e 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
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   rw   rw   ry   rw   r   r:   r   r:   r   ry   r   %Ties preclude use of exact statistic.g     7@r  g8#oG?)r   r  rD  r   ansarir   )rQ   r_   yr  Wpvals         r3   
test_smallzTestAnsari.test_smallO  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  r@  r   c   r  r  m   l   r  r  r  `   r  r  r@  q   t   r  n   r  r@  r  r  r  i   g   r  r  r  r   r  r  r  r  r   r   r  r  r  r  r  g     0g@r  g|:?)r-   r   r   r  rD  r   r  r   )rQ   ramsayparekhr  r  r  s         r3   test_approxzTestAnsari.test_approxX  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   rw   ry   )r]   rz   r  r>   r   r<   rE   r  g?r=   )r   r  r   )rQ   r  r  s      r3   
test_exactzTestAnsari.test_exactf  s0    ,,|-CD4AtR(D"6:r5   c                     t        t        t        j                  g dg       t        t        t        j                  dgg        y rq   rX   rY   r   r  rZ   s    r3   rs   zTestAnsari.test_bad_argk  s*    j%,,QC8j%,,R8r5   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  rN   r   )r   r  rD  r   r  r   )rQ   r_   r  r  ra   r`   s         r3   rc   z!TestAnsari.test_result_attributeso  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)Nr%  rz   r:   r=   r>   z!'alternative' must be 'two-sided'r8  fooalternativer(  )rQ   r   r   r9  s       r3   test_bad_alternativezTestAnsari.test_bad_alternativex  s@    3:U3 	4LLRU3	4 	4 	4s	   >Ac                 X   g d}g d}t        j                  ||      \  }}t        j                  ||d      j                  }t        j                  ||d      j                  }|dkD  sJ |dk  sJ t        j                  |t        |      t        |            }t        ||z   d|z   d	
       t        ||dz  d	
       t        |d|z   |dz  z
  d	
       t        j                  ||d      j                  }t        j                  ||d      j                  }	|dk  sJ |	dkD  sJ y )N)r   rz   r   r]   r  r  )r  g      !@      #@g      %@r  g      )@lessr.  greaterffffff?皙?r   -q=r!  r   )r   r  r   r   pmfr   r	   )
rQ   r   r   rN   r  pval_lpval_gprobpval_l_reversepval_g_reverses
             r3   test_alternative_exactz!TestAnsari.test_alternative_exact  s   '.  ,,r2.	4b"&9@@b")<CC}}}} ~~iR#b':T> 	QU3$tAvE: b"&AHHb")DKK$$$$$$r5   zx, y, alternative, expectedr%  r,  r4  g@A?r5  rv   )ry   rz   r:   r=   r>   gG$I?g%I$I?rx   )r:   r=   r>   c                 d    t        j                  |||      j                  }t        ||d       y )Nr.  r8  r!  )r   r  r   r	   )rQ   r_   r  r/  expectedr  s         r3   test_alternative_exact_with_Rz(TestAnsari.test_alternative_exact_with_R  s(    8 ||Aqk:AAhU3r5   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   rz   r   {   rO  r   r4  r.  r5  r   r8  r!  r   r        ?r   )r   r   r0   r  r   r	   )rQ   r   r   r:  r;  r  s         r3   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5r5   N)rd   re   rf   r  r#  r&  rs   rc   r0  r?  r:  r[  r\  rB  rF  rg   r5   r3   r
  r
  M  s    ;;;
9-4%6 [[% fo	>
i	A
_fo	>
_i	A
9fo	>
9i	A	C44&6r5   r
  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestBartlettc           
          t         t        t        t        t        t
        t        t        t        t        g
}t        j                  | \  }}t        |dd       t        |dd       y )NgzU@ /4@r=   gG?)g1g2g3g4g5g6g7g8g9g10r   bartlettr   )rQ   r1   Tr  s       r3   	test_datazTestBartlett.test_data  sG    BBBBC8..$'4A0!4D/15r5   c                 D    t        t        t        j                  dg       y rq   )rX   rY   r   rT  rZ   s    r3   rs   zTestBartlett.test_bad_arg  s    j%..1#6r5   c           
          t         t        t        t        t        t
        t        t        t        t        g
}t        j                  | }d}t        ||       y Nr*  )rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  r   rT  r   rQ   r1   ra   r`   s       r3   rc   z#TestBartlett.test_result_attributes  s9    BBBBC8nnd#,
C,r5   c                     t         t        t        t        t        t
        t        t        t        t        g f}t        t        j                  t        j                  ft        j                  |        y r,   )rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  r
   r-   r   r   rT  )rQ   r1   s     r3   test_empty_argzTestBartlett.test_empty_arg  s>    BBBBC<bffbff%u~~t'<=r5   c                     t        j                  ddgddgg      }t        t        t        j
                  t        |       y Nr   r   rw   ry   )r-   r   rX   rY   r   rT  rJ  r   s     r3   test_1d_inputzTestBartlett.test_1d_input  s/    HHq!fq!f%&j%.."a8r5   N)rd   re   rf   rV  rs   rc   r\  r_  rg   r5   r3   rH  rH    s    67->
9r5   rH  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?r=   gI{]?)rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  r   levener   )rQ   r1   r  r  s       r3   rV  zTestLevene.test_data  sG    BBBBC8,,%4A115D/15r5   c                     t        j                  t        t        t        d      \  }}t        j                  t        t        t        dd      \  }}t        ||       t        ||       y )NrS   centertrimmedr   rf  proportiontocut)r   rc  rJ  rK  rL  r   )rQ   W1pval1W2pval2s        r3   test_trimmed1zTestLevene.test_trimmed1  sM     LLRF;	ELLRI146	EB#E5)r5   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   rr        @rs  g      @rt  g      @g      i@  rg        ?rh  r   r   rS   re  )r-   rP  seedpermutationr   rc  r   )
rQ   r_   r  r   W0pval0rj  rk  rl  rm  s
             r3   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)r5   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   r2  ry  rw   rS   re  median)r-   r  rP  r{  r|  r   rc  r   )rQ   r_   r   r  rj  rk  rl  rm  s           r3   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)r5   c                 v    t        j                  ddd      }t        t        t        j
                  ||d       y Nr   r   r2  皙?)portiontocut)r-   r  rX   	TypeErrorr   rc  r   s     r3   test_bad_keywordzTestLevene.test_bad_keyword  s(    KKAr"iq!#Fr5   c                 v    t        j                  ddd      }t        t        t        j
                  ||d       y Nr   r   r2  trimre  )r-   r  rX   rY   r   rc  r   s     r3   test_bad_center_valuez TestLevene.test_bad_center_value  s(    KKAr"j%,,1VDr5   c                 D    t        t        t        j                  dg       y rq   )rX   rY   r   rc  rZ   s    r3   test_too_few_argszTestLevene.test_too_few_args#  s    j%,,4r5   c           
          t         t        t        t        t        t
        t        t        t        t        g
}t        j                  | }d}t        ||       y rY  )rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  r   rc  r   rZ  s       r3   rc   z!TestLevene.test_result_attributes&  s9    BBBBC8llD!,
C,r5   c                     t        j                  ddgddgg      }t        t        t        j
                  t        |       y r^  )r-   r   rX   rY   r   rc  rJ  r   s     r3   r_  zTestLevene.test_1d_input-  s/    HHq!fq!f%&j%,,A6r5   N)rd   re   rf   rV  rn  r  r  r  r  r  rc   r_  rg   r5   r3   ra  ra    s1    6**$*GE5-7r5   ra  c                       e Zd ZdZedd       Zd Zd Zd Zd Z	d Z
ej                  j                  ej                  d	k  d
      d        Zy)TestBinomTestPzU
    Tests for stats.binomtest as a replacement for deprecated stats.binom_test.
    Nc                 z   t        j                  |       j                  t         j                        } t	        |       dk(  r| d   | d   z   }| d   } nFt	        |       dk(  r-| d   } ||| k  rt        d      t        j                  |      }nt        d      t        j                  | |||      }|j                  S )Nr   r   r   zn must be >= xzIncorrect length for x.ru  r/  )	r-   
atleast_1dastypeint_r   rY   r   	binomtestr   )r_   r   ru  r/  results        r3   binom_test_funczTestBinomTestP.binom_test_func6  s     MM!##BGG,q6Q;!qtA!AVq[!AyAE !122
A677AD}}r5   c                     | j                  dd      }t        |dd       | j                  dd      }t        |dd       | j                  dd	gd
      }t        |dd       y )Nr      g-"^?r  r  i  g`w?i           ?ru  gz?r  r   )rQ   r  s     r3   rV  zTestBinomTestP.test_dataH  sf    ##C-D"7<##C-D"5r:##S#J##6D"5r:r5   c                 >    t        t        | j                  g d       y Nrv   rX   rY   r  rZ   s    r3   test_bad_len_xzTestBinomTestP.test_bad_len_xP  s    j$"6"6	Br5   c                 x    t        t        | j                  dg       t        t        | j                  dgd       y )Nr   r   r   r  rZ   s    r3   
test_bad_nzTestBinomTestP.test_bad_nT  s.     	j$"6"6>j$"6"6Dr5   c                 B    t        t        | j                  ddgd       y )Nr   rq  r  r  rZ   s    r3   
test_bad_pzTestBinomTestP.test_bad_p[  s    j**RH	=r5   c                     | j                  dddd      }t        |d       | j                  dddd      }t        |d       | j                  dddd	      }t        |d
       y )Nr     gUUUUUU?r4  r  g-$Ǻl?r5  gs0,j.?	two-sidedgJfJ"f?r  rQ   ra   s     r3   test_alternativesz TestBinomTestP.test_alternatives_  sn    ""2scv"FC!23""2scy"IC!45""2sc{"KC!34r5   l        z32-bit does not overflowreasonc                 p    t        t        | j                  ddt        j                  j
                         y )Nrt  r:   r  )rX   OverflowErrorr  sys
float_infominrZ   s    r3   test_boost_overflow_raisesz)TestBinomTestP.test_boost_overflow_raisesi  s$     	mT%9%93S^^EWEWXr5   )Nr  r  )rd   re   rf   __doc__staticmethodr  rV  r  r  r  r  r:  r[  skipifr  maxsizer  rg   r5   r3   r  r  2  sk      ";CE=5 [[u,5OPY QYr5   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y4)5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   rC   iΙ gX7?i	ϙ g=?iϙ gybw?rG   r   r  r	   r   rQ   rD   ra   s      r3   test_two_sided_pvalues1z%TestBinomTest.test_two_sided_pvalues1v  s     ooh$7

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

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

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

O$?r5   c                    d}t        j                  ddd      }t        |j                  d|       t        j                  ddd      }t        |j                  d	|       t        j                  d
dd      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       t        j                  ddd      }t        |j                  d|       y )Nr  r;   r2  r  r   ru  gX-h?rC   ry   g㤶y?r  g	y}?r=   g+,?rw   r   r  g      ?r   r   g{Gz?g333333?g<,?r  r  s      r3   test_two_sided_pvalues2z%TestBinomTest.test_two_sided_pvalues2  s    ooa2.

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

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

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

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

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

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

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

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

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

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

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

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

AD1r5   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  rw   r   r   axisc                 H    t         j                  j                  |        S r,   r   binomr9  r   r   ru  s    r3   <lambda>z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s    +0;;??2q!+D*D r5   rG   rC   r=   c                 F    t         j                  j                  |       S r,   r  r  s    r3   r  z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>  s    */++//"a*C r5   )r-   r^   ceilr   r  r9  sumr   intr	   floor)	rQ   krb   dy1ixy2r   ru  s	          @@r3   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*r5   z"alternative, pval, ci_low, ci_high))r4  g$W?r   g?)r5  g}?gGI~?r   )r  g}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   ru  r/  r8  rC   皙?r6  confidence_level	r   r  r	   r   r
   rN   proportion_cilowhighrQ   r/  r  ci_lowci_highra   cis          r3   test_confidence_intervals1z(TestBinomTest.test_confidence_intervals1  sg     oobC4[I

Du5S]]C(5)FG+<5Ir5   ))r4  ga&+w?r   gny?)r5  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 )
Nrw   r   r  r  r   rC   gQ?r'   r  r  r  s          r3   test_confidence_intervals2z(TestBinomTest.test_confidence_intervals2  sg     ooa2+F

Dt4S]]D)5)FG+<4Hr5   zalternative, pval, ci_high))r4  gլ?g̓A?)r5  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  r   rC   r6  r  r   )r   r  r	   r   r  r
   r  r  )rQ   r/  r  r  ra   r  s         r3   !test_confidence_interval_exact_k0z/TestBinomTest.test_confidence_interval_exact_k0  sY     ooatE

Dt45RVVS!t4r5   zalternative, pval, ci_low))r4  r   r   )r5  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  r   rC   r6  r  r   )r   r  r	   r   r  r
   r  r  )rQ   r/  r  r  ra   r  s         r3   %test_confidence_interval_exact_k_is_nz3TestBinomTest.test_confidence_interval_exact_k_is_n  sY     oob"+F

Dt45RWWc"T2r5   z+k, alternative, corr, conf, ci_low, ci_high)rw   r  Tr6  g`?g?)rw   r  Tr'   grt!?g/?)rw   r  Fr6  gVK5?g5dM?)rw   r  Fr'   gXCVu^?g*r[?)rw   r4  Tr6  r   gP-V?)rw   r4  Tr'   r   g^'?)rw   r4  Fr6  r   gS5a?)rw   r4  Fr'   r   g?)rw   r5  Tr6  g!Շ`ⰸ?r   )rw   r5  Tr'   g$x"?r   )rw   r5  Fr6  gW~=?r   )rw   r5  Fr'   g	L?r   )r   r  Tr6  r   gX?)r   r  Fr6  r   gN?)r   r4  Tr6  r   g/<7#9?)r   r4  Fr6  r   gAA?)r   r5  Tr6  r   r   )r   r5  Fr6  r   r   )r   r  Tr6  g7?r   )r   r  Fr6  g؍s?r   )r   r4  Tr6  r   r   )r   r4  Fr6  r   r   )r   r5  Tr6  ghadn?r   )r   r5  Fr6  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  methodr   rC   )r   r  r  r	   r  r  )
rQ   r  r/  corrconfr  r  ra   r  r  s
             r3   test_ci_wilson_methodz#TestBinomTest.test_ci_wilson_method  sX    > ooa2+FFFVD)FG+<4Hr5   c                     t        j                  ddd      }t        |j                  d       t        |j                  d       y )Nry   r  r  r   )r   r  r
   rN   r   r  s     r3   &test_estimate_equals_hypothesized_propz4TestBinomTest.test_estimate_equals_hypothesized_prop#  s2     ooaT*S]]D)SZZ%r5   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 thanr8  r:  r   rY   r   r  )rQ   r  r   s      r3   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 must not be greater than nr8  r  r   r  r  rZ   s    r3   test_invalid_k_too_bigz$TestBinomTest.test_invalid_k_too_big1  s9    ]]:!?A 	*OOBD)	* 	* 	*s	   =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)	Nrw   r   r  r  zmust be in the intervalr8  r   r  r   r  r:  r   rY   r  r  s     r3   test_invalid_confidence_levelz+TestBinomTest.test_invalid_confidence_level6  sI    ooa2-]]:-FG 	3r2	3 	3 	3   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)	Nrw   r   r  r  zmethod must ber8  zplate of shrimpr  r  r  s     r3   test_invalid_ci_methodz$TestBinomTest.test_invalid_ci_method;  sJ    ooa2-]]:-=> 	8%67	8 	8 	8r  c                 t    t        j                  ddd      }t        |j                  |j                         y )Nrw   r   r  r  )r   r  r
   proportion_estimaterN   r  s     r3   
test_aliaszTestBinomTest.test_alias@  s(    ooa2-S,,cmm<r5   N)rd   re   rf   r  r  r  r  r  r:  r[  r\  r  r  r  r  r  r  r  r  r   r  r  rg   r5   r3   r  r  o  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"
*
3
8
=r5   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 )Nrz   r   )gnf	@gDq?r  )r-   r^   r   r   fligner)rQ   r   s     r3   rV  zTestFligner.test_dataG  s.    YYq\!%--BE":"L"$	&r5   c                 8  	 t         j                  j                  d      		fd} |t              } |t              } |t
              }t        j                  |||d      \  }}t        j                  |||dd      \  }}t        ||       t        ||       y )NrD  c                     t        j                  |       dj                  t        |             z  z   j	                         S )Nr  )r-   asarrayrandnr   tolist)gr   s    r3   _perturbz+TestFligner.test_trimmed1.<locals>._perturbS  s1    JJqMEBHHSV,<$<<DDFFr5   rS   re  rg  r   rh  )	r-   rP  r   rJ  rK  rL  r   r  r   )
rQ   r  g1_g2_g3_Xsq1rk  Xsq2rm  r   s
            @r3   rn  zTestFligner.test_trimmed1N  s     YY""3'	G rlrlrl mmCc&AemmCc)479eD$'E5)r5   c                     g d}g d}t        j                  ||dd      \  }}t        j                  |dd |dd d	      \  }}t        ||       t        ||       y )
Nrp  rw  rg  rz  rh  r   r   rS   re  )r   r  r   )rQ   r_   r  r  rk  r  rm  s          r3   r  zTestFligner.test_trimmed2a  s_    66mmAq49;e mmAaGQqWVDeD$'E5)r5   c                 v    t        j                  ddd      }t        t        t        j
                  ||d       y r  )r-   r  rX   r  r   r  r   s     r3   r  zTestFligner.test_bad_keyword{  s(    KKAr"i13Gr5   c                 v    t        j                  ddd      }t        t        t        j
                  ||d       y r  )r-   r  rX   rY   r   r  r   s     r3   r  z!TestFligner.test_bad_center_value  s(    KKAr"j%--AfEr5   c                 D    t        t        t        j                  dg       y rq   )rX   rY   r   r  rZ   s    r3   test_bad_num_argszTestFligner.test_bad_num_args  s    j%--!5r5   c                     t        j                  d      }t        t         j                  t         j                  ft	        j
                  ||dz  g              y )Nrz   r   )r-   r^   r
   r   r   r  r   s     r3   r\  zTestFligner.test_empty_arg  s7    IIaLbffbff%u}}Q1b'ABr5   N)
rd   re   rf   rV  rn  r  r  r  r  r\  rg   r5   r3   r	  r	  E  s(    &*&
*4HF6Cr5   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  rz   )r  r  r   r   r   r4  )		enumerater-   rP  rQ  integersziprangeshufflesplit)expected_resultsseedssir{  rT  xytie_indnum_ties_per_indrb   r   jr_   r  s                r3   mood_cases_with_tiesr,    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;
        r.  gؗҜ<r!  Nr   moodr	   )rQ   r_   r  r/  stat_expectp_expectrN   r   s           r3   test_against_SASzTestMood.test_against_SAS  s3    < "JJq!E	6YU;&u5r5   zalternative, expected))r  )3oXQ?gpL?)r4  )r5  gԣl?)r5  )r5  gpL?c                 \    g d}g d}t        j                  |||      }t        ||       y )Nr  r  r.  r0  )rQ   r/  rA  r_   r  ra   s         r3   test_against_SAS_2zTestMood.test_against_SAS_2  s,    <=jjA;7X&r5   c                 H   t         j                  j                  d       t         j                  j                  dd      }t         j                  j                  dd      }t	        j
                  ||      \  }}t	        j
                  ||      \  }}t        ||g| |g       y )Nry  r   r   r]   )r-   rP  r{  r  r   r1  r   )rQ   r   r   z1p1z2p2s          r3   test_mood_order_of_argsz TestMood.test_mood_order_of_args  sx     			tYY__R#YY__R#B#BB#B!2r(bS"I6r5   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   )r]   r   r  g4g^}E	?)r-   r   shaper   r   r1  )rQ   r   r   s      r3   test_mood_with_axis_nonez!TestMood.test_mood_with_axis_none  s[    4	H XXb\XXb\!%**R$"?#1="A	Cr5   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 )Nrz   ry  r   r]   r   r  )	r-   rP  r{  r  r   r1  r"  r   	transpose)rQ   nyr   r   	z_vectestpval_vectestr+  rb   s           r3   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r5   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   rz   r:   ry  rw   r  r   r   r   )r-   rP  r{  r  r"  r   r1  r   )rQ   r?  r   r   r  rD  rE  axes_idxrb   r+  slice1slice2s               r3   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r5   c                 F    t        t        t        j                  dgg        y rq   )rX   rY   r   r1  rZ   s    r3   test_mood_bad_argzTestMood.test_mood_bad_arg0  s     	j%**qc26r5   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   r   g      ?r  r.  r4  r5  Hz>r!  r   r   zalternative must be...r8  z	ekki-ekki)r-   rP  r{  r   r   r0   r1  r	   r:  r   rY   )	rQ   r_   r  stat1r:  stat2r<  stat3p3s	            r3   test_mood_alternativezTestMood.test_mood_alternative5  s    
		qJJNNCN0JJNNCN0JJq!=	rJJq!8	rJJq!;	r&&&&&&AD)BqD!A1H%]]:-EF 	6JJq!5	6 	6 	6s   D//D8r/  )r  r4  r5  c                     t         j                  j                  d      }|j                  d      }|j                  d      }t	        j
                  |||      }t        |j                  |j                  f|       y )Nl	   hTt fU6H~ )r   r   )r]   r   r.  )	r-   rP  rQ  r   r   r1  r
   rN   r   )rQ   r/  rT  r   r   ra   s         r3   test_resultzTestMood.test_resultG  s`    ii##$KL  )  )jjR[9cmmSZZ0#6r5   N)rd   re   rf   r:  r[  r\  r,  r4  r7  r=  r@  rF  rK  rM  rT  rV  rg   r5   r3   r.  r.    s    [[C135656@ [[4@A'A'7C8F.J87
6$ [[],LM7 N7r5   r.  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  rO  Fr   )g+/gY3gtg5Z0gFjg!2gsR{ܿg7Կg>hǿgcz隇gcz隇?g>h?g7?gsR{?g!2?gFj?g5Z0?gt?gY3?g+/?T)gƝV?g?gà?)r   r   r0   probplotr	   r-   sort)rQ   r_   osmosrosm_expectedra   res_fitres_fit_expecteds           r3   rV   zTestProbplot.test_basicS  sw    JJNNN7>>!/SG
 	RWWQZ(\*~~aT2W?!12r5   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@ rO  Fsparamsr   r   rg   )r   r   r0   r\  r	   )
rQ   r_   osm1osr1osm2osr2osm3osr3r^  r_  s
             r3   test_sparams_keywordz!TestProbplot.test_sparams_keywordb  s    JJNN&N9 ^^At?
d^^Aqe<
d^^Aru=
dd#d#d#d#>>!RU;Sr5   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  rZ  rO  Ft)rw   )r   r  re  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)rQ   qs     r3   rr  z7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppf|  s    zz~~aQ~//r5   N)rd   re   rf   r  rr  rg   r5   r3   custom_distrp  z  s
    H0r5   rt  )r   rd  )r  r   )	r   r   r0   r\  rn  r	   rX   rY   AttributeError)rQ   r_   rf  rg  rh  ri  rt  s          r3   test_dist_keywordzTestProbplot.test_dist_keywordp  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#r5   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  rw   r   t rO  plotF)r   r{  r   )pltfigureadd_subplotr   rn  r0   r\  closer   r   r	   )
rQ   figr_   res1fitres1res2fitres2res3res4axs
             r3   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"-		r5   c                 H    t        t        t        j                  dgd       y r  )rX   rY   r   r\  rZ   s    r3   test_probplot_bad_argsz#TestProbplot.test_probplot_bad_args  s    j%..1#<MNr5   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 )NFr[  Tr   )r
   r   r\  r-   r   r   rZ   s    r3   
test_emptyzTestProbplot.test_empty  ss    U^^BE2hhrlBHHRL1	3U^^BD1xx|RXXb\2vvrvvs+-	.r5   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   Tr[  r   )r-   r   r
   r   r\  r   r   rZ   s    r3   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)rd   re   rf   rV   rl  rv  r:  r[  r  have_matplotlibr  r  r  r  rg   r5   r3   rX  rX  Q  sM    3<$( [[O+OD E0O.2r5   rX  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g dg dg dg      d        Zd Zy)TestWilcoxonc                 *   t        t        t        j                  dgddg       t        t        t        j                  ddgddgd       t        t        t        j                  ddgddgd       t        t        t        j                  dgdz  d       y )Nr   r   dummyr.  r   xyzmode)rX   rY   r   wilcoxonrZ   s    r3   test_wilcoxon_bad_argz"TestWilcoxon.test_wilcoxon_bad_arg  so     	j%..1#1v>j%..1a&1a&'Jj%..1a&1a&")	+j%..1#b&uEr5   c                     t        j                  d      }t        t        t        j
                  ||dd       t        t        t        j
                  ||dd       t        t	        j
                  ||dd      d       y )Nr  wilcoxapproxr  prattzsplit)g     @Z@r   )r-   r^   rX   rY   r   r  r
   r   s     r3   test_zero_diffzTestWilcoxon.test_zero_diff  s_    IIbMj%..!Q#	%j%..!Q#	% 	U^^Aq(B#	%r5   c                     g d}g d}t               5 }|j                  t        d       t        j                  ||dd      }d d d        t        d       y # 1 sw Y   xY w)	Nr%  )r   r   rw   rz   Sample size too smallr  r  r  zero_methodr  )r   g|N?)r   r  rD  r   r  r	   )rQ   r_   r  r  ra   s        r3   
test_prattzTestWilcoxon.test_pratt  sa       	KCJJ{,CJD..A7JC	K 	78	K 	Ks   1AA"c                     g d}t        j                  |dd      }t        j                  |dd      }t        j                  |dd      }y )N)r   r   rw   r   r   rw   r   r   r   r   r   r  r  r  r  r  )r   r  )rQ   arrr  s      r3   test_wilcoxon_arg_typez#TestWilcoxon.test_wilcoxon_arg_type  s?     1NN3G(CNN3H8DNN3H8Dr5   c                 F   g d}t        dd      }t        j                  t        ||      D cg c]  \  }}|g|z   c}}      }t        j                  |j
                        }t        j                  ||dd      \  }}t        |d       t        |d       t        j                  ||d	d      \  }}t        |d
       t        |d       t        j                  ||dd      \  }}t        |d       t        |d       t        j                  g d      }t        j                  g d      }t        j                  ||dd      \  }}t        |d       t        |dd       t        j                  ||dd      \  }}t        |d       t        |dd       y c c}}w )N)	r   ry   r  r]   r>   ry   rz   r   r   rz   r  r  r  i  g.i?r  i  gFYv]Uj?r  iG  g%^ Ez?r  r   r~  r        y   r     r     p         w   r  r     r  r  s   r  r     F
correctionr  r  g^҂<?r   rC   Tg:b+?)r"  r-   concatenater!  zerosr   r   r  r	   r   r
   )	rQ   freqnumsur   r_   r  rU  ru  s	            r3   test_accuracy_wilcoxonz#TestWilcoxon.test_accuracy_wilcoxon  sV   ,R|NND$@1QC!G@AHHQVV~~aG(;1301~~aH8<1301~~aH8<13+, HHQRHHQR~~au8D1Q940~~at(C1Q9401 As   F
c                     t        j                  g d      }t        j                  g d      }t        j                  ||dd      }d}t	        ||       y )Nr  r  Fr  r  r*  )r-   r   r   r  r   )rQ   r_   r  ra   r`   s        r3   test_wilcoxon_result_attributesz,TestWilcoxon.test_wilcoxon_result_attributes  sC    HHQRHHQRnnQe(C,
C,r5   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 r]   r  r  r   exact
zstatistic)r-   rP  rQ  r   r  r   rr  r   r	   r  hasattr)rQ   rT  r_   r  ra   r   s         r3   test_wilcoxon_has_zstatisticz)TestWilcoxon.test_wilcoxon_has_zstatistic  s    ii##K0zz"~szz"~1nnQ1jjnnSZZ\*,nnQ03---nnQ"3----r5   c                     t        j                  dgdz  d      \  }}d}t        |d       t        ||d       t        j                  dgdz  d	d
      \  }}d}t        |d       t        ||d       y )Nr  r   r  r  g4IťY?r   r   rC   Tr  gc2_?)r   r  r
   r	   )rQ   statru  
expected_ps       r3   test_wilcoxon_tiezTestWilcoxon.test_wilcoxon_tie	  sp     ..#(;a 
T1:D1..#8La 
T1:D1r5   c                 z   g d}g d}t               5 }|j                  t        d       t        j                  ||dd      \  }}d d d        t        d       t        d	d
       t               5 }|j                  t        d       t        j                  ||ddd      \  }}d d d        t        |d       t        |dd
       t               5 }|j                  t        d       t        j                  ||dd      \  }}d d d        t        |d       t        |dd
       t               5 }|j                  t        d       t        j                  ||ddd      \  }}d d d        t        |d       t        |dd
       y # 1 sw Y   GxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   IxY w)N)
}   r  r     r  r  r  r  r  r  )
r  z   r  r  r  |   rD     r     r  r  r4  r  r/  r  r5  g13}?r:   rJ   T)r/  r  r  g7a%?r5  g?gڏoJT?)r   r  rD  r   r  r
   r   )rQ   r_   r  r  r   ru  s         r3   test_onesidedzTestWilcoxon.test_onesided  s    ?>  	KCJJ{,CJD>>!QFJDAq	K 	QAy!4  	1CJJ{,CJD>>!QFt'/1DAq	1 	QAy!4  	NCJJ{,CJD>>!QIHMDAq	N 	QAy!4  	1CJJ{,CJD>>!QI$'/1DAq	1 	QAy!41	K 	K	1 	1	N 	N	1 	1s/   4F35F4F%45F1FF"%F.1F: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   )rQ   r   pmf1pmf2s       r3   test_exact_basiczTestWilcoxon.test_exact_basicB  sa    q" 	2A&q)D'*DAaCQD	2TA&%dD1	2r5   c                    t        j                  g d      }t        j                  g d      }t        j                  ||dd      \  }}t	        |dd       t        j                  ||d	d      \  }}t	        |d
d       t        j                  ||dd      \  }}t	        |dd       t        j
                  dd      dz   }t        j
                  ddd      }t        j                  ||dd      \  }}t	        |dd       t        j                  ||d	d      \  }}t	        |dd       t        j                  ||dd      \  }}t	        |dd       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  r  g֔  ?r:   rJ   r4  gYJ?r5  g*  ?r   r  r  r   g(?g(?gS?)r-   r   r   r  r   r^   )rQ   r_   r  r  ru  s        r3   test_exact_pvalzTestWilcoxon.test_exact_pvalJ  s'   HH # $HH $ %~~a'J1Ay!4~~aWE1Ay!4~~a	H1Az15IIas"IIb!R ~~a'J1Ay!4~~aWE1Ay!4~~a	H1Ay!4r5   r_   )r   r   rw   )r   r   r  r  rz   )r   r   rw   r  r2  ir=   r>   c                     t        j                  |      \  }}t        j                  |      }||dkD     j	                         }t        ||       t        |d       y Nr   r   )r   r  r-   r   r  r
   )rQ   r_   r   ru  wtrues        r3   test_exact_p_1zTestWilcoxon.test_exact_p_1f  sJ     ~~a 1HHQK!a%QQr5   c                 r   t        j                  dd      dz   }t        j                  ddd      }t        t        j                  ||      t        j                  ||d             t        j                  dd      }t               5 }|j                  t        d	       t        j                  |      \  }}d d d        t        t        j                  |d
      f       t        j                  dd      }t        t        j                  |      t        j                  |d
             y # 1 sw Y   wxY w)Nr   r  r  r   r  r  r?   zExact p-value calculationr  r  r   r  )r-   r^   r
   r   r  r   r  rD  )rQ   r_   r  r  r  r   ru  s          r3   	test_autozTestWilcoxon.test_autop  s    IIas"IIb!R U^^Aq)^^Aqw7	9 IIa  	%CJJ{,GJH>>!$DAq	% 	U^^AH51v> IIaU^^A&qx(HI	% 	%s   0D--D6N)rd   re   rf   r  r  r  r  r  r  r  r  r  r  r  r:  r[  r\  r  r  rg   r5   r3   r  r    sw    F	%9E1:-.2&$5L258 [[S;#5#@#B CCJr5   r  c                   $    e Zd Zd Zd Zd Zd Zy)	TestKstatc                    t         j                  j                  d       t         j                  j                  d      }dD cg c]  }t	        j
                  ||       }}g d}t        ||d       t	        j                  |d      }t	        j                  |d	      }t	        j                  |d
      }t        |||f|d d dd       y c c}w )Ni}  rZ  r%  )gHQ,?glZ)rI?g88}?gcJN?r  rC   r   )momentr   rw   r   g{Gz?{Gz?r  )r-   rP  r{  r  r   kstatr	   r  )rQ   rR   r   momentsrA  m1m2m3s           r3    test_moments_normal_distributionz*TestKstat.test_moments_normal_distribution  s    
		uyyu%1=>A5;;tQ'>>>5 \\$q)\\$q)\\$q)Rhsm$TJ ?s   Cc                 B    t        t        t        j                  g        y r,   )rX   rY   r   r  rZ   s    r3   r[   zTestKstat.test_empty_input  s    j%++r2r5   c                     t        j                  d      }t         j                  |d<   t        t	        j
                  |      t         j                         y NrE   r:   r-   r^   r   r
   r   r  rr   s     r3   r   zTestKstat.test_nan_input  3    yy~&&QU[[&/r5   c                 ~    t        j                  d      }dD ]#  }t        t        t        j
                  ||       % y )Nr   )r   g/$@r  )r-   r^   rX   rY   r   r  rQ   rR   r   s      r3   test_kstat_bad_argzTestKstat.test_kstat_bad_arg  s0    yy} 	>A*ekk41=	>r5   N)rd   re   rf   r  r[   r   r  rg   r5   r3   r  r    s    K30>r5   r  c                       e Zd Zd Zd Zd Zy)TestKstatVarc                 B    t        t        t        j                  g        y r,   rX   rY   r   kstatvarrZ   s    r3   r[   zTestKstatVar.test_empty_input  s    j%.."5r5   c                     t        j                  d      }t         j                  |d<   t        t	        j
                  |      t         j                         y r  r  rr   s     r3   r   zTestKstatVar.test_nan_input  r  r5   c                 P    dg}d}t        t        t        j                  ||       y )Nr   r   r  r  r  s      r3   rs   zTestKstatVar.test_bad_arg  s     sj%..$!<r5   N)rd   re   rf   r[   r   rs   rg   r5   r3   r  r    s    60=r5   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 Nrz     ry  rO  r4   r_   rZ   s    r3   setup_methodzTestPpccPlot.setup_method      "13WEIr5   c                     d}t        j                  | j                  dd|      \  }}g d}t        |t	        j
                  dd|             t        ||       y )Nrz   r   N)g9%	?gxM _?g";9?g®XZ?g?num)r   	ppcc_plotr_   r	   r-   r  )rQ   r  svalsppccppcc_expecteds        r3   rV   zTestPpccPlot.test_basic  sK    oodffc2;t%r{{3:;m,r5   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 )Nr  r   tukeylambdar  g#B;rC   )r   r	  r_   r  r	   )rQ   svals1ppcc1svals2ppcc2svals3ppcc3s          r3   	test_distzTestPpccPlot.test_dist  s    RmLR-2->->@U3u51R8U3u51r5   rw  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  rz  )r|  r}  r~  r   r	  r_   delaxesr  rQ   r  r  s      r3   r  zTestPpccPlot.test_plot_kwarg  sm     jjl__S!Rc2B __S!Rb1		r5   c                     t        t        t        j                  | j                  dd       t        t        t        j                  g dddd       y )Nr   r   rv   r  r  )rX   rY   r   r	  r_   rZ   s    r3   test_invalid_inputsz TestPpccPlot.test_invalid_inputs  s5    j%//4661a@ 	j%//9a,	.r5   c                     t        j                  g dd      \  }}t        |t        j                  ddd             t        |t        j
                  dt                     y )Nr   r   r  r  r   )r   r	  r	   r-   r  r  float)rQ   r
  r  s      r3   r  zTestPpccPlot.test_empty  sF     oob!Q/tr{{1aR89bhhr78r5   N)rd   re   rf   r  rV   r  r:  r[  r  r  r  r  r  rg   r5   r3   r  r    sH    J-
2 [[O+OD
 E
.9r5   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  )rX   rY   r   ppcc_maxrr   s     r3   test_ppcc_max_bad_argz!TestPpccMax.test_ppcc_max_bad_arg  s    sj%..$=NOr5   c                     t         j                  j                  ddddd      dz   }t        t        j                  |      dd	
       y )Nffffffr   r  '   r        @{r=   rJ   )r   r  r0   r   r!  r   s     r3   test_ppcc_max_basiczTestPpccMax.test_ppcc_max_basic  sF    !!$ASu/6 " 8:=>ENN1-/CQOr5   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 )Nr$  r   r  r%  r&  r   r'  r  r  r(  rz   rJ   )r   r  r0   r!  r   )rQ   r_   max1max2max3s        r3   r  zTestPpccMax.test_dist  s    !!$ASu/6 " 8:=> ~~am4~~ae&7&78D"6BD"6B ~~a D"6Br5   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 )Nr$  r   r  r%  r&  r   r'  )r   r   r  )brack)r   r   r(  r=   rJ   )r   r   )r   r  r0   rX   rY   r!  r   r   s     r3   
test_brackzTestPpccMax.test_brack  sx    !!$ASu/6 " 8:=>j%..!?KENN1F;0!	= 	ENN1G<0!	=r5   N)rd   re   rf   r"  r)  r  r0  rg   r5   r3   r  r    s    P
P
C	=r5   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestBoxcox_llfc                 $   t         j                  j                  ddd      }d}t        j                  ||      }|j                   dz  t        j                  t        j                  |j                         dz              z  }t        ||       y )Nr%  r   1  r   r   r   r   rq  r   )
r   r   r0   
boxcox_llfr   r-   r.   r  rU   r	   )rQ   r_   lmbdallfllf_expecteds        r3   rV   zTestBoxcox_llf.test_basic  sk    JJNN2ENBua(w|bffRVVAEEGQJ-?&@@\*r5   c                     t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        |            }t        ||d       y Nr   r   r4  r5  r   r8  rC   )r   r   r0   r6  listr	   rQ   r_   r7  r8  llf2s        r3   test_array_likezTestBoxcox_llf.test_array_like  sS    JJNN%N@ua(tAw/T.r5   c                    t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        j
                  ||g      j                        }t        ||g|d       y r;  )r   r   r0   r6  r-   vstackrU  r	   r=  s        r3   test_2d_inputzTestBoxcox_llf.test_2d_input  sh     JJNN%N@ua(ryy!Q'8':':;c
Du5r5   c                 h    t        t        j                  t        j                  dg                    y rq   )r   r-   isnanr   r6  rZ   s    r3   r  zTestBoxcox_llf.test_empty(  s     ))!R012r5   c                 P    g d}t        j                  d|      }t        |d       y )N)g     h@      m@rF  g     x@ig#:x1)r   r6  r	   )rQ   rR   r8  s      r3   test_gh_6873zTestBoxcox_llf.test_gh_6873+  s&     ,r4(/0r5   N)rd   re   rf   rV   r?  rB  r  rG  rg   r5   r3   r2  r2    s    +/631r5   r2  (  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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 )Nrz   r   rZ  rO  r   r7  r   r   r   r   )
r4   r   r   r	   r-   r.   r<  r   r
   r  )rQ   r_   xts      r3   test_fixed_lmbdazTestBoxcox.test_fixed_lmbdak  s    abu=A\\!1%AE"\\!2&A!G$\\!1%BFF1I& \\$q'+BFF1I& \\"''"+q)R"&r5   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   rJ   )r   r   r0   r   r   )rQ   r7  r_   x_invrL  r   s         r3   test_lmbda_NonezTestBoxcox.test_lmbda_None}  sW     JJNNrDNAUQ5&)\\%(
FFBJ:r5   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 )Nry  rz   r   rO  r  )alphagx@gv[%@r7  gxˉEk?g8Bhk @r=   r  r]   r  g\?gx̡&@r!   g7(U@gp:sY@)r-   rP  r   r4   r   r   r	   )rQ   rT  r_   r  rm   s        r3   
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":;r5   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   )r-   r   rX   rY   r   r   r   s     r3   test_boxcox_bad_argzTestBoxcox.test_boxcox_bad_arg  s_    HHb!Wj%,,2j%,,!>j%,,1#s0DEr5   c                 Z    t        t        j                  g       j                  dk(         y N)r   )r   r   r   r?  rZ   s    r3   r  zTestBoxcox.test_empty  s    R &&$./r5   c                 X    t        j                  t              \  }}t        |dd       y )NgsHjdrr   rC   r   r   _boxcox_datar	   )rQ   r  lams      r3   rG  zTestBoxcox.test_gh_6873  s"    l+3 	YT2r5   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    r3   	optimizerzBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizer      ++C3<> >r5   r7  rf  r   r   )r   r   rZ  )rQ   r\  rf  r  r7  s    `   r3   $test_bounded_optimizer_within_boundsz/TestBoxcox.test_bounded_optimizer_within_bounds  sA    	> <<DIN5ay5,6!9,,,,,r5   c                     t        j                  t        d       \  }}|dz   |dz   fddifd}t        j                  t        d |      \  }}||k7  sJ t        |d          y )	NrK  r  r   xatolr8  c                 6    t        j                  | d      S )Nra  )r\  r  optionsrb  )re  r\  rm  s    r3   rf  zPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizer  s!    ++C3<gO Or5   rh  r   rY  )rQ   r  r7  rf  lmbda_boundedr\  rm  s        @@r3   2test_bounded_optimizer_against_unbounded_optimizerz=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizer  su    
 <<D95 #+uqy)E"	O
 !<<D2;==%%%vay1r5   rf  )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 callabler8  rh  r:  r   rY   r   r   rZ  rQ   rf  s     r3   $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rq   rg   )re  s    r3   rf  zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizer  s    r5   z;`optimizer` must return an object containing the optimal...r8  rh  rs  )rQ   rf  r;  s      r3   %test_bad_optimizer_value_raises_errorz0TestBoxcox.test_bad_optimizer_value_raises_error  sF    
	 P]]:W5 	HLLTYG	H 	H 	Hs   AAN)rd   re   rf   rM  rP  rS  rU  r  rG  r:  r[  r\  ri  ro  ru  rx  rg   r5   r3   rI  rI  i  s|    '$;<"F03 [[X'FG- H-2* [[[*>?H @H

Hr5   rI  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
d
 Zd Zy)TestBoxcoxNormmaxc                 0    t        ddd      dz   | _        y Nrz   r   rZ  rO  r   rZ   s    r3   r  zTestBoxcoxNormmax.setup_method      "12EBQFr5   c                 ^    t        j                  | j                        }t        |dd       y )Nm?r   rC   r   boxcox_normmaxr_   r	   rQ   r   s     r3   test_pearsonrzTestBoxcoxNormmax.test_pearsonr  s"    %%dff-t4r5   c                     t        j                  | j                  d      }t        |dd       t        j                  | j                        \  }}t        ||       y )Nmler  	.!?r   rC   )r   r  r_   r	   r   )rQ   r   r  maxlog_boxcoxs       r3   test_mlezTestBoxcoxNormmax.test_mle  sG    %%dffU;t4 !<</=v.r5   c                 f    t        j                  | j                  d      }t        |ddgd       y )Nr   r  r  r  r   rC   r  )rQ   
maxlog_alls     r3   test_allzTestBoxcoxNormmax.test_all  s)    ))$&&?

Xx$8tDr5   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`  rb  rd  s    r3   rf  zITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer  rg  r5   )r  rf  r   r   )r   r  r_   r-   r   )rQ   r  r\  rf  r   s     `  r3   ri  z6TestBoxcoxNormmax.test_bounded_optimizer_within_bounds  s[    	> %%dffV09;vvfQi&()))vvfvay()))r5   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 )	Nrz   r  i  c                       e Zd Zy)?TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.MyResultN)rd   re   rf   rg   r5   r3   MyResultr    s    r5   r  c                     g }D ]  }|j                   | |                      }t        j                  |         |_        |S r,   )appendr-   argminr_   )re  objsr7  ra   r  lmbda_ranges       r3   rf  z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizer  sG    D$ (CJ'(*C		$0CEJr5   )rf  r   )r   r  r_   r-   roundr  r	   )rQ   r7  lmbda_roundedrf  lmbda2r  r  s        @@r3   test_user_defined_optimizerz-TestBoxcoxNormmax.test_user_defined_optimizer  s    $$TVV,*kk-"4mD6H$O	 		 %%dff	Bt,r5   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)r/  rf  z,`brack` must be None if `optimizer` is givenr8  )g       rq  )r   rc  r   r  r_   r:  r   rY   rt  s     r3   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N)rd   re   rf   r  r  r  r  r:  r[  r\  ri  r  r  rg   r5   r3   rz  rz    sd    G5/E [[X'AB[[X'FG	* H C	*-,6r5   rz  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 r  r   rZ   s    r3   r  zTestBoxcoxNormplot.setup_method'  r  r5   c                     d}t        j                  | j                  dd|      \  }}g d}t        |t	        j
                  dd|             t        ||       y )Nrz   r  r   r  )g!X4}?g΁i?g-	15?gW$?g\ܱ{?r  )r   boxcox_normplotr_   r	   r-   r  )rQ   r  lmbdasr  r  s        r3   rV   zTestBoxcoxNormplot.test_basic*  sM    ,,TVVS"B%C ;<m,r5   rw  r  c                 N   t        j                         }|j                  d      }t        j                  | j
                  ddt                |j                  |       |j                  d      }t        j                  | j
                  dd|       t        j                          y r  )r|  r}  r~  r   r  r_   r  r  r  s      r3   r  z"TestBoxcoxNormplot.test_plot_kwarg2  sq     jjl__S!dffc2C8B __S!dffc2B7		r5   c                     t        t        t        j                  | j                  dd       t        t        t        j                  ddgdd       y )Nr   r   r   )rX   rY   r   r  r_   rZ   s    r3   r  z&TestBoxcoxNormplot.test_invalid_inputs?  s6    j%"7"7AFj%"7"7"a!QGr5   c                 ^    t        t        j                  g dd      j                  dk(         y r  )r   r   r  r   rZ   s    r3   r  zTestBoxcoxNormplot.test_emptyE  s$    %%b!Q/449:r5   N)rd   re   rf   r  rV   r:  r[  r  r  r  r  r  rg   r5   r3   r  r  &  sD    J- [[O+OD
 E
H;r5   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   r4  r5  r   r8  rC   )r   r   r0   yeojohnson_llfr<  r	   r=  s        r3   r?  z"TestYeojohnson_llf.test_array_likeK  sS    JJNNN?""5!,##E473T.r5   c                    t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        j
                  ||g      j                        }t        ||g|d       y r;  )r   r   r0   r  r-   rA  rU  r	   r=  s        r3   rB  z TestYeojohnson_llf.test_2d_inputR  sf    JJNN%N@""5!,##E299aV+<+>+>?c
Du5r5   c                 h    t        t        j                  t        j                  dg                    y rq   )r   r-   rD  r   r  rZ   s    r3   r  zTestYeojohnson_llf.test_emptyY  s     --a456r5   N)rd   re   rf   r?  rB  r  rg   r5   r3   r  r  I  s    /67r5   r  c                   x   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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 )NrZ  rz   r   rO  r   r   rK  r   r   rw   )	r-   rP  r   r4   r   r   
yeojohnsonr	   r.   )rQ   rT  r_   rL  posnegs         r3   rM  zTestYeojohnson.test_fixed_lmbda_  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7r5   r7  )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 )Nr   r   r   r   r   )r-   r  r?  r   absspacingexppower)r_   r7  rO  r  s       r3   _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Lr5   i N  r&  r   r   )r   r   r   r  r!  r   rJ   )r-   rP  r{  normalr   r  r	   r   linalgr   rS   rU   )rQ   r7  r  	n_samplesr_   rO  rL  r   s           r3   rP  zTestYeojohnson.test_lmbda_None  s    
	& 	
		wII!9>"1e,%%e,
FD1Aryy~~a"f5	A1MArwwy!4Arvvx3r5   c                 Z    t        t        j                  g       j                  dk(         y rW  )r   r   r  r?  rZ   s    r3   r  zTestYeojohnson.test_empty  s       $**d23r5   c                     t         j                  j                  ddd      }t        j                  |      \  }}t        j                  t	        |            \  }}t        ||d       y )Nr   r   r4  r5  r8  rC   )r   r   r0   r  r<  r	   )rQ   r_   xt1r  xt2s        r3   r?  zTestYeojohnson.test_array_like  sR    JJNNN?!!!$Q!!$q'*QSu-r5   r   c                     t        j                  d|      }d}t        j                  t        |      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nr:   r   z>Yeo-Johnson transformation is not defined for complex numbers.r8  )r-   r^   r:  r   rY   r   r  )rQ   r   r_   err_msgs       r3   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 )Nr>   r   rO  rC   )r-   r^   float64r   r  r	   )rQ   r   x_intx_floatxt_int	lmbda_intxt_floatlmbda_floats           r3   test_input_dtype_integerz'TestYeojohnson.test_input_dtype_integer  sh    		!5)))ARZZ0!,,U3	 % 0 0 9+t4	;T:r5   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   r   rC   )r-   r   r   r  r   r	   )rQ   r_   xt_yeolam_yeoxt_boxlam_boxs         r3   test_input_high_variancez'TestYeojohnson.test_input_high_variance  sY    HH " #  **1-,,q1u-T2t4r5   N)rd   re   rf   rM  r:  r[  r\  rP  r  r?  r-   	complex64
complex128r  int8uint8int16int32r  r  rg   r5   r3   r  r  ]  s    -8^ [[Wn5"4 6"4H4. [[Wr||R]]&CD  E  [[Wrww"((BHH&MN; O;5r5   r  c                       e Zd Zd Zd Zd Zy)TestYeojohnsonNormmaxc                 0    t        ddd      dz   | _        y r|  r   rZ   s    r3   r  z"TestYeojohnsonNormmax.setup_method  r}  r5   c                 ^    t        j                  | j                        }t        |dd       y )Ng?r   rC   )r   yeojohnson_normmaxr_   r	   r  s     r3   r  zTestYeojohnsonNormmax.test_mle  s"    ))$&&1t4r5   c                 j    g d}t        j                  |      }t        j                  |dd      sJ y )N)gffffff@g r   rq  ffffff?g333333@rx  gffffff@g?g@rv  rr  g"@r  g      gzG?r  r!  )r   r  r-   allclose)rQ   r_   r7  s      r3   test_darwin_examplez)TestYeojohnsonNormmax.test_darwin_example  s/    ((+{{5%d333r5   N)rd   re   rf   r  r  r  rg   r5   r3   r  r    s    G54r5   r  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d	 Zd
 Z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ej                  ej.                  dddfej                  ej.                  dddfej                  ej.                  dddfg      d        Zej                  j                  dej                  d ej2                  g d       ej2                  ddg      dfej                  d ej2                  g d      ej4                  dz  dz  z   ej2                  dd g      dfej                  d! ej2                  g d"       ej2                  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j2                  d*d+dd,d-d.ej.                  gd/d0d1d2ej.                  d3d4gg      g      ej                  j                  dej                  ej                  ej                  g      d5               Zej                  j                  d)d*d+dd,d-d.ej.                  g ej2                  d*d+dd,d-d.ej.                  gd/d0d1d2ej.                  d3d4gg      g      ej                  j                  dej                  ej                  ej                  g      d6               Z d7 Z!d8 Z"d9 Z#y:);TestCircFuncsztest_func,expectedgA:wv?g @pz?gE|2@c                 ^    t        j                  g d      }t         ||d      |d       y Nc  rz   r   r  r   ^  h  r  rO  rC   r-   r   r	   rQ   	test_funcrA  r_   s       r3   test_circfuncszTestCircFuncs.test_circfuncs  s&    
 HH./	!#.tDr5   c                    t        j                  g d      }|j                         }t        j                  |d      }t        ||d       |t         j                  z  dz  j                         }|dz  }t        j                  |d      }t        ||d       |j                         }t        j                  |d      }t        ||d       y )	N)r  r2  r  r     g     4@g3333333@r  r  r   rC   r  rq  r  )r-   r   rS   r   circmeanr	   pirT   circvarrU   circstd)rQ   r_   M1M2V1V2S1S2s           r3   test_circfuncs_smallz"TestCircFuncs.test_circfuncs_small  s    HH56VVX^^AC(BT*gck  "W]]13'BT*UUW]]13'BT*r5   ztest_func, numpy_funcc                     t        j                  dgdz  dgdz  z         } ||      } ||      }t        ||d       y )Ng˛ɦv9?r   guv9?r   g:0yU>r!  r  )rQ   r  
numpy_funcr_   circstatr  s         r3   test_circfuncs_closez"TestCircFuncs.test_circfuncs_close	  sG     HH)*R/3F2G#2MMNQ<A&t4r5   c                 |   t        j                  g dg dg dg      }t        j                  |d      }t        j                  |j	                         d      }t        ||d       t        j                  |dd	      }t        |j                  d
         D cg c]  }t        j                  ||   d       }}t        ||d       t        j                  |dd
	      }t        |j                  d         D cg c]   }t        j                  |d d |f   d      " }}t        ||d       y c c}w c c}w )Nr  _  r=   ry   `  r;   ]  ie  r;   r>   if  ry   id  r  r  rB   rC   r   r  r  r   )r-   r   r   r  ravelr	   r"  r?  )rQ   r_   r  r  rb   s        r3   test_circmean_axisz TestCircFuncs.test_circmean_axis	  s    HH/..0 1 ^^AC(^^AGGIC0BU+^^ACa06;AGGAJ6GHennQqT,HHBU+^^ACa09>qwwqz9JKAennQq!tW3/KKBU+ I L   !D4>%D9c                 |   t        j                  g dg dg dg      }t        j                  |d      }t        j                  |j	                         d      }t        ||d       t        j                  |dd	      }t        |j                  d
         D cg c]  }t        j                  ||   d       }}t        ||d       t        j                  |dd
	      }t        |j                  d         D cg c]   }t        j                  |d d |f   d      " }}t        ||d       y c c}w c c}w Nr  r  r  r  r  gdy=rC   r   r	  r   )r-   r   r   r  r
  r	   r"  r?  )rQ   r_   r  r  rb   s        r3   test_circvar_axiszTestCircFuncs.test_circvar_axis(	      HH/..0 1 ]]13']]17793/BU+]]13Q/5:1771:5FGemmAaDs+GGBU+]]13Q/8=aggaj8IJ1emmAadG#.JJBU+ H Kr  c                 |   t        j                  g dg dg dg      }t        j                  |d      }t        j                  |j	                         d      }t        ||d       t        j                  |dd	      }t        |j                  d
         D cg c]  }t        j                  ||   d       }}t        ||d       t        j                  |dd
	      }t        |j                  d         D cg c]   }t        j                  |d d |f   d      " }}t        ||d       y c c}w c c}w r  )r-   r   r   r  r
  r	   r"  r?  )rQ   r_   r  r  rb   s        r3   test_circstd_axiszTestCircFuncs.test_circstd_axis9	  r  r  c                 8    g d}t         ||d      |d       y r  )r	   r  s       r3   test_circfuncs_array_likez'TestCircFuncs.test_circfuncs_array_likeJ	  s    
 &	!#.tDr5   r  c                 L    t        t        j                   |g                    y r,   )r   r-   rD  )rQ   r  s     r3   r  zTestCircFuncs.test_emptyR	  s     	2'(r5   c                 ~    ddddddt         j                  g}t        t        j                   ||d                   y )	Nr  rz   r   r  r   r  r  r  r-   r   r   rD  rQ   r  r_   s      r3   test_nan_propagatez TestCircFuncs.test_nan_propagateW	  s4     !QRbff-13/01r5   g5:v@gfPb?r  gee?gOQOv?g#q@gauy+@c                     t        j                  g dddddddt         j                  gdt         j                  t         j                  t         j                  t         j                  t         j                  t         j                  gg      }|j                         D ]q  } ||d	|
      }|t	        t        j
                  |             /t        |d   ||   d       t	        t        j
                  |dd        j                                s y )N)r  rz   r   r  r   r  r   r  r=   ry   r  r;   r  r   r  r	  r   rO  rC   )r-   r   r   keysr   rD  r	   r   rQ   r  rA  r_   r  outs         r3   test_nan_propagate_arrayz&TestCircFuncs.test_nan_propagate_array]	  s     HH2Aq#q#rvv6"&&"&&"&&"&&"&&"&&IK L MMO 	1DACd3C|&ATBQR)--/0	1r5   grQvv@)g     v@ru  rr  g     8v@r3  g     u@g5@v?g2>Bjv@gG2?)gaF+?z?r  gA ~@碲?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 ]W  } ||dd|      }|t	        |||   d       #t	        |d d ||   d       t        t        j                  |d                Y y )Nr  rz   r   r  r   r  r  r=   ry   r  r;   r  r  omit)r  
nan_policyr  rO  rC   r   )r-   r   r   r  r	   r   rD  r  s         r3   test_nan_omit_arrayz!TestCircFuncs.test_nan_omit_arrayr	  s    ( HHsAq#r37Aq#q#rvv6vvrvvrvvrvvrvvrvvrvvNP Q MMO 	+DACFFC|Xd^$?CR(4.tDR)*	+r5   c                 `    ddddddt         j                  g}t         ||dd	      |d
       y )Nr  rz   r   r  r   r  r  r$  r  r%  rO  rC   )r-   r   r	   r  s       r3   test_nan_omitzTestCircFuncs.test_nan_omit	  s4    
 !QRbff-	!#&A t	-r5   c                     t         j                  t         j                  t         j                  t         j                  t         j                  g}t        t        j                   ||d                   y )Nr$  r%  r  r  s      r3   test_nan_omit_allzTestCircFuncs.test_nan_omit_all	  s@     VVRVVRVVRVVRVV4189:r5   c                    t        j                  t         j                  t         j                  t         j                  t         j                  t         j                  gt         j                  t         j                  t         j                  t         j                  t         j                  gg      } ||dd      }t        t        j                  |      j                                t        t        |      dk(         y )Nr$  r   )r%  r  r   )r-   r   r   r   rD  r   r   )rQ   r  r_   r  s       r3   test_nan_omit_all_axisz$TestCircFuncs.test_nan_omit_all_axis	  s     HHrvvrvvrvvrvvrvv>vvrvvrvvrvvrvv>@ Af15!!#$CAr5   r_   r  rz   r  r   r  r  r=   ry   r  r;   r  c                 ,    t        t        ||dd       y )Nr  raiser(  rX   rY   r  s      r3   test_nan_raisezTestCircFuncs.test_nan_raise	  s     	j)QSWMr5   c                 ,    t        t        ||dd       y )Nr  foobarr(  r1  r  s      r3   test_bad_nan_policyz!TestCircFuncs.test_bad_nan_policy	  s     	j)QSXNr5   c                 R    d}|}t        j                  |      }t        ||d       y )Nr   r   rC   )r   r  r	   )rQ   r_   r  r  s       r3   test_circmean_scalarz"TestCircFuncs.test_circmean_scalar	  s&    ^^ABT*r5   c                    t        j                  t        j                  ddd      t        j                  t        j                         }t        |t        j                  k         t        |t        j                   kD         y )Nr   r   r  )r   r  r-   r^   r  r   rY  s     r3   test_circmean_rangez!TestCircFuncs.test_circmean_range	  sO     NN299Q3/?BEE	RUUF
r5   c                    t        j                  ddgd      }t        t        j                  |d      d       t        t        j                  |d      dd	
       t        t        j                  |d      dd	
       y )N   r   r  r   r  r  g     @e@gLwqA?rO  rC   g)#p_4@)r-   r   r
   r   r  r	   r  r  r   s     r3   test_circfuncs_uint8z"TestCircFuncs.test_circfuncs_uint8	  s[     HHc2Yg.U^^AC0%8ac2O$Oac2KdKr5   N)$rd   re   rf   r:  r[  r\  r   r  r  r  r  r  r-   rS   rT   rU   r  r  r  r  r  r  r  r   r  r   r  r&  r)  r,  r.  r2  r5  r7  r9  r<  rg   r5   r3   r  r    sd    [[1$~~{;$}}.BC$}}k:<=E	=E+" [[4$~~rww7$}}bff5$}}bff5785	85, ,"," [[1$~~{;$}}.BC$}}k:<=E	=E [[[5>>5==+0==+: ;);) [[[5>>5==+0==+: ;2;2 [[1$~~&(ff*MO$}}&(ff#7#7 9:  %}}&(ff
KMNO
1O
1 [[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+Lr5   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                  j!                  dddg      d        Zy)TestMedianTestc                 F    t        t        t        j                  g d       y r  rX   rY   r   median_testrZ   s    r3   test_bad_n_samplesz!TestMedianTest.test_bad_n_samples	  s    j%"3"3Y?r5   c                 H    t        t        t        j                  g g d       y r  r@  rZ   s    r3   r  z TestMedianTest.test_empty_sample	  s    j%"3"3RCr5   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@  rZ   s    r3   test_empty_when_ties_ignoredz+TestMedianTest.test_empty_when_ties_ignored	  s$    
 	j%"3"3"I1vH	Fr5   c                     t        t        t        j                  g dg d       t        t        t        j                  g dg dd       y )N)r   r   r   aboverE  r@  rZ   s    r3   test_empty_contingency_rowz)TestMedianTest.test_empty_contingency_row	  s3    
 	j%"3"3Y	J 	j%"3"3Y	"	$r5   c                 P    t        t        t        j                  g dddgd       y )Nrv   ry   rz   r-  rE  r@  rZ   s    r3   test_bad_tieszTestMedianTest.test_bad_ties	  s    j%"3"3YA 	"r5   c                 P    t        t        t        j                  g dddgd       y )Nrv   ry   rz   r4  r+  r@  rZ   s    r3   r5  z"TestMedianTest.test_bad_nan_policy	  s    j%"3"3YAS[\r5   c                 P    t        t        t        j                  g dddgd       y )Nrv   ry   rz   r-  )r-  )rX   r  r   rA  rZ   s    r3   r  zTestMedianTest.test_bad_keyword	  s    i!2!2I1v	!r5   c                     g d}g d}t        j                  ||      \  }}}}t        |d       t        |ddgddgg       t        |d       t        |d       y )Nrv   rq  r   r   r   )r   rA  r
   r   )rQ   r_   r  r  ru  medtbls          r3   test_simplezTestMedianTest.test_simple	  s`    !--a3ac 	S#3!Q!Q 01 	T1Qr5   c                    g d}ddg}g d}t        j                  |||      \  }}}}t        |d       t        |g dg dg       t        j                  |||d      \  }}}}t        |d       t        |g dg d	g       t        j                  |||d
      \  }}}}t        |d       t        |g dg d	g       y )Nr%  rz   r:   )r=   r>   r;   )r   r   rw   )ry   r   r   r   rE  )ry   r   r   rI  )r   r   rw   )r   rA  r
   )rQ   r_   r  zr  ru  r%  rQ  s           r3   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1r5   c                    ddt         j                  g}g d}t        j                  ||d      }t        j                  ||d      \  }}}}t	        |t         j                  t         j                  t         j                  d f       t        |d       t        |d       t	        |d	       t	        |t        j                  d
dgddgg             t        t        t        j                  ||d       y )Nr   r   )ry   rz   r:   	propagater+  r$  g     ?gإvao?rs  r   r0  )	r-   r   r   rA  r
   r	   r   rX   rY   )rQ   r_   r  mt1r   ru  r%  rn  s           r3   test_nan_policy_optionsz&TestMedianTest.test_nan_policy_options
  s    266N1=&&q!?
1aS266266266489././QQ1a&!Q12j%"3"3QgNr5   c                    g d}g d}t        j                  ||      \  }}}}t        |d       t        |ddgddgg       t        j                  |      \  }}}	}
t	        ||       t	        ||       t        j                  ||d      \  }}}}t        |d       t        |ddgddgg       t        j                  |d      \  }}}	}
t	        ||       t	        ||       t        j                  ||d	      \  }}}}t        |d       t        |ddgddgg       t        j                  |d	      \  }}}	}
t	        ||       t	        ||       y )
Nrx   )r   ry   r:   r>   ry   r   r   r   )lambda_Fr  )r   rA  r
   chi2_contingencyr	   )rQ   r_   r  r  ru  r%  rQ  exp_statexp_pdofes              r3   rV   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!r5   r  FTc                     g d}g d}t        j                  |||      }t        |j                  |j                  |j
                  |j                  f|       y )Nrv   r\  )r   rA  r
   rN   r   r  table)rQ   r  r_   r  ra   s        r3   rV  zTestMedianTest.test_resultI
  sC    1<cmmSZZSYYGMr5   N)rd   re   rf   rB  r  rG  rJ  rL  r5  r  rR  rU  rY  rV   r:  r[  r\  rV  rg   r5   r3   r>  r>  	  si    @DF
$"]!2(O"> [[\E4=9N :Nr5   r>  c                       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d
 Zd Zd Zy)TestDirectionalStatsc                 b   t        j                  t        j                  g d             }t        j                  t        j                  g d             }t        j                  t        j                  |      t        j                  |      z  t        j                  |      t        j
                  |      z  t        j
                  |      fd      }t        j                  |      }|j                  }t        j                  |d      }t        j                  g d      }t        ||       y )N)	g33333su@g      O@g33333sB@g      ;@g     pv@g@g333333I@gYv@re  )	gfffffP@g,Q@gfffffQ@gfffffT@g     S@g     @R@g33333SQ@gffffffM@g33333I@r   r  ry   )gHP?g&S:g[<)r-   deg2radr   stackcossinr   directional_statsmean_directionr  r	   )rQ   declinclrR   dirstatsdirectional_meanmean_roundedreference_means           r3   "test_directional_stats_correctnessz7TestDirectionalStats.test_directional_stats_correctnessT
  s     

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

288 %< = > >xxt4t4'  
 **40#22xx 0!4"<=n5r5   zangles, refr   r   r   r   c                    t        |      r ||      }t        j                  t        j                  |      t        j                  |      gd      }dt        j                  |      j                  z
  }t        ||       y )Nr   r  )	callabler-   rh  ri  rj  r   rk  mean_resultant_lengthr	   )rQ   anglesr   rR   ra   s        r3   'test_directional_stats_2d_special_casesz<TestDirectionalStats.test_directional_stats_2d_special_casesh
  s^    
 C=f+Cxx8qA%))$/EEES!r5   c                 R   t         j                  j                  d      }dt         j                  z  |j                  d      z  }t        j                  t        j
                  |      t        j                  |      fd      }t        j                  |      }|j                  }t        j                  |d   |d         }|dt         j                  z  z  }t        j                  |      }t        ||       d|j                  z
  }t        j                  |      }	t        ||	       y )Nl	   }7Qh0P4u&4M r   )rN  r   r  r   )r-   rP  rQ  r  rh  ri  rj  r   rk  rl  arctan2r  r	   rv  r  )
rQ   rT  testdatatestdata_vectorro  rp  directional_mean_angler  directional_varcircular_vars
             r3   test_directional_stats_2dz.TestDirectionalStats.test_directional_stats_2ds
  s     ii##$FGruu9szz(33((BFF8$4$&FF8$4$6()+ **?;#22!#,<Q,?,<Q,?"A!71RUU7!C>>(+"89h<<<}}X.6r5   c                    t        j                  g dg dg      }t        j                  |d      }t        j                  g dg dgg dg dgg      }t        j                  |d      }t        ||j                         y )N+Pz?r  r   )r        r   )r   r   r   r   )r   r   r   r   r  )r-   r   tiler   rk  r	   rl  )rQ   rR   
full_arrayrA  ro  s        r3    test_directional_mean_higher_dimz5TestDirectionalStats.test_directional_mean_higher_dim
  sy     xx-.0 1WWT<0
88l*,**,- . **:A>("9"9:r5   c                    g dg dg}t        j                  |      }t        j                  |      }t        j                  |      }t	        |j
                  |j
                         t	        |j                  |j                         y )Nr  )r  r  r   )r-   r  r   rk  r	   rl  rv  )rQ   rR   
data_arrayra   r   s        r3   )test_directional_stats_list_ndarray_inputz>TestDirectionalStats.test_directional_stats_list_ndarray_input
  sj    $&:;ZZ%
%%d+%%j1**C,>,>?1111	3r5   c                     t        j                  d      }d}t        j                  t        t        j                  |            5  t        j                  |       d d d        y # 1 sw Y   y xY w)N)rz   zIsamples must at least be two-dimensional. Instead samples has shape: (5,)r8  )	r-   r   r:  r   rY   reescaper   rk  )rQ   rR   r;  s      r3   test_directional_stats_1d_errorz4TestDirectionalStats.test_directional_stats_1d_error
  sP    wwu~6]]:RYYw-?@ 	*##D)	* 	* 	*s   A%%A.c                 `   t        j                  g dg dg      }t        j                  |d      }|t         j                  j                  |dd      z  }t        j                  |d      }t        |j                  |j                         t        |j                  |j                         y )Nr  )g+Pz?g      r   T)	normalizer   )r  keepdimsF)	r-   r   r   rk  r  r   r	   rl  rv  )rQ   rR   ra   normalized_datar   s        r3    test_directional_stats_normalizez5TestDirectionalStats.test_directional_stats_normalize
  s     xx--/ 0%%dd;29= "0 "? ?%%o057**C,>,>?1111	3r5   N)rd   re   rf   rs  r:  r[  r\  r-   r  rx  r  r  r  r  r  rg   r5   r3   re  re  R
  s}    6( [[]55&(BEE!G	b!
QruuWr- "	"7(;3*3r5   re  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 1r8  )r   r  r  )r  r  r   r  r  zUnrecognized `method` 'YAK')r  r  rk   YAKr  z#`axis` must be an integer or `None`rE  r  rq  )r:  r   rY   r   false_discovery_controlr-   r   )rQ   r;  s     r3   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	   )rQ   psra   r   s       r3   test_against_TileStatsz%TestFDRControl.test_against_TileStats
  s(    E++B/FSt,r5   case)
go?gQ]
Y?ghD@?u?D?gn@t?g=T	[ے?g=!s?r  r  g	L?bh)
glߢ?gq?g.0?R]D?g)<Gh?g$͂?g2-p?r  r  g]:?byc                     |\  }}t         j                  j                  d      }t        j                  j                  ddd|      }|d   |d<   t        j                  ||      }t        ||d	
       y )N   <U) r  r  r   rO  r=   rw   r  r   r!  )r-   rP  rQ  r   
loguniformr0   r  r	   )rQ   r  r   r  rT  r  ra   s          r3   test_against_RzTestFDRControl.test_against_R
  sl     Vii##$78!!$"3!G11++Bv>St,r5   c                    t         j                  j                  d      }t        j                  j                  ddd|      }t        j                  |d       }t        j                  |j                               }t        ||       y Nr  r  r  )rw   ry   rz   rO  r  )	r-   rP  rQ  r   r  r0   r  r
  r
   )rQ   rT  r  ra   r   s        r3   test_axis_NonezTestFDRControl.test_axis_None
  sh    ii##$78!!$)#!N++BT:++BHHJ7S#r5   r  )r   r   r   c                    t         j                  j                  d      }t        j                  j                  ddd|      }t        j                  ||      }t        j                  t        j                  ||      }t        ||       y r  )	r-   rP  rQ  r   r  r0   r  apply_along_axisr
   )rQ   r  rT  r  ra   r   s         r3   	test_axiszTestFDRControl.test_axis
  sl    ii##$78!!$)#!N++BT:!!%"?"?rJS#r5   c                     t        t        j                  dg      dg       t        t        j                  d      d       t        t        j                  g       g        y )Nr  )r   r   r  rZ   s    r3   r  zTestFDRControl.test_edge_cases
  sE    588$@4&I588>E588<bAr5   N)rd   re   rf   r  r  r:  r[  r\  r  r  r  r  rg   r5   r3   r  r  
  s    H&- [[V 89=? 89=?@A	-A	- [[VZ0 1Br5   r  )Ur{   r  numpyr-   numpy.randomr   numpy.testingr   r   r   r   r   r	   r
   r   r:  r   rX   r  scipyr   r   scipy.stats._morestatsr   r   r   common_testsr   
_hypotestsr   r   scipy.stats._binomtestr   scipy.stats._distr_paramsr   dict
matplotlibrcParamsmatplotlib.pyplotpyplotr|  r  	ExceptionrJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  r4   r7   ri   r   r   r^  r
  rH  ra  r  r  r	  r,  r.  rX  r  r  r  r  r  r2  rZ  rI  rz  r  r  r  r  r  r>  re  r  rg   r5   r3   <module>r     s5  
  
  $. . .  * 	   N N - B ? .>%*J	"#O LKKKKKKKKL
4/ />? ?Bx@ x@vM> M>`E9 E9P@6 @6F9 9:B7 B7J:Y :YzS= S=lDC DCN20j7 j7Z[2 [2|QJ QJh> >>= ="39 39l"= "=J#1 #1P0frH rHjE6 E6P ;  ;F7 7(|5 |5~4 4"aL aLH~N ~NBa3 a3H?B ?BiT  Os   .G G)(G)