a
    BCCfE                     @   sR   d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 G dd dZdS )    N)assert_allclose)stats)_pvalue_dunnettDunnettResultc                   @   s  e Zd Zg dg dg dddgdggZg dZg dZg d	Zg d
Zg dZg dZ	g dg dgZ
g dZg dZeeeedZee
eedZeeee	eedZg dg dgZg dZddgZddgZddgZddgZddgZd d!gd"d#ggZd$d%gZd&d'gZeeeedZeeeedZeeeeeedZg d(g d)g d*gZg d+Zg d,Z g d-Z!g d.Z"g d/Z#g d0Z$g d1g d2gZ%g d3Z&g d4Z'ee!e#e"dZ(ee%e'e&dZ)eeee$e(e)dZ*g d5g d6gZ+g d7Z,d8d9gZ-d:d;gZ.d<d=gZ/d>d?gZ0d@dAgZ1dBdCgdDdEggZ2dFdGgZ3dHdIgZ4ee.e0e/dZ5ee2e4e3dZ6ee+e,e1e5e6dZ7e8j9:dJdKdLdMdNdOdPdQdRdSdTdUdVdWgdXdYgdZfd[d\d]d^d_d`dadbdSdTdUdcddgdXdYgdefgdfdg Z;e8j9:dheeee	feeeefeee e$fe+e,e-e1fgdidj Z<e8j9:dkg dldmdn Z=e8j9:dodpdqdrgfdZdrdqgfdedqdqgfgdsdt Z>e8j9:dueee*e7ge8j9:dkg dvdwdx Z?e8j9:dkg dldydz Z@d{d| ZAd}d~ ZBe8j9Cde8j9:dg ddd ZDdS )TestDunnett)      8@      ;@g     @@      @@      <@      3@g     B@      ?@      B@r         A@      C@r	   r   r	   )	      :@r   r         9@      =@g     =@     0@r   g      F@)r   r   r   r         4@r
   )@      2@      .@r         0@g      1@r         ,@r   r   r   r   r   r   r         6@r         5@r         $@r   g      &@g      "@r   r        1@r   g      /@g      -@r   r   r   g     6@r   g     8@r   r   g     2@r   g     :@      *@r   r   r   r   r
   r   r   r   r   r   r   g      7@r   r   r   r   r   r   r   r   r   r	   r
   r   )gCRݓ>gG!ɬ?g0[wT?@ޫV&?gۅ:?)-C6?geI)?g
pU?r   gi?)r   gmFA?gd;O?g9x&?gφ3x?)   r    g1%?g`|?r   )g @g>yX5M@gezFw?gQH?g:ǀ?)g#t@gX?gw퉥 g@Rr'g')gg!O$/@gj
s+@g"4P*@g@RrI-@g9@)gS@g.Ĩf?gbHgڨ%g61#)g@y.@g 4r*@gy.ꕯ(@g*@g]f7@)twosidedlessgreater)samplescontrol	statisticpvaluescis)gQ#@g!@gQ@gQ"@)g)@g\(\#@gRQ(@gffffff"@g%@)g@g      !@g@g{Gz @gGz#@gp=
ף @g?gw?gE&?g$_w?g8n?gǥ&g?gHV?gqt?g-l?ǧ@g,CgSE/:?g(s@g=pF]@gQglvm?gЬ̺$@g}Q@)7   @   r*   )r)   1   4   )2   ,   )   )r)   /   0   )g&S?g{?gX2ı.?)g4?gZՒr?gڧ1?)gr4?g(?gnŨk?)gAJi?gŬC9?gT?)g vй@g$~?g&lscz)gv:?gX~ gX~.)gI,A?5@gX~(@g$8@)gB8@g_cg/1+)ga33@gO7f2%@g=m@)gffffff@g@g      @g333333@)gffffff@g333333@g@g@g       @)333333@g      @g      @g@g	@g?g[ A?g(D!T?g77',?gMbX?g=,Ԛ?g_Fj?g )"*?gGz?g}iƢgQ2Ng`lg{Ug[?gxk|?g쑿Wg!%-L$gH0K?gC7v?z1rho, n_groups, df, statistic, pvalue, alternative)      ?r    
   g(\?皙?r#   )r3      r4   gQ@r5   r#   )r3         gףp=
?r5   r#   )r3      r8   gp=
ף@r5   r#   )r3         g(\
@{Gz?r#   )r3      r;   g{Gz@r<   r#   )r3   r7   <   gQ@r<   r#   )r3   r:   r>   (\@r<   r#   r3   r:   r>   r?   gGz@r<   r5   r#   )r3   r    r4   gףp=
@r5   	two-sided)r3   r6   r4   g{Gz@r5   r@   )r3   r7   r8   g(\@r5   r@   )r3   r6      g(\@r5   r@   )r3   r:   r;   gGz@r<   r@   )r3   r=   r;   gRQ@r<   r@   )r3   r7   r>   r2   r<   r@   )r3   r:   r>   Q	@r<   r@   rB   gffffff@r@   c           	      C   sV   t jd}t ||f|}t |d t |}t|||||d}t||dd d S )Nl	   <~(zh.W)| r    )rhodfr&   alternativerng{Gzt?atol)nprandomdefault_rngfullZfill_diagonalarrayr   r   )	selfrC   Zn_groupsrD   r&   pvaluerE   rF   res rR   \/var/www/html/django/DPS/env/lib/python3.9/site-packages/scipy/stats/tests/test_multicomp.pytest_critical_values   s    
z TestDunnett.test_critical_valuesz#samples, control, pvalue, statisticc                 C   sR   t jd}tj|||d}t|ts,J t|j|dd t|j	|ddd d S )Nl	   suVP}v*d r%   random_stateg-C6
?)rtolr<   r   rW   rI   )
rJ   rK   rL   r   dunnett
isinstancer   r   r&   rP   )rO   r$   r%   rP   r&   rF   rQ   rR   rR   rS   
test_basic   s
    
zTestDunnett.test_basicrE   )r@   r"   r#   c                 C   s   t jd}tdD ]p}|jdddd}|jdddd}tj||||d}tj||||d}t|j	|j	d	d
d t|j
|j
d	d
d qd S )N	   Qyp^\j.sU r4   d   r4   sizer%   rE   rV   )rE   rV   gMbP?h㈵>rX   )rJ   rK   rL   rangeintegersr   rY   Z	ttest_indr   r&   rP   )rO   rE   rF   _sampler%   rQ   refrR   rR   rS   test_ttest_ind   s    zTestDunnett.test_ttest_indzalternative, pvaluer"   r   r    c           	      C   s  t jd}|jdddd}|jdddd}|jdd	dd}tj|||||d
}t|j|dd | }|dkrt 	|j
 sJ d|jd   k rdk sn J d|jd   k rdk sn J n |dkr.d|j
d   k rdk sn J d|j
d   k rdk sn J t |j sJ n|dkrd|j
d   k rVdk s\n J d|j
d   k rzdk sn J d|jd   k rdk sn J d|jd   k rdk sn J d S )Nr\   r   rA   r_   r`   P   r^         rb   gHz>rH   r"   r]   ir>   r    r#   r@   )rJ   rK   rL   re   r   rY   r   rP   confidence_intervalZisneginflowallhighZisposinf)	rO   rE   rP   rF   Zsample_lessr%   Zsample_greaterrQ   cirR   rR   rS   test_alternatives   s.    	 $
 $
$$$zTestDunnett.test_alternativescaser"   r#   r@   c                 C   s*  t jd}|d }|d }dddd}|d |d	d
 }tj||||d}t|j|ddd |d ||  }	|dkr|	t jg}	n|dkrt j |	g}	|j	d u sJ |j
d u sJ |jdd}
t|
j|	d ddd t|
j|	d ddd |j	|
u sJ |j
dksJ |jdd}||
u s&J d S )N	   ><Fl&\z]	a# r$   r%   r"   r#   r!   rt   r'   - rb   rG   r   rX   r(   gffffff?Zconfidence_levelr   rc   r    )rJ   rK   rL   replacer   rY   r   rP   infZ_ciZ_ci_clrm   rn   rp   )rO   rs   rE   rF   r$   r%   ZalternativesZp_refrQ   Zci_refrq   Zci_rR   rR   rS   test_against_R_multicomp_glht%  s2    
z)TestDunnett.test_against_R_multicomp_glhtc                 C   s   t jd}tj| j| j||d}t|}d|v s8J d|v sDJ |dkrfd|v sXJ d|v sJ n:|dkrd	|v szJ d
|v sJ nd	|vsJ d|v sJ d S )Nru   rb   z(Sample 2 - Control)z95.0%r"   z-infz19.r#   rz   z-13.z21.)rJ   rK   rL   r   rY   	samples_3	control_3str)rO   rE   rF   rQ   res_strrR   rR   rS   test_strE  s     
zTestDunnett.test_strc                 C   sd   t jd}tj| j| j|d}d}tjt	|d |j
dd W d    n1 sV0    Y  d S )Nru   rU   z7Computation of the confidence interval did not convergematchrc   )Ztol)rJ   rK   rL   r   rY   r|   r}   pytestZwarnsUserWarningZ
_allowance)rO   rF   rQ   msgrR   rR   rS   test_warnings]  s    
zTestDunnett.test_warningsc                 C   s  | j | j }}tjtdd" tj||dd W d    n1 sD0    Y  t|}|d g|d< tjtdd  tj|d|i W d    n1 s0    Y  t|}|g}tjtdd  tj|d|i W d    n1 s0    Y  t|}g |d< tjtd	d  tj|d|i W d    n1 s:0    Y  g }tjtd	d  tj|d|i W d    n1 s~0    Y  tj|d|i}tjtd
d |j	dd W d    n1 s0    Y  d S )Nzalternative must ber   Zbob)r%   rE   r   zmust be 1D arraysr%   r    zat least 1 observationzConfidence level mustr6   rx   )
r|   r}   r   Zraises
ValueErrorr   rY   copydeepcopyrm   )rO   r$   r%   Zsamples_Zcontrol_rQ   rR   rR   rS   test_raisesg  s*    0
.
.
00zTestDunnett.test_raisesz$ignore:Computation of the confidence	n_samples)r    r7   r6   c                 C   s   t jd}|j|dfd}|jdd}tj|||d}|jj|fksLJ |jj|fks^J |	 }|j
j|fksxJ |jj|fksJ d S )Nl   V=0(Lr4   r`   rU   )rJ   rK   rL   normalr   rY   r&   shaperP   rm   rn   rp   )rO   r   rF   r$   r%   rQ   rq   rR   rR   rS   test_shapes  s    zTestDunnett.test_shapesN)E__name__
__module____qualname__Z	samples_1Z	control_1Zpvalue_1Zp_1_twosidedZp_1_greaterZp_1_lessZstatistic_1Zci_1_twosidedZci_1_greaterZ	ci_1_lessdictZ	pvalues_1Zcis_1Zcase_1Z	samples_2Z	control_2Zpvalue_2Zp_2_twosidedZp_2_greaterZp_2_lessZstatistic_2Zci_2_twosidedZci_2_greaterZ	ci_2_lessZ	pvalues_2Zcis_2Zcase_2r|   r}   Zpvalue_3Zp_3_twosidedZp_3_greaterZp_3_lessZstatistic_3Zci_3_twosidedZci_3_greaterZ	ci_3_lessZ	pvalues_3Zcis_3Zcase_3Z	samples_4Z	control_4Zpvalue_4Zp_4_twosidedZp_4_greaterZp_4_lessZstatistic_4Zci_4_twosidedZci_4_greaterZ	ci_4_lessZ	pvalues_4Zcis_4Zcase_4r   markZparametrizerT   r[   ri   rr   r{   r   r   r   filterwarningsr   rR   rR   rR   rS   r      s   C





	
	






"
r   )r   numpyrJ   r   Znumpy.testingr   Zscipyr   Zscipy.stats._multicompr   r   r   rR   rR   rR   rS   <module>   s   