§
    qŠtj:{  ã            
       óv  — d dl Z d dlZd dlmZ d dlZd dlZd dlZd dlm	Z	 d dl
mZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZ d d	lmZmZm Z  d d
l!m"Z" ej#         $                    d ¦  «        Z%d\  Z&Z'e% (                    e&e'¦  «        Z)ej*        j+        d„ ¦   «         Z,d„ Z-d„ Z.d„ Z/d„ Z0ej*         1                    dg d¢¦  «        ej*         1                    dddg¦  «        ej*         1                    dddg¦  «        d„ ¦   «         ¦   «         ¦   «         Z2ej*         1                    dddg¦  «        d„ ¦   «         Z3d„ Z4d„ Z5ej*        j+        d„ ¦   «         Z6ej*        j+        d„ ¦   «         Z7d„ Z8d„ Z9d„ Z:d „ Z;ej*         1                    dg d¢¦  «        ej*         1                    dddg¦  «        ej*         1                    dddg¦  «        d!„ ¦   «         ¦   «         ¦   «         Z<ej*         1                    dddg¦  «        d"„ ¦   «         Z=ej*         1                    dddg¦  «        ej*         1                    dddg¦  «        d#„ ¦   «         ¦   «         Z>d$„ Z?d%„ Z@d&„ ZAd'„ ZBd(„ ZCd)„ ZDd*„ ZEej*         1                    d+g d¢¦  «        ej*         1                    d,ddg¦  «        d-„ ¦   «         ¦   «         ZFej*         1                    d+d.d/g¦  «        d0„ ¦   «         ZGd1„ ZHd2„ ZId3„ ZJd4„ ZKd5„ ZLej*        j+        d6„ ¦   «         ZMd7„ ZNd8„ ZOd9„ ZPd:„ ZQej*         1                    d;d<¦  «        ej*         1                    d=ejR        ejS        f¦  «        d>„ ¦   «         ¦   «         ZTej*         1                    d;d<¦  «        d?„ ¦   «         ZUej*         1                    dd<¦  «        ej*         1                    d=ejR        ejS        f¦  «        d@„ ¦   «         ¦   «         ZVej*         1                    dAdB¦  «        ej*         1                    dd<¦  «        ej*         1                    dCejR        ejR        fejS        ejS        fejW        ejS        fejX        ejS        ff¦  «        dD„ ¦   «         ¦   «         ¦   «         ZYej*         1                    dAdB¦  «        ej*         1                    dd<¦  «        ej*         1                    dCejR        ejR        fejS        ejS        fejW        ejS        fejX        ejS        ff¦  «        dE„ ¦   «         ¦   «         ¦   «         ZZej*         1                    dFdB¦  «        ej*         1                    dCejR        ejR        fejS        ejS        fejW        ejS        fejX        ejS        ff¦  «        dG„ ¦   «         ¦   «         Z[ej*         1                    dFdB¦  «        dH„ ¦   «         Z\ej*         1                    dFdB¦  «        ej*         1                    dCejR        ejR        fejS        ejS        fejW        ejS        fejX        ejS        ff¦  «        dI„ ¦   «         ¦   «         Z]ej*         1                    dFdB¦  «        dJ„ ¦   «         Z^ej*         1                    dK ee% _                    e'e'f¬L¦  «        ¦  «         e¦   «          edMdN¬O¦  «        gdP„ ¬Q¦  «        dR„ ¦   «         Z`ej*        j+        dS„ ¦   «         ZadS )Té    N)Úpartial)Úclone)ÚDictionaryLearningÚMiniBatchDictionaryLearningÚSparseCoderÚdict_learningÚdict_learning_onlineÚsparse_encode)Ú_update_dict)ÚConvergenceWarning)Úcheck_array)Ú
TempMemmapÚassert_allcloseÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Ú#check_transformer_data_not_an_arrayÚcheck_transformer_generalÚcheck_transformers_unfitted)ÚParallel)é
   é   c                  ót  — t           j                             d¦  «        } g d¢}t          j        ddgddg¦  «        D ]z\  }}|                      |t          ¦  «        }|                      |t          ¦  «        }t          j        |ddg¦  «        D ]'\  }}t          ||||¬¦  «        }|j        ||fk    sJ ‚Œ(Œ{d S )Nr   )ÚompÚ
lasso_larsÚlasso_cdÚlarsÚ	thresholdé   é   é	   é   )Ú	algorithmÚn_jobs)	ÚnpÚrandomÚRandomStateÚ	itertoolsÚproductÚrandnÚ
n_featuresr
   Úshape)	ÚrngÚ
algorithmsÚn_componentsÚ	n_samplesÚX_Ú
dictionaryr#   r$   Úcodes	            úl/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/decomposition/tests/test_dict_learning.pyÚtest_sparse_encode_shapes_ompr5   *   sÖ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØGÐGÐG€JÝ#,Ô#4°a¸°V¸aÀ¸VÑ#DÔ#Dð ;ð ;Ñˆ�iØ�YŠY�y¥*Ñ-Ô-ˆØ—Y’Y˜|­ZÑ8Ô8ˆ
Ý!*Ô!2°:ÀÀ1¸vÑ!FÔ!Fð 	;ð 	;ÑˆI�vÝ   Z¸9ÈVÐTÑTÔTˆDØ”: )¨\Ð!:Ò:Ð:Ð:Ð:Ð:ð	;ð;ð ;ó    c                  ó„  — d} t          | d¬¦  «                             t          ¦  «        }|j        j        | t
          fk    sJ ‚d} t          | d¬¦  «                             t          ¦  «        }|j        j        | t
          fk    sJ ‚|                     t          ¦  «        j        t          j        d         | fk    sJ ‚d S )Nr    r   ©Úrandom_stater   )r   ÚfitÚXÚcomponents_r,   r+   Ú	transform©r/   Údicos     r4   Útest_dict_learning_shapesr@   6   sµ   € Ø€LÝ˜l¸Ð;Ñ;Ô;×?Ò?ÅÑBÔB€DØÔÔ! lµJÐ%?Ò?Ð?Ð?Ð?à€LÝ˜l¸Ð;Ñ;Ô;×?Ò?ÅÑBÔB€DØÔÔ! lµJÐ%?Ò?Ð?Ð?Ð?Ø�>Š>�!ÑÔÔ"¥q¤w¨q¤z°<Ð&@Ò@Ð@Ð@Ð@Ð@Ð@r6   c                  óŽ   — d} t          | d¬¦  «                             t          ¦  «        }|j        j        | t
          fk    sJ ‚d S )Né   r   r8   )r   r:   r;   r<   r,   r+   r>   s     r4   Útest_dict_learning_overcompleterC   A   sI   € Ø€LÝ˜l¸Ð;Ñ;Ô;×?Ò?ÅÑBÔB€DØÔÔ! lµJÐ%?Ò?Ð?Ð?Ð?Ð?Ð?r6   c                  óÀ  ‡‡‡‡	— d„ Šˆfd„Š	d} dŠd}‰|z  Št           j        t          ˆˆˆ	fd„dD ¦   «         ¦  «                 }t          j        d‰d	z
  ‰¦  «        }|‰d
z  k     }d||<   d|t          j        |¦  «        <   |                     d	d¦  «        }t          j        t          ¦  «        5  t          || d	¬¦  «        }| 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         5  t          j        dt          ¦  «         t          || d¬¦  «        }| 
                    |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 óú   — t          j        d| dz
  | ¦  «        }dt          j        d|z  ¦  «        t           j        dz  z  z  d||z
  dz  |dz  z  z
  z  t          j        ||z
  dz   d|dz  z  z  ¦  «        z  }|S )z1Discrete sub-sampled Ricker (Mexican hat) waveletr   r   r"   é   g      Ð?)r%   ÚlinspaceÚsqrtÚpiÚexp)Ú
resolutionÚcenterÚwidthÚxs       r4   Úricker_functionz&test_max_iter.<locals>.ricker_functionH   s�   € åŒK˜˜:¨™>¨:Ñ6Ô6ˆà•"”'˜!˜e™)Ñ$Ô$¥r¤u¨d¡{Ñ2Ñ3Ø�A˜‘J 1Ñ$ u¨a¡xÑ/Ñ/ñ1åŒf˜˜F™
 qÑ(Ð)¨Q°¸±©\Ñ:Ñ;Ô;ñ<ð 	
ð
 ˆr6   c                 ó4  •— t          j        d|dz
  |¦  «        }t          j        ||f¦  «        }t          |¦  «        D ]\  }} ‰||| ¦  «        ||<   Œ|t          j        t          j        |dz  d¬¦  «        ¦  «        dd…t           j        f         z  }|S )z+Dictionary of Ricker (Mexican hat) waveletsr   r   r"   ©ÚaxisN)r%   rG   ÚemptyÚ	enumeraterH   ÚsumÚnewaxis)rM   rK   r/   ÚcentersÚDÚirL   rO   s          €r4   Úricker_matrixz$test_max_iter.<locals>.ricker_matrixR   s�   ø€ å”+˜a ¨a¡°Ñ>Ô>ˆÝŒH�l JÐ/Ñ0Ô0ˆÝ" 7Ñ+Ô+ð 	>ð 	>‰IˆAˆvØ"�? :¨v°uÑ=Ô=ˆAˆa‰DˆDØ	�RŒW•R”V˜A˜q™D qÐ)Ñ)Ô)Ñ*Ô*¨1¨1¨1­b¬j¨=Ô9Ñ9ˆØˆr6   r   é   rF   c              3   ó:   •K  — | ]} ‰|‰‰d z  ¬¦  «        V — ŒdS )r    )rM   rK   r/   N© )Ú.0Úwr/   rK   rZ   s     €€€r4   ú	<genexpr>z test_max_iter.<locals>.<genexpr>b   sV   øè è € ð 
ð 
ð ð ˆMØ J¸\ÈQÑ=Nðñ ô ð
ð 
ð 
ð 
ð 
ð 
r6   )r   é2   éd   éô  r   r   é   g      @g      ð¿éÿÿÿÿ)Útransform_algorithmÚtransform_max_iterÚerrorrc   )r%   Úr_ÚtuplerG   Úlogical_notÚreshapeÚpytestÚwarnsr   r   Úfit_transformÚwarningsÚcatch_warningsÚsimplefilter)
rf   ÚsubsamplingÚD_multir;   Úfirst_quarterÚmodelr/   rK   rO   rZ   s
         @@@@r4   Útest_max_iterrw   G   sF  øøøø€ ðð ð ðð ð ð ð ð %ÐØ€JØ€KØ Ñ,€Lõ ŒeÝð 
ð 
ð 
ð 
ð 
ð 
ð (ð	
ñ 
ô 
ñ 	
ô 	
ô€Gõ 	Œ�A�z A‘~ zÑ2Ô2€AØ˜
 Q™Ò&€MØ€A€mÑØ'+€A…b„n�]Ñ#Ô#Ñ$Ø	�	Š	�!�RÑÔ€Aõ 
ŒÕ(Ñ	)Ô	)ð ð ÝØÐ)<ÐQRð
ñ 
ô 
ˆð 	×Ò˜AÑÔÐð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Ô	 Ñ	"Ô	"ð ð ÝÔ˜gÕ'9Ñ:Ô:Ð:ÝØÐ)<ÐQTð
ñ 
ô 
ˆð 	×Ò˜AÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s%   Â2(C&Ã&C*Ã-C*ÄAEÅEÅEc                  óª   — d} d}d}t          j        t          |¬¦  «        5  t          t          | |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr    r   ú;Positive constraint not supported for 'lars' coding method.©ÚmatchT)ÚalphaÚpositive_code)rm   ÚraisesÚ
ValueErrorr   r;   )r/   r|   Úerr_msgs      r4   Ú*test_dict_learning_lars_positive_parameterr�   €   sµ   € Ø€LØ€EØK€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Hð HÝ•a˜¨UÀ$ÐGÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Hs   ¢AÁAÁArf   )r   r   r   r}   FTÚpositive_dictc                 óŠ  — d}t          || d||d¬¦  «                             t          ¦  «        }|                     t          ¦  «        }|r |j        dk                         ¦   «         sJ ‚n|j        dk                          ¦   «         sJ ‚|r|dk                         ¦   «         sJ ‚d S |dk                          ¦   «         sJ ‚d S )Nr    r   Úcd)rf   r9   r}   r‚   Úfit_algorithm)r   r:   r;   r=   r<   ÚallÚany©rf   r}   r‚   r/   r?   r3   s         r4   Útest_dict_learning_positivityr‰   ˆ   så   € ð €LÝØØ/ØØ#Ø#Øðñ ô ÷ 
‚c�!�f„fð 	ð �>Š>�!ÑÔ€DØð ,ØÔ  AÒ%×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,àÔ  1Ò$×)Ò)Ñ+Ô+Ð+Ð+Ð+Øð  Ø˜’	�ŠÑ Ô Ð Ð Ð Ð Ð à�q’�~Š~ÑÔÐÐÐÐÐr6   c                 óæ   — d}t          |dd| d¬¦  «                             t          ¦  «        }| r!|j        dk                         ¦   «         sJ ‚d S |j        dk                          ¦   «         sJ ‚d S )Nr    r   r   r„   )rf   r9   r‚   r…   )r   r:   r;   r<   r†   r‡   ©r‚   r/   r?   s      r4   Ú'test_dict_learning_lars_dict_positivityrŒ   ¨   s�   € à€LÝØØ"ØØ#Øðñ ô ÷ 
‚c�!�f„fð 	ð ð ,ØÔ  AÒ%×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,àÔ  1Ò$×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r6   c                  ó,  — d} t          | dddd¬¦  «                             t          ¦  «        }d}|                     d¦  «        }t	          j        t          |¬¦  «        5  |                     t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr    r   r   Tr„   )rf   r9   r}   r…   ú9Positive constraint not supported for '{}' coding method.rz   )r   r:   r;   Úformatrm   r~   r   r=   )r/   r?   r€   s      r4   Ú'test_dict_learning_lars_code_positivityr�   ¹   sÞ   € Ø€LÝØØ"ØØØðñ ô ÷ 
‚c�!�f„fð 	ð J€GØ�nŠn˜VÑ$Ô$€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š•qÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á!B	Â	BÂBc                  óú  — d} t          | ddd¬¦  «        }|                     t          ¦  «                             t          ¦  «        }t	          t          j        ||j        ¦  «        t          ¦  «         t	          |                     |¦  «        t          ¦  «         | 	                    d¬¦  «         |                     t          ¦  «        }t	          t          j        ||j        ¦  «        t          d¬	¦  «         t	          |                     |¦  «        t          d¬	¦  «         t          j        t          d
¬¦  «        5  |                     |d d …d d…f         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrB   r   çü©ñÒMbP?r   )rf   Útransform_alphar9   r   ©rf   r"   ©ÚdecimalzExpected 12, got 11.rz   re   )r   r:   r;   r=   r   r%   Údotr<   Úinverse_transformÚ
set_paramsrm   r~   r   ©r/   r?   r3   s      r4   Ú!test_dict_learning_reconstructionr›   É   s�  € Ø€LÝØ¨%ÀÐUVðñ ô €Dð �8Š8•A‰;Œ;× Ò ¥Ñ#Ô#€DÝ�bœf T¨4Ô+;Ñ<Ô<½aÑ@Ô@Ð@Ý˜d×4Ò4°TÑ:Ô:½AÑ>Ô>Ð>à‡O‚O¨€OÑ5Ô5Ð5Ø�>Š>�!ÑÔ€DÝ�bœf T¨4Ô+;Ñ<Ô<½aÈÐKÑKÔKÐKÝ˜d×4Ò4°TÑ:Ô:½AÀqÐIÑIÔIÐIõ 
Œ•zÐ)?Ð	@Ñ	@Ô	@ð -ð -Ø×Ò˜t A A A s¨ s Fœ|Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -s   Å"E0Å0E4Å7E4c                  ó®  — d} t          | dddd¬¦  «        }|                     t          ¦  «                             t          ¦  «        }t	          t          j        ||j        ¦  «        t          ¦  «         |                     d¬¦  «         |                     t          ¦  «        }t	          t          j        ||j        ¦  «        t          d	¬
¦  «         d S )NrB   r   r’   r   rd   ©rf   r“   r9   r$   r   r”   r"   r•   )	r   r:   r;   r=   r   r%   r—   r<   r™   rš   s      r4   Ú*test_dict_learning_reconstruction_parallelrž   á   s¹   € ð €LÝØØ!ØØØðñ ô €Dð �8Š8•A‰;Œ;× Ò ¥Ñ#Ô#€DÝ�bœf T¨4Ô+;Ñ<Ô<½aÑ@Ô@Ð@à‡O‚O¨€OÑ5Ô5Ð5Ø�>Š>�!ÑÔ€DÝ�bœf T¨4Ô+;Ñ<Ô<½aÈÐKÑKÔKÐKÐKÐKr6   c                  óŠ  — d} t          t          ¦  «        5 }t          | dddd¬¦  «        }t          t          ¬¦  «        5  |                     |¦  «                             |¦  «        }d d d ¦  «         n# 1 swxY w Y   t          t          j	        ||j
        ¦  «        |d¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NrB   r   r’   r   rd   r�   )Úcategoryr"   r•   )r   r;   r   r   r   r:   r=   r   r%   r—   r<   )r/   ÚX_read_onlyr?   r3   s       r4   Ú(test_dict_learning_lassocd_readonly_datar¢   ö   s]  € à€LÝ	•A‰Œð 
˜+Ý!ØØ *Ø!ØØð
ñ 
ô 
ˆõ Õ&8Ð9Ñ9Ô9ð 	@ð 	@Ø—8’8˜KÑ(Ô(×2Ò2°;Ñ?Ô?ˆDð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@å!ÝŒF�4˜Ô)Ñ*Ô*¨KÀð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s5   —*B8Á)A6Á*B8Á6A:	Á:B8Á=A:	Á>-B8Â8B<Â?B<c                  óØ  — d} t          | ddd¬¦  «        }|                     t          ¦  «                             t          t          j        df         ¦  «        }t          t	          j        |¦  «        ¦  «        dk    sJ ‚|                     d¬¦  «         |                     t          t          j        df         ¦  «        }t          t	          j        |¦  «        ¦  «        dk    sJ ‚d S )	Nrd   r   rF   r   )rf   Útransform_n_nonzero_coefsr9   r   r   r”   )	r   r:   r;   r=   r%   rV   ÚlenÚflatnonzeror™   rš   s      r4   Ú test_dict_learning_nonzero_coefsr§     sÍ   € Ø€LÝØØ"Ø"#Øð	ñ ô €Dð �8Š8•A‰;Œ;× Ò ¥¥2¤:¨q =Ô!1Ñ2Ô2€DÝ�rŒ~˜dÑ#Ô#Ñ$Ô$¨Ò)Ð)Ð)Ð)à‡O‚O¨€OÑ.Ô.Ð.Ø�>Š>�!�BœJ¨˜MÔ*Ñ+Ô+€DÝ�rŒ~˜dÑ#Ô#Ñ$Ô$¨Ò)Ð)Ð)Ð)Ð)Ð)r6   c                  óž  — d} t          | dd¬¦  «        }|                     t          ¦  «                             t          ¦  «        }|                     |¦  «        }d|_        |                     t          ¦  «        }t          |d d …d | …f         |d d …| d …f         z
  |¦  «         |                     |¦  «        }t          ||¦  «         d S )Nr    r   r   )rf   r9   T)r   r:   r;   r=   r˜   Ú
split_signr   )r/   r?   r3   ÚXrÚ
split_codeÚXr2s         r4   Útest_dict_learning_splitr­     s×   € Ø€LÝØ¨+ÀAðñ ô €Dð �8Š8•A‰;Œ;× Ò ¥Ñ#Ô#€DØ	×	Ò	 Ñ	%Ô	%€Bà€D„OØ—’¥Ñ"Ô"€JåØ�1�1�1�m�|�mÐ#Ô$ z°!°!°!°\°]°]Ð2BÔ'CÑCÀTñô ð ð ×
 Ò
  Ñ
,Ô
,€CÝ˜b #Ñ&Ô&Ð&Ð&Ð&r6   c            	      ó†  — t           j                             d¦  «        } d}t          t          |ddd| d¬¦  «        \  }}|j        t          |fk    sJ ‚|j        |t          fk    sJ ‚t          j        ||¦  «        j        t          j        k    sJ ‚t          t          |ddd| d¬¦  «        }|j        |t          fk    sJ ‚d S )	Nr   r   rd   r   r„   T)r/   Ú
batch_sizeÚmax_iterÚmethodr9   Úreturn_codeF)	r%   r&   r'   r	   r;   r,   r0   r+   r—   )r-   r/   r3   r2   s       r4   Ú test_dict_learning_online_shapesr³   +  sé   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ€Lå+Ý	Ø!ØØØØØðñ ô Ñ€Dˆ*ð Œ:�) \Ð2Ò2Ð2Ð2Ð2ØÔ ­jÐ9Ò9Ð9Ð9Ð9ÝŒ6�$˜
Ñ#Ô#Ô)­Q¬WÒ4Ð4Ð4Ð4å%Ý	Ø!ØØØØØðñ ô €Jð Ô ­jÐ9Ò9Ð9Ð9Ð9Ð9Ð9r6   c                  ó¢   — d} t          j        t          | ¬¦  «        5  t          t          ddd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nry   rz   rd   r   T)r¯   r°   r}   )rm   r~   r   r	   r;   )r€   s    r4   Ú1test_dict_learning_online_lars_positive_parameterrµ   H  s«   € ØK€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Oð OÝ�Q¨1°rÈÐNÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oð Oð Os   žAÁAÁAc           
      óŽ  — d}t          |dd| d||d¬¦  «                             t          ¦  «        }|                     t          ¦  «        }|r |j        dk                         ¦   «         sJ ‚n|j        dk                          ¦   «         sJ ‚|r|dk                         ¦   «         sJ ‚d S |dk                          ¦   «         sJ ‚d S )Nr   rd   r   r   r„   )r¯   r°   rf   r9   r}   r‚   r…   )r   r:   r;   r=   r<   r†   r‡   rˆ   s         r4   Ú-test_minibatch_dictionary_learning_positivityr·   N  së   € ð €LÝ&ØØØØ/ØØ#Ø#Øð	ñ 	ô 	÷ 
‚c�!�f„fð 	ð �>Š>�!ÑÔ€DØð ,ØÔ  AÒ%×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,àÔ  1Ò$×)Ò)Ñ+Ô+Ð+Ð+Ð+Øð  Ø˜’	�ŠÑ Ô Ð Ð Ð Ð Ð à�q’�~Š~ÑÔÐÐÐÐÐr6   c           	      óê   — d}t          |dddd| d¬¦  «                             t          ¦  «        }| r!|j        dk                         ¦   «         sJ ‚d S |j        dk                          ¦   «         sJ ‚d S )Nr   rd   r   r   r   r„   )r¯   r°   rf   r9   r‚   r…   )r   r:   r;   r<   r†   r‡   r‹   s      r4   Ú'test_minibatch_dictionary_learning_larsr¹   r  s–   € à€Lå&ØØØØ"ØØ#Øðñ ô ÷ 
‚c�!�f„fð 	ð ð ,ØÔ  AÒ%×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,àÔ  1Ò$×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r6   c           
      ód  — t           j                             d¦  «        }d}t          t          |ddd||| ¬¦  «        \  }}|r|dk                         ¦   «         sJ ‚n|dk                          ¦   «         sJ ‚| r|dk                         ¦   «         sJ ‚d S |dk                          ¦   «         sJ ‚d S )Nr   r   rd   r„   r   )r/   r¯   r±   r|   r9   r‚   r}   )r%   r&   r'   r	   r;   r†   r‡   )r}   r‚   r-   r/   r3   r2   s         r4   Ú$test_dict_learning_online_positivityr»   †  sÜ   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€Lå+Ý	Ø!ØØØØØ#Ø#ð	ñ 	ô 	Ñ€Dˆ*ð ð &Ø˜a’×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&à˜Q’×#Ò#Ñ%Ô%Ð%Ð%Ð%Øð  Ø˜’	�ŠÑ Ô Ð Ð Ð Ð Ð à�q’�~Š~ÑÔÐÐÐÐÐr6   c                  ó&  — d} dd l }ddlm} |j        }	  |¦   «         |_        t	          | ddddd¬¦  «        }|                     t          ¦  «         t	          | ddddd¬	¦  «        }|                     t          ¦  «         t	          | dddd¬
¦  «        }|                     t          ¦  «         t          t          | dddd¬¦  «         t          t          | dddd¬¦  «         ||_        n# ||_        w xY w|j        j	        | t          fk    sJ ‚d S )Nr    r   )ÚStringIOrd   r   çš™™™™™¹?)r¯   r°   ÚverboseÚtolr9   r"   )r¯   r°   r¿   Úmax_no_improvementr9   )r¯   r°   r¿   r9   )r/   r¯   r|   r¿   r9   )ÚsysÚior½   Ústdoutr   r:   r;   r	   r<   r,   r+   )r/   rÂ   r½   Ú
old_stdoutr?   s        r4   Ú#test_dict_learning_online_verbosityrÆ      sm  € à€LØ€J€J€JØÐÐÐÐÐà”€Jð) Ø�X‘Z”ZˆŒ
õ +Ø Q°¸AÀ3ÐUVð
ñ 
ô 
ˆð 	�Š•‰ŒˆÝ*ØØØØØ Øð
ñ 
ô 
ˆð 	�Š•‰Œˆå*Ø Q°¸AÈAð
ñ 
ô 
ˆð 	�Š•‰Œˆõ 	ÝØ%ØØØØð	
ñ 	
ô 	
ð 	
õ 	ÝØ%ØØØØð	
ñ 	
ô 	
ð 	
ð  ˆŒ
ˆ
ø�ZˆŒ
ÐÐÐÐàÔÔ! lµJÐ%?Ò?Ð?Ð?Ð?Ð?Ð?s   •CC, Ã,	C5c                  ó–   — d} t          | ddd¬¦  «        }|                     t          ¦  «         |j        j        | t
          fk    sJ ‚d S )Nr    rd   r   ©r¯   r°   r9   ©r   r:   r;   r<   r,   r+   r>   s     r4   Ú*test_dict_learning_online_estimator_shapesrÊ   Õ  sW   € Ø€LÝ&Ø ¨Q¸Qðñ ô €Dð 	‡H‚H�Q�K„K€KØÔÔ! lµJÐ%?Ò?Ð?Ð?Ð?Ð?Ð?r6   c                  ó’   — d} t          | ddd¬¦  «                             t          ¦  «        }|j        j        | t
          fk    sJ ‚d S )NrB   rd   r    r   rÈ   rÉ   r>   s     r4   Ú&test_dict_learning_online_overcompleterÌ   Þ  sV   € Ø€LÝ&Ø ¨Q¸Qðñ ô ç	‚c�!�f„fð 	ð ÔÔ! lµJÐ%?Ò?Ð?Ð?Ð?Ð?Ð?r6   c                  ó   — d} t           j                             d¦  «        }|                     | t          ¦  «        }t          | dd|d¬¦  «                             t          ¦  «        }t          |j	        |¦  «         d S )NrB   r   rd   )r¯   r°   Ú	dict_initr9   )
r%   r&   r'   r*   r+   r   r:   r;   r   r<   )r/   r-   ÚVr?   s       r4   Ú(test_dict_learning_online_initializationrÐ   æ  sw   € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AÝ&Ø ¨Q¸!È!ðñ ô ç	‚c�!�f„fð 	õ �tÔ'¨Ñ+Ô+Ð+Ð+Ð+r6   c                  ó  — d} t           j                             d¦  «        }|                     | t          ¦  «        }|                     d¬¦  «         t          | dd|dd¬¦  «                             t          ¦  «         d S )NrB   r   F)Úwriterd   r   )r¯   r°   rÎ   r9   Úshuffle)	r%   r&   r'   r*   r+   Úsetflagsr   r:   r;   )r/   r-   rÏ   s      r4   Ú1test_dict_learning_online_readonly_initializationrÕ   ð  sz   € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AØ‡J‚J�U€JÑÔÐÝØØØØØØðñ ô ÷ 
‚c�!�f„f€f€f€fr6   c                  óÄ  — d} t           j                             d¦  «        }|                     | t          ¦  «        }|t          j        |dz  d¬¦  «        d d …t           j        f         z  }t          | dddd|d dd¬	¦	  «	                             t          ¦  «        }t          | d|d¬
¦  «        }t          d¦  «        D ]5}t          D ]+}|                     |t           j        d d …f         ¦  «         Œ,Œ6t          j        t          t          |j        d¬¦  «        dk    ¦  «        rJ ‚t          |j        |j        d¬¦  «         |j        |j        cxk    rdk    sn J ‚d S )NrB   r   r"   r   rQ   r   Fç        )r°   r¯   r|   rÓ   rÎ   rÁ   rÀ   r9   )r|   rÎ   r9   ©r|   r•   rb   )r%   r&   r'   r*   r+   rU   rV   r   r:   r;   ÚrangeÚpartial_fitr†   r
   r<   r   Ún_steps_)r/   r-   rÏ   Údict1Údict2rY   Úsamples          r4   Ú%test_dict_learning_online_partial_fitrß   ÿ  s…  € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AØ�Œ��1‘˜1Ð	Ñ	Ô	˜a˜a˜a¥¤˜mÔ	,Ñ,€AÝ'ØØØØØØØØØð
ñ 
ô 
÷ 
‚c�!�f„fð 
õ (Ø˜A¨¸ðñ ô €Eõ �2‰YŒYð 5ð 5ˆÝð 	5ð 	5ˆFØ×Ò˜f¥R¤Z°°° ]Ô3Ñ4Ô4Ð4Ð4ð	5õ Œv•m¥A uÔ'8ÀÐBÑBÔBÀaÒGÑHÔHÐHÐHÐHÝ˜eÔ/°Ô1BÈAÐNÑNÔNÐNð Œ>˜Uœ^Ð2Ð2Ò2Ð2¨sÒ2Ð2Ð2Ð2Ð2Ð2Ð2Ð2r6   c                  ó>  — d} t           j                             d¦  «        }|                     | t          ¦  «        }|t          j        |dz  d¬¦  «        d d …t           j        f         z  }dD ]-}t          t          ||¬¦  «        }|j	        t          | fk    sJ ‚Œ.d S )NrB   r   r"   r   rQ   ©r   r   r   r   r   ©r#   )r%   r&   r'   r*   r+   rU   rV   r
   r;   r,   r0   )r/   r-   rÏ   Úalgor3   s        r4   Útest_sparse_encode_shapesrä     s£   € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AØ�Œ��1‘˜1Ð	Ñ	Ô	˜a˜a˜a¥¤˜mÔ	,Ñ,€AØFð 7ð 7ˆÝ�Q ¨TÐ2Ñ2Ô2ˆØŒz�i¨Ð6Ò6Ð6Ð6Ð6Ð6ð7ð 7r6   rã   Úpositivec                 ó~  — d}t           j                             d¦  «        }|                     |t          ¦  «        }|t          j        |dz  d¬¦  «        d d …t           j        f         z  }t          t          || |¬¦  «        }|r|dk     	                    ¦   «         sJ ‚d S |dk      
                    ¦   «         sJ ‚d S )NrB   r   r"   r   rQ   ©r#   rå   )r%   r&   r'   r*   r+   rU   rV   r
   r;   r†   r‡   )rã   rå   r/   r-   rÏ   r3   s         r4   Útest_sparse_encode_positivityrè   '  s»   € ð €LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AØ�Œ��1‘˜1Ð	Ñ	Ô	˜a˜a˜a¥¤˜mÔ	,Ñ,€AÝ�˜A¨¸ÐAÑAÔA€DØð  Ø˜’	�ŠÑ Ô Ð Ð Ð Ð Ð à�q’�~Š~ÑÔÐÐÐÐÐr6   r   r   c                 ó¤  — d}t           j                             d¦  «        }|                     |t          ¦  «        }|t          j        |dz  d¬¦  «        d d …t           j        f         z  }d}|                     | ¦  «        }t          j	        t          |¬¦  «        5  t          t          || d¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NrB   r   r"   r   rQ   rŽ   rz   Trç   )r%   r&   r'   r*   r+   rU   rV   r�   rm   r~   r   r
   r;   )rã   r/   r-   rÏ   r€   s        r4   Ú)test_sparse_encode_unavailable_positivityrê   5  s  € à€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AØ�Œ��1‘˜1Ð	Ñ	Ô	˜a˜a˜a¥¤˜mÔ	,Ñ,€AØI€GØ�nŠn˜TÑ"Ô"€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ;ð ;Ý•a˜ d°TÐ:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   ÂCÃC	ÃC	c                  ó†  — d} t           j                             d¦  «        }|                     | t          ¦  «        }|t          j        |dz  d¬¦  «        d d …t           j        f         z  }t          t          d¬¦  «        }dD ];}t          t          ||¬	¦  «        }t          |||¬	¦  «        }t          ||¦  «         Œ<d S )
Nrb   r   r"   r   rQ   ÚF)Úorderrá   râ   )r%   r&   r'   r*   r+   rU   rV   r   r;   r
   r   )r/   r-   rÏ   ÚXfrã   ÚaÚbs          r4   Útest_sparse_encode_inputrñ   A  sÁ   € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AØ�Œ��1‘˜1Ð	Ñ	Ô	˜a˜a˜a¥¤˜mÔ	,Ñ,€AÝ	•Q˜cÐ	"Ñ	"Ô	"€BØFð (ð (ˆÝ�!˜Q¨$Ð/Ñ/Ô/ˆÝ˜"˜a¨4Ð0Ñ0Ô0ˆÝ! ! QÑ'Ô'Ð'Ð'ð(ð (r6   c                  óÔ  — d} t           j                             d¦  «        }|                     | t          ¦  «        }|t          j        |dz  d¬¦  «        d d …t           j        f         z  }t          t          |d¬¦  «        }t          j	        |dk    ¦  «        rJ ‚t          j
        t          j        t          j        ||¦  «        t          z
  dz  ¦  «        ¦  «        dk     sJ ‚d S )	NrB   r   r"   r   rQ   r’   rØ   r¾   )r%   r&   r'   r*   r+   rU   rV   r
   r;   r†   rH   r—   )r/   r-   rÏ   r3   s       r4   Útest_sparse_encode_errorró   M  sÈ   € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AØ�Œ��1‘˜1Ð	Ñ	Ô	˜a˜a˜a¥¤˜mÔ	,Ñ,€AÝ�˜A UÐ+Ñ+Ô+€DÝŒv�d˜a’iÑ Ô Ð Ð Ð ÝŒ7•2”6�2œ6 $¨™?œ?­QÑ.°1Ñ4Ñ5Ô5Ñ6Ô6¸Ò<Ð<Ð<Ð<Ð<Ð<r6   c                  óø   — t           j                             d¦  «        } |                      dd¦  «        }|                      dd¦  «        } t	          t
          ¦  «        ||dd ¬¦  «        }|j        dk    sJ ‚d S )Nr   rb   é@   r"   r   )r#   Ún_nonzero_coefs)rb   r"   )r%   r&   r'   r*   r   r
   r,   )r-   r;   rX   r3   s       r4   Ú)test_sparse_encode_error_default_sparsityr÷   W  sw   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�#�rÑÔ€AØ�	Š	�!�RÑÔ€AØ)�?�=Ñ)Ô)¨!¨Q¸%ÐQUÐVÑVÔV€DØŒ:˜Ò!Ð!Ð!Ð!Ð!Ð!r6   c                  óŽ  — d} t           j                             d¦  «        }|                     | t          ¦  «        }|t          j        |dz  d¬¦  «        d d …t           j        f         z  }t          |dd¬¦  «        }|                     t          ¦  «        }| 
                    |¦  «        }t          j        |dk    ¦  «        rJ ‚t          j        t          j        t          j        ||¦  «        t          z
  dz  ¦  «        ¦  «        d	k     sJ ‚t           j                             |t          j        ||¦  «        ¦  «         d S )
NrB   r   r"   r   rQ   r   r’   ©r2   rf   r“   r¾   )r%   r&   r'   r*   r+   rU   rV   r   ro   r;   r˜   r†   rH   r—   Útestingr   )r/   r-   rÏ   Úcoderr3   rª   s         r4   Útest_sparse_coder_estimatorrü   _  s  € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AØ�Œ��1‘˜1Ð	Ñ	Ô	˜a˜a˜a¥¤˜mÔ	,Ñ,€AÝØ¨,Èðñ ô €Eð ×Ò�qÑ!Ô!€DØ	×	 Ò	  Ñ	&Ô	&€BÝŒv�d˜a’iÑ Ô Ð Ð Ð ÝŒ7•2”6�2œ6 $¨™?œ?­QÑ.°1Ñ4Ñ5Ô5Ñ6Ô6¸Ò<Ð<Ð<Ð<Ý„J×Ò˜r¥2¤6¨$°¡?¤?Ñ3Ô3Ð3Ð3Ð3r6   c                  ó.  — d} t           j                             d¦  «        }|                     | t          f¬¦  «        }|t          j        |dz  d¬¦  «        d d …t           j        f         z  }t          |dd¬	¦  «        }t          |¦  «        }t          |¦  «        t          |¦  «        k    sJ ‚t           j
                             |j        |j        ¦  «         t          |j        ¦  «        t          |j        ¦  «        k    sJ ‚t           j                             t          t          ¦  «                             t           j        ¦  «        }t           j
                             |                     |¦  «        |                     |¦  «        ¦  «         d S )
NrB   r   ©Úsizer"   r   rQ   r   r’   rù   )r%   r&   r'   Únormalr+   rU   rV   r   r   Úidrú   r   r2   Úrandr0   ÚastypeÚfloat32r=   )r/   r-   rÏ   rû   ÚclonedÚdatas         r4   Ú!test_sparse_coder_estimator_cloner  n  sG  € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�
Š
˜¥zÐ2ˆ
Ñ3Ô3€AØ�Œ��1‘˜1Ð	Ñ	Ô	˜a˜a˜a¥¤˜mÔ	,Ñ,€AÝØ¨,Èðñ ô €Eõ �5‰\Œ\€FÝˆf‰:Œ:�˜E™œÒ"Ð"Ð"Ð"Ý„J×Ò˜vÔ0°%Ô2BÑCÔCÐCÝˆfÔÑ Ô ¥B uÔ'7Ñ$8Ô$8Ò8Ð8Ð8Ð8ÝŒ9�>Š>�)¥ZÑ0Ô0×7Ò7½¼
ÑCÔC€DÝ„J×Ò˜v×/Ò/°Ñ5Ô5°u·²ÀtÑ7LÔ7LÑMÔMÐMÐMÐMr6   c                  ól  — t           j                             d¦  «        } d\  }}|                      ||¦  «        }t	          d¦  «        d|z  z  }t           j                             ||¦  «                             t           j        ¦  «        }t          |dd¬¦  «        }|                     |¦  «         d S )Né	  )é(   rõ   g    €„>Ard   r   r"   )rf   r$   )	r%   r&   r'   r  Úintr  r  r   ro   )r-   r/   r+   Ú	init_dictr0   r  Úscs          r4   Útest_sparse_coder_parallel_mmapr  €  sŸ   € õ Œ)×
Ò
 Ñ
$Ô
$€CØ%Ñ€L�*Ø—’˜ zÑ2Ô2€Iõ �C‘”˜Q ™^Ñ,€IÝŒ9�>Š>˜) ZÑ0Ô0×7Ò7½¼
ÑCÔC€Då	�Y°EÀ!Ð	DÑ	DÔ	D€BØ×Ò�TÑÔÐÐÐr6   c                  óŒ  — t           j                             d¦  «        } d\  }}|                      ||¦  «        }t	          |¦  «        }t          |j        j        |¦  «         t          |j        j        |¦  «         t          t          d¬¦  «        } ||j        j        |¦  «         t          |j        j        |¦  «         d S )Nr	  )r
  rF   T)Úreadonly_memmap)r%   r&   r'   r  r   r   Ú	__class__Ú__name__r   r   r   )r-   r/   r+   r  r  Ú check_transformer_general_memmaps         r4   Ú$test_sparse_coder_common_transformerr  ”  sº   € Ý
Œ)×
Ò
 Ñ
$Ô
$€CØ$Ñ€L�*Ø—’˜ zÑ2Ô2€Iå	�YÑ	Ô	€Bå'¨¬Ô(=¸rÑBÔBÐBÝ˜bœlÔ3°RÑ8Ô8Ð8Ý'.Ý!°4ð(ñ (ô (Ð$ð %Ð$ R¤\Ô%:¸BÑ?Ô?Ð?Ý ¤Ô 5°rÑ:Ô:Ð:Ð:Ð:r6   c                  óà   — t          j        g d¢g d¢g¦  «        } t          j        g d¢g¦  «        }t          | ¦  «        }|                     |¦  «         |j        | j        d         k    sJ ‚d S )N)r   r"   rF   r   )r%   Úarrayr   r:   Ún_features_in_r,   )Údr;   r  s      r4   Útest_sparse_coder_n_features_inr  ¤  sm   € Ý
Œ�)�)�)˜Y˜Y˜YÐ'Ñ(Ô(€AÝ
Œ�)�)�)�ÑÔ€AÝ	�Q‰Œ€BØ‡F‚Fˆ1�I„I€IØÔ ¤¨¤
Ò*Ð*Ð*Ð*Ð*Ð*r6   c                  ó|  — d} t           j                             d¦  «        }|                     | t          f¬¦  «        }|                     t
          t          dz   f¬¦  «        }t          |¦  «        }t          j        t          d¬¦  «        5  | 
                    |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   rþ   r   z3Dictionary and X have different numbers of featuresrz   )r%   r&   r'   Úuniformr+   r0   r   rm   r~   r   r:   )r/   r-   rX   r;   rû   s        r4   Ú(test_sparse_encoder_feature_number_errorr  ¬  sí   € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š˜,­
Ð3ˆÑ4Ô4€AØ�Š�)¥Z°!¡^Ð4ˆÑ5Ô5€AÝ˜‰NŒN€EÝ	ŒÝÐOð
ñ 
ô 
ð ð ð 	�	Š	�!‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂB1Â1B5Â8B5c                  ó$  — t           j                             d¦  «        } t          j        ddgddgg¦  «        }t          j        ddgdd	gg¦  «        }t          j        ||¦  «        |                      d
d
¦  «        z   }|                     ¦   «         }t          |||¦  «         t          j        |j        |¦  «        }t          j        |j        |¦  «        }|                     ¦   «         }t          |||||¦  «         t          ||¦  «         d S )Nr   g      à?g      à¿r¾   gÍÌÌÌÌÌì?g      ð?r×   g333333ã?gš™™™™™é?r"   )
r%   r&   r'   r  r—   r*   Úcopyr   ÚTr   )r-   r3   r2   r;   Ú
newd_batchÚAÚBÚnewd_onlines           r4   Útest_update_dictr$  ¸  sù   € õ Œ)×
Ò
 Ñ
"Ô
"€CåŒ8�c˜4�[ 3¨ *Ð-Ñ.Ô.€DÝ”˜C ˜:¨¨S zÐ2Ñ3Ô3€Jå
Œˆt�ZÑ Ô  3§9¢9¨Q°¡?¤?Ñ2€Að —’Ñ"Ô"€JÝ�˜Q Ñ%Ô%Ð%õ 	ŒˆtŒv�tÑÔ€AÝ
ŒˆqŒs�DÑÔ€AØ—/’/Ñ#Ô#€KÝ�˜a  q¨!Ñ,Ô,Ð,å�J Ñ,Ô,Ð,Ð,Ð,r6   r#   )r   r   r   r   r   Ú	data_typec                 ó  — d}t           j                             d¦  «        }|                     |t          ¦  «        }t          t                               | ¦  «        |                     | ¦  «        |¬¦  «        }|j        | k    sJ ‚d S )Né   r   râ   )	r%   r&   r'   r*   r+   r
   r;   r  Údtype)r%  r#   r/   r-   r2   r3   s         r4   Útest_sparse_encode_dtype_matchr)  Ï  s�   € ð €LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ—’˜<­Ñ4Ô4€JÝÝ	�Š�ÑÔ˜Z×.Ò.¨yÑ9Ô9ÀYðñ ô €Dð Œ:˜Ò"Ð"Ð"Ð"Ð"Ð"r6   c                 óê  — d}d}t           j                             d¦  «        }|                     |t          ¦  «        }t          t                               t           j        ¦  «        |                     t           j        ¦  «        | ¬¦  «        }t          t                               t           j	        ¦  «        |                     t           j	        ¦  «        | ¬¦  «        }t          |||¬¦  «         d S )Nç-Cëâ6?r'  r   râ   ©Úrtol)r%   r&   r'   r*   r+   r
   r;   r  r  Úfloat64r   )r#   r-  r/   r-   r2   Úcode_32Úcode_64s          r4   Ú(test_sparse_encode_numerical_consistencyr1  ß  sÇ   € ð
 €DØ€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ—’˜<­Ñ4Ô4€JÝÝ	�Š•”ÑÔ˜j×/Ò/µ´
Ñ;Ô;Àyðñ ô €Gõ Ý	�Š•”ÑÔ˜j×/Ò/µ´
Ñ;Ô;Àyðñ ô €Gõ �G˜W¨4Ð0Ñ0Ô0Ð0Ð0Ð0r6   c                 ó:  — d}t           j                             d¦  «        }|                     |t          ¦  «        }t          |                     | ¦  «        |¬¦  «        }|                     t                               | ¦  «        ¦  «        }|j	        | k    sJ ‚d S )Nr'  r   r”   )
r%   r&   r'   r*   r+   r   r  r=   r;   r(  )r%  rf   r/   r-   r2   rû   r3   s          r4   Útest_sparse_coder_dtype_matchr3  ñ  s‘   € ð €LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ—’˜<­Ñ4Ô4€JÝØ×Ò˜)Ñ$Ô$Ð:Mðñ ô €Eð �?Š?�1Ÿ8š8 IÑ.Ô.Ñ/Ô/€DØŒ:˜Ò"Ð"Ð"Ð"Ð"Ð"r6   r…   )r   r„   zdata_type, expected_typec                 ó  — t          d||d¬¦  «        }|                     t                               | ¦  «        ¦  «         |j        j        |k    sJ ‚|                     t                               | ¦  «        ¦  «        j        |k    sJ ‚d S )Nr   r   )r/   r…   rf   r9   )r   r:   r;   r  r<   r(  r=   ©r%  Úexpected_typer…   rf   Údict_learners        r4   Ú$test_dictionary_learning_dtype_matchr8    s‘   € õ( &ØØ#Ø/Øð	ñ ô €Lð ×Ò•Q—X’X˜iÑ(Ô(Ñ)Ô)Ð)ØÔ#Ô)¨]Ò:Ð:Ð:Ð:Ø×!Ò!¥!§(¢(¨9Ñ"5Ô"5Ñ6Ô6Ô<ÀÒMÐMÐMÐMÐMÐMr6   c           	      óh  — t          dd||ddd¬¦  «        }|                     t                               | ¦  «        ¦  «         |j        j        |k    sJ ‚|                     t                               | ¦  «        ¦  «        j        |k    sJ ‚|j        j        |k    sJ ‚|j        j        |k    sJ ‚d S )Nr   r   rb   r¾   r   )r/   r¯   r…   rf   r°   rÀ   r9   )	r   r:   r;   r  r<   r(  r=   Ú_AÚ_Br5  s        r4   Ú.test_minibatch_dictionary_learning_dtype_matchr<  "  sÆ   € õ( /ØØØ#Ø/ØØØðñ ô €Lð ×Ò•Q—X’X˜iÑ(Ô(Ñ)Ô)Ð)àÔ#Ô)¨]Ò:Ð:Ð:Ð:Ø×!Ò!¥!§(¢(¨9Ñ"5Ô"5Ñ6Ô6Ô<ÀÒMÐMÐMÐMØŒ?Ô  MÒ1Ð1Ð1Ð1ØŒ?Ô  MÒ1Ð1Ð1Ð1Ð1Ð1r6   r±   c                 óÜ   — t           j                             d¦  «        }d}t          t                               | ¦  «        |d||¬¦  «        \  }}}|j        |k    sJ ‚|j        |k    sJ ‚d S )Nr   r   r   ©r/   r|   r9   r±   )r%   r&   r'   r   r;   r  r(  )r%  r6  r±   r-   r/   r3   r2   Ú_s           r4   Útest_dict_learning_dtype_matchr@  G  sƒ   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€LÝ'Ý	�Š�ÑÔØ!ØØØðñ ô Ñ€Dˆ*�að Œ:˜Ò&Ð&Ð&Ð&ØÔ˜}Ò,Ð,Ð,Ð,Ð,Ð,r6   c                 ó:  — d}d}d}t          t                               t          j        ¦  «        ||d| ¬¦  «        \  }}}t          t                               t          j        ¦  «        ||d| ¬¦  «        \  }}}t          t          j        ||¦  «        t          j        ||¦  «        |¬¦  «         t          t          j        t          j	        |¦  «        ¦  «        t          j        t          j	        |¦  «        ¦  «        |¬¦  «         t          t          j        |dz  ¦  «        t          j        |dz  ¦  «        |¬¦  «         t          j
        |dk    ¦  «        dk    sJ ‚t          j        |dk    ¦  «        t          j        |dk    ¦  «        k    sJ ‚d S )	Nr+  rd   r"   r   r>  r,  r×   çš™™™™™©?)r   r;   r  r%   r.  r  r   ÚmatmulrU   ÚabsÚmeanÚcount_nonzero)	r±   r-  r/   r|   ÚU_64ÚV_64r?  ÚU_32ÚV_32s	            r4   Ú(test_dict_learning_numerical_consistencyrK  `  sl  € ð €DØ€LØ€Eå!Ý	�Š•”ÑÔØ!ØØØðñ ô �M€Dˆ$�õ "Ý	�Š•”ÑÔØ!ØØØðñ ô �M€Dˆ$�õ •B”I˜d DÑ)Ô)­2¬9°T¸4Ñ+@Ô+@ÀtÐLÑLÔLÐLÝ•B”F�2œ6 $™<œ<Ñ(Ô(­"¬&µ´¸±´Ñ*>Ô*>ÀTÐJÑJÔJÐJÝ•B”F˜4 ™7‘O”O¥R¤V¨D°!©G¡_¤_¸4Ð@Ñ@Ô@Ð@åŒ7�4˜3’;ÑÔ $Ò&Ð&Ð&Ð&ÝÔ˜D CšKÑ(Ô(­BÔ,<¸TÀSº[Ñ,IÔ,IÒIÐIÐIÐIÐIÐIr6   c                 óÜ   — t           j                             d¦  «        }d}t          t                               | ¦  «        |dd||¬¦  «        \  }}|j        |k    sJ ‚|j        |k    sJ ‚d S )Nr   r   r   r   )r/   r|   r¯   r9   r±   )r%   r&   r'   r	   r;   r  r(  )r%  r6  r±   r-   r/   r3   r2   s          r4   Ú%test_dict_learning_online_dtype_matchrM  „  s„   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€LÝ+Ý	�Š�ÑÔØ!ØØØØðñ ô Ñ€Dˆ*ð Œ:˜Ò&Ð&Ð&Ð&ØÔ˜}Ò,Ð,Ð,Ð,Ð,Ð,r6   c                 óF  — d}d}d}t          t                               t          j        ¦  «        |d|dd| dd ¬¦	  «	        \  }}t          t                               t          j        ¦  «        |d|dd| dd ¬¦	  «	        \  }}t          t          j        ||¦  «        t          j        ||¦  «        |¬	¦  «         t          t          j        t          j	        |¦  «        ¦  «        t          j        t          j	        |¦  «        ¦  «        |¬	¦  «         t          t          j        |d
z  ¦  «        t          j        |d
z  ¦  «        |¬	¦  «         t          j
        |dk    ¦  «        dk    sJ ‚t          j        |dk    ¦  «        t          j        |dk    ¦  «        k    sJ ‚d S )Nr+  rd   r   iè  r   r   r×   )r/   r°   r|   r¯   r9   r±   rÀ   rÁ   r,  r"   rB  )r	   r;   r  r%   r.  r  r   rC  rU   rD  rE  rF  )r±   r-  r/   r|   rG  rH  rI  rJ  s           r4   Ú/test_dict_learning_online_numerical_consistencyrO  ž  s€  € ð €DØ€LØ€Eå%Ý	�Š•”ÑÔØ!ØØØØØØØð
ñ 
ô 
�J€Dˆ$õ &Ý	�Š•”ÑÔØ!ØØØØØØØð
ñ 
ô 
�J€Dˆ$õ$ •B”I˜d DÑ)Ô)­2¬9°T¸4Ñ+@Ô+@ÀtÐLÑLÔLÐLÝ•B”F�2œ6 $™<œ<Ñ(Ô(­"¬&µ´¸±´Ñ*>Ô*>ÀTÐJÑJÔJÐJÝ•B”F˜4 ™7‘O”O¥R¤V¨D°!©G¡_¤_¸4Ð@Ñ@Ô@Ð@åŒ7�4˜3’;ÑÔ $Ò&Ð&Ð&Ð&ÝÔ˜D CšKÑ(Ô(­BÔ,<¸TÀSº[Ñ,IÔ,IÒIÐIÐIÐIÐIÐIr6   Ú	estimatorrþ   rd   r   )r¯   r°   c                 ó   — | j         j        S )N)r  r  )rN   s    r4   ú<lambda>rR  Ñ  s   € �!”+Ô&€ r6   )Úidsc                 ó4  ‡— t          | ¦  «        } |                      t          ¦  «         t          j        d         }|                      ¦   «         }| j        j                             ¦   «         Št          |ˆfd„t          |¦  «        D ¦   «         ¦  «         dS )z1Check feature names for dict learning estimators.r   c                 ó   •— g | ]}‰› |› �‘Œ	S r]   r]   )r^   rY   Úestimator_names     €r4   ú
<listcomp>z.test_get_feature_names_out.<locals>.<listcomp>Ý  s$   ø€ Ð=Ð=Ð= AˆNÐ	˜AÐ	Ð	Ð=Ð=Ð=r6   N)
r   r:   r;   r,   Úget_feature_names_outr  r  Úlowerr   rÙ   )rP  r/   Úfeature_names_outrV  s      @r4   Útest_get_feature_names_outr[  Ê  s–   ø€ õ �iÑ Ô €IØ‡M‚M•!ÑÔÐÝ”7˜1”:€Là!×7Ò7Ñ9Ô9ÐØÔ(Ô1×7Ò7Ñ9Ô9€NÝØØ=Ð=Ð=Ð=­¨|Ñ)<Ô)<Ð=Ñ=Ô=ñô ð ð ð r6   c                 ó8  — |                       t          j        j        dt	          t
          d¬¦  «        ¦  «         t          j                             d¦  «        }| 	                    dd¦  «        }t          ddddd	d
¬¦  «        }|                     |¦  «         d S )Nr   rb   )Ú
max_nbytesr   r   r    r"   r„   ra   T)r/   r9   r$   r…   r°   r¿   )ÚsetattrÚsklearnÚdecompositionÚ_dict_learningr   r   r%   r&   r'   r*   r   r:   )Úmonkeypatchr-   ÚX_trainr7  s       r4   Ú%test_cd_work_on_joblib_memmapped_datard  ã  s¢   € à×ÒÝÔÔ,ØÝ• SÐ)Ñ)Ô)ñô ð õ Œ)×
Ò
 Ñ
"Ô
"€CØ�iŠi˜˜BÑÔ€Gå%ØØØØØØðñ ô €Lð ×Ò�WÑÔÐÐÐr6   )br(   rp   Ú	functoolsr   Únumpyr%   rm   r_  Úsklearn.baser   Úsklearn.decompositionr   r   r   r   r	   r
   Ú$sklearn.decomposition._dict_learningr   Úsklearn.exceptionsr   Úsklearn.utilsr   Úsklearn.utils._testingr   r   r   r   r   Úsklearn.utils.estimator_checksr   r   r   Úsklearn.utils.parallelr   r&   r'   Ú
rng_globalr0   r+   r*   r;   ÚmarkÚthread_unsafer5   r@   rC   rw   r�   Úparametrizer‰   rŒ   r�   r›   rž   r¢   r§   r­   r³   rµ   r·   r¹   r»   rÆ   rÊ   rÌ   rÐ   rÕ   rß   rä   rè   rê   rñ   ró   r÷   rü   r  r  r  r  r  r$  r  r.  r)  r1  r3  Úint32Úint64r8  r<  r@  rK  rM  rO  r  r[  rd  r]   r6   r4   ú<module>ru     s†
  ðØ Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð >Ð =Ð =Ð =Ð =Ð =Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 ,Ð +Ð +Ð +Ð +Ð +àŒY×"Ò" 1Ñ%Ô%€
ØÑ €	ˆ:Ø×Ò�Y 
Ñ+Ô+€ð
 „Ôð;ð ;ñ Ôð;ðAð Að Að@ð @ð @ð6ð 6ð 6ðrHð Hð Hð „×ÒØðð ð ñô ð „×Ò˜¨5°$¨-Ñ8Ô8Ø„×Ò˜¨5°$¨-Ñ8Ô8ð ð  ñ 9Ô8ñ 9Ô8ñô ð ð, „×Ò˜¨5°$¨-Ñ8Ô8ð,ð ,ñ 9Ô8ð,ð ð ð ð -ð -ð -ð0 „ÔðLð Lñ ÔðLð( „Ôð
ð 
ñ Ôð
ð"*ð *ð *ð 'ð 'ð 'ð&:ð :ð :ð:Oð Oð Oð „×ÒØðð ð ñô ð „×Ò˜¨5°$¨-Ñ8Ô8Ø„×Ò˜¨5°$¨-Ñ8Ô8ð ð  ñ 9Ô8ñ 9Ô8ñô ð ð4 „×Ò˜¨5°$¨-Ñ8Ô8ð,ð ,ñ 9Ô8ð,ð& „×Ò˜¨5°$¨-Ñ8Ô8Ø„×Ò˜¨5°$¨-Ñ8Ô8ð ð  ñ 9Ô8ñ 9Ô8ð ð02@ð 2@ð 2@ðj@ð @ð @ð@ð @ð @ð,ð ,ð ,ðð ð ð3ð 3ð 3ð<7ð 7ð 7ð „×Ò˜Ð!HÐ!HÐ!HÑIÔIØ„×Ò˜ e¨T ]Ñ3Ô3ð	 ð 	 ñ 4Ô3ñ JÔIð	 ð „×Ò˜ &¨% Ñ1Ô1ð;ð ;ñ 2Ô1ð;ð	(ð 	(ð 	(ð=ð =ð =ð"ð "ð "ð4ð 4ð 4ðNð Nð Nð$ „Ôðð ñ Ôðð&;ð ;ð ;ð +ð +ð +ð	ð 	ð 	ð-ð -ð -ð. „×ÒØÐGñô ð „×Ò˜ r¤z°2´:Ð&>Ñ?Ô?ð#ð #ñ @Ô?ñô ð#ð „×ÒØÐGñô ð1ð 1ñô ð1ð „×ÒØÐQñô ð „×Ò˜ r¤z°2´:Ð&>Ñ?Ô?ð	#ð 	#ñ @Ô?ñô ð	#ð „×Ò˜¨.Ñ9Ô9Ø„×ÒØÐQñô ð „×ÒØà	Œ�R”ZÐ Ø	Œ�R”ZÐ Ø	Œ�2”:ÐØ	Œ�2”:Ðð	ñô ðNð Nñô ñô ñ :Ô9ðNð$ „×Ò˜¨.Ñ9Ô9Ø„×ÒØÐQñô ð „×ÒØà	Œ�R”ZÐ Ø	Œ�R”ZÐ Ø	Œ�2”:ÐØ	Œ�2”:Ðð	ñô ð2ð 2ñô ñô ñ :Ô9ð2ð0 „×Ò˜ >Ñ2Ô2Ø„×ÒØà	Œ�R”ZÐ Ø	Œ�R”ZÐ Ø	Œ�2”:ÐØ	Œ�2”:Ðð	ñô ð-ð -ñô ñ 3Ô2ð-ð „×Ò˜ >Ñ2Ô2ð Jð  Jñ 3Ô2ð JðF „×Ò˜ >Ñ2Ô2Ø„×ÒØà	Œ�R”ZÐ Ø	Œ�R”ZÐ Ø	Œ�2”:ÐØ	Œ�2”:Ðð	ñô ð-ð -ñô ñ 3Ô2ð-ð  „×Ò˜ >Ñ2Ô2ð(Jð (Jñ 3Ô2ð(JðV „×ÒØàˆ�J×&Ò&¨Z¸Ð,DÐ&ÑEÔEÑFÔFØÐÑÔØ#Ð#¨q¸2Ð>Ñ>Ô>ðð
 	'Ð&ð ñ ô ðð ñô ðð  „Ôðð ñ Ôðð ð r6   