
    Mpjx                     |   S r SSKrSSKrSSKJrJr  SSKJr  SSK	J
r
Jr  SSK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)_sparse_random_arrayarpack
randomizedmodule)scopec                      [        S5      n [        SSSU S9nS[        R                  " UR                  5      -   UR                  S S & U$ )N*   )<   7   皙?csr)densityformatrng   )r   r   nplogdata)r   Xs     j/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/sklearn/decomposition/tests/test_truncated_svd.pyX_sparser      sA     R
 CXs5cJA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%   random_state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;   r3   )r;   r   
n_featurestsvds       r   test_attributesrD   )   sV    "J%))(3D,,,!!l%????r   zalgorithm, n_components))r	   r   )r	   8   )r
   rE   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
ValueErrorrA   )r   r%   r;   rC   s       r   test_too_many_componentsrJ   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;   )r@   r0   getattrr   r1   	transform)rK   r   	n_samplesXfmtrC   Xtranss         r   test_sparse_formatsrY   ?   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+   r/   )r   r1   inverse_transformr   r0   )rZ   r   rC   XtXinvs        r   test_inverse_transformr`   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)   rS   )r@   astyper   int64r   r1   r;   )r   rV   XintrC   rX   s        r   test_integersre   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)	r0   r   r1   r   explained_variance_ratio_sumr   varr   )
r   r   r;   r   r   r5   X_trtotal_variance	variancestrue_explained_variance_ratios
             r   test_explained_variancers   \   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_iterrf   g{Gzt?r*   )r0   r   rA   r   rl   rm   )r   r   r   r   svd_10svd_20s         r   (test_explained_variance_components_10_20rx   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   rj   )r   randomRandomStaterandnr   rA   rU   r   rm   singular_values_linalgnormsqrt)r   global_random_seedr   rV   rB   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   rj   A`"	@r   X9v@)r   r   ri   g+=r*   )r   r   r   r   r   r1   r   rm   dotr3   rA   r   r   )	r   r   r   rV   rB   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   rj   r<   r   )r;   r'   r%   r	   
svd_solverg&.>r*   r.    )	r0   meandictr   r   r1   r   mean_r3   )r   X_denseX_cparamsr5   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, normalizer))r
   rh   auto)r
   rh   QR)r
   rh   LU)r
   rh   none)r	   gư>r   )r	   rh   r   c           	          US:X  a  U OU R                  5       n[        SSSUUUS9nUR                  U5      nUR                  U5      R	                  U5      n[        Xx5        g )Nr!         r   )r;   ru   r'   r%   power_iteration_normalizertol)r0   r   r1   rA   rU   r   )	r   r%   r   r   
normalizerr   r5   X_transformed_1X_transformed_2s	            r   test_fit_transformr      si     H$(*:*:*<A
#-C ''*Oggaj**1-OO5r   )__doc__numpyr   rG   sklearn.decompositionr   r   sklearn.utilsr   sklearn.utils._testingr   r   sklearn.utils.fixesr   SVD_SOLVERSfixturer   markparametrizer:   rD   rJ   rY   r`   re   rs   rx   r   r   r   r   r   r   r   <module>r      s[   %   3 , E 4& 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(  
 !456 6
6r   