§
    fŠtjµ   ã                   ó†   — d dl Z d dl mZmZ d dlZd dlmZm	Z	m
Z
 d dlmZ d dlmZ  G d„ d¦  «        Z G d„ d	¦  «        ZdS )
é    N)ÚraisesÚwarns)Úassert_approx_equalÚassert_allcloseÚassert_equal)Úcdist)Ústatsc                   óˆ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Ze	j
                             ddd	g¦  «        d
„ ¦   «         Zd„ Zd„ ZdS )ÚTestMGCErrorWarningsz1 Tests errors and warnings derived from MGC.
    c                 ó¾   — t          j        d¦  «        }dgdz  }t          t          t          j        ||¦  «         t          t          t          j        ||¦  «         d S )Né   é   ©ÚnpÚarangeÚassert_raisesÚ
ValueErrorr	   Úmultiscale_graphcorr©ÚselfÚxÚys      úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/stats/tests/test_mgc.pyÚtest_error_notndarrayz*TestMGCErrorWarnings.test_error_notndarray   sN   € åŒI�b‰MŒMˆØˆC�"‰HˆÝ•j¥%Ô"<¸aÀÑCÔCÐCÝ•j¥%Ô"<¸aÀÑCÔCÐCÐCÐCó    c                 óÄ   — t          j        d¦  «                             dd¦  «        }|                     dd¦  «        }t          t          t
          j        ||¦  «         d S )Néd   é   é   é
   )r   r   Úreshaper   r   r	   r   r   s      r   Útest_error_shapez%TestMGCErrorWarnings.test_error_shape   sO   € åŒI�c‰NŒN×"Ò" 2 qÑ)Ô)ˆØ�IŠI�b˜"ÑÔˆÝ•j¥%Ô"<¸aÀÑCÔCÐCÐCÐCr   c                 ó˜   — t          j        d¦  «        }t          j        d¦  «        }t          t          t          j        ||¦  «         d S )Né   r   r   s      r   Útest_error_lowsamplesz*TestMGCErrorWarnings.test_error_lowsamples   s9   € åŒI�a‰LŒLˆÝŒI�a‰LŒLˆÝ•j¥%Ô"<¸aÀÑCÔCÐCÐCÐCr   c                 ó  — t          j        dt          ¬¦  «        }t           j        |d<   t	          t
          t          j        ||¦  «         t          j        d¦  «        }t	          t
          t          j        ||¦  «         d S )Nr   )Údtyper   )r   r   ÚfloatÚnanr   r   r	   r   r   s      r   Útest_error_nansz$TestMGCErrorWarnings.test_error_nans    sb   € åŒI�b¥Ð&Ñ&Ô&ˆÝŒvˆˆ!‰Ý•j¥%Ô"<¸aÀÑCÔCÐCåŒI�b‰MŒMˆÝ•j¥%Ô"<¸aÀÑCÔCÐCÐCÐCr   c                 óx   — t          j        d¦  «        }d}t          t          t          j        |||¬¦  «         d S )Nr   r   )Úcompute_distancer   )r   r   r,   s      r   Útest_error_wrongdisttypez-TestMGCErrorWarnings.test_error_wrongdisttype)   sD   € åŒI�b‰MŒMˆØÐÝ•j¥%Ô"<¸aÀØ'7ð	9ñ 	9ô 	9ð 	9ð 	9ð 	9r   ÚrepséÿÿÿÿÚ1c                 ót   — t          j        d¦  «        }t          t          t          j        |||¬¦  «         d S )Nr   ©r.   r   )r   r.   r   s      r   Útest_error_repsz$TestMGCErrorWarnings.test_error_reps0   s3   € õ ŒI�b‰MŒMˆÝ•j¥%Ô"<¸aÀÈÐNÑNÔNÐNÐNÐNr   c                 óx   — t          j        d¦  «        }d}t          t          t          j        |||¬¦  «         d S )Nr   r   r2   )r   r   Úassert_warnsÚRuntimeWarningr	   r   )r   r   r.   s      r   Útest_warns_repsz$TestMGCErrorWarnings.test_warns_reps9   s6   € åŒI�b‰MŒMˆØˆÝ•^¥UÔ%?ÀÀAÈDÐQÑQÔQÐQÐQÐQr   c                 ó²   — t          j        d¦  «        }t          j        d¦  «        t           j        z  }t	          t
          t          j        ||¦  «         d S )Nr   )r   r   ÚonesÚinfr   r   r	   r   r   s      r   Útest_error_inftyz%TestMGCErrorWarnings.test_error_infty?   s@   € åŒI�b‰MŒMˆÝŒG�B‰KŒK�"œ&Ñ ˆÝ•j¥%Ô"<¸aÀÑCÔCÐCÐCÐCr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   r%   r*   r-   ÚpytestÚmarkÚparametrizer3   r7   r;   © r   r   r   r   
   sÛ   € € € € € ðð ðDð Dð DðDð Dð DðDð Dð DðDð Dð Dð9ð 9ð 9ð „[×Ò˜VØ
Øð&ñ ô ðOð Oñ	ô ðOð
Rð Rð RðDð Dð Dð Dð Dr   r   c                   ó<  — e Zd ZdZd„ Zdd„Zej        j        ej         	                    dg d	¢¦  «        d
„ ¦   «         ¦   «         Z
ej        j        ej         	                    dddg¦  «        d„ ¦   «         ¦   «         Zej        j        d„ ¦   «         Zej        j        d„ ¦   «         Zej        j        d„ ¦   «         Zej        j        d„ ¦   «         Zej                             d¦  «        ej        j        d„ ¦   «         ¦   «         Zej        j        d„ ¦   «         ZdS )ÚTestMGCStatz) Test validity of MGC test statistic
    c                 óN   — t           j                             d¦  «        | _        d S )NiâúxK)r   ÚrandomÚdefault_rngÚrng)r   s    r   Úsetup_methodzTestMGCStat.setup_methodI   s   € Ý”9×(Ò(¨Ñ4Ô4ˆŒˆˆr   r   é   Ú Nc                 óÂ  — |p| j         }|dk    r?|                     dd|df¬¦  «        }|d|                     |j        df¬¦  «        z  z   }�nP|dk    r t	          j        | j                              dd|df¬¦  «        ¦  «        }|t	          j        t          j        |z  ¦  «        z  }|t	          j        t          j        |z  ¦  «        z  d	| j                              |j        df¬¦  «        z  z   }nª|d
k    r•| j          	                    |df¬¦  «        }| j          	                    |df¬¦  «        }	| j          
                    dd|df¬¦  «        }
| j          
                    dd|df¬¦  «        }|dz  d|
z  z   dz
  }|	dz  d|z  z   dz
  }nt          d¦  «        ‚|dk    r8| j          	                    ||dz
  f¬¦  «        }t	          j        ||fd¬¦  «        }||fS )NÚlinearr/   rK   ©Úsizeg333333Ó?Ú	nonlinearr   r   gš™™™™™Ù?Úindependenceç      à?)ÚprP   r$   é   z3sim_type must be linear, nonlinear, or independence)Úaxis)rI   ÚuniformrG   rP   r   ÚarrayÚcosÚpiÚsinÚstandard_normalÚbinomialr   Úconcatenate)r   ÚsampsÚdimsÚsim_typerI   r   r   ÚunifÚuÚvÚu_2Úv_2Ú
dims_noises                r   Ú_simulationszTestMGCStat._simulationsL   sþ  € Øˆo�T”Xˆà�xÒÐØ—’˜B ¨°¨
�Ñ3Ô3ˆAØ�C˜#Ÿ*š*¨1¬6°1¨+˜*Ñ6Ô6Ñ6Ñ6ˆA‰Að ˜Ò$Ð$Ý”8˜DœH×,Ò,¨Q°¸À¸
Ð,ÑCÔCÑDÔDˆDØ•r”v�bœe d™lÑ+Ô+Ñ+ˆAØ�œ�rœu t™|Ñ,Ô,Ñ,Ø�T”X—_’_¨1¬6°1¨+�_Ñ6Ô6Ñ6ñ7ˆAˆAð ˜Ò'Ð'Ø”×(Ò(¨u°a¨jÐ(Ñ9Ô9ˆAØ”×(Ò(¨u°a¨jÐ(Ñ9Ô9ˆAØ”(×#Ò# A¨°E¸1°:Ð#Ñ>Ô>ˆCØ”(×#Ò# A¨°E¸1°:Ð#Ñ>Ô>ˆCØ�!‘�a˜‘e‘˜a‘ˆAØ�!‘�a˜‘e‘˜a‘ˆAˆAõ ð ,ñ -ô -ð -ð �!Š8ˆ8Øœ×1Ò1¸¸tÀA¹v°Ð1ÑGÔGˆJÝ”  :˜°QÐ7Ñ7Ô7ˆAà�!ˆtˆr   zsim_type, obs_stat, obs_pvalue))rN   gÜ@%]ï?ç�Ü£'^P?)rQ   gä¤—.Ã?ri   )rR   goØz_ù=p¿g‚ÃnLìÝ?c                 óò   — t           j                             d¦  «        }|                      dd||¬¦  «        \  }}t	          j        |||¬¦  «        \  }}}	t          ||¦  «         t          ||¦  «         d S )Nì   	=gL r   rK   ©r_   r`   ra   rI   ©Úrandom_state©r   rG   rH   rh   r	   r   r   ©
r   ra   Úobs_statÚ
obs_pvaluerI   r   r   ÚstatÚpvalueÚ_s
             r   Ú	test_onedzTestMGCStat.test_onedo   s~   € õ Œi×#Ò# JÑ/Ô/ˆØ× Ò  s°¸XÈ3Ð ÑOÔO‰ˆˆ1õ  Ô4°Q¸ÈÐLÑLÔL‰ˆˆf�aÝ˜˜hÑ'Ô'Ð'Ý˜ 
Ñ+Ô+Ð+Ð+Ð+r   )rN   g´íºxO¶È?ri   )rQ   g	“ÔW‘„?gÌ3m�¿Ë?c                 óò   — t           j                             d¦  «        }|                      dd||¬¦  «        \  }}t	          j        |||¬¦  «        \  }}}	t          ||¦  «         t          ||¦  «         d S )Nrk   r   r   rl   rm   ro   rp   s
             r   Ú
test_fivedzTestMGCStat.test_fived�   s~   € õ Œi×#Ò# JÑ/Ô/ˆØ× Ò  s°¸XÈ3Ð ÑOÔO‰ˆˆ1õ  Ô4°Q¸ÈÐLÑLÔL‰ˆˆf�aÝ˜˜hÑ'Ô'Ð'Ý˜ 
Ñ+Ô+Ð+Ð+Ð+r   c                 ó¾  — | j                              ddd¬¦  «        }| j                              d¬¦  «        }t          j        ||| j         ¬¦  «        \  }}}t          |dd¬	¦  «         t          |d
d¬	¦  «         | j                              d¬¦  «        }t          j        ||d| j         ¬¦  «        \  }}}t          |dd¬	¦  «         t          |d
d¬	¦  «         d S )Nr   rS   )r   r   rO   )éP   r   rm   g      ð?rK   ©Úsignificantçü©ñÒMbP?T)Ú
is_twosamprn   )rI   r]   r\   r	   r   r   ©r   r   r   rs   rt   ru   s         r   Útest_twosampzTestMGCStat.test_twosamp’   sú   € ð ŒH×Ò˜c 3¨XÐÑ6Ô6ˆØŒH×$Ò$¨'Ð$Ñ2Ô2ˆõ  Ô4°Q¸ÈÌÐQÑQÔQ‰ˆˆf�aÝ˜D #°1Ð5Ñ5Ô5Ð5Ý˜F E°qÐ9Ñ9Ô9Ð9ð ŒH×$Ò$¨(Ð$Ñ3Ô3ˆõ  Ô4°Q¸ÀdØBFÄ(ðLñ Lô L‰ˆˆf�aå˜D #°1Ð5Ñ5Ô5Ð5Ý˜F E°qÐ9Ñ9Ô9Ð9Ð9Ð9r   c                 óÆ   — |                       ddd¬¦  «        \  }}t          j        ||d| j        ¬¦  «        \  }}}t	          |dd¬¦  «         t	          |d	d¬¦  «         d S )
Nr   rK   rN   ©r_   r`   ra   rU   )Úworkersrn   ç
×£p=
ï?r{   r}   )rh   r	   r   rI   r   r   s         r   Útest_workerszTestMGCStat.test_workers¦   s   € ð × Ò  s°¸XÐ ÑFÔF‰ˆˆ1õ  Ô4°Q¸À1ØBFÄ(ðLñ Lô L‰ˆˆf�aå˜D $°AÐ6Ñ6Ô6Ð6Ý˜F E°qÐ9Ñ9Ô9Ð9Ð9Ð9r   c                 óº   — |                       ddd¬¦  «        \  }}t          j        ||d¬¦  «        \  }}}t          |dd¬¦  «         t          |dd¬¦  «         d S )	Nr   rK   rN   r‚   rm   r„   r{   r}   )rh   r	   r   r   r   s         r   Útest_random_statezTestMGCStat.test_random_state±   sq   € ð × Ò  s°¸XÐ ÑFÔF‰ˆˆ1õ  Ô4°Q¸ÈÐJÑJÔJ‰ˆˆf�aÝ˜D $°AÐ6Ñ6Ô6Ð6Ý˜F E°qÐ9Ñ9Ô9Ð9Ð9Ð9r   c                 ó  — |                       ddd¬¦  «        \  }}t          ||d¬¦  «        }t          ||d¬¦  «        }t          j        ||d d¬¦  «        \  }}}t	          |dd¬	¦  «         t	          |d
d¬	¦  «         d S )Nr   rK   rQ   r‚   Ú	euclidean)Úmetric)r,   rn   gw¾Ÿ/ÝÄ?r{   r}   )rh   r   r	   r   r   )r   r   r   ÚdistxÚdistyÚ	stat_distÚpvalue_distru   s           r   Útest_dist_permzTestMGCStat.test_dist_perm»   s§   € ð × Ò  s°¸[Ð ÑIÔI‰ˆˆ1Ý�a˜ ;Ð/Ñ/Ô/ˆÝ�a˜ ;Ð/Ñ/Ô/ˆå$)Ô$>¸uÀeØPTØLMð%Oñ %Oô %OÑ!ˆ	�; õ 	˜I u¸!Ð<Ñ<Ô<Ð<Ý˜K¨¸AÐ>Ñ>Ô>Ð>Ð>Ð>r   r   c                 ó’   — |                       ddd¬¦  «        \  }}t          j        ||d¬¦  «        \  }}}t          |d¦  «         d S )Nr   rK   rN   r‚   rm   gœî£'^P?)rh   r	   r   r   )r   r   r   ru   rt   s        r   Útest_pvalue_literaturez"TestMGCStat.test_pvalue_literatureÈ   sW   € ð × Ò  s°¸XÐ ÑFÔF‰ˆˆ1õ Ô1°!°QÀQÐGÑGÔG‰ˆˆ6�1Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óž   — |                       ddd¬¦  «        \  }}t          j        ||d¬¦  «        }t          |j        |j        ¦  «         d S )Nr   rK   rN   r‚   rm   )rh   r	   r   r   rs   Ú	statistic)r   r   r   Úress       r   Ú
test_aliaszTestMGCStat.test_aliasÒ   sS   € ð × Ò  s°¸XÐ ÑFÔF‰ˆˆ1åÔ(¨¨A¸AÐ>Ñ>Ô>ˆÝ�S”X˜sœ}Ñ-Ô-Ð-Ð-Ð-r   )r   rK   rL   N)r<   r=   r>   r?   rJ   rh   r@   rA   ÚxslowrB   rv   rx   r€   r…   r‡   r�   Ú	fail_slowÚslowr‘   r•   rC   r   r   rE   rE   F   sÉ  € € € € € ðð ð5ð 5ð 5ð!ð !ð !ð !ðF „[ÔØ„[×ÒÐ=ð @ð @ð @ñ ô ð,ð ,ñô ñ Ôð,ð „[ÔØ„[×ÒÐ=ð 	3Ø5ð	@ñ ô ð,ð ,ñô ñ Ôð,ð „[Ôð:ð :ñ Ôð:ð& „[Ôð:ð :ñ Ôð:ð „[Ôð:ð :ñ Ôð:ð „[Ôð
?ð 
?ñ Ôð
?ð „[×Ò˜2ÑÔØ„[Ôð(ð (ñ Ôñ Ôð(ð „[Ôð.ð .ñ Ôð.ð .ð .r   rE   )r@   r   r   r   r5   Únumpyr   Únumpy.testingr   r   r   Úscipy.spatial.distancer   Úscipyr	   r   rE   rC   r   r   ú<module>r�      sá   ðØ €€€Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aà Ð Ð Ð Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Là (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð ð9Dð 9Dð 9Dð 9Dð 9Dñ 9Dô 9Dð 9DðxR.ð R.ð R.ð R.ð R.ñ R.ô R.ð R.ð R.ð R.r   