Ë
    8Ò^j:{  ã            
       ó†  — 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jF                  jI                  d «      Z%d\  Z&Z'e%jQ                  e&e'«      Z)ejT                  jV                  d„ «       Z,d„ Z-d„ Z.d„ Z/d„ Z0ejT                  jc                  dg d¢«      ejT                  jc                  dddg«      ejT                  jc                  dddg«      d„ «       «       «       Z2ejT                  jc                  dddg«      d„ «       Z3d„ Z4d„ Z5ejT                  jV                  d„ «       Z6ejT                  jV                  d„ «       Z7d„ Z8d„ Z9d„ Z:d „ Z;ejT                  jc                  dg d¢«      ejT                  jc                  dddg«      ejT                  jc                  dddg«      d!„ «       «       «       Z<ejT                  jc                  dddg«      d"„ «       Z=ejT                  jc                  dddg«      ejT                  jc                  dddg«      d#„ «       «       Z>d$„ Z?d%„ Z@d&„ ZAd'„ ZBd(„ ZCd)„ ZDd*„ ZEejT                  jc                  d+g d¢«      ejT                  jc                  d,ddg«      d-„ «       «       ZFejT                  jc                  d+d.d/g«      d0„ «       ZGd1„ ZHd2„ ZId3„ ZJd4„ ZKd5„ ZLejT                  jV                  d6„ «       ZMd7„ ZNd8„ ZOd9„ ZPd:„ ZQejT                  jc                  d;d<«      ejT                  jc                  d=ej¤                  ej¦                  f«      d>„ «       «       ZTejT                  jc                  d;d<«      d?„ «       ZUejT                  jc                  dd<«      ejT                  jc                  d=ej¤                  ej¦                  f«      d@„ «       «       ZVejT                  jc                  dAdB«      ejT                  jc                  dd<«      ejT                  jc                  dCej¤                  ej¤                  fej¦                  ej¦                  fej®                  ej¦                  fej°                  ej¦                  ff«      dD„ «       «       «       ZYejT                  jc                  dAdB«      ejT                  jc                  dd<«      ejT                  jc                  dCej¤                  ej¤                  fej¦                  ej¦                  fej®                  ej¦                  fej°                  ej¦                  ff«      dE„ «       «       «       ZZejT                  jc                  dFdB«      ejT                  jc                  dCej¤                  ej¤                  fej¦                  ej¦                  fej®                  ej¦                  fej°                  ej¦                  ff«      dG„ «       «       Z[ejT                  jc                  dFdB«      dH„ «       Z\ejT                  jc                  dFdB«      ejT                  jc                  dCej¤                  ej¤                  fej¦                  ej¦                  fej®                  ej¦                  fej°                  ej¦                  ff«      dI„ «       «       Z]ejT                  jc                  dFdB«      dJ„ «       Z^ejT                  jc                  dK ee%j¿                  e'e'f¬L«      «       e«        edMdN¬O«      gdP„ ¬Q«      dR„ «       Z`ejT                  jV                  dS„ «       Zay)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                  ój  — t         j                  j                  d«      } g d¢}t        j                  ddgddg«      D ]s  \  }}| j                  |t        «      }| j                  |t        «      }t        j                  |ddg«      D ]'  \  }}t        ||||¬«      }|j                  ||fk(  rŒ'J ‚ Œu y )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	            úy/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/decomposition/tests/test_dict_learning.pyÚtest_sparse_encode_shapes_ompr5   *   s°   € ä
�)‰)×
Ñ
 Ó
"€CÚG€JÜ#,×#4Ñ#4°a¸°V¸aÀ¸VÓ#Dò ;Ñˆ�iØ�Y‰Y�y¤*Ó-ˆØ—Y‘Y˜|¬ZÓ8ˆ
Ü!*×!2Ñ!2°:ÀÀ1¸vÓ!Fò 	;ÑˆI�vÜ   Z¸9ÈVÔTˆDØ—:‘: )¨\Ð!:Ó:Ð:Ð:ñ	;ñ;ó    c                  ó~  — d} t        | d¬«      j                  t        «      }|j                  j                  | t
        fk(  sJ ‚d} t        | d¬«      j                  t        «      }|j                  j                  | t
        fk(  sJ ‚|j                  t        «      j                  t        j                  d   | fk(  sJ ‚y )Nr    r   ©Úrandom_stater   )r   ÚfitÚXÚcomponents_r,   r+   Ú	transform©r/   Údicos     r4   Útest_dict_learning_shapesr@   6   s¢   € Ø€LÜ˜l¸Ô;×?Ñ?ÄÓB€DØ×Ñ×!Ñ! l´JÐ%?Ò?Ð?Ð?à€LÜ˜l¸Ô;×?Ñ?ÄÓB€DØ×Ñ×!Ñ! l´JÐ%?Ò?Ð?Ð?Ø�>‰>œ!Ó×"Ñ"¤q§w¡w¨q¡z°<Ð&@Ò@Ð@Ñ@r6   c                  óŠ   — d} t        | d¬«      j                  t        «      }|j                  j                  | t
        fk(  sJ ‚y )Né   r   r8   )r   r:   r;   r<   r,   r+   r>   s     r4   Útest_dict_learning_overcompleterC   A   s=   € Ø€LÜ˜l¸Ô;×?Ñ?ÄÓ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                  |«      <   |j                  d	d«      }t        j                  t        «      5  t        || d	¬«      }|j                  |«       d d d «       t        j                  «       5  t        j                  dt        «       t        || d¬«      }|j                  |«       d d d «       y # 1 sw Y   Œ`xY w# 1 sw Y   y xY w)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‰K˜˜:¨™>¨:Ó6ˆà”"—'‘'˜!˜e™)Ó$¤r§u¡u¨d¡{Ñ2Ñ3Ø�A˜‘J 1Ñ$ u¨a¡xÑ/Ñ/ñ1ä�f‰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‰H�l JÐ/Ó0ˆÜ" 7Ó+ò 	>‰IˆAˆvÙ" :¨v°uÓ=ˆAˆaŠDð	>à	ŒR�W‰W”R—V‘V˜A˜q™D qÔ)Ó*ª1¬b¯j©j¨=Ñ9Ñ9ˆØˆr6   r   é   rF   c              3   ó:   •K  — | ]  } ‰|‰‰d z  ¬«      –— Œ y­w)r    )rM   rK   r/   N© )Ú.0Úwr/   rK   rZ   s     €€€r4   ú	<genexpr>z test_max_iter.<locals>.<genexpr>b   s1   øè ø€ ò 
ð ñ Ø J¸\ÈQÑ=N÷ð ñ
ùs   ƒ)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‰eÜõ 
ð (ô	
ó 	
ñ€Gô 	�‰�A�z A‘~ zÓ2€AØ˜
 Q™Ñ&€MØ€A€mÑØ'+€A„b‡n�n�]Ó#Ñ$Ø	�	‰	�!�RÓ€Aô 
�‰Ô(Ó	)ñ ÜØÐ)<ÐQRô
ˆð 	×Ñ˜AÔ÷	ô 
×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ'9Ô:ÜØÐ)<ÐQTô
ˆð 	×Ñ˜AÔ÷ð ÷ð ú÷ð ús   Â) D(Ã%:D4Ä(D1Ä4D=c                  ó–   — d} d}d}t        j                  t        |¬«      5  t        t        | |d¬«       d d d «       y # 1 sw Y   y xY w)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�   €   sF   € Ø€LØ€EØK€GÜ	�‰”z¨Ô	1ñ HÜ”a˜¨UÀ$ÕG÷H÷ Hñ Hús	   ¢?¿Arf   )r   r   r   r}   FTÚpositive_dictc                 óT  — d}t        || d||d¬«      j                  t        «      }|j                  t        «      }|r|j                  dk\  j                  «       s!J ‚|j                  dk  j                  «       sJ ‚|r|dk\  j                  «       sJ ‚y |dk  j                  «       sJ ‚y )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ð 	ð �>‰>œ!Ó€DÙØ× Ñ  AÑ%×*Ñ*Ô,Ð,Ð,à× Ñ  1Ñ$×)Ñ)Ô+Ð+Ð+ÙØ˜‘	�‰Ô Ð Ñ à�q‘�~‰~ÔÐÑr6   c                 óÐ   — d}t        |dd| d¬«      j                  t        «      }| r |j                  dk\  j	                  «       sJ ‚y |j                  dk  j                  «       sJ ‚y )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Œ   ¨   sm   € à€LÜØØ"ØØ#Øô÷ 
�cŒ!ƒfð 	ñ Ø× Ñ  AÑ%×*Ñ*Ô,Ð,Ñ,à× Ñ  1Ñ$×)Ñ)Ô+Ð+Ñ+r6   c                  óþ   — d} t        | dddd¬«      j                  t        «      }d}|j                  d«      }t	        j
                  t        |¬«      5  |j                  t        «       d d d «       y # 1 sw Y   y xY w)	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�   ¹   ss   € Ø€LÜØØ"ØØØô÷ 
�cŒ!ƒfð 	ð J€GØ�n‰n˜VÓ$€GÜ	�‰”z¨Ô	1ñ Ø�‰”qÔ÷÷ ñ ús   ÁA3Á3A<c                  ó”  — d} t        | ddd¬«      }|j                  t        «      j                  t        «      }t	        t        j                  ||j                  «      t        «       t	        |j                  |«      t        «       |j                  d¬«       |j                  t        «      }t	        t        j                  ||j                  «      t        d¬	«       t	        |j                  |«      t        d¬	«       t        j                  t        d
¬«      5  |j                  |d d …d d…f   «       d d d «       y # 1 sw Y   y xY w)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™f T¨4×+;Ñ+;Ó<¼aÔ@Ü˜d×4Ñ4°TÓ:¼AÔ>à‡O�O¨€OÔ5Ø�>‰>œ!Ó€DÜœbŸf™f T¨4×+;Ñ+;Ó<¼aÈÕKÜ˜d×4Ñ4°TÓ:¼AÀqÕIô 
�‰”zÐ)?Ô	@ñ -Ø×Ñ˜t¢A s¨ s F™|Ô,÷-÷ -ñ -ús   ÄD>Ä>Ec                  ó‚  — d} t        | dddd¬«      }|j                  t        «      j                  t        «      }t	        t        j                  ||j                  «      t        «       |j                  d¬«       |j                  t        «      }t	        t        j                  ||j                  «      t        d	¬
«       y )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™f T¨4×+;Ñ+;Ó<¼aÔ@à‡O�O¨€OÔ5Ø�>‰>œ!Ó€DÜœbŸf™f T¨4×+;Ñ+;Ó<¼aÈÖKr6   c                  óR  — d} t        t        «      5 }t        | dddd¬«      }t        t        ¬«      5  |j                  |«      j                  |«      }d d d «       t        t        j                  |j                  «      |d¬	«       d d d «       y # 1 sw Y   Œ>xY w# 1 sw Y   y xY w)
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ñ 	@Ø—8‘8˜KÓ(×2Ñ2°;Ó?ˆD÷	@ä!Ü�F‰F�4˜×)Ñ)Ó*¨KÀõ	
÷
ð 
÷	@ð 	@ú÷
ð 
ús"   ’!B³!BÁ4BÂB	ÂBÂB&c                  óœ  — d} t        | ddd¬«      }|j                  t        «      j                  t        t        j
                  df   «      }t        t	        j                  |«      «      dk(  sJ ‚|j                  d¬«       |j                  t        t        j
                  df   «      }t        t	        j                  |«      «      dk(  sJ ‚y )	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€DÜŒr�~‰~˜dÓ#Ó$¨Ò)Ð)Ð)à‡O�O¨€OÔ.Ø�>‰>œ!œBŸJ™J¨˜MÑ*Ó+€DÜŒr�~‰~˜dÓ#Ó$¨Ò)Ð)Ñ)r6   c                  óJ  — d} t        | dd¬«      }|j                  t        «      j                  t        «      }|j	                  |«      }d|_        |j                  t        «      }t        |d d …d | …f   |d d …| d …f   z
  |«       |j	                  |«      }t        ||«       y )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�m�|�mÐ#Ñ$ z²!°\±]Ð2BÑ'CÑCÀTôð ×
 Ñ
  Ó
,€CÜ˜b #Õ&r6   c            	      ó”  — t         j                  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 ‚y )	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Ø×Ñ ¬jÐ9Ò9Ð9Ð9Ü�6‰6�$˜
Ó#×)Ñ)¬Q¯W©WÒ4Ð4Ð4ä%Ü	Ø!ØØØØØô€Jð ×Ñ ¬jÐ9Ò9Ð9Ñ9r6   c                  óŽ   — d} t        j                  t        | ¬«      5  t        t        ddd¬«       d d d «       y # 1 sw Y   y xY w)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ñ OÜœQ¨1°rÈÕN÷O÷ Oñ Oús	   ž;»Ac           
      óX  — d}t        |dd| d||d¬«      j                  t        «      }|j                  t        «      }|r|j                  dk\  j                  «       s!J ‚|j                  dk  j                  «       sJ ‚|r|dk\  j                  «       sJ ‚y |dk  j                  «       sJ ‚y )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ð 	ð �>‰>œ!Ó€DÙØ× Ñ  AÑ%×*Ñ*Ô,Ð,Ð,à× Ñ  1Ñ$×)Ñ)Ô+Ð+Ð+ÙØ˜‘	�‰Ô Ð Ñ à�q‘�~‰~ÔÐÑr6   c           	      óÔ   — d}t        |dddd| d¬«      j                  t        «      }| r |j                  dk\  j	                  «       sJ ‚y |j                  dk  j                  «       sJ ‚y )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  ss   € à€Lä&ØØØØ"ØØ#Øô÷ 
�cŒ!ƒfð 	ñ Ø× Ñ  AÑ%×*Ñ*Ô,Ð,Ñ,à× Ñ  1Ñ$×)Ñ)Ô+Ð+Ñ+r6   c           
      ó,  — t         j                  j                  d«      }d}t        t        |ddd||| ¬«      \  }}|r|dk\  j                  «       sJ ‚|dk  j                  «       sJ ‚| r|dk\  j                  «       sJ ‚y |dk  j                  «       sJ ‚y )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¬«      }|j                  t        «       t	        | ddddd¬	«      }|j                  t        «       t	        | dddd¬
«      }|j                  t        «       t        t        | dddd¬«       t        t        | dddd¬«       ||_        |j                  j                  | t        fk(  sJ ‚y # ||_        w xY w)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Æ      s  € à€LÛÝà—‘€Jð) Ù“ZˆŒ
ô +Ø Q°¸AÀ3ÐUVô
ˆð 	�‰”ŒÜ*ØØØØØ Øô
ˆð 	�‰”Œä*Ø Q°¸AÈAô
ˆð 	�‰”Œô 	ÜØ%ØØØØõ	
ô 	ÜØ%ØØØØõ	
ð  ˆŒ
à×Ñ×!Ñ! l´JÐ%?Ò?Ð?Ñ?øð  ˆ�
ús   šB'C* Ã*	C3c                  ó’   — d} t        | ddd¬«      }|j                  t        «       |j                  j                  | t
        fk(  sJ ‚y )Nr    rd   r   ©r¯   r°   r9   ©r   r:   r;   r<   r,   r+   r>   s     r4   Ú*test_dict_learning_online_estimator_shapesrÊ   Õ  sF   € Ø€LÜ&Ø ¨Q¸Qô€Dð 	‡H�HŒQ„KØ×Ñ×!Ñ! l´JÐ%?Ò?Ð?Ñ?r6   c                  óŽ   — d} t        | ddd¬«      j                  t        «      }|j                  j                  | t
        fk(  sJ ‚y )NrB   rd   r    r   rÈ   rÉ   r>   s     r4   Ú&test_dict_learning_online_overcompleterÌ   Þ  sG   € Ø€LÜ&Ø ¨Q¸Qôç	�cŒ!ƒfð 	ð ×Ñ×!Ñ! l´JÐ%?Ò?Ð?Ñ?r6   c                  óä   — d} t         j                  j                  d«      }|j                  | t        «      }t        | dd|d¬«      j                  t        «      }t        |j                  |«       y )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Ð   æ  s^   € Ø€LÜ
�)‰)×
Ñ
 Ó
"€CØ�	‰	�,¤
Ó+€AÜ&Ø ¨Q¸!È!ôç	�cŒ!ƒfð 	ô �t×'Ñ'¨Õ+r6   c                  óÞ   — d} t         j                  j                  d«      }|j                  | t        «      }|j                  d¬«       t        | dd|dd¬«      j                  t        «       y )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Õ   ð  s^   € Ø€LÜ
�)‰)×
Ñ
 Ó
"€CØ�	‰	�,¤
Ó+€AØ‡J�J�U€JÔÜØØØØØØô÷ 
�cŒ!…fr6   c                  ó¸  — d} t         j                  j                  d«      }|j                  | t        «      }|t        j
                  |dz  d¬«      d d …t         j                  f   z  }t        | dddd|d dd¬	«	      j                  t        «      }t        | d|d¬
«      }t        d«      D ]3  }t        D ](  }|j                  |t         j                  d d …f   «       Œ* Œ5 t        j                  t        t        |j                  d¬«      dk(  «      rJ ‚t        |j                  |j                  d¬«       |j                   |j                   cxk(  rdk(  sJ ‚ J ‚y )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¤§¡˜mÑ	,Ñ,€AÜ'ØØØØØØØØØô
÷ 
�cŒ!ƒfð 
ô (Ø˜A¨¸ô€Eô �2‹Yò 5ˆÜò 	5ˆFØ×Ñ˜f¤R§Z¡Z² ]Ñ3Õ4ñ	5ð5ô �v‰v”m¤A u×'8Ñ'8ÀÔBÀaÑGÔHÐHÐHÜ˜e×/Ñ/°×1BÑ1BÈAÕNð �>‰>˜UŸ^™^Ô2¨sÒ2Ð2Ñ2Ð2Ñ2r6   c                  ó6  — d} t         j                  j                  d«      }|j                  | t        «      }|t        j
                  |dz  d¬«      d d …t         j                  f   z  }dD ]+  }t        t        ||¬«      }|j                  t        | fk(  rŒ+J ‚ y )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¤§¡˜mÑ	,Ñ,€AØFò 7ˆÜœQ ¨TÔ2ˆØ�z‰zœi¨Ð6Ó6Ð6Ð6ñ7r6   rã   Úpositivec                 óV  — d}t         j                  j                  d«      }|j                  |t        «      }|t        j
                  |dz  d¬«      d d …t         j                  f   z  }t        t        || |¬«      }|r|dk\  j                  «       sJ ‚y |dk  j                  «       sJ ‚y )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¤§¡˜mÑ	,Ñ,€AÜœ˜A¨¸ÔA€DÙØ˜‘	�‰Ô Ð Ñ à�q‘�~‰~ÔÐÑr6   r   r   c                 ó‚  — d}t         j                  j                  d«      }|j                  |t        «      }|t        j
                  |dz  d¬«      d d …t         j                  f   z  }d}|j                  | «      }t        j                  t        |¬«      5  t        t        || d¬	«       d d d «       y # 1 sw Y   y xY w)
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¤§¡˜mÑ	,Ñ,€AØI€GØ�n‰n˜TÓ"€GÜ	�‰”z¨Ô	1ñ ;Ü”a˜ d°TÕ:÷;÷ ;ñ ;ús   ÂB5Â5B>c                  ó^  — d} t         j                  j                  d«      }|j                  | t        «      }|t        j
                  |dz  d¬«      d d …t         j                  f   z  }t        t        d¬«      }dD ].  }t        t        ||¬	«      }t        |||¬	«      }t        ||«       Œ0 y )
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¤§¡˜mÑ	,Ñ,€AÜ	”Q˜cÔ	"€BØFò (ˆÜœ!˜Q¨$Ô/ˆÜ˜"˜a¨4Ô0ˆÜ! ! QÕ'ñ(r6   c                  óÄ  — d} t         j                  j                  d«      }|j                  | 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 ‚y )	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¤§¡˜mÑ	,Ñ,€AÜœ˜A UÔ+€DÜ�v‰v�d˜a‘iÔ Ð Ð Ü�7‰7”2—6‘6œ2Ÿ6™6 $¨›?¬QÑ.°1Ñ4Ó5Ó6¸Ò<Ð<Ñ<r6   c                  óÞ   — t         j                  j                  d«      } | j                  dd«      }| j                  dd«      } t	        t
        «      ||dd ¬«      }|j                  dk(  sJ ‚y )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  s`   € Ü
�)‰)×
Ñ
 Ó
"€CØ�	‰	�#�rÓ€AØ�	‰	�!�RÓ€AØ)Œ?œ=Ó)¨!¨Q¸%ÐQUÔV€DØ�:‰:˜Ò!Ð!Ñ!r6   c                  óp  — d} t         j                  j                  d«      }|j                  | t        «      }|t        j
                  |dz  d¬«      d d …t         j                  f   z  }t        |dd¬«      }|j                  t        «      }|j                  |«      }t        j                  |dk(  «      rJ ‚t        j                  t        j
                  t        j                  ||«      t        z
  dz  «      «      d	k  sJ ‚t         j                  j                  |t        j                  ||«      «       y )
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¤§¡˜mÑ	,Ñ,€AÜØ¨,Èô€Eð ×ÑœqÓ!€DØ	×	 Ñ	  Ó	&€BÜ�v‰v�d˜a‘iÔ Ð Ð Ü�7‰7”2—6‘6œ2Ÿ6™6 $¨›?¬QÑ.°1Ñ4Ó5Ó6¸Ò<Ð<Ð<Ü‡J�J×Ñ˜r¤2§6¡6¨$°£?Õ3r6   c                  ó  — d} t         j                  j                  d«      }|j                  | t        f¬«      }|t        j
                  |dz  d¬«      d d …t         j                  f   z  }t        |dd¬	«      }t        |«      }t        |«      t        |«      k7  sJ ‚t         j                  j                  |j                  |j                  «       t        |j                  «      t        |j                  «      k7  sJ ‚t         j                  j                  t        t        «      j                  t         j                   «      }t         j                  j                  |j#                  |«      |j#                  |«      «       y )
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  s  € Ø€LÜ
�)‰)×
Ñ
 Ó
"€CØ�
‰
˜¤zÐ2ˆ
Ó3€AØŒ�‰��1‘˜1Ô	ša¤§¡˜mÑ	,Ñ,€AÜØ¨,Èô€Eô �5‹\€FÜˆf‹:œ˜E›Ò"Ð"Ð"Ü‡J�J×Ñ˜v×0Ñ0°%×2BÑ2BÔCÜˆf×ÑÓ ¤B u×'7Ñ'7Ó$8Ò8Ð8Ð8Ü�9‰9�>‰>œ)¤ZÓ0×7Ñ7¼¿
¹
ÓC€DÜ‡J�J×Ñ˜v×/Ñ/°Ó5°u·±ÀtÓ7LÕMr6   c                  óJ  — t         j                  j                  d«      } d\  }}| j                  ||«      }t	        d«      d|z  z  }t         j                  j                  ||«      j                  t         j                  «      }t        |dd¬«      }|j                  |«       y )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€Iô �C“˜Q ™^Ñ,€IÜ�9‰9�>‰>˜) ZÓ0×7Ñ7¼¿
¹
ÓC€Dä	�Y°EÀ!Ô	D€BØ×Ñ�TÕr6   c                  ó¢  — t         j                  j                  d«      } d\  }}| j                  ||«      }t	        |«      }t        |j                  j                  |«       t        |j                  j                  |«       t        t        d¬«      } ||j                  j                  |«       t        |j                  j                  |«       y )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€Iä	�YÓ	€Bä'¨¯©×(=Ñ(=¸rÔBÜ˜bŸl™l×3Ñ3°RÔ8Ü'.Ü!°4ô(Ð$ñ % R§\¡\×%:Ñ%:¸BÔ?Ü §¡× 5Ñ 5°rÕ:r6   c                  óÞ   — t        j                  g d¢g d¢g«      } t        j                  g d¢g«      }t        | «      }|j                  |«       |j                  | j
                  d   k(  sJ ‚y )N)r   r"   rF   r   )r%   Úarrayr   r:   Ún_features_in_r,   )Údr;   r  s      r4   Útest_sparse_coder_n_features_inr  ¤  sU   € Ü
�‰’)šYÐ'Ó(€AÜ
�‰’)�Ó€AÜ	�Q‹€BØ‡F�Fˆ1„IØ×Ñ §¡¨¡
Ò*Ð*Ñ*r6   c                  óL  — d} t         j                  j                  d«      }|j                  | t        f¬«      }|j                  t
        t        dz   f¬«      }t        |«      }t        j                  t        d¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)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€AØ�‰œ)¤Z°!¡^Ð4ˆÓ5€AÜ˜‹N€EÜ	�‰ÜÐOô
ñ ð 	�	‰	�!Œ÷÷ ñ ús   Á?BÂB#c                  ó  — t         j                  j                  d«      } t        j                  ddgddgg«      }t        j                  ddgdd	gg«      }t        j                  ||«      | j                  d
d
«      z   }|j                  «       }t        |||«       t        j                  |j                  |«      }t        j                  |j                  |«      }|j                  «       }t        |||||«       t        ||«       y )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‰8�c˜4�[ 3¨ *Ð-Ó.€DÜ—‘˜C ˜:¨¨S zÐ2Ó3€Jä
�‰ˆt�ZÓ  3§9¡9¨Q°£?Ñ2€Að —‘Ó"€JÜ�˜Q Ô%ô 	�‰ˆt�v‰v�tÓ€AÜ
�‰ˆq�s‰s�DÓ€AØ—/‘/Ó#€KÜ�˜a  q¨!Ô,ä�J Õ,r6   r#   )r   r   r   r   r   Ú	data_typec                 óô   — d}t         j                  j                  d«      }|j                  |t        «      }t        t        j                  | «      |j                  | «      |¬«      }|j                  | k(  sJ ‚y )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)  Ï  sf   € ð €LÜ
�)‰)×
Ñ
 Ó
"€CØ—‘˜<¬Ó4€JÜÜ	�‰�Ó˜Z×.Ñ.¨yÓ9ÀYô€Dð �:‰:˜Ò"Ð"Ñ"r6   c                 óÂ  — d}d}t         j                  j                  d«      }|j                  |t        «      }t        t        j                  t         j                  «      |j                  t         j                  «      | ¬«      }t        t        j                  t         j                  «      |j                  t         j                  «      | ¬«      }t        |||¬«       y )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€JÜÜ	�‰”—‘Ó˜j×/Ñ/´·
±
Ó;Àyô€Gô Ü	�‰”—‘Ó˜j×/Ñ/´·
±
Ó;Àyô€Gô �G˜W¨4Ö0r6   c                 ó  — d}t         j                  j                  d«      }|j                  |t        «      }t        |j                  | «      |¬«      }|j                  t        j                  | «      «      }|j                  | k(  sJ ‚y )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  ñ  ss   € ð €LÜ
�)‰)×
Ñ
 Ó
"€CØ—‘˜<¬Ó4€JÜØ×Ñ˜)Ó$Ð:Mô€Eð �?‰?œ1Ÿ8™8 IÓ.Ó/€DØ�:‰:˜Ò"Ð"Ñ"r6   r…   )r   r„   zdata_type, expected_typec                 ó  — t        d||d¬«      }|j                  t        j                  | «      «       |j                  j
                  |k(  sJ ‚|j                  t        j                  | «      «      j
                  |k(  sJ ‚y )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    su   € ô( &ØØ#Ø/Øô	€Lð ×Ñ”Q—X‘X˜iÓ(Ô)Ø×#Ñ#×)Ñ)¨]Ò:Ð:Ð:Ø×!Ñ!¤!§(¡(¨9Ó"5Ó6×<Ñ<ÀÒMÐMÑMr6   c           	      óx  — t        dd||ddd¬«      }|j                  t        j                  | «      «       |j                  j
                  |k(  sJ ‚|j                  t        j                  | «      «      j
                  |k(  sJ ‚|j                  j
                  |k(  sJ ‚|j                  j
                  |k(  sJ ‚y )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Ó6×<Ñ<ÀÒMÐMÐMØ�?‰?× Ñ  MÒ1Ð1Ð1Ø�?‰?× Ñ  MÒ1Ð1Ñ1r6   r±   c                 óØ   — t         j                  j                  d«      }d}t        t        j                  | «      |d||¬«      \  }}}|j                  |k(  sJ ‚|j                  |k(  sJ ‚y )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  sn   € ô �)‰)×
Ñ
 Ó
"€CØ€LÜ'Ü	�‰�ÓØ!ØØØôÑ€Dˆ*�að �:‰:˜Ò&Ð&Ð&Ø×Ñ˜}Ò,Ð,Ñ,r6   c                 ó  — d}d}d}t        t        j                  t        j                  «      ||d| ¬«      \  }}}t        t        j                  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k7  «      dkD  sJ ‚t        j                  |dk7  «      t        j                  |dk7  «      k(  sJ ‚y )	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  `  s*  € ð €DØ€LØ€Eä!Ü	�‰”—‘ÓØ!ØØØô�M€Dˆ$�ô "Ü	�‰”—‘ÓØ!ØØØô�M€Dˆ$�ô ”B—I‘I˜d DÓ)¬2¯9©9°T¸4Ó+@ÀtÕLÜ”B—F‘Fœ2Ÿ6™6 $›<Ó(¬"¯&©&´·±¸³Ó*>ÀTÕJÜ”B—F‘F˜4 ™7“O¤R§V¡V¨D°!©G£_¸4Õ@ä�7‰7�4˜3‘;Ó $Ò&Ð&Ð&Ü×Ñ˜D C™KÓ(¬B×,<Ñ,<¸TÀS¹[Ó,IÒIÐIÑIr6   c                 óØ   — t         j                  j                  d«      }d}t        t        j                  | «      |dd||¬«      \  }}|j                  |k(  sJ ‚|j                  |k(  sJ ‚y )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  „  so   € ô �)‰)×
Ñ
 Ó
"€CØ€LÜ+Ü	�‰�ÓØ!ØØØØôÑ€Dˆ*ð �:‰:˜Ò&Ð&Ð&Ø×Ñ˜}Ò,Ð,Ñ,r6   c                 ó$  — d}d}d}t        t        j                  t        j                  «      |d|dd| dd ¬«	      \  }}t        t        j                  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k7  «      dkD  sJ ‚t        j                  |dk7  «      t        j                  |dk7  «      k(  sJ ‚y )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‘I˜d DÓ)¬2¯9©9°T¸4Ó+@ÀtÕLÜ”B—F‘Fœ2Ÿ6™6 $›<Ó(¬"¯&©&´·±¸³Ó*>ÀTÕJÜ”B—F‘F˜4 ™7“O¤R§V¡V¨D°!©G£_¸4Õ@ä�7‰7�4˜3‘;Ó $Ò&Ð&Ð&Ü×Ñ˜D C™KÓ(¬B×,<Ñ,<¸TÀS¹[Ó,IÒIÐIÑIr6   Ú	estimatorrþ   rd   r   )r¯   r°   c                 ó.   — | j                   j                  S )N)r  r  )rN   s    r4   ú<lambda>rR  Ñ  s   € �!—+‘+×&Ñ&€ r6   )Úidsc                 ó*  — t        | «      } | j                  t        «       t        j                  d   }| j	                  «       }| j
                  j                  j                  «       }t        |t        |«      D �cg c]  }|› |› �‘Œ
 c}«       yc c}w )z1Check feature names for dict learning estimators.r   N)
r   r:   r;   r,   Úget_feature_names_outr  r  Úlowerr   rÙ   )rP  r/   Úfeature_names_outÚestimator_namerY   s        r4   Útest_get_feature_names_outrY  Ê  s{   € ô �iÓ €IØ‡M�M”!ÔÜ—7‘7˜1‘:€Là!×7Ñ7Ó9ÐØ×(Ñ(×1Ñ1×7Ñ7Ó9€NÜØÜ).¨|Ó)<Ö= AˆNÐ˜A˜3Ò	Ò=õùâ=s   Á;B
c                 ó  — | j                  t        j                  j                  dt	        t
        d¬«      «       t        j                  j                  d«      }|j                  dd«      }t        ddddd	d
¬«      }|j                  |«       y )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_datarb  ã  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  rY  rb  r]   r6   r4   ú<module>rs     s<  ðÛ Û Ý ã Û ã Ý ÷÷ õ >Ý 1Ý %÷õ ÷ñ õ
 ,à�Y‰Y×"Ñ" 1Ó%€
ØÑ €	ˆ:Ø×Ñ�Y 
Ó+€ð
 ‡�×Ññ;ó ð;òAò@ò6òrHð ‡�×ÑØòóð ‡�×Ñ˜¨5°$¨-Ó8Ø‡�×Ñ˜¨5°$¨-Ó8ñ ó 9ó 9óð ð, ‡�×Ñ˜¨5°$¨-Ó8ñ,ó 9ð,ò ò -ð0 ‡�×ÑñLó ðLð( ‡�×Ññ
ó ð
ò"*ò 'ò&:ò:Oð ‡�×ÑØòóð ‡�×Ñ˜¨5°$¨-Ó8Ø‡�×Ñ˜¨5°$¨-Ó8ñ ó 9ó 9óð ð4 ‡�×Ñ˜¨5°$¨-Ó8ñ,ó 9ð,ð& ‡�×Ñ˜¨5°$¨-Ó8Ø‡�×Ñ˜¨5°$¨-Ó8ñ ó 9ó 9ð ò02@òj@ò@ò,òò3ò<7ð ‡�×Ñ˜Ò!HÓIØ‡�×Ñ˜ e¨T ]Ó3ñ	 ó 4ó Jð	 ð ‡�×Ñ˜ &¨% Ó1ñ;ó 2ð;ò	(ò=ò"ò4òNð$ ‡�×Ññó ðò&;ò +ò	ò-ð. ‡�×ÑØÐGóð ‡�×Ñ˜ r§z¡z°2·:±:Ð&>Ó?ñ#ó @óð#ð ‡�×ÑØÐGóñ1óð1ð ‡�×ÑØÐQóð ‡�×Ñ˜ r§z¡z°2·:±:Ð&>Ó?ñ	#ó @óð	#ð ‡�×Ñ˜¨.Ó9Ø‡�×ÑØÐQóð ‡�×ÑØà	�‰�R—Z‘ZÐ Ø	�‰�R—Z‘ZÐ Ø	�‰�2—:‘:ÐØ	�‰�2—:‘:Ðð	óñNóóó :ðNð$ ‡�×Ñ˜¨.Ó9Ø‡�×ÑØÐQóð ‡�×ÑØà	�‰�R—Z‘ZÐ Ø	�‰�R—Z‘ZÐ Ø	�‰�2—:‘:ÐØ	�‰�2—:‘:Ðð	óñ2óóó :ð2ð0 ‡�×Ñ˜ >Ó2Ø‡�×ÑØà	�‰�R—Z‘ZÐ Ø	�‰�R—Z‘ZÐ Ø	�‰�2—:‘:ÐØ	�‰�2—:‘:Ðð	óñ-óó 3ð-ð ‡�×Ñ˜ >Ó2ñ Jó 3ð JðF ‡�×Ñ˜ >Ó2Ø‡�×ÑØà	�‰�R—Z‘ZÐ Ø	�‰�R—Z‘ZÐ Ø	�‰�2—:‘:ÐØ	�‰�2—:‘:Ðð	óñ-óó 3ð-ð  ‡�×Ñ˜ >Ó2ñ(Jó 3ð(JðV ‡�×ÑØá�J×&Ñ&¨Z¸Ð,DÐ&ÓEÓFÙÓÙ#¨q¸2Ô>ðñ
 	'ð ó ñóðð  ‡�×Ññó ñr6   