o
    \i                     @   s\   d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZmZ dd ZdS )	    )combinationsN)FactorAnalysis)_ortho_rotation)ConvergenceWarning)assert_almost_equalassert_array_almost_equalc              	   C   sn  t j| }d\}}}|||}|||}|jd|d||| }t ||| }g }	dD ]}
t||
d}|| |	| |	|}|j
||fksPJ t|jd ||  t|| || t t |j}|dks{J dt j|dd	d
}| }t t || |j }|dk sJ d| t|t |d}tt ||d d d df  W d    n1 sw   Y  q0dd }|	\}}dD ]}t|||||| qd|_d|_tt || W d    n1 sw   Y  dd|j
d fD ]#}||_|| | }|  }t!t ||t "|j
d d q
d}i i }}dD ]}
t||
d}|#|||
< | ||
< q7t$g ddD ]!\}}t %|| || rfJ t j%|| || ddsuJ qUt &g dg dg dg dg}t &ddgdd gd!d"gd#d$gg}t'|d d d |f d%d&j(}t!t |t |dd' d S )(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                 S   s   t t| |S )N)npabsgetattr)xy r   /var/www/www-root/data/www/176.119.141.140/sports-predictor/venv/lib/python3.10/site-packages/sklearn/decomposition/tests/test_factor_analysis.pyf<   s   ztest_factor_analysis.<locals>.f)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_tr6   scovmcovr   fa1fa2attrr7   	precisionresultsprojectionsfa_varrot1rot2factors
r_solutionrotatedr   r   r   test_factor_analysis   s   





$
"r_   )	itertoolsr   numpyr   r:   sklearn.decompositionr   &sklearn.decomposition._factor_analysisr   sklearn.exceptionsr   sklearn.utils._testingr   r   r_   r   r   r   r   <module>   s   