
    ri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jX                  j[                  dddg      ejX                  j[                  dg d      d               Z.d Z/d Z0d  Z1d! Z2d" Z3d# Z4d$ Z5ejX                  j[                  d% e6d&            d'        Z7d( Z8ejX                  j[                  d)dd*g      ejX                  j[                  dd*dg      d+               Z9ejX                  j[                  d,ejt                  ejt                  fejv                  ejv                  fejx                  ejv                  fejz                  ejv                  fg      d-        Z>d. Z?ejX                  j[                  dd/d0g      d1        Z@d2 ZAd3 ZBd4 ZCd5 ZDejX                  j[                  d6g d7      d8        ZEd9 ZFd: ZGejX                  j[                  dd/d0g      d;        ZHd< ZIejX                  j[                  dg d      d=        ZJejX                  j[                  dd/d0g      d>        ZKd? ZLejX                  j[                  d)d@g      ejX                  j[                  dAdBg      ejX                  j[                  dCd/d0g      dD                      ZMy)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        ||      }|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_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/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/tests/test_discriminant_analysis.pytest_lda_predictrN   D   sK    & ;	%	()LA&&q)61kF&:; ''"a.((,7A{V';< ))"-M!Q$/#5:A{V?ST11"5FF$%&(	
 ''!R.((+vvgm$:kF&::$3;6 %EV
DC	*	+ 1 %;K;MC 
.
  	1 %E

UC	J
  	1 %Fa,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covr8   clazzr9   s
             rM   generate_datasetz0test_lda_predict_proba.<locals>.generate_dataset   s     !.II "%Wk!:D# ''c	S\8Q'R
 II@Ec'l@STueW	S\12T
 !t Us   *B%
B+r   (   i   
   d   i_ *   )r[   r\   r]   r^   T)r%   store_covariancer&   r,   )r*   r   r         i   c                     t        j                  ||   t        j                  | ||         z         j                         S N)r>   r?   dotitem)samplecoef	interceptrb   s       rM   discriminant_funcz1test_lda_predict_proba.<locals>.discriminant_func   s3    vvi&U)DDEJJLL    {Gz?rn   )r>   arrayrX   r	   r7   r   means_covariance_r   invrZ   appendro   newaxisfloatsumrB   approxr<   rY   )r%   rO   rc   blob_centers	blob_stdsr8   r9   lda	precisionalpha_k	alpha_k_0rb   rq   rt   probprob_ref
prob_ref_2s                    rM   test_lda_predict_probar      s    88aVc2Yb	:;JYGLB8b#Y/03|3DDEI9SUDAq %	c!Qi 
 CJJ48COOYq\:
 

9Q<(IGIs<(1,- 	
FF9|E2\"5EEq"**}UV	
 	FFU+l2.>>

ANN	
		
 XXRyk"FM 88 y1}-	
  !&'9eD */y1})= % .fgy%P		
D$ 266$<H 	 "'y1}!5 &fgy%H		
J v}}Z0000 &!299dH-=#>rzz#JQU?	
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'   rk   priorszpriors must be non-negativer0   333333??g?r   )r>   rw   r	   rB   rC   rE   r7   r8   r9   warnsUserWarningr   priors_)r   rG   msg
prior_norms       rM   test_lda_priorsr      s    XXsDk"F
$F
3C
'C	z	- 1
 %S#J
7CGGAqM XXsCj!F4,'J
$F
3C	k	" 1 ckk: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        r[   
n_featuresr\   r^   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
ITVDAq -E:K-V<L.g>MOOAqQak//1C1CQGk//1D1DaHm11<3E3EqIru   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'r0   )	r	   r7   r8   r9   	transformshaperB   rC   rD   )rG   X_transformedr   s      rM   test_lda_transformr     s    
$E
BCGGAqM++A.Mq!Q&&&
$G!
DCGGAqM++A.Mq!Q&&&
$F
CCGGAqM
0C	*#	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   rh   )re      )locscalerT   r   )re   rS   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   #  s    II!!!$E#H5Aa'A.g>Ma??CCEsAN2288D@ 9@ -E:KOOAq==AACS!L0066$> 9> --}/V/Vru   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>   rw   r|   reshaperepeataranger   r	   r7   r   sqrtr~   r   ra   Teyeabsro   )meansscatterr8   r9   rG   means_transformedd1d2s           rM   test_lda_orthogonalityr   @  s    HHj)ZCDE hh	
	G 
q"**a	 72::q!+;#<	<EEgNA
		"))EKKN+W]]1-=>A %E
2
6
6q!
<Ce,	1	 1! 4	4B	1	 1! 4	4B"''"&&Q-
  B"''"&&Q-
  B s}}W5778"&&)D rvvb!fq!f56< rvvb!fq!f56<ru   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 )Nrh   i  r   r   r   )rd   r   r   )rg   r   r   )r   rh   i'  rP   r   r   zusing covariance: %s)r>   r   r   uniformrU   r	   r7   score)nr_   x1x2xr9   r%   rG   s           rM   test_lda_scalingr   i  s    A
))


%C 
RQF	#k	1B	RQF	#j	0B
		2r(o-A	qA37A* Q(7wwq!}""1a(C/P1G&1PP/Qru   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   ry   T)r%   rj   gil?gam?g	^?r   )	r	   r7   X6y6hasattrr   ry   r>   rw   )r%   rG   s     rM   test_lda_store_covariancer   z  s    $ 
(7;;BCsM*** )NRR
 sM***!OORXX(';h=Q&RS	

 %E
2
6
6r2
>CsM*** %FT
J
N
NrSU
VC3&&&Hh#7(H9M"NOru   seedrg   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 )Nrh   rg   r   rS   Tr'   r   rj   r&   r%   )r&   rj   r.   r%   )r>   r   r   randr   r	   r   r7   r   rx   ry   )r   r_   r8   r9   c1c2s         rM   test_lda_shrinkager     s     ))


%CbAAS"A	#TSQW	XB	#-<
B
 FF1aLFF1aLBIIryy)BNNBNN3ru   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>   r|   ry   selfr8   scX_scss        rM   r7   z7test_lda_ledoitwolf.<locals>.StandardizedLedoitWolf.fit  b    !B##A&DD!!$A		!RZZ-(1,ryyQ/GGA Dru   N__name__
__module____qualname__r7    ru   rM   StandardizedLedoitWolfr         	!ru   r   r   rh   rg   r   rh   rS   Tr!   r   r   r   )
r>   r   r   r   r   r	   r7   r   rx   ry   )r   r_   r8   r9   r   r   s         rM   test_lda_ledoitwolfr     s    ! ! ))


"CbAAF#A	#
B 
$35
B
 FF1aLFF1aLBIIryy)BNNBNN3ru   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   rg   r   )r   z#n_components cannot be larger than r0   )r   randnr>   tilerZ   minr	   r7   maxrB   rC   rE   )
rO   r   r_   r[   r8   r9   max_componentsr   r   r   s
             rM   test_lda_dimension_warningr     s     Q
CI		)Z(A 	i )y"81"<=jyIAY]3N'!+T>B (lC1
 (!+SY]-Ka-OP 
 )lC3]]:S1 	GGAqM	 		 	s   C##C,	zdata_type, expected_typec                     t         D ]e  \  }}t        ||      }|j                  t        j	                  |       t
        j	                  |              |j                  j                  |k(  reJ  y )Nr$   )r6   r	   r7   r8   astyper9   r   r   )	data_typeexpected_typer%   r&   rG   s        rM   test_lda_dtype_matchr     sZ     . 0	()L#QXXi%89yy-///0ru   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)   )r6   r	   r7   r8   r   r>   float32r9   float64r   r   )r%   r&   clf_32clf_64r)   s        rM   ,test_lda_numeric_consistency_float32_float64r     s    - ?	+6YO

188BJJ'"**)=>+6YO

188BJJ'"**)=> fll>?ru   r   r    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
   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
6CWWR_$$R(Fvr" ggb"o%%b)Gw# %%b)Mad+c1Q6;--b1bff%67Jggb"o%%b)G66'R-    
z	" B  s   E66E?c                     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)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
GC	*	+ 1 (#<L<NC 
.
  	1 (u:<
XC	S
  	1 (Vq-PC 
z	" 1 5    s/   E;EE"E+EEE(+E4c                     G d d      }t         j                  j                  |       }|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_qda_ledoitwolf.<locals>.StandardizedLedoitWolfc                     t               }|j                  |      }t        |      d   }|j                  d d t        j
                  f   |z  |j                  t        j
                  d d f   z  }|| _        y r   r   r   s        rM   r7   z7test_qda_ledoitwolf.<locals>.StandardizedLedoitWolf.fitC  r   ru   Nr   r   ru   rM   r   r  B  r   ru   r   rh   rg   r   r   rS   Tr!   r    r   r   )
r>   r   r   r   r   r
   r7   r   rx   ry   )global_random_seedr   r_   r8   r9   r   r   s          rM   test_qda_ledoitwolfr  >  s    ! ! ))

 2
3CbAAF#A	&
B 
'35
B
 FF1aLFF1aLBIIryy)BNNBNN3ru   c                    d}d}d}t        |||ddg|       \  }}t        d      }t        d      }|j                  ||       |j                  ||       t        |      D ]  }t	        t        j                  |j                  |         t        j                  |j                  |         d	d
|        t	        |j                  |   |j                  |   d	d|         y )Nr   i  r         @)r[   r   r\   cluster_stdr^   r   r   r    gMbP?z)SVD and Eigen rotations differ for class )r)   r+   z(SVD and Eigen scalings differ for class )	r   r
   r7   rZ   r   r>   r   
rotations_	scalings_)	r  r   rO   r[   r8   r9   clf_svd	clf_eigen	class_idxs	            rM   test_qda_coefsr  \  s    JII#J'DAq ,59G-W=IKK1MM!Q9% 
	FF7%%i01FF9''	23?	{K		
 	i(	*>ykJ		

ru   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
   r7   r   r   r:   r>   r~   rw   )rG   rH   n_posnegn_pos2s        rM   test_qda_priorsr  ~  s    
'
)CWWR_$$R(FFF6Q;E
C
'rxxa#g/G
HCWWR_$$R(FVVFaK FE>>ru   priors_type)listtuplerw   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   r7   r   r   
isinstancer   r>   ndarrayr   )r  r   rG   s      rM   test_qda_prior_typer#    s[     3ZF
'!3*k:	c"bk  ckk2::...s{{F+ru   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   皙?r   N)	r>   rw   r
   r7   r8   r9   r   r   r   )r   qdas     rM   test_qda_prior_copyr'    sh    XXsCj!F
'v
6
:
:1a
@C s{{CJJ/ F1I;;q>SZZ]***ru   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 )Nry   T)rj   r   gffffff?r   r   gQUU?gQUUտgvWUU?)	r
   r7   r   r   r   r   ry   r>   rw   r  s    rM   test_qda_store_covariancer)    s    
'
)
-
-b"
5CsM*** (
>
B
B2r
JC3&&&cooa0"((S$K$PS;U2VW
:{+k:-FGHru   c                    t         j                  j                  |       }d}t        |      }t	        j
                  t        j                  |      5  |j                  t        t               d d d        t	        j
                  t              5  |j                  t              }d d d        |dk(  rt        |d      }n|dk(  rt        |d      }t        j                         5  t        j                  d	       d d d        |j                  t        t               |j                  t              }t!        |t               |j#                  d
      }t        j$                  g d      }t        |      }|dk(  r|dz   }n|dk(  r|}t	        j
                  t        j                        5  |j                  ||       d d d        |dk(  rNt        |d      }t	        j
                  t        j                  |      5  |j                  ||       d d d        y |dk(  r t        |d      }|j                  ||       y y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz3The covariance matrix of class .+ is not full rank.r   r0   r   rv   )r%   	reg_paramr    r$   error)	      rS   )	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   rw   )	r  r%   r_   r   rG   rH   r8   r9   msg2s	            rM   test_qda_regularizationr7    s    ))

 2
3C AC
'v
6C	v))	5 B 
~	& !R! +6TJ	7	+6TJ		 	 	" 'g&'GGBO[[_Fvr" 	


A
,-A
'v
6C11	7		v))	6 1
 +6SI]]6--T: 	GGAqM	 	 
7	+6SI1 
O ! !' '" 	 	s<   II&I/I*I6III'*I36I?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 )	Nrh   r   r   ri   r   r   	empiricalr!   )	r   r>   ro   r   r   r   r   r   r   )r   r9   c_ec_ss       rM   test_covariancer<    s    12NDAq 	q"))AGGAJ!O,44QWWQZLMA
q+
CSUU#
q&/CSUU#ru   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 morer0   N)r>   rw   r	   rB   rC   rE   r7   r%   r8   r9   rG   s       rM   =test_raises_value_error_on_same_number_of_classes_and_samplesrA    sl     	3*sCj)*A
#sA
$F
3C	z)M	N 1  s   A66A?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  |j                  ||       ddd       y# 1 sw Y   yxY w)	zG
    Tests that if a class has one sample, a ValueError is raised.
    r'   r   g?)r>  r>  r>  r?  r   zy has only 1 sample in classr0   N)r>   rw   r
   rB   rC   rE   r7   r@  s       rM   /test_raises_value_error_on_one_sample_per_classrC    su    
 	3*sCj3*sCjABA
%&A
'v
6C	z)G	H 1  s    A<<B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	   r7   r8   r9   get_feature_names_outlowerr>   rw   rZ   r   r   objectr   )est	names_outclass_name_loweriexpected_names_outs        rM   test_get_feature_names_outrM    s     %
&
*
*1a
0C))+I399; 388>>qAB	
   $	
  y"45	
s   6B   
train_sizerh   solver_no_shrinkagec                    d}|}t         j                  j                  |       }|j                  dd|      }|j                  dd|      }t        j                  t         j                  j                  |dz  |      t        j                  |      z  t         j                  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      }|j                         dkD  sJ |j                         dk  sJ y )Nr   g       @r  rS   r%  r   r   r   )axisr   r   )n_splitsrO  r^   r    r!   r$   d2_brier_score)cvscoringg?r   )r>   r   r/  r   concatenater   r   rw   r   r
   r   r`   )r  r   rO  rP  r[   r_   vars1vars2r8   r9   rU  qda_shrinkageqda_no_shrinkagescores_no_shrinkagescores_shrinkages                  rM   test_qda_shrinkage_performancer^  !  sd    IJ
))

 2
3C KKSzK2EKKSzK2E
IIOOINJ7"''%.HIIOOINJ7"''%.H	
 	A 	!	Q'1#a*@@AA 
qZa	HB1FSM4"d *!Q2/? 'q!,<   "S(((##%+++ru   )Nr3  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   rw   r8   r9   r@   r;   r   r   r  r  r1  r  r6   rN   markparametrizer   r   r   r   r   r   r   r   rZ   r   r   r   r   r   int32int64r   r   r  r  r  r  r  r#  r'  r)  r7  r<  rA  rC  rM  r^  r   ru   rM   <module>rm     s       " H H ' 
 B 0 ,  BHHr2hR2r(QFQFQFC3OBHH RXX ! RXXTB4"sQC!%
 RXXVb"XBx"bB8aVaVaVaQRVT RXX)*RXX)* RXXtbTB4"sQC!qcA3?@ RXX!Wr1gAwQ!Q!Q!Q!Q!QP
 RXX)*
 <~ q!f-#;<[ = .[|:2J,":&=RQ"< r+4 ,4$4< 1v.q!f- . /2 	RZZ 	RZZ 	2::	2::	00	? E7#34 56D4<
D
 (BC, D,
+" E7#342 52j
$ #;<	 =	 E7#34 56" t,u-.0@A(, B . -(,ru   