Ë
    ÷Q(h€$  ã                   óà  — 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
 d dlmZ d dlmZmZmZmZ d\  ZZZZ eeeeed ¬«      \  ZZZej2                  ej2                  ej2                  cZZZedz  Zedz  Z ej4                  ej2                  e«       ej4                  ej2                  e«      cZZd	„ Zd
„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#ejH                  jK                  deefeefg«      ejH                  jK                  ddedz   ig«      d„ «       «       Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1ejH                  jK                  d ejd                  ejf                  f«      d!„ «       Z4d"„ Z5y)#é    N)Úmake_sparse_coded_signal)ÚLinearRegressionÚOrthogonalMatchingPursuitÚOrthogonalMatchingPursuitCVÚorthogonal_mpÚorthogonal_mp_gram)Úcheck_random_state)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)é   é#   é   é   )Ú	n_samplesÚn_componentsÚ
n_featuresÚn_nonzero_coefsÚrandom_stateé
   c                  ó¼   — t        t        t        d d …df   d¬«      j                  t        fk(  sJ ‚t        t        t        d¬«      j                  t        dfk(  sJ ‚y ©Nr   r   ©r   r   )r   ÚXÚyÚshaper   © ó    úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_omp.pyÚtest_correct_shapesr!   )   sJ   € ÜœœAša ˜d™G°QÔ7×=Ñ=Ä*ÀÒNÐNÐNÜœœA¨qÔ1×7Ñ7¼JÈ¸?ÒJÐJÑJr   c                  ó¼   — t        t        t        d d …df   d¬«      j                  t        fk(  sJ ‚t        t        t        d¬«      j                  t        dfk(  sJ ‚y r   )r   ÚGÚXyr   r   r   r   r    Útest_correct_shapes_gramr%   .   sJ   € Üœa¤¢A q D¡¸1Ô=×CÑCÌ
À}ÒTÐTÐTÜœa¤°QÔ7×=Ñ=Ä*ÈaÀÒPÐPÑPr   c                  óÚ   — t        j                  t        t        t        d d …df   d¬«      «      dk  sJ ‚t        j                  t        t        t        d d …df   dd¬«      «      dk  sJ ‚y )Nr   r   r   T©r   Ú
precompute)ÚnpÚcount_nonzeror   r   r   r   r   r    Útest_n_nonzero_coefsr+   3   s`   € Ü×ÑœM¬!¬Qªq°!¨t©WÀaÔHÓIÈQÒNÐNÐNä
×Ñœ¤q¬!ªA¨q¨D©'À1ÐQUÔVÓWØò	ðñ	r   c                  óŠ  — d} t        t        t        d d …df   | ¬«      }t        t        t        d d …df   | d¬«      }t        j                  t        d d …df   t        j
                  t        |«      z
  dz  «      | k  sJ ‚t        j                  t        d d …df   t        j
                  t        |«      z
  dz  «      | k  sJ ‚y )Nç      à?r   ©ÚtolT©r/   r(   é   )r   r   r   r)   ÚsumÚdot)r/   ÚgammaÚ
gamma_grams      r    Útest_tolr6   ;   s�   € Ø
€CÜœ!œQšq !˜t™W¨#Ô.€EÜœq¤!¢A q D¡'¨s¸tÔD€JÜ�6‰6”1’Q˜�T‘7œRŸV™V¤A uÓ-Ñ-°!Ñ3Ó4¸Ò;Ð;Ð;Ü�6‰6”1’Q˜�T‘7œRŸV™V¤A zÓ2Ñ2°qÑ8Ó9¸SÒ@Ð@Ñ@r   c            	      ón   — t        t        t        t        d¬«      t        t        t        dd¬«      «       y )Nr   r   Tr'   ©r   r   r   r   r   r   r    Útest_with_without_gramr9   C   s$   € ÜÜ”aœ¨AÔ.Ü”aœ¨A¸$Ô?õr   c            	      ón   — t        t        t        t        d¬«      t        t        t        dd¬«      «       y )Nç      ð?r.   Tr0   r8   r   r   r    Útest_with_without_gram_tolr<   J   s#   € ÜÜ”aœ Ô$¤m´A´q¸cÈdÔ&Sõr   c            
      óL  — t        t        t        t        d¬«      t        t        t        t        ¬«      «       d} t        j                  t        | ¬«      5  t        t        t        t        dd¬«      t        t        t        dt        ¬«      «       d d d «       y # 1 sw Y   y xY w)	Nr   r.   r   úŠOrthogonal matching pursuit ended prematurely due to linear dependence in the dictionary. The requested precision might not have been met.©ÚmatchTr0   )r(   r   )r   r   r   r   r   ÚpytestÚwarnsÚRuntimeWarning)Úwarning_messages    r    Útest_unreachable_accuracyrE   P   st   € ÜÜ”aœ Ô"¤M´!´QÌ
Ô$Sôð	;ð ô
 
�‰”n¨OÔ	<ñ 
Ü!Üœ!œQ A°$Ô7Üœ!œQ¨4ÄÔLô	
÷
÷ 
ñ 
ús   Á;BÂB#Úpositional_paramsÚkeyword_paramsr   é   c                 óv   — t        j                  t        «      5  t        | i |¤Ž d d d «       y # 1 sw Y   y xY w)N)rA   ÚraisesÚ
ValueErrorr   )rF   rG   s     r    Útest_bad_inputrL   `   s3   € ô 
�‰”zÓ	"ñ <ÜÐ(Ð;¨NÒ;÷<÷ <ñ <ús   š/¯8c                  ó’  — t         d d …df   j                  «       \  } t        t        t        d d …df   d¬«      }t        t        t        d d …df   d¬«      }t        | t        j                  |«      «       t        | t        j                  |«      «       t        t         d d …df   |d¬«       t        t         d d …df   |d¬«       y )Nr   r   r   r1   ©Údecimal)r4   Únonzeror   r   r   r   r#   r$   r   r)   Úflatnonzeror   )ÚidxÚ	gamma_recr5   s      r    Útest_perfect_signal_recoveryrT   j   s”   € Ü’1�a�4‰[× Ñ Ó"�F€SÜœa¤¢1 a 4¡¸!Ô<€IÜ#¤A¤rª!¨Q¨$¡xÀÔC€JÜ�sœBŸN™N¨9Ó5Ô6Ü�sœBŸN™N¨:Ó6Ô7Üœe¢A q D™k¨9¸aÕ@Üœe¢A q D™k¨:¸qÖAr   c                  ót  — t         d d …df   j                  «       \  } t        j                  «       }|j	                  d¬«       t
        j                  «       }|j	                  d¬«       t        ||d d …df   ddd¬«      }t        | t        j                  |«      «       t        t         d d …df   |d¬«       y )Nr   F)Úwriter   )r   Ú	copy_GramÚcopy_Xyr1   rN   )r4   rP   r#   ÚcopyÚsetflagsr$   r   r   r)   rQ   r   )rR   Ú
G_readonlyÚXy_readonlyr5   s       r    Ú test_orthogonal_mp_gram_readonlyr]   t   sœ   € ô ’1�a�4‰[× Ñ Ó"�F€SÜ—‘“€JØ×Ñ˜eÐÔ$Ü—'‘'“)€KØ×Ñ˜uÐÔ%Ü#Ø�K¢ 1 Ñ%°qÀEÐSXô€Jô �sœBŸN™N¨:Ó6Ô7Üœe¢A q D™k¨:¸qÖAr   c                  ó*  — t        t        ¬«      } | j                  t        t        d d …df   «       | j
                  j                  t        fk(  sJ ‚| j                  j                  dk(  sJ ‚t        j                  | j
                  «      t        k  sJ ‚| j                  t        t        «       | j
                  j                  t        t        fk(  sJ ‚| j                  j                  t        fk(  sJ ‚t        j                  | j
                  «      t        t        z  k  sJ ‚| j
                  d   j                  «       }| j                  d¬«       | j                  t        t        d d …df   «       t        || j
                  «       | j                  d¬«       | j                  t        t        d d …df   «       t        j                  | j
                  «      t        k  sJ ‚| j
                  j                  t        fk(  sJ ‚| j                  dk(  sJ ‚| j                  t        t        «       | j
                  j                  t        t        fk(  sJ ‚| j                  dk(  sJ ‚t        j                  | j
                  «      t        t        z  k  sJ ‚y )Nr   r   r   T)Úfit_interceptF)r   r   Úfitr   r   Úcoef_r   r   Ú
intercept_r)   r*   Ú	n_targetsrY   Ú
set_paramsr   )ÚompÚcoef_normalizeds     r    Útest_estimatorrg   ƒ   sâ  € Ü
#´OÔ
D€CØ‡G�GŒAŒq’�A�‰wÔØ�9‰9�?‰?œz˜mÒ+Ð+Ð+Ø�>‰>×Ñ 2Ò%Ð%Ð%Ü×Ñ˜CŸI™IÓ&¬/Ò9Ð9Ð9à‡G�GŒAŒq„MØ�9‰9�?‰?œy¬*Ð5Ò5Ð5Ð5Ø�>‰>×Ñ¤I <Ò/Ð/Ð/Ü×Ñ˜CŸI™IÓ&¬)´oÑ*EÒEÐEÐEà—i‘i ‘l×'Ñ'Ó)€OØ‡N�N €NÔ&Ø‡G�GŒAŒq’�A�‰wÔÜ˜o¨s¯y©yÔ9à‡N�N €NÔ'Ø‡G�GŒAŒq’�A�‰wÔÜ×Ñ˜CŸI™IÓ&¬/Ò9Ð9Ð9Ø�9‰9�?‰?œz˜mÒ+Ð+Ð+Ø�>‰>˜QÒÐÐà‡G�GŒAŒq„MØ�9‰9�?‰?œy¬*Ð5Ò5Ð5Ð5Ø�>‰>˜QÒÐÐÜ×Ñ˜CŸI™IÓ&¬)´oÑ*EÒEÐEÑEr   c                  ó  — t        t        ¬«      } | j                  t        t        dd…df   «       | j
                  t        k(  sJ ‚t        t        d¬«      } | j                  t        t        dd…df   «       | j
                  �J ‚y)z=Check `n_nonzero_coefs_` correct when `tol` is and isn't set.r   Nr   r-   )r   r/   )r   r   r`   r   r   Ún_nonzero_coefs_)re   s    r    Útest_estimator_n_nonzero_coefsrj       sj   € ä
#´OÔ
D€CØ‡G�GŒAŒq’�A�‰wÔØ×Ñ¤?Ò2Ð2Ð2ä
#´OÈÔ
M€CØ‡G�GŒAŒq’�A�‰wÔØ×ÑÐ'Ð'Ñ'r   c                  ó>  — t         j                  «       } | d d …df   | d d …df<   t        j                  t        «      }dx|d<   |d<   t        j
                  | |«      }d}t        j                  t        |¬«      5  t        | |d¬«       d d d «       y # 1 sw Y   y xY w)Nr   rH   r;   r>   r?   r1   r   )
r   rY   r)   Úzerosr   r3   rA   rB   rC   r   )ÚnewXr4   ÚnewyrD   s       r    Útest_identical_regressorsro   «   s�   € Ü�6‰6‹8€DØ’a˜�d‘€DŠˆAˆ�JÜ�H‰H”ZÓ €EØÐ€Eˆ!�Hˆu�Q‰xÜ�6‰6�$˜Ó€Dð	;ð ô
 
�‰”n¨OÔ	<ñ 5Ü�d˜D°!Õ4÷5÷ 5ñ 5ús   Á;BÂBc                  ó’  — t        j                  t        «      } d| d<   d| d<   t        j                  t        | «      }t        j                  t        j
                  |«      }t        t        |d¬«      }t        t        |d¬«      }t        t        j                  |«      ddg«       t        t        j                  |«      ddg«       y )Nr;   é   r-   r   r1   r   )r)   rl   r   r3   r   ÚTr   r   r#   r   rQ   )r4   Únew_yÚnew_XyÚ	gamma_hatÚgamma_hat_grams        r    Útest_swapped_regressorsrw   º   s’   € Ü�H‰H”ZÓ €Eð €Eˆ"�IØ€Eˆ!�HÜ�F‰F”1�eÓ€EÜ�V‰V”A—C‘C˜Ó€FÜœa ¸Ô:€IÜ'¬¨6À1ÔE€NÜ”r—~‘~ iÓ0°1°b°'Ô:Ü”r—~‘~ nÓ5¸¸2°wÕ?r   c                  óV  — t        j                  t        «      } t        j                  t        j
                  | «      } t        t        «      t        | d¬«      } t        t        «      t        |d¬«      }t        j                  |dk(  «      sJ ‚t        j                  |dk(  «      sJ ‚y )NrH   r   r   )
r)   Ú
zeros_liker   r3   r   rr   r   r   r#   Úall)Úy_emptyÚXy_emptyÚgamma_emptyÚgamma_empty_grams       r    Útest_no_atomsr   É   s   € Ü�m‰mœAÓ€GÜ�v‰v”a—c‘c˜7Ó#€HØ0”/¤-Ó0´°GÈQÔO€KØ5”¤}Ó5´a¸ÐSTÔUÐÜ�6‰6�+ Ñ"Ô#Ð#Ð#Ü�6‰6Ð" aÑ'Ô(Ð(Ñ(r   c                  ó„  — t        t        t        dd¬«      } t        t        t        dd¬«      }| j                  t        t
        dfk(  sJ ‚t        | d d …d d …df   |«       t        t        t        dd¬«      } t        t        t        dd¬«      }| j                  t        t
        dfk(  sJ ‚t        | d d …d d …df   |«       y )Nr   T)r   Úreturn_pathFéÿÿÿÿ)
r   r   r   r   r   rc   r   r   r#   r$   ©ÚpathÚlasts     r    Útest_omp_pathr†   Ò   sœ   € ÜœœA¨q¸dÔC€DÜœœA¨q¸eÔD€DØ�:‰:œ*¤i°Ð3Ò3Ð3Ð3Ü˜d¢1¢a¨ 8™n¨dÔ3Üœa¤°QÀDÔI€DÜœa¤°QÀEÔJ€DØ�:‰:œ*¤i°Ð3Ò3Ð3Ð3Ü˜d¢1¢a¨ 8™n¨dÕ3r   c                  óÈ   — t        t        t        ddd¬«      } t        t        t        ddd¬«      }| j                  t        t
        dfk(  sJ ‚t        | d d …d d …df   |«       y )Nr   T)r   r�   r(   Fr‚   )r   r   r   r   r   rc   r   rƒ   s     r    Ú#test_omp_return_path_prop_with_gramrˆ   Ý   sT   € ÜœœA¨q¸dÈtÔT€DÜœœA¨q¸eÐPTÔU€DØ�:‰:œ*¤i°Ð3Ò3Ð3Ð3Ü˜d¢1¢a¨ 8™n¨dÕ3r   c                  ón  — t         d d …df   } t        d d …df   }t        dd¬«      }|j                  t        | «       |j
                  t        k(  sJ ‚t        |j                  |«       t        d|j
                  ¬«      }|j                  t        | «       t        |j                  |j                  «       y )Nr   Fr   )r_   Úmax_iter)r_   r   )
r   r4   r   r`   r   ri   r   r   ra   r   )Úy_Úgamma_Úompcvre   s       r    Útest_omp_cvrŽ   ä   sŽ   € Ü	
Š1ˆaˆ4‰€BÜ’1�a�4‰[€FÜ'°eÀbÔI€EØ	‡I�IŒa�ÔØ×!Ñ!¤_Ò4Ð4Ð4Ü˜eŸk™k¨6Ô2Ü
#Ø¨U×-CÑ-Cô€Cð ‡G�GŒAˆr„NÜ˜eŸk™k¨3¯9©9Õ5r   c                  ó$  — t        d«      } d\  }}d}| j                  ||«      }| j                  ||«      }t        |¬«      }t        «       }|j	                  ||«       |j	                  ||«       t        |j                  |j                  «       y )Nr   )r   é   r   r   )r	   Úrandnr   r   r`   r   ra   )Úrngr   r   rc   r   ÚYre   Úlstsqs           r    Útest_omp_reaches_least_squaresr•   ò   sy   € ä
˜QÓ
€CØ#Ñ€IˆzØ€IØ�	‰	�)˜ZÓ(€AØ�	‰	�)˜YÓ'€AÜ
#°JÔ
?€CÜÓ€EØ‡G�GˆAˆq„MØ	‡I�Iˆa�„OÜ˜cŸi™i¨¯©Õ5r   Ú	data_typec                 óŽ   — t        t        j                  | «      t        j                  | «      d¬«      }|j                  | k(  sJ ‚y ©Nr   r   )r   r#   Úastyper$   Údtype)r–   Úcoefs     r    Útest_omp_gram_dtype_matchrœ      s;   € ô Ü	�‰�ÓœRŸY™Y yÓ1À1ô€Dð �:‰:˜Ò"Ð"Ñ"r   c                  ó\  — t        t        j                  t        j                  «      t
        j                  t        j                  «      d¬«      } t        t        j                  t        j                  «      t
        j                  t        j                  «      d¬«      }t        | |«       y r˜   )r   r#   r™   r)   Úfloat32r$   Úfloat64r
   )Úcoef_32Úcoef_64s     r    Ú#test_omp_gram_numerical_consistencyr¢   	  sf   € ä Ü	�‰”—‘ÓœbŸi™i¬¯
©
Ó3ÀQô€Gô !Ü	�‰”—‘ÓœbŸi™i¬¯
©
Ó3ÀQô€Gô �G˜WÕ%r   )6Únumpyr)   rA   Úsklearn.datasetsr   Úsklearn.linear_modelr   r   r   r   r   Úsklearn.utilsr	   Úsklearn.utils._testingr
   r   r   r   r   r   r   rc   r   r   r4   rr   r3   r#   r$   r!   r%   r+   r6   r9   r<   rE   ÚmarkÚparametrizerL   rT   r]   rg   rj   ro   rw   r   r†   rˆ   rŽ   r•   rž   rŸ   rœ   r¢   r   r   r    ú<module>rª      s©  ðó
 Û å 5÷õ õ -÷ó ð 5AÑ 1€	ˆ:�¨	Ù&ØØØØ#Øô�€€1€eð �c‰c�1—3‘3˜Ÿ™€€€1€eà €R�€Ø €R�€Øˆ�‰ˆq�s‰s�A‹˜˜Ÿ™˜qŸs™s A›€€€2ò
Kò
Qò
òAòòò
ð  ‡�×ÑÐ,°°1¨v¸¸2°wÐ.?Ó@Ø‡�×ÑØØ˜ a™Ð(Ð)óñ<ó	ó Að
<ò
BòBòFò:(ò5ò@ò)ò4ò4ò6ò6ð ‡�×Ñ˜ r§z¡z°2·:±:Ð&>Ó?ñ#ó @ð#ó&r   