Ë
    ÷Q(hA  ã                   ód  — d Z ddlZddlZddlZddlmZmZ ddlm	Z	 ddl
mZmZ ddlmZmZmZ ddlmZmZmZ  e	j*                  «       Zd„ Zej0                  j3                  d	eez   ez   «      d
„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.y)zTests for Incremental PCA.é    N)Úassert_allcloseÚassert_array_equal)Údatasets)ÚPCAÚIncrementalPCA)Úassert_allclose_dense_sparseÚassert_almost_equalÚassert_array_almost_equal)ÚCSC_CONTAINERSÚCSR_CONTAINERSÚLIL_CONTAINERSc                  óø  — t         j                  } | j                  d   dz  }t        d|¬«      }t	        d¬«      }|j                  | «       |j                  | «      }|j                  | j                  d   dfk(  sJ ‚t        j                  j                  |j                  j                  «       |j                  j                  «       d¬«       dd| j                  d   fD ]–  }t        ||¬	«      }|j                  | «       |j                  «       }|j                  «       }t        j                  j                  t        j                  ||«      t        j                  | j                  d   «      d
¬«       Œ˜ y )Nr   é   é   ©Ún_componentsÚ
batch_size©r   çü©ñÒMbP?©Úrtolé   ©r   ç‚vIhÂ%<=©Úatol)ÚirisÚdataÚshaper   r   Úfit_transformÚnpÚtestingr   Úexplained_variance_ratio_ÚsumÚfitÚget_covarianceÚget_precisionÚdotÚeye)ÚXr   ÚipcaÚpcaÚX_transformedr   ÚcovÚ	precisions           ún/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/decomposition/tests/test_incremental_pca.pyÚtest_incremental_pcar1      s;  € ä�	‰	€AØ—‘˜‘˜q‘€JÜ q°ZÔ@€DÜ
˜1Ô
€CØ×Ñ�aÔà×&Ñ& qÓ)€Mà×Ñ 1§7¡7¨1¡:¨q /Ò1Ð1Ð1Ü‡J�J×ÑØ×&Ñ&×*Ñ*Ó,Ø×%Ñ%×)Ñ)Ó+Øð ô ð ˜A˜qŸw™w q™zÐ*ò 
ˆÜ˜l°zÔBˆØ�‰�ŒØ×!Ñ!Ó#ˆØ×&Ñ&Ó(ˆ	Ü
�
‰
×"Ñ"Ü�F‰F�3˜	Ó"¤B§F¡F¨1¯7©7°1©:Ó$6¸Uð 	#õ 	
ñ
ó    Úsparse_containerc                 óŠ  — t         j                  }t        d¬«      }|j                  |«        | |«      }|j                  d   dz  }t        d|¬«      }|j                  |«      }|j                  |j                  d   dfk(  sJ ‚t        j                  j                  |j                  j                  «       |j                  j                  «       d¬«       dd|j                  d   fD ]–  }t        ||¬	«      }|j                  |«       |j                  «       }|j                  «       }	t        j                  j                  t        j                  ||	«      t        j                  |j                  d   «      d
¬«       Œ˜ t!        j"                  t$        d¬«      5  |j'                  |«       d d d «       y # 1 sw Y   y xY w)Nr   r   r   r   r   r   r   r   r   r   r   z…IncrementalPCA.partial_fit does not support sparse input. Either convert data to dense or use IncrementalPCA.fit to do so in batches.©Úmatch)r   r   r   r    r   r   r!   r"   r   r#   r$   r%   r&   r'   r(   r)   ÚpytestÚraisesÚ	TypeErrorÚpartial_fit)
r3   r*   r,   ÚX_sparser   r+   r-   r   r.   r/   s
             r0   Útest_incremental_pca_sparser<   0   sˆ  € ô
 	�	‰	€AÜ
˜1Ô
€CØ×Ñ�aÔÙ Ó"€HØ—‘ Ñ" aÑ'€JÜ q°ZÔ@€Dà×&Ñ& xÓ0€Mà×Ñ 8§>¡>°!Ñ#4°aÐ"8Ò8Ð8Ð8Ü‡J�J×ÑØ×&Ñ&×*Ñ*Ó,Ø×%Ñ%×)Ñ)Ó+Øð ô ð ˜A˜qŸw™w q™zÐ*ò 
ˆÜ˜l°zÔBˆØ�‰�ÔØ×!Ñ!Ó#ˆØ×&Ñ&Ó(ˆ	Ü
�
‰
×"Ñ"Ü�F‰F�3˜	Ó"¤B§F¡F¨8¯>©>¸!Ñ+<Ó$=ÀEð 	#õ 	
ð
ô 
�‰Üð=ô
ñ #ð 	×Ñ˜Ô"÷#÷ #ñ #ús   ÆF9Æ9Gc                  ó  — t         j                  j                  d«      } d\  }}| j                  ||«      dz  }|d dxxx t        j                  g d¢«      z  ccc d| j                  d|«      z  t        j                  g d¢«      z   }t        d¬«      j                  |«      j                  |«      }|t        j                  |dz  j                  «       «      z  }t        t        j                  |d	   d	   «      d
d«       y )NéÏ  )éd   r   gš™™™™™¹?é
   )r   é   é   r   r   r   r   ç      ð?)r!   ÚrandomÚRandomStateÚrandnÚarrayr   r%   Ú	transformÚsqrtr$   r	   Úabs)ÚrngÚnÚpr*   ÚXtÚYts         r0   Ú%test_incremental_pca_check_projectionrP   Y   sÎ   € ä
�)‰)×
Ñ
 Ó
%€CØ�D€A€qØ�	‰	�!�Q‹˜#Ñ€AØ€c€rƒFŒb�h‰h’yÓ!Ñ!ƒFØ	ˆs�y‰y˜˜A‹Ñ	¤§¡ª)Ó!4Ñ	4€Bô
 
 QÔ	'×	+Ñ	+¨AÓ	.×	8Ñ	8¸Ó	<€Bð Œ"�'‰'�2�q‘5—+‘+“-Ó
 Ñ €Bô œŸ™˜r !™u Q™xÓ(¨#¨qÕ1r2   c                  ó8  — t         j                  j                  d«      } d\  }}| j                  ||«      }|d d …dfxx   dz  cc<   |g d¢z  }t	        dd¬«      j                  |«      }|j                  |«      }|j                  |«      }t        ||d	¬
«       y )Nr>   ©é2   r   r   çñhãˆµøä>©rB   rA   r   r   r@   r   r   ©Údecimal)	r!   rD   rE   rF   r   r%   rH   Úinverse_transformr	   )rK   rL   rM   r*   r+   ÚYÚ	Y_inverses          r0   Útest_incremental_pca_inverser[   n   sŒ   € ä
�)‰)×
Ñ
 Ó
%€CØ�D€A€qØ�	‰	�!�Q‹€AØ‚aˆ€dƒGˆwÑƒGØŠ�N€Aô  q°RÔ8×<Ñ<¸QÓ?€DØ�‰�qÓ€AØ×&Ñ& qÓ)€IÜ˜˜9¨aÖ0r2   c                  ó¼  — t        j                  g d¢g d¢g«      } | j                  \  }}d}t        j                  t
        dj                  ||«      ¬«      5  t        |d¬«      j                  | «       d d d «       d}t        j                  t
        d	|› d
|› d�¬«      5  t        |¬«      j                  | «       d d d «       y # 1 sw Y   ŒRxY w# 1 sw Y   y xY w)N)r   r   r   )r   r   r   rA   zdn_components={} invalid for n_features={}, need more rows than columns for IncrementalPCA processingr5   r@   r   r   zn_components=z6 must be less or equal to the batch number of samples z  for the first partial_fit call.r   )
r!   rG   r   r7   r8   Ú
ValueErrorÚformatr   r%   r:   )r*   Ú	n_samplesÚ
n_featuresr   s       r0   Útest_incremental_pca_validationra   ~   sÚ   € ä
�‰’)šYÐ'Ó(€AØŸG™GÑ€IˆzØ€LÜ	�‰Üð÷ !™& ¨zÓ:ô
ñ 	;ô 	�|°Ô3×7Ñ7¸Ô:÷	;ð €LÜ	�‰Üà˜L˜>ð *!Ø!* Ð+KðMô
ñ Aô 	 LÔ1×=Ñ=¸aÔ@÷Að A÷	;ð 	;ú÷Að Aús   ÁCÂ!CÃCÃCc                  óä  — t        d¬«      } t        j                  «       5  t        j                  dt        «       | j                  t        j                  j                  dd«      «       d d d «       t        j                  «       5  t        j                  dt        «       | j                  t        j                  j                  dd«      «       d d d «       y # 1 sw Y   ŒpxY w# 1 sw Y   y xY w)NrB   r   Úerroré   )
r   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr:   r!   rD   rF   r%   )r+   s    r0   Ú!test_n_samples_equal_n_componentsri   š   s¯   € ô  qÔ)€DÜ	×	 Ñ	 Ó	"ñ 0Ü×Ñ˜g¤~Ô6Ø×ÑœŸ™Ÿ™¨¨AÓ.Ô/÷0ô 
×	 Ñ	 Ó	"ñ (Ü×Ñ˜g¤~Ô6Ø�‰”—‘—‘  AÓ&Ô'÷(ð (÷0ð 0ú÷(ð (ús   ¡A
CÂA
C&ÃC#Ã&C/c                  ón  — t         j                  j                  d«      } dD ]‘  \  }}| j                  ||«      }t	        d ¬«      }|j                  |«       |j                  t        |j                  «      k(  sJ ‚|j                  |«       |j                  |j                  j                  d   k(  rŒ‘J ‚ y )Nr>   ))rS   r@   )r@   rS   r   r   )
r!   rD   rE   Úrandr   r:   Ún_components_Úminr   Úcomponents_)rK   r_   r`   r*   r+   s        r0   Útest_n_components_nonero   ¦   s¥   € ä
�)‰)×
Ñ
 Ó
%€CØ!5ò ?Ñˆ	�:Ø�H‰H�Y 
Ó+ˆÜ¨4Ô0ˆð 	×Ñ˜ÔØ×!Ñ!¤S¨¯©£\Ò1Ð1Ð1ð 	×Ñ˜ÔØ×!Ñ! T×%5Ñ%5×%;Ñ%;¸AÑ%>Ó>Ð>Ð>ñ?r2   c                  óz  — t         j                  j                  d«      } d}d}| j                  ||«      }| j                  ||«      }| j                  ||«      }t	        d¬«      }|j                  |«       |j                  d¬«       t        j                  t        «      5  |j                  |«       d d d «       |j                  d¬«       t        j                  t        «      5  |j                  |«       d d d «       |j                  d¬«       |j                  |«       y # 1 sw Y   ŒrxY w# 1 sw Y   Œ9xY w)Nr>   r?   é   r   r@   é   )r!   rD   rE   rF   r   r%   Ú
set_paramsr7   r8   r]   r:   )rK   r_   r`   r*   ÚX2ÚX3r+   s          r0   Útest_incremental_pca_set_paramsrv   ¸   sÿ   € ä
�)‰)×
Ñ
 Ó
%€CØ€IØ€JØ�	‰	�)˜ZÓ(€AØ	�‰�9˜jÓ	)€BØ	�‰�9˜jÓ	)€BÜ rÔ*€DØ‡H�HˆQ„Kà‡O�O €OÔ$Ü	�‰”zÓ	"ñ Ø×Ñ˜Ô÷ð 	‡O�O €OÔ$Ü	�‰”zÓ	"ñ Ø×Ñ˜Ô÷ð 	‡O�O €OÔ$Ø×Ñ�QÕ÷ð ú÷ð ús   Â"D%Ã'D1Ä%D.Ä1D:c                  óF  — t         j                  j                  d«      } d}| j                  |d«      }| j                  |d«      }t	        d ¬«      }|j                  |«       t        j                  t        «      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Nr>   r?   rq   rS   r   )
r!   rD   rE   rF   r   r%   r7   r8   r]   r:   )rK   r_   r*   rt   r+   s        r0   Ú(test_incremental_pca_num_features_changerx   Ï   s   € ä
�)‰)×
Ñ
 Ó
%€CØ€IØ�	‰	�)˜RÓ €AØ	�‰�9˜bÓ	!€BÜ tÔ,€DØ‡H�HˆQ„KÜ	�‰”zÓ	"ñ Ø×Ñ˜Ô÷÷ ñ ús   Á<BÂB c                  ó¶  — t         j                  j                  d«      } d}d}| j                  ||«      }g }t        j                  dd«      }|D ]9  }t        d |¬«      j                  |«      }|j                  |j                  «       Œ; t        |d d |dd  «      D ]9  \  }}	t        t        j                  |«      t        j                  |	«      d	¬
«       Œ; y )Nr>   r?   r   r@   rq   r   éÿÿÿÿr   é   rV   )r!   rD   rE   rF   Úaranger   r%   Úappendrn   Úzipr	   Úsign©
rK   r_   r`   r*   Úall_componentsÚbatch_sizesr   r+   ÚiÚjs
             r0   Ú test_incremental_pca_batch_signsr…   Û   sÅ   € ä
�)‰)×
Ñ
 Ó
%€CØ€IØ€JØ�	‰	�)˜ZÓ(€AØ€NÜ—)‘)˜B Ó#€KØ!ò 0ˆ
Ü¨4¸JÔG×KÑKÈAÓNˆØ×Ñ˜d×.Ñ.Õ/ð0ô �N 3 BÐ'¨¸¸Ð);Ó<ò ?‰ˆˆ1ÜœBŸG™G A›J¬¯©°«
¸AÖ>ñ?r2   c                  ó²  — t         j                  j                  d«      } d\  }}| j                  ||«      }|d d …dfxx   dz  cc<   |g d¢z  }|}t	        |¬«      }|j                  |d | «       t        ||«      D ]  }|j                  |||dz    «       Œ t        |¬«      }|j                  |«       t        |j                  |j                  d¬«       y )	Nr>   rR   r   rT   rU   r   r   r   )r!   rD   rE   rF   r   r:   Úranger   r%   r   rn   )rK   rL   rM   r*   r   ÚpipcaÚidxr,   s           r0   Ú,test_incremental_pca_partial_fit_small_batchrŠ   ë   sË   € ô �)‰)×
Ñ
 Ó
%€CØ�D€A€qØ�	‰	�!�Q‹€AØ‚aˆ€dƒGˆwÑƒGØŠ�N€Aà€LÜ¨Ô5€EØ	×Ñ�a˜˜Ð&Ô'Ü�\ 1Ó%ò ,ˆØ×Ñ˜!˜C #¨¡'Ð*Õ+ð,ô ˜<Ô
(€CØ‡G�GˆA„Jä�C—O‘O U×%6Ñ%6¸TÖBr2   c                  ól  — t         j                  j                  d«      } d}d}| j                  ||«      }g }t        j                  ddd«      }|D ]9  }t        d |¬«      j                  |«      }|j                  |j                  «       Œ; t        |d d |dd  «      D ]  \  }}	t        ||	d¬	«       Œ y )
Nr>   r?   r   rq   é(   r   rz   r   rV   )r!   rD   rE   rF   r|   r   r%   r}   rn   r~   r	   r€   s
             r0   Ú!test_incremental_pca_batch_valuesr�      s·   € ä
�)‰)×
Ñ
 Ó
%€CØ€IØ€JØ�	‰	�)˜ZÓ(€AØ€NÜ—)‘)˜B  AÓ&€KØ!ò 0ˆ
Ü¨4¸JÔG×KÑKÈAÓNˆØ×Ñ˜d×.Ñ.Õ/ð0ô �N 3 BÐ'¨¸¸Ð);Ó<ò -‰ˆˆ1Ü˜A˜q¨!Ö,ñ-r2   c                  óh  — t         j                  j                  d«      } d}d}| j                  ||«      }g }t        j                  ddd«      }|D ]9  }t        d|¬«      j                  |«      }|j                  |j                  «       Œ; t        |d d |dd  «      D ]  \  }}	t        ||	«       Œ y )	Nr>   r?   rq   éZ   r   r   rz   r   )r!   rD   rE   rF   r|   r   r%   r}   rn   r~   r   )
rK   r_   r`   r*   r�   r‚   r   r+   Úcomponents_iÚcomponents_js
             r0   Útest_incremental_pca_batch_rankr’     s¸   € ä
�)‰)×
Ñ
 Ó
%€CØ€IØ€JØ�	‰	�)˜ZÓ(€AØ€NÜ—)‘)˜B  AÓ&€KØ!ò 0ˆ
Ü¨2¸*ÔE×IÑIÈ!ÓLˆØ×Ñ˜d×.Ñ.Õ/ð0ô '*¨.¸¸"Ð*=¸~ÈaÈbÐ?QÓ&Rò AÑ"ˆ�lÜ$ \°<Õ@ñAr2   c                  óÖ  — t         j                  j                  d«      } d\  }}| j                  ||«      }|d d …dfxx   dz  cc<   |g d¢z  }d}t	        d|¬«      j                  |«      }t	        d|¬«      }t        j                  d	|dz   |«      }t        |d d
 |dd  «      D ]  \  }}	|j                  |||	…d d …f   «       Œ! t        |j                  |j                  d¬«       y )Nr>   rR   r   rT   rU   r@   r   r   r   rz   r   rV   )r!   rD   rE   rF   r   r%   r|   r~   r:   r	   rn   )
rK   rL   rM   r*   r   r+   rˆ   Ú	batch_itrrƒ   r„   s
             r0   Ú test_incremental_pca_partial_fitr•      sá   € ä
�)‰)×
Ñ
 Ó
%€CØ�D€A€qØ�	‰	�!�Q‹€AØ‚aˆ€dƒGˆwÑƒGØŠ�N€Að €JÜ q°ZÔ@×DÑDÀQÓG€DÜ¨°jÔA€Eä—	‘	˜!˜Q ™U JÓ/€IÜ�I˜c˜r�N I¨a¨b MÓ2ò %‰ˆˆ1Ø×Ñ˜!˜A˜a˜C¢˜F™)Õ$ð%ä˜×(Ñ(¨%×*;Ñ*;ÀQÖGr2   c                  óø   — t         j                  } t        d¬«      j                  | «      }t	        dd¬«      j                  | «      }t        t        j                  |«      t        j                  |«      d«       y )Nr   r   é   r   r   )r   r   r   r    r   r	   r!   rJ   )r*   ÚY_pcaÚY_ipcas      r0   Ú%test_incremental_pca_against_pca_irisrš   4  sS   € ä�	‰	€Aä˜QÔ×-Ñ-¨aÓ0€EÜ¨°rÔ:×HÑHÈÓK€FäœŸ™˜u›¤r§v¡v¨f£~°qÕ9r2   c                  ón  — t         j                  j                  d«      } d}d}| j                  ||«      d| j	                  d|«      z  z   }t        d¬«      j                  |«      }t        dd¬«      j                  |«      }t        t        j                  |«      t        j                  |«      d«       y )	Nr>   r?   r   rB   r   r   r—   r   )
r!   rD   rE   rF   rk   r   r    r   r	   rJ   )rK   r_   r`   r*   r˜   r™   s         r0   Ú,test_incremental_pca_against_pca_random_datarœ   >  s�   € ä
�)‰)×
Ñ
 Ó
%€CØ€IØ€JØ�	‰	�)˜ZÓ(¨1¨s¯x©x¸¸:Ó/FÑ+FÑF€Aä˜QÔ×-Ñ-¨aÓ0€EÜ¨°rÔ:×HÑHÈÓK€FäœŸ™˜u›¤r§v¡v¨f£~°qÕ9r2   c                  ó¢  — t        j                  ddddd¬«      } d}| j                  \  }}dD ]Ÿ  }t        |¬	«      j	                  | «      }t        |d¬
«      j	                  | «      }t        |j                  |j                  |¬«       t        |j                  |j                  |¬«       t        |j                  |j                  |¬«       Œ¡ y )Néè  r?   ç        r@   r>   ©Útail_strengthÚeffective_rankÚrandom_stater   )Néc   r   r   rV   )
r   Úmake_low_rank_matrixr   r   r%   r   r	   Úexplained_variance_r#   Únoise_variance_)r*   Úprecr_   r`   Úncr,   r+   s          r0   Útest_explained_variancesrª   K  sÂ   € ä×%Ñ%Øˆc °RÀdô	€Að €DØŸG™GÑ€IˆzØò 	UˆÜ˜rÔ"×&Ñ& qÓ)ˆÜ¨2¸#Ô>×BÑBÀ1ÓEˆÜØ×#Ñ# T×%=Ñ%=Àtõ	
ô 	Ø×)Ñ)¨4×+IÑ+IÐSWõ	
ô 	˜C×/Ñ/°×1EÑ1EÈtÖTñ	Ur2   c            	      ó  — t         j                  j                  d«      } d}d}t        j                  ||dd| ¬«      }t        dd| ¬«      j                  |«      }t        dd¬	«      j                  |«      }t        |j                  |j                  d
«       |j                  |«      }|j                  |«      }t        t        j                  |j                  dz  «      t         j                  j                  |d«      dz  d«       t        t        j                  |j                  dz  «      t         j                  j                  |d«      dz  d
«       t        |j                  t        j                  t        j                  |dz  d¬«      «      d«       t        |j                  t        j                  t        j                  |dz  d¬«      «      d
«       t         j                  j                  d«      } d}d}t        j                  ||dd| ¬«      }t        dd| ¬«      }t        dd¬	«      }|j                  |«      }|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"                  «      }|j                  |«       |j                  |«       t        |j                  g d¢d«       t        |j                  g d¢d«       y )Nr   rž   r?   rŸ   r@   r    Úfull)r   Ú
svd_solverr£   r   r   g       @Úfroé   )Úaxisén   r   ç‰A`åÐ"	@r   çX9´Èv¾@)r²   r³   rC   é   )r!   rD   rE   r   r¥   r   r%   r   r
   Úsingular_values_rH   r$   ÚlinalgÚnormrI   r    r(   rn   )	rK   r_   r`   r*   r,   r+   ÚX_pcaÚX_ipcaÚX_hats	            r0   Útest_singular_valuesr»   ^  st  € ô �)‰)×
Ñ
 Ó
"€CØ€IØ€Jä×%Ñ%Ø�:¨SÀÐRUô	€Aô ˜2¨&¸sÔ
C×
GÑ
GÈÓ
J€CÜ r°cÔ:×>Ñ>¸qÓA€DÜ˜c×2Ñ2°D×4IÑ4IÈ1ÔMð �M‰M˜!Ó€EØ�^‰^˜AÓ€FÜÜ
�‰ˆs×#Ñ# SÑ(Ó)¬2¯9©9¯>©>¸%ÀÓ+GÈ3Ñ+NÐPRôô Ü
�‰ˆt×$Ñ$ cÑ)Ó*¬B¯I©I¯N©N¸6À5Ó,IÈSÑ,PÐRSôô
 Ø×ÑœbŸg™g¤b§f¡f¨U°C©Z¸aÔ&@ÓAÀ2ôô Ø×ÑœrŸw™w¤r§v¡v¨f°c©kÀÔ'BÓCÀQôô
 �)‰)×
Ñ
 Ó
"€CØ€IØ€Jä×%Ñ%Ø�:¨SÀÐQTô	€Aô ˜1¨¸cÔ
B€CÜ q°SÔ9€Dà×Ñ˜aÓ €EØ	ŒR�W‰W”R—V‘V˜E 3™J¨QÔ/Ó0Ñ0€EØ	Š!ˆQˆ$ƒK�5ÑƒKØ	Š!ˆQˆ$ƒK�5ÑƒKä�F‰F�5˜#Ÿ/™/Ó*€EØ‡G�GˆE„NØ‡H�HˆU„OÜ˜c×2Ñ2Ò4GÈÔLÜ˜d×3Ñ3Ò5HÈ"ÕMr2   c                 ó:  — t        j                  dddd| ¬«      }d}dD ]ú  }t        d|¬	«      j                  |«      }t	        d|d
¬«      j                  |«      }|j
                  dkD  }|j                  |«      }|j                  |«      }t        t        j                  |«      d d …|f   t        j                  |«      d d …|f   |¬«       |j                  |«      }	|j                  |«      }
t        ||	|¬«       t        ||
|¬«       t        |
|	|¬«       Œü y )Nrž   r@   rŸ   r   r    r   )Né	   T)Úwhitenr   éú   )r¾   r   r   gê-�™—q=r   )r   r¥   r   r%   r   r#   rH   r   r!   rJ   rX   )Úglobal_random_seedr*   r   r©   r,   r+   Ústable_maskÚXt_pcaÚXt_ipcaÚ	Xinv_ipcaÚXinv_pcas              r0   Útest_whiteningrÆ   —  s  € ä×%Ñ%Øˆb °AÐDVô	€Að €DØò 8ˆÜ˜¨BÔ/×3Ñ3°AÓ6ˆÜ T¸ÀsÔK×OÑOÐPQÓRˆð ×3Ñ3°eÑ;ˆà—‘˜qÓ!ˆØ—.‘. Ó#ˆÜÜ�F‰F�6‹Nš1˜k˜>Ñ*Ü�F‰F�7‹OšA˜{˜NÑ+Øõ	
ð ×*Ñ*¨7Ó3ˆ	Ø×(Ñ(¨Ó0ˆÜ˜˜9¨4Õ0Ü˜˜8¨$Õ/Ü˜ )°$Ö7ñ38r2   c                  óò  — t         j                  j                  d«      } | j                  dd«      dz   }| j                  dd«      dz   }t	        d¬«      }|j                  |«       t        |j                  «      |_        |j                  |«       |j                  }t	        d¬«      }|j                  |«       |j                  |«       |j                  }t         j                  j                  ||«       y )Nr   rB   r   r   rd   r   )r!   rD   rE   rF   r   r:   ÚfloatÚn_samples_seen_rµ   r"   r   )rK   ÚAÚBr,   Ú singular_vals_float_samples_seenÚpca2Úsingular_vals_int_samples_seens          r0   Ú/test_incremental_pca_partial_fit_float_divisionrÏ   ¹  sË   € ô �)‰)×
Ñ
 Ó
"€CØ�	‰	�!�Q‹˜!Ñ€AØ�	‰	�!�Q‹˜!Ñ€Aä
 aÔ
(€CØ‡O�O�AÔä × 3Ñ 3Ó4€CÔØ‡O�O�AÔØ'*×';Ñ';Ð$ä qÔ)€DØ×Ñ�QÔØ×Ñ�QÔØ%)×%:Ñ%:Ð"ä‡J�J×ÑØ(Ð*Hõr2   c                  óD  — t         j                  j                  d«      } | j                  dd«      }t	        dd¬«      }|j                  |«       t        d¬«      }|j                  |«       t         j                  j                  |j                  |j                  «       y )Nr   i ¡ r   i'  r   r   )
r!   rD   rE   rk   r   r%   r   r"   r   rµ   )rK   rÊ   r+   r,   s       r0   Ú'test_incremental_pca_fit_overflow_errorrÑ   Ò  st   € ô �)‰)×
Ñ
 Ó
"€CØ�‰�˜Ó€Aä q°UÔ;€DØ‡H�HˆQ„Kä
˜1Ô
€CØ‡G�GˆA„Jä‡J�J×Ñ˜t×4Ñ4°c×6JÑ6JÕKr2   c                  óÌ   — t        d¬«      j                  t        j                  «      } | j	                  «       }t        t        d«      D �cg c]  }d|› �‘Œ	 c}|«       yc c}w )z+Check feature names out for IncrementalPCA.r   r   ÚincrementalpcaN)r   r%   r   r   Úget_feature_names_outr   r‡   )r+   Únamesrƒ   s      r0   Ú&test_incremental_pca_feature_names_outrÖ   á  sL   € ä qÔ)×-Ñ-¬d¯i©iÓ8€Dà×&Ñ&Ó(€EÜ´e¸A³hÖ?°˜.¨¨Ò,Ò?ÀÕGùÒ?s   ÁA!)/Ú__doc__re   Únumpyr!   r7   Únumpy.testingr   r   Úsklearnr   Úsklearn.decompositionr   r   Úsklearn.utils._testingr   r	   r
   Úsklearn.utils.fixesr   r   r   Ú	load_irisr   r1   ÚmarkÚparametrizer<   rP   r[   ra   ri   ro   rv   rx   r…   rŠ   r�   r’   r•   rš   rœ   rª   r»   rÆ   rÏ   rÑ   rÖ   © r2   r0   ú<module>râ      sã   ðÙ  ã ã Û ß =å ß 5÷ñ ÷
 OÑ Nà€x×ÑÓ€ò
ð6 ‡�×ÑØ˜¨Ñ7¸.ÑHóñ##óð##òL2ò*1ò Aò8	(ò?ò$ò.	ò?ò Cò*-ò Aò Hò(:ò
:òUò&6Nòr8òDò2LóHr2   