§
    ¨éUgà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)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.ej/         0                    dg d¢¦  «        ej/         0                    dddg¦  «        ej/         0                    dddg¦  «        d„ ¦   «         ¦   «         ¦   «         Z1ej/         0                    dddg¦  «        d„ ¦   «         Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8d„ Z9d „ Z:ej/         0                    dg d¢¦  «        ej/         0                    dddg¦  «        ej/         0                    dddg¦  «        d!„ ¦   «         ¦   «         ¦   «         Z;ej/         0                    dddg¦  «        d"„ ¦   «         Z<ej/         0                    dddg¦  «        ej/         0                    dddg¦  «        d#„ ¦   «         ¦   «         Z=d$„ Z>d%„ Z?d&„ Z@d'„ ZAd(„ ZBd)„ ZCd*„ ZDej/         0                    d+g d¢¦  «        ej/         0                    d,ddg¦  «        d-„ ¦   «         ¦   «         ZEej/         0                    d+d.d/g¦  «        d0„ ¦   «         ZFd1„ ZGd2„ ZHd3„ ZId4„ ZJd5„ ZKd6„ ZLd7„ ZMd8„ ZNd9„ ZOej/         0                    d:d;¦  «        ej/         0                    d<ejP        ejQ        f¦  «        d=„ ¦   «         ¦   «         ZRej/         0                    d:d;¦  «        d>„ ¦   «         ZSej/         0                    dd;¦  «        ej/         0                    d<ejP        ejQ        f¦  «        d?„ ¦   «         ¦   «         ZTej/         0                    d@dA¦  «        ej/         0                    dd;¦  «        ej/         0                    dBejP        ejP        fejQ        ejQ        fejU        ejQ        fejV        ejQ        ff¦  «        dC„ ¦   «         ¦   «         ¦   «         ZWej/         0                    d@dA¦  «        ej/         0                    dd;¦  «        ej/         0                    dBejP        ejP        fejQ        ejQ        fejU        ejQ        fejV        ejQ        ff¦  «        dD„ ¦   «         ¦   «         ¦   «         ZXej/         0                    dEdA¦  «        ej/         0                    dBejP        ejP        fejQ        ejQ        fejU        ejQ        fejV        ejQ        ff¦  «        dF„ ¦   «         ¦   «         ZYej/         0                    dEdA¦  «        dG„ ¦   «         ZZej/         0                    dEdA¦  «        ej/         0                    dBejP        ejP        fejQ        ejQ        fejU        ejQ        fejV        ejQ        ff¦  «        dH„ ¦   «         ¦   «         Z[ej/         0                    dEdA¦  «        dI„ ¦   «         Z\ej/         0                    dJ ee)j]        ¦  «         e¦   «          edKdL¬M¦  «        gdN„ ¬O¦  «        dP„ ¦   «         Z^dQ„ Z_dR„ Z`dS )Sé    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	            úm/var/www/surfInsights/venv3-11/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@   3   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   >   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_functionE   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_matrixO   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   i   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>_   sV   øè è € ð 
ð 
ð ð ˆMØ J¸\ÈQÑ=Nðñ ô ð
ð 
ð 
ð 
ð 
ð 
r6   )r   é2   éd   iô  éè  r   r   é   g      @g      ð¿éÿÿÿÿ)Útransform_algorithmÚtransform_max_iterÚerroriÐ  )r%   Úr_ÚtuplerG   Úlogical_notÚreshapeÚpytestÚwarnsr   r   Úfit_transformÚwarningsÚcatch_warningsÚsimplefilter)
re   ÚsubsamplingÚD_multir;   Úfirst_quarterÚmodelr/   rK   rO   rZ   s
         @@@@r4   Útest_max_iterrv   D   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Ñ:Ô:Ð:ÝØÐ)<ÐQUð
ñ 
ô 
ˆð 	×Ò˜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)rl   Ú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re   )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)re   r9   r|   r�   Úfit_algorithm)r   r:   r;   r=   r<   ÚallÚany©re   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ƒ   )re   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ƒ   )re   r9   r|   r„   ú9Positive constraint not supported for '{}' coding method.ry   )r   r:   r;   Úformatrl   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          ¦  «         |                     d¬¦  «         |                     t          ¦  «        }t	          t          j        ||j        ¦  «        t          d¬	¦  «         d S )
NrB   r   çü©ñÒMbP?r   )re   Útransform_alphar9   r   ©re   r"   ©Údecimal©	r   r:   r;   r=   r   r%   Údotr<   Ú
set_params©r/   r?   r3   s      r4   Ú!test_dict_learning_reconstructionrš   Æ   s²   € Ø€LÝØ¨%ÀÐUVðñ ô €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          | 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   rc   ©re   r’   r9   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   rc   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 )	Nrc   r   rF   r   )re   Ú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
  |¦  «         d S )Nr    r   r   )re   r9   T)r   r:   r;   r=   Ú
split_signr   )r/   r?   r3   Ú
split_codes       r4   Útest_dict_learning_splitrª   	  s£   € Ø€LÝØ¨+ÀAðñ ô €Dð �8Š8•A‰;Œ;× Ò ¥Ñ#Ô#€DØ€D„OØ—’¥Ñ"Ô"€JåØ�1�1�1�m�|�mÐ#Ô$ z°!°!°!°\°]°]Ð2BÔ'CÑCÀTñô ð ð ð 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   rc   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 )Nrx   ry   rc   r   T)r¬   r­   r|   )rl   r}   r~   r	   r;   )r   s    r4   Ú1test_dict_learning_online_lars_positive_parameterr²   4  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   rc   r   r   rƒ   )r¬   r­   re   r9   r|   r�   r„   )r   r:   r;   r=   r<   r…   r†   r‡   s         r4   Ú-test_minibatch_dictionary_learning_positivityr´   :  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   rc   r   r   r   rƒ   )r¬   r­   re   r9   r�   r„   )r   r:   r;   r<   r…   r†   rŠ   s      r4   Ú'test_minibatch_dictionary_learning_larsr¶   ^  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   rc   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¸   r  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   )ÚStringIOrc   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    rc   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   rc   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   rc   )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)Úwriterc   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”   ra   )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�   ry   Trä   )r%   r&   r'   r*   r+   rU   rV   rŽ   rl   r}   r~   r
   r;   )rà   r/   r-   rÌ   r   s        r4   Ú)test_sparse_encode_unavailable_positivityrç   !  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 )
Nra   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î   -  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ð   9  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   ra   é@   r"   r   )r#   Ún_nonzero_coefs)ra   r"   )r%   r&   r'   r*   r   r
   r,   )r-   r;   rX   r3   s       r4   Ú)test_sparse_encode_error_default_sparsityrô   C  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 ‚d S )
NrB   r   r"   r   rQ   r   r‘   ©r2   re   r’   r»   )r%   r&   r'   r*   r+   rU   rV   r   r=   r;   r…   rH   r—   )r/   r-   rÌ   Úcoders       r4   Útest_sparse_coder_estimatorrø   K  sá   € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€AØ�Œ��1‘˜1Ð	Ñ	Ô	˜a˜a˜a¥¤˜mÔ	,Ñ,€AÝØ¨,Èðñ ô ç‚i•�l„lð 
õ Œv�e˜q’jÑ!Ô!Ð!Ð!Ð!ÝŒ7•2”6�2œ6 %¨Ñ+Ô+­aÑ/°AÑ5Ñ6Ô6Ñ7Ô7¸#Ò=Ð=Ð=Ð=Ð=Ð=r6   c                  ór  — d} t           j                             d¦  «        }|                     | t          ¦  «        }|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 ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚t           j                             t           t          ¦  «                             t           j        ¦  «        }t           j
                             |                     |¦  «        |                     |¦  «        ¦  «         d S )	NrB   r   r"   r   rQ   r   r‘   rö   )r%   r&   r'   r*   r+   rU   rV   r   r   ÚidÚtestingr   r2   Ún_components_Ún_features_in_Úrandr0   ÚastypeÚfloat32r=   )r/   r-   rÌ   r÷   ÚclonedÚdatas         r4   Ú!test_sparse_coder_estimator_cloner  W  sp  € Ø€LÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�,¥
Ñ+Ô+€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ØÔ 5Ô#6Ò6Ð6Ð6Ð6ØÔ  EÔ$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    €„>Arc   r   r"   )re   r$   )	r%   r&   r'   rþ   Úintrÿ   r   r   rn   )r-   r/   r+   Ú	init_dictr0   r  Úscs          r4   Útest_sparse_coder_parallel_mmapr
  i  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        | j        d         k    sJ ‚d S )N)r   r"   rF   r   )r%   Úarrayr   rý   r,   )Údr	  s     r4   Útest_sparse_coder_n_features_inr  Œ  sI   € Ý
Œ�)�)�)˜Y˜Y˜YÐ'Ñ(Ô(€AÝ	�Q‰Œ€BØÔ ¤¨¤
Ò*Ð*Ð*Ð*Ð*Ð*r6   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_consistencyr)  ¹  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  re   r/   r-   r2   r÷   r3   s          r4   Útest_sparse_coder_dtype_matchr+  Ë  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„   re   r9   )r   r:   r;   rÿ   r<   r   r=   ©r  Úexpected_typer„   re   Údict_learners        r4   Ú$test_dictionary_learning_dtype_matchr0  Ý  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   ra   r»   r   )r/   r¬   r„   re   r­   r½   r9   )	r   r:   r;   rÿ   r<   r   r=   Ú_AÚ_Br-  s        r4   Ú.test_minibatch_dictionary_learning_dtype_matchr4  ü  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  r.  r®   r-   r/   r3   r2   Ú_s           r4   Útest_dict_learning_dtype_matchr8  !  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 )	Ng�íµ ÷Æ°>rc   r"   r   r6  r$  rÔ   çš™™™™™©?)r   r;   rÿ   r%   r&  r   r   ÚmatmulrU   ÚabsÚmeanÚcount_nonzero)	r®   r%  r/   r{   ÚU_64ÚV_64r7  ÚU_32ÚV_32s	            r4   Ú(test_dict_learning_numerical_consistencyrC  :  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  r.  r®   r-   r/   r3   r2   s          r4   Ú%test_dict_learning_online_dtype_matchrE  ^  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#  rc   r   rb   r   r   rÔ   )r/   r­   r{   r¬   r9   r®   r½   r¾   r$  r"   r:  )r	   r;   rÿ   r%   r&  r   r   r;  rU   r<  r=  r>  )r®   r%  r/   r{   r?  r@  rA  rB  s           r4   Ú/test_dict_learning_online_numerical_consistencyrG  x  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   Ú	estimatorrc   r   )r¬   r­   c                 ó   — | j         j        S )N)r  r  )rN   s    r4   ú<lambda>rJ  «  s   € �!”+Ô&€ r6   )Úidsc                 ó  ‡— |                       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,   Úget_feature_names_outr  r  Úlowerr   rÖ   )rH  r/   Úfeature_names_outrN  s      @r4   Útest_get_feature_names_outrS  ¤  s‰   ø€ ð ‡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   ra   )Ú
max_nbytesr   r   r    r"   rƒ   r`   T)r/   r9   r$   r„   r­   r¼   )ÚsetattrÚsklearnÚdecompositionÚ_dict_learningr   r   r%   r&   r'   r*   r   r:   )Úmonkeypatchr-   ÚX_trainr/  s       r4   Ú%test_cd_work_on_joblib_memmapped_datar\  º  s¢   € Ø×ÒÝÔÔ,ØÝ• SÐ)Ñ)Ô)ñô ð õ Œ)×
Ò
 Ñ
"Ô
"€CØ�iŠi˜˜BÑÔ€Gå%ØØØØØØðñ ô €Lð ×Ò�WÑÔÐÐÐr6   c                  óX  — d} t          j        t          | ¬¦  «        5  t          d d¬¦  «                             t
          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          | ¬¦  «        5  t          t
          d d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz@`max_iter=None` is deprecated in version 1.4 and will be removedry   r   )r­   r9   )rl   rm   ÚFutureWarningr   r:   r;   r	   )Úwarn_msgs    r4   Útest_xxxr`  Ò  s1  € ØQ€HÝ	Œ•m¨8Ð	4Ñ	4Ô	4ð Jð JÝ#¨TÀÐBÑBÔB×FÒFÅqÑIÔIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jå	Œ•m¨8Ð	4Ñ	4Ô	4ð ?ð ?Ý�Q¨¸AÐ>Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð ?ð ?s#   ž*AÁAÁAÁ:BÂB#Â&B#)ar(   ro   Ú	functoolsr   Únumpyr%   rl   rW  Ú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;   r5   r@   rC   rv   r€   ÚmarkÚ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)  r+  Úint32Úint64r0  r4  r8  rC  rE  rG  r  rS  r\  r`  r\   r6   r4   ú<module>rp     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ð,ð ð ð ð 
Lð 
Lð 
Lð 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ð;ð	(ð 	(ð 	(ð=ð =ð =ð"ð "ð "ð	>ð 	>ð 	>ð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 „×ÒØàˆ�A”CÑÔØÐÑÔØ#Ð#¨q¸2Ð>Ñ>Ô>ðð
 	'Ð&ð ñ ô ð
ð 
ñô ð
ðð ð ð0?ð ?ð ?ð ?ð ?r6   