§
    qŠtjÂ#  ã            	       ó‚  — d Z ddlZddlZddlmZ ddlmZmZm	Z	 ddl
mZmZ ddlmZmZmZ ddlmZmZ ddlmZmZ dd	lmZ dd
lmZmZmZ ddlmZ  G d„ dee¦  «        Zej          !                    de¦  «        d„ ¦   «         Z"d„ Z#ej          !                    de¦  «        d„ ¦   «         Z$ej          !                    de¦  «        d„ ¦   «         Z%d„ Z&d„ Z'ej          !                    de¦  «        d„ ¦   «         Z(ej          !                    de¦  «        d„ ¦   «         Z)d„ Z*d„ Z+ej          !                    de¦  «        d„ ¦   «         Z,d„ Z-ej          !                    dddie.dfddie.d fdd!ie.d fd"d#d$œe.d%fg¦  «        d&„ ¦   «         Z/ej          !                    d' e¦   «          e¦   «         f¦  «        d(„ ¦   «         Z0dS ))z)Testing for Spectral Biclustering methodsé    N)Úissparse)ÚBaseEstimatorÚBiclusterMixinÚclone)ÚSpectralBiclusteringÚSpectralCoclustering)Ú_bistochastic_normalizeÚ_log_normalizeÚ_scale_normalize)Úmake_biclustersÚmake_checkerboard)Úconsensus_scoreÚv_measure_score)ÚParameterGrid)Úassert_almost_equalÚassert_array_almost_equalÚassert_array_equal)ÚCSR_CONTAINERSc                   ó   — e Zd Zd„ Zd„ ZdS )ÚMockBiclusteringc                 ó   — d S ©N© )Úselfs    úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/cluster/tests/test_bicluster.pyÚ__init__zMockBiclustering.__init__   s   € Øˆó    c                 ór   — t          j        g d¢¦  «        d         t          j        g d¢¦  «        d         fS )N)TTFFTr   )FFTT)ÚnpÚwhere)r   Úis     r   Úget_indiceszMockBiclustering.get_indices   s@   € õ ŒHÐ5Ð5Ð5Ñ6Ô6°qÔ9ÝŒHÐ/Ð/Ð/Ñ0Ô0°Ô3ð
ð 	
r   N)Ú__name__Ú
__module__Ú__qualname__r   r"   r   r   r   r   r      s2   € € € € € ðð ð ð
ð 
ð 
ð 
ð 
r   r   Úcsr_containerc                 óä  — t          j        d¦  «                             dd¦  «        }t          ¦   «         }| | |¦  «        |                     ¦   «         fD ]˜}|                     d|¦  «        }t          |¦  «        r|                     ¦   «         }t          |ddgddgd	d
gg¦  «         d|d d …<   t          |¦  «        r|                     ¦   «         }t          j	        |dk    ¦  «        sJ ‚Œ™d S )Né   é   é   r   é   é   é   é   é   é   éÿÿÿÿ)
r   ÚarangeÚreshaper   ÚtolistÚget_submatrixr   Útoarrayr   Úall)r&   ÚdataÚmodelÚXÚ	submatrixs        r   Útest_get_submatrixr<   &   s÷   € åŒ9�R‰=Œ=× Ò   AÑ&Ô&€DÝÑÔ€Eà�M�M $Ñ'Ô'¨¯ª©¬Ð7ð ð ˆØ×'Ò'¨¨1Ñ-Ô-ˆ	Ý�IÑÔð 	,Ø!×)Ò)Ñ+Ô+ˆIÝ˜9¨¨1 v°°1¨v¸¸B°xÐ&@ÑAÔAÐAØˆ	�!�!�!‰Ý�A‰;Œ;ð 	Ø—	’	‘”ˆAÝŒv�a˜2’g‰ŒÐÐˆÐðð r   c                 óè   — t          | j        ¦  «        D ]\}|                      |¦  «        \  }}|                      |¦  «        \  }}t	          |¦  «        |k    sJ ‚t	          |¦  «        |k    sJ ‚Œ]d S r   )ÚrangeÚ
n_clustersÚ	get_shaper"   Úlen)r9   r!   ÚmÚnÚi_indÚj_inds         r   Ú_test_shape_indicesrF   6   sz   € å�5Ô#Ñ$Ô$ð ð ˆØ�Š˜qÑ!Ô!‰ˆˆ1Ø×(Ò(¨Ñ+Ô+‰ˆˆuÝ�5‰zŒz˜QŠˆˆˆÝ�5‰zŒz˜QŠˆˆˆˆð	ð r   c                 óª  — ddgd dgddgdgdgdœ}t          d	d
d| ¬¦  «        \  }}}||                     ¦   «         z  }t          j        |dk     d|¦  «        }| ||¦  «        fD ]ì}t	          |¦  «        D ]Ú}t          dd
| dœ|¤Ž}|                     |¦  «         |j        j        dk    sJ ‚t          |j         
                    d¬¦  «        t          j        d¦  «        ¦  «         t          |j         
                    d¬¦  «        t          j        d¦  «        ¦  «         t          |j        ||f¦  «        dk    sJ ‚t          |¦  «         ŒÛŒíd S )NÚ
randomizedÚarpackr(   FTú	k-means++é
   )Ú
svd_methodÚ
n_svd_vecsÚ
mini_batchÚinitÚn_init©é   rR   r,   gš™™™™™¹?©ÚnoiseÚrandom_stateé   r   )r?   rU   )r,   rR   ©ÚaxisrR   r   )r   Úminr   r    r   r   ÚfitÚrows_Úshaper   ÚsumÚonesÚcolumns_r   Úbiclusters_rF   )	Úglobal_random_seedr&   Ú
param_gridÚSÚrowsÚcolsÚmatÚkwargsr9   s	            r   Útest_spectral_coclusteringrh   ?   s˜  € ð $ XÐ.Ø˜R�jØ˜d�mØ�Ø�$ðð €Jõ $Ø�!˜3Ð-?ðñ ô �M€A€tˆTð ˆ�Š‰Œ�L€AÝ
Œ��Q’˜˜1ÑÔ€AØ�=�= Ñ#Ô#Ð$ð 'ð 'ˆÝ# JÑ/Ô/ð 	'ð 	'ˆFÝ(ð ØÐ+=ðð ØAGðð ˆEð �IŠI�c‰NŒNˆNà”;Ô$¨Ò/Ð/Ð/Ð/Ý˜uœ{Ÿš°A˜Ñ6Ô6½¼À¹¼ÑDÔDÐDÝ˜uœ~×1Ò1°qÐ1Ñ9Ô9½2¼7À2¹;¼;ÑGÔGÐGÝ" 5Ô#4°t¸T°lÑCÔCÀqÒHÐHÐHÐHå Ñ&Ô&Ð&Ð&ð	'ð'ð 'r   c                 óÒ  — t          ddd| ¬¦  «        \  }}}ddgdgdgd	gd
œ}| ||¦  «        fD �]´}|                     ¦   «         D �]›\  }}|D �]‘}	t          ddd| ¬¦  «        }
 |
j        di t	          ||	fg¦  «        ¤Ž t          |¦  «        rr|
                     ¦   «                              d¦  «        dk    rGt          j	        t          ¦  «        5  |
                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œ´|
                     |¦  «         |
j        j        dk    sJ ‚|
j        j        dk    sJ ‚t          |
j                             d¬¦  «        t#          j        dd¦  «        ¦  «         t          |
j                             d¬¦  «        t#          j        dd¦  «        ¦  «         t'          |
j        ||f¦  «        dk    sJ ‚t+          |
¦  «         �Œ“�Œ��Œ¶d S )NrQ   r,   g      à?rS   ÚscaleÚlogrI   r(   T)ÚmethodrL   rM   rN   rJ   )r?   rP   rO   rU   rl   )é	   rR   r   rW   rR   rV   r   )r   Úitemsr   Ú
set_paramsÚdictr   Ú
get_paramsÚgetÚpytestÚraisesÚ
ValueErrorrZ   r[   r\   r_   r   r]   r   Úrepeatr   r`   rF   )ra   r&   rc   rd   re   Únon_default_paramsrf   Ú
param_nameÚparam_valuesÚparam_valuer9   s              r   Útest_spectral_biclusteringr{   ]   sn  € õ &Ø�!˜3Ð-?ðñ ô �M€A€tˆTð
 ˜EÐ"Ø�jØ�dØ�fð	ð Ðð �=�= Ñ#Ô#Ð$ð +ñ +ˆØ(:×(@Ò(@Ñ(BÔ(Bð 	+ñ 	+Ñ$ˆJ˜Ø+ð +ñ +�Ý,Ø ØØ$Ø!3ð	ñ ô �ð !�Ô ÐEÐE¥4¨*°kÐ)BÐ(CÑ#DÔ#DÐEÐEÐEå˜C‘=”=ð # U×%5Ò%5Ñ%7Ô%7×%;Ò%;¸HÑ%EÔ%EÈÒ%NÐ%Nåœ¥zÑ2Ô2ð 'ð 'ØŸ	š	 #™œ˜ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'àà—I’I˜c‘N”N�Nà”{Ô(¨GÒ3Ð3Ð3Ð3Ø”~Ô+¨wÒ6Ð6Ð6Ð6Ý" 5¤;§?¢?¸ ?Ñ#:Ô#:½B¼IÀaÈÑ<LÔ<LÑMÔMÐMÝ" 5¤>×#5Ò#5¸1Ð#5Ñ#=Ô#=½r¼yÈÈBÑ?OÔ?OÑPÔPÐPÝ& uÔ'8¸4À¸,ÑGÔGÈ1ÒLÐLÐLÐLå# EÑ*Ô*Ð*Ñ*ñ/+ñ	+ð+ð +s   ÃC8	Ã8C<Ã?C<c                 óð  — |                       d¬¦  «        }|                       d¬¦  «        }t          | ¦  «        rLt          j        |¦  «                             ¦   «         }t          j        |¦  «                             ¦   «         }t          |t          j        |                     ¦   «         d¦  «        d¬¦  «         t          |t          j        |                     ¦   «         d¦  «        d¬¦  «         dS )z<Check that rows sum to one constant, and columns to another.rV   rW   r   éd   ©ÚdecimalN)r]   r   r   ÚasarrayÚsqueezer   ÚtileÚmean)ÚscaledÚrow_sumÚcol_sums      r   Ú_do_scale_testr‡   ‡   sÆ   € à�jŠj˜aˆjÑ Ô €GØ�jŠj˜aˆjÑ Ô €GÝ�ÑÔð 0Ý”*˜WÑ%Ô%×-Ò-Ñ/Ô/ˆÝ”*˜WÑ%Ô%×-Ò-Ñ/Ô/ˆÝ˜g¥r¤w¨w¯|ª|©~¬~¸sÑ'CÔ'CÈQÐOÑOÔOÐOÝ˜g¥r¤w¨w¯|ª|©~¬~¸sÑ'CÔ'CÈQÐOÑOÔOÐOÐOÐOr   c                 óà   — t          | ¦  «         t          |                      d¬¦  «                             ¦   «         |                      d¬¦  «                             ¦   «         d¬¦  «         dS )z5Check that rows and columns sum to the same constant.r   rW   rV   r~   N)r‡   r   r]   rƒ   )r„   s    r   Ú_do_bistochastic_testr‰   ’   s`   € å�6ÑÔÐÝ˜Ÿ
š
¨˜
Ñ*Ô*×/Ò/Ñ1Ô1°6·:²:À1°:Ñ3EÔ3E×3JÒ3JÑ3LÔ3LÐVWÐXÑXÔXÐXÐXÐXr   c                 ó  — t           j                             | ¦  «        }|                     dd¦  «        }| ||¦  «        fD ]D}t	          |¦  «        \  }}}t          |¦  «         t          |¦  «        rt          |¦  «        sJ ‚ŒEd S ©Nr}   )r   ÚrandomÚRandomStateÚrandr   r‡   r   )ra   r&   Ú	generatorr:   rf   r„   Ú_s          r   Útest_scale_normalizer‘   ˜   s—   € å”	×%Ò%Ð&8Ñ9Ô9€IØ�Š�s˜CÑ Ô €AØ�=�= Ñ#Ô#Ð$ð $ð $ˆÝ'¨Ñ,Ô,‰ˆ��1Ý�vÑÔÐÝ�C‰=Œ=ð 	$Ý˜FÑ#Ô#Ð#Ð#Ð#øð	$ð $r   c                 ó  — t           j                             | ¦  «        }|                     dd¦  «        }| ||¦  «        fD ]@}t	          |¦  «        }t          |¦  «         t          |¦  «        rt          |¦  «        sJ ‚ŒAd S r‹   )r   rŒ   r�   rŽ   r	   r‰   r   )ra   r&   r�   r:   rf   r„   s         r   Útest_bistochastic_normalizer“   £   s‘   € å”	×%Ò%Ð&8Ñ9Ô9€IØ�Š�s˜CÑ Ô €AØ�=�= Ñ#Ô#Ð$ð $ð $ˆÝ(¨Ñ-Ô-ˆÝ˜fÑ%Ô%Ð%Ý�C‰=Œ=ð 	$Ý˜FÑ#Ô#Ð#Ð#Ð#øð	$ð $r   c                 ó²   — t           j                             | ¦  «        }|                     dd¦  «        }t	          |¦  «        dz   }t          |¦  «         d S )Nr}   rV   )r   rŒ   r�   rŽ   r
   r‰   )ra   r�   rf   r„   s       r   Útest_log_normalizer•   ®   sS   € õ ”	×%Ò%Ð&8Ñ9Ô9€IØ
�.Š.˜˜cÑ
"Ô
"€CÝ˜CÑ Ô  1Ñ$€FÝ˜&Ñ!Ô!Ð!Ð!Ð!r   c                 óÀ   — t          | ¬¦  «        }t          j        g d¢g d¢g d¢g¦  «        }|                     |dd¬¦  «        }t	          ||d d…         ¦  «         d S )N©rU   )r   r   r   rV   rV   rV   )r+   r+   r+   r,   r,   r,   )r   rV   r+   r,   r*   r)   r+   )Ún_bestr?   )r   r   ÚarrayÚ_fit_best_piecewiser   )ra   r9   ÚvectorsÚbests       r   Útest_fit_best_piecewiser�   ·   sv   € Ý Ð.@ÐAÑAÔA€EÝŒhÐ*Ð*Ð*Ð,>Ð,>Ð,>Ð@RÐ@RÐ@RÐSÑTÔT€GØ×$Ò$ W°QÀ1Ð$ÑEÔE€DÝ�t˜W R a Rœ[Ñ)Ô)Ð)Ð)Ð)r   c                 ó0  — t          | ¬¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        ddgddgddgg¦  «        }| ||¦  «        fD ]:}|                     ||d¬¦  «        }t	          t          |g d¢¦  «        d	¦  «         Œ;d S )
Nr—   )rV   rV   rV   )r,   r-   r,   rV   r   r+   )r?   )r   r   rV   rV   g      ð?)r   r   r™   Ú_project_and_clusterr   r   )ra   r&   r9   r8   r›   rf   Úlabelss          r   Útest_project_and_clusterr¡   ¾   sÄ   € å Ð.@ÐAÑAÔA€EÝŒ8�Y�Y�Y 	 	 	¨9¨9¨9°i°i°iÐ@ÑAÔA€DÝŒh˜˜A˜  A ¨¨A¨Ð/Ñ0Ô0€GØ�m�m DÑ)Ô)Ð*ð Hð HˆØ×+Ò+¨C°ÀQÐ+ÑGÔGˆÝ�O¨F°L°L°LÑAÔAÀ3ÑGÔGÐGÐGðHð Hr   c                 óà  — t          dd| ¬¦  «        }t          ddd| ¬¦  «        \  }}}|                     |¦  «         t          |j        ||f¦  «        dk    sJ ‚t          ddd| ¬¦  «        \  }}}|                     |¦  «         t          |j        ||f¦  «        dk    sJ ‚t          d	dd| ¬¦  «        \  }}}|                     |¦  «         t          |j        ||f¦  «        dk    sJ ‚d S )
Nr,   rI   )rL   rU   rQ   r   rS   rV   )é(   rR   )rR   r£   )r   r   rZ   r   r`   )ra   r9   rc   rd   re   s        r   Útest_perfect_checkerboardr¤   È   s+  € å Ø	�hÐ-?ðñ ô €Eõ &Ø�!˜1Ð+=ðñ ô �M€A€tˆTð 
‡I‚Iˆa�L„L€LÝ˜5Ô,¨t°T¨lÑ;Ô;¸qÒ@Ð@Ð@Ð@å%Ø�!˜1Ð+=ðñ ô �M€A€tˆTð 
‡I‚Iˆa�L„L€LÝ˜5Ô,¨t°T¨lÑ;Ô;¸qÒ@Ð@Ð@Ð@å%Ø�!˜1Ð+=ðñ ô �M€A€tˆTð 
‡I‚Iˆa�L„L€LÝ˜5Ô,¨t°T¨lÑ;Ô;¸qÒ@Ð@Ð@Ð@Ð@Ð@r   zparams, type_err, err_msgr?   r-   z#n_clusters should be <= n_samples=5)r,   r,   r,   zIncorrect parameter n_clusters)r,   r-   r,   r*   )Ún_componentsr˜   z"n_best=4 must be <= n_components=3c                 óô   — t          j        d¦  «                             d¦  «        }t          di | ¤Ž}t	          j        ||¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z5Check parameters validation in `SpectralBiClustering`é   )r)   r)   )ÚmatchNr   )r   r2   r3   r   rs   rt   rZ   )ÚparamsÚtype_errÚerr_msgr8   r9   s        r   Ú.test_spectralbiclustering_parameter_validationr¬   á   sº   € õ6 Œ9�R‰=Œ=× Ò  Ñ(Ô(€DÝ Ð*Ð* 6Ð*Ð*€EÝ	Œ�x wÐ	/Ñ	/Ô	/ð ð Ø�	Š	�$‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á
A-Á-A1Á4A1Úestc                 ó¸   — t          ddd¬¦  «        \  }}}t          | ¦  «        } t          | d¦  «        rJ ‚|                      |¦  «         | j        dk    sJ ‚d S )N)r,   r,   r,   r   r—   Ún_features_in_)r   r   ÚhasattrrZ   r¯   )r­   r:   r�   s      r   Útest_n_features_in_r±     sg   € å˜f a°aÐ8Ñ8Ô8�G€A€qˆ!å
�‰*Œ*€CÝ�sÐ,Ñ-Ô-Ð-Ð-Ð-Ø‡G‚GˆA�J„J€JØÔ Ò"Ð"Ð"Ð"Ð"Ð"r   )1Ú__doc__Únumpyr   rs   Úscipy.sparser   Úsklearn.baser   r   r   Úsklearn.clusterr   r   Úsklearn.cluster._biclusterr	   r
   r   Úsklearn.datasetsr   r   Úsklearn.metricsr   r   Úsklearn.model_selectionr   Úsklearn.utils._testingr   r   r   Úsklearn.utils.fixesr   r   ÚmarkÚparametrizer<   rF   rh   r{   r‡   r‰   r‘   r“   r•   r�   r¡   r¤   ru   r¬   r±   r   r   r   ú<module>r¿      s­  ðØ /Ð /à Ð Ð Ð Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !à =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðð ð ð ð ð ð ð ð ð ð
 @Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð
 /Ð .Ð .Ð .Ð .Ð .ð

ð 

ð 

ð 

ð 

�~ }ñ 

ô 

ð 

ð „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ððð ð ð „×Ò˜¨.Ñ9Ô9ð'ð 'ñ :Ô9ð'ð: „×Ò˜¨.Ñ9Ô9ð&+ð &+ñ :Ô9ð&+ðRPð Pð PðYð Yð Yð „×Ò˜¨.Ñ9Ô9ð$ð $ñ :Ô9ð$ð „×Ò˜¨.Ñ9Ô9ð$ð $ñ :Ô9ð$ð"ð "ð "ð*ð *ð *ð „×Ò˜¨.Ñ9Ô9ðHð Hñ :Ô9ðHðAð Að Að2 „×ÒØð ˜1ÐØØ1ð	
ð ˜9Ð%ØØ,ð	
ð ˜6Ð"ØØ,ð	
ð ¨!Ð,Ð,ØØ0ð	
ð!ñô ð2ð ñ3ô ð2ð „×Ò˜Ð!5Ð!5Ñ!7Ô!7Ð9MÐ9MÑ9OÔ9OÐ PÑQÔQð#ð #ñ RÔQð#ð #ð #r   