
    _MhE                     `    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          ZdS )    N)assert_allclose)stats)_pvalue_dunnettDunnettResultc                   4   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          Z ee
ee          Z eeee	ee          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          Z eeee          Z eeeeee          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"          Z( ee%e'e&          Z) eeee$e(e)          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Z4 ee.e0e/          Z5 ee2e4e3          Z6 ee+e,e1e5e6          Z7e8j9        :                    dJdKdLdMdNdOdPdQdRdSdTdUdVdWgdXdYgdZfd[d\d]d^d_d`dadbdSdTdUdcddgdXdYgdefg          df             Z;e8j9        :                    dgeeee	feeeefeee e$fe+e,e-e1fg          dh             Z<e8j9        :                    dig dj          dk             Z=e8j9        :                    dldmdndogfdZdodngfdedndngfg          dp             Z>e8j9        :                    dqeee*e7g          e8j9        :                    dig dr          ds                         Z?e8j9        :                    dig dj          dt             Z@du ZAdv ZBe8j9        C                    dw          e8j9        :                    dxg dy          dz                         ZDd{S )|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%   )r5      r6   gQ@r7   r%   )r5         gףp=
?r7   r%   )r5      r:   gp=
ף@r7   r%   )r5         g(\
@{Gz?r%   )r5      r=   g{Gz@r>   r%   )r5   r9   <   gQ@r>   r%   )r5   r<   r@   (\@r>   r%   r5   r<   r@   rA   gGz@r>   r7   r%   )r5   r"   r6   gףp=
@r7   	two-sided)r5   r8   r6   g{Gz@r7   rB   )r5   r9   r:   g(\@r7   rB   )r5   r8      g(\@r7   rB   )r5   r<   r=   gGz@r>   rB   )r5   r?   r=   gRQ@r>   rB   )r5   r9   r@   r4   r>   rB   )r5   r<   r@   Q	@r>   rB   rD   gffffff@rB   c                    t           j                            d          }t          j        ||f|          }t          j        |d           t          j        |          }t          |||||          }t          ||d           d S )Nl	   <~(zh.W)| r"   )rhodfr(   alternativerng{Gzt?atol)nprandomdefault_rngfullfill_diagonalarrayr   r   )	selfrF   n_groupsrG   r(   pvaluerH   rI   ress	            `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/stats/tests/test_multicomp.pytest_critical_valuesz TestDunnett.test_critical_values   s    : i##$KLLgx*C00
a   HY''	i#
 
 

 	V$//////    z#samples, control, pvalue, statisticc                     t           j                            d          }t          j        |||d}t          |t                    sJ t          |j        |d           t          |j	        |dd           d S )Nl	   suVP}v*d r'   rI   g-C6
?)rtolr>   r!   r\   rL   )
rM   rN   rO   r   dunnett
isinstancer   r   r(   rU   )rS   r&   r'   rU   r(   rI   rV   s          rW   
test_basiczTestDunnett.test_basic   s|     i##$JKKmWg3???#}-----yt<<<<
FDAAAAAArY   rH   )rB   r$   r%   c                    t           j                            d          }t          d          D ]}|                    ddd          }|                    ddd          }t          j        ||||          }t          j        |||          }t          |j	        |j	        d	d
           t          |j
        |j
        d	d
           d S )N	   Qyp^\j.sU r6   d   r6   size)r'   rH   random_state)rH   gMbP?h㈵>r]   )rM   rN   rO   rangeintegersr   r^   	ttest_indr   r(   rU   )rS   rH   rI   _sampler'   rV   refs           rW   test_ttest_indzTestDunnett.test_ttest_ind   s     i##$KLLr 	J 	JA\\$%\88Fll45l99G -'c  C /'  C
 CM3=t$OOOOCJ
DIIIII	J 	JrY   zalternative, pvaluer$   r   r"   c                     t           j                            d          }|                    ddd          }|                    ddd          }|                    dd	d          }t	          j        |||||
          }t          |j        |d           |                                }|dk    rgt          j	        |j
                                                  sJ d|j        d         cxk     rdk     sn J d|j        d         cxk     rdk     sn J d S |dk    rgd|j
        d         cxk     rdk     sn J d|j
        d         cxk     rdk     sn J t          j        |j                                                  sJ d S |dk    rpd|j
        d         cxk     rdk     sn J d|j
        d         cxk     rdk     sn J d|j        d         cxk     rdk     sn J d|j        d         cxk     rdk     sn J d S d S )Nrb   r   rC   re   rf   P   rd         r'   rH   rI   gHz>rK   r$   rc   ir@   r"   r%   rB   )rM   rN   rO   rk   r   r^   r   rU   confidence_intervalisneginflowallhighisposinf)	rS   rH   rU   rI   sample_lessr'   sample_greaterrV   cis	            rW   test_alternativeszTestDunnett.test_alternatives   s    i##$KLL ll1bul55,,r3U,33c3U;;m#
 
 
 	
F6666$$&&&  ;rv&&**,,,,,"'!*****s******
((((S((((((((I%%"&)))))c))))))q	''''C'''''';rw''++-------K''"&)))))c))))))q	''''C''''''"'!*****s******
((((S((((((	 (' )(rY   caser$   r%   rB   c                    t           j                            d          }|d         }|d         }dddd}|d         |                    d	d
                   }t	          j        ||||d}t          |j        |dd           |d         ||                  }	|dk    r|	t           j        g}	n|dk    rt           j         |	g}	|j	        J |j
        J |                    d          }
t          |
j        |	d         dd           t          |
j        |	d         dd           |j	        |
u sJ |j
        dk    sJ |                    d          }||
u sJ d S )N	   ><Fl&\z]	a# r&   r'   r$   r%   r#   r   r)   - ru   rJ   r!   r]   r*   gffffff?confidence_levelr   ri   r"   )rM   rN   rO   replacer   r^   r   rU   inf_ci_ci_clrv   rx   rz   )rS   r   rH   rI   r&   r'   alternativesp_refrV   ci_refr~   ci_s               rW   test_against_R_multicomp_glhtz)TestDunnett.test_against_R_multicomp_glht&  s    i##$KLLy/y/ &9%/1 1Y 3 3C < <=mWg; #% % % 	
E4@@@@e\+67)##bf%FFF""vgv&Fwz!!!$$d$;;q	4@@@@DAAAA w"}}}}zT!!!!%%t%<<byyyyyyrY   c                    t           j                            d          }t          j        | j        | j        ||d}t          |          }d|v sJ d|v sJ |dk    rd|v sJ d|v sJ d S |dk    rd	|v sJ d
|v sJ d S d	|vsJ d|v sJ d S )Nr   ru   z(Sample 2 - Control)z95.0%r$   z-infz19.r%   r   z-13.z21.)rM   rN   rO   r   r^   	samples_3	control_3str)rS   rH   rI   rV   res_strs        rW   test_strzTestDunnett.test_strF  s    i##$KLLm^T^
 
 
 c((%0000'!!!!&  W$$$$G######I%%G####W$$$$$$''''G######rY   c                    t           j                            d          }t          j        | j        | j        |d}d}t          j        t          |          5  |
                    d           d d d            d S # 1 swxY w Y   d S )Nr   r[   z7Computation of the confidence interval did not convergematchri   )tol)rM   rN   rO   r   r^   r   r   pytestwarnsUserWarning
_allowance)rS   rI   rV   msgs       rW   test_warningszTestDunnett.test_warnings^  s    i##$KLLm^T^
 
 
 I\+S111 	% 	%NNtN$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   A==BBc                 &   | j         | j        }}t          j        t          d          5  t          j        ||dd d d d            n# 1 swxY w Y   t          j        |          }|d         g|d<   t          j        t          d          5  t          j        |d|i d d d            n# 1 swxY w Y   t          j        |          }|g}t          j        t          d          5  t          j        |d|i d d d            n# 1 swxY w Y   t          j        |          }g |d<   t          j        t          d	          5  t          j        |d|i d d d            n# 1 swxY w Y   g }t          j        t          d	          5  t          j        |d|i d d d            n# 1 swxY w Y   t          j        |d|i}t          j        t          d
          5  |	                    d           d d d            d S # 1 swxY w Y   d S )Nzalternative must ber   bob)r'   rH   r   zmust be 1D arraysr'   r"   zat least 1 observationzConfidence level mustr8   r   )
r   r   r   raises
ValueErrorr   r^   copydeepcopyrv   )rS   r&   r'   samples_control_rV   s         rW   test_raiseszTestDunnett.test_raisesh  s   >4> ]:-BCCC 	H 	HM7GGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H =)){m]:-@AAA 	6 	6M85W555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 =)):]:-@AAA 	6 	6M75H555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 =))]:-EFFF 	6 	6M85W555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 ]:-EFFF 	6 	6M75H555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 mW6g66]:-DEEE 	8 	8##Q#777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8sk   A		AAB--B14B1*DDDE%%E),E)F++F/2F/"HH
H
z$ignore:Computation of the confidence	n_samples)r"   r9   r8   c                    t           j                            d          }|                    |df          }|                    d          }t	          j        |||d}|j        j        |fk    sJ |j        j        |fk    sJ |	                                }|j
        j        |fk    sJ |j        j        |fk    sJ d S )Nl   V=0(Lr6   rf   r[   )rM   rN   rO   normalr   r^   r(   shaperU   rv   rx   rz   )rS   r   rI   r&   r'   rV   r~   s          rW   test_shapeszTestDunnett.test_shapes  s     i##$677**9b/*22**"*%%mWg3???}"yl2222zI<////$$&&v|	|++++w},,,,,,rY   N)E__name__
__module____qualname__	samples_1	control_1pvalue_1p_1_twosidedp_1_greaterp_1_lessstatistic_1ci_1_twosidedci_1_greater	ci_1_lessdict	pvalues_1cis_1case_1	samples_2	control_2pvalue_2p_2_twosidedp_2_greaterp_2_lessstatistic_2ci_2_twosidedci_2_greater	ci_2_less	pvalues_2cis_2case_2r   r   pvalue_3p_3_twosidedp_3_greaterp_3_lessstatistic_3ci_3_twosidedci_3_greater	ci_3_less	pvalues_3cis_3case_3	samples_4	control_4pvalue_4p_4_twosidedp_4_greaterp_4_lessstatistic_4ci_4_twosidedci_4_greater	ci_4_less	pvalues_4cis_4case_4r   markparametrizerX   r`   rp   r   r   r   r   r   filterwarningsr    rY   rW   r   r      s@       F	
 	
 	
 	?>>	t		I  I @??H===L@@@K///H???K< < <: : :;M9 9 9L5 5 5Il;OOOID-iNNNET)Y+#0 0 0F *))+L+L+LMI444IHy)Li(K!HG$K&8%79M$o6L /2Il;OOOID-iNNNET)Y+#0 0 0F |||\\\:II'''H111L000K***H...KKKKJJJLMIIILEEEIl;OOOID-iNNNET)Y+#0 0 0F &%%'@'@'@AI)))IHW%LG$K!HH%K&(89%79M$&68L /2Il;OOOID-iNNNET)Y+#0 0 0F [; 0///////!R$d|Y?11111111!R$d|[A+	
 40 05 40 [-	8[9	8[9	8[9	8[9		
 B B B [((( J J	 J, [aVA1a&!	
 ) ) )> [Vffff%EFF[],L,L,LMM  NM GF< [],L,L,LMM$ $ NM$.% % % 8  8  8D [ FGG[[)))44	- 	- 54 HG	- 	- 	-rY   r   )r   numpyrM   r   numpy.testingr   scipyr   scipy.stats._multicompr   r   r   r   rY   rW   <module>r      s          ) ) ) ) ) )       A A A A A A A AJ- J- J- J- J- J- J- J- J- J-rY   