
    5[gE                     X    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y)    N)assert_allclose)stats)_pvalue_dunnettDunnettResultc                      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      Z7e8jr                  ju                  dJdKdLdMdNdOdPdQdRdSdTdUdVdWgdXdYgdZfd[d\d]d^d_d`dadbdSdTdUdcddgdXdYgdefg      df        Z;e8jr                  ju                  dgeeee	feeeefeee e$fe+e,e-e1fg      dh        Z<e8jr                  ju                  dig dj      dk        Z=e8jr                  ju                  dldmdndogfdZdodngfdedndngfg      dp        Z>e8jr                  ju                  dqeee*e7g      e8jr                  ju                  dig dr      ds               Z?e8jr                  ju                  dig dj      dt        Z@du ZAdv ZBe8jr                  j                  dw      e8jr                  ju                  dxg dy      dz               ZDy{)|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                  j                  d      }t        j                  ||f|      }t        j                  |d       t        j
                  |      }t        |||||      }t        ||d       y )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/bid-api/venv/lib/python3.12/site-packages/scipy/stats/tests/test_multicomp.pytest_critical_valuesz TestDunnett.test_critical_values   sq    : ii##$KLggx*C0
a HHY'	i#

 	V$/    z#samples, control, pvalue, statisticc                     t         j                  j                  d      }t        j                  |||d}t        |t              sJ t        |j                  |d       t        |j                  |dd       y )Nl	   suVP}v*d r'   random_stateg-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]     ii##$JKmmWgCH#}---yt<

FDArY   rH   )rB   r$   r%   c                    t         j                  j                  d      }t        d      D ]  }|j	                  ddd      }|j	                  ddd      }t        j                  ||||      }t        j                  ||||      }t        |j                  |j                  d	d
       t        |j                  |j                  d	d
        y )N	   Qyp^\j.sU r6   d   r6   sizer'   rH   r\   )rH   r\   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     ii##$KLrA\\$%\8Fll45l9G--'cC //'cC
 CMM3==t$OCJJ

DI rY   zalternative, pvaluer$   r   r"   c                    t         j                  j                  d      }|j                  ddd      }|j                  ddd      }|j                  dd	d      }t	        j
                  |||||
      }t        |j                  |d       |j                         }|dk(  rjt        j                  |j                        j                         sJ d|j                  d   cxk  rdk  sJ  J d|j                  d   cxk  rdk  sJ  J y |dk(  rjd|j                  d   cxk  rdk  sJ  J d|j                  d   cxk  rdk  sJ  J t        j                  |j                        j                         sJ y |dk(  rud|j                  d   cxk  rdk  sJ  J d|j                  d   cxk  rdk  sJ  J d|j                  d   cxk  rdk  sJ  J d|j                  d   cxk  rdk  sJ  J y y )Nrc   r   rC   rf   rg   P   re         ri   gHz>rK   r$   rd   ir@   r"   r%   rB   )rM   rN   rO   rl   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    ii##$KL ll1bul5,,r3U,3c3U;mm##
 	

F6$$&& ;;rvv&**,,,"''!**s*****
(S(((((I%"&&))c)))))q	'C''''';;rww'++---K'"&&))c)))))q	'C'''''"''!**s*****
(S(((((	 (rY   caser$   r%   rB   c                    t         j                  j                  d      }|d   }|d   }dddd}|d   |j                  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 |j                  d      }
t        |
j                  |	d   dd       t        |
j                  |	d   dd       |j                  |
u sJ |j                  dk(  sJ |j                  d      }||
u sJ y )N	   ><Fl&\z]	a# r&   r'   r$   r%   r#   r   r)   - ri   rJ   r!   r^   r*   gffffff?confidence_levelr   rj   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%  sa    ii##$KLy/y/ &9%/1Y 3 3C <=mmWg;),. 	

E4@e\+67)#bff%FF"vvgv&Fwwzz!!!$$d$;q	4@DA ww"}}zzT!!!%%t%<byyrY   c                 &   t         j                  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 y |dk(  rd	|v sJ d
|v sJ y d	|vsJ d|v sJ y )Nr   ri   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_strE  s    ii##$KLmm^^T^^
 c(%000'!!!& W$$$G###I%G###W$$$'''G###rY   c                    t         j                  j                  d      }t        j                  | j
                  | j                  |d}d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr   r[   z7Computation of the confidence interval did not convergematchrj   )tol)rM   rN   rO   r   r_   r   r   pytestwarnsUserWarning
_allowance)rS   rI   rV   msgs       rW   test_warningszTestDunnett.test_warnings]  sd    ii##$KLmm^^T^^#
 I\\+S1NNtN$ 211s   'BBc                 >   | j                   | j                  }}t        j                  t        d      5  t        j                  ||dd d d d        t        j                  |      }|d   g|d<   t        j                  t        d      5  t        j                  |d|i d d d        t        j                  |      }|g}t        j                  t        d      5  t        j                  |d|i d d d        t        j                  |      }g |d<   t        j                  t        d	      5  t        j                  |d|i d d d        g }t        j                  t        d	      5  t        j                  |d|i d d d        t        j                  |d|i}t        j                  t        d
      5  |j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   Bx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   y xY w)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_raisesg  s   >>4>> ]]:-BCMM7GG D ==){m]]:-@AMM85W5 B ==):]]:-@AMM75H5 B ==)]]:-EFMM85W5 G ]]:-EFMM75H5 G mmW6g6]]:-DE##Q#7 FE7 DC BA BA GF
 GF FEsG   GG"G/0G;+H9HG"G,/G8;HHHz$ignore:Computation of the confidence	n_samples)r"   r9   r8   c                    t         j                  j                  d      }|j                  |df      }|j                  d      }t	        j
                  |||d}|j                  j                  |fk(  sJ |j                  j                  |fk(  sJ |j                         }|j                  j                  |fk(  sJ |j                  j                  |fk(  sJ y )Nl   V=0(Lr6   rg   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     ii##$67**9b/*2**"*%mmWgCH}}""yl222zzI<///$$&vv||	|+++ww}},,,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   ra   rq   r   r   r   r   r   filterwarningsr    rY   rW   r   r      sk   F	
 	?	t		II @H=L@K/H?K<:;M9L5Il;OI-iNE)Y+#0F *+LMI4IHy)Li(K!HG$K&8%79M$o6L /2Il;OI-iNE)Y+#0F |\:II'H1L0K*H.KKJLMILEIl;OI-iNE)Y+#0F &'@AI)IHW%LG$K!HH%K&(89%79M$&68L /2Il;OI-iNE)Y+#0F [[; 0///////!R$d|Y?11111111!R$d|[A+	
40540 [[-	8[9	8[9	8[9	8[9		
BB [[(J	J* [[aVA1a&!	
))> [[Vffff%EF[[],LM N G< [[],LM$ N$.% 8D [[ FG[[[)4	- 5 H	-rY   r   )r   numpyrM   r   numpy.testingr   scipyr   scipy.stats._multicompr   r   r   r   rY   rW   <module>r      s#       )  AI- I-rY   