§
    ¦˜ºhb^  ã            
       ó  — d dl Z d dl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 d dlmZmZ d dlmZ  e	j        ¦   «         Zg d¢Zej                             d	e¦  «        ej                             d
 edej        j        d         ¦  «        ¦  «        d„ ¦   «         ¦   «         Zd„ Zej                             dddg¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Zej                             d	ddg¦  «        d„ ¦   «         Zej                             dej                             d ¦  «                              dd¦  «         e	j!        dddd ¬¦  «        d          gddg¬¦  «        ej                             d	e¦  «        d„ ¦   «         ¦   «         Z"ej                             d	ddg¦  «        d„ ¦   «         Z#ej                             d	e¦  «        d „ ¦   «         Z$ej                             d	e¦  «        d!„ ¦   «         Z%ej                             d	e¦  «        d"„ ¦   «         Z&ej                             d	g d#¢¦  «        ej                             d$ddg¦  «        d%„ ¦   «         ¦   «         Z'ej                             d& ej(        g d'¢g d(¢g¦  «         ej(        g d'¢g d(¢g¦  «        j)        g¦  «        ej                             d)g d*¢¦  «        d+„ ¦   «         ¦   «         Z*ej                             d,d- e+ej        j        ¦  «        fd e+ej        j        ¦  «        dz
  fd e+ej        j        ¦  «        fg¦  «        ej                             d&ej        ej        j)        g¦  «        d.„ ¦   «         ¦   «         Z,ej                             d	d/d-g¦  «        d0„ ¦   «         Z-ej                             d	ddg¦  «        d1„ ¦   «         Z.d2„ Z/d3„ Z0d4„ Z1d5„ Z2ej                             d6ej        d7d8fej        d9dfej                             d ¦  «         3                    d:d;¦  «        d<d8fg¦  «        d=„ ¦   «         Z4ej                             d	e¦  «        d>„ ¦   «         Z5d?„ Z6ej                             d	e¦  «        d@„ ¦   «         Z7ej                             d	ddg¦  «        dA„ ¦   «         Z8ej                             d	d-dg¦  «        dB„ ¦   «         Z9ej                             dCej                             d ¦  «         :                    dD¬E¦  «        d<d-fej                             d ¦  «         :                    dF¬E¦  «        d:d-fej                             d ¦  «         :                    dD¬E¦  «        dGd-fej                             d ¦  «         :                    dD¬E¦  «        dHdfg¦  «        dI„ ¦   «         Z;ej                             d	e¦  «        dJ„ ¦   «         Z<ej                             d	e¦  «        dK„ ¦   «         Z=ej                             d	e¦  «        dL„ ¦   «         Z>dM„ Z?dN„ Z@dO„ ZAdP„ ZBdQ„ ZCdR„ ZDdS„ ZEdT„ ZFdU„ ZGdV„ ZHdW„ ZIej                             dddg¦  «        dX„ ¦   «         ZJdS )Yé    N)Úassert_array_equal)Údatasets)Ú	load_iris)ÚPCA)Ú_assess_dimensionÚ_infer_dimension)Úassert_allclose)ÚfullÚarpackÚ
randomizedÚautoÚ
svd_solverÚn_componentsé   c                 ó  — t           j        }t          || ¬¦  «        }|                     |¦  «                             |¦  «        }|j        d         |k    sJ ‚|                     |¦  «        }t          ||¦  «         |                     |¦  «        }t          ||¦  «         |                     ¦   «         }| 	                    ¦   «         }t          t          j        ||¦  «        t          j        |j        d         ¦  «        d¬¦  «         d S )N©r   r   r   çê-�™—q=©Úatol)ÚirisÚdatar   ÚfitÚ	transformÚshapeÚfit_transformr	   Úget_covarianceÚget_precisionÚnpÚdotÚeye)r   r   ÚXÚpcaÚX_rÚX_r2ÚcovÚ	precisions           úl/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/decomposition/tests/test_pca.pyÚtest_pcar(      sô   € õ 	Œ	€AÝ
˜<°JÐ
?Ñ
?Ô
?€Cð �'Š'�!‰*Œ*×
Ò
˜qÑ
!Ô
!€CØŒ9�QŒ<˜<Ò'Ð'Ð'Ð'ð ×Ò˜QÑÔ€DÝ�C˜ÑÔÐØ
�-Š-˜Ñ
Ô
€CÝ�C˜ÑÔÐð ×
Ò
Ñ
Ô
€CØ×!Ò!Ñ#Ô#€IÝ•B”F˜3 	Ñ*Ô*­B¬F°1´7¸1´:Ñ,>Ô,>ÀUÐKÑKÔKÐKÐKÐKó    c                  ó2  — d} | dz   }t           j                             dd| |f¬¦  «        }t          | ¬¦  «        }t	          j        ¦   «         5  t	          j        dt          ¦  «         |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né
   é   éÿÿÿÿr   ©Úsize©r   Úerror)	r   ÚrandomÚuniformr   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr   )r   Ú
n_featuresr!   r"   s       r'   Útest_no_empty_slice_warningr9   (   s×   € à€LØ Ñ!€JÝ
Œ	×Ò˜"˜a |°ZÐ&@ÐÑAÔA€AÝ
˜<Ð
(Ñ
(Ô
(€CÝ	Ô	 Ñ	"Ô	"ð ð ÝÔ˜g¥~Ñ6Ô6Ð6Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á0BÂBÂBÚcopyTFÚsolverc                 ó4  — t           j                             d¦  «        }d}d}d}d}t          j        |                     ||¦  «        t          j        t          j        t          j        dd|¦  «        ¦  «        |                     ||¦  «        ¦  «        ¦  «        }|d d …d d…fxx         dz  cc<   |j        ||fk    sJ ‚|                     d¬	¦  «                             ¦   «         d
k    sJ ‚| 	                    ¦   «         }t          |d|| dd¬¦  «        }	|	                     | 	                    ¦   «         ¦  «        }
|
j        ||fk    sJ ‚|	                     |¦  «        }t          |
|d¬¦  «         t          |
                     dd¬¦  «        t          j        |¦  «        ¦  «         t          |
                     d¬	¦  «        t          j        |¦  «        d¬¦  «         | 	                    ¦   «         }t          |d|| ¬¦  «                             | 	                    ¦   «         ¦  «        }	|	                     |¦  «        }|j        ||fk    sJ ‚|                     d¬	¦  «                             ¦   «         t%          j        dd¬¦  «        k    sJ ‚d S )Nr   éd   éP   é   é2   g      $@ç      ð?é   ©ÚaxisgfffffæE@Té   )r   Úwhitenr:   r   Úrandom_stateÚiterated_powergü©ñÒMb@?©Úrtolr   ©ÚddofrD   r   r   F)r   rF   r:   r   gfffff†R@çš™™™™™¹?)Úrel)r   r2   ÚRandomStater   ÚrandnÚdiagÚlinspacer   Ústdr:   r   r   r   r	   ÚonesÚmeanÚzerosr   ÚpytestÚapprox)r;   r:   ÚrngÚ	n_samplesr8   r   Úrankr!   ÚX_r"   Ú
X_whitenedÚX_whitened2ÚX_unwhiteneds                r'   Útest_whiteningr`   3   s…  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€IØ€JØ€LØ€Dõ 	ŒØ�	Š	�)˜TÑ"Ô"Ý
Œ�rŒw•r”{ 4¨¨dÑ3Ô3Ñ4Ô4°c·i²iÀÀjÑ6QÔ6QÑRÔRñ	ô 	€Að €a€a€aˆˆ"ˆ€f€I€I„I��N€I€I�IàŒ7�y *Ð-Ò-Ð-Ð-Ð-ð �5Š5�aˆ5‰=Œ=×ÒÑÔ Ò%Ð%Ð%Ð%ð 
�Š‰Œ€BÝ
Ø!ØØØØØðñ ô €Cð ×"Ò" 2§7¢7¡9¤9Ñ-Ô-€JØÔ 	¨<Ð8Ò8Ð8Ð8Ð8Ø—-’- Ñ#Ô#€KÝ�J °$Ð7Ñ7Ô7Ð7å�J—N’N¨°�NÑ2Ô2µB´G¸LÑ4IÔ4IÑJÔJÐJÝ�J—O’O¨�OÑ+Ô+­R¬X°lÑ-CÔ-CÈ%ÐPÑPÔPÐPà	
�Š‰Œ€BÝ
Ø!¨%°dÀvðñ ô ç	‚cˆ"�'Š'‰)Œ)�n„nð ð —=’= Ñ$Ô$€LØÔ )¨\Ð!:Ò:Ð:Ð:Ð:ð ×Ò ÐÑ#Ô#×'Ò'Ñ)Ô)­V¬]¸4ÀTÐ-JÑ-JÔ-JÒJÐJÐJÐJÐJÐJr)   r   r   c                 ó„  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }t	          dd¬¦  «        }t	          d| d¬¦  «        }|                     |¦  «         |                     |¦  «         t          |j        |j        d¬¦  «         t          |j        |j        d¬¦  «         d S )	Nr   ©r=   r>   r,   r
   r   ©r   r   rG   çš™™™™™©?rI   )	r   r2   rO   rP   r   r   r	   Úexplained_variance_Úexplained_variance_ratio_©r   rY   rZ   r8   r!   Úpca_fullÚ	pca_others          r'   Ú.test_pca_explained_variance_equivalence_solverrj   j   sÑ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€Aå ¨fÐ5Ñ5Ô5€HÝ ¨zÈÐJÑJÔJ€Ià‡L‚L��O„O€OØ‡M‚M�!ÑÔÐåØÔ$ iÔ&CÈ$ðñ ô ð õ ØÔ*ØÔ+Øðñ ô ð ð ð r)   r!   r=   r>   éN   )Ún_informativerG   zrandom-datazcorrelated-data)Úidsc                 óz  — t          d|d¬¦  «        }|                     | ¦  «        }t          |j        t	          j        |dd¬¦  «        ¦  «         t          j                             t	          j        | d¬¦  «        ¦  «        d         }t          |d¬	¦  «        d d…         }t          |j        |d
¬¦  «         d S )Nr,   r   rc   r   rK   F)ÚrowvarT)Úreverseç{®Gázt?rI   )
r   r   r	   re   r   ÚvarÚlinalgÚeigr%   Úsorted)r!   r   r"   ÚX_pcaÚexpected_results        r'   Ú%test_pca_explained_variance_empiricalrx   €   s¯   € õ ˜1¨À!Ð
DÑ
DÔ
D€CØ×Ò˜aÑ Ô €EÝ�CÔ+­R¬V°EÀÈÐ-JÑ-JÔ-JÑKÔKÐKå”i—m’m¥B¤F¨1°UÐ$;Ñ$;Ô$;Ñ<Ô<¸QÔ?€OÝ˜_°dÐ;Ñ;Ô;¸B¸Q¸BÔ?€OÝ�CÔ+¨_À4ÐHÑHÔHÐHÐHÐHr)   c                 óN  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }t	          dd|¬¦  «        }t	          d| |¬¦  «        }|                     |¦  «         |                     |¦  «         t          |j        |j        d¬¦  «         d S )Nr   rb   r,   r
   rc   rq   rI   )r   r2   rO   rP   r   r   r	   Úsingular_values_rg   s          r'   Ú$test_pca_singular_values_consistencyr{   “   sŸ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€Aå ¨fÀ3ÐGÑGÔG€HÝ ¨zÈÐLÑLÔL€Ià‡L‚L��O„O€OØ‡M‚M�!ÑÔÐå�HÔ-¨yÔ/IÐPTÐUÑUÔUÐUÐUÐUr)   c           	      ó–  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }t	          d| |¬¦  «        }|                     |¦  «        }t          t          j        |j        dz  ¦  «        t           j	         
                    |d¦  «        dz  ¦  «         t          |j        t          j        t          j        |dz  d¬¦  «        ¦  «        ¦  «         d\  }}|                     ||¦  «        }t	          d| |¬¦  «        }|                     |¦  «        }|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        ¦  «        }|                     |¦  «         t          |j        g d¢¦  «         d S )Nr   rb   r,   rc   ÚfrorC   )r=   én   rB   ç‰A`åÐ"	@r   çX9´Èv¾@)r   r€   rA   )r   r2   rO   rP   r   r   r	   Úsumrz   rs   ÚnormÚsqrtr   Úcomponents_r   )r   rY   rZ   r8   r!   r"   ÚX_transÚX_hats           r'   Útest_pca_singular_valuesr‡   ¢   s¸  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€Aå
˜1¨À#Ð
FÑ
FÔ
F€CØ×Ò Ñ"Ô"€Gõ Ý
ŒˆsÔ# QÑ&Ñ'Ô'­¬¯ª¸ÀÑ)GÔ)GÈ1Ñ)Lñô ð õ �CÔ(­"¬'µ"´&¸À!¹È!Ð2LÑ2LÔ2LÑ*MÔ*MÑNÔNÐNð %Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€Aå
˜1¨À#Ð
FÑ
FÔ
F€CØ×Ò Ñ"Ô"€GØ�rŒw•r”v˜g q™j¨qÐ1Ñ1Ô1Ñ2Ô2Ñ2€GØˆAˆAˆAˆqˆD€M€M„M�UÑ€M€M�MØˆAˆAˆAˆqˆD€M€M„M�UÑ€M€M�MÝŒF�7˜CœOÑ,Ô,€EØ‡G‚GˆE�N„N€NÝ�CÔ(Ð*=Ð*=Ð*=Ñ>Ô>Ð>Ð>Ð>r)   c                 óR  — t           j                             d¦  «        }d\  }}|                     ||¦  «        dz  }|d d…xx         t          j        g d¢¦  «        z  cc<   d|                     d|¦  «        z  t          j        g d¢¦  «        z   }t          d| ¬¦  «                             |¦  «                             |¦  «        }|t          j        |dz   	                    ¦   «         ¦  «        z  }t          t          j        |d         d         ¦  «        d	d
¬¦  «         d S )Nr   ©r=   rB   rM   r+   ©rB   é   é   r   r,   r   rA   rq   rI   )r   r2   rO   rP   Úarrayr   r   r   rƒ   r�   r	   Úabs)r   rY   ÚnÚpr!   ÚXtÚYts          r'   Útest_pca_check_projectionr“   À   s  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�D€A€qØ�	Š	�!�Q‰Œ˜#Ñ€AØ€c€r€c€F€F„F�bŒh�y�y�yÑ!Ô!Ñ!€F€F�FØ	ˆs�yŠy˜˜A‰ŒÑ	¥¤¨)¨)¨)Ñ!4Ô!4Ñ	4€Bå	˜!¨
Ð	3Ñ	3Ô	3×	7Ò	7¸Ñ	:Ô	:×	DÒ	DÀRÑ	HÔ	H€BØ�"Œ'�2�q‘5—+’+‘-”-Ñ
 Ô
 Ñ €Bå•B”F˜2˜aœ5 œ8Ñ$Ô$ c°Ð5Ñ5Ô5Ð5Ð5Ð5r)   c                 ó  — ddgddgg}t          d| d¬¦  «        }|                     |¦  «        }|j        s
J d¦   «         ‚t          |                     ¦   «         dd¬¦  «         t          |                     ¦   «         d	d
¬¦  «         d S )NrA   g        r   r   rc   )r,   r   r   r   g¸…ëQ¸æ?rq   rI   )r   r   r   r	   rU   rS   )r   r!   r"   r…   s       r'   Útest_pca_check_projection_listr•   Ï   s“   € ð ˆsˆ�c˜3�ZÐ €AÝ
˜1¨À!Ð
DÑ
DÔ
D€CØ×Ò Ñ"Ô"€GØŒ=Ð Ð ˜&Ñ Ô Ð Ý�G—L’L‘N”N D¨uÐ5Ñ5Ô5Ð5Ý�G—K’K‘M”M 4¨dÐ3Ñ3Ô3Ð3Ð3Ð3r)   )r
   r   r   rF   c                 ór  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }|d d …dfxx         dz  cc<   |g d¢z  }t	          d| |¬¦  «                             |¦  «        }|                     |¦  «        }|                     |¦  «        }t          ||d¬	¦  «         d S )
Nr   )r@   rB   r   gñhãˆµøä>)rŒ   r‹   rB   r,   )r   r   rF   çñhãˆµøÔ>rI   )	r   r2   rO   rP   r   r   r   Úinverse_transformr	   )	r   rF   rY   r�   r�   r!   r"   ÚYÚ	Y_inverses	            r'   Útest_pca_inverser›   Ú   sÁ   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�D€A€qØ�	Š	�!�Q‰Œ€AØ€a€a€aˆ€d€G€G„GˆwÑ€G€G�GØˆˆˆ�N€Aõ ˜1¨¸FÐ
CÑ
CÔ
C×
GÒ
GÈÑ
JÔ
J€CØ�Š�aÑÔ€AØ×%Ò% aÑ(Ô(€IÝ�A�y tÐ,Ñ,Ô,Ð,Ð,Ð,r)   r   )r   r   r   )r   r   r   z!svd_solver, n_components, err_msg))r   r   ú2must be between 1 and min\(n_samples, n_features\))r   r   rœ   )r   r,   zmust be strictly less than min)r   rB   zZn_components=3 must be between 0 and min\(n_samples, n_features\)=2 with svd_solver='full'c                 ó¬  — d}t          || ¬¦  «        }t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   | dk    rr|}d                     ||¦  «        }t          j        t          |¬¦  «        5  t          || ¬¦  «                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )Nr,   ©r   ©Úmatchr   zgn_components={}L? must be strictly less than min\(n_samples, n_features\)={}L? with svd_solver='arpack')r   rW   ÚraisesÚ
ValueErrorr   Úformat)r   r   r   Úerr_msgÚ
smallest_dÚ
pca_fitteds         r'   Útest_pca_validationr§   ì   sf  € ð, €JÝ�\¨jÐ9Ñ9Ô9€Jå	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š�tÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �XÒÐØ!ˆð"ç"(¢&¨°zÑ"BÔ"Bð 	õ
 Œ]�:¨WÐ5Ñ5Ô5ð 	?ð 	?Ý�¨Ð4Ñ4Ô4×8Ò8¸Ñ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð Ðs#   ¯AÁAÁAÂ%CÃCÃCzsolver, n_components_r
   c                 ój   — t          |¬¦  «        }|                     | ¦  «         |j        |k    sJ ‚d S )Nrž   )r   r   Ún_components_)r   r;   r©   r"   s       r'   Útest_n_components_nonerª     s=   € õ ˜Ð
 Ñ
 Ô
 €CØ‡G‚GˆD�M„M€MØÔ Ò-Ð-Ð-Ð-Ð-Ð-r)   r   c                 óà   — t           j                             d¦  «        }d\  }}|                     ||¦  «        }t	          d| ¬¦  «        }|                     |¦  «         |j        dk    sJ ‚d S )Nr   ©iX  r+   Úmler   r   )r   r2   rO   rP   r   r   r©   )r   rY   rZ   r8   r!   r"   s         r'   Útest_n_components_mler®   $  sq   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€AÝ
˜5¨ZÐ
8Ñ
8Ô
8€CØ‡G‚GˆA�J„J€JØÔ Ò!Ð!Ð!Ð!Ð!Ð!r)   c                 óX  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }t	          d| ¬¦  «        }d                     | ¦  «        }t          j        t          |¬¦  «        5  | 	                    |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r¬   r­   r   z:n_components='mle' cannot be a string with svd_solver='{}'rŸ   )
r   r2   rO   rP   r   r£   rW   r¡   r¢   r   )r   rY   rZ   r8   r!   r"   r¤   s          r'   Útest_n_components_mle_errorr°   /  sê   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€AÝ
˜5¨ZÐ
8Ñ
8Ô
8€CØJ×QÒQØñô €Gõ 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á<BÂB#Â&B#c                  óH  — t           j                             d¦  «        } d\  }}|                      ||¦  «        dz  }|d d…xx         t          j        g d¢¦  «        z  cc<   t          dd¬¦  «                             |¦  «        }|j        dk    sJ ‚|j        d	k    sJ ‚d S )
Nr   ©r=   rŒ   rM   r+   ©rB   r‹   rŒ   r   r,   r­   r
   r   r   )	r   r2   rO   rP   r�   r   r   r   r©   )rY   r�   r�   r!   r"   s        r'   Útest_pca_dimr´   >  s¬   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�D€A€qØ�	Š	�!�Q‰Œ˜#Ñ€AØ€c€r€c€F€F„F�bŒh���Ñ'Ô'Ñ'€F€F�FÝ
˜5¨VÐ
4Ñ
4Ô
4×
8Ò
8¸Ñ
;Ô
;€CØÔ˜uÒ$Ð$Ð$Ð$ØÔ Ò!Ð!Ð!Ð!Ð!Ð!r)   c                  ó  ‡‡— d\  Š} t           j                             d¦  «        }|                     ‰| ¦  «        dz  |                     ‰d¦  «        t          j        g d¢¦  «        z  z   t          j        g d¢¦  «        z   }t          | d¬¦  «        }|                     |¦  «         |j        Št          j        ˆˆfd	„t          d| ¦  «        D ¦   «         ¦  «        }|d         | 	                    ¦   «         d
‰z  z
  k    sJ ‚d S )N©éè  rŒ   r   rM   r   r³   )r   r   rE   r‹   é   r
   r   c                 ó2   •— g | ]}t          ‰|‰¦  «        ‘ŒS © )r   )Ú.0Úkr�   Úspects     €€r'   ú
<listcomp>z$test_infer_dim_1.<locals>.<listcomp>V  s&   ø€ ÐGÐGÐG°aÕ$ U¨A¨qÑ1Ô1ÐGÐGÐGr)   ç{®Gáz„?)
r   r2   rO   rP   r�   r   r   re   ÚrangeÚmax)r�   rY   r!   r"   Úllr�   r½   s        @@r'   Útest_infer_dim_1rÃ   I  s   øø€ ð �D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€Cà�	Š	�!�Q‰Œ˜#ÑØ
�)Š)�A�q‰/Œ/�BœH _ _ _Ñ5Ô5Ñ
5ñ	6å
Œ(�?�?�?Ñ
#Ô
#ñ	$ð õ
 ˜1¨Ð
0Ñ
0Ô
0€CØ‡G‚GˆA�J„J€JØÔ#€EÝ	ŒÐGÐGÐGÐGÐG½5ÀÀA¹;¼;ÐGÑGÔGÑ	HÔ	H€BØˆaŒ5�2—6’6‘8”8˜d Q™hÑ&Ò&Ð&Ð&Ð&Ð&Ð&r)   c                  óž  — d\  } }t           j                             d¦  «        }|                     | |¦  «        dz  }|d d…xx         t          j        g d¢¦  «        z  cc<   |dd…xx         t          j        g d¢¦  «        z  cc<   t          |d¬	¦  «        }|                     |¦  «         |j        }t          || ¦  «        d
k    sJ ‚d S )Nr¶   r   rM   r+   r³   é   ©r¸   r   rE   r,   r-   r
   r   r   ©	r   r2   rO   rP   r�   r   r   re   r   ©r�   r�   rY   r!   r"   r½   s         r'   Útest_infer_dim_2rÉ   Z  sÕ   € ð �D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!�Q‰Œ˜#Ñ€AØ€c€r€c€F€F„F�bŒh���Ñ'Ô'Ñ'€F€F�FØ€bˆ€e€H€H„H•”Ð)Ð)Ð)Ñ*Ô*Ñ*€H€H�HÝ
˜1¨Ð
0Ñ
0Ô
0€CØ‡G‚GˆA�J„J€JØÔ#€EÝ˜E 1Ñ%Ô%¨Ò)Ð)Ð)Ð)Ð)Ð)r)   c                  óð  — d\  } }t           j                             d¦  «        }|                     | |¦  «        dz  }|d d…xx         t          j        g d¢¦  «        z  cc<   |dd…xx         t          j        g d¢¦  «        z  cc<   |dd	…xx         d
t          j        g d¢¦  «        z  z  cc<   t          |d¬¦  «        }|                     |¦  «         |j        }t          || ¦  «        d
k    sJ ‚d S )Nr²   r   rM   r+   r³   rÅ   rÆ   r?   é(   r,   )r-   r   r-   r   r-   r
   r   rÇ   rÈ   s         r'   Útest_infer_dim_3rÌ   h  s  € Ø�D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!�Q‰Œ˜#Ñ€AØ€c€r€c€F€F„F�bŒh���Ñ'Ô'Ñ'€F€F�FØ€bˆ€e€H€H„H•”Ð)Ð)Ð)Ñ*Ô*Ñ*€H€H�HØ€bˆ€e€H€H„H�•B”HÐ/Ð/Ð/Ñ0Ô0Ñ0Ñ0€H€H�HÝ
˜1¨Ð
0Ñ
0Ô
0€CØ‡G‚GˆA�J„J€JØÔ#€EÝ˜E 1Ñ%Ô%¨Ò)Ð)Ð)Ð)Ð)Ð)r)   z'X, n_components, n_components_validatedgffffffî?r,   r¿   rŒ   rÅ   g      à?c                 óª   — t          |d¬¦  «        }|                     | ¦  «         |j        t          j        |¦  «        k    sJ ‚|j        |k    sJ ‚d S )Nr
   r   )r   r   r   rW   rX   r©   )r!   r   Ún_components_validatedr"   s       r'   Ú$test_infer_dim_by_explained_variancerÏ   u  s^   € õ ˜<°FÐ
;Ñ
;Ô
;€CØ‡G‚GˆA�J„J€JØÔ�vœ}¨\Ñ:Ô:Ò:Ð:Ð:Ð:ØÔÐ 6Ò6Ð6Ð6Ð6Ð6Ð6r)   c                 óê  — d\  }}t           j                             d¦  «        }|                     ||¦  «        dz  t          j        g d¢¦  «        z   }t          d| ¬¦  «        }|                     |¦  «         |                     |¦  «        }dt          j        dt           j	        z  t          j
        d¦  «        z  d	z  ¦  «        z  |z  }t          ||z  dd
¬¦  «         |                     |                     ||¦  «        dz  t          j        g d¢¦  «        z   ¦  «        }||k    sJ ‚t          dd| ¬¦  «        }|                     |¦  «         |                     |¦  «        }||k    sJ ‚d S )N)r·   rB   r   rM   rŠ   r,   r   g      à¿r   g|®Gáz„?rd   rI   gš™™™™™É?T)r   rF   r   )r   r2   rO   rP   r�   r   r   ÚscoreÚlogÚpiÚexpr	   )	r   r�   r�   rY   r!   r"   Úll1ÚhÚll2s	            r'   Útest_pca_scorerØ   „  sJ  € ð �D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!�Q‰Œ˜#Ñ¥¤¨¨¨Ñ 3Ô 3Ñ3€AÝ
˜1¨Ð
4Ñ
4Ô
4€CØ‡G‚GˆA�J„J€Jà
�)Š)�A‰,Œ,€CØ�rŒv�a�"œ%‘i¥"¤&¨¡)¤)Ñ+¨fÑ4Ñ5Ô5Ñ5¸Ñ9€AÝ�C˜!‘G˜Q TÐ*Ñ*Ô*Ð*à
�)Š)�C—I’I˜a ‘O”O cÑ)­B¬H°Y°Y°YÑ,?Ô,?Ñ?Ñ
@Ô
@€CØ�Š9ˆ9ˆ9ˆ9å
˜1 T°jÐ
AÑ
AÔ
A€CØ‡G‚GˆA�J„J€JØ
�)Š)�A‰,Œ,€CØ�Š9ˆ9ˆ9ˆ9ˆ9ˆ9r)   c                  ó¶  — d\  } }t           j                             d¦  «        }|                     | |¦  «        |                     | d¦  «        t          j        g d¢¦  «        z  z   t          j        g d¢¦  «        z   }|                     | |¦  «        |                     | d¦  «        t          j        g d¢¦  «        z  z   t          j        g d¢¦  «        z   }t          j        |¦  «        }t          |¦  «        D ]@}t          |d¬¦  «        }|                     |¦  «         | 	                    |¦  «        ||<   ŒA| 
                    ¦   «         dk    sJ ‚d S )N)éÈ   rB   r   r   rŠ   )r   r   rE   r
   r   )r   r2   rO   rP   r�   rV   rÀ   r   r   rÑ   Úargmax)r�   r�   rY   ÚXlr‘   rÂ   r¼   r"   s           r'   Útest_pca_score3rÝ   š  s'  € à�D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ	�Š�1�a‰Œ˜3Ÿ9š9 Q¨™?œ?­R¬X°i°i°iÑ-@Ô-@Ñ@Ñ	@Å2Ä8ÈIÈIÈIÑCVÔCVÑ	V€BØ	�Š�1�a‰Œ˜3Ÿ9š9 Q¨™?œ?­R¬X°i°i°iÑ-@Ô-@Ñ@Ñ	@Å2Ä8ÈIÈIÈIÑCVÔCVÑ	V€BÝ	Œ�!‰Œ€BÝ�1‰XŒXð ð ˆÝ˜q¨VÐ4Ñ4Ô4ˆØ�Š�‰ŒˆØ—	’	˜"‘”ˆˆ1‰ˆà�9Š9‰;Œ;˜!ÒÐÐÐÐÐr)   c                 óÒ   — t          j        d¬¦  «        \  }}t          d| d¬¦  «        }|                     |¦  «         t	          j        |j        |j        z
  dk    ¦  «        sJ ‚d S )NT©Ú
return_X_yr?   r   rc   )r   Úload_digitsr   r   r   Úallre   Únoise_variance_)r   r!   Ú_r"   s       r'   Útest_pca_sanity_noise_variancerå   ©  sj   € õ Ô¨4Ð0Ñ0Ô0�D€A€qÝ
˜2¨*À1Ð
EÑ
EÔ
E€CØ‡G‚GˆA�J„J€JÝŒ6�3Ô*¨SÔ-@Ñ@ÀQÒFÑGÔGÐGÐGÐGÐGÐGr)   c                 óB  — t          j        d¬¦  «        \  }}t          ddd¬¦  «        }t          d| d¬¦  «        }|                     |¦  «         |                     |¦  «         t	          |                     |¦  «        |                     |¦  «        d¬¦  «         d S )	NTrß   r?   r
   r   rc   r—   rI   )r   rá   r   r   r	   rÑ   )r   r!   rä   rh   ri   s        r'   Ú"test_pca_score_consistency_solversrç   µ  s—   € õ Ô¨4Ð0Ñ0Ô0�D€A€qÝ ¨vÀAÐFÑFÔF€HÝ °
ÈÐKÑKÔK€IØ‡L‚L��O„O€OØ‡M‚M�!ÑÔÐÝ�H—N’N 1Ñ%Ô% y§¢°qÑ'9Ô'9ÀÐEÑEÔEÐEÐEÐEr)   c                 óÀ  — d\  }}t           j                             d¦  «        }|                     ||¦  «        dz  t          j        g d¢¦  «        z   }t          || ¬¦  «        }|                     |¦  «         |j        dk    sJ ‚|                     |¦  «         |                     |j	        ¦  «         |j        dk    sJ ‚|                     |j	        ¦  «         d S )Nr‰   r   rM   rŠ   r   )
r   r2   rO   rP   r�   r   r   rã   rÑ   ÚT)r   r�   r�   rY   r!   r"   s         r'   Ú'test_pca_zero_noise_variance_edge_casesrê   Á  sÍ   € ð �D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!�Q‰Œ˜#Ñ¥¤¨¨¨Ñ 3Ô 3Ñ3€Aå
˜1¨Ð
4Ñ
4Ô
4€CØ‡G‚GˆA�J„J€JØÔ !Ò#Ð#Ð#Ð#ð ‡I‚Iˆa�L„L€Là‡G‚GˆAŒC�L„L€LØÔ !Ò#Ð#Ð#Ð#ð ‡I‚IˆaŒc�N„N€N€N€Nr)   z#data, n_components, expected_solver)r·   r@   r.   )r+   r@   r@   r+   c                 óÔ   — t          |d¬¦  «        }t          ||d¬¦  «        }|                     | ¦  «         |                     | ¦  «         t          |j        |j        ¦  «         d S )Nr   )r   rG   rc   )r   r   r	   r„   )r   r   Úexpected_solverÚpca_autoÚpca_tests        r'   Útest_pca_svd_solver_autorï   ×  ss   € õ  ¸1Ð=Ñ=Ô=€HÝØ!¨oÈAðñ ô €Hð ‡L‚L�ÑÔÐØ‡L‚L�ÑÔÐÝ�HÔ(¨(Ô*>Ñ?Ô?Ð?Ð?Ð?r)   c                 óœ  — t           j                             d¦  «                             dd¦  «        }t          j                             |¦  «        }t          j                             |¦  «        sJ ‚t          d| ¬¦  «        }t          j
        t          ¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rŒ   r‹   rB   r   )r   r2   rO   ÚrandÚspÚsparseÚ
csr_matrixÚissparser   rW   r¡   Ú	TypeErrorr   )r   r!   r"   s      r'   Útest_pca_sparse_inputr÷   í  sí   € å
Œ	×Ò˜aÑ Ô ×%Ò% a¨Ñ+Ô+€AÝ
Œ	×Ò˜QÑÔ€AÝŒ9×Ò˜aÑ Ô Ð Ð Ð å
˜1¨Ð
4Ñ
4Ô
4€CÝ	Œ•yÑ	!Ô	!ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂCÃCÃCc           	      ó¦  — t           j                             d¦  «        }|                     dd¦  «        }t          j        d¦  «        }t          d¦  «        D ]6}t          d| |¬¦  «        }|                     |¦  «        d         ||d d …f<   Œ7t          |t          j	        |dd d …f         d¦  «         
                    dd¦  «        ¦  «         d S )Nr   r+   )rÅ   r,   rÅ   r,   rc   )r   r2   rO   rñ   rV   rÀ   r   r   r	   ÚtileÚreshape)r   rY   r!   Útransformed_XÚir"   s         r'   Útest_pca_deterministic_outputrý   ø  sÊ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š��RÑÔ€Aå”H˜WÑ%Ô%€MÝ�2‰YŒYð 6ð 6ˆÝ˜q¨ZÀcÐJÑJÔJˆØ!×/Ò/°Ñ2Ô2°1Ô5ˆ�a˜˜˜�dÑÐÝ�M¥2¤7¨=¸¸A¸A¸A¸Ô+>ÀÑ#CÔ#C×#KÒ#KÈBÐPQÑ#RÔ#RÑSÔSÐSÐSÐSr)   c                 óB   — t          | ¦  «         t          | ¦  «         d S )N)Ú"check_pca_float_dtype_preservationÚ$check_pca_int_dtype_upcast_to_doublerž   s    r'   Útest_pca_dtype_preservationr    s$   € å& zÑ2Ô2Ð2Ý(¨Ñ4Ô4Ð4Ð4Ð4r)   c                 óÌ  — t           j                             d¦  «                             dd¦  «                             t           j        d¬¦  «        }|                     t           j        ¦  «        }t          d| d¬¦  «                             |¦  «        }t          d| d¬¦  «                             |¦  «        }|j	        j
        t           j        k    sJ ‚|j	        j
        t           j        k    sJ ‚|                     |¦  «        j
        t           j        k    sJ ‚|                     |¦  «        j
        t           j        k    sJ ‚t          |j	        |j	        d¬	¦  «         d S )
Nr   r·   r‹   F©r:   rB   rc   g-Cëâ6*?rI   )r   r2   rO   rñ   ÚastypeÚfloat64Úfloat32r   r   r„   Údtyper   r	   )r   ÚX_64ÚX_32Úpca_64Úpca_32s        r'   rÿ   rÿ   
  s0  € åŒ9× Ò  Ñ#Ô#×(Ò(¨¨qÑ1Ô1×8Ò8½¼È%Ð8ÑPÔP€DØ�;Š;•r”zÑ"Ô"€Då˜a¨JÀQÐGÑGÔG×KÒKÈDÑQÔQ€FÝ˜a¨JÀQÐGÑGÔG×KÒKÈDÑQÔQ€FàÔÔ#¥r¤zÒ1Ð1Ð1Ð1ØÔÔ#¥r¤zÒ1Ð1Ð1Ð1Ø×Ò˜DÑ!Ô!Ô'­2¬:Ò5Ð5Ð5Ð5Ø×Ò˜DÑ!Ô!Ô'­2¬:Ò5Ð5Ð5Ð5õ
 �FÔ&¨Ô(:ÀÐFÑFÔFÐFÐFÐFr)   c                 óÖ  — t           j                             d¦  «                             ddd¦  «        }|                     t           j        d¬¦  «        }|                     t           j        d¬¦  «        }t          d| d¬¦  «                             |¦  «        }t          d| d¬¦  «                             |¦  «        }|j	        j
        t           j        k    sJ ‚|j	        j
        t           j        k    sJ ‚|                     |¦  «        j
        t           j        k    sJ ‚|                     |¦  «        j
        t           j        k    sJ ‚t          |j	        |j	        d¬	¦  «         d S )
Nr   r·   )r·   r‹   Fr  rB   rc   g-Cëâ6?rI   )r   r2   rO   Úrandintr  Úint64Úint32r   r   r„   r  r  r   r	   )r   ÚX_i64ÚX_i32r
  r  s        r'   r   r     s6  € åŒI×!Ò! !Ñ$Ô$×,Ò,¨Q°°iÑ@Ô@€EØ�LŠL�œ¨ˆLÑ.Ô.€EØ�LŠL�œ¨ˆLÑ.Ô.€Eå˜a¨JÀQÐGÑGÔG×KÒKÈEÑRÔR€FÝ˜a¨JÀQÐGÑGÔG×KÒKÈEÑRÔR€FàÔÔ#¥r¤zÒ1Ð1Ð1Ð1ØÔÔ#¥r¤zÒ1Ð1Ð1Ð1Ø×Ò˜EÑ"Ô"Ô(­B¬JÒ6Ð6Ð6Ð6Ø×Ò˜EÑ"Ô"Ô(­B¬JÒ6Ð6Ð6Ð6å�FÔ&¨Ô(:ÀÐFÑFÔFÐFÐFÐFr)   c                  ó&  — t          d¬¦  «        \  } }t          ¦   «                              | |¦  «        }|j                             ¦   «         d         }t          |¬¦  «                             | |¦  «        }|j        | j        d         k    sJ ‚d S )NTrß   éþÿÿÿr0   r   )r   r   r   rf   Úcumsumr©   r   )r!   ÚyÚpca1r   Úpca2s        r'   Ú5test_pca_n_components_mostly_explained_variance_ratior  .  s†   € õ  Ð%Ñ%Ô%�D€A€qÝ‰5Œ5�9Š9�Q˜‰?Œ?€DàÔ1×8Ò8Ñ:Ô:¸2Ô>€LÝ˜LÐ)Ñ)Ô)×-Ò-¨a°Ñ3Ô3€DØÔ ¤¨¤Ò+Ð+Ð+Ð+Ð+Ð+r)   c                  óÈ   — t          j        g d¢¦  «        } d}dD ]F}t          j        t          d¬¦  «        5  t          | ||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒGd S )N©r   ç ÂëþKH´9r  r  r+   )r   rŒ   z"should be in \[1, n_features - 1\]rŸ   )r   r�   rW   r¡   r¢   r   )ÚspectrumrZ   r[   s      r'   Útest_assess_dimension_bad_rankr  :  s´   € åŒxÐ0Ð0Ð0Ñ1Ô1€HØ€IØð 9ð 9ˆÝŒ]�:Ð-RÐSÑSÔSð 	9ð 	9Ý˜h¨¨iÑ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9øð9ð 9s   ¸AÁA	ÁA	c                  óò   — t          j        g d¢¦  «        } t          | dd¬¦  «        t           j         k    sJ ‚dD ]$}t          | |d¦  «        t           j         k    sJ ‚Œ%t	          | d¦  «        dk    sJ ‚d S )Nr  r   r+   ©r[   rZ   )r,   rB   )r   r�   r   Úinfr   )r  r[   s     r'   Útest_small_eigenvalues_mler!  C  s”   € õ ŒxÐ0Ð0Ð0Ñ1Ô1€Hå˜X¨A¸Ð<Ñ<Ô<ÅÄ¸wÒFÐFÐFÐFàð @ð @ˆÝ  ¨4°Ñ4Ô4½¼¸Ò?Ð?Ð?Ð?Ð?å˜H bÑ)Ô)¨QÒ.Ð.Ð.Ð.Ð.Ð.r)   c                  ó    — t          j        dddddd¬¦  «        \  } }t          d¬¦  «                             | ¦  «        }|j        dk    sJ ‚d S )NrÅ   r   é   é*   )r8   rl   Ú
n_repeatedÚn_redundantÚn_clusters_per_classrG   r­   r0   )r   Úmake_classificationr   r   r©   ©r!   rä   r"   s      r'   Útest_mle_redundant_datar*  P  sk   € õ Ô'ØØØØØØðñ ô �D€A€qõ ˜5Ð
!Ñ
!Ô
!×
%Ò
% aÑ
(Ô
(€CØÔ Ò!Ð!Ð!Ð!Ð!Ð!r)   c                  óî   — t          j        ddd¬¦  «        \  } }t          dd¬¦  «        }t          j        t
          d¬	¦  «        5  |                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NrÅ   é   r$  )rZ   r8   rG   r­   r
   r   z?n_components='mle' is only supported if n_samples >= n_featuresrŸ   )r   r(  r   rW   r¡   r¢   r   r)  s      r'   Útest_fit_mle_too_few_samplesr-  _  sÄ   € õ Ô'°"ÀÐRTÐUÑUÔU�D€A€qå
˜5¨VÐ
4Ñ
4Ô
4€CÝ	ŒÝØOð
ñ 
ô 
ð ð ð 	�Š�‰
Œ
ˆ
ð	ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA*Á*A.Á1A.c                  ó4  — d\  } }t           j                             d¦  «                             | |¦  «        }t          j        |d d …d d…f         d¬¦  «        |d d …df<   t          dd¬¦  «        }|                     |¦  «         |j        |dz
  k    sJ ‚d S )	N)r·   r+   r   r-   rC   r­   r
   rž   r   )r   r2   rO   rP   rU   r   r   r©   )rZ   Ún_dimr!   Úpca_skls       r'   Útest_mle_simple_caser1  l  s¢   € ð  Ñ€IˆuÝ
Œ	×Ò˜aÑ Ô ×&Ò& y°%Ñ8Ô8€AÝŒw�q˜˜˜˜C˜R˜C˜”y rÐ*Ñ*Ô*€A€a€a€aˆ€e�HÝ�% FÐ+Ñ+Ô+€GØ‡K‚K��N„N€NØÔ  E¨A¡IÒ-Ð-Ð-Ð-Ð-Ð-r)   c                  óš  — d\  } }t          j        | |f¦  «        }t           j                             |d¬¦  «        \  }}}t	          |dd …         t          j        |dz
  ¦  «        d¬¦  «         t          j        t          |d| ¬¦  «        ¦  «        sJ ‚t          d|¦  «        D ]$}t          ||| ¦  «        t           j	         k    sJ ‚Œ%d S )	N)é	   r¸   T)Úfull_matricesr   r   r   r  r,   )
r   rT   rs   Úsvdr	   rV   Úisfiniter   rÀ   r   )rZ   r8   r!   rä   Úsr[   s         r'   Útest_assess_dimesion_rank_oner8  w  sÙ   € à Ñ€IˆzÝ
Œ�˜JÐ'Ñ(Ô(€AÝŒi�mŠm˜A¨TˆmÑ2Ô2�G€A€qˆ!å�A�a�b�b”E�2œ8 J°¡NÑ3Ô3¸%Ð@Ñ@Ô@Ð@åŒ;Õ(¨°¸iÐHÑHÔHÑIÔIÐIÐIÐIÝ�a˜Ñ$Ô$ð @ð @ˆÝ   D¨)Ñ4Ô4½¼¸Ò?Ð?Ð?Ð?Ð?ð@ð @r)   c                  óJ  — t           j                             d¦  «        } d}|                      d|¦  «        }t	          dd|d¬¦  «                             |¦  «        }t	          dd¬¦  «                             |¦  «        }t	          dd	d¬
¦  «                             |¦  «        }t          t          j        |j        ¦  «        t          j        |j        ¦  «        ¦  «         t          t          j        |j        ¦  «        t          j        |j        ¦  «        ¦  «         dS )zßCheck that exposing and setting `n_oversamples` will provide accurate results
    even when `X` as a large number of features.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/20589
    r   r=   r·   r   r   )r   r   Ún_oversamplesrG   r
   r   r   rc   N)	r   r2   rO   rP   r   r   r	   rŽ   r„   )rY   r8   r!   Úpca_randomizedrh   Ú
pca_arpacks         r'   Ú%test_pca_randomized_svd_n_oversamplesr=  „  s  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€JØ�	Š	�%˜Ñ$Ô$€Aõ ØØØ Øð	ñ ô ÷
 
‚cˆ!�f„fð õ  ¨fÐ5Ñ5Ô5×9Ò9¸!Ñ<Ô<€HÝ !°ÀqÐIÑIÔI×MÒMÈaÑPÔP€Jå•B”F˜8Ô/Ñ0Ô0µ"´&¸Ô9OÑ2PÔ2PÑQÔQÐQÝ•B”F˜>Ô5Ñ6Ô6½¼¸zÔ?UÑ8VÔ8VÑWÔWÐWÐWÐWr)   c                  óÖ   — t          d¬¦  «                             t          j        ¦  «        } |                      ¦   «         }t          d„ t          d¦  «        D ¦   «         |¦  «         dS )z Check feature names out for PCA.r,   r0   c                 ó   — g | ]}d |› �‘ŒS )r"   rº   )r»   rü   s     r'   r¾   z*test_feature_names_out.<locals>.<listcomp>£  s   € Ð4Ð4Ð4 a˜	˜a˜	˜	Ð4Ð4Ð4r)   N)r   r   r   r   Úget_feature_names_outr   rÀ   )r"   Únamess     r'   Útest_feature_names_outrB  ž  s^   € å
˜1Ð
Ñ
Ô
×
!Ò
!¥$¤)Ñ
,Ô
,€Cà×%Ò%Ñ'Ô'€EÝÐ4Ð4­5°©8¬8Ð4Ñ4Ô4°eÑ<Ô<Ð<Ð<Ð<r)   c                 ób  — t           j                             d¦  «        }|                     dd¦  «        }t	          ¦   «                              |¦  «        }|j        |j        z  }t          j        |dd¬¦  «         	                    ¦   «         }t           j
                             ||¦  «         dS )z9Check the accuracy of PCA's internal variance calculationr   r·   rÚ   r   rK   N)r   r2   rO   rP   r   r   re   rf   rr   r�   Útestingr	   )r:   rY   r!   r"   Úpca_varÚtrue_vars         r'   Útest_variance_correctnessrG  ¦  s�   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�$˜ÑÔ€AÝ
‰%Œ%�)Š)�A‰,Œ,€CØÔ%¨Ô(EÑE€GÝŒv�a˜a aÐ(Ñ(Ô(×,Ò,Ñ.Ô.€HÝ„J×Ò˜w¨Ñ1Ô1Ð1Ð1Ð1r)   )Kr4   Únumpyr   rW   Úscipyrò   Únumpy.testingr   Úsklearnr   Úsklearn.datasetsr   Úsklearn.decompositionr   Úsklearn.decomposition._pcar   r   Úsklearn.utils._testingr	   r   ÚPCA_SOLVERSÚmarkÚparametrizerÀ   r   r   r(   r9   r`   rj   r2   rO   rP   r(  rx   r{   r‡   r“   r•   r›   r�   ré   r§   Úminrª   r®   r°   r´   rÃ   rÉ   rÌ   rñ   rÏ   rØ   rÝ   rå   rç   rê   r3   rï   r÷   rý   r  rÿ   r   r  r  r!  r*  r-  r1  r8  r=  rB  rG  rº   r)   r'   ú<module>rT     s	  ðØ €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø %Ð %Ð %Ð %Ð %Ð %Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ 2Ð 2Ð 2Ð 2Ð 2Ð 2à€xÔÑÔ€Ø6Ð6Ð6€ð „×Ò˜ {Ñ3Ô3Ø„×Ò˜¨¨¨q°$´)´/À!Ô2DÑ)EÔ)EÑFÔFðLð Lñ GÔFñ 4Ô3ðLð(ð ð ð „×Ò˜ $¨ Ñ/Ô/Ø„×Ò˜ ;Ñ/Ô/ð1Kð 1Kñ 0Ô/ñ 0Ô/ð1Kðj „×Ò˜¨°,Ð'?Ñ@Ô@ðð ñ AÔ@ðð* „×ÒØà
Œ	×Ò˜aÑ Ô ×&Ò& s¨BÑ/Ô/Ø$ˆÔ$ S¨"¸BÈQÐOÑOÔOÐPQÔRðð 
Ð)Ð*ð ñ ô ð „×Ò˜ {Ñ3Ô3ðIð Iñ 4Ô3ñô ðIð „×Ò˜¨°,Ð'?Ñ@Ô@ðVð Vñ AÔ@ðVð „×Ò˜ {Ñ3Ô3ð?ð ?ñ 4Ô3ð?ð: „×Ò˜ {Ñ3Ô3ð6ð 6ñ 4Ô3ð6ð „×Ò˜ {Ñ3Ô3ð4ð 4ñ 4Ô3ð4ð „×Ò˜Ð'GÐ'GÐ'GÑHÔHØ„×Ò˜ E¨4 =Ñ1Ô1ð-ð -ñ 2Ô1ñ IÔHð-ð  „×ÒØ
ˆXˆRŒX�y�y�y ) ) )Ð,Ñ-Ô-¨x¨r¬x¸¸¸ÀIÀIÀIÐ8NÑ/OÔ/OÔ/QÐRñô ð „×ÒØ'ðð ð ñô ð ?ð ?ñ!ô ñô ð&?ð, „×ÒØà	���T”Y”_Ñ%Ô%Ð&Ø	�3�3�t”y”Ñ'Ô'¨!Ñ+Ð,Ø	�s�s˜4œ9œ?Ñ+Ô+Ð,ðñô ð „×Ò˜ $¤)¨T¬Y¬[Ð!9Ñ:Ô:ð.ð .ñ ;Ô:ñô ð.ð „×Ò˜¨°Ð'7Ñ8Ô8ð"ð "ñ 9Ô8ð"ð „×Ò˜¨°,Ð'?Ñ@Ô@ðð ñ AÔ@ðð"ð "ð "ð'ð 'ð 'ð"*ð *ð *ð
*ð 
*ð 
*ð „×ÒØ-à	Œ�D˜!ÐØ	Œ�D˜!ÐØ	Œ×	Ò	˜qÑ	!Ô	!×	&Ò	& q¨"Ñ	-Ô	-¨s°AÐ6ðñô ð7ð 7ñô ð7ð „×Ò˜ {Ñ3Ô3ðð ñ 4Ô3ðð*ð ð ð „×Ò˜ {Ñ3Ô3ðHð Hñ 4Ô3ðHð „×Ò˜¨°,Ð'?Ñ@Ô@ðFð Fñ AÔ@ðFð „×Ò˜¨°Ð'=Ñ>Ô>ðð ñ ?Ô>ðð* „×ÒØ)à	Œ×	Ò	˜qÑ	!Ô	!×	)Ò	)¨zÐ	)Ñ	:Ô	:¸CÀÐHà	Œ×	Ò	˜qÑ	!Ô	!×	)Ò	)¨xÐ	)Ñ	8Ô	8¸!¸VÐDà	Œ×	Ò	˜qÑ	!Ô	!×	)Ò	)¨zÐ	)Ñ	:Ô	:¸BÀÐGà	Œ×	Ò	˜qÑ	!Ô	!×	)Ò	)¨zÐ	)Ñ	:Ô	:¸BÀÐMðñô ð@ð @ñô ð@ð „×Ò˜ {Ñ3Ô3ðð ñ 4Ô3ðð „×Ò˜ {Ñ3Ô3ðTð Tñ 4Ô3ðTð „×Ò˜ {Ñ3Ô3ð5ð 5ñ 4Ô3ð5ð
Gð Gð Gð&Gð Gð Gð"	,ð 	,ð 	,ð9ð 9ð 9ð
/ð 
/ð 
/ð"ð "ð "ð
ð 
ð 
ð.ð .ð .ð
@ð 
@ð 
@ðXð Xð Xð4=ð =ð =ð „×Ò˜ $¨ Ñ/Ô/ð2ð 2ñ 0Ô/ð2ð 2ð 2r)   