
    -i                     Z    S SK Jr  S SKrS SKrS SKJr  S SKJr  S SK	J
r
  S SKJrJr  S rg)    )combinationsN)FactorAnalysis)_ortho_rotation)ConvergenceWarning)assert_almost_equalassert_array_almost_equalc                 `	   [         R                  R                  U 5      nSu  p#nUR                  XC5      nUR                  X$5      nUR	                  SUS9UR                  X#5      -  n[         R
                  " Xe5      U-   n/ n	S GH  n
[        XJS9nUR                  U5        U	R                  U5        UR                  U5      nUR                  X$4:X  d   e[        UR                  S   UR                  U5      R                  5       5        [        UR                  U5      R                  5       UR!                  U5      5        [         R"                  " [         R$                  " UR                  5      5      nUS:  d   S5       e[         R&                  " USS	S
9nUR)                  5       n[         R                  " [         R*                  " X-
  5      5      UR,                  -  nUS:  d
   SU-  5       e[        U[         R.                  " U5      S9n[0        R2                  " [4        5         UR                  US S 2S S24   5        S S S 5        GM     S nU	u  nnS H  n[        U" UU5      U" UU5      5        M     SUl        SUl        [0        R:                  " [<        5         UR                  U5        S S S 5        SSUR                  S   4 H~  nUWl        UR                  U5        UR)                  5       nURA                  5       n[C        [         R
                  " UU5      [         RD                  " UR                  S   5      S5        M     Sn0 0 nnS H3  n
[        XJS9nURG                  U5      UU
'   UR)                  5       UU
'   M5     [I        / SQS5       HM  u  nn[         RJ                  " UU   UU   5      (       a   e[         RJ                  " UU   UU   SS9(       a  MM   e   [         RL                  " / SQ/ SQ/ SQ/ SQ/5      n[         RL                  " SS/SS/S S!/S"S#//5      n[O        US S 2S U24   S$S%9RP                  n[C        [         R*                  " U5      [         R*                  " U5      SS&9  g ! , (       d  f       GM  = f! , (       d  f       GN= f)'N)            )size)
randomizedlapack)n_components
svd_methodg        zLog likelihood dif not increaseg      ?)rowvarbiasg?zMean absolute difference is %f)r   noise_variance_init   c                 @    [         R                  " [        X5      5      $ )N)npabsgetattr)xys     c/var/www/html/venv/lib/python3.13/site-packages/sklearn/decomposition/tests/test_factor_analysis.pyftest_factor_analysis.<locals>.f<   s    vvgam$$    )loglike_components_noise_variance_Tr      )Nvarimax	quartimax)r   rotationr   )atol)gm^?gxֿg1e}Vѿgp1R?)gթ4ܿgJ_JUgvٯ;ݷ?gEq^O)g 5?ḡ]͔g>ȫ?ge<w)g?gq g .>?grzM?gbX9?g9v?g?5^I¿gS?g|?5^?g333333ӿgCl?gMbпr&   )method)decimal))r   randomRandomStaterandngammadotr   fitappend	transformshaper   r"   score_samplessummeanscorealldiffcovget_covariancer   r   onespytestraises
ValueErrormax_iterverbosewarnsr   r   get_precisionr   eyefit_transformr   allclosearrayr   T)global_random_seedrng	n_samples
n_featuresr   WhnoiseXfasr*   faX_tr:   scovmcovr   fa1fa2attrr;   	precisionresultsprojectionsfa_varrot1rot2factors
r_solutionrotateds                                 r   test_factor_analysisrc      s   
))

 2
3C*2'I< 			,+A		)*A IIajI)CIIi,LLE 	quA
C*I
q	

2ll1oyyY5555BKKOR-=-=a-@-D-D-FGB,,Q/446Dvvbggbkk*+cz<<<z vva#.   "vvbffT[)*QVV3czB;dBBz%277:;N
 ]]:&FF1QU8 '&1 +6% HC>Ac4L!C,7 ? CLCK	(	)
 
*
 Aqwwqz*&
q	!$$&	!"&&i"8"&&:LbQ + Lr[G0\K ..q1$335F 1 ##A1E
d;;wt}gdm<<<<{{;t,k$.?aHHHH F hh>>>=		
G 
&%5&/E6?KJ ga,&67	JLLGbffWorvvj/A1Mi '& 
*	)s   /R*R
R	
R-)	itertoolsr   numpyr   r>   sklearn.decompositionr   &sklearn.decomposition._factor_analysisr   sklearn.exceptionsr   sklearn.utils._testingr   r   rc    r!   r   <module>rk      s#    #   0 B 1 Q^Nr!   