
    -iJ                     |   S r SSKrSSKrSSKJr  SSKJrJ	r	  SSK
Jr  SSKJrJr  SS/r\R                   " SS	9S
 5       r\R$                  R'                  SS/5      \R$                  R'                  SS5      S 5       5       r\R$                  R'                  SS5      S 5       r\R$                  R'                  S/ SQ5      S 5       r\R$                  R'                  SS5      S 5       r\R$                  R'                  S\5      S 5       rS r\R$                  R'                  SS5      \R$                  R'                  SSS/5      \R$                  R'                  S\5      S 5       5       5       r\R$                  R'                  SS5      \R$                  R'                  S\5      S 5       5       r\R$                  R'                  S\5      S 5       r\R$                  R'                  S\5      S  5       rS! r\R$                  R'                  S"/ S#Q5      \R$                  R'                  SS5      S$ 5       5       rg)%zTest truncated SVD transformer.    N)PCATruncatedSVD)check_random_state)assert_allcloseassert_array_lessarpack
randomizedmodule)scopec                      [        S5      n [        R                  " SSSSU S9nS[        R                  " UR
                  5      -   UR
                  S S & U$ )N*   <   7   皙?csr)densityformatrandom_state   )r   sprandomnplogdata)rngXs     a/var/www/html/venv/lib/python3.13/site-packages/sklearn/decomposition/tests/test_truncated_svd.pyX_sparser      sG     R
 C
		"b#e#FABFF166N"AFF1IH    solverkind)densesparsec                    US:X  a  U OU R                  5       n[        SSS9n[        SUSSS9nUR                  U5      S S 2S S24   nUR                  U5      S S 2S S24   n[        XgS	S
9  [        R
                  " UR                  5      n[        R
                  " UR                  5      n	[        US S U	S S SS
9  [        USS  U	SS  SS9  g )Nr#      r   	algorithmr   d   )r'   r   n_oversamples   gMb`?rtol	   gMbP?{Gz?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0E
rV"C
PC			Q	2A2	&B			1	a!e	$BB&VVE%%&F66#//"DF2AJRat4F12JQRt4r   n_components)
      )   r   c                     UR                   S   n[        U 5      R                  U5      nUR                  U :X  d   eUR                  R                   X4:X  d   eg )Nr   )shaper   fitr<   r4   )r<   r   
n_featurestsvds       r   test_attributesrE   )   sV    "J%))(3D,,,!!l%????r   zalgorithm, n_components))r   r   )r   8   )r	   rF   c                     [        X!S9n[        R                  " [        5         UR	                  U 5        S S S 5        g ! , (       d  f       g = f)N)r<   r'   )r   pytestraises
ValueErrorrB   )r   r'   r<   rD   s       r   test_too_many_componentsrK   1   s2     \GD	z	" 
#	"	"s	   ?
Afmt)arrayr   csccoolilc                    UR                   S   nU S:X  a  UR                  5       O[        USU -   5      " 5       n[        SS9nUR	                  U5      nUR                   US4:X  d   eUR                  U5      nUR                   US4:X  d   eg )Nr   r"   to   r<   )rA   r1   getattrr   r2   	transform)rL   r   	n_samplesXfmtrD   Xtranss         r   test_sparse_formatsrZ   ?   s    q!I!$8WXtcz5R5TDR(D%F<<Ir?***^^D!F<<Ir?***r   algoc                     [        SSU S9nUR                  U5      nUR                  U5      n[        XAR	                  5       SSS9  g )N4   r   )r<   r   r'   g?r   )r,   r0   )r   r2   inverse_transformr   r1   )r[   r   rD   XtXinvs        r   test_inverse_transformra   J   sG     RbDID			H	%B!!"%DD**,4dCr   c                     U R                   S   nU R                  [        R                  5      n[	        SS9nUR                  U5      nUR                   XR                  4:X  d   eg )Nr   r*   rT   )rA   astyper   int64r   r2   r<   )r   rW   XintrD   rY   s        r   test_integersrf   T   sW    q!I??288$DQ'D%F<<I'8'89999r   r=      c                    US:X  a  U OU R                  5       n[        X#S9nUR                  U5      n[        SUR                  5        [        UR                  R                  5       S5        [        R                  " U R                  5       SS9R                  5       n[        R                  " USS9nX-  n	[        UR                  U	5        g )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
|
6CQDc3889 c337793? VVH,,.Q7;;=Nt!$I$-$>!%%%r   c                 P   US:X  a  U OU R                  5       n[        SUSS9R                  U5      n[        SUSS9R                  U5      n[        UR                  UR                  S S SS9  UR                  R                  5       UR                  R                  5       :  d   eg )Nr#   r=   )r'   n_iterrg   g{Gzt?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AF"r:>>qAF (((("- 	((,,.1Q1Q1U1U1WWWr   c           
         [         R                  R                  U5      nSu  p4UR                  X45      n[	        SXS9R                  U5      nUR                  U5      n[        [         R                  " UR                  S-  5      [         R                  R                  US5      S-  SS9  [        UR                  [         R                  " [         R                  " US-  SS	95      SS9  g )
N)r(   P      r<   r'   r          @fror.   r+   r   rk   )r   r   RandomStaterandnr   rB   rV   r   rn   singular_values_linalgnormsqrt)r    global_random_seedr   rW   rC   r   pcaX_pcas           r    test_singular_values_consistencyr      s     ))

 2
3C#I		)(A
A
J
N
Nq
QC MM!E
s##S()
		ue$+ bggbffUCZa&@Ar   c                    [         R                  R                  U5      nSnSnUR                  X45      n[	        SXS9nUR                  U5      nU[         R                  " [         R                  " US-  SS95      -  nUS S 2S4==   S-  ss'   US S 2S	4==   S
-  ss'   [         R                  " XvR                  5      nUR                  U5        [        UR                  / SQSS9  g )Nr(   n      r}   r~   r   rk   A`"	@r   X9v@)r   r   rj   g+=r+   )r   r   r   r   r   r2   r   rn   dotr4   rB   r   r   )	r    r   r   rW   rC   r   r   r   	X_hat_pcas	            r   test_singular_values_expectedr      s     ))

 2
3CIJ		)(A
A
JCa E	RWWRVVE3JQ/00E	!Q$K5K	!Q$K5Kuoo.IGGIC((*=EJr   c                 P   U R                  5       nXR                  SS9-
  n[        SSS9n[        SSS0UD6n[	        SSS0UD6nUR                  U5      nUR                  U5      n[        XgS	S
9  [        UR                  SS	S9  [        UR                  UR                  5        g )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
LLaL(
(Cr3F

4
4V
4C

,
,V
,Cs#Fs#FF.CIIqt,COOS__5r   zalgorithm, tol))r	   ri   )r   gư>)r   ri   c                     US:X  a  U OU R                  5       n[        SSSXS9nUR                  U5      nUR                  U5      R	                  U5      n[        Xg5        g )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      s`     H$(*:*:*<A
qrYC ''*Oggaj**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      sY   %    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   