§
    rŠtjq  ã                   óÈ  — 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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  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)g d¢Z*d„ Z+ej,         -                    dddg¦  «        ej,         -                    dg d¢¦  «        d„ ¦   «         ¦   «         Z.d„ Z/d„ Z0d „ Z1d!„ Z2d"„ Z3d#„ Z4d$„ Z5ej,         -                    d% e6d&¦  «        ¦  «        d'„ ¦   «         Z7d(„ Z8ej,         -                    d)dd*g¦  «        ej,         -                    dd*dg¦  «        d+„ ¦   «         ¦   «         Z9ej,         -                    d,ej:        ej:        fej;        ej;        fej<        ej;        fej=        ej;        fg¦  «        d-„ ¦   «         Z>d.„ Z?ej,         -                    dd/d0g¦  «        d1„ ¦   «         Z@d2„ ZAd3„ ZBd4„ ZCd5„ ZDej,         -                    d6g d7¢¦  «        d8„ ¦   «         ZEd9„ ZFd:„ ZGej,         -                    dd/d0g¦  «        d;„ ¦   «         ZHd<„ ZIej,         -                    dg d¢¦  «        d=„ ¦   «         ZJej,         -                    dd/d0g¦  «        d>„ ¦   «         ZKd?„ ZLej,         -                    d)d@g¦  «        ej,         -                    dAdBg¦  «        ej,         -                    dCd/d0g¦  «        dD„ ¦   «         ¦   «         ¦   «         ZMdS )Eé    N)Úlinalg)ÚKMeans)Ú
LedoitWolfÚShrunkCovarianceÚledoit_wolf)Ú
make_blobs)ÚLinearDiscriminantAnalysisÚQuadraticDiscriminantAnalysisÚ_cov)ÚShuffleSplitÚcross_val_score)ÚStandardScaler)Úcheck_random_state)Ú_convert_containerÚassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equaléþÿÿÿéÿÿÿÿé   é   Ú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   )	)ÚsvdN)ÚlsqrN)ÚeigenN)r   Úauto)r   r   )r   ç…ëQ¸…Û?)r    r!   )r    r   )r    r"   c            	      óÊ  — t           D �]¤} | \  }}t          ||¬¦  «        }|                     t          t          ¦  «                             t          ¦  «        }t          |t          d|z  ¦  «         |                     t          t          ¦  «                             t          ¦  «        }t          |t          d|z  ¦  «         |                     t          ¦  «        }t          |d d …df         dk    dz   t          d|z  ¦  «         | 	                    t          ¦  «        }t          t          j        |¦  «        |ddd|z  ¬¦  «         |                     t          t          ¦  «                             t          ¦  «        }t          j        |t          k    ¦  «        sJ d|z  ¦   «         ‚�Œ¦t          dd¬¦  «        }t          j        t"          ¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d	d
t%          ¦   «         ¬¦  «        }t          j        t&          d¬¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          dt)          ¦   «         ¬¦  «        }t          j        t&          d¬¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d	t+          dd¬¦  «        ¬¦  «        }t          j        t&          ¦  «        5  |                     t          t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©ÚsolverÚ	shrinkagez	solver %sr   ç      à?ç�íµ ÷Æ°>)ÚrtolÚatolÚerr_msgr   r!   r   çš™™™™™¹?©r%   r&   Úcovariance_estimatorú[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/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/tests/test_discriminant_analysis.pyÚtest_lda_predictrN   D   s÷  € õ &ð ;ñ ;ˆ	Ø%Ñˆ�	Ý(°À)ÐLÑLÔLˆØ—’��A‘”×&Ò&¥qÑ)Ô)ˆÝ˜6¥1 k°FÑ&:Ñ;Ô;Ð;ð —'’'�"�a‘.”.×(Ò(­Ñ,Ô,ˆÝ˜7¥A {°VÑ';Ñ<Ô<Ð<ð ×)Ò)­"Ñ-Ô-ˆÝ˜M¨!¨!¨!¨Q¨$Ô/°#Ò5¸Ñ:½A¸{ÈVÑ?SÑTÔTÐTØ×1Ò1µ"Ñ5Ô5ÐÝÝŒFÐ$Ñ%Ô%ØØØØ &Ñ(ð	
ñ 	
ô 	
ð 	
ð —'’'�!�R‘.”.×(Ò(­Ñ+Ô+ˆåŒv�g¥’mÑ$Ô$Ð:Ð: k°FÑ&:Ñ:Ô:Ð$Ñ:å
$¨E¸VÐ
DÑ
DÔ
D€CÝ	ŒÕ*Ñ	+Ô	+ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ %Ø Õ;KÑ;MÔ;Mðñ ô €Cõ 
ŒÝð.ð
ñ 
ô 
ð ð ð 	�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ %¨EÍ
ÉÌÐ
UÑ
UÔ
U€CÝ	ŒÝÐJð
ñ 
ô 
ð ð ð 	�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ %Ø­F¸aÈÐ,OÑ,OÔ,Oðñ ô €Cõ 
Œ•zÑ	"Ô	"ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sH   Ç!HÈH	ÈH	É	!I6É6I:É=I:Ê9!K&Ë&K*Ë-K*Ì*!MÍMÍMÚ	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 ¬¦  «                             ||¦  «        }t          |j        |d¬¦  «         t          |j        |d         d¬¦  «         t          j	        |d         ¦  «        }g Šg Št          t          |¦  «        dz
  ¦  «        D ]¡}	‰                     t          j        |||	         |d         z
  d d …t           j        f         ¦  «        ¦  «         ‰                     t          j        d||	         |d         z   t           j        d d …f         z  ‰d         ¦  «        ¦  «         Œ¢t          j        ddgg¦  «        Šd„ Št          j        ˆˆˆˆˆfd„t          ‰dz
  ¦  «        D ¦   «         ¦  «        }
dt          j        |
¦  «        z
  }t          ddt          ˆˆˆˆfd„t          ‰dz
  ¦  «        D ¦   «         ¦  «        z   z  ¦  «        }|t!          j        |¦  «        k    sJ ‚t          |                     ‰¦  «        t          j        |
|g¦  «        t           j                 d¬¦  «         d S )Nc                 ó  ‡ ‡‡— t          |¦  «        Št          j        ˆˆ ˆfd„t          ‰|¦  «        D ¦   «         ¦  «        }t          j        ˆˆ fd„t          t          ‰¦  «        ¦  «        D ¦   «         ¦  «        }||fS )zNGenerate a multivariate normal data given some centers and
        covariancesc           
      óf   •— g | ]-\  }}‰                      ||‰t          ‰¦  «        z  ¬ ¦  «        ‘Œ.S )©Úsize)Úmultivariate_normalÚlen)Ú.0ÚmeanÚcovÚcentersÚ	n_samplesÚrngs      €€€rM   ú
<listcomp>zDtest_lda_predict_proba.<locals>.generate_dataset.<locals>.<listcomp>‹   sM   ø€ ð ð ð á�D˜#ð ×'Ò'¨¨c¸	ÅSÈÁ\Ä\Ñ8QÐ'ÑRÔRðð ð ó    c                 ó<   •— g | ]}|g‰t          ‰¦  «        z  z  ‘ŒS © )rW   )rX   Úclazzr[   r\   s     €€rM   r^   zDtest_lda_predict_proba.<locals>.generate_dataset.<locals>.<listcomp>‘   s+   ø€ ÐTÐTÐT°uˆeˆW˜	¥S¨¡\¤\Ñ1Ñ2ÐTÐTÐTr_   )r   r>   ÚvstackÚzipÚhstackÚrangerW   )r\   r[   ÚcovariancesÚrandom_stater8   r9   r]   s   ``    @rM   Úgenerate_datasetz0test_lda_predict_proba.<locals>.generate_dataset†   s¥   øøø€ õ ! Ñ.Ô.ˆÝŒIðð ð ð ð ð å!$ W¨kÑ!:Ô!:ðñ ô ñ
ô 
ˆõ ŒIØTÐTÐTÐTÐTÅÅcÈ'ÁlÄlÑ@SÔ@SÐTÑTÔTñ
ô 
ˆð �!ˆtˆr_   r   éöÿÿÿé(   iâÿÿÿé   é
   éd   i�_ é*   )r\   r[   rg   rh   T)r%   Ústore_covariancer&   r,   )r*   r   r   ç      à¿iêÿÿÿé   c                 ó’   — t          j        ||         t          j        | ||         ¦  «        z   ¦  «                             ¦   «         S ©N)r>   r?   ÚdotÚitem)ÚsampleÚcoefÚ	interceptrb   s       rM   Údiscriminant_funcz1test_lda_predict_proba.<locals>.discriminant_funcµ   s8   € ÝŒv�i Ô&­¬°¸¸U¼Ñ)DÔ)DÑDÑEÔE×JÒJÑLÔLÐLr_   c                 óª   •— g | ]O}t           ‰‰‰‰|¦  «        d t          ˆˆˆˆfd„t          ‰d z
  ¦  «        D ¦   «         ¦  «        z   z  ¦  «        ‘ŒPS )r   c                 ó,   •— g | ]} ‰‰‰‰|¦  «        ‘ŒS ra   ra   ©rX   rb   Úalpha_kÚ	alpha_k_0rz   rw   s     €€€€rM   r^   z5test_lda_predict_proba.<locals>.<listcomp>.<listcomp>¿   s:   ø€ ð ð ð à %ð .Ð-¨f°g¸yÈ%ÑPÔPðð ð r_   )ÚfloatÚsumrf   )rX   rb   r~   r   rz   rO   rw   s     €€€€€rM   r^   z*test_lda_predict_proba.<locals>.<listcomp>¹   s¤   ø€ ð 	
ð 	
ð 	
ð õ Ø!Ð! &¨'°9¸eÑDÔDàÝðð ð ð ð ð ð å).¨y¸1©}Ñ)=Ô)=ðñ ô ñô ññ	ñô ð	
ð 	
ð 	
r_   c                 ó,   •— g | ]} ‰‰‰‰|¦  «        ‘ŒS ra   ra   r}   s     €€€€rM   r^   z*test_lda_predict_proba.<locals>.<listcomp>Ó   s:   ø€ ð ð ð àð &Ð% f¨g°yÀ%ÑHÔHðð ð r_   ç{®Gáz„?rt   )r>   ÚarrayrW   r	   r7   r   Úmeans_Úcovariance_r   Úinvrf   Úappendru   Únewaxisr�   r€   rB   Úapproxr<   re   )r%   rO   ri   Úblob_centersÚ	blob_stdsr8   r9   ÚldaÚ	precisionrb   ÚprobÚprob_refÚ
prob_ref_2r~   r   rz   rw   s    `           @@@@rM   Útest_lda_predict_probar’   ƒ   sN  øøøøø€ ðð ð ð õ ”8˜a ˜V c¨2 Y°°b°	Ð:Ñ;Ô;¸J¸Y¸JÔG€LÝ”˜B ˜8 b¨# YÐ/Ð0µ3°|Ñ3DÔ3DÑDÑEÔE€IØÐØ ¸9ÐSUðñ ô �D€A€qõ %Ø¨¸ðñ ô ç	‚cˆ!ˆQ�i„ið õ
 �C”J °4Ð8Ñ8Ô8Ð8Ý�C”O Y¨q¤\¸Ð:Ñ:Ô:Ð:õ
 ”
˜9 Qœ<Ñ(Ô(€IØ€GØ€IÝ•s˜<Ñ(Ô(¨1Ñ,Ñ-Ô-ð 	
ð 	
ˆØ�ŠÝŒF�9˜|¨EÔ2°\À"Ô5EÑEÀqÀqÀqÍ"Ì*À}ÔUÑVÔVñ	
ô 	
ð 	
ð 	×ÒÝŒFØ˜ UÔ+¨l¸2Ô.>Ñ>ÅÄ
ÈAÈAÈAÀÔNÑNØ˜”ñô ñ	
ô 	
ð 	
ð 	
õ ŒX˜˜R�y�kÑ"Ô"€FðMð Mð Mõ Œ8ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ ˜y¨1™}Ñ-Ô-ð	
ñ 	
ô 	
ñô €Dð$ •2”6˜$‘<”<Ñ€Hõ Ø	àÝðð ð ð ð ð ð å!& y°1¡}Ñ!5Ô!5ðñ ô ñô ññ		
ñô €Jð •v”} ZÑ0Ô0Ò0Ð0Ð0Ð0õ Ø×Ò˜&Ñ!Ô!¥2¤9¨d°HÐ-=Ñ#>Ô#>½r¼zÔ#JÐQUðñ ô ð ð ð r_   c                  ó¦  — t          j        ddg¦  «        } t          | ¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ddg¬¦  «        }|                     t          t          ¦  «         t          j        ddg¦  «        } t          j        ddg¦  «        }t          | ¬¦  «        }t          j	        t          ¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        |d	¦  «         d S )
Nr'   rq   ©Úpriorszpriors must be non-negativer0   ç333333ã?çÍÌÌÌÌÌÜ?gš™™™™™á?r   )r>   r„   r	   rB   rC   rE   r7   r8   r9   ÚwarnsÚUserWarningr   Úpriors_)r•   rG   ÚmsgÚ
prior_norms       rM   Útest_lda_priorsr�   ã   s–  € åŒX�s˜D�kÑ"Ô"€FÝ
$¨FÐ
3Ñ
3Ô
3€CØ
'€Cå	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ
 %¨S°#¨JÐ
7Ñ
7Ô
7€CØ‡G‚G�A�q�M„M€Mõ ŒX�s˜C�jÑ!Ô!€FÝ”˜4 ˜,Ñ'Ô'€JÝ
$¨FÐ
3Ñ
3Ô
3€Cå	Œ•kÑ	"Ô	"ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜cœk¨:°qÑ9Ô9Ð9Ð9Ð9s$   Á!A1Á1A5Á8A5Ä!D0Ä0D4Ä7D4c                  óÄ  — d} d}d}t          || |d¬¦  «        \  }}t          d¬¦  «        }t          d¬¦  «        }t          d¬¦  «        }|                     ||¦  «         |                     ||¦  «         |                     ||¦  «         t          |j        |j        d	¦  «         t          |j        |j        d	¦  «         t          |j        |j        d	¦  «         d S )
Nr   éè  é   ©r\   Ú
n_featuresr[   rh   r   ©r%   r   r    r   )r   r	   r7   r   Úcoef_)r¢   rO   r\   r8   r9   Úclf_lda_svdÚclf_lda_lsqrÚclf_lda_eigens           rM   Ú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ÀQÑGÔGÐGÝ˜kÔ/°Ô1DÀaÑHÔHÐHÝ˜mÔ1°<Ô3EÀqÑIÔIÐIÐIÐIr_   c                  óx  — t          dd¬¦  «        } |                      t          t          ¦  «                             t          ¦  «        }|j        d         dk    sJ ‚t          dd¬¦  «        } |                      t          t          ¦  «                             t          ¦  «        }|j        d         dk    sJ ‚t          dd¬¦  «        } |                      t          t          ¦  «         d}t          j        t          |¬¦  «        5  |                      t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   )r%   Ún_componentsr    r   z$transform not implemented for 'lsqr'r0   )	r	   r7   r8   r9   Ú	transformÚshaperB   rC   rD   )rG   ÚX_transformedr›   s      rM   Útest_lda_transformr®     sJ  € å
$¨EÀÐ
BÑ
BÔ
B€CØ—G’G�A�q‘M”M×+Ò+­AÑ.Ô.€MØÔ˜qÔ! QÒ&Ð&Ð&Ð&Ý
$¨GÀ!Ð
DÑ
DÔ
D€CØ—G’G�A�q‘M”M×+Ò+­AÑ.Ô.€MØÔ˜qÔ! QÒ&Ð&Ð&Ð&å
$¨FÀÐ
CÑ
CÔ
C€CØ‡G‚G�A�q�M„M€MØ
0€Cå	ŒÕ*°#Ð	6Ñ	6Ô	6ð ð Ø�Š•aÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÄD/Ä/D3Ä6D3c                  óx  — t           j                             d¦  «        } |                      ddd¬¦  «        }|                      ddd¬¦  «        }t          d¬	¦  «        }|                     ||¦  «         t          |j         	                    ¦   «         d
d¦  «         |j        j
        dk    s
J d¦   «         ‚t          d¬	¦  «        }|                     ||¦  «         t          |j         	                    ¦   «         d
d¦  «         |j        j
        dk    s
J d¦   «         ‚t          |j        |j        ¦  «         d S )Nr   rn   )rk   é   )ÚlocÚscalerU   r   )rk   rT   r    r£   ç      ð?)r   z/Unexpected length for explained_variance_ratio_r   )r>   ÚrandomÚRandomStateÚnormalÚrandintr	   r7   r   Úexplained_variance_ratio_r�   r¬   r   )Ústater8   r9   r§   r¥   s        rM   Ú!test_lda_explained_variance_ratiorº   #  sC  € õ ŒI×!Ò! !Ñ$Ô$€EØ�Š˜ #¨HˆÑ5Ô5€AØ�Š�a˜ ˆÑ'Ô'€Aå.°gÐ>Ñ>Ô>€MØ×Ò�a˜ÑÔÐÝ˜Ô?×CÒCÑEÔEÀsÈAÑNÔNÐNØÔ2Ô8¸DÒ@Ð@Ð@Ø9ñ AÔ@Ð@õ -°EÐ:Ñ:Ô:€KØ‡O‚O�A�qÑÔÐÝ˜Ô=×AÒAÑCÔCÀSÈ!ÑLÔLÐLØÔ0Ô6¸$Ò>Ð>Ð>Ø9ñ ?Ô>Ð>õ ØÔ-¨}Ô/Vñô ð ð ð r_   c            	      ó’  — 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                        d¦  «        }t          j        t          j        | j        d         ¦  «        |j        d         ¦  «        }t          d¬¦  «                             ||¦  «        }| 	                    | ¦  «        }|d         |d         z
  }|d         |d         z
  }|t          j
        t          j        |dz  ¦  «        ¦  «        z  }|t          j
        t          j        |dz  ¦  «        ¦  «        z  }t          t          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¦  «         d S )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>   r„   r‰   ÚreshapeÚrepeatÚaranger¬   r	   r7   r«   Úsqrtr�   r   rZ   ÚTÚeyeÚabsru   )ÚmeansÚscatterr8   r9   rG   Úmeans_transformedÚd1Úd2s           rM   Útest_lda_orthogonalityrÊ   @  s  € õ ŒH�j�j�j ) ) )¨Z¨Z¨Z¸¸¸ÐCÑDÔD€Eõ ŒhàˆKˆKØˆLˆLØˆKˆKØˆLˆLØˆKˆKØˆLˆLð	
ñ	ô 	€Gð 
ˆqˆqˆq•"”*˜a˜a˜aÐÔ	  7­2¬:°q°q°q¸!¸!¸!Ð+;Ô#<Ñ	<×EÒEÀgÑNÔN€AÝ
Œ	•"”)˜EœK¨œNÑ+Ô+¨W¬]¸1Ô-=Ñ>Ô>€Aõ %¨EÐ
2Ñ
2Ô
2×
6Ò
6°q¸!Ñ
<Ô
<€CØŸš eÑ,Ô,Ðà	˜1Ô	Ð 1°!Ô 4Ñ	4€BØ	˜1Ô	Ð 1°!Ô 4Ñ	4€BØ�"Œ'•"”&˜˜Q™‘-”-Ñ
 Ô
 Ñ €BØ�"Œ'•"”&˜˜Q™‘-”-Ñ
 Ô
 Ñ €Bõ �œ˜sŸ}š}¨WÑ5Ô5Ô7Ñ8Ô8½"¼&À¹)¼)ÑDÔDÐDõ �œ�rœv b¨¨!¨¤f¨q°!¨fÑ5Ô5Ñ6Ô6¸Ñ<Ô<Ð<õ �œ�rœv b¨¨!¨¤f¨q°!¨fÑ5Ô5Ñ6Ô6¸Ñ<Ô<Ð<Ð<Ð<r_   c                  ó°  — d} t           j                             d¦  «        }|                     dd| df¦  «        g d¢z   }|                     dd| df¦  «        g d¢z   }t          j        ||f¦  «        g d¢z  }dg| z  dg| z  z   }d	D ]M}t          |¬
¦  «        }|                     ||¦  «                             ||¦  «        dk    sJ d|z  ¦   «         ‚ŒNd S )Nrn   iÒ  r   r   r   )rj   r   r   )rm   r   r   )r   rn   i'  rP   r£   r³   zusing covariance: %s)r>   r´   rµ   Úuniformrc   r	   r7   Úscore)Únr]   Úx1Úx2Úxr9   r%   rG   s           rM   Útest_lda_scalingrÒ   i  sÿ   € à€AÝ
Œ)×
Ò
 Ñ
%Ô
%€Cð 
�Š�R˜˜Q ˜FÑ	#Ô	# k k kÑ	1€BØ	�Š�R˜˜Q ˜FÑ	#Ô	# j j jÑ	0€BÝ
Œ	�2�r�(ÑÔ˜o˜o˜oÑ-€AØ	ˆˆq‰�A�3˜‘7Ñ€Aà*ð Qð QˆÝ(°Ð7Ñ7Ô7ˆà�wŠw�q˜!‰}Œ}×"Ò" 1 aÑ(Ô(¨CÒ/Ð/Ð/Ð1GÈ&Ñ1PÑ/Ô/Ð/Ð/ðQð Qr_   c            	      óÈ  — dD ]°} t          | ¬¦  «                             t          t          ¦  «        }t	          |d¦  «        sJ ‚t          | d¬¦  «                             t          t          ¦  «        }t	          |d¦  «        sJ ‚t          |j        t          j        ddgddgg¦  «        ¦  «         Œ±t          d	¬¦  «                             t          t          ¦  «        }t	          |d¦  «        rJ ‚t          | d¬¦  «                             t          t          ¦  «        }t	          |d¦  «        sJ ‚t          |j        t          j        ddgddgg¦  «        ¦  «         d S )
N)r   r    r£   r†   T)r%   rp   g¦µil¯Û?g€aùómÁ¶?g	^á?r   )	r	   r7   ÚX6Úy6Úhasattrr   r†   r>   r„   )r%   rG   s     rM   Útest_lda_store_covariancer×   z  sp  € ð $ð 
ð 
ˆÝ(°Ð7Ñ7Ô7×;Ò;½BÅÑCÔCˆÝ�s˜MÑ*Ô*Ð*Ð*Ð*õ )°ÈÐNÑNÔN×RÒRÝ•ñ
ô 
ˆõ �s˜MÑ*Ô*Ð*Ð*Ð*å!ØŒO�RœX¨°(Ð';¸hÈÐ=QÐ&RÑSÔSñ	
ô 	
ð 	
ð 	
õ
 %¨EÐ
2Ñ
2Ô
2×
6Ò
6µr½2Ñ
>Ô
>€CÝ�s˜MÑ*Ô*Ð*Ð*Ð*õ %¨FÀTÐ
JÑ
JÔ
J×
NÒ
NÍrÕSUÑ
VÔ
V€CÝ�3˜Ñ&Ô&Ð&Ð&Ð&åØŒ�œ H¨hÐ#7¸(ÀHÐ9MÐ"NÑOÔOñô ð ð ð r_   Úseedrm   c                 óÂ  — t           j                             | ¦  «        }|                     dd¦  «        }|                     dd¬¦  «        }t          ddd¬¦  «        }t          dt          d¬	¦  «        d¬
¦  «        }|                     ||¦  «         |                     ||¦  «         t          |j	        |j	        ¦  «         t          |j
        |j
        ¦  «         d S )Nrn   rm   r   rT   Tr'   r   ©rp   r&   r%   )r&   ©rp   r.   r%   )r>   r´   rµ   Úrandr·   r	   r   r7   r   r…   r†   )rØ   r]   r8   r9   Úc1Úc2s         rM   Útest_lda_shrinkagerß   ˜  sÐ   € õ Œ)×
Ò
 Ñ
%Ô
%€CØ�Š��bÑÔ€AØ�Š�A˜SˆÑ"Ô"€AÝ	#°TÀSÐQWÐ	XÑ	XÔ	X€BÝ	#ØÝ-¸Ð<Ñ<Ô<Øð
ñ 
ô 
€Bð
 ‡F‚Fˆ1ˆa�L„L€LØ‡F‚Fˆ1ˆa�L„L€LÝ�B”I˜rœyÑ)Ô)Ð)Ý�B”N B¤NÑ3Ô3Ð3Ð3Ð3r_   c                  óÐ  —  G d„ d¦  «        } t           j                             d¦  «        }|                     dd¦  «        }|                     dd¬¦  «        }t          d	d
d¬¦  «        }t          d	 | ¦   «         d¬¦  «        }|                     ||¦  «         |                     ||¦  «         t          |j        |j        ¦  «         t          |j	        |j	        ¦  «         d S )Nc                   ó   — e Zd Zd„ ZdS )ú3test_lda_ledoitwolf.<locals>.StandardizedLedoitWolfc                 óø   — t          ¦   «         }|                     |¦  «        }t          |¦  «        d         }|j        d d …t          j        f         |z  |j        t          j        d d …f         z  }|| _        d S ©Nr   ©r   Úfit_transformr   Úscale_r>   r‰   r†   ©Úselfr8   ÚscÚX_scÚss        rM   r7   z7test_lda_ledoitwolf.<locals>.StandardizedLedoitWolf.fit°  óq   € ÝÑ!Ô!ˆBØ×#Ò# AÑ&Ô&ˆDÝ˜DÑ!Ô! !Ô$ˆAà”	˜!˜!˜!�RœZ˜-Ô(¨1Ñ,¨r¬y½¼ÀQÀQÀQ¸Ô/GÑGˆAØ ˆDÔÐÐr_   N©Ú__name__Ú
__module__Ú__qualname__r7   ra   r_   rM   ÚStandardizedLedoitWolfrâ   ¯  ó#   € € € € € ð	!ð 	!ð 	!ð 	!ð 	!r_   rò   r   rn   rm   r   ©rn   rT   Tr!   r   rÚ   rÛ   )
r>   r´   rµ   rÜ   r·   r	   r7   r   r…   r†   )rò   r]   r8   r9   rÝ   rÞ   s         rM   Útest_lda_ledoitwolfrõ   «  sþ   € ð!ð !ð !ð !ð !ñ !ô !ð !õ Œ)×
Ò
 Ñ
"Ô
"€CØ�Š��bÑÔ€AØ�Š�A˜FˆÑ#Ô#€AÝ	#Ø¨¸ð
ñ 
ô 
€Bõ 
$ØØ3Ð3Ñ5Ô5Øð
ñ 
ô 
€Bð
 ‡F‚Fˆ1ˆa�L„L€LØ‡F‚Fˆ1ˆa�L„L€LÝ�B”I˜rœyÑ)Ô)Ð)Ý�B”N B¤NÑ3Ô3Ð3Ð3Ð3r_   r¢   r¼   c                 ó.  — t          d¦  «        }d}|                     ||¦  «        }t          j        t	          | ¦  «        || z  dz   ¦  «        d |…         }t          || dz
  ¦  «        }|dz
  d |fD ](}t          |¬¦  «        }|                     ||¦  «         Œ)|dz   t          || dz
  ¦  «        dz   fD ]]}t          |¬¦  «        }d}	t          j
        t          |	¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   Œ^d S )Nr   rm   r   )rª   z#n_components cannot be larger than r0   )r   Úrandnr>   Útilerf   Úminr	   r7   ÚmaxrB   rC   rE   )
rO   r¢   r]   r\   r8   r9   Úmax_componentsrª   r�   r›   s
             rM   Útest_lda_dimension_warningrü   É  sq  € õ ˜QÑ
Ô
€CØ€IØ�	Š	�)˜ZÑ(Ô(€Aõ 	Œ•�iÑ Ô  )¨yÑ"8¸1Ñ"<Ñ=Ô=¸j¸y¸jÔI€AÝ˜ Y°¡]Ñ3Ô3€Nà'¨!Ñ+¨T°>ÐBð ð ˆå(°lÐCÑCÔCˆØ�Š��1‰Œˆˆà'¨!Ñ+­S°¸YÈ¹]Ñ-KÔ-KÈaÑ-OÐPð ð ˆõ
 )°lÐCÑCÔCˆØ3ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�GŠG�A�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   Ã&D	Ä	D	ÄD	zdata_type, expected_typec                 óò   — t           D ]n\  }}t          ||¬¦  «        }|                     t                               | ¦  «        t
                               | ¦  «        ¦  «         |j        j        |k    sJ ‚Œod S )Nr$   )r6   r	   r7   r8   Úastyper9   r¤   r   )Ú	data_typeÚexpected_typer%   r&   rG   s        rM   Útest_lda_dtype_matchr  ä  sx   € õ .ð 0ð 0Ñˆ�	Ý(°À)ÐLÑLÔLˆØ�Š•—’˜Ñ#Ô#¥Q§X¢X¨iÑ%8Ô%8Ñ9Ô9Ð9ØŒyŒ -Ò/Ð/Ð/Ð/Ð/ð0ð 0r_   c                  ó  — t           D ]ù\  } }t          | |¬¦  «        }|                     t                               t
          j        ¦  «        t                               t
          j        ¦  «        ¦  «         t          | |¬¦  «        }|                     t                               t
          j        ¦  «        t                               t
          j        ¦  «        ¦  «         d}t          |j
        |j
        |¬¦  «         Œúd S )Nr$   r(   )r)   )r6   r	   r7   r8   rþ   r>   Úfloat32r9   Úfloat64r   r¤   )r%   r&   Úclf_32Úclf_64r)   s        rM   Ú,test_lda_numeric_consistency_float32_float64r  ô  sÇ   € Ý-ð ?ð ?Ñˆ�	Ý+°6ÀYÐOÑOÔOˆØ�
Š
•1—8’8�BœJÑ'Ô'­¯ªµ"´*Ñ)=Ô)=Ñ>Ô>Ð>Ý+°6ÀYÐOÑOÔOˆØ�
Š
•1—8’8�BœJÑ'Ô'­¯ªµ"´*Ñ)=Ô)=Ñ>Ô>Ð>ð ˆÝ˜œ f¤l¸Ð>Ñ>Ô>Ð>Ð>ð?ð ?r_   r   r    c                 ó¦  — t          | ¬¦  «        }|                     t          t          ¦  «                             t          ¦  «        }t          |t          ¦  «         |                     t          t          ¦  «                             t          ¦  «        }t          |t          ¦  «         |                     t          ¦  «        }t          |d d …df         dk    dz   t          ¦  «         |                     t          ¦  «        }t          t          j        |¦  «        |d¦  «         |                     t          t          ¦  «                             t          ¦  «        }t          j        |t          k    ¦  «        sJ ‚t          j        t           ¦  «        5  |                     t          t"          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr£   r   r'   é   )r
   r7   rÔ   rÕ   r:   r   ÚX7r<   r=   r   r>   r?   Úy7rA   rB   rC   rE   Úy4)r%   rG   rH   rI   rJ   rK   rL   s          rM   Útest_qdar     s¡  € õ
 (¨vÐ
6Ñ
6Ô
6€CØ�WŠW•R�‰_Œ_×$Ò$¥RÑ(Ô(€FÝ�v�rÑ"Ô"Ð"ð �gŠg•b�"‰oŒo×%Ò%¥bÑ)Ô)€GÝ�w¥Ñ#Ô#Ð#ð ×%Ò%¥bÑ)Ô)€MÝ˜ a a a¨ dÔ+¨cÒ1°QÑ6½Ñ;Ô;Ð;Ø×-Ò-­bÑ1Ô1ÐÝ�bœfÐ%6Ñ7Ô7¸ÈÑJÔJÐJà�gŠg•b�"‰oŒo×%Ò%¥bÑ)Ô)€GåŒ6�'�R’-Ñ Ô Ð Ð Ð õ 
Œ•zÑ	"Ô	"ð ð Ø�Š••B‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Æ!GÇG
ÇG
c                  óp  — t          dd¬¦  «        } t          j        t          ¦  «        5  |                      t
          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ddt          ¦   «         ¬¦  «        } t          j        t          d¬¦  «        5  |                      t
          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          dt          ¦   «         ¬	¦  «        } t          j        t          d
¬¦  «        5  |                      t
          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          dt          dd¬¦  «        ¬	¦  «        } t          j        t          ¦  «        5  |                      t
          t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r!   r$   r    r,   r-   r/   r0   r2   z7covariance_estimator is not supported with solver='svd'r   r3   )r
   rB   rC   rD   r7   r8   r9   r   rE   r   r   ©rG   s    rM   Útest_qda_covariance_estimatorr    s†  € õ (¨uÀÐ
GÑ
GÔ
G€CÝ	ŒÕ*Ñ	+Ô	+ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ (Ø #Õ<LÑ<NÔ<Nðñ ô €Cõ 
ŒÝð.ð
ñ 
ô 
ð ð ð 	�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ (¨uÍ:É<Ì<Ð
XÑ
XÔ
X€CÝ	ŒÝÐSð
ñ 
ô 
ð ð ð 	�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ (Ø­V¸qÈÐ-PÑ-PÔ-Pðñ ô €Cõ 
Œ•zÑ	"Ô	"ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sG   «!AÁAÁAÂ!C	Ã	CÃCÄ!D9Ä9D=Å D=Å=!F+Æ+F/Æ2F/c                 óÐ  —  G d„ d¦  «        }t           j                             | ¦  «        }|                     dd¦  «        }|                     dd¬¦  «        }t          dd	d
¬¦  «        }t          d |¦   «         d
¬¦  «        }|                     ||¦  «         |                     ||¦  «         t          |j        |j        ¦  «         t          |j	        |j	        ¦  «         d S )Nc                   ó   — e Zd Zd„ ZdS )ú3test_qda_ledoitwolf.<locals>.StandardizedLedoitWolfc                 óø   — t          ¦   «         }|                     |¦  «        }t          |¦  «        d         }|j        d d …t          j        f         |z  |j        t          j        d d …f         z  }|| _        d S rä   rå   rè   s        rM   r7   z7test_qda_ledoitwolf.<locals>.StandardizedLedoitWolf.fitC  rí   r_   Nrî   ra   r_   rM   rò   r  B  ró   r_   rò   rn   rm   r   rô   rT   Tr!   r    rÚ   rÛ   )
r>   r´   rµ   rÜ   r·   r
   r7   r   r…   r†   )Úglobal_random_seedrò   r]   r8   r9   rÝ   rÞ   s          rM   Útest_qda_ledoitwolfr  >  sÿ   € ð!ð !ð !ð !ð !ñ !ô !ð !õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ�Š��bÑÔ€AØ�Š�A˜FˆÑ#Ô#€AÝ	&Ø¨¸ð
ñ 
ô 
€Bõ 
'ØØ3Ð3Ñ5Ô5Øð
ñ 
ô 
€Bð
 ‡F‚Fˆ1ˆa�L„L€LØ‡F‚Fˆ1ˆa�L„L€LÝ�B”I˜rœyÑ)Ô)Ð)Ý�B”N B¤NÑ3Ô3Ð3Ð3Ð3r_   c                 óø  — d}d}d}t          |||ddg| ¬¦  «        \  }}t          d¬¦  «        }t          d¬¦  «        }|                     ||¦  «         |                     ||¦  «         t          |¦  «        D ]~}t	          t          j        |j        |         ¦  «        t          j        |j        |         ¦  «        d	d
|› �¬¦  «         t	          |j        |         |j        |         d	d|› �¬¦  «         Œd S )Nr   i¸  r³   ç      @)r\   r¢   r[   Úcluster_stdrh   r   r£   r    gü©ñÒMbP?z)SVD and Eigen rotations differ for class )r)   r+   z(SVD and Eigen scalings differ for class )	r   r
   r7   rf   r   r>   rÄ   Ú
rotations_Ú	scalings_)	r  r¢   rO   r\   r8   r9   Úclf_svdÚ	clf_eigenÚ	class_idxs	            rM   Útest_qda_coefsr  \  s8  € à€JØ€IØ€IÝØØØØ˜#�JØ'ðñ ô �D€A€qõ ,°5Ð9Ñ9Ô9€GÝ-°WÐ=Ñ=Ô=€Ià‡K‚K��1ÑÔÐØ‡M‚M�!�QÑÔÐå˜9Ñ%Ô%ð 
ð 
ˆ	ÝÝŒF�7Ô% iÔ0Ñ1Ô1ÝŒF�9Ô'¨	Ô2Ñ3Ô3ØØKÀ	ÐKÐKð		
ñ 	
ô 	
ð 	
õ 	ØÔ˜iÔ(ØÔ 	Ô*ØØJ¸yÐJÐJð		
ñ 	
ô 	
ð 	
ð 	
ð
ð 
r_   c                  óÄ  — t          ¦   «         } |                      t          t          ¦  «                             t          ¦  «        }t          j        |dk    ¦  «        }d}t          t          j        |d|z
  g¦  «        ¬¦  «        } |                      t          t          ¦  «                             t          ¦  «        }t          j        |dk    ¦  «        }||k    sJ ‚d S )Nr   g»½×Ùß|Û=r   r”   )r
   r7   rÔ   rÕ   r:   r>   r�   r„   )rG   rH   Ún_posÚnegÚn_pos2s        rM   Útest_qda_priorsr$  ~  s©   € Ý
'Ñ
)Ô
)€CØ�WŠW•R�‰_Œ_×$Ò$¥RÑ(Ô(€FÝŒF�6˜Q’;ÑÔ€Eà
€CÝ
'­r¬x¸¸aÀ#¹g¸Ñ/GÔ/GÐ
HÑ
HÔ
H€CØ�WŠW•R�‰_Œ_×$Ò$¥RÑ(Ô(€FÝŒV�F˜a’KÑ Ô €Fà�EŠ>ˆ>ˆ>ˆ>ˆ>ˆ>r_   Úpriors_type)ÚlistÚtupler„   c                 óö   — ddg}t          t          ddg| ¦  «        ¬¦  «                             t          t          ¦  «        }t          |j        t          j        ¦  «        sJ ‚t          |j        |¦  «         dS )z$Check that priors accept array-like.r'   r”   N)
r
   r   r7   rÔ   rÕ   Ú
isinstancerš   r>   Úndarrayr   )r%  r•   rG   s      rM   Útest_qda_prior_typer+  ‹  sv   € ð �3ˆZ€FÝ
'Ý! 3¨ *¨kÑ:Ô:ðñ ô ç	‚c�"�b�k„kð õ �c”k¥2¤:Ñ.Ô.Ð.Ð.Ð.Ý�s”{ FÑ+Ô+Ð+Ð+Ð+r_   c                  ó  — t          j        ddg¦  «        } t          | ¬¦  «                             t          t
          ¦  «        }t          |j        |j        ¦  «         d| d<   |j        d         |j        d         k    sJ ‚dS )zCCheck that altering `priors` without `fit` doesn't change `priors_`r'   r”   çš™™™™™É?r   N)	r>   r„   r
   r7   r8   r9   r   rš   r•   )r•   Úqdas     rM   Útest_qda_prior_copyr/  –  sy   € åŒX�s˜C�jÑ!Ô!€FÝ
'¨vÐ
6Ñ
6Ô
6×
:Ò
:½1½aÑ
@Ô
@€Cõ �s”{ C¤JÑ/Ô/Ð/ð €Fˆ1�IØŒ;�qŒ>˜SœZ¨œ]Ò*Ð*Ð*Ð*Ð*Ð*r_   c                  óÎ  — t          ¦   «                              t          t          ¦  «        } t	          | d¦  «        rJ ‚t          d¬¦  «                             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¦  «        ¦  «         d S )Nr†   T)rp   r   gffffffæ?r—   r   gÚÁQUUÕ?gÚÁQUUÕ¿g“vWUUå?)	r
   r7   rÔ   rÕ   rÖ   r   r†   r>   r„   r  s    rM   Útest_qda_store_covariancer1  £  sÜ   € å
'Ñ
)Ô
)×
-Ò
-­bµ"Ñ
5Ô
5€CÝ�s˜MÑ*Ô*Ð*Ð*Ð*õ (¸Ð
>Ñ
>Ô
>×
BÒ
BÅ2ÅrÑ
JÔ
J€CÝ�3˜Ñ&Ô&Ð&Ð&Ð&å˜cœo¨aÔ0µ"´(¸SÀ$¸KÈ$ÐPSÈÐ;UÑ2VÔ2VÑWÔWÐWåØŒ˜ÔÝ
Œ�:˜{Ð+¨k¸:Ð-FÐGÑHÔHñô ð ð ð r_   c                 ó’  — t           j                             | ¦  «        }d}t          |¬¦  «        }t	          j        t          j        |¬¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  |                     t          ¦  «        }d d d ¦  «         n# 1 swxY w Y   |dk    rt          |d¬¦  «        }n|dk    rt          |d¬¦  «        }t          j        ¦   «         5  t          j        d	¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t          t          ¦  «         |                     t          ¦  «        }t!          |t          ¦  «         |                     d
¬¦  «        }t          j        g d¢¦  «        }t          |¬¦  «        }|dk    r|dz   }n|dk    r|}t	          j        t          j        |¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   |dk    rbt          |d¬¦  «        }t	          j        t          j        |¬¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S |dk    r)t          |d¬¦  «        }|                     ||¦  «         d S d S )Nz3The covariance matrix of class .+ is not full rank.r£   r0   r   rƒ   )r%   Ú	reg_paramr    r$   Úerror)é	   é   rT   )	r   r   r   r   r   r   r   r   r   z When using `solver='svd'`g333333Ó?)r>   r´   Údefault_rngr
   rB   rC   r   ÚLinAlgErrorr7   ÚX2rÕ   ÚAttributeErrorr:   ÚwarningsÚcatch_warningsÚsimplefilterr   r¶   r„   )	r  r%   r]   r›   rG   rH   r8   r9   Úmsg2s	            rM   Útest_qda_regularizationr?  ´  sÌ  € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€Cð A€CÝ
'¨vÐ
6Ñ
6Ô
6€CÝ	Œ•vÔ)°Ð	5Ñ	5Ô	5ð ð Ø�Š••B‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•~Ñ	&Ô	&ð !ð !Ø—’�R‘”ˆð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð �‚€Ý+°6ÀTÐJÑJÔJˆˆØ	�7Ò	Ð	Ý+°6ÀTÐJÑJÔJˆÝ	Ô	 Ñ	"Ô	"ð 'ð 'ÝÔ˜gÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'à‡G‚G�B•�O„O€OØ�[Š[�‰_Œ_€FÝ�v�rÑ"Ô"Ð"ð 	�
Š
˜ˆ
ÑÔ€AÝ
ŒÐ,Ð,Ð,Ñ-Ô-€Aå
'¨vÐ
6Ñ
6Ô
6€CØ�‚€ØÐ1Ñ1ˆˆØ	�7Ò	Ð	Øˆå	Œ•vÔ)°Ð	6Ñ	6Ô	6ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 �‚€Ý+°6ÀSÐIÑIÔIˆÝŒ]�6Ô-°TÐ:Ñ:Ô:ð 	ð 	Ø�GŠG�A�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 
�7Ò	Ð	Ý+°6ÀSÐIÑIÔIˆØ�Š��1‰Œˆˆˆð 
Ð	sZ   Á!A?Á?BÂBÂ#C
Ã
CÃCÄD8Ä8D<Ä?D<ÈH%È%H)È,H)É'JÊJÊJc                  ó„  — t          dddd¬¦  «        \  } }t          j        | t          j        | j        d         dz  ¦  «                             | j        d         | j        d         ¦  «        ¦  «        } t          | d¦  «        }t          ||j        ¦  «         t          | d¦  «        }t          ||j        ¦  «         d S )	Nrn   r¼   r   ro   r¡   r   Ú	empiricalr!   )	r   r>   ru   rÀ   r¬   r¾   r   r   rÂ   )rÑ   r9   Úc_eÚc_ss       rM   Útest_covariancerD  ê  s¥   € Ý °¸1È2ÐNÑNÔN�D€A€qõ 	Œˆq•"”)˜AœG AœJ¨!™OÑ,Ô,×4Ò4°Q´W¸Q´ZÀÄÈÄÑLÔLÑMÔM€Aå
ˆq�+Ñ
Ô
€CÝ˜˜SœUÑ#Ô#Ð#å
ˆq�&‰/Œ/€CÝ˜˜SœUÑ#Ô#Ð#Ð#Ð#r_   c                 ó  — t          j        ddgddgg¦  «        }t          j        ddg¦  «        }t          | ¬¦  «        }t          j        t
          d¬¦  «        5  |                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	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 morer0   N)r>   r„   r	   rB   rC   rE   r7   ©r%   r8   r9   rG   s       rM   Ú=test_raises_value_error_on_same_number_of_classes_and_samplesrI  ÷  sÎ   € õ 	Œ�3˜�*˜s C˜jÐ)Ñ*Ô*€AÝ
Œ�#�s�ÑÔ€AÝ
$¨FÐ
3Ñ
3Ô
3€CÝ	Œ•zÐ)MÐ	NÑ	NÔ	Nð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁB Â BÂBc                 ó&  — t          j        ddgddgddgddgg¦  «        }t          j        g d¢¦  «        }t          | ¬¦  «        }t          j        t
          d¬¦  «        5  |                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	zG
    Tests that if a class has one sample, a ValueError is raised.
    r'   r–   gš™™™™™Ù?)rF  rF  rF  rG  r£   zy has only 1 sample in classr0   N)r>   r„   r
   rB   rC   rE   r7   rH  s       rM   Ú/test_raises_value_error_on_one_sample_per_classrK    sÝ   € õ
 	Œ�3˜�*˜s C˜j¨3°¨*°s¸C°jÐAÑBÔB€AÝ
ŒÐ%Ð%Ð%Ñ&Ô&€AÝ
'¨vÐ
6Ñ
6Ô
6€CÝ	Œ•zÐ)GÐ	HÑ	HÔ	Hð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á"BÂB
ÂB
c                  óX  ‡— t          ¦   «                              t          t          ¦  «        } |                      ¦   «         }d                     ¦   «         Št          j        ˆfd„t          | j	        j
        d         ¦  «        D ¦   «         t          ¬¦  «        }t          ||¦  «         dS )z6Check get_feature_names_out uses class name as prefix.r	   c                 ó   •— g | ]}‰› |› �‘Œ	S ra   ra   )rX   ÚiÚclass_name_lowers     €rM   r^   z.test_get_feature_names_out.<locals>.<listcomp>  s4   ø€ ð 	
ð 	
ð 	
àð  Ð$ Ð$Ð$ð	
ð 	
ð 	
r_   r   r   N)r	   r7   r8   r9   Úget_feature_names_outÚlowerr>   r„   rf   r¸   r¬   Úobjectr   )ÚestÚ	names_outÚexpected_names_outrO  s      @rM   Útest_get_feature_names_outrV    s±   ø€ õ %Ñ
&Ô
&×
*Ò
*­1­aÑ
0Ô
0€CØ×)Ò)Ñ+Ô+€Ià3×9Ò9Ñ;Ô;ÐÝœð	
ð 	
ð 	
ð 	
å˜3Ô8Ô>¸qÔAÑBÔBð	
ñ 	
ô 	
õ ðñ ô Ðõ �yÐ"4Ñ5Ô5Ð5Ð5Ð5r_   é   Ú
train_sizern   Úsolver_no_shrinkagec                 ó  — d}|}t           j                             | ¦  «        }|                     dd|¬¦  «        }|                     dd|¬¦  «        }t          j        t           j                             |dz  |¦  «        t          j        |¦  «        z  t           j                             |dz  |¦  «        t          j        |¦  «        z  gd¬	¦  «        }t          j        dg|dz  z  d
g|dz  z  z   ¦  «        }	t          d|d¬¦  «        }
t          dd¬¦  «        }t          |d ¬¦  «        }t          |||	|
d¬¦  «        }t          |||	|
d¬¦  «        }|                     ¦   «         dk    sJ ‚|                     ¦   «         dk     sJ ‚d S )NrŸ   g       @r  rT   r-  r³   r   r   )Úaxisr   r¼   )Ún_splitsrX  rh   r    r!   r$   Úd2_brier_score)ÚcvÚscoringgÍÌÌÌÌÌì?r–   )r>   r´   r7  rÌ   Úconcatenater÷   rÁ   r„   r   r
   r   rY   )r  r¢   rX  rY  r\   r]   Úvars1Úvars2r8   r9   r^  Úqda_shrinkageÚqda_no_shrinkageÚscores_no_shrinkageÚscores_shrinkages                  rM   Útest_qda_shrinkage_performancerg  !  s²  € ð €IØ€Jå
Œ)×
Ò
Ð 2Ñ
3Ô
3€Cð �KŠK˜˜S zˆKÑ2Ô2€EØ�KŠK˜˜S zˆKÑ2Ô2€Eå
ŒåŒI�OŠO˜I¨™N¨JÑ7Ô7½"¼'À%¹.¼.ÑHÝŒI�OŠO˜I¨™N¨JÑ7Ô7½"¼'À%¹.¼.ÑHð	
ð ð	ñ 	ô 	€Aõ 	Œ�!�˜	 Q™Ñ'¨1¨#°¸a±Ñ*@Ñ@ÑAÔA€Aõ 
˜q¨ZÀaÐ	HÑ	HÔ	H€BÝ1¸ÈFÐSÑSÔS€MÝ4Ø"¨dðñ ô Ðõ *Ø˜!˜Q 2Ð/?ðñ ô Ðõ 'Ø�q˜! Ð,<ðñ ô Ðð × Ò Ñ"Ô" SÒ(Ð(Ð(Ð(Ø×#Ò#Ñ%Ô%¨Ò+Ð+Ð+Ð+Ð+Ð+r_   )Nr;  Únumpyr>   rB   Úscipyr   Úsklearn.clusterr   Úsklearn.covariancer   r   r   Úsklearn.datasetsr   Úsklearn.discriminant_analysisr	   r
   r   Úsklearn.model_selectionr   r   Úsklearn.preprocessingr   Úsklearn.utilsr   Úsklearn.utils._testingr   r   r   r   r   r„   r8   r9   r@   r;   rÔ   rÕ   r  r
  r9  r  r6   rN   ÚmarkÚparametrizer’   r�   r¨   r®   rº   rÊ   rÒ   r×   rf   rß   rõ   rü   r  r  Úint32Úint64r  r  r  r  r  r  r$  r+  r/  r1  r?  rD  rI  rK  rV  rg  ra   r_   rM   ú<module>rv     sî  ðØ €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à "Ð "Ð "Ð "Ð "Ð "Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð
 BÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð €B„Hˆr�2ˆh˜˜R˜ 2 r (¨Q°¨F°Q¸°F¸QÀ¸FÐCÈ3ÐOÑOÔO€Ø€B„HÐÐÐÑ Ô €Ø€R„XÐ Ð Ð Ñ!Ô!€ð €R„XØ€TˆBˆ4�"�˜�s˜Q˜C ! Ð%Ø
ðñ ô €ð €R„XØˆ€Vˆb�"ˆX˜˜B�x " b ¨B°¨8°a¸°V¸aÀ¸VÀaÈÀVÈaÐQRÈVÐTñô €ð €R„XÐ)Ð)Ð)Ñ*Ô*€Ø€R„XÐ)Ð)Ð)Ñ*Ô*€ð €R„X�ˆt�b�T˜B˜4 " ¨ s¨Q¨C°!°°q°c¸A¸3Ð?Ñ@Ô@€ð €R„XØˆ!€Wˆr�1ˆg˜˜A�w  Q ¨!¨Q¨°!°Q°¸!¸Q¸À!ÀQÀÈ!ÈQÈÐPñô €ð
 €R„XÐ)Ð)Ð)Ñ*Ô*€ð
ð 
ð 
Ð ð<ð <ð <ð~ „×Ò˜ q¨! fÑ-Ô-Ø„×Ò˜Ð#;Ð#;Ð#;Ñ<Ô<ð[ð [ñ =Ô<ñ .Ô-ð[ð|:ð :ð :ð2Jð Jð Jð,ð ð ð"ð ð ð:&=ð &=ð &=ðRQð Qð Qð"ð ð ð< „×Ò˜   r¡¤Ñ+Ô+ð4ð 4ñ ,Ô+ð4ð$4ð 4ð 4ð< „×Ò˜¨¨1 vÑ.Ô.Ø„×Ò˜ q¨! fÑ-Ô-ðð ñ .Ô-ñ /Ô.ðð2 „×ÒØà	Œ�R”ZÐ Ø	Œ�R”ZÐ Ø	Œ�2”:ÐØ	Œ�2”:Ðð	ñô ð0ð 0ñô ð0ð	?ð 	?ð 	?ð „×Ò˜ E¨7Ð#3Ñ4Ô4ðð ñ 5Ô4ðð6ð ð ðD4ð 4ð 4ð<
ð 
ð 
ðD
ð 
ð 
ð „×Ò˜Ð(BÐ(BÐ(BÑCÔCð,ð ,ñ DÔCð,ð
+ð 
+ð 
+ðð ð ð" „×Ò˜ E¨7Ð#3Ñ4Ô4ð2ð 2ñ 5Ô4ð2ðj
$ð 
$ð 
$ð „×Ò˜Ð#;Ð#;Ð#;Ñ<Ô<ð	ð 	ñ =Ô<ð	ð „×Ò˜ E¨7Ð#3Ñ4Ô4ðð ñ 5Ô4ðð6ð 6ð 6ð" „×Ò˜¨ tÑ,Ô,Ø„×Ò˜¨ uÑ-Ô-Ø„×ÒÐ.°¸Ð0@ÑAÔAð(,ð (,ñ BÔAñ .Ô-ñ -Ô,ð(,ð (,ð (,r_   