Ë
    ÷Q(hwY  ã                   ó   — 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	m
Z
mZ d dlmZ d dlmZmZmZ d dlmZ d dlmZ d d	lmZmZmZmZmZ d d
lmZ  ej<                  ddgddgddgddgddgddggd¬«      Z ej<                  g d¢«      Z  ej<                  g d¢«      Z! ej<                  dgdgdgdgdgdggd¬«      Z" ej<                  d d gddgddgddgddgddgddgddgddgg	«      Z# ej<                  g d¢«      Z$ ej<                  g d¢«      Z% ej<                  dgdgdgdgd gdgdgdgdgg	«      Z& ej<                  dd gdd gdd gdd gd d gdd gdd gdd gdd gg	«      Z' ej<                  g d¢«      Z(ejR                   ejT                  d«       ejV                  d«      f   Z, ej<                  g d¢«      Z-g d¢Z.d„ Z/ej`                  jc                  dddg«      ej`                  jc                  dg d¢«      d „ «       «       Z2d!„ Z3d"„ Z4d#„ Z5d$„ Z6d%„ Z7d&„ Z8d'„ Z9ej`                  jc                  d( e:d)«      «      d*„ «       Z;d+„ Z<ej`                  jc                  d,dd-g«      ej`                  jc                  dd-dg«      d.„ «       «       Z=ej`                  jc                  d/ej|                  ej|                  fej~                  ej~                  fej€                  ej~                  fej‚                  ej~                  fg«      d0„ «       ZBd1„ ZCd2„ ZDd3„ ZEej`                  jc                  d4g d5¢«      d6„ «       ZFd7„ ZGd8„ ZHej`                  j“                  ed9¬:«      d;„ «       ZJd<„ ZKej`                  jc                  dg d¢«      d=„ «       ZLd>„ ZMy)?é    N)Úlinalg)ÚKMeans)Ú
LedoitWolfÚShrunkCovarianceÚledoit_wolf)Ú
make_blobs)ÚLinearDiscriminantAnalysisÚQuadraticDiscriminantAnalysisÚ_cov)ÚStandardScaler)Úcheck_random_state)Ú_convert_containerÚassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equal)Ú_IS_WASMéþÿÿÿéÿÿÿÿé   é   Úf©Údtype)r   r   r   r   r   r   )r   r   r   r   é   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   éýÿÿÿ)	r   r   r   r   r   r   r   r   r   é   )r   r   )r   r   r   r   r   r   r   r   )	)ÚsvdN)ÚlsqrN)ÚeigenN)r   Úauto)r   r   )r   ç…ëQ¸…Û?)r    r!   )r    r   )r    r"   c            	      ó¸  — t         D �][  } | \  }}t        ||¬«      }|j                  t        t        «      j                  t        «      }t        |t        d|z  «       |j                  t        t        «      j                  t        «      }t        |t        d|z  «       |j                  t        «      }t        |d d …df   dkD  dz   t        d|z  «       |j                  t        «      }t        t        j                  |«      |ddd|z  ¬«       |j                  t        t        «      j                  t        «      }t        j                  |t        k7  «      r�ŒTJ d|z  «       ‚ t        dd¬«      }t        j                   t"        «      5  |j                  t        t        «       d d d «       t        d	d
t%        «       ¬«      }t        j                   t&        d¬«      5  |j                  t        t        «       d d d «       t        dt)        «       ¬«      }t        j                   t&        d¬«      5  |j                  t        t        «       d d d «       t        d	t+        dd¬«      ¬«      }t        j                   t&        «      5  |j                  t        t        «       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   Œ¾xY w# 1 sw Y   ŒwxY w# 1 sw Y   y xY w)N©ÚsolverÚ	shrinkagez	solver %sr   ç      à?ç�íµ ÷Æ°>)ÚrtolÚatolÚerr_msgr   r!   r   çš™™™™™¹?)r%   r&   Úcovariance_estimatorz[covariance_estimator and shrinkage parameters are not None. Only one of the two can be set.©Úmatch)r%   r-   z.covariance estimator is not supported with svdr   )Ú
n_clustersÚn_init)Úsolver_shrinkager	   ÚfitÚXÚyÚpredictr   ÚX1Úpredict_probaÚpredict_log_probar   ÚnpÚexpÚy3ÚanyÚpytestÚraisesÚNotImplementedErrorr   Ú
ValueErrorr   r   )	Ú	test_caser%   r&   ÚclfÚy_predÚy_pred1Úy_proba_pred1Úy_log_proba_pred1Úy_pred3s	            úf/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/tests/test_discriminant_analysis.pyÚtest_lda_predictrJ   H   sK  € ô &ó ;ˆ	Ø%Ñˆ�	Ü(°À)ÔLˆØ—‘œœA“×&Ñ&¤qÓ)ˆÜ˜6¤1 k°FÑ&:Ô;ð —'‘'œ"œa“.×(Ñ(¬Ó,ˆÜ˜7¤A {°VÑ';Ô<ð ×)Ñ)¬"Ó-ˆÜ˜Mª!¨Q¨$Ñ/°#Ñ5¸Ñ:¼A¸{ÈVÑ?SÔTØ×1Ñ1´"Ó5ÐÜÜ�F‰FÐ$Ó%ØØØØ &Ñ(õ	
ð —'‘'œ!œR“.×(Ñ(¬Ó+ˆä�v‰v�g¤‘mÖ$Ð: k°FÑ&:Ó:Ð$ð3;ô6 %¨E¸VÔ
D€CÜ	�‰Ô*Ó	+ñ Ø�‰””1Œ÷ô %Ø Ô;KÓ;Mô€Cô 
�‰Üð.ô
ñ ð 	�‰””1Œ÷ô %¨EÌ
ËÔ
U€CÜ	�‰ÜÐJô
ñ ð 	�‰””1Œ÷ô %Ø¬F¸aÈÔ,Oô€Cô 
�‰”zÓ	"ñ Ø�‰””1Œ÷ð ÷7ñ ú÷ð ú÷ð ú÷ð ús0   ÆJ+Ç J8È3KÊKÊ+J5Ê8KËKËKÚ	n_classesr%   ©r   r   r    c                 ó„  — dd„}t        j                  ddgddgddgg«      d | }t        j                  ddgddgggt        |«      z  «      } |d	||d
¬«      \  }}t        | dd ¬«      j	                  ||«      }t        |j                  |d¬«       t        |j                  |d   d¬«       t        j                  |d   «      }g }	g }
t        t        |«      dz
  «      D ]Ž  }|	j                  t        j                  |||   |d   z
  d d …t         j                  f   «      «       |
j                  t        j                  d||   |d   z   t         j                  d d …f   z  |	d   «      «       Œ� t        j                  ddgg«      }d„ }t        j                  t        |dz
  «      D �cg c]H  }t         |||	|
|«      dt        t        |dz
  «      D �cg c]  } |||	|
|«      ‘Œ c}«      z   z  «      ‘ŒJ c}«      }dt        j                  |«      z
  }t        ddt        t        |dz
  «      D �cg c]  } |||	|
|«      ‘Œ c}«      z   z  «      }|t!        j"                  |«      k(  sJ ‚t        |j%                  |«      t        j&                  ||g«      t         j                     d¬«       y c c}w c c}w c c}w )Nc                 ó`  — t        |«      }t        j                  t        ||«      D ��cg c]%  \  }}|j	                  ||| t        |«      z  ¬«      ‘Œ' c}}«      }t        j                  t        t        |«      «      D �cg c]  }|g| t        |«      z  z  ‘Œ c}«      }	||	fS c c}}w c c}w )zNGenerate a multivariate normal data given some centers and
        covariances©Úsize)r   r:   ÚvstackÚzipÚmultivariate_normalÚlenÚhstackÚrange)
Ú	n_samplesÚcentersÚcovariancesÚrandom_stateÚrngÚmeanÚcovr4   Úclazzr5   s
             rI   Úgenerate_datasetz0test_lda_predict_proba.<locals>.generate_datasetŠ   s§   € ô ! Ó.ˆÜ�I‰Iô "% W¨kÓ!:÷á�D˜#ð ×'Ñ'¨¨c¸	ÄSÈÃ\Ñ8QÐ'ÕRóó
ˆô �I‰IÜ@EÄcÈ'ÃlÓ@SÖT°uˆeˆW˜	¤S¨£\Ñ1Ó2ÒTó
ˆð �!ˆtˆùóùò Us   ª*B%
ÂB+r   éöÿÿÿé(   iâÿÿÿé   é
   éd   i�_ é*   )rW   rX   rY   rZ   T)r%   Ústore_covariancer&   r,   )r*   r   r   ç      à¿iêÿÿÿé   c                 ó‚   — t        j                  ||   t        j                  | ||   «      z   «      j                  «       S ©N)r:   r;   ÚdotÚitem)ÚsampleÚcoefÚ	interceptr^   s       rI   Údiscriminant_funcz1test_lda_predict_proba.<locals>.discriminant_func¹   s3   € Ü�v‰v�i Ñ&¬¯©°¸¸U¹Ó)DÑDÓE×JÑJÓLÐLó    ç{®Gáz„?rj   )r:   ÚarrayrT   r	   r3   r   Úmeans_Úcovariance_r   ÚinvrV   Úappendrk   ÚnewaxisÚfloatÚsumr>   Úapproxr8   rU   )r%   rK   r_   Úblob_centersÚ	blob_stdsr4   r5   ÚldaÚ	precisionÚalpha_kÚ	alpha_k_0r^   rm   rp   ÚprobÚprob_refÚ
prob_ref_2s                    rI   Útest_lda_predict_probar…   ‡   sÔ  € óô —8‘8˜a ˜V c¨2 Y°°b°	Ð:Ó;¸J¸YÐG€LÜ—‘˜B ˜8 b¨# YÐ/Ð0´3°|Ó3DÑDÓE€IÙØ ¸9ÐSUô�D€A€qô %Ø¨¸ôç	�cˆ!ˆQƒið ô
 �C—J‘J °4Õ8Ü�C—O‘O Y¨q¡\¸Õ:ô
 —
‘
˜9 Q™<Ó(€IØ€GØ€IÜ”s˜<Ó(¨1Ñ,Ó-ò 	
ˆØ�‰Ü�F‰F�9˜|¨EÑ2°\À"Ñ5EÑEÂqÌ"Ï*É*À}ÑUÓVô	
ð 	×ÑÜ�F‰FØ˜ UÑ+¨l¸2Ñ.>Ñ>ÄÇ
Á
ÊAÀÑNÑNØ˜‘óõ	
ð		
ô �X‰X˜˜R�y�kÓ"€FòMô �8‰8ô ˜y¨1™}Ó-ö	
ð ô Ù! &¨'°9¸eÓDàÜô */¨y¸1©}Ó)=öà %ñ .¨f°g¸yÈ%ÕPòóññ	õò	
ó€Dð$ ”2—6‘6˜$“<Ñ€Hô Ø	àÜô "' y°1¡}Ó!5öàñ & f¨g°yÀ%ÕHòóññ		
ó€Jð ”v—}‘} ZÓ0Ò0Ð0Ð0ô Ø×Ñ˜&Ó!¤2§9¡9¨d°HÐ-=Ó#>¼r¿z¹zÑ#JÐQUöùò?ùò	
ùò4s   Æ,*J8ÇJ3Ç(J8È4J=Ê3J8c                  ód  — t        j                  ddg«      } t        | ¬«      }d}t        j                  t
        |¬«      5  |j                  t        t        «       d d d «       t        ddg¬«      }|j                  t        t        «       t        j                  ddg«      } t        j                  ddg«      }t        | ¬«      }t        j                  t        «      5  |j                  t        t        «       d d d «       t        |j                  |d	«       y # 1 sw Y   Œ¿xY w# 1 sw Y   Œ-xY w)
Nr'   rg   ©Úpriorszpriors must be non-negativer.   ç333333ã?çÍÌÌÌÌÌÜ?gš™™™™™á?r   )r:   rs   r	   r>   r?   rA   r3   r4   r5   ÚwarnsÚUserWarningr   Úpriors_)rˆ   rC   ÚmsgÚ
prior_norms       rI   Útest_lda_priorsr�   ç   sà   € ä�X‰X�s˜D�kÓ"€FÜ
$¨FÔ
3€CØ
'€Cä	�‰”z¨Ô	-ñ Ø�‰””1Œ÷ô
 %¨S°#¨JÔ
7€CØ‡G�GŒAŒq„Mô �X‰X�s˜C�jÓ!€FÜ—‘˜4 ˜,Ó'€JÜ
$¨FÔ
3€Cä	�‰”kÓ	"ñ Ø�‰””1Œ÷ô ˜cŸk™k¨:°qÕ9÷!ð ú÷ð ús   ÁDÃD&ÄD#Ä&D/c                  ó®  — d} d}d}t        || |d¬«      \  }}t        d¬«      }t        d¬«      }t        d¬«      }|j                  ||«       |j                  ||«       |j                  ||«       t        |j                  |j                  d	«       t        |j                  |j                  d	«       t        |j                  |j                  d	«       y )
Nr   iè  é   ©rW   Ú
n_featuresrX   rZ   r   ©r%   r   r    r   )r   r	   r3   r   Úcoef_)r”   rK   rW   r4   r5   Úclf_lda_svdÚclf_lda_lsqrÚclf_lda_eigens           rI   Útest_lda_coefsrš      s¿   € à€JØ€IØ€IÜØ¨
¸IÐTVô�D€A€qô -°EÔ:€KÜ-°VÔ<€LÜ.°gÔ>€Mà‡O�O�A�qÔØ×Ñ�Q˜ÔØ×Ñ�a˜Ôä˜k×/Ñ/°×1CÑ1CÀQÔGÜ˜k×/Ñ/°×1DÑ1DÀaÔHÜ˜m×1Ñ1°<×3EÑ3EÀqÕIrq   c                  ó  — t        dd¬«      } | j                  t        t        «      j	                  t        «      }|j
                  d   dk(  sJ ‚t        dd¬«      } | j                  t        t        «      j	                  t        «      }|j
                  d   dk(  sJ ‚t        dd¬«      } | j                  t        t        «       d}t        j                  t        |¬«      5  | j	                  t        «       d d d «       y # 1 sw Y   y xY w)Nr   r   )r%   Ún_componentsr    r   z$transform not implemented for 'lsqr'r.   )	r	   r3   r4   r5   Ú	transformÚshaper>   r?   r@   )rC   ÚX_transformedrŽ   s      rI   Útest_lda_transformr      sÎ   € ä
$¨EÀÔ
B€CØ—G‘GœAœq“M×+Ñ+¬AÓ.€MØ×Ñ˜qÑ! QÒ&Ð&Ð&Ü
$¨GÀ!Ô
D€CØ—G‘GœAœq“M×+Ñ+¬AÓ.€MØ×Ñ˜qÑ! QÒ&Ð&Ð&ä
$¨FÀÔ
C€CØ‡G�GŒAŒq„MØ
0€Cä	�‰Ô*°#Ô	6ñ Ø�‰”aÔ÷÷ ñ ús   Ã!D Ä D	c                  ó^  — t         j                  j                  d«      } | j                  ddd¬«      }| j	                  ddd¬«      }t        d¬	«      }|j                  ||«       t        |j                  j                  «       d
d«       |j                  j                  dk(  sJ d«       ‚t        d¬	«      }|j                  ||«       t        |j                  j                  «       d
d«       |j                  j                  dk(  sJ d«       ‚t        |j                  |j                  «       y )Nr   rd   )ra   é   )ÚlocÚscalerP   r   )ra   rO   r    r•   ç      ð?)r   z/Unexpected length for explained_variance_ratio_r   )r:   ÚrandomÚRandomStateÚnormalÚrandintr	   r3   r   Úexplained_variance_ratio_rz   rž   r   )Ústater4   r5   r™   r—   s        rI   Ú!test_lda_explained_variance_ratior¬   '  s  € ô �I‰I×!Ñ! !Ó$€EØ�‰˜ #¨HˆÓ5€AØ�‰�a˜ ˆÓ'€Aä.°gÔ>€MØ×Ñ�a˜ÔÜ˜×?Ñ?×CÑCÓEÀsÈAÔNØ×2Ñ2×8Ñ8ð =ò ð 9à8ó9ð ô -°EÔ:€KØ‡O�O�A�qÔÜ˜×=Ñ=×AÑAÓCÀSÈ!ÔLØ×0Ñ0×6Ñ6ð ;ò ð 9à8ó9ð ô Ø×-Ñ-¨}×/VÑ/Võrq   c            	      óV  — t        j                  g d¢g d¢g d¢g d¢g«      } t        j                  g d¢g d¢g d¢g d¢g d	¢g d
¢g«      }| d d …t         j                  d d …f   |t         j                  d d …d d …f   z   j                  d«      }t        j                  t        j
                  | j                  d   «      |j                  d   «      }t        d¬«      j                  ||«      }|j                  | «      }|d   |d   z
  }|d   |d   z
  }|t        j                  t        j                  |dz  «      «      z  }|t        j                  t        j                  |dz  «      «      z  }t        t        j                  |j                  |«      j                  «      t        j                  d«      «       t        t        j                   t        j"                  |d d ddg«      «      d«       t        t        j                   t        j"                  |d d ddg«      «      d«       y )N)r   r   r   )r   r   r   )r   r   r   )r   r   é   )r,   r   r   )çš™™™™™¹¿r   r   )r   r,   r   )r   r¯   r   )r   r   r,   )r   r   r¯   )r   r   r   r   r•   r   r   r   r¥   )r:   rs   rx   ÚreshapeÚrepeatÚarangerž   r	   r3   r�   Úsqrtrz   r   r]   ÚTÚeyeÚabsrk   )ÚmeansÚscatterr4   r5   rC   Úmeans_transformedÚd1Úd2s           rI   Útest_lda_orthogonalityr¼   D  s³  € ô �H‰H’j¢)ªZºÐCÓD€Eô �h‰hâÚÚÚÚÚð	
ó	€Gð 
Šq”"—*‘*šaÐÑ	  7¬2¯:©:²qº!Ð+;Ñ#<Ñ	<×EÑEÀgÓN€AÜ
�	‰	”"—)‘)˜EŸK™K¨™NÓ+¨W¯]©]¸1Ñ-=Ó>€Aô %¨EÔ
2×
6Ñ
6°q¸!Ó
<€CØŸ™ eÓ,Ðà	˜1Ñ	Ð 1°!Ñ 4Ñ	4€BØ	˜1Ñ	Ð 1°!Ñ 4Ñ	4€BØŒ"�'‰'”"—&‘&˜˜Q™“-Ó
 Ñ €BØŒ"�'‰'”"—&‘&˜˜Q™“-Ó
 Ñ €Bô œŸ™˜sŸ}™}¨WÓ5×7Ñ7Ó8¼"¿&¹&À»)ÔDô œŸ™œrŸv™v b¨¨! f¨q°!¨fÓ5Ó6¸Ô<ô œŸ™œrŸv™v b¨¨! f¨q°!¨fÓ5Ó6¸Õ<rq   c                  ó„  — d} t         j                  j                  d«      }|j                  dd| df«      g d¢z   }|j                  dd| df«      g d¢z   }t        j                  ||f«      g d¢z  }dg| z  dg| z  z   }d	D ]=  }t        |¬
«      }|j                  ||«      j                  ||«      dk(  rŒ5J d|z  «       ‚ y )Nrd   iÒ  r   r   r   )r`   r   r   )rc   r   r   )r   rd   i'  rL   r•   r¥   zusing covariance: %s)r:   r¦   r§   ÚuniformrQ   r	   r3   Úscore)Únr[   Úx1Úx2Úxr5   r%   rC   s           rI   Útest_lda_scalingrÄ   m  sË   € à€AÜ
�)‰)×
Ñ
 Ó
%€Cð 
�‰�R˜˜Q ˜FÓ	#¢kÑ	1€BØ	�‰�R˜˜Q ˜FÓ	#¢jÑ	0€BÜ
�	‰	�2�r�(ÓšoÑ-€AØ	ˆˆq‰�A�3˜‘7Ñ€Aà*ò QˆÜ(°Ô7ˆà�w‰w�q˜!‹}×"Ñ" 1 aÓ(¨CÓ/ÐPÐ1GÈ&Ñ1PÓPÐ/ñQrq   c            	      ób  — dD ]–  } t        | ¬«      j                  t        t        «      }t	        |d«      sJ ‚t        | d¬«      j                  t        t        «      }t	        |d«      sJ ‚t        |j                  t        j                  ddgddgg«      «       Œ˜ t        d	¬«      j                  t        t        «      }t	        |d«      rJ ‚t         d¬«      j                  t        t        «      }t	        |d«      sJ ‚t        |j                  t        j                  ddgddgg«      «       y )
N)r   r    r•   ru   T)r%   rf   g¦µil¯Û?g€aùómÁ¶?g	^á?r   )	r	   r3   ÚX6Úy6Úhasattrr   ru   r:   rs   )r%   rC   s     rI   Útest_lda_store_covariancerÉ   ~  s  € ð $ò 
ˆÜ(°Ô7×;Ñ;¼BÄÓCˆÜ�s˜MÔ*Ð*Ð*ô )°ÈÔN×RÑRÜ”ó
ˆô �s˜MÔ*Ð*Ð*ä!Ø�O‰OœRŸX™X¨°(Ð';¸hÈÐ=QÐ&RÓSõ	
ð
ô %¨EÔ
2×
6Ñ
6´r¼2Ó
>€CÜ�s˜MÔ*Ð*Ð*ô %¨FÀTÔ
J×
NÑ
NÌrÔSUÓ
V€CÜ�3˜Ô&Ð&Ð&äØ�‰œŸ™ H¨hÐ#7¸(ÀHÐ9MÐ"NÓOõrq   Úseedrc   c                 ó   — t         j                  j                  | «      }|j                  dd«      }|j	                  dd¬«      }t        ddd¬«      }t        dt        d¬	«      d¬
«      }|j                  ||«       |j                  ||«       t        |j                  |j                  «       t        |j                  |j                  «       y )Nrd   rc   r   rO   Tr'   r   ©rf   r&   r%   )r&   ©rf   r-   r%   )r:   r¦   r§   Úrandr©   r	   r   r3   r   rt   ru   )rÊ   r[   r4   r5   Úc1Úc2s         rI   Útest_lda_shrinkagerÑ   œ  s¡   € ô �)‰)×
Ñ
 Ó
%€CØ�‰��bÓ€AØ�‰�A˜SˆÓ"€AÜ	#°TÀSÐQWÔ	X€BÜ	#ØÜ-¸Ô<Øô
€Bð
 ‡F�Fˆ1ˆa„LØ‡F�Fˆ1ˆa„LÜ�B—I‘I˜rŸy™yÔ)Ü�B—N‘N B§N¡NÕ3rq   c                  óª  —  G d„ d«      } t         j                  j                  d«      }|j                  dd«      }|j	                  dd¬«      }t        d	d
d¬«      }t        d	 | «       d¬«      }|j                  ||«       |j                  ||«       t        |j                  |j                  «       t        |j                  |j                  «       y )Nc                   ó   — e Zd Zd„ Zy)ú3test_lda_ledoitwolf.<locals>.StandardizedLedoitWolfc                 óð   — t        «       }|j                  |«      }t        |«      d   }|j                  d d …t        j
                  f   |z  |j                  t        j
                  d d …f   z  }|| _        y )Nr   )r   Úfit_transformr   Úscale_r:   rx   ru   )Úselfr4   ÚscÚX_scÚss        rI   r3   z7test_lda_ledoitwolf.<locals>.StandardizedLedoitWolf.fit´  sb   € ÜÓ!ˆBØ×#Ñ# AÓ&ˆDÜ˜DÓ! !Ñ$ˆAà—	‘	š!œRŸZ™Z˜-Ñ(¨1Ñ,¨r¯y©y¼¿¹ÂQ¸Ñ/GÑGˆAØ ˆDÕrq   N)Ú__name__Ú
__module__Ú__qualname__r3   © rq   rI   ÚStandardizedLedoitWolfrÔ   ³  s   „ ó	!rq   rà   r   rd   rc   r   )rd   rO   Tr!   r   rÌ   rÍ   )
r:   r¦   r§   rÎ   r©   r	   r3   r   rt   ru   )rà   r[   r4   r5   rÏ   rÐ   s         rI   Útest_lda_ledoitwolfrá   ¯  s­   € ÷!ñ !ô �)‰)×
Ñ
 Ó
"€CØ�‰��bÓ€AØ�‰�A˜FˆÓ#€AÜ	#Ø¨¸ô
€Bô 
$ØÙ3Ó5Øô
€Bð
 ‡F�Fˆ1ˆa„LØ‡F�Fˆ1ˆa„LÜ�B—I‘I˜rŸy™yÔ)Ü�B—N‘N B§N¡NÕ3rq   r”   r®   c                 óÞ  — t        d«      }d}|j                  ||«      }t        j                  t	        | «      || z  dz   «      d | }t        || dz
  «      }|dz
  d |fD ]   }t        |¬«      }|j                  ||«       Œ" |dz   t        || dz
  «      dz   fD ]F  }t        |¬«      }d}	t        j                  t        |	¬«      5  |j                  ||«       d d d «       ŒH y # 1 sw Y   ŒSxY w)Nr   rc   r   )rœ   z#n_components cannot be larger than r.   )r   Úrandnr:   ÚtilerV   Úminr	   r3   Úmaxr>   r?   rA   )
rK   r”   r[   rW   r4   r5   Úmax_componentsrœ   r~   rŽ   s
             rI   Útest_lda_dimension_warningrè   Í  sþ   € ô ˜QÓ
€CØ€IØ�	‰	�)˜ZÓ(€Aô 	�‰”�iÓ  )¨yÑ"8¸1Ñ"<Ó=¸j¸yÐI€AÜ˜ Y°¡]Ó3€Nà'¨!Ñ+¨T°>ÐBò ˆä(°lÔCˆØ�‰��1�ðð
 (¨!Ñ+¬S°¸YÈ¹]Ó-KÈaÑ-OÐPò ˆô
 )°lÔCˆØ3ˆÜ�]‰]œ:¨SÔ1ñ 	Ø�G‰G�A�qŒM÷	ð 	ñ÷	ð 	ús   ÃC#Ã#C,	zdata_type, expected_typec                 óà   — t         D ]e  \  }}t        ||¬«      }|j                  t        j	                  | «      t
        j	                  | «      «       |j                  j                  |k(  rŒeJ ‚ y )Nr$   )r2   r	   r3   r4   Úastyper5   r–   r   )Ú	data_typeÚexpected_typer%   r&   rC   s        rI   Útest_lda_dtype_matchrí   è  sZ   € ô .ò 0Ñˆ�	Ü(°À)ÔLˆØ�‰”—‘˜Ó#¤Q§X¡X¨iÓ%8Ô9Ø�y‰y�‰ -Ó/Ð/Ð/ñ0rq   c                  óì  — t         D ]ë  \  } }t        | |¬«      }|j                  t        j	                  t
        j                  «      t        j	                  t
        j                  «      «       t        | |¬«      }|j                  t        j	                  t
        j                  «      t        j	                  t
        j                  «      «       d}t        |j                  |j                  |¬«       Œí y )Nr$   r(   )r)   )r2   r	   r3   r4   rê   r:   Úfloat32r5   Úfloat64r   r–   )r%   r&   Úclf_32Úclf_64r)   s        rI   Ú,test_lda_numeric_consistency_float32_float64ró   ø  s™   € Ü-ò ?Ñˆ�	Ü+°6ÀYÔOˆØ�
‰
”1—8‘8œBŸJ™JÓ'¬¯©´"·*±*Ó)=Ô>Ü+°6ÀYÔOˆØ�
‰
”1—8‘8œBŸJ™JÓ'¬¯©´"·*±*Ó)=Ô>ð ˆÜ˜Ÿ™ f§l¡l¸Ö>ñ?rq   c                  ó   — t        «       } | j                  t        t        «      j	                  t        «      }t        |t        «       | j                  t        t        «      j	                  t        «      }t        |t        «       | j                  t        «      }t        |d d …df   dkD  dz   t        «       | j                  t        «      }t        t        j                  |«      |d«       | j                  t        t        «      j	                  t        «      }t        j                  |t        k7  «      sJ ‚t        j                  t         «      5  | j                  t        t"        «       d d d «       y # 1 sw Y   y xY w)Nr   r'   r   )r
   r3   rÆ   rÇ   r6   r   ÚX7r8   r9   r   r:   r;   Úy7r=   r>   r?   rA   Úy4)rC   rD   rE   rF   rG   rH   s         rI   Útest_qdarø     s  € ô (Ó
)€CØ�W‰W”Rœ‹_×$Ñ$¤RÓ(€FÜ�vœrÔ"ð �g‰g”bœ"‹o×%Ñ%¤bÓ)€GÜ�w¤Ô#ð ×%Ñ%¤bÓ)€MÜ˜¢a¨ dÑ+¨cÑ1°QÑ6¼Ô;Ø×-Ñ-¬bÓ1ÐÜœbŸf™fÐ%6Ó7¸ÈÔJà�g‰g”bœ"‹o×%Ñ%¤bÓ)€Gä�6‰6�'œR‘-Ô Ð Ð ô 
�‰”zÓ	"ñ Ø�‰””BŒ÷÷ ñ ús   ÅE4Å4E=c                  ó†  — t        «       } | j                  t        t        «      j	                  t        «      }t        j                  |dk(  «      }d}t        t        j                  |d|z
  g«      ¬«      } | j                  t        t        «      j	                  t        «      }t        j                  |dk(  «      }||kD  sJ ‚y )Nr   g»½×Ùß|Û=r   r‡   )r
   r3   rÆ   rÇ   r6   r:   rz   rs   )rC   rD   Ún_posÚnegÚn_pos2s        rI   Útest_qda_priorsrý     sŽ   € Ü
'Ó
)€CØ�W‰W”Rœ‹_×$Ñ$¤RÓ(€FÜ�F‰F�6˜Q‘;Ó€Eà
€CÜ
'¬r¯x©x¸¸aÀ#¹g¸Ó/GÔ
H€CØ�W‰W”Rœ‹_×$Ñ$¤RÓ(€FÜ�V‰V�F˜a‘KÓ €Fà�EŠ>Ð‰>rq   Úpriors_type)ÚlistÚtuplers   c                 óä   — ddg}t        t        ddg| «      ¬«      j                  t        t        «      }t        |j                  t        j                  «      sJ ‚t        |j                  |«       y)z$Check that priors accept array-like.r'   r‡   N)
r
   r   r3   rÆ   rÇ   Ú
isinstancer�   r:   Úndarrayr   )rþ   rˆ   rC   s      rI   Útest_qda_prior_typer  ,  s[   € ð �3ˆZ€FÜ
'Ü! 3¨ *¨kÓ:ôç	�cŒ"Œbƒkð ô �c—k‘k¤2§:¡:Ô.Ð.Ð.Ü�s—{‘{ FÕ+rq   c                  ó  — t        j                  ddg«      } t        | ¬«      j                  t        t
        «      }t        |j                  |j                  «       d| d<   |j                  d   |j                  d   k7  sJ ‚y)zCCheck that altering `priors` without `fit` doesn't change `priors_`r'   r‡   gš™™™™™É?r   N)	r:   rs   r
   r3   r4   r5   r   r�   rˆ   )rˆ   Úqdas     rI   Útest_qda_prior_copyr  7  sh   € ä�X‰X�s˜C�jÓ!€FÜ
'¨vÔ
6×
:Ñ
:¼1¼aÓ
@€Cô �s—{‘{ C§J¡JÔ/ð €Fˆ1�IØ�;‰;�q‰>˜SŸZ™Z¨™]Ò*Ð*Ñ*rq   c                  ó�  — t        «       j                  t        t        «      } t	        | d«      rJ ‚t        d¬«      j                  t        t        «      } t	        | d«      sJ ‚t        | j                  d   t        j                  ddgddgg«      «       t        | j                  d   t        j                  dd	gd	d
gg«      «       y )Nru   T)rf   r   gffffffæ?rŠ   r   gÚÁQUUÕ?gÚÁQUUÕ¿g“vWUUå?)	r
   r3   rÆ   rÇ   rÈ   r   ru   r:   rs   )rC   s    rI   Útest_qda_store_covariancer	  D  s©   € ä
'Ó
)×
-Ñ
-¬b´"Ó
5€CÜ�s˜MÔ*Ð*Ð*ô (¸Ô
>×
BÑ
BÄ2ÄrÓ
J€CÜ�3˜Ô&Ð&Ð&ä˜cŸo™o¨aÑ0´"·(±(¸SÀ$¸KÈ$ÐPSÈÐ;UÓ2VÔWäØ�‰˜ÑÜ
�‰�:˜{Ð+¨k¸:Ð-FÐGÓHõrq   zcno floating point exceptions, see https://github.com/numpy/numpy/pull/21895#issuecomment-1311525881)Úreasonc                  óº  — d} t        «       }t        j                  t        j                  | ¬«      5  |j                  t        t        «      }d d d «       |j                  t        «      }t        j                  |t        k7  «      sJ ‚t        d¬«      }t        j                  «       5  t        j                  d«       d d d «       |j                  t        t        «       |j                  t        «      }t        |t        «       t        «       }t        j                  t        j                  | ¬«      5  |j                  t        t         «       d d d «       t        d¬«      }t        j                  t        j                  | ¬«      5  |j                  t        t         «       d d d «       y # 1 sw Y   �ŒaxY w# 1 sw Y   ŒüxY w# 1 sw Y   ŒwxY w# 1 sw Y   y xY w)Nz2The covariance matrix of class .+ is not full rankr.   rr   )Ú	reg_paramÚerrorg333333Ó?)r
   r>   r‹   r   ÚLinAlgWarningr3   ÚX2rÇ   r6   r:   r=   ÚwarningsÚcatch_warningsÚsimplefilterr   ÚX5Úy5)rŽ   rC   rD   s      rI   Útest_qda_regularizationr  U  sU  € ð @€CÜ
'Ó
)€CÜ	�‰”f×*Ñ*°#Ô	6ñ !Ø—‘œœR“ˆ÷!ð �[‰[œ‹_€FÜ�6‰6�&œB‘,ÔÐÐô (°$Ô
7€CÜ	×	 Ñ	 Ó	"ñ 'Ü×Ñ˜gÔ&÷'à‡G�GŒB”„OØ�[‰[œ‹_€FÜ�vœrÔ"ô (Ó
)€CÜ	�‰”f×*Ñ*°#Ô	6ñ Ø�‰””BŒ÷ô (°#Ô
6€CÜ	�‰”f×*Ñ*°#Ô	6ñ Ø�‰””BŒ÷ð ÷-!ñ !ú÷'ð 'ú÷ð ú÷
ð ús/   ²F,Â(F9Ä4GÆGÆ,F6Æ9GÇGÇGc                  óv  — t        dddd¬«      \  } }t        j                  | t        j                  | j                  d   dz  «      j                  | j                  d   | j                  d   «      «      } t        | d«      }t        ||j                  «       t        | d«      }t        ||j                  «       y )	Nrd   r®   r   re   r“   r   Ú	empiricalr!   )	r   r:   rk   r²   rž   r°   r   r   r´   )rÃ   r5   Úc_eÚc_ss       rI   Útest_covariancer  ~  s�   € Ü °¸1È2ÔN�D€A€qô 	�‰ˆq”"—)‘)˜AŸG™G A™J¨!™OÓ,×4Ñ4°Q·W±W¸Q±ZÀÇÁÈÁÓLÓM€Aä
ˆq�+Ó
€CÜ˜˜SŸU™UÔ#ä
ˆq�&‹/€CÜ˜˜SŸU™UÕ#rq   c                 ó  — t        j                  ddgddgg«      }t        j                  ddg«      }t        | ¬«      }t        j                  t
        d¬«      5  |j                  ||«       ddd«       y# 1 sw Y   yxY w)	zg
    Tests that if the number of samples equals the number
    of classes, a ValueError is raised.
    r'   r‰   ÚaÚbr•   z"The number of samples must be morer.   N)r:   rs   r	   r>   r?   rA   r3   )r%   r4   r5   rC   s       rI   Ú=test_raises_value_error_on_same_number_of_classes_and_samplesr  ‹  sl   € ô 	�‰�3˜�*˜s C˜jÐ)Ó*€AÜ
�‰�#�s�Ó€AÜ
$¨FÔ
3€CÜ	�‰”zÐ)MÔ	Nñ Ø�‰��1Œ÷÷ ñ ús   ÁA6Á6A?c                  óD  — t        «       j                  t        t        «      } | j	                  «       }dj                  «       }t        j                  t        | j                  j                  d   «      D �cg c]  }|› |› �‘Œ
 c}t        ¬«      }t        ||«       yc c}w )z6Check get_feature_names_out uses class name as prefix.r	   r   r   N)r	   r3   r4   r5   Úget_feature_names_outÚlowerr:   rs   rV   rª   rž   Úobjectr   )ÚestÚ	names_outÚclass_name_lowerÚiÚexpected_names_outs        rI   Útest_get_feature_names_outr(  ˜  s”   € ô %Ó
&×
*Ñ
*¬1¬aÓ
0€CØ×)Ñ)Ó+€Ià3×9Ñ9Ó;ÐÜŸ™ô ˜3×8Ñ8×>Ñ>¸qÑAÓBö	
àð  Ð   Ò$ò	
ô ôÐô �yÐ"4Õ5ùò	
s   Á6B)Nr  Únumpyr:   r>   Úscipyr   Úsklearn.clusterr   Úsklearn.covariancer   r   r   Úsklearn.datasetsr   Úsklearn.discriminant_analysisr	   r
   r   Úsklearn.preprocessingr   Úsklearn.utilsr   Úsklearn.utils._testingr   r   r   r   r   Úsklearn.utils.fixesr   rs   r4   r5   r<   r7   rÆ   rÇ   rö   rõ   r  r÷   Úc_r²   Úzerosr  r  r2   rJ   ÚmarkÚparametrizer…   r�   rš   r    r¬   r¼   rÄ   rÉ   rV   rÑ   rá   rè   rï   rð   Úint32Úint64rí   ró   rø   rý   r  r  r	  Úxfailr  r  r  r(  rß   rq   rI   ú<module>r:     s  ðÛ ã Û Ý å "ß HÑ HÝ '÷ñ õ
 1Ý ,÷õ õ )ð €B‡H�Hˆr�2ˆh˜˜R˜ 2 r (¨Q°¨F°Q¸°F¸QÀ¸FÐCÈ3ÔO€Ø€B‡H�HÒÓ €Ø€R‡X�XÒ Ó!€ð €R‡X�XØ€TˆBˆ4�"�˜�s˜Q˜C ! Ð%Ø
ô€ð €R‡X�XØˆ€Vˆb�"ˆX˜˜B�x " b ¨B°¨8°a¸°V¸aÀ¸VÀaÈÀVÈaÐQRÈVÐTó€ð €R‡X�XÒ)Ó*€Ø€R‡X�XÒ)Ó*€ð €R‡X�X�ˆt�b�T˜B˜4 " ¨ s¨Q¨C°!°°q°c¸A¸3Ð?Ó@€ð €R‡X�XØˆ!€Wˆr�1ˆg˜˜A�w  Q ¨!¨Q¨°!°Q°¸!¸Q¸À!ÀQÀÈ!ÈQÈÐPó€ð
 €R‡X�XÒ)Ó*€ð ‡U�Uˆ9ˆ2�9‰9�Q‹<˜˜Ÿ™ &Ó)Ð)Ñ*€Ø€R‡X�XÒ&Ó'€ò
Ð ò<ð~ ‡�×Ñ˜ q¨! fÓ-Ø‡�×Ñ˜Ò#;Ó<ñ[ó =ó .ð[ò|:ò2Jò,ò"ò:&=òRQò"ð< ‡�×Ñ˜¡ r£Ó+ñ4ó ,ð4ò$4ð< ‡�×Ñ˜¨¨1 vÓ.Ø‡�×Ñ˜ q¨! fÓ-ñó .ó /ðð2 ‡�×ÑØà	�‰�R—Z‘ZÐ Ø	�‰�R—Z‘ZÐ Ø	�‰�2—:‘:ÐØ	�‰�2—:‘:Ðð	óñ0óð0ò	?òò6
ð ‡�×Ñ˜Ò(BÓCñ,ó Dð,ò
+òð" ‡�×ÑØð	Mð ó ñóðòD
$ð ‡�×Ñ˜Ò#;Ó<ñ	ó =ð	ó6rq   