
     h$b                        d dl Zd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dl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j,         ej-        d"           ej.        d#          f         Z/ ej!        g d$          Z0g d%Z1d& Z2ej3        4                    d'ddg          ej3        4                    d(g d)          d*                         Z5d+ Z6d, Z7d- Z8d. Z9d/ Z:d0 Z;d1 Z<ej3        4                    d2 e=d3                    d4             Z>d5 Z?ej3        4                    d6dd7g          ej3        4                    d'd7dg          d8                         Z@ej3        4                    d9ejA        ejA        fejB        ejB        fejC        ejB        fejD        ejB        fg          d:             ZEd; ZFd< ZGd= ZHej3        4                    d>g d?          d@             ZIdA ZJdB ZKdC ZLdD ZMej3        4                    d(g d)          dE             ZNdF ZOej3        4                    dGdHdIg          dJ             ZPdS )K    N)linalg)clone)config_context)check_random_state)assert_array_equal)assert_array_almost_equal)assert_allclose)assert_almost_equal)_convert_to_numpy)_convert_container)
make_blobs)LinearDiscriminantAnalysis)QuadraticDiscriminantAnalysis)_cov)ledoit_wolf)KMeans)ShrunkCovariance)
LedoitWolf)StandardScaler      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          ||          }|                    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_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	            d/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/sklearn/tests/test_discriminant_analysis.pytest_lda_predictrL   K   s    & ; ;	%	()LLLA&&q))61kF&:;;; ''"a..((,,7A{V';<<< ))"--M!!!Q$/#5:A{V?STTT11"55F$%%&(	
 	
 	
 	
 ''!R..((++vgm$$::kF&:::$:
$EV
D
D
DC	*	+	+  1               %;K;M;M  C 
.
 
 
   	1               %E

U
U
UC	J
 
 
   	1               %Fa,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      rK   
<listcomp>zDtest_lda_predict_proba.<locals>.generate_dataset.<locals>.<listcomp>   sM       D# ''c	S\\8Q'RR      c                 <    g | ]}|gt                    z  z  S  )rU   )rV   clazzrY   rZ   s     rK   r\   zDtest_lda_predict_proba.<locals>.generate_dataset.<locals>.<listcomp>   s+    TTTueW	S\\12TTTr]   )r   r<   vstackziphstackrangerU   )rZ   rY   covariancesrandom_stater6   r7   r[   s   ``    @rK   generate_datasetz0test_lda_predict_proba.<locals>.generate_dataset   s     !..I     !$Wk!:!:  
 
 ITTTTTc'll@S@STTT
 
 !tr]   r   (   i   
   d   i_ *   )rZ   rY   re   rf   T)r'   store_covariancer(   r.   )r,   r   r         i   c                 n    t          j        ||         t          j        | ||                   z             S N)r<   r=   dot)samplecoef	interceptr`   s       rK   discriminant_funcz1test_lda_predict_proba.<locals>.discriminant_func   s,    vi&U)D)DDEEEr]   c                     g | ]O}t           |          d t          fdt          d z
            D                       z   z            PS )r   c                 ,    g | ]} |          S r_   r_   rV   r`   alpha_k	alpha_k_0rw   rt   s     rK   r\   z5test_lda_predict_proba.<locals>.<listcomp>.<listcomp>   s:        % .-fgy%PP  r]   )floatsumrd   )rV   r`   r{   r|   rw   rM   rt   s     rK   r\   z*test_lda_predict_proba.<locals>.<listcomp>   s     	
 	
 	
  !!&'9eDD      ).y1})=)=   	 	
 	
 	
r]   c                 ,    g | ]} |          S r_   r_   rz   s     rK   r\   z*test_lda_predict_proba.<locals>.<listcomp>   s:        &%fgy%HH  r]   {Gz?rr   )r<   arrayrU   r   r5   r	   means_covariance_r   invrd   appendrs   newaxisr~   r}   r@   approxr:   rc   )r'   rM   rg   blob_centers	blob_stdsr6   r7   lda	precisionr`   probprob_ref
prob_ref_2r{   r|   rw   rt   s    `           @@@@rK   test_lda_predict_probar      sN       8aVc2Yb	:;;JYJGLB8b#Y/03|3D3DDEEI9SU  DAq %  	c!Qii 
 CJ48888COYq\::::
 
9Q<((IGIs<((1,-- 	
 	
F9|E2\"5EEqqq"*}UVV	
 	
 	
 	FU+l2.>>
AAANN 	
 	
 	
 	
 XRyk""FF F F 8	
 	
 	
 	
 	
 	
 	
 	
 y1}--	
 	
 	
 D$ 26$<<H 	      !&y1}!5!5   		
 J v}Z000000 &!!29dH-=#>#>rz#JQU     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)   ro   priorszpriors must be non-negativer0   333333??g?r   )r<   r   r   r@   rA   rC   r5   r6   r7   warnsUserWarningr   priors_)r   rE   msg
prior_norms       rK   test_lda_priorsr      s   XsDk""F
$F
3
3
3C
'C	z	-	-	-  1              
 %S#J
7
7
7CGGAqMMM XsCj!!F4,''J
$F
3
3
3C	k	"	"  1               ck: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   i     rZ   
n_featuresrY   rf   r    r'   r!   r"   r   )r   r   r5   r   coef_)r   rM   rZ   r6   r7   clf_lda_svdclf_lda_lsqrclf_lda_eigens           rK   test_lda_coefsr     s    JII
ITV  DAq -E:::K-V<<<L.g>>>MOOAqQak/1CQGGGk/1DaHHHm1<3Eq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   r5   r6   r7   	transformshaper@   rA   rB   )rE   X_transformedr   s      rK   test_lda_transformr     sJ   
$E
B
B
BCGGAqMM++A..Mq!Q&&&&
$G!
D
D
DCGGAqMM++A..Mq!Q&&&&
$F
C
C
CCGGAqMMM
0C	*#	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   rl   )ri      )locscalerS   r   )ri   rR   r"   r         ?)r   z/Unexpected length for explained_variance_ratio_r    )r<   randomRandomStatenormalrandintr   r5   r
   explained_variance_ratio_r~   r   r   )stater6   r7   r   r   s        rK   !test_lda_explained_variance_ratior   *  s\    I!!!$$E#H55Aa''A.g>>>Ma?CCEEsANNN28 =   8   -E:::KOOAq=AACCS!LLL06 ;   8   -}/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   r5   r   sqrtr~   r
   rX   Teyeabsrs   )meansscatterr6   r7   rE   means_transformedd1d2s           rK   test_lda_orthogonalityr   G  s    Hjjj)))ZZZCDDE hKKLLKKLLKKLL	
	 	G 
qqq"*aaa	 72:qqq!!!+;#<	<EEgNNA
	")EKN++W]1-=>>A %E
2
2
2
6
6q!
<
<Ce,,	1	 1! 4	4B	1	 1! 4	4B"'"&Q--
 
  B"'"&Q--
 
  B s}}W55788"&))DDD rvb!fq!f5566<<< rvb!fq!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 )Nrl   i  r   r   r   )rh   r   r   )rk   r   r   )r   rl   i'  rN   r   r   zusing covariance: %s)r<   r   r   uniformra   r   r5   score)nr[   x1x2xr7   r'   rE   s           rK   test_lda_scalingr   p  s    A
)


%
%C 
RQF	#	#kkk	1B	RQF	#	#jjj	0B
	2r(ooo-A	qA37A* Q Q(777wwq!}}""1a((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'   rn   gil?gam?g	^?r    )	r   r5   X6y6hasattrr   r   r<   r   )r'   rE   s     rK   test_lda_store_covariancer     sp    $ 
 
(777;;BCCsM***** )NNNRR
 
 sM*****!ORX(';h=Q&RSS	
 	
 	
 	

 %E
2
2
2
6
6r2
>
>CsM***** %FT
J
J
J
N
NrSU
V
VC3&&&&&Hh#7(H9M"NOO    r]   seedrk   c                    t           j                            |           }|                    dd          }|                    dd          }t          ddd          }t          dt          d	          d
          }|                    ||           |                    ||           t          |j	        |j	                   t          |j
        |j
                   d S )Nrl   rk   r   rR   Tr)   r!   rn   r(   r'   )r(   rn   r/   r'   )r<   r   r   randr   r   r   r5   r	   r   r   )r   r[   r6   r7   c1c2s         rK   test_lda_shrinkager     s     )


%
%CbAAS""A	#TSQW	X	X	XB	#-<<<
 
 
B
 FF1aLLLFF1aLLLBIry)))BNBN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   )selfr6   scX_scss        rK   r5   z7test_lda_ledoitwolf.<locals>.StandardizedLedoitWolf.fit  sq    !!B##A&&DD!!!$A	!!!RZ-(1,ryQQQ/GGA Dr]   N)__name__
__module____qualname__r5   r_   r]   rK   StandardizedLedoitWolfr     s#        	! 	! 	! 	! 	!r]   r   r   rl   rk   r   )rl   rR   Tr#   r!   r   r   )
r<   r   r   r   r   r   r5   r	   r   r   )r   r[   r6   r7   r   r   s         rK   test_lda_ledoitwolfr     s    ! ! ! ! ! ! ! ! )


"
"CbAAF##A	#
 
 
B 
$3355
 
 
B
 FF1aLLLFF1aLLLBIry)))BNBN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   rk   r   )r   z#n_components cannot be larger than r0   )r   randnr<   tilerd   minr   r5   maxr@   rA   rC   )
rM   r   r[   rZ   r6   r7   max_componentsr   r   r   s
             rK   test_lda_dimension_warningr     sq    Q

CI		)Z((A 	i  )y"81"<==jyjIAY]33N'!+T>B  (lCCC1'!+SY]-K-Ka-OP  
 )lCCC3]:S111 	 	GGAqMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s   &D		D	D	zdata_type, expected_typec                     t           D ]n\  }}t          ||          }|                    t                              |           t
                              |                      |j        j        |k    sJ od S )Nr&   )r4   r   r5   r6   astyper7   r   r   )	data_typeexpected_typer'   r(   rE   s        rK   test_lda_dtype_matchr     sx     . 0 0	()LLL##QXXi%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+   )r4   r   r5   r6   r   r<   float32r7   float64r	   r   )r'   r(   clf_32clf_64r+   s        rK   ,test_lda_numeric_consistency_float32_float64r     s    - ? ?	+6YOOO

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

188BJ''"*)=)=>>> fl>>>>>? ?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   r5   r   r   r8   r   X7r:   r;   r   r<   r=   y7r?   r@   rA   rC   y4)rE   rF   rG   rH   rI   rJ   s         rK   test_qdar    s    (
)
)CWWR__$$R((Fvr""" ggb"oo%%b))Gw### %%b))Maaad+c1Q6;;;--b11bf%677JJJggb"oo%%b))G6'R-      
z	"	"  B                 s   !GGG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   r5   r   r   r8   r<   r~   r   )rE   rF   n_posnegn_pos2s        rK   test_qda_priorsr  "  s    
'
)
)CWWR__$$R((FF6Q;E
C
'rxa#g/G/G
H
H
HCWWR__$$R((FVFaK  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   r5   r   r   
isinstancer   r<   ndarrayr   )r  r   rE   s      rK   test_qda_prior_typer  /  sv     3ZF
'!3*k::  	c"bkk  ck2:.....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   g?r   N)	r<   r   r   r5   r6   r7   r   r   r   )r   qdas     rK   test_qda_prior_copyr  :  sy    XsCj!!F
'v
6
6
6
:
:1a
@
@C s{CJ/// F1I;q>SZ]******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)rn   r   gffffff?r   r   gQUU?gQUUտgvWUU?)	r   r5   r   r   r   r   r   r<   r   )rE   s    rK   test_qda_store_covariancer  G  s    
'
)
)
-
-b"
5
5CsM***** (
>
>
>
B
B2r
J
JC3&&&&&coa0"(S$K$PS;U2V2VWWW
:{+k:-FGHH    r]   c                     d} t                      }t          j        t          |           5  |                    t
          t                    }d d d            n# 1 swxY w Y   t          j        t          d          5  |                    t
                    }d d d            n# 1 swxY w Y   t          j
        |t          k              sJ t          d          }t          j        t          |           5  |                    t
          t                     d d d            n# 1 swxY w Y   |                    t
                    }t          |t                     t          d          }t          j        t          |           5  |                    t          t                     d d d            n# 1 swxY w Y   |                    t                    }t          |t                     d S )NzVariables are collinearr0   zdivide by zeror   )	reg_paramr.   )r   r@   r   r   r5   X2r   RuntimeWarningr8   r<   r?   r   X5y5)collinear_msgrE   rF   y_pred5s       rK   test_qda_regularizationr  X  s   
 .M
'
)
)C	k	7	7	7 ! !R! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
n,<	=	=	= ! !R! ! ! ! ! ! ! ! ! ! ! ! ! ! !6&B, ($
7
7
7C	k	7	7	7  B              [[__Fvr""" (#
6
6
6C	k	7	7	7  B              kk"ooGw#####sG   !AA A?B&&B*-B*;!D((D,/D,!F::F>F>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 )	Nrl   r   r   rm   r   r   	empiricalr#   )	r   r<   rs   r   r   r   r   r
   r   )r   r7   c_ec_ss       rK   test_covariancer   |  s    12NNNDAq 	q")AGAJ!O,,44QWQZLLMMA
q+

CSU###
q&//CSU#####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   r@   rA   rC   r5   )r'   r6   r7   rE   s       rK   =test_raises_value_error_on_same_number_of_classes_and_samplesr$    s     	3*sCj)**A
#sA
$F
3
3
3C	z)M	N	N	N  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 r_   r_   )rV   iclass_name_lowers     rK   r\   z.test_get_feature_names_out.<locals>.<listcomp>  s4     	
 	
 	
  $$$	
 	
 	
r]   r   r   N)r   r5   r6   r7   get_feature_names_outlowerr<   r   rd   r   r   objectr   )est	names_outexpected_names_outr(  s      @rK   test_get_feature_names_outr/    s     %
&
&
*
*1a
0
0C))++I399;;	
 	
 	
 	
38>qABB	
 	
 	
    y"455555r]   array_namespaceznumpy.array_apizcupy.array_apic                    t          j        |           }|                    t                    }|                    t                    }t                      }|                    t          t                     d t          |                                          D             }t          |          }t          d          5  |                    ||           ddd           n# 1 swxY w Y   |                                D ]N\  }}t          ||          }	t          |	d          sJ t          |	|          }
t          ||
| dd	           Od
}|D ]} t          ||          t                    }t          d          5   t          ||          |          }ddd           n# 1 swxY w Y   t          |d          sJ | d            t          ||          }t          ||| dd	           dS )zBCheck that the array_api Array gives the same results as ndarrays.c                 N    i | ]"\  }}t          |t          j                  ||#S r_   )r  r<   r  )rV   keyvalues      rK   
<dictcomp>z&test_lda_array_api.<locals>.<dictcomp>  s?       !sE*UBJ:W:WU  r]   T)array_api_dispatchN__array_namespace__)xpz not the samegMbP?)r-   r,   )decision_functionr8   r;   r:   r   z" did not output an array_namespacez# did not the return the same resultr*   )r@   importorskipasarrayr6   r>   r   r5   varsitemsr   r   getattrr   r   r	   )r0  r8  X_xpy_xpr   array_attributeslda_xpr3  	attributelda_xp_paramlda_xp_param_npmethodsmethodresult	result_xpresult_xp_nps                   rK   test_lda_array_apirK    s    
	_	-	-B::a==D::b>>D
$
&
&CGGArNNN %)#YY__%6%6   3ZZF	4	0	0	0  

4              
 +0022 
 
Yvs++|%:;;;;;+LR@@@30E0E0ED	
 	
 	
 	
 	

G  
 
%f%%a((t444 	6 	6///55I	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6,
 
 	9 	9888	9 	9 
 )r:::BBB		
 	
 	
 	
 	

 
s$   C$$C(+C(F,,F0	3F0	)Qnumpyr<   r@   scipyr   sklearn.baser   sklearn._configr   sklearn.utilsr   sklearn.utils._testingr   r   r	   r
   sklearn.utils._array_apir   r   sklearn.datasetsr   sklearn.discriminant_analysisr   r   r   sklearn.covariancer   sklearn.clusterr   r   r   sklearn.preprocessingr   r   r6   r7   r>   r9   r   r   r   r   r  r   c_r   zerosr  r  r4   rL   markparametrizer   r   r   r   r   r   r   r   rd   r   r   r   r   r   int32int64r   r   r  r  r  r  r  r  r   r$  r/  rK  r_   r]   rK   <module>r^     s                    * * * * * * , , , , , , 5 5 5 5 5 5 < < < < < < 2 2 2 2 2 2 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 ' ' ' ' ' ' D D D D D D G G G G G G . . . . . . * * * * * * " " " " " " / / / / / / ) ) ) ) ) ) 0 0 0 0 0 0 BHr2hR2r(QFQFQFC3OOOBH  RX   !! RXTB4"sQC!%
   RXVb"XBx"bB8aVaVaVaQRVT  RX)))**RX)))** RXtbTB4"sQC!qcA3?@@ RX!Wr1gAwQ!Q!Q!Q!Q!QP 
 RX)))** U929Q<<&)))*RX&&&''
 
 
 < < <~ q!f--#;#;#;<<[ [ =< .-[|: : :2J J J,  "  :&= &= &=RQ Q Q"  < r++4 4 ,+4$4 4 4< 1v..q!f--  .- /.2 	RZ 	RZ 	2:	2:	 0 0 0	? 	? 	?  6
 
 
 (B(B(BCC, , DC,
+ 
+ 
+  "!$ !$ !$H
$ 
$ 
$ #;#;#;<<	 	 =<	6 6 6" *->@P,QRR5
 5
 SR5
 5
 5
r]   