
    >[g&                        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	 d dl
mZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d
 Zd Zej0                  j3                  dg d      ej0                  j3                  dg d      d               Zd$dZej0                  j3                  dg d      ej0                  j3                  dg d      d               Zd$dZd Zd Zd Z ej0                  j3                  ddg dg      d        Z!ej0                  j3                  ddd g      d!        Z"ej0                  j3                  dg d"      d#        Z#y)%    N)
make_blobs)NotFittedError)GridSearchCV)KDTreeKernelDensityNearestNeighbors)kernel_norm)make_pipeline)StandardScaler)assert_allclosec                    |dk(  r&|j                   d   d|j                   d   dz   z  z  }n@|dk(  r;|j                   d   |j                   d   dz   z  dz  d|j                   d   dz   z  z  }t        j                  | d d d d d f   |z
  dz  j                  d            }t	        ||j                   d   |      |j                   d   z  }|dk(  r3|t        j
                  d	||z  z  ||z  z        j                  d      z  S |d
k(  r|||k  j                  d      z  S |dk(  r&|d||z  ||z  z  z
  ||k  z  j                  d      z  S |dk(  r+|t        j
                  | |z        j                  d      z  S |dk(  r |d||z  z
  ||k  z  j                  d      z  S |dk(  rD|t        j                  dt        j                  z  |z  |z        ||k  z  j                  d      z  S t        d      )Nscottr         	silverman   gaussiang      tophatepanechnikov      ?exponentiallinearcosineg      ?zkernel not recognized)	shapenpsqrtsumr	   expcospi
ValueError)YXkernelhdnorms         [/var/www/html/bid-api/venv/lib/python3.12/site-packages/sklearn/neighbors/tests/test_kde.pycompute_kernel_slowr*      s   G|GGAJ2a01	
k	WWQZ1771:>*Q.B!''!*q.4IJ
!AtQJ-!#)..r23Aq!''!*f-
:DbffTQU^q1u56::2>>>	8	q1ukk"o%%	>	!q1uQ//AE:??CCC	=	 rvvqb1f~**2...	8	AE	a!e,11"555	8	rvvcBEEkAo12a!e<AA"EEE011    c           	      V   t        | |||      }|j                  |      j                  |      }t        t	        j
                  |      ||t        d|             t        t	        j
                  |j                  |            t	        j                  |      |t        d|             y )N)r%   	bandwidthatolrtolgHz>)r.   r/   )	r   fitscore_samplesr   r   r   maxscoreprod)	r%   r-   r.   r/   r$   r#   	dens_truekdelog_denss	            r)   check_resultsr8   )   sx    
vD
QCwwqz''*HBFF8$idT4Q
syy|bggi0t#dD/r+   r%   )r   r   r   r   r   r   r-   ){Gz?皙?r   r   r   c                     d\  }}t         j                  j                  d      }|j                  ||      }|j                  ||      }t	        ||| |      }dD ]!  }dD ]  }	dD ]  }
t        | ||	||||         # y )Nd      r   )r   gh㈵>)gư>r9   )TF)r   randomRandomStaterandnr*   r8   )r%   r-   	n_samples
n_featuresrngr$   r#   r5   r/   r.   breadth_firsts              r)   test_kernel_densityrF   2   s    
 %Iz
))


"C		)Z(A		)Z(A#Aq&)<I D!.fitQ9M "/ ! r+   c                 L   t         j                  j                  d      }|j                  | |      }d}dD ]  }t	        ||      j                  |      }|j                  d      }|j                  |j                  k(  sJ t        d      j                  |      }|j                  |d	      \  }	}
|d
k(  rt        j                  |	|k        rJ |dk(  st        j                  |	d|z  k        rJ  dD ]Q  }t	        ||      j                  |      }t        j                  t              5  |j                  d       d d d        S |j                  dd      }t	        d      j                  |      }|j                         j                  dk(  sJ y # 1 sw Y   xY w)Nr   皙?)r   r   )r-   r%   r=   r   )n_neighborsT)return_distancer   r      )r   r   r   r   r   r%   )r   r   )r   r?   r@   rA   r   r0   sampler   r   
kneighborsallpytestraisesNotImplementedError)rB   rC   rD   r$   r-   r%   r6   sampnbrsdistinds              r)   test_kernel_density_samplingrW   E   sn   
))


"C		)Z(AI(i?CCAFzz#ww$**$$$  A.2215OOAtO<	cX66$*+++z! 66$Y./// )$ Fi?CCAF]]./JJsO 0/ F 			!QA
z
*
.
.q
1C::<''' 0/s   1FF#		algorithmauto	ball_treekd_treemetric)	euclidean	minkowski	manhattan	chebyshev	haversinec                    t         j                  j                  d      }|j                  dd      }|j                  dd      }t	        | |      }| dk(  rH|t
        j                  vr6t        j                  t        d      5  |j                  |       d d d        y |j                  |       |j                  |      }|j                  |j                  d d k(  sJ y # 1 sw Y   y xY w)	Nr   
   r   rX   r]   r\   zinvalid metric)matchr   )r   r?   r@   rA   r   r   valid_metricsrP   rQ   r"   r0   r1   r   )rX   r]   rD   r$   r#   r6   y_denss          r)    test_kde_algorithm_metric_choiceri   h   s     ))


"C		"aA		"aA
)F
;CI&0D0D"D]]:-=>GGAJ ?> 	
""1%||qwwr{*** ?>s   CC(c                      y )N )rB   rC   s     r)   test_kde_scorerl   }   s    r+   c                     t               } t        j                  t              5  | j	                  t
        j                  j                  d      t
        j                  j                  d             d d d        t        j                  t              5  | j	                  t
        j                  j                  d      t
        j                  j                  d              d d d        y # 1 sw Y   zxY w# 1 sw Y   y xY w)N)   rd   sample_weightrn   )r   rP   rQ   r"   r0   r   r?   )r6   s    r)   test_kde_sample_weights_errorrq      s    
/C	z	"		  +299;K;KI;VW 
#	z	"		  +BII<L<LS<Q;QR 
#	" 
#	"	"	"s   AC+AC7+C47D c                      t        ddddgddgddgg      \  } }t        t        dd      t        d            }t	        g d	
      }t        ||      }|j                  |        |j                  d   dk(  sJ y )Nr:   r   r   )cluster_stdrandom_statecentersF)	with_meanwith_stdr   rL   )MbP?r9   r:   r   rd   )kerneldensity__bandwidth)
param_gridry   )r   r
   r   r   dictr   r0   best_params_)r$   _pipe1paramssearchs        r)   test_kde_pipeline_gridsearchr      s    #AAAQRTUPV?WXDAq7Z(E +DEF%F3F
JJqM9:cAAAr+   c            	         d} d}t        j                  | d      }dD ]H  }t         j                  j                  d      }|j	                  | |      }dd|j                  d      z  j                  t         j                        z   }t        j                  ||d      }||z  }|j	                  ||      }	d	D ]  }
d
D ]  }|
dk7  s|t        j                  v st        |
|      }|j                  ||       |j                  |	      }|j                  d      }|j                  |       |j                  |	      }|j                  d      }t        ||       t        ||       |j                  ||       |j                  |	      }|j                  d      }|j                  |       |j                  |	      }|j                  d      }t        ||       t        ||       t        j                   t        j"                  ||z
              }|dkD  sJ |j	                         }|j                  |||z         |j                  |	      }t        ||         K y )Ni           @)r   r   rd   r   r   rd   )axisrY   )r^   r_   r`   ra   r\   re   ro   i  )rt   rx   )r   fullr?   r@   randr   astypeint8repeatr   rg   r   r0   r1   rM   r   r2   abs)rB   	size_testweights_neutralr'   rD   r$   weightsX_repetitionsn_samples_testtest_pointsrX   r]   r6   scores_const_weightsample_const_weightscores_no_weightsample_no_weightscores_weightrp   scores_ref_samplingsample_ref_samplingdiffscale_factorscores_scaled_weights                           r)   test_kde_sample_weightsr      s,   IIggi-Oii##A&HHY"rAEEqEM)11"''::		!W15"ahh~q19IN	)Vv7K7K-K')FKC GGA_G=*-*;*;K*H'*-**$**G'GGAJ'*'8'8'E$'*zztz'D$#$79IJ#$79IJ GGAWG5$'$5$5k$BM$'JJDJ$AMGGM**-*;*;K*H'*-**$**G'#M3FG#M3FG 66"&&)9M)I"JKD%<'< $'88:LGGAlW.DGF+.+<+<[+I(#$8-HA O : r+   rp   )r:   rH   g333333?c                    t               }t        j                  g dd      }|j                  ||       t        j                  ddgd      }|j	                  |      }t        | j                  d            }t        j                  ||       t        j                  |      }|j	                  |      }t        ||       y )N)r   g       @r   )r   r   ro   g?g @zdump.pkl)r   r   reshaper0   r1   strjoinjoblibdumploadr   )tmpdirrp   r6   datar$   scores	file_pathscores_pickleds           r)   test_picklingr      s     /C::ow/DGGDG.


C:w'Aq!FFKK
+,I
KKY
++i
 C&&q)NFN+r+   methodr1   rM   c                     t         j                  j                  d      }|j                  dd      }t	               }t        j                  t              5   t        ||       |       d d d        y # 1 sw Y   y xY w)Nr   rd   r   )	r   r?   r@   rA   r   rP   rQ   r   getattr)r   rD   r$   r6   s       r)   test_check_is_fittedr      sX     ))


"C		"aA
/C	~	&VQ 
'	&	&s   A11A:)r   r   r:   c                 h   d\  }}t         j                  j                  d      }|j                  ||      }t	        |       j                  |      }|j                  d      }|j                  |      }|j                  |j                  k(  sJ |j                  |fk(  sJ | dk(  r&|j                  d   d|j                  d   dz   z  z  }nC| d	k(  r<|j                  d   |j                  d   d
z   z  dz  d|j                  d   dz   z  z  }n| }|j                  t        j                  |      k(  sJ y )Nr<   r   )r-   r=   r   r   r   r   r   r   )r   r?   r@   rA   r   r0   rM   r1   r   
bandwidth_rP   approx)	r-   rB   rC   rD   r$   r6   rS   kde_scr&   s	            r)   test_bandwidthr      s   $Iz
))


"C		)Z(A
)
,
0
0
3C::c?Dq!F77djj   <<I<''' GGGAJ2a01	k	!WWQZ1771:>*Q.B!''!*q.4IJ>>V]]1----r+   r<   )$r   numpyr   rP   sklearn.datasetsr   sklearn.exceptionsr   sklearn.model_selectionr   sklearn.neighborsr   r   r   sklearn.neighbors._ball_treer	   sklearn.pipeliner
   sklearn.preprocessingr   sklearn.utils._testingr   r*   r8   markparametrizerF   rW   ri   rl   rq   r   r   r   r   r   rk   r+   r)   <module>r      sZ      ' - 0 E E 4 * 0 222 W &JKN LN (F &FGO+ H+"	S
B,I^ 4*AB, C,( OX#>?  @  &AB. C.r+   