o
    Ö­j¢E  ã                   @   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~„ ZBe8j9 Cd¡e8j9 :d€g d�¢¡d‚dƒ„ ƒƒ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�[wóTï?ç@Þ«V&üï?gÛ…æ:�´ë?)ç-Cëâ6?g€e¥I)è–?g
pUï?r   gi©¼á´ë?)r   gmFAðø†?gd;ßO�—è?g�Í9x&´ì?gÏ†ü3ƒxâ?)é   r    gù1æ®%äï?gé`ýŸÃ|ï?r   )gœùÕ @g>yX¨5M@ge�zˆFwã?gÕQ÷HÑ?g”¼:Ç€ìî?)g˜#Èùt@gÞÐÃëÿXç?gºwí‰¥Æ Àg@ÛRrÑ'Àgýßûåï‡'À)gg!O¶$ñ/@gjß
sŒÉ+@gŠ"˜4Pé*@g@ÛRrI-@gÿïýò÷9@)géöÝS�@g…Â.Ä¨fö?gæb¿HÀgìÚ¨Ã%Àg”61¼#À)gï@ÇyÜ.@g¹ 4r*@gy›.ê•¯(@g�“²þæ”*@g°â]fý™7@)ÚtwosidedÚlessÚgreater)ÚsamplesÚcontrolÚ	statisticÚpvaluesÚcis)g…ëQ¸…#@gš™™™™™!@g¸…ëQ¸@g¸…ëQ¸"@)gš™™™™™)@g\�Âõ(\#@gR¸…ëQ(@gffffff"@gš™™™™%@)gš™™™™™@g      !@gÍÌÌÌÌÌ@g{®Gáz @g®Gáz®#@g¤p=
×£ @g¹ü‡ôÛ×ã?gàœ¥½Áw?gçäE&à×ã?g$Çç_Üw?g8¯ûØnÌÔ?gÇ¥…&äÞg?g ýHVí?gÉq§t°þï?g°¶-Êlë?gÍÌÌÌÌŒ@g„»,Cô¿gSE/:Þê?g(Äüò‡s@g=pF—]ª@g¥™Qù®î¿g‹lvmæñ?gÐ¬Ìº$@g}Q˜‰Œ@)é7   é@   r*   )r)   é1   é4   )é2   é,   é)   )r)   é/   é0   )gÂ&S£¢?gÅþ²{ò°ì?gXÊ2Ä±.Ú?)gµá°4ð£¢?gZÕ’Žr°ì?gý¤Ú§ã1Ú?)g¤rµ4·’?g(×Èì¬à?gn‡†Å¨kï?)gAJ˜iûï?gÅ¬C9Ñì?gÞT¤ÂØÊ?)gï v¦Ð¹@g$—ÿ�~ûá?g&ßlsczö¿)gÞv:žÇè?g’X†ƒ~ Àg’X†ƒ~.À)gI,ÃA?5@g’X†ƒ~(@g$±8ý@)gBïõÕ8@g_•ùcÀg/„‚Êü1+À)g¨Ía3™3@gO›7Âf2%@g=mÞ›É@)gffffff@gš™™™™™@g      @g333333@)gffffff@g333333@gš™™™™™@gš™™™™™@g       @)ç333333@g      @g      @gÍÌÌÌÌÌ@gš™™™™™	@gÓÞà“©â?gÀ[ Añï?g(DÀ!T©â?g77¦',ñï?gòÒMbXÓ?g=,Ôšææ?g_F±ÜÒjí?g )"Ã*Þä?g®Gází?g}iÆ¢©¿gQ2N¡÷æ¿g`¦l•ˆð¿g{ÑÅUg[÷?gxk¶Ã|Éï?gì‘¿W¿˜à¿g!%-L$çë¿gH�þ0Kžô?gÙC²7vŸê?z1rho, n_groups, df, statistic, pvalue, alternative)ç      à?r    é
   gö(\�Âõü?çš™™™™™©?r#   )r3   é   r4   g¸…ëQ¸@r5   r#   )r3   é   é   g×£p=
×ÿ?r5   r#   )r3   é   r8   g¤p=
×£@r5   r#   )r3   é   é   g�Âõ(\�
@ç{®Gáz„?r#   )r3   é   r;   g{®Gáz@r<   r#   )r3   r7   é<   g…ëQ¸@r<   r#   )r3   r:   r>   çö(\�Âõ@r<   r#   r3   r:   r>   r?   g®Gáz®@r<   r5   r#   )r3   r    r4   g×£p=
×@r5   ú	two-sided)r3   r6   r4   g{®Gáz@r5   r@   )r3   r7   r8   g�Âõ(\�@r5   r@   )r3   r6   é   g�Âõ(\�@r5   r@   )r3   r:   r;   g®Gáz@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ç{®Gázt?©Úatol)ÚnpÚrandomÚdefault_rngÚfullÚfill_diagonalÚarrayr   r   )	ÚselfrC   Ún_groupsrD   r&   ÚpvaluerE   rF   Úres© rT   ú]/var/www/html/CropPilot/venv/lib/python3.10/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%   rF   g-Cëâ6
?)Úrtolr<   r   ©rX   rI   )
rJ   rK   rL   r   ÚdunnettÚ
isinstancer   r   r&   rR   )rP   r$   r%   rR   r&   rF   rS   rT   rT   rU   Ú
test_basicÓ   s
   
zTestDunnett.test_basicrE   )r@   r"   r#   c                 C   sˆ   t j d¡}tdƒD ]7}|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ì	   ÿQšy§¾p^\Èj˜.…sU r4   éœÿÿÿéd   ©r4   ©Úsize)r%   rE   Úrandom_state)rE   gü©ñÒMbP?çñhãˆµøä>rY   )rJ   rK   rL   ÚrangeÚintegersr   rZ   Ú	ttest_indr   r&   rR   )rP   rE   rF   Ú_Úsampler%   rS   ÚrefrT   rT   rU   Ú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rft  	|j
¡ ¡ sBJ ‚d|jd   k rPdk sSJ ‚ J ‚d|jd   k radk sdJ ‚ J ‚d S |dkr˜d|j
d   k rxdk s{J ‚ J ‚d|j
d   k r‰dk sŒJ ‚ J ‚t  |j¡ ¡ s–J ‚d S |dkràd|j
d   k rªdk s­J ‚ J ‚d|j
d   k r»dk s¾J ‚ J ‚d|jd   k rÌdk sÏJ ‚ J ‚d|jd   k rÝdk sâJ ‚ J ‚d S d S )Nr]   r   rA   r`   ra   éP   r_   é    é´   ©r%   rE   rF   gH¯¼šò×z>rH   r"   r^   iÄÿÿÿr>   r    r#   r@   )rJ   rK   rL   rf   r   rZ   r   rR   Úconfidence_intervalÚisneginfÚlowÚallÚhighÚisposinf)	rP   rE   rR   rF   Úsample_lessr%   Úsample_greaterrS   ÚcirT   rT   rU   Útest_alternativesÿ   s2   	þ"&""""""ü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rC|	t jg}	n
|dkrMt j |	g}	|j	d u sTJ ‚|j
d u s[J ‚|jdd�}
t|
j|	d ddd� t|
j|	d ddd� |j	|
u s~J ‚|j
dks…J ‚|jdd�}||
u s‘J ‚d S )Nì	   Ó><�FÃl&\z]Ô	a#Ž r$   r%   r"   r#   r!   r{   r'   ú-Ú ro   rG   r   rY   r(   gffffffî?©Úconfidence_levelr   rd   r    )rJ   rK   rL   Úreplacer   rZ   r   rR   ÚinfÚ_ciÚ_ci_clrp   rr   rt   )rP   rz   rE   rF   r$   r%   ÚalternativesÚp_refrS   Úci_refrx   Úci_rT   rT   rU   Ú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 sJ ‚d|v s"J ‚|dkr4d|v s,J ‚d|v s2J ‚d S |dkrFd	|v s>J ‚d
|v sDJ ‚d S d	|vsLJ ‚d|v sRJ ‚d S )Nr|   ro   z(Sample 2 - Control)z95.0%r"   z-infz19.r#   r‚   z-13.z21.)rJ   rK   rL   r   rZ   Ú	samples_3Ú	control_3Ústr)rP   rE   rF   rS   Úres_strrT   rT   rU   Útest_strF  s    
þzTestDunnett.test_strc                 C   sf   t j d¡}tj| j| j|dœŽ}d}tjt	|d�� |j
dd� W d   ƒ d S 1 s,w   Y  d S )Nr|   rW   z7Computation of the confidence interval did not converge©Úmatchrd   )Útol)rJ   rK   rL   r   rZ   rŠ   r‹   ÚpytestÚwarnsÚUserWarningÚ
_allowance)rP   rF   rS   ÚmsgrT   rT   rU   Útest_warnings^  s   
ÿ"ÿzTestDunnett.test_warningsc                 C   sÔ  | j | j}}tjtdd�� tj||ddœŽ W d   ƒ n1 s"w   Y  t |¡}|d g|d< tjtdd�� tj|d|iŽ W d   ƒ n1 sMw   Y  t |¡}|g}tjtdd�� tj|d|iŽ W d   ƒ n1 stw   Y  t |¡}g |d< tjtd	d�� tj|d|iŽ W d   ƒ n1 sœw   Y  g }tjtd	d�� tj|d|iŽ W d   ƒ n1 s½w   Y  tj|d|iŽ}tjtd
d�� |j	dd� W d   ƒ d S 1 sãw   Y  d S )Nzalternative must ber�   Úbob)r%   rE   r   zmust be 1D arraysr%   r    zat least 1 observationzConfidence level mustr6   r   )
rŠ   r‹   r’   ÚraisesÚ
ValueErrorr   rZ   ÚcopyÚdeepcopyrp   )rP   r$   r%   Úsamples_Úcontrol_rS   rT   rT   rU   Útest_raisesh  s6   ÿ
ÿ
ÿ
ÿÿ"ÿ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s&J ‚|jj|fks/J ‚| 	¡ }|j
j|fks<J ‚|jj|fksEJ ‚d S )Nl   V=ä0œ(‹Lr4   ra   rW   )rJ   rK   rL   Únormalr   rZ   r&   ÚshaperR   rp   rr   rt   )rP   r    rF   r$   r%   rS   rx   rT   rT   rU   Útest_shapesŠ  s   zTestDunnett.test_shapesN)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ÚparametrizerV   r\   rk   ry   r‰   rŽ   r—   rŸ   Úfilterwarningsr£   rT   rT   rT   rU   r      s   Cø
þÿÿÿÿÿÿÿëþ




üþ
		þ



ýþ



"r   )r›   ÚnumpyrJ   r’   Únumpy.testingr   Úscipyr   Úscipy.stats._multicompr   r   r   rT   rT   rT   rU   Ú<module>   s    