§
    qŠtj´?  ã                   ól  — d dl Z d dlmZ d dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d d	lmZmZmZmZ d d
lmZ d„ Zej                             de¦  «        d„ ¦   «         Zej                             de¦  «        d„ ¦   «         Zej                             de¦  «        d„ ¦   «         Zej                             de¦  «        d„ ¦   «         Z ej                             de¦  «        d„ ¦   «         Z!d„ Z"ej                             dd¦  «        d„ ¦   «         Z#d„ Z$d„ Z%ej        j&        eej                             de¦  «        ej                             dd¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Z'ej        j&        eej                             de¦  «        d„ ¦   «         ¦   «         ¦   «         Z(d„ Z)ej                             dd¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Z*ej                             dd¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Z+ej                             de¦  «        d„ ¦   «         Z,ej                             de¦  «        d„ ¦   «         Z-ej                             de¦  «        d„ ¦   «         Z.ej                             de¦  «        d „ ¦   «         Z/d!„ Z0d"„ Z1ej                             d#g d$¢¦  «        ej                             de¦  «        ej        j&        d%„ ¦   «         ¦   «         ¦   «         Z2ej                             de¦  «        d&„ ¦   «         Z3ej                             d'd(¦  «        d)„ ¦   «         Z4ej                             d'd(¦  «        d*„ ¦   «         Z5dS )+é    N)ÚStringIO)Úassert_array_equal)Ú
block_diag)Úpsi)ÚLatentDirichletAllocation)Ú_dirichlet_expectation_1dÚ_dirichlet_expectation_2d)ÚNotFittedError)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚ!if_safe_multiprocessing_with_blas)ÚCSR_CONTAINERSc                 óz   — d}t          j        d|t          ¬¦  «        }|g|z  }t          |Ž } | |¦  «        }||fS )Né   )r   r   )Údtype)ÚnpÚfullÚintr   )Úcsr_containerÚn_componentsÚblockÚblocksÚXs        úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/decomposition/tests/test_online_lda.pyÚ_build_sparse_arrayr      sO   € ð €LÝŒG�F˜LµÐ4Ñ4Ô4€EØˆW�|Ñ#€FÝ�FÐ€AØˆ�aÑÔ€AØ˜!ÐÐó    r   c                 óð   — t          | ¦  «        \  }}d|z  }t          |||d¬¦  «        }t          |d¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          ||¦  «         d S )Ng      ð?r   )r   Údoc_topic_priorÚtopic_word_priorÚrandom_state©r   r!   )r   r   Úfit_transformr   )r   r   r   ÚpriorÚlda_1Úlda_2Útopic_distr_1Útopic_distr_2s           r   Útest_lda_default_prior_paramsr)   $   s�   € õ *¨-Ñ8Ô8�O€L�!Ø�,Ñ€EÝ%Ø!ØØØð	ñ ô €Eõ &°<ÈaÐPÑPÔP€EØ×'Ò'¨Ñ*Ô*€MØ×'Ò'¨Ñ*Ô*€MÝ˜ }Ñ5Ô5Ð5Ð5Ð5r   c                 óx  — t           j                             d¦  «        }t          | ¦  «        \  }}t	          |dd|¬¦  «        }|                     |¦  «         g d¢}|j        D ]T}t          |                     ¦   «         dd …         d d d…         ¦  «        }t          t          |¦  «        ¦  «        |v sJ ‚ŒUd S )Nr   é   Úbatch)r   Úevaluate_everyÚlearning_methodr!   ©)r   r+   é   )r   é   é   )é   é   é   éýÿÿÿéÿÿÿÿ©r   ÚrandomÚRandomStater   r   ÚfitÚcomponents_ÚsetÚargsortÚtupleÚsorted©r   Úrngr   r   ÚldaÚcorrect_idx_grpsÚ	componentÚtop_idxs           r   Útest_lda_fit_batchrG   6   sÒ   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ)¨-Ñ8Ô8�O€L�!Ý
#Ø!ØØØð	ñ ô €Cð ‡G‚GˆA�J„J€Jà8Ð8Ð8ÐØ”_ð :ð :ˆ	å�i×'Ò'Ñ)Ô)¨"¨#¨#Ô.¨t¨t°¨tÔ4Ñ5Ô5ˆÝ•V˜G‘_”_Ñ%Ô%Ð)9Ð9Ð9Ð9Ð9Ð9ð:ð :r   c                 óz  — t           j                             d¦  «        }t          | ¦  «        \  }}t	          |ddd|¬¦  «        }|                     |¦  «         g d¢}|j        D ]T}t          |                     ¦   «         dd …         d d d…         ¦  «        }t          t          |¦  «        ¦  «        |v sJ ‚ŒUd S )	Nr   ç      $@r+   Úonline)r   Úlearning_offsetr-   r.   r!   r/   r6   r7   r8   rA   s           r   Útest_lda_fit_onlinerL   J   sÕ   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ)¨-Ñ8Ô8�O€L�!Ý
#Ø!ØØØ Øðñ ô €Cð ‡G‚GˆA�J„J€Jà8Ð8Ð8ÐØ”_ð :ð :ˆ	å�i×'Ò'Ñ)Ô)¨"¨#¨#Ô.¨t¨t°¨tÔ4Ñ5Ô5ˆÝ•V˜G‘_”_Ñ%Ô%Ð)9Ð9Ð9Ð9Ð9Ð9ð:ð :r   c                 óœ  — t           j                             d¦  «        }t          | ¦  «        \  }}t	          |dd|¬¦  «        }t          d¦  «        D ]}|                     |¦  «         Œg d¢}|j        D ]T}t          | 	                    ¦   «         dd …         d d d…         ¦  «        }t          t          |¦  «        ¦  «        |v sJ ‚ŒUd S )	Nr   rI   éd   ©r   rK   Útotal_samplesr!   r   r/   r6   r7   ©r   r9   r:   r   r   ÚrangeÚpartial_fitr<   r=   r>   r?   r@   ©	r   rB   r   r   rC   ÚirD   ÚcrF   s	            r   Útest_lda_partial_fitrW   _   sé   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ)¨-Ñ8Ô8�O€L�!Ý
#Ø!ØØØð	ñ ô €Cõ �1‰XŒXð ð ˆØ�Š˜ÑÔÐÐà8Ð8Ð8ÐØŒ_ð :ð :ˆÝ�a—i’i‘k”k " # #Ô& t t¨ tÔ,Ñ-Ô-ˆÝ•V˜G‘_”_Ñ%Ô%Ð)9Ð9Ð9Ð9Ð9Ð9ð:ð :r   c                 óš  — t           j                             d¦  «        }t          | ¦  «        \  }}t	          |d|¬¦  «        }|                     |                     ¦   «         ¦  «         g d¢}|j        D ]T}t          | 	                    ¦   «         dd …         d d d…         ¦  «        }t          t          |¦  «        ¦  «        |v sJ ‚ŒUd S )Nr   r,   ©r   r.   r!   r/   r6   r7   )r   r9   r:   r   r   r;   Útoarrayr<   r=   r>   r?   r@   rA   s           r   Útest_lda_dense_inputr[   t   sØ   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ)¨-Ñ8Ô8�O€L�!Ý
#Ø!°7Èðñ ô €Cð ‡G‚GˆA�IŠI‰KŒKÑÔÐà8Ð8Ð8ÐØ”_ð :ð :ˆ	å�i×'Ò'Ñ)Ô)¨"¨#¨#Ô.¨t¨t°¨tÔ4Ñ5Ô5ˆÝ•V˜G‘_”_Ñ%Ô%Ð)9Ð9Ð9Ð9Ð9Ð9ð:ð :r   c                  ó  — t           j                             d¦  «        } |                      dd¬¦  «        }d}t	          || ¬¦  «        }|                     |¦  «        }|dk                         ¦   «         sJ ‚t          t          j        |d¬	¦  «        t          j	        |j
        d         ¦  «        ¦  «         |                     |d
¬¦  «        }t          |||                     d¬	¦  «        d d …t           j        f         z  ¦  «         d S )Nr   r2   ©é   é
   ©Úsizer   r"   g        r+   ©ÚaxisF)Ú	normalize)r   r9   r:   Úrandintr   r#   Úanyr   ÚsumÚonesÚshapeÚ	transformÚnewaxis)rB   r   r   rC   ÚX_transÚX_trans_unnormalizeds         r   Útest_lda_transformrn   …   s  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�Š�A˜HˆÑ%Ô%€AØ€LÝ
#°ÈCÐ
PÑ
PÔ
P€CØ×Ò Ñ"Ô"€GØ�cŠM×ÒÑ Ô Ð Ð Ð Ý�bœf W°1Ð5Ñ5Ô5µr´w¸w¼}ÈQÔ?OÑ7PÔ7PÑQÔQÐQàŸ=š=¨°e˜=Ñ<Ô<ÐÝØÐ%Ð(<×(@Ò(@ÀaÐ(@Ñ(HÔ(HÈÈÈÍBÌJÈÔ(WÑWñô ð ð ð r   Úmethod)rJ   r,   c                 ó  — t           j                             d¦  «        }|                     dd¬¦  «        }t	          d| |¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          ||d¦  «         d S )Nr   r_   )é2   r^   r`   r2   rY   r1   )r   r9   r:   re   r   r#   rj   r   )ro   rB   r   rC   ÚX_fitrl   s         r   Útest_lda_fit_transformrs   –   s‡   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�Š�B˜XˆÑ&Ô&€AÝ
#Ø¨¸Sðñ ô €Cð ×Ò˜aÑ Ô €EØ�mŠm˜AÑÔ€GÝ˜e W¨aÑ0Ô0Ð0Ð0Ð0r   c                  óâ   — t          j        dd¦  «        } t          ¦   «         }d}t          j        t
          |¬¦  «        5  |                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r2   r_   ç      ð¿z^Negative values in data passed©Úmatch)r   r   r   ÚpytestÚraisesÚ
ValueErrorr;   )r   rC   Úregexs      r   Útest_lda_negative_inputr|   ¤   s«   € å
Œ�˜ÑÔ€AÝ
#Ñ
%Ô
%€CØ.€EÝ	Œ•z¨Ð	/Ñ	/Ô	/ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA$Á$A(Á+A(c                  ó$  — t           j                             d¦  «        } |                      dd¬¦  «        }t	          ¦   «         }d}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r1   r]   r`   z}This LatentDirichletAllocation instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.rv   )	r   r9   r:   re   r   rx   ry   r
   Ú
perplexity)rB   r   rC   r{   s       r   Útest_lda_no_component_errorr   ­   sÎ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š�A˜HˆÑ%Ô%€AÝ
#Ñ
%Ô
%€Cð	ð 
õ
 
Œ•~¨UÐ	3Ñ	3Ô	3ð ð Ø�Š�qÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á"BÂB	ÂB	c                 óz  — t          |¦  «        \  }}t          j                             d¦  «        }t	          |d| d|¬¦  «        }|                     |¦  «         g d¢}|j        D ]T}t          |                     ¦   «         dd …         d d d…         ¦  «        }t          t          |¦  «        ¦  «        |v sJ ‚ŒUd S )Nr   r0   r+   )r   Ún_jobsr.   r-   r!   r/   r6   r7   )r   r   r9   r:   r   r;   r<   r=   r>   r?   r@   )	ro   r   r   r   rB   rC   rD   rV   rF   s	            r   Útest_lda_multi_jobsr‚   ½   sÑ   € õ
 *¨-Ñ8Ô8�O€L�!å
Œ)×
Ò
 Ñ
"Ô
"€CÝ
#Ø!ØØØØðñ ô €Cð ‡G‚GˆA�J„J€Jà8Ð8Ð8ÐØŒ_ð :ð :ˆÝ�a—i’i‘k”k " # #Ô& t t¨ tÔ,Ñ-Ô-ˆÝ•V˜G‘_”_Ñ%Ô%Ð)9Ð9Ð9Ð9Ð9Ð9ð:ð :r   c                 óž  — t           j                             d¦  «        }t          | ¦  «        \  }}t	          |ddd|¬¦  «        }t          d¦  «        D ]}|                     |¦  «         Œg d¢}|j        D ]T}t          | 	                    ¦   «         dd …         d d d…         ¦  «        }t          t          |¦  «        ¦  «        |v sJ ‚ŒUd S )	Nr   r0   ç      @é   )r   r�   rK   rP   r!   r/   r6   r7   rQ   rT   s	            r   Útest_lda_partial_fit_multi_jobsr†   Ö   sì   € õ
 Œ)×
Ò
 Ñ
"Ô
"€CÝ)¨-Ñ8Ô8�O€L�!Ý
#Ø!ØØØØðñ ô €Cõ �1‰XŒXð ð ˆØ�Š˜ÑÔÐÐà8Ð8Ð8ÐØŒ_ð :ð :ˆÝ�a—i’i‘k”k " # #Ô& t t¨ tÔ,Ñ-Ô-ˆÝ•V˜G‘_”_Ñ%Ô%Ð)9Ð9Ð9Ð9Ð9Ð9ð:ð :r   c                  óÈ  — t           j                             d¦  «        } |                      dd¦  «        }|                      dd¦  «        }t           j                             d|df¬¦  «        }t	          |dd| ¬	¦  «        }|                     |¦  «         |                      d|d
z   |f¬¦  «        }t          j        t          d¬¦  «        5  | 	                    ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d||d
z   f¬¦  «        }t          j        t          d¬¦  «        5  | 	                    ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r3   r_   r1   r`   r„   r^   rO   r+   zNumber of samplesrv   zNumber of topics)
r   r9   r:   re   r   r;   rx   ry   rz   Ú_perplexity_precomp_distr)rB   r   Ú	n_samplesr   rC   Úinvalid_n_samplesÚinvalid_n_componentss          r   Útest_lda_preplexity_mismatchrŒ   í   sà  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ—;’;˜q !Ñ$Ô$€LØ—’˜A˜rÑ"Ô"€IÝ
Œ	×Ò˜! 9¨b /ÐÑ2Ô2€AÝ
#Ø!ØØØð	ñ ô €Cð ‡G‚GˆA�J„J€JàŸš A¨Y¸©]¸LÐ,I˜ÑJÔJÐÝ	Œ•zÐ)=Ð	>Ñ	>Ô	>ð <ð <Ø×%Ò% aÐ):Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð Ÿ;š; q°	¸<È!Ñ;KÐ/L˜;ÑMÔMÐÝ	Œ•zÐ)<Ð	=Ñ	=Ô	=ð ?ð ?Ø×%Ò% aÐ)=Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð ?ð ?s$   ÃC1Ã1C5Ã8C5Ä3EÅEÅEc                 ó¦  — t          |¦  «        \  }}t          |d| dd¬¦  «        }t          |d| dd¬¦  «        }|                     |¦  «         |                     |d¬¦  «        }|                     |¦  «         |                     |d¬¦  «        }||k    sJ ‚|                     |d¬¦  «        }|                     |d¬¦  «        }	||	k    sJ ‚d S )	Nr+   rN   r   ©r   Úmax_iterr.   rP   r!   r_   F©Úsub_samplingT)r   r   r;   r~   )
ro   r   r   r   r%   r&   Úperp_1Úperp_2Úperp_1_subsamplingÚperp_2_subsamplings
             r   Útest_lda_perplexityr–     s  € õ
 *¨-Ñ8Ô8�O€L�!Ý%Ø!ØØØØðñ ô €Eõ &Ø!ØØØØðñ ô €Eð 
‡I‚Iˆa�L„L€LØ×Ò˜a¨eÐÑ4Ô4€Fà	‡I‚Iˆa�L„L€LØ×Ò˜a¨eÐÑ4Ô4€FØ�VÒÐÐÐà×)Ò)¨!¸$Ð)Ñ?Ô?ÐØ×)Ò)¨!¸$Ð)Ñ?Ô?ÐØÐ!3Ò3Ð3Ð3Ð3Ð3Ð3r   c                 ó2  — t          |¦  «        \  }}t          |d| dd¬¦  «        }t          |d| dd¬¦  «        }|                     |¦  «         |                     |¦  «        }|                     |¦  «         |                     |¦  «        }||k    sJ ‚d S )Nr+   rN   r   rŽ   r_   )r   r   r#   Úscore)ro   r   r   r   r%   r&   Úscore_1Úscore_2s           r   Útest_lda_scorer›   $  s¼   € õ
 *¨-Ñ8Ô8�O€L�!Ý%Ø!ØØØØðñ ô €Eõ &Ø!ØØØØðñ ô €Eð 
×Ò˜ÑÔÐØ�kŠk˜!‰nŒn€Gà	×Ò˜ÑÔÐØ�kŠk˜!‰nŒn€GØ�gÒÐÐÐÐÐr   c                 ó  — t          | ¦  «        \  }}t          |dddd¬¦  «        }|                     |¦  «         |                     |¦  «        }|                     |                     ¦   «         ¦  «        }t          ||¦  «         d S )Nr+   r,   rN   r   rŽ   )r   r   r;   r~   rZ   r   )r   r   r   rC   r’   r“   s         r   Útest_perplexity_input_formatr�   @  s‰   € õ *¨-Ñ8Ô8�O€L�!Ý
#Ø!ØØØØðñ ô €Cð ‡G‚GˆA�J„J€JØ�^Š^˜AÑÔ€FØ�^Š^˜AŸIšI™KœKÑ(Ô(€FÝ˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óR  — t          | ¦  «        \  }}t          |dd¬¦  «        }|                     |¦  «         |                     |d¬¦  «        }|                     |¦  «        }t          j        d|t          j        |j        ¦  «        z  z  ¦  «        }t          ||¦  «         d S )Nr_   r   )r   r�   r!   Fr�   ru   )
r   r   r;   r~   r˜   r   Úexprg   Údatar   )r   r   r   rC   Úperplexity_1r˜   Úperplexity_2s          r   Útest_lda_score_perplexityr£   R  sž   € õ *¨-Ñ8Ô8�O€L�!Ý
#Ø!¨B¸Qðñ ô €Cð ‡G‚GˆA�J„J€JØ—>’> !°%�>Ñ8Ô8€Là�IŠI�a‰LŒL€EÝ”6˜$ %­"¬&°´©.¬.Ñ"8Ñ9Ñ:Ô:€LÝ˜ lÑ3Ô3Ð3Ð3Ð3r   c                 óÔ   — t          | ¦  «        \  }}t          |dddd¬¦  «        }|                     |¦  «         |j        }|                     |¦  «        }t          ||¦  «         d S )Nr+   r,   r   )r   r�   r.   r!   r-   )r   r   r;   Úbound_r~   r   )r   r   r   rC   Úperplexity1Úperplexity2s         r   Útest_lda_fit_perplexityr¨   a  s{   € õ *¨-Ñ8Ô8�O€L�!Ý
#Ø!ØØØØðñ ô €Cð ‡G‚GˆA�J„J€Jð ”*€Kð —.’. Ñ#Ô#€Kå˜ [Ñ1Ô1Ð1Ð1Ð1r   c                 ó*  — t          j        d¦  «        }| | |¦  «        fD ]p}t          d¬¦  «                             |¦  «        }t	          |j                             d¬¦  «        t          j        |j        j        d         ¦  «        ¦  «         ŒqdS )z+Test LDA on empty document (all-zero rows).)r2   r1   iî  )r�   r   rb   r+   N)	r   Úzerosr   r;   r   r<   rg   rh   ri   )r   ÚZr   rC   s       r   Útest_lda_empty_docsr¬   x  sœ   € õ 	Œ�ÑÔ€AØ��˜qÑ!Ô!Ð"ð 
ð 
ˆÝ'°Ð5Ñ5Ô5×9Ò9¸!Ñ<Ô<ˆÝØŒO×Ò QÐÑ'Ô'­¬°´Ô1FÀqÔ1IÑ)JÔ)Jñ	
ô 	
ð 	
ð 	
ð
ð 
r   c                  ó  — t          j        ddd¦  «        } t          j        | ¦  «        }t          | d|¦  «         t	          |t          j        t          | ¦  «        t          t          j        | ¦  «        ¦  «        z
  ¦  «        d¬¦  «         |                      dd¦  «        } t	          t          | ¦  «        t          | ¦  «        t          t          j        | d¬	¦  «        d
d
…t           j
        f         ¦  «        z
  dd¬¦  «         d
S )z9Test Cython version of Dirichlet expectation calculation.iœÿÿÿr_   i'  r   g¬Ò¶OÉƒý;)ÚatolrN   r+   rb   Ng•dyáý¥=gßA:ÜÅ)>)Úrtolr®   )r   ÚlogspaceÚ
empty_liker   r   rŸ   r   rg   Úreshaper	   rk   )ÚxÚexpectations     r   Útest_dirichlet_expectationrµ   ƒ  sç   € å
Œ�D˜"˜eÑ$Ô$€AÝ”- Ñ"Ô"€KÝ˜a  KÑ0Ô0Ð0Ý�K¥¤­¨A©¬µµR´V¸A±Y´Y±´Ñ(?Ñ!@Ô!@ÀuÐMÑMÔMÐMà	�	Š	�#�sÑÔ€AÝÝ! !Ñ$Ô$ÝˆA‰Œ••R”V˜A AÐ&Ñ&Ô& q q q­"¬* }Ô5Ñ6Ô6Ñ6ØØð	ñ ô ð ð ð r   c                 óÆ  — t          |¦  «        \  }}t          |dd| |d¬¦  «        }t          ¦   «         }t          j        |c}	t          _        	 |                     |¦  «         |	t          _        n# |	t          _        w xY w|                     ¦   «                              d¦  «        }
|                     ¦   «                              d¦  «        }||
k    sJ ‚||k    sJ ‚d S )Nr   r,   r   )r   r�   r.   Úverboser-   r!   ú
r~   )r   r   r   ÚsysÚstdoutr;   ÚgetvalueÚcount)r·   r-   Úexpected_linesÚexpected_perplexitiesr   r   r   rC   ÚoutÚold_outÚn_linesÚn_perplexitys               r   Úcheck_verbosityrÃ   “  sä   € õ *¨-Ñ8Ô8�O€L�!Ý
#Ø!ØØØØ%Øðñ ô €Cõ ‰*Œ*€CÝœ* cÐ€G�SŒZðØ�Š�‰
Œ
ˆ
à�Œ
ˆ
ø�W�Œ
ÐÐÐÐà�lŠl‰nŒn×"Ò" 4Ñ(Ô(€GØ—<’<‘>”>×'Ò'¨Ñ5Ô5€LØ˜WÒ$Ð$Ð$Ð$Ø  LÒ0Ð0Ð0Ð0Ð0Ð0s   ÁA2 Á2B z;verbose,evaluate_every,expected_lines,expected_perplexities))Fr+   r   r   )Fr   r   r   )Tr   r   r   )Tr+   r   r   )Tr0   r   r+   c                 ó,   — t          | ||||¦  «         d S )N)rÃ   )r·   r-   r½   r¾   r   s        r   Útest_verbosityrÅ   ¬  s,   € õ Ø� Ð1FÈñô ð ð ð r   c                 óæ   — t          | ¦  «        \  }}t          |¬¦  «                             |¦  «        }|                     ¦   «         }t	          d„ t          |¦  «        D ¦   «         |¦  «         dS )z6Check feature names out for LatentDirichletAllocation.)r   c                 ó   — g | ]}d |› �‘ŒS )Úlatentdirichletallocation© )Ú.0rU   s     r   ú
<listcomp>z.test_lda_feature_names_out.<locals>.<listcomp>È  s!   € ÐFÐFÐF¨QÐ	( QÐ	(Ð	(ÐFÐFÐFr   N)r   r   r;   Úget_feature_names_outr   rR   )r   r   r   rC   Únamess        r   Útest_lda_feature_names_outrÎ   À  s{   € õ *¨-Ñ8Ô8�O€L�!Ý
#°Ð
>Ñ
>Ô
>×
BÒ
BÀ1Ñ
EÔ
E€Cà×%Ò%Ñ'Ô'€EÝØFÐFµ%¸Ñ2EÔ2EÐFÑFÔFÈñô ð ð ð r   r.   )r,   rJ   c                 ó0  — t           j                             d¦  «        }|                     d¬¦  «                             |d¬¦  «        }t          dd| ¬¦  «        }|                     |¦  «         |j        j        |k    sJ ‚|j	        j        |k    sJ ‚dS )	z2Check data type preservation of fitted attributes.r   r]   r`   F)Úcopyr2   ©r   r!   r.   N)
r   r9   r:   ÚuniformÚastyper   r;   r<   r   Úexp_dirichlet_component_)r.   Úglobal_dtyperB   r   rC   s        r   Útest_lda_dtype_matchrÖ   Ì  sž   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�Š˜ˆÑ"Ô"×)Ò)¨,¸UÐ)ÑCÔC€Aå
#Ø Q¸ðñ ô €Cð ‡G‚GˆA�J„J€JØŒ?Ô  LÒ0Ð0Ð0Ð0ØÔ'Ô-°Ò=Ð=Ð=Ð=Ð=Ð=r   c                 óâ  — t           j                             |¦  «        }|                     d¬¦  «        }|                     t           j        ¦  «        }t          d|| ¬¦  «                             |¦  «        }t          d|| ¬¦  «                             |¦  «        }t          |j	        |j	        ¦  «         t          | 
                    |¦  «        | 
                    |¦  «        ¦  «         dS )z>Check numerical consistency between np.float32 and np.float64.r]   r`   r2   rÑ   N)r   r9   r:   rÒ   rÓ   Úfloat32r   r;   r   r<   rj   )r.   Úglobal_random_seedrB   ÚX64ÚX32Úlda_64Úlda_32s          r   Útest_lda_numerical_consistencyrÞ   Ú  sà   € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ
�+Š+˜8ˆ+Ñ
$Ô
$€CØ
�*Š*•R”ZÑ
 Ô
 €Cå&ØÐ%7Èðñ ô ç	‚cˆ#�h„hð õ 'ØÐ%7Èðñ ô ç	‚cˆ#�h„hð õ �FÔ&¨Ô(:Ñ;Ô;Ð;Ý�F×$Ò$ SÑ)Ô)¨6×+;Ò+;¸CÑ+@Ô+@ÑAÔAÐAÐAÐAr   )6r¹   Úior   Únumpyr   rx   Únumpy.testingr   Úscipy.linalgr   Úscipy.specialr   Úsklearn.decompositionr   Ú&sklearn.decomposition._online_lda_fastr   r	   Úsklearn.exceptionsr
   Úsklearn.utils._testingr   r   r   r   Úsklearn.utils.fixesr   r   ÚmarkÚparametrizer)   rG   rL   rW   r[   rn   rs   r|   r   Úthread_unsafer‚   r†   rŒ   r–   r›   r�   r£   r¨   r¬   rµ   rÃ   rÅ   rÎ   rÖ   rÞ   rÉ   r   r   ú<module>rì      s—  ðØ 
€
€
€
Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .ðð ð ð „×Ò˜¨.Ñ9Ô9ð6ð 6ñ :Ô9ð6ð" „×Ò˜¨.Ñ9Ô9ð:ð :ñ :Ô9ð:ð& „×Ò˜¨.Ñ9Ô9ð:ð :ñ :Ô9ð:ð( „×Ò˜¨.Ñ9Ô9ð:ð :ñ :Ô9ð:ð( „×Ò˜¨.Ñ9Ô9ð:ð :ñ :Ô9ð:ð ð ð ð" „×Ò˜Ð#6Ñ7Ô7ð
1ð 
1ñ 8Ô7ð
1ðð ð ðð ð ð  „ÔØ"Ø„×Ò˜¨.Ñ9Ô9Ø„×Ò˜Ð#6Ñ7Ô7ð:ð :ñ 8Ô7ñ :Ô9ñ #Ô"ñ Ôð:ð* „ÔØ"Ø„×Ò˜¨.Ñ9Ô9ð:ð :ñ :Ô9ñ #Ô"ñ Ôð:ð(?ð ?ð ?ð. „×Ò˜Ð#6Ñ7Ô7Ø„×Ò˜¨.Ñ9Ô9ð4ð 4ñ :Ô9ñ 8Ô7ð4ð< „×Ò˜Ð#6Ñ7Ô7Ø„×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ñ 8Ô7ðð4 „×Ò˜¨.Ñ9Ô9ð(ð (ñ :Ô9ð(ð" „×Ò˜¨.Ñ9Ô9ð4ð 4ñ :Ô9ð4ð „×Ò˜¨.Ñ9Ô9ð2ð 2ñ :Ô9ð2ð, „×Ò˜¨.Ñ9Ô9ð
ð 
ñ :Ô9ð
ðð ð ð 1ð 1ð 1ð2 „×ÒØAðð ð ñ	ô 	ð „×Ò˜¨.Ñ9Ô9Ø„Ôðð ñ Ôñ :Ô9ñ	ô 	ðð „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ðð „×ÒÐ*Ð,?Ñ@Ô@ð
>ð 
>ñ AÔ@ð
>ð „×ÒÐ*Ð,?Ñ@Ô@ðBð Bñ AÔ@ðBð Bð Br   