Ë
    ÷Q(h   ã                   ó‚  — d Z ddlZddlZddlmZ ddlmZm	Z	 ddl
mZ ddlmZmZ ddgZ ej                   d¬	«      d
„ «       Zej$                  j'                  ddg«      ej$                  j'                  dd«      d„ «       «       Zej$                  j'                  dd«      d„ «       Zej$                  j'                  dg d¢«      d„ «       Zej$                  j'                  dd«      d„ «       Zej$                  j'                  de«      d„ «       Zd„ Zej$                  j'                  dd«      ej$                  j'                  dddg«      ej$                  j'                  de«      d„ «       «       «       Zej$                  j'                  dd«      ej$                  j'                  de«      d„ «       «       Zej$                  j'                  de«      d„ «       Zej$                  j'                  de«      d „ «       Zd!„ Zej$                  j'                  d"g d#¢«      ej$                  j'                  dd«      d$„ «       «       Zy)%zTest truncated SVD transformer.é    N)ÚPCAÚTruncatedSVD)Úcheck_random_state)Úassert_allcloseÚassert_array_lessÚarpackÚ
randomizedÚmodule)Úscopec                  ó®   — t        d«      } t        j                  dddd| ¬«      }dt        j                  |j
                  «      z   |j
                  d d  |S )Né*   é<   é7   çš™™™™™É?Úcsr)ÚdensityÚformatÚrandom_stateé   )r   ÚspÚrandomÚnpÚlogÚdata)ÚrngÚXs     úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/decomposition/tests/test_truncated_svd.pyÚX_sparser      sG   € ô ˜RÓ
 €CÜ
�	‰	�"�b #¨eÀ#ÔF€AØ”B—F‘F˜1Ÿ6™6“NÑ"€A‡F�F‰1€IØ€Hó    ÚsolverÚkind)ÚdenseÚsparsec                 óº  — |dk(  r| n| j                  «       }t        dd¬«      }t        d|dd¬«      }|j                  |«      d d …d d…f   }|j                  |«      d d …d d…f   }t        ||d	¬
«       t	        j
                  |j                  «      }t	        j
                  |j                  «      }	t        |d d |	d d d¬
«       t        |dd  |	dd  d¬«       y )Nr#   é   r   ©Ú	algorithmr   éd   )r'   r   Ún_oversamplesé   gü©ñÒMb`?©Úrtolé	   gü©ñÒMbP?ç{®Gáz„?©Úatol)Útoarrayr   Úfit_transformr   r   ÚabsÚcomponents_)
r   r    r!   r   Úsvd_aÚsvdÚXaÚXrÚcomp_aÚcomps
             r   Útest_solversr;      sÓ   € ð ˜HÒ$‰¨(×*:Ñ*:Ó*<€AÜ˜ xÔ0€EÜ
�r V¸"ÈCÔ
P€Cà	×	Ñ	˜QÓ	¢ 2 A 2 Ñ	&€BØ	×	Ñ	˜1Ó	ša  ! ˜eÑ	$€BÜ�B˜ Õ&ä�V‰V�E×%Ñ%Ó&€FÜ�6‰6�#—/‘/Ó"€Dä�F˜2˜A�J  R a ¨tÕ4Ü�F˜1˜2�J  Q R ¨tÖ4r   Ún_components)é
   é   é)   r   c                 ó²   — |j                   d   }t        | «      j                  |«      }|j                  | k(  sJ ‚|j                  j                   | |fk(  sJ ‚y )Nr   )Úshaper   Úfitr<   r4   )r<   r   Ú
n_featuresÚtsvds       r   Útest_attributesrE   )   sX   € à—‘ Ñ"€JÜ˜Ó%×)Ñ)¨(Ó3€DØ×Ñ Ò,Ð,Ð,Ø×Ñ×!Ñ! l°JÐ%?Ò?Ð?Ñ?r   zalgorithm, n_components))r   r   )r   é8   )r	   rF   c                 óœ   — t        ||¬«      }t        j                  t        «      5  |j	                  | «       d d d «       y # 1 sw Y   y xY w)N)r<   r'   )r   ÚpytestÚraisesÚ
ValueErrorrB   )r   r'   r<   rD   s       r   Útest_too_many_componentsrK   1   s=   € ô  \¸YÔG€DÜ	�‰”zÓ	"ñ Ø�‰�Ô÷÷ ñ ús   §AÁAÚfmt)Úarrayr   ÚcscÚcooÚlilc                 ó  — |j                   d   }| dk(  r|j                  «       n t        |d| z   «      «       }t        d¬«      }|j	                  |«      }|j                   |dfk(  sJ ‚|j                  |«      }|j                   |dfk(  sJ ‚y )Nr   r"   Útoé   ©r<   )rA   r1   Úgetattrr   r2   Ú	transform)rL   r   Ú	n_samplesÚXfmtrD   ÚXtranss         r   Útest_sparse_formatsrZ   ?   s‹   € à—‘˜qÑ!€IØ!$¨¢ˆ8×ÑÔÐ5R´W¸XÀtÈcÁzÓ5RÓ5T€DÜ RÔ(€DØ×Ñ Ó%€FØ�<‰<˜I r˜?Ò*Ð*Ð*Ø�^‰^˜DÓ!€FØ�<‰<˜I r˜?Ò*Ð*Ñ*r   Úalgoc                 óž   — t        dd| ¬«      }|j                  |«      }|j                  |«      }t        ||j	                  «       dd¬«       y )Né4   r   )r<   r   r'   gš™™™™™¹?r   )r,   r0   )r   r2   Úinverse_transformr   r1   )r[   r   rD   ÚXtÚXinvs        r   Útest_inverse_transformra   J   sI   € ô  R°bÀDÔI€DØ	×	Ñ	˜HÓ	%€BØ×!Ñ! "Ó%€DÜ�D˜(×*Ñ*Ó,°4¸dÖCr   c                 óÔ   — | j                   d   }| j                  t        j                  «      }t	        d¬«      }|j                  |«      }|j                   ||j                  fk(  sJ ‚y )Nr   r*   rT   )rA   Úastyper   Úint64r   r2   r<   )r   rW   ÚXintrD   rY   s        r   Útest_integersrf   T   sY   € Ø—‘˜qÑ!€IØ�?‰?œ2Ÿ8™8Ó$€DÜ QÔ'€DØ×Ñ Ó%€FØ�<‰<˜I t×'8Ñ'8Ð9Ò9Ð9Ñ9r   r=   é   c                 ó¬  — |dk(  r| n| j                  «       }t        ||¬«      }|j                  |«      }t        d|j                  «       t        |j                  j                  «       d«       t        j                  | j                  «       d¬«      j                  «       }t        j                  |d¬«      }||z  }	t        |j                  |	«       y )Nr#   r&   ç        ç      ð?r   ©Úaxis)	r1   r   r2   r   Úexplained_variance_ratio_Úsumr   Úvarr   )
r   r!   r<   r    r   r6   ÚX_trÚtotal_varianceÚ	variancesÚtrue_explained_variance_ratios
             r   Útest_explained_variancert   \   sµ   € ð ˜HÒ$‰¨(×*:Ñ*:Ó*<€AÜ
�|¨vÔ
6€CØ×Ñ˜QÓ€Dä�c˜3×8Ñ8Ô9ô �c×3Ñ3×7Ñ7Ó9¸3Ô?ô —V‘V˜H×,Ñ,Ó.°QÔ7×;Ñ;Ó=€NÜ—‘�t !Ô$€IØ$-°Ñ$>Ð!äØ×%Ñ%Ø%õr   c                 ó^  — |dk(  r| n| j                  «       }t        d|d¬«      j                  |«      }t        d|d¬«      j                  |«      }t        |j                  |j                  d d d¬«       |j                  j                  «       |j                  j                  «       kD  sJ ‚y )Nr#   r=   )r'   Ún_iterrg   g{®Gázt?r+   )r1   r   rB   r   rm   rn   )r   r!   r    r   Úsvd_10Úsvd_20s         r   Ú(test_explained_variance_components_10_20ry   t   s£   € ð ˜HÒ$‰¨(×*:Ñ*:Ó*<€AÜ˜"¨°rÔ:×>Ñ>¸qÓA€FÜ˜"¨°rÔ:×>Ñ>¸qÓA€Fô Ø×(Ñ(Ø×(Ñ(¨¨"Ð-Øõð 	×(Ñ(×,Ñ,Ó.°×1QÑ1Q×1UÑ1UÓ1WÒWðÙWr   c           	      óð  — t         j                  j                  d«      }d\  }}|j                  ||«      }t	        d| |¬«      j                  |«      }|j                  |«      }t        t        j                  |j                  dz  «      t         j                  j                  |d«      dz  d¬«       t        |j                  t        j                  t        j                  |dz  d¬	«      «      d¬«       y )
Nr   )r(   éP   é   ©r<   r'   r   ç       @Úfror.   r+   rk   )r   r   ÚRandomStateÚrandnr   rB   rV   r   rn   Úsingular_values_ÚlinalgÚnormÚsqrt)r    r   rW   rC   r   ÚpcaÚX_pcas          r   Ú test_singular_values_consistencyrˆ   ˆ   sÃ   € ô �)‰)×
Ñ
 Ó
"€CØ#Ñ€IˆzØ�	‰	�)˜ZÓ(€Aä
 A°ÀcÔ
J×
NÑ
NÈqÓ
Q€Cð �M‰M˜!Ó€EÜÜ
�‰ˆs×#Ñ# SÑ(Ó)Ü
�	‰	�‰�u˜eÓ$¨Ñ+Øõô Ø×ÑœbŸg™g¤b§f¡f¨U°C©Z¸aÔ&@ÓAÈör   c                 óæ  — t         j                  j                  d«      }d}d}|j                  ||«      }t	        d| |¬«      }|j                  |«      }|t        j                  t        j                  |dz  d¬«      «      z  }|d d …dfxx   dz  cc<   |d d …d	fxx   d
z  cc<   t        j                  ||j                  «      }|j                  |«       t        |j                  g d¢d¬«       y )Nr   r(   én   é   r}   r~   rk   ç‰A`åÐ"	@r   çX9´Èv¾@)rŒ   r�   rj   g›+¡†›„=r+   )r   r   r€   r�   r   r2   r…   rn   Údotr4   rB   r   r‚   )r    r   rW   rC   r   r†   r‡   Ú	X_hat_pcas           r   Útest_singular_values_expectedr�   Ÿ   sÉ   € ô �)‰)×
Ñ
 Ó
"€CØ€IØ€Jà�	‰	�)˜ZÓ(€Aä
 A°ÀcÔ
J€CØ×Ñ˜aÓ €Eà	ŒR�W‰W”R—V‘V˜E 3™J¨QÔ/Ó0Ñ0€EØ	Š!ˆQˆ$ƒK�5ÑƒKØ	Š!ˆQˆ$ƒK�5ÑƒKä—‘�u˜cŸo™oÓ.€IØ‡G�GˆIÔÜ�C×(Ñ(Ò*=ÀEÖJr   c                 ól  — | j                  «       }||j                  d¬«      z
  }t        dd¬«      }t        dddi|¤Ž}t	        dddi|¤Ž}|j                  |«      }|j                  |«      }t        ||d	¬
«       t        |j                  dd	¬«       t        |j                  |j                  «       y )Nr   rk   r=   r   )r<   r   r'   r   Ú
svd_solverg•Ö&è.>r+   r/   © )	r1   ÚmeanÚdictr   r   r2   r   Úmean_r4   )r   ÚX_denseÚX_cÚparamsr6   r†   ÚXt_svdÚXt_pcas           r   Útest_truncated_svd_eq_pcarœ   ´   s¥   € ð ×ÑÓ €Gà
�G—L‘L a�LÓ(Ñ
(€Cä˜r°Ô3€Fä
Ñ
4 Ð
4¨VÑ
4€CÜ
Ñ
,˜Ð
, VÑ
,€Cà×Ñ˜sÓ#€FØ×Ñ˜sÓ#€Fä�F˜F¨Õ.Ü�C—I‘I˜q tÕ,Ü�C—O‘O S§_¡_Õ5r   zalgorithm, tol))r	   ri   )r   g�íµ ÷Æ°>)r   ri   c                 óÌ   — |dk(  r| n| j                  «       }t        ddd||¬«      }|j                  |«      }|j                  |«      j	                  |«      }t        ||«       y )Nr#   é   é   r   )r<   rv   r   r'   Útol)r1   r   r2   rB   rV   r   )r   r'   r    r!   r   r6   ÚX_transformed_1ÚX_transformed_2s           r   Útest_fit_transformr£   È   sd   € ð ˜HÒ$‰¨(×*:Ñ*:Ó*<€AÜ
Ø˜q¨r¸YÈCô€Cð ×'Ñ'¨Ó*€OØ—g‘g˜a“j×*Ñ*¨1Ó-€OÜ�O _Õ5r   ) Ú__doc__Únumpyr   rH   Úscipy.sparser#   r   Úsklearn.decompositionr   r   Úsklearn.utilsr   Úsklearn.utils._testingr   r   ÚSVD_SOLVERSÚfixturer   ÚmarkÚparametrizer;   rE   rK   rZ   ra   rf   rt   ry   rˆ   r�   rœ   r£   r“   r   r   ú<module>r®      s[  ðÙ %ã Û Ý ç 3Ý ,ß Eà˜Ð&€ð €‡��hÔñó  ðð ‡�×Ñ˜ L >Ó2Ø‡�×Ñ˜Ð!4Ó5ñ5ó 6ó 3ð5ð  ‡�×Ñ˜Ð)9Ó:ñ@ó ;ð@ð ‡�×ÑØòóñóðð ‡�×Ñ˜Ð EÓFñ+ó Gð+ð ‡�×Ñ˜ Ó-ñDó .ðDò:ð ‡�×Ñ˜Ð!4Ó5Ø‡�×Ñ˜¨"¨b¨Ó2Ø‡�×Ñ˜ ;Ó/ñó 0ó 3ó 6ðð* ‡�×Ñ˜Ð!4Ó5Ø‡�×Ñ˜ ;Ó/ñó 0ó 6ðð$ ‡�×Ñ˜ ;Ó/ñó 0ðð, ‡�×Ñ˜ ;Ó/ñKó 0ðKò(6ð( ‡�×ÑØÒNóð ‡�×Ñ˜Ð!4Ó5ñ6ó 6óñ6r   